Fixed the accumulator update logic in all the PDP-10 half-word self-mode instructions, and started work on EXCH, BLT, and MOVE instructions (the BLT is a real odd-ball, and SIMH does some very strange things with the accumulator used by BLT, which we do NOT attempt to replicate; the strangeness is most noticeable when the accumulator is part of the range being transferred)

This commit is contained in:
Jeff 2017-03-01 16:00:48 -08:00 committed by Jeff Parsons
commit e870fd6eec
6 changed files with 373 additions and 279 deletions

View file

@ -2,15 +2,30 @@
"load": 0o100,
"exec": 0o100,
"data": [
0o505040111111, // HRLI 1,111111
0o541040444444, // HRRI 1,444444
0o544100000001, // HLR 2,1
0o504100000001, // HRL 2,1
0o570140000001, // HRRE 3,1
0o530200000002, // HLLE 4,2
0o544240000003, // HLR 5,3
0o504300000004, // HRL 6,4
0o573000000005, // HRRES 0,5
0o533000000006, // HLLES 0,6
0o505040111111, // 000100: HRLI 1,111111
0o541040444444, // 000101: HRRI 1,444444
0o544100000001, // 000102: HLR 2,1
0o504100000001, // 000103: HRL 2,1
0o570140000001, // 000104: HRRE 3,1
0o530200000002, // 000105: HLLE 4,2
0o544240000003, // 000106: HLR 5,3
0o504300000004, // 000107: HRL 6,4
0o573000000005, // 000110: HRRES 0,5
0o533000000006, // 000111: HLLES 0,6
0o541000000010, // 000112: HRRI 0,10
0o251000000017, // 000113: BLT 0,17
//
// 00=000000000010 01=111111444444 02=444444111111 03=777777444444
// 04=444444777777 05=777777777777 06=777777777777 07=000000000000
// 10=000000000010 11=111111444444 12=444444111111 13=777777444444
// 14=444444777777 15=777777777777 16=777777777777 17=000000000000
//
0o577040000002, // 000114: HLRES 1,2
//
// 00=000000000010 01=000000111111 02=777777444444 03=777777444444
// 04=444444777777 05=777777777777 06=777777777777 07=000000000000
// 10=000000000010 11=111111444444 12=444444111111 13=777777444444
// 14=444444777777 15=777777777777 16=777777777777 17=000000000000
//
]
}

View file

@ -8,6 +8,34 @@ dep 106 544240000003
dep 107 504300000004
dep 110 573000000005
dep 111 533000000006
ex -m 100-111
dep 112 541000000010
dep 113 251000000017
dep 114 577040000002
ex -m 100-114
dep pc 100
step 10
step 11
ex 0-17
;
echo Execute the BLT 8 times...
;
step
ex 0-17
step
ex 0-17
step
ex 0-17
step
ex 0-17
step
ex 0-17
step
ex 0-17
step
ex 0-17
step
ex 0-17
;
echo next up: HLRES 1,2
;
step 1
ex 0-17

View file

@ -583,40 +583,84 @@ PDP10.opFDVRB = function(op)
};
/**
* opMOV(0o200000)
* opMOVE(0o200000)
*
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-11:
*
* Move one word from the source to the destination specified by M. The source is unaffected,
* the original contents of the destination are lost.
*
* NOTE: This is a "Basic" mode instruction: the source is [E] and the destination is [A] (opposite of "Memory").
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opMOV = function(op)
PDP10.opMOVE = function(op)
{
this.opUndefined(op);
this.writeWord(op & PDP10.OPCODE.A_MASK, this.readWord(this.regEA));
};
/**
* opMOVI(0o201000)
* opMOVEI(0o201000)
*
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-11:
*
* Move one word from the source to the destination specified by M. The source is unaffected,
* the original contents of the destination are lost.
*
* SIDEBAR: MOVEI loads the word 0,E into AC and is thus equivalent to HRRZI.
*
* NOTE: This is an "Immediate" mode instruction: the source is the word 0,E and the destination is [A].
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opMOVI = function(op)
PDP10.opMOVEI = function(op)
{
this.opUndefined(op);
this.writeWord(op & PDP10.OPCODE.A_MASK, this.regEA);
};
/**
* opMOVM(0o200000)
* opMOVEM(0o202000)
*
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-11:
*
* Move one word from the source to the destination specified by M. The source is unaffected,
* the original contents of the destination are lost.
*
* NOTE: This is a "Memory" mode instruction: the source is [A] and the destination is [E] (opposite of "Basic").
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opMOVM = function(op)
PDP10.opMOVEM = function(op)
{
this.opUndefined(op);
this.writeWord(this.regEA, this.readWord(op & PDP10.OPCODE.A_MASK));
};
/**
* opMOVS(0o200000)
* opMOVES(0o203000)
*
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-11:
*
* Move one word from the source to the destination specified by M. The source is unaffected,
* the original contents of the destination are lost.
*
* SIDEBAR: If A is zero, MOVES is a no-op; otherwise it is equivalent to MOVE.
*
* NOTE: This is a "Self" mode instruction: the source AND destination is [E] (and also [A] if A is non-zero).
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opMOVES = function(op)
{
var acc = op & PDP10.OPCODE.A_MASK;
if (acc) this.writeWord(acc, this.readWord(this.regEA));
};
/**
* opMOVS(0o204000)
*
* @this {CPUStatePDP10}
* @param {number} op
@ -703,6 +747,17 @@ PDP10.opMOVNS = function(op)
this.opUndefined(op);
};
/**
* opMOVM(0o214000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opMOVM = function(op)
{
this.opUndefined(op);
};
/**
* opMOVMI(0o215000)
*
@ -1025,23 +1080,30 @@ PDP10.opEXCH = function(op)
* is the final location being loaded. Furthermore, the program cannot assume that AC is the same after the BLT
* as it was before.
*
* NOTE: As currently implemented, we will NEVER acknowledge an interrupt during a block transfer, so the above
* caution can be ignored (for now).
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opBLT = function(op)
{
var fDone = false;
var acc = op & PDP10.OPCODE.A_MASK;
var addrDst = this.readWord(acc);
var addrSrc = (addrDst / PDP10.WORD_SHIFT)|0;
addrDst &= PDP10.WORD_MASK;
while (true) {
while (!fDone) {
this.writeWord(addrDst, this.readWord(addrSrc));
if (addrDst == this.regEA) break;
if (addrDst == this.regEA) fDone = true;
addrSrc = (addrSrc + 1) & PDP10.WORD_MASK;
addrDst = (addrDst + 1) & PDP10.WORD_MASK;
if (!this.isRunning()) {
/*
* Since the CPU isn't currently running, the CPU is presumably being stepped, so we'll treat that the
* same as the "priority interrupt" condition described above, update the accumulator, rewind the PC, and leave.
*/
this.writeWord(acc, addrSrc * PDP10.WORD_SHIFT + addrDst);
if (!fDone) this.advancePC(-1);
fDone = true;
}
}
};
@ -2759,7 +2821,7 @@ PDP10.opHLLM = function(op)
*
* SIDEBAR: If A is zero, HLLS is a no-op, otherwise it is equivalent to HLL.
*
* For HLLS, the source is [E] and the destination is [E] (and also [A] if A is non-zero).
* For HLLS, the source AND destination is [E] (and also [A] if A is non-zero).
*
* @this {CPUStatePDP10}
* @param {number} op
@ -2767,12 +2829,10 @@ PDP10.opHLLM = function(op)
PDP10.opHLLS = function(op)
{
var dst = this.readWord(this.regEA);
this.writeWord(this.regEA, PDP10.setHR(op, dst, dst));
dst = PDP10.setHR(op, dst, dst);
this.writeWord(this.regEA, dst);
var acc = op & PDP10.OPCODE.A_MASK;
if (acc) {
dst = this.readWord(acc);
this.writeWord(acc, PDP10.setHR(op, dst, dst));
}
if (acc) this.writeWord(acc, dst);
};
/**
@ -2850,7 +2910,7 @@ PDP10.opHRLM = function(op)
* The source and the destination right half are unaffected; the original contents of the destination left
* half are lost.
*
* For HRLS, the source is [E] and the destination is [E] (and also [A] if A is non-zero).
* For HRLS, the source AND destination is [E] (and also [A] if A is non-zero).
*
* @this {CPUStatePDP10}
* @param {number} op
@ -2859,13 +2919,10 @@ PDP10.opHRLS = function(op)
{
var dst = this.readWord(this.regEA);
var src = (dst & PDP10.WORD_MASK) * PDP10.WORD_SHIFT;
this.writeWord(this.regEA, PDP10.getHR(op, dst, src) + src);
dst = PDP10.getHR(op, dst, src) + src;
this.writeWord(this.regEA, dst);
var acc = op & PDP10.OPCODE.A_MASK;
if (acc) {
dst = this.readWord(acc);
src = (dst & PDP10.WORD_MASK) * PDP10.WORD_SHIFT;
this.writeWord(acc, PDP10.getHR(op, dst, src) + src);
}
if (acc) this.writeWord(acc, dst);
};
/**
@ -2944,7 +3001,7 @@ PDP10.opHRRM = function(op)
*
* SIDEBAR: If A is zero, HRRS is a no-op; otherwise it is equivalent to HRR.
*
* For HRRS, the source is [E] and the destination is [E] (and also [A] if A is non-zero).
* For HRRS, the source AND destination is [E] (and also [A] if A is non-zero).
*
* @this {CPUStatePDP10}
* @param {number} op
@ -2952,12 +3009,10 @@ PDP10.opHRRM = function(op)
PDP10.opHRRS = function(op)
{
var dst = this.readWord(this.regEA);
this.writeWord(this.regEA, PDP10.setHL(op, dst, dst));
dst = PDP10.setHL(op, dst, dst);
this.writeWord(this.regEA, dst);
var acc = op & PDP10.OPCODE.A_MASK;
if (acc) {
dst = this.readWord(acc);
this.writeWord(acc, PDP10.setHL(op, dst, dst));
}
if (acc) this.writeWord(acc, dst);
};
/**
@ -3032,7 +3087,7 @@ PDP10.opHLRM = function(op)
* Move the left half of the source word specified by M to the right half of the specified destination.
* The source and the destination left half are unaffected; the original contents of the destination right half are lost.
*
* For HLRS, the source is [E] and the destination is [E] (and also [A] if A is non-zero).
* For HLRS, the source AND destination is [E] (and also [A] if A is non-zero).
*
* @this {CPUStatePDP10}
* @param {number} op
@ -3041,13 +3096,10 @@ PDP10.opHLRS = function(op)
{
var dst = this.readWord(this.regEA);
var src = (dst / PDP10.WORD_SHIFT)|0;
this.writeWord(this.regEA, PDP10.getHL(op, dst, src) + src);
dst = PDP10.getHL(op, dst, src) + src;
this.writeWord(this.regEA, dst);
var acc = op & PDP10.OPCODE.A_MASK;
if (acc) {
dst = this.readWord(acc);
src = (dst / PDP10.WORD_SHIFT)|0;
this.writeWord(acc, PDP10.getHL(op, dst, src) + src);
}
if (acc) this.writeWord(acc, dst);
};
/**
@ -4164,10 +4216,10 @@ PDP10.aOpXXX_KA10 = [
PDP10.opFDVRI, // 0o175xxx
PDP10.opFDVRM, // 0o176xxx
PDP10.opFDVRB, // 0o177xxx
PDP10.opMOV, // 0o200xxx
PDP10.opMOVI, // 0o201xxx
PDP10.opMOVM, // 0o202xxx
PDP10.opMOVS, // 0o203xxx
PDP10.opMOVE, // 0o200xxx
PDP10.opMOVEI, // 0o201xxx
PDP10.opMOVEM, // 0o202xxx
PDP10.opMOVES, // 0o203xxx
PDP10.opMOVS, // 0o204xxx
PDP10.opMOVSI, // 0o205xxx
PDP10.opMOVSM, // 0o206xxx

View file

@ -3738,7 +3738,7 @@ if (DEBUGGER) {
HRL: 5, HRLZ: 6, HRLO: 7, HRLE: 8,
HRR: 9, HRRZ: 10, HRRO: 11, HRRE: 12,
HLR: 13, HLRZ: 14, HLRO: 15, HLRE: 16,
MOV: 17, MOVS: 18, MOVN: 19, MOVM: 20,
MOVE: 17, MOVS: 18, MOVN: 19, MOVM: 20,
EXCH: 21, BLT: 22, PUSH: 23, POP: 24,
LDB: 25, DPB: 26, IBP: 27, ILDB: 28,
IDPB: 29, SETZ: 30, SETO: 31, SETA: 32,
@ -3771,7 +3771,7 @@ if (DEBUGGER) {
"HRL", "HRLZ", "HRLO", "HRLE",
"HRR", "HRRZ", "HRRO", "HRRE",
"HLR", "HLRZ", "HLRO", "HLRE",
"MOV", "MOVS", "MOVN", "MOVM",
"MOVE", "MOVS", "MOVN", "MOVM",
"EXCH", "BLT", "PUSH", "POP",
"LDB", "DPB", "IBP", "ILDB",
"IDPB", "SETZ", "SETO", "SETA",
@ -3856,7 +3856,7 @@ if (DEBUGGER) {
0o16400: DebuggerPDP10.OPS.FMPR,
0o17000: DebuggerPDP10.OPS.FDV,
0o17400: DebuggerPDP10.OPS.FDVR,
0o20000: DebuggerPDP10.OPS.MOV,
0o20000: DebuggerPDP10.OPS.MOVE,
0o20400: DebuggerPDP10.OPS.MOVS,
0o21000: DebuggerPDP10.OPS.MOVN,
0o21400: DebuggerPDP10.OPS.MOVM,

View file

@ -29,9 +29,9 @@
*/
var l,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;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ia(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ia("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ia("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ja=Math.pow(2,36),ma=-Math.pow(2,35),q={Xb:0,pb:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,qb:10,fc:11,gc:12,rb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc: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,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ka(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ka("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ka("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={Xb:0,pb:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,qb:10,fc:11,gc:12,rb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc: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,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
Gc:82,Hc:83,Ic:84,Jc:85,Kc:86,Lc:87,Mc:88,Nc:89,vb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Pc:98,Qc:99,d:100,e:101,Rc:102,Sc:103,Tc:104,Uc:105,Vc:106,k:107,Wc:108,Xc:109,n:110,Yc:111,p:112,q:113,r:114,Zc:115,t:116,ad:117,bd:118,cd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,sb: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 g,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(g=parseInt(a,b))&&(c=g)}return c}function oa(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var g=a%b,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return oa(a,8,b,c?"0o":"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}
@ -61,165 +61,164 @@ var qb=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],yb=wind
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 B="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,17)-1,Ob=Math.pow(2,35)-1,Pb=Math.pow(2,21),Qb=Math.pow(2,26),Rb=Math.pow(2,23),B="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Sb(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.i=this.I=this.u=this.v=0;this.N=this.O=-1;this.P=this.R=this.G=!1;this.S=Tb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
function Sb(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.i=this.J=this.u=this.v=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=Tb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
set:this.Qb};E(this)}p(Sb,v);l=Sb.prototype;l.reset=function(a){this.stop();a&&Ub(this,this.v=0)};
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.H[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.H[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.H[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Vb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Wb(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){Vb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Wb(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;Xb(this);Yb(this)};l.pa=function(a,b){if(!b)if(this.W&&Zb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
l.restore=function(a){if(a=a[0])$b(this,this.i=a[0]),Ub(this,this.v=a[1]),ac(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}Yb(this);return!0};function bc(a,b,c){if(a=a.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Xb(a,b){for(var c in a.B)bc(a,c,null!=b?b:a.B[c])}function jc(a,b,c){if(a=a.H[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Yb(a){for(var b in a.b)jc(a,b,a.b[b][1])}
l.yb=function(a,b,c){if(Vb(this,b)){if(c){var d=this;setTimeout(function(){Wb(d,b);a&&a()},+c);return!1}Wb(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return ac(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,jc(this,a,c[1]),!0):!1};l.Rb=function(a){return Vb(this,a)?(Wb(this,a),!0):!1};function Vb(a,b){var c=a.b[b];return c?(jc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=kc&&(a.P=b==lc,a.R=b==mc),!0):!1}
function Wb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(jc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.J||(this.g.u=this.i%Kb,this.b[nc]&&this.b[nc][1]&&oc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.V()};
l.Ab=function(a){if(!a&&!this.g.j.J)if(this.b[nc]&&this.b[nc][1])oc(this.g);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),pc(a,0,null),Gb(a,!1);else try{var b=this.g.Ja(1);0<b&&(qc(this.g,b),rc(this.g,b,!0),sc(this.g,b))}catch(c){"number"!=typeof c&&Cb(this.g,c.stack||c.message)}this.stop();this.C&&I(this.C)}};l.Bb=function(a){a&&!this.g.j.J&&(this.P&&tc(this),a=Ub(this,this.v=this.u),this.S==Tb?uc(this.D,this.i,a):this.g.K(this.i,a))};
l.Db=function(a){if(!a&&!this.g.j.J){var b;this.R&&tc(this);this.S==Tb?b=vc(this.D,this.i):b=this.g.F(this.i);Ub(this,this.v=b)}};l.Fb=function(a){a||this.g.j.J||$b(this,this.u)};l.Eb=function(a){a?(this.G=!0,Xb(this,!0)):(this.G=!1,Xb(this),ac(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function tc(a){var b=1,c=a.D.u;a.b[kc]&&a.b[kc][1]||(b=-b);$b(a,a.i&~c|a.i+b&c)}
function $b(a,b){a.i=b&a.D.u;if(a.N!==a.i){a.N=a.i;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.G||bc(d,e,g)}}}function Ub(a,b){a.I=b%Mb;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.G||bc(d,e,g)}}return a.I}function ac(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;Yb(a);return!0}l.stop=function(){$b(this,this.g.u)};
function Zb(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=ub(d.id);e||(e=new Sb(d,!0));wb(e,c)}}var Tb=7,lc="DEP",nc="ENABLE",mc="EXAM",kc="STEP";Za(Zb);function wc(a,b,c){v.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.G=1<<this.I;this.u=this.G-1;this.i=Math.log2(16384);this.B=this.G/16384|0;this.v=0;this.b=[];a=new xc(this);yc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;E(this)}p(wc,v);l=wc.prototype;l.reset=function(){};
function Wb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(jc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Kb,this.b[nc]&&this.b[nc][1]&&oc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.V()};
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[nc]&&this.b[nc][1])oc(this.g);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),pc(a,0,null),Gb(a,!1);else try{var b=this.g.Ja(1);0<b&&(qc(this.g,b),rc(this.g,b,!0),sc(this.g,b))}catch(c){"number"!=typeof c&&Cb(this.g,c.stack||c.message)}this.stop();this.C&&I(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.P&&tc(this),a=Ub(this,this.v=this.u),this.S==Tb?uc(this.D,this.i,a):this.g.I(this.i,a))};
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&tc(this);this.S==Tb?b=vc(this.D,this.i):b=this.g.G(this.i);Ub(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||$b(this,this.u)};l.Eb=function(a){a?(this.F=!0,Xb(this,!0)):(this.F=!1,Xb(this),ac(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function tc(a){var b=1,c=a.D.u;a.b[kc]&&a.b[kc][1]||(b=-b);$b(a,a.i&~c|a.i+b&c)}
function $b(a,b){a.i=b&a.D.u;if(a.N!==a.i){a.N=a.i;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||bc(d,e,g)}}}function Ub(a,b){a.J=b%Mb;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||bc(d,e,g)}}return a.J}function ac(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;Yb(a);return!0}l.stop=function(){$b(this,this.g.u)};
function Zb(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=ub(d.id);e||(e=new Sb(d,!0));wb(e,c)}}var Tb=7,lc="DEP",nc="ENABLE",mc="EXAM",kc="STEP";Za(Zb);function wc(a,b,c){v.call(this,"Bus",a,16);this.g=b;this.A=c;this.J=+a.busWidth||18;this.F=1<<this.J;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new xc(this);yc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;E(this)}p(wc,v);l=wc.prototype;l.reset=function(){};
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,zc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ac(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Bc(Cc,e,g)}e=new xc(a,e,m,16384,d);yc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Dc[d]+" at "+pa(b)),!0):Bc(Ec,b,c)}
function vc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.H(b&16383,b);a.v--;return b}function uc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function zc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.wb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
function vc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.i(b&16383,b);a.v--;return b}function uc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function zc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.wb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
l.xb=function(a){this.v||(this.A&&Hb(this.A,4)&&Ib(this.A,"memory fault on "+K(this.A,a),!0,!0),this.g.V())};function Bc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Cc=1,Ec=2;function Fc(a){v.call(this,"Device",a,256)}p(Fc,v);l=Fc.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;E(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
l.restore=function(){return!0};Za(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new Fc(c),wb(c,d)}}});function xc(a,b,c,d,e){this.u=a;this.id=Gc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Hc;this.i=e==Ic;this.b=null;this.F=this.H=this.Xa;this.K=this.D=this.Ia;this.g=this.A=0;yc(this);this.Va=this.wb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Jc(this,Kc)}else Jc(this)}l=xc.prototype;l.save=function(){return this.C};
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Jc(a,b){b||(b=Lc);Mc(a,b,void 0);Nc(a,b,void 0)}function Mc(a,b,c){c&&a.g||(a.F=b[0]||a.Xa);if(c||void 0===c)a.H=b[0]||a.Xa}function Nc(a,b,c){c&&a.A||(a.K=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||Nc(this,Oc,!1):this.g++||Mc(this,Oc,!1)};function Pc(a,b){b?--a.A||(a.K=a.i?a.Ia:a.D):--a.g||(a.F=a.H)}
l.restore=function(){return!0};Za(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new Fc(c),wb(c,d)}}});function xc(a,b,c,d,e){this.u=a;this.id=Gc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Hc;this.H=e==Ic;this.b=null;this.G=this.i=this.Xa;this.I=this.D=this.Ia;this.g=this.A=0;yc(this);this.Va=this.wb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Jc(this,Kc)}else Jc(this)}l=xc.prototype;l.save=function(){return this.C};
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Jc(a,b){b||(b=Lc);Mc(a,b,void 0);Nc(a,b,void 0)}function Mc(a,b,c){c&&a.g||(a.G=b[0]||a.Xa);if(c||void 0===c)a.i=b[0]||a.Xa}function Nc(a,b,c){c&&a.A||(a.I=!a.H&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||Nc(this,Oc,!1):this.g++||Mc(this,Oc,!1)};function Pc(a,b){b?--a.A||(a.I=a.H?a.Ia:a.D):--a.g||(a.G=a.i)}
function yc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&Mc(a,Oc,!1),(a.A=c.A)&&Nc(a,Oc,!1))}l.Xa=function(a,b){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Qc(c,this.w+a,2,c.M)&&c.V(!1)}return this.H(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Qc(d,this.w+b,2,d.I)&&d.V(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Hc=0,Ic=2,Dc=["NONE","RAM","ROM"],Gc=0,Lc=[],Kc=[xc.prototype.Lb,xc.prototype.Ub],Oc=[xc.prototype.Jb,xc.prototype.Tb];
function Rc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.W=c;this.Da=Math.round(this.Ra/1E4)/100;this.S=this.Da*this.W;this.Qa=this.ua=this.aa=this.ya=0;this.j.J=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.O=this.G=this.M=this.N=this.B=this.ra=this.L=this.ja=this.Sa=this.R=0;this.xa=
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Qc(c,this.w+a,2,c.M)&&c.V(!1)}return this.i(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Qc(d,this.w+b,2,d.J)&&d.V(!1)}this.H?this.Ia(a,0,c):this.D(a,b,c)};var Hc=0,Ic=2,Dc=["NONE","RAM","ROM"],Gc=0,Lc=[],Kc=[xc.prototype.Lb,xc.prototype.Ub],Oc=[xc.prototype.Jb,xc.prototype.Tb];
function Rc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.W=c;this.Da=Math.round(this.Ra/1E4)/100;this.S=this.Da*this.W;this.Qa=this.ua=this.aa=this.ya=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.J=[];this.fb=this.Ob.bind(this);this.O=this.F=this.M=this.N=this.B=this.ra=this.L=this.ja=this.Sa=this.R=0;this.xa=
null;E(this)}p(Rc,v);l=Rc.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<Sc.length;a++)(b=this.H[Sc[a]])&&this.C.ga(null,Sc[a],b);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.pa=function(a,b){var c=Tc(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.H.run);if(!b){if(a){Uc(this);if(!this.restore(a))return!1;Vc(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),Wc(a),b||Xc(a),a.ua&&(b=a.ua,a.ua=null,Yc(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.J?!0:this.j.Z?(oc(this),!0):!1};l.mb=function(){return 0};function Vc(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.O)}function sc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.mb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=sd(a)&&(a.da=a.ia=-1,Vc(a),a.V(),c=!0);c&&a.f(sd(a)+" cycles: checksum="+t(a.sa))}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.J?d.V():oc(d))},!0;case "speed":return this.H[b]=
c,!0;case "setSpeed":return this.H[b]=c,c.onclick=function(){td(d,d.W<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function rc(a,b,c){a.O+=b;c&&(a.M=a.N=0)}function ud(a,b){var c=1;b&&1<a.W&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/vd);a.ua=Math.floor(a.Ra/vd*c);b||(a.aa=a.ua);a.ya=0}function sd(a){return a.O+a.G+a.M-a.N}function Uc(a){a.R=0;a.Sa=0;a.O=a.G=a.M=a.N=0;Vc(a);td(a,1)}
function td(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.W=b;b=a.Da*a.W;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&wd(a.C)}rc(a,a.G);a.G=0;a.B=rb();a.L=0;ud(a);return d}function xd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function yd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
function qc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function zd(a,b){var c=a.M-=a.N;a.N=0;b&&(a.M=0);return c}
l.Ob=function(){if(this.j.J){this.ya>=this.Ra&&ud(this,!0);this.ja=0;this.ra=rb();if(this.L){var a=this.ra-this.L;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=xd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=zd(this,!0);this.ja+=b;this.G+=b;sc(this,b);qc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=Ad&&(this.C&&I(this.C,void 0),this.Sa=0);break}}while(this.j.J)}catch(e){this.V();this.C&&this.C.stop(rb(),sd(this));Cb(this,
e.stack||e.message);return}if(this.j.J){a=setTimeout;b=this.fb;this.L=rb();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.L-this.ra),d=this.L-this.B;d&&(this.R=Math.round(this.G/(10*d))/100,864E5<=d&&(this.O=0,td(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.L+=c;a(b,c)}}};
function oc(a,b){if(!Db(a))if(a.j.J)a.f(a.toString()+" busy");else{td(a);a.j.J=!0;a.j.Pa=!0;var c=a.H.run;c&&(c.textContent="Halt");a.C&&(b&&wd(a.C,!0),a.C.start(a.B,sd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.J){zd(this);rc(this,this.G);this.G=0;this.j.J=!1;if(b=this.H.run)b.textContent="Run";this.C&&this.C.stop(rb(),sd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var vd=30,Ad=15,Sc=["power","reset"];
function Bd(a){var b=+a.model||1001;Rc.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.tb=Cd.bind(this);this.b=L.bind(this);this.ka=null;this.ab=[];this.j.complete=!1}p(Bd,Rc);l=Bd.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.J&&this.V();this.i=this.P=this.za=0;this.la=this.u=this.qa=this.bb;this.v=0;this.F=this.Kb;this.K=this.Vb;this.ka=null;Uc(this);this.j.error=!1;Rc.prototype.reset.call(this)};l.mb=function(){return 0};
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(oc(this),!0):!1};l.mb=function(){return 0};function Vc(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.O)}function sc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.mb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=Zc(a)&&(a.da=a.ia=-1,Vc(a),a.V(),c=!0);c&&a.f(Zc(a)+" cycles: checksum="+t(a.sa))}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.V():oc(d))},!0;case "speed":return this.H[b]=
c,!0;case "setSpeed":return this.H[b]=c,c.onclick=function(){td(d,d.W<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function rc(a,b,c){a.O+=b;c&&(a.M=a.N=0)}function ud(a,b){var c=1;b&&1<a.W&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/vd);a.ua=Math.floor(a.Ra/vd*c);b||(a.aa=a.ua);a.ya=0}function Zc(a){return a.O+a.F+a.M-a.N}function Uc(a){a.R=0;a.Sa=0;a.O=a.F=a.M=a.N=0;Vc(a);td(a,1)}
function td(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.W=b;b=a.Da*a.W;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&wd(a.C)}rc(a,a.F);a.F=0;a.B=rb();a.L=0;ud(a);return d}function xd(a,b){for(var c=a.J.length-1;0<=c;c--){var d=a.J[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function yd(a){for(var b=[],c=0;c<a.J.length;c++)b.push(a.J[c][0]);return b}
function qc(a,b){for(var c=a.J.length-1;0<=c;c--){var d=a.J[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function zd(a,b){var c=a.M-=a.N;a.N=0;b&&(a.M=0);return c}
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&ud(this,!0);this.ja=0;this.ra=rb();if(this.L){var a=this.ra-this.L;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=xd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=zd(this,!0);this.ja+=b;this.F+=b;sc(this,b);qc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=Ad&&(this.C&&I(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.V();this.C&&this.C.stop(rb(),Zc(this));Cb(this,
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.L=rb();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.L-this.ra),d=this.L-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.O=0,td(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.L+=c;a(b,c)}}};
function oc(a,b){if(!Db(a))if(a.j.K)a.f(a.toString()+" busy");else{td(a);a.j.K=!0;a.j.Pa=!0;var c=a.H.run;c&&(c.textContent="Halt");a.C&&(b&&wd(a.C,!0),a.C.start(a.B,Zc(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){zd(this);rc(this,this.F);this.F=0;this.j.K=!1;if(b=this.H.run)b.textContent="Run";this.C&&this.C.stop(rb(),Zc(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var vd=30,Ad=15,Sc=["power","reset"];
function Bd(a){var b=+a.model||1001;Rc.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.tb=Cd.bind(this);this.b=L.bind(this);this.ka=null;this.ab=[];this.j.complete=!1}p(Bd,Rc);l=Bd.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.V();this.i=this.P=this.za=0;this.la=this.u=this.qa=this.bb;this.v=0;this.G=this.Kb;this.I=this.Vb;this.ka=null;Uc(this);this.j.error=!1;Rc.prototype.reset.call(this)};l.mb=function(){return 0};
l.save=function(){var a=new H(this);a.set(0,[this.i,this.P,this.za,this.u,this.qa,this.la,this.v]);a.set(1,[]);a.set(2,[this.O,this.W,this.j.Z]);a.set(3,Dd(this));a.set(4,yd(this));return a.data()};
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.i=b.next().value;this.P=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.la=b.next().value;this.v=b.next().value;b=a[2];this.O=b[0];td(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ka,this.ka=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
a[b];return!0};function Ed(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Dd(a){var b=[];for(a=a.ka;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.la=a;return b.b[(a&b.u)>>>b.i].F(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.la=a;c.b[(a&c.u)>>>c.i].K(b,a&16383,a)};
l.Ja=function(a){this.j.complete=!0;var b=this.A?Fd(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.M=this.N=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Gd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.ka||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Gd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.P=this.P&4194304?this.F(this.i)&8388607:(this.za=this.F(this.qa=this.u))&8388607;this.i=this.P&262143;
if(a=this.P>>18&15)this.i=this.i+this.F(a)&Lb;this.P&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Rb|0);0<=a&&this.tb(a)}while(0<this.N);return this.j.complete?this.M-this.N:!1===this.j.complete?-1:0};Za(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Bd(d);wb(d,c)}});function Cd(a){Hd[a>>4].call(this,a)}function M(a){this.b(a)}function Id(a){this.b(a)}function Jd(a){this.b(a)}
function Kd(a){var b=a&15,c=this.F(this.i),d=this.F(b);this.K(b,Ld(a,d,c)+(c-(c&262143)))}function Md(a){var b=a&15,c=this.F(b);this.K(b,Ld(a,c,0))}function Nd(a){var b=this.F(a&15),c=this.F(this.i);this.K(this.i,Ld(a,c,b)+(b-(b&262143)))}function Od(a){var b=this.F(this.i);this.K(this.i,Pd(a,b,b));var c=a&15;c&&(b=this.F(c),this.K(c,Pd(a,b,b)))}function Qd(a){var b=a&15,c=(this.F(this.i)&262143)*F,d=this.F(b);this.K(b,Ld(a,d,c)+c)}
function Rd(a){var b=a&15,c=this.i*F,d=this.F(b);this.K(b,Ld(a,d,c)+c)}function Sd(a){var b=(this.F(a&15)&262143)*F,c=this.F(this.i);this.K(this.i,Ld(a,c,b)+b)}function Td(a){var b=this.F(this.i),c=(b&262143)*F;this.K(this.i,Ld(a,b,c)+c);var d=a&15;d&&(b=this.F(d),c=(b&262143)*F,this.K(d,Ld(a,b,c)+c))}function Ud(a){var b=a&15,c=this.F(this.i)&262143,d=this.F(b);this.K(b,Vd(a,d,c)+c)}function Wd(a){var b=a&15,c=this.F(b);this.K(b,Vd(a,c,this.i)+this.i)}
function Xd(a){var b=this.F(a&15)&262143,c=this.F(this.i);this.K(this.i,Vd(a,c,b)+b)}function Yd(a){var b=this.F(this.i);this.K(this.i,Zd(a,b,b));var c=a&15;c&&(b=this.F(c),this.K(c,Zd(a,b,b)))}function $d(a){var b=a&15,c=this.F(this.i)/F|0,d=this.F(b);this.K(b,Vd(a,d,c)+c)}function ae(a){var b=a&15,c=this.F(b);this.K(b,Vd(a,c,0))}function be(a){var b=this.F(a&15)/F|0,c=this.F(this.i);this.K(this.i,Vd(a,c,b)+b)}
function ce(a){var b=this.F(this.i),c=b/F|0;this.K(this.i,Vd(a,b,c)+c);var d=a&15;d&&(b=this.F(d),c=b/F|0,this.K(d,Vd(a,b,c)+c))}function O(a){this.b(a)}function L(a){this.f("undefined opcode: "+pa(a));Ed(this,-1);this.V()}function Vd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Zd(a,b,c){if(a&=384)switch(b&=262143,a){case 256:b+=262143*F;break;case 384:b+=c>Nb?262143*F:0}return b}
function Ld(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Ob?262143:0}return b}function Pd(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Ob?262143:0}return b}
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.i=b.next().value;this.P=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.la=b.next().value;this.v=b.next().value;b=a[2];this.O=b[0];td(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ka,this.ka=d)}a=a[4];for(b=0;b<this.J.length&&b<a.length;b++)this.J[b][0]=
a[b];return!0};function Ed(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Dd(a){var b=[];for(a=a.ka;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.la=a;return b.b[(a&b.u)>>>b.i].G(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.la=a;c.b[(a&c.u)>>>c.i].I(b,a&16383,a)};
l.Ja=function(a){this.j.complete=!0;var b=this.A?Fd(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.M=this.N=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Gd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.ka||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Gd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.P=this.P&4194304?this.G(this.i)&8388607:(this.za=this.G(this.qa=this.u))&8388607;this.i=this.P&262143;
if(a=this.P>>18&15)this.i=this.i+this.G(a)&Lb;this.P&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Rb|0);0<=a&&this.tb(a)}while(0<this.N);return this.j.complete?this.M-this.N:!1===this.j.complete?-1:0};Za(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Bd(d);wb(d,c)}});function Cd(a){Hd[a>>4].call(this,a)}function M(a){this.b(a)}function Id(a){var b=a&15,c=this.G(this.i),d=this.G(b);this.I(b,Jd(a,d,c)+(c-(c&262143)))}
function Kd(a){var b=a&15,c=this.G(b);this.I(b,Jd(a,c,0))}function Ld(a){var b=this.G(a&15),c=this.G(this.i);this.I(this.i,Jd(a,c,b)+(b-(b&262143)))}function Md(a){var b=this.G(this.i),c,d=b;if(c=a&384)switch(d-=d&262143,c){case 256:d+=262143;break;case 384:d+=b>Ob?262143:0}b=d;this.I(this.i,b);(a&=15)&&this.I(a,b)}function Nd(a){var b=a&15,c=(this.G(this.i)&262143)*F,d=this.G(b);this.I(b,Jd(a,d,c)+c)}function Od(a){var b=a&15,c=this.i*F,d=this.G(b);this.I(b,Jd(a,d,c)+c)}
function Pd(a){var b=(this.G(a&15)&262143)*F,c=this.G(this.i);this.I(this.i,Jd(a,c,b)+b)}function Qd(a){var b=this.G(this.i),c=(b&262143)*F,b=Jd(a,b,c)+c;this.I(this.i,b);(a&=15)&&this.I(a,b)}function Rd(a){var b=a&15,c=this.G(this.i)&262143,d=this.G(b);this.I(b,Sd(a,d,c)+c)}function Td(a){var b=a&15,c=this.G(b);this.I(b,Sd(a,c,this.i)+this.i)}function Ud(a){var b=this.G(a&15)&262143,c=this.G(this.i);this.I(this.i,Sd(a,c,b)+b)}
function Vd(a){var b=this.G(this.i),c,d=b;if(c=a&384)switch(d&=262143,c){case 256:d+=262143*F;break;case 384:d+=b>Nb?262143*F:0}b=d;this.I(this.i,b);(a&=15)&&this.I(a,b)}function Wd(a){var b=a&15,c=this.G(this.i)/F|0,d=this.G(b);this.I(b,Sd(a,d,c)+c)}function Xd(a){var b=a&15,c=this.G(b);this.I(b,Sd(a,c,0))}function Yd(a){var b=this.G(a&15)/F|0,c=this.G(this.i);this.I(this.i,Sd(a,c,b)+b)}function Zd(a){var b=this.G(this.i),c=b/F|0,b=Sd(a,b,c)+c;this.I(this.i,b);(a&=15)&&this.I(a,b)}
function O(a){this.b(a)}function L(a){this.f("undefined opcode: "+pa(a));Ed(this,-1);this.V()}function Sd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Jd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Ob?262143:0}return b}
var Hd=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,Jd,Jd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){a&=15;var b=this.F(a);this.K(a,this.F(this.i));this.K(this.i,b)},function(a){a=this.F(a&15);var b=
a/F|0;for(a&=262143;;){this.K(a,this.F(b));if(a==this.i)break;b=b+1&262143;a=a+1&262143}},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.I(a&15,this.G(this.i))},function(a){this.I(a&15,this.i)},function(a){this.I(this.i,this.G(a&15))},function(a){(a&=15)&&this.I(a,this.G(this.i))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},L,function(a){a&=15;var b=this.G(a);this.I(a,this.G(this.i));this.I(this.i,b)},function(a){var b=!1;a&=15;for(var c=this.G(a),d=c/F|0,c=c&262143;!b;)this.I(c,this.G(d)),c==this.i&&(b=!0),d=d+1&262143,c=c+1&262143,this.j.K||(this.I(a,d*F+c),b||Ed(this,-1),b=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Kd,Md,Nd,Od,Qd,Rd,
Sd,Td,Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Ud,Wd,Xd,Yd,$d,ae,be,ce,Ud,Wd,Xd,Yd,$d,ae,be,ce,Ud,Wd,Xd,Yd,$d,ae,be,ce,Ud,Wd,Xd,Yd,$d,ae,be,ce,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Id,Kd,Ld,Md,Nd,Od,Pd,Qd,Rd,Td,Ud,Vd,Wd,Xd,Yd,Zd,Rd,Td,Ud,Vd,Wd,Xd,Yd,Zd,Rd,Td,Ud,Vd,Wd,Xd,Yd,Zd,Rd,Td,Ud,Vd,Wd,Xd,Yd,Zd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
function de(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.G=qa(this.v);if(this.v){a=this.v;var b=ra(this.G);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.b=a.Y,c.T=a.T):c.v=null);ee(c)})}}p(de,v);
de.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;ee(this)};de.prototype.pa=function(){this.T&&(this.A&&fe(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};de.prototype.fa=function(){return!0};
function ee(a){if(!Eb(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Cb(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.u,8,!0)+")");else{var b;b=a.B;if(Ac(a.D,b,a.u,Ic)){var c;for(c=0;c<a.b.length;c++)uc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}E(a)}}Za(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new de(d);wb(d,c)}});
function ge(a){v.call(this,"RAM",a);this.T=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.v=this.G=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.Aa=a.Aa,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);he(c)})}}p(ge,v);ge.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;he(this)};ge.prototype.pa=function(a,b){this.T&&(this.A&&fe(this.A,this.id,this.i,this.u,this.T),delete this.T);b||this.reset();return!0};ge.prototype.fa=function(){return!0};
function he(a){if(a.D&&(!a.v&&a.u&&(Ac(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Eb(a))){if(!a.v)u("No RAM allocated");else if(a.b){if(!a.Aa)return;ie(a,a.Aa,a.na,a.ma,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.G=!0;E(a)}}
ge.prototype.reset=function(){if(this.v&&!this.G){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=ja);f=Math.trunc(Math.abs(f))%ja;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&ie(this,this.Aa,this.na,this.ma,this.i,!this.A)}this.G=!1};
function ie(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)uc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.V(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.U?a.j.J||oc(a):a.j.Z=!0:a.A&&a.j.U?a.V()||a.C.j.reset||(Wc(a.A),I(a.C,-1)):!1===g&&a.V(),!a.j.J&&a.xa&&a.xa.stop()));return f}Za(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ge(d);wb(d,c)}});
function je(a){v.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=ke;b&&(void 0===c&&(c="Panel"),(c=vb(c,this.id))&&(b=c.H[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.ob,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p(je,v);l=je.prototype;
l.ga=function(a,b,c){var d=this;switch(b){case ke:return this.H[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.sb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.vb&&(b=c-(q.Ya-q.pb));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.rb&&(b=q.qb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
function $d(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=qa(this.v);if(this.v){a=this.v;var b=ra(this.F);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.b=a.Y,c.T=a.T):c.v=null);ae(c)})}}p($d,v);
$d.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;ae(this)};$d.prototype.pa=function(){this.T&&(this.A&&be(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};$d.prototype.fa=function(){return!0};
function ae(a){if(!Eb(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Cb(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.u,8,!0)+")");else{var b;b=a.B;if(Ac(a.D,b,a.u,Ic)){var c;for(c=0;c<a.b.length;c++)uc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}E(a)}}Za(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $d(d);wb(d,c)}});
function ce(a){v.call(this,"RAM",a);this.T=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.v=this.F=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.Aa=a.Aa,
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);de(c)})}}p(ce,v);ce.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;de(this)};ce.prototype.pa=function(a,b){this.T&&(this.A&&be(this.A,this.id,this.i,this.u,this.T),delete this.T);b||this.reset();return!0};ce.prototype.fa=function(){return!0};
function de(a){if(a.D&&(!a.v&&a.u&&(Ac(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Eb(a))){if(!a.v)u("No RAM allocated");else if(a.b){if(!a.Aa)return;ee(a,a.Aa,a.na,a.ma,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;E(a)}}
ce.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&ee(this,this.Aa,this.na,this.ma,this.i,!this.A)}this.F=!1};
function ee(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)uc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.V(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.U?a.j.K||oc(a):a.j.Z=!0:a.A&&a.j.U?a.V()||a.C.j.reset||(Wc(a.A),I(a.C,-1)):!1===g&&a.V(),!a.j.K&&a.xa&&a.xa.stop()));return f}Za(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ce(d);wb(d,c)}});
function fe(a){v.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=ge;b&&(void 0===c&&(c="Panel"),(c=vb(c,this.id))&&(b=c.H[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.ob,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p(fe,v);l=fe.prototype;
l.ga=function(a,b,c){var d=this;switch(b){case ge:return this.H[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.sb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.vb&&(b=c-(q.Ya-q.pb));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.rb&&(b=q.qb);d.Na(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.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;E(this)};
l.ob=function(a){if(!this.b){var b=Tc(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.Ka)return;c=Ca(c[1]);if(this.b=ub(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.ob(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=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);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var ke="buffer";
Za(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new je(d);wb(d,c)}});function le(a){v.call(this,"Debugger",a);this.ba=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.v=-1;this.u=[];this.W={}}p(le,v);le.prototype.nb=function(){return-1};le.prototype.Wa=function(){};
function me(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ca(b.substring(c,g))),c=g+1}}return a}
function ne(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=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);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var ge="buffer";
Za(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new fe(d);wb(d,c)}});function he(a){v.call(this,"Debugger",a);this.ba=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.v=-1;this.u=[];this.W={}}p(he,v);he.prototype.nb=function(){return-1};he.prototype.Wa=function(){};
function ie(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ca(b.substring(c,g))),c=g+1}}return a}
function je(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function P(a,b,c){var d;if(b){b=oe(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ca(n);if(!n){g=!0;break}n=pe(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&qe[n]<qe[k[k.length-1]]&&ne(h,k,1);k.push(n);b=b.substr(r+y)}ne(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&re(a,null,
d))}return d}function oe(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",g=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"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 pe(a,b,c,d){var e;null!=b?(e=a.nb(b),0<=e?e=a.Wa(e):(e=a.W[b],null==e&&(e=na(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
function re(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
function se(a,b){if(b)return re(a,b,a.W[b]);var c=0;for(b in a.W)re(a,b,a.W[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=t(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var qe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function te(a){le.call(this,a);this.ya=!1;this.la=!0;this.xa=Q();this.L=Q(0);this.ja=Q(0);this.da=Q(0);this.G=[];this.b=this.M=this.I=[];ue(this);this.R=this.ka=0;this.i=[];this.sa=void 0;ve(this);this.A=this;this.qa={};this.X=this.ib=0;this.S=null;this.O=[];we(this,a.messages);this.ua=a.commands;this.N=0;this.Da=this.ta=null;this.B=this.Ca=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return Yc(b,a)}):void 0===global[B]&&(global[B]=function(a){return Yc(b,
a)})}p(te,le);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function Q(a,b,c){return{w:void 0===a?null:a,lb:void 0===b?!1:b,ea:!1,ba:c}}function xe(a,b,c,d){a.w=b;a.lb=c||!1;a.ea=!1;a.ba=d}function ye(a){return[a.w,a.lb,a.ba,a.ea,a.Oa]}function ze(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=me(a,c.Oa=b[4]));return c}l=te.prototype;
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=Tc(a,"messages"))&&we(this,a);Ae(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c,d.ja));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Dc[c],n&&d.f(t(n.id,8)+" %"+t(e<<d.D.i,8)+" %"+t(n.w,8)+" "+t(n.Ha,
function P(a,b,c){var d;if(b){b=ke(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ca(n);if(!n){g=!0;break}n=le(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&me[n]<me[k[k.length-1]]&&je(h,k,1);k.push(n);b=b.substr(r+y)}je(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&ne(a,null,
d))}return d}function ke(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",g=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"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 le(a,b,c,d){var e;null!=b?(e=a.nb(b),0<=e?e=a.Wa(e):(e=a.W[b],null==e&&(e=na(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
function ne(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
function oe(a,b){if(b)return ne(a,b,a.W[b]);var c=0;for(b in a.W)ne(a,b,a.W[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=t(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var me={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function pe(a){he.call(this,a);this.ya=!1;this.la=!0;this.xa=Q();this.L=Q(0);this.ja=Q(0);this.da=Q(0);this.F=[];this.b=this.M=this.J=[];qe(this);this.R=this.ka=0;this.i=[];this.sa=void 0;re(this);this.A=this;this.qa={};this.X=this.ib=0;this.S=null;this.O=[];se(this,a.messages);this.ua=a.commands;this.N=0;this.Da=this.ta=null;this.B=this.Ca=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return Yc(b,a)}):void 0===global[B]&&(global[B]=function(a){return Yc(b,
a)})}p(pe,he);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function Q(a,b,c){return{w:void 0===a?null:a,lb:void 0===b?!1:b,ea:!1,ba:c}}function te(a,b,c,d){a.w=b;a.lb=c||!1;a.ea=!1;a.ba=d}function ue(a){return[a.w,a.lb,a.ba,a.ea,a.Oa]}function ve(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=ie(a,c.Oa=b[4]));return c}l=pe.prototype;
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=Tc(a,"messages"))&&se(this,a);we(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c,d.ja));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Dc[c],n&&d.f(t(n.id,8)+" %"+t(e<<d.D.i,8)+" %"+t(n.w,8)+" "+t(n.Ha,
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=Hc&&(c=-1),m=0);a+=16384;e++}}});E(this)};
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Yc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-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.H[b]=c,Xa(c,function(){if(d.aa){var a=d.aa.value;
d.aa.value="";Yc(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Xa(c,function(a){var b=!1;Fb(d,!0)||(Gb(d,!0),b=pc(d,a?1:0,null),Gb(d,!1));return b}),!0}return!1};function Xc(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=S(a);-1!==d&&(c=vc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=S(a);-1!==d&&(uc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),I(this.C,-1))};
function T(a,b,c){var d,e;c||(c=Q());var g=c.w;if(void 0!==b){b=oe(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.G.length;k++){var m=a.G[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=Q(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=P(a,b,void 0)}null!=g&&xe(c,g,d,e);return c}function Be(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=me(a,b.Oa=c[2]))}
function Ce(a){return pa(a/Kb,6)+" "+pa(a%Kb,6)}function we(a,b){a.A=a;a.X=a.ib=536870916;a.S=null;a.O=[];b=me(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.f(c+" messages enabled"))}}function Ae(a,b){for(var c in G)if(16==G[c]){a.qa[c]=b;break}}l.nb=function(a){return De.indexOf(a.toUpperCase())};
l.Wa=function(a){var b;switch(a){case Ee:b=this.g.u;break;case Fe:b=this.g.P;break;case Ge:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,Q(this.g.qa).w));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.J)||Fb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,zd(a),a.aa=0,a.C&&I(a.C,void 0))}};
function ve(a){var b;if(!Fd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(He);for(b=0;b<a.i.length;b++)a.i[b]=Q();a.R=0;a.f("instruction history buffer allocated")}}function Ie(a,b,c){if(!Je(a,c))return!1;oc(a.g,b);return!0}
function pc(a,b,c,d){if(!Je(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||Fd(a)&&Gd(a,a.g.u,0);try{b=xd(a.g,b);var g=a.g.Ja(b);0<g&&(qc(a.g,g),a.B+=g,rc(a.g,g,!0),sc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Cb(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),I(a.C,-1));Wc(a,c||!1,e);return 0<a.B}l.V=function(a){this.g&&this.g.V(a)};function Wc(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.f(Ke+c),xe(a.L,a.g.u),b&&1!=a.N?Le(a):Me(a))}
function Je(a,b){var c;(c=!a.g||!Eb(a.g))||(c=a.g,c.j.U?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.J?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Db(a.g)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ve(this);this.ia=0;this.S=null;this.B=0;xe(this.L,this.g.u);this.j.J=!1;Ne(this);a||Wc(this)};
l.save=function(){var a=new H(this);a.set(0,ye(this.L));a.set(1,ye(this.ja));a.set(2,ye(this.da));a.set(3,[this.u,this.P,this.X]);a.set(4,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=ze(this,a[b++]),this.ja=ze(this,a[b++]),this.da=ze(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.G=a[4]);return!0};l.start=function(a,b){this.N||this.f("running");this.j.J=!0;this.za=a;this.Ca=b};
l.stop=function(a,b){if(this.j.J){this.j.J=!1;this.B=b-this.Ca;if(!this.N){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Fd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Hb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}Wc(this,!0);Xc(this);Ne(this,this.g.u);this.S=null}};function Fd(a){return 1<a.b.length||!!a.ka}
function Gd(a,b,c){var d=-1;c||(d=a.g.F(b),2756==d>>23&&a.g.qa==b&&(b=Ed(a.g,1)));if(0<c&&(a.ka&&!--a.ka||Qc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.F(b)),0<=d&&(xe(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}
function Oe(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Pb|0,r;for(r in Pe)if(f=Pe[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=vf;m=n&3;break;case 32256:k=xf;m=n&7;break;case 29248:k=yf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>zf&&(k="B");k=Af[f||0]+k;k=Ba(k,8);f?(k=28700==h?k+K(a,g/Qb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=Ce(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+Ce(k),null==
e.w)break;while(e.w!=b.w)}h+=Ba(f,16)+g;c&&(h=Ba(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+sd(a.g).toString()+" cs="+t(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function ue(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=S(c);var d=a.D;Pc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=S(c),d=a.D,Pc(d.b[c>>>d.i],!0);a.I=["bw"];a.ra=0;a.ka=0}
l.Ba=function(a,b,c){var d=!0;c||Bf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(Cf(this,a,a.length-1,"set"),ve(this)));return d};function Bf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||Cf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Pc(d.b[c>>>d.i],b==a.I));h.ea||ve(a);break}}return g}
function Df(a,b){for(var c=1;c<b.length;c++)Cf(a,b,c);return b.length-1}function Cf(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Ne(a,b){if(void 0!==b)Qc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!Bf(a,a.b,c,!0))break;b=0}}}
function Qc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Bf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!Ef(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.J||(g=!0)}if(g){e||Cf(a,d,f,"hit");break}}}a.ra--;return g}
function Ff(a,b){var c=De[b]||"";c&&(c+="="+K(a,a.Wa(b),b==Fe?23:18)+" ");return c}function Gf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=pa(d,2);xe(e.xa,d);g+="="+K(e,e.wa(e.xa),36)+" ";c+=g}b&&(c+="\n"+(Ff(a,Ee)+Ff(a,Fe)+Ff(a,Ge)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function fe(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Da(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.G.push({$c:b,w:c,zb:d,T:e,hb:g})}function Hf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.G.length;b++){var g=a.G[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=Da(g.hb,[e-f],a.jb);0<=e?If(a,b,e,d):c&&(e=~e,If(a,b,e-1,d),If(a,b,e,d));break}}return d}
function If(a,b,c,d){var e={},g=a.G[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.G[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Jf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return se(a)||a.f("no variables"),!0;if(!c[2])return se(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
function Kf(a,b,c){var d=null;if(b=T(a,b)){var e=Hf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
function Le(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;xe(a.L,e.u);break;default:a.f("unknown register: "+
g);return}I(a.C);a.f("updated registers:")}}a.f(Gf(a,d));c&&(xe(a.L,e.u),Me(a,K(a,a.L.w)))}}function Lf(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):re(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
function Mf(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Wa(c,function(){return Gb(a,!0)&&pc(a,e,d,!1)},function(){a.ha&&a.ha.stop();I(a.C,-1);Gb(a,!1)})}}
function Me(a,b,c,d){if(b=T(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=pe(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Fb(a,!1)||a.N?a.B:null,f=null!=g?"cycles":null,h=Hf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);h=a.da;m=b;h.w=m.w;h.ea=m.ea;h.ba=m.ba;a.f(Oe(a,b,f,g));e-=b.w-k;c++}}}
function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Ke+b):(a.P&&(a.f("ended assemble at "+K(a,a.da.w)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Eb(a)&&0<b.length){a.P&&(b="a "+K(a,a.da.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=T(a,
f[1],a.da);if(r){var y=f[2];if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.P=!0,I(a.C);else{f.shift();f.shift();f.shift();var U,Qe=f.join(""),x=-1,cc,ng=y.toUpperCase(),Zc;for(Zc in Pe){var Ia;cc=+Zc;var Re=Pe[Zc];switch(cc){case 32512:Ia=vf;break;case 32256:Ia=xf;break;case 29248:Ia=yf;break;default:Ia=[""]}var Se,$c;for($c in Re){for(var Te=Re[$c],Ja=0;Ja<Ia.length;Ja++){var ad=Ia[Ja];"S"==ad&&Te>zf&&(ad="B");if(ng==Af[Te]+ad){Se=29248!=cc?Ja:(Ja&3)<<1|(Ja&12)<<2;x=($c|Se<<6)*Pb;break}}if(0<=
x)break}if(0<=x)break}if(0<=x)if(Qe)for(var bd=Qe.split(","),fb=0;fb<bd.length;fb++){var dc=bd[fb].trim();if(dc){if(1<fb){a.f("too many operands: "+dc);x=-1;break}var V=dc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+dc);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!fb&&1<bd.length)if(28700==cc){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Qb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Oe(a,r)))}}break;case "b":a:{var og=f[0],Ka=f[1],pg=b;if("?"==Ka)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var sa=og.charAt(1);if("l"==sa){var cd;cd=0+Df(a,a.b);cd+=Df(a,a.M);(cd+=Df(a,a.I))||a.f("no breakpoints")}else if("n"==sa){var Ue=+Ka||0;Ka&&(a.ka=Ue);a.f("break after "+Ue+" instruction(s)")}else if(void 0===Ka)a.f("missing breakpoint address");else{var J=Q();if("*"!=Ka&&(J=T(a,Ka,a.L),!J))break a;"c"==sa?null==J.w?(ue(a),a.f("all breakpoints cleared")):Bf(a,a.b,J)||Bf(a,a.M,J)||Bf(a,a.I,J)||a.f("breakpoint missing: "+
K(a,J.w)):null!=J.w&&(Be(a,J,pg),"p"==sa?a.Ba(a.b,J):"r"==sa?a.Ba(a.M,J):"w"==sa?a.Ba(a.I,J):a.f("unknown breakpoint command: "+sa))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var La,Ma=f[0],W=f[1],ka=f[2],qg=f[3];if("?"==W){var Na="";for(La in G)a.qa[La]&&(Na&&(Na+=","),Na+=La);Na+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
Na.length&&a.f("dump extension commands:\n\t"+Na)}else if("state"==W){var dd=Nf(a.C,!0);"console"==ka?console.log(dd):(a.oa&&(a.oa.value=""),dd&&a.f(dd))}else if("symbols"==W)for(var ed=0;ed<a.G.length;ed++){var fd=a.G[ed],Oa;for(Oa in fd.T)if("."!=Oa.charAt(0)){var Ve=fd.T[Oa].o;if(void 0!==Ve){var We=fd.T[Oa].l;We&&(Oa=We);a.f(K(a,Ve)+" "+Oa)}}}else{if("d"==Ma){for(La in G)if(f[1]==La){var Xe=a.qa[La];Xe?(f.shift(),f.shift(),Xe(f)):a.f("no dump registered for "+W);break a}W||(Ma=a.Da||"dw")}else a.Da=
Ma;if("dh"==Ma){var Ye=W,Ze=ka,$e="",af=0,R=a.R,X=a.i;if(X.length){var N=+Ye||a.sa,hb=+Ze||10;isNaN(N)?N=hb:$e="more ";N>X.length&&(a.f("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var gd=[];"call"==Ze&&(hb=1E5,gd=["CALL"]);for(void 0!==Ye&&a.f(N+" instructions earlier:");0<hb&&R!=a.R;){var bf=X[R++];if(null==bf.w)break;var ib=Q(bf.w),rg=N--,cf=Oe(a,ib,"history",rg);(!gd.length||0<=cf.indexOf(gd[0]))&&a.f(cf);ib.Ua&&(R+=ib.Ua,hb-=ib.Ua,
N-=ib.Ua);R>=X.length&&(R=0);a.sa=N;af++;hb--}}af||(a.f("no "+$e+"history available"),a.sa=void 0)}else{var Pa=T(a,W,a.ja);if(Pa){var ta=0,df="ds"==Ma;if(ka){if("l"==ka.charAt(0))ka=ka.substr(1)||qg,ta=pe(a,ka);else{var ef=T(a,ka);ef&&(ta=ef.w-Pa.w)}0>ta&&(ta=0);65536<ta&&(ta=65536)}var sg=a.ba;Pa.ba&&(a.ba=Pa.ba);for(var ff="db"==Ma?1:2,hd=ta||32,id=1==ff?2:4,tg=(hd+id-1)/id|0||1,ua="";tg--&&0<hd;){for(var va="",gf="",W=K(a,Pa.w),hf=id;0<hf--&&0<hd--;){var ec=a.wa(Pa,1);df?(va&&(va+=","),va+=ec):
(va+=Ce(ec),va+=" ");for(var jf=0;1==ff&&6>jf;jf++)gf+=String.fromCharCode((ec%64|0)+32),ec/=64}ua&&(ua+="\n");ua=df?ua+(va+","):ua+(W+": "+va+(0>hf?" "+gf:""))}ua&&a.f(ua);a.ba=sg}}}}break;case "e":if("else"==f[0])break;var kf,lf,mf=f[0],jd=f[1];"e"==mf||"ew"==mf?(kf=a.wa,lf=a.$a):jd=null;if(null==jd)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var fc=T(a,jd,a.ja);if(fc)for(var gc=2;gc<f.length;gc++){var kd=P(a,f[gc]);if(void 0===kd){a.f("unknown value: "+f[gc]);
break}a.f("changing "+K(a,fc.w)+" from "+Ce(kf.call(a,fc))+" to "+Ce(kd));lf.call(a,fc,kd,1)}}break;case "g":a:{var nf=f[1],ug=b;if(void 0!==nf){var ld=T(a,nf);if(!ld)break a;Be(a,ld,ug);a.Ba(a.b,ld,!0)}Ie(a,!0,c)}break;case "h":a.j.J?(c||a.f("halting"),a.V()):Fb(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var md;var jb=b.substr(2),jb=Ca(jb);P(a,jb)?(c||a.f("true: "+jb),md=!0):(c||a.f("false: "+jb),md=!1);md||(d=!1);break}g=!0;break;case "k":var vg=f[0];if("?"==f[1])a.f("stack trace commands:"),
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var nd=0,od=Q(),kb=Q();for(a.f("stack trace for "+K(a,kb.w));10>nd;){for(var wa=null,wg=256;65536>kb.w>>>0;){od.w=a.wa(kb,2);if(null==kb.w||!wg--)break;if(!(od.w&1)){for(var xg=a,hc=od,of=null,lb=hc.w,pf=lb,pd=1;6>=pd&&lb;pd++){if(2<pd){hc.w=lb;var ic=Oe(xg,hc);if(0<=ic.indexOf("JSR")){var qf=ic.indexOf(" ");if(lb+(ic.indexOf(" ",qf+1)-qf-1)/2==pf){of=ic;break}}}lb-=2}hc.w=pf;if(wa=of)break}}if(!wa||null==wa)break;var rf=null;
if("ks"==vg){var sf=wa.match(/[0-9A-F]+$/);sf&&(rf=Kf(a,sf[0]))}wa=Ba(wa,50)+" ;"+(rf||"stack="+K(a,kb.w));a.f(wa);nd++}nd||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Kf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var la=0;if("all"==z)la=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){la=G[Y];Z=!!(a.X&la);break}if(!la){a.f("unknown message category: "+
z);break a}}if(la)if("on"==f[2])a.X|=la,Z=!0;else if("off"==f[2]&&(a.X&=~la,Z=!1,1073741824==la)){for(var tf=1E3<=a.O.length?a.O.length-1E3:0;tf<a.O.length;)a.f(a.O[tf++]);a.O=[]}}var yg=0,mb="";for(Y in G)if(!z||z==Y){var zg=!!(a.X&G[Y]);if(null===Z||Z==zg)mb&&(mb+=","),++yg%10||(mb+="\n\t"),"key"==Y&&(Y="keys"),mb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));ve(a)}break;
case "p":if("print"==f[0]){Lf(a,b.substr(5));break}var Ag=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var Bg="pr"==Ag?1:0;if(a.N)a.f("step in progress");else{var uf=Q(a.g.u);a.wa(uf);a.N?(a.Ba(a.b,uf,!0),Ie(a)||(a.C&&wd(a.C),a.N=0)):Mf(a,Bg?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}Le(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==nb)a.ba=nb;
function T(a,b,c){var d,e;c||(c=Q());var g=c.w;if(void 0!==b){b=ke(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.F.length;k++){var m=a.F[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=Q(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=P(a,b,void 0)}null!=g&&te(c,g,d,e);return c}function xe(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=ie(a,b.Oa=c[2]))}
function ye(a){return pa(a/Kb,6)+" "+pa(a%Kb,6)}function se(a,b){a.A=a;a.X=a.ib=536870916;a.S=null;a.O=[];b=ie(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.f(c+" messages enabled"))}}function we(a,b){for(var c in G)if(16==G[c]){a.qa[c]=b;break}}l.nb=function(a){return ze.indexOf(a.toUpperCase())};
l.Wa=function(a){var b;switch(a){case Ae:b=this.g.u;break;case Be:b=this.g.P;break;case Ce:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,Q(this.g.qa).w));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Fb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,zd(a),a.aa=0,a.C&&I(a.C,void 0))}};
function re(a){var b;if(!Fd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(De);for(b=0;b<a.i.length;b++)a.i[b]=Q();a.R=0;a.f("instruction history buffer allocated")}}function Ee(a,b,c){if(!Fe(a,c))return!1;oc(a.g,b);return!0}
function pc(a,b,c,d){if(!Fe(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||Fd(a)&&Gd(a,a.g.u,0);try{b=xd(a.g,b);var g=a.g.Ja(b);0<g&&(qc(a.g,g),a.B+=g,rc(a.g,g,!0),sc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Cb(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),I(a.C,-1));Wc(a,c||!1,e);return 0<a.B}l.V=function(a){this.g&&this.g.V(a)};function Wc(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.f(Ge+c),te(a.L,a.g.u),b&&1!=a.N?He(a):Ie(a))}
function Fe(a,b){var c;(c=!a.g||!Eb(a.g))||(c=a.g,c.j.U?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Db(a.g)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){re(this);this.ia=0;this.S=null;this.B=0;te(this.L,this.g.u);this.j.K=!1;Je(this);a||Wc(this)};
l.save=function(){var a=new H(this);a.set(0,ue(this.L));a.set(1,ue(this.ja));a.set(2,ue(this.da));a.set(3,[this.u,this.P,this.X]);a.set(4,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=ve(this,a[b++]),this.ja=ve(this,a[b++]),this.da=ve(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.F=a[4]);return!0};l.start=function(a,b){this.N||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.N){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Fd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Hb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}Wc(this,!0);Xc(this);Je(this,this.g.u);this.S=null}};function Fd(a){return 1<a.b.length||!!a.ka}
function Gd(a,b,c){var d=-1;c||(d=a.g.G(b),2756==d>>23&&a.g.qa==b&&(b=Ed(a.g,1)));if(0<c&&(a.ka&&!--a.ka||Qc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.G(b)),0<=d&&(te(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}
function Ke(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Pb|0,r;for(r in Le)if(f=Le[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=rf;m=n&3;break;case 32256:k=tf;m=n&7;break;case 29248:k=uf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>vf&&(k="B");k=wf[f||0]+k;k=Ba(k,8);f?(k=28700==h?k+K(a,g/Qb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=ye(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+ye(k),null==
e.w)break;while(e.w!=b.w)}h+=Ba(f,16)+g;c&&(h=Ba(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+Zc(a.g).toString()+" cs="+t(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function qe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=S(c);var d=a.D;Pc(d.b[c>>>d.i],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=S(c),d=a.D,Pc(d.b[c>>>d.i],!0);a.J=["bw"];a.ra=0;a.ka=0}
l.Ba=function(a,b,c){var d=!0;c||xf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(yf(this,a,a.length-1,"set"),re(this)));return d};function xf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||yf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Pc(d.b[c>>>d.i],b==a.J));h.ea||re(a);break}}return g}
function zf(a,b){for(var c=1;c<b.length;c++)yf(a,b,c);return b.length-1}function yf(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Je(a,b){if(void 0!==b)Qc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!xf(a,a.b,c,!0))break;b=0}}}
function Qc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(xf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!Af(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||yf(a,d,f,"hit");break}}}a.ra--;return g}
function Bf(a,b){var c=ze[b]||"";c&&(c+="="+K(a,a.Wa(b),b==Be?23:18)+" ");return c}function Cf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=pa(d,2);te(e.xa,d);g+="="+K(e,e.wa(e.xa),36)+" ";c+=g}b&&(c+="\n"+(Bf(a,Ae)+Bf(a,Be)+Bf(a,Ce)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function be(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Da(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,T:e,hb:g})}function Df(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=Da(g.hb,[e-f],a.jb);0<=e?Ef(a,b,e,d):c&&(e=~e,Ef(a,b,e-1,d),Ef(a,b,e,d));break}}return d}
function Ef(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Ff(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return oe(a)||a.f("no variables"),!0;if(!c[2])return oe(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
function Gf(a,b,c){var d=null;if(b=T(a,b)){var e=Df(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
function He(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;te(a.L,e.u);break;default:a.f("unknown register: "+
g);return}I(a.C);a.f("updated registers:")}}a.f(Cf(a,d));c&&(te(a.L,e.u),Ie(a,K(a,a.L.w)))}}function Hf(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):ne(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
function If(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=le(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Wa(c,function(){return Gb(a,!0)&&pc(a,e,d,!1)},function(){a.ha&&a.ha.stop();I(a.C,-1);Gb(a,!1)})}}
function Ie(a,b,c,d){if(b=T(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=le(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Fb(a,!1)||a.N?a.B:null,f=null!=g?"cycles":null,h=Df(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);h=a.da;m=b;h.w=m.w;h.ea=m.ea;h.ba=m.ba;a.f(Ke(a,b,f,g));e-=b.w-k;c++}}}
function Af(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Ge+b):(a.P&&(a.f("ended assemble at "+K(a,a.da.w)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Eb(a)&&0<b.length){a.P&&(b="a "+K(a,a.da.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=T(a,
f[1],a.da);if(r){var y=f[2];if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.P=!0,I(a.C);else{f.shift();f.shift();f.shift();var U,Me=f.join(""),x=-1,cc,jg=y.toUpperCase(),$c;for($c in Le){var Ia;cc=+$c;var Ne=Le[$c];switch(cc){case 32512:Ia=rf;break;case 32256:Ia=tf;break;case 29248:Ia=uf;break;default:Ia=[""]}var Oe,ad;for(ad in Ne){for(var Pe=Ne[ad],Ja=0;Ja<Ia.length;Ja++){var bd=Ia[Ja];"S"==bd&&Pe>vf&&(bd="B");if(jg==wf[Pe]+bd){Oe=29248!=cc?Ja:(Ja&3)<<1|(Ja&12)<<2;x=(ad|Oe<<6)*Pb;break}}if(0<=
x)break}if(0<=x)break}if(0<=x)if(Me)for(var cd=Me.split(","),fb=0;fb<cd.length;fb++){var dc=cd[fb].trim();if(dc){if(1<fb){a.f("too many operands: "+dc);x=-1;break}var V=dc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+dc);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!fb&&1<cd.length)if(28700==cc){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Qb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Ke(a,r)))}}break;case "b":a:{var kg=f[0],Ka=f[1],lg=b;if("?"==Ka)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var sa=kg.charAt(1);if("l"==sa){var dd;dd=0+zf(a,a.b);dd+=zf(a,a.M);(dd+=zf(a,a.J))||a.f("no breakpoints")}else if("n"==sa){var Qe=+Ka||0;Ka&&(a.ka=Qe);a.f("break after "+Qe+" instruction(s)")}else if(void 0===Ka)a.f("missing breakpoint address");else{var J=Q();if("*"!=Ka&&(J=T(a,Ka,a.L),!J))break a;"c"==sa?null==J.w?(qe(a),a.f("all breakpoints cleared")):xf(a,a.b,J)||xf(a,a.M,J)||xf(a,a.J,J)||a.f("breakpoint missing: "+
K(a,J.w)):null!=J.w&&(xe(a,J,lg),"p"==sa?a.Ba(a.b,J):"r"==sa?a.Ba(a.M,J):"w"==sa?a.Ba(a.J,J):a.f("unknown breakpoint command: "+sa))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var La,Ma=f[0],W=f[1],ia=f[2],mg=f[3];if("?"==W){var Na="";for(La in G)a.qa[La]&&(Na&&(Na+=","),Na+=La);Na+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
Na.length&&a.f("dump extension commands:\n\t"+Na)}else if("state"==W){var ed=Jf(a.C,!0);"console"==ia?console.log(ed):(a.oa&&(a.oa.value=""),ed&&a.f(ed))}else if("symbols"==W)for(var fd=0;fd<a.F.length;fd++){var gd=a.F[fd],Oa;for(Oa in gd.T)if("."!=Oa.charAt(0)){var Re=gd.T[Oa].o;if(void 0!==Re){var Se=gd.T[Oa].l;Se&&(Oa=Se);a.f(K(a,Re)+" "+Oa)}}}else{if("d"==Ma){for(La in G)if(f[1]==La){var Te=a.qa[La];Te?(f.shift(),f.shift(),Te(f)):a.f("no dump registered for "+W);break a}W||(Ma=a.Da||"dw")}else a.Da=
Ma;if("dh"==Ma){var Ue=W,Ve=ia,We="",Xe=0,R=a.R,X=a.i;if(X.length){var N=+Ue||a.sa,hb=+Ve||10;isNaN(N)?N=hb:We="more ";N>X.length&&(a.f("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var hd=[];"call"==Ve&&(hb=1E5,hd=["CALL"]);for(void 0!==Ue&&a.f(N+" instructions earlier:");0<hb&&R!=a.R;){var Ye=X[R++];if(null==Ye.w)break;var ib=Q(Ye.w),ng=N--,Ze=Ke(a,ib,"history",ng);(!hd.length||0<=Ze.indexOf(hd[0]))&&a.f(Ze);ib.Ua&&(R+=ib.Ua,hb-=ib.Ua,
N-=ib.Ua);R>=X.length&&(R=0);a.sa=N;Xe++;hb--}}Xe||(a.f("no "+We+"history available"),a.sa=void 0)}else{var Pa=T(a,W,a.ja);if(Pa){var ta=0,$e="ds"==Ma;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||mg,ta=le(a,ia);else{var af=T(a,ia);af&&(ta=af.w-Pa.w)}0>ta&&(ta=0);65536<ta&&(ta=65536)}var og=a.ba;Pa.ba&&(a.ba=Pa.ba);for(var bf="db"==Ma?1:2,id=ta||32,jd=1==bf?2:4,pg=(id+jd-1)/jd|0||1,ua="";pg--&&0<id;){for(var va="",cf="",W=K(a,Pa.w),df=jd;0<df--&&0<id--;){var ec=a.wa(Pa,1);$e?(va&&(va+=","),va+=ec):
(va+=ye(ec),va+=" ");for(var ef=0;1==bf&&6>ef;ef++)cf+=String.fromCharCode((ec%64|0)+32),ec/=64}ua&&(ua+="\n");ua=$e?ua+(va+","):ua+(W+": "+va+(0>df?" "+cf:""))}ua&&a.f(ua);a.ba=og}}}}break;case "e":if("else"==f[0])break;var ff,gf,hf=f[0],kd=f[1];"e"==hf||"ew"==hf?(ff=a.wa,gf=a.$a):kd=null;if(null==kd)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var fc=T(a,kd,a.ja);if(fc)for(var gc=2;gc<f.length;gc++){var ld=P(a,f[gc]);if(void 0===ld){a.f("unknown value: "+f[gc]);
break}a.f("changing "+K(a,fc.w)+" from "+ye(ff.call(a,fc))+" to "+ye(ld));gf.call(a,fc,ld,1)}}break;case "g":a:{var jf=f[1],qg=b;if(void 0!==jf){var md=T(a,jf);if(!md)break a;xe(a,md,qg);a.Ba(a.b,md,!0)}Ee(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.V()):Fb(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var nd;var jb=b.substr(2),jb=Ca(jb);P(a,jb)?(c||a.f("true: "+jb),nd=!0):(c||a.f("false: "+jb),nd=!1);nd||(d=!1);break}g=!0;break;case "k":var rg=f[0];if("?"==f[1])a.f("stack trace commands:"),
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var od=0,pd=Q(),kb=Q();for(a.f("stack trace for "+K(a,kb.w));10>od;){for(var wa=null,sg=256;65536>kb.w>>>0;){pd.w=a.wa(kb,2);if(null==kb.w||!sg--)break;if(!(pd.w&1)){for(var tg=a,hc=pd,kf=null,lb=hc.w,lf=lb,qd=1;6>=qd&&lb;qd++){if(2<qd){hc.w=lb;var ic=Ke(tg,hc);if(0<=ic.indexOf("JSR")){var mf=ic.indexOf(" ");if(lb+(ic.indexOf(" ",mf+1)-mf-1)/2==lf){kf=ic;break}}}lb-=2}hc.w=lf;if(wa=kf)break}}if(!wa||null==wa)break;var nf=null;
if("ks"==rg){var of=wa.match(/[0-9A-F]+$/);of&&(nf=Gf(a,of[0]))}wa=Ba(wa,50)+" ;"+(nf||"stack="+K(a,kb.w));a.f(wa);od++}od||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Gf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var ja=0;if("all"==z)ja=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){ja=G[Y];Z=!!(a.X&ja);break}if(!ja){a.f("unknown message category: "+
z);break a}}if(ja)if("on"==f[2])a.X|=ja,Z=!0;else if("off"==f[2]&&(a.X&=~ja,Z=!1,1073741824==ja)){for(var pf=1E3<=a.O.length?a.O.length-1E3:0;pf<a.O.length;)a.f(a.O[pf++]);a.O=[]}}var ug=0,mb="";for(Y in G)if(!z||z==Y){var vg=!!(a.X&G[Y]);if(null===Z||Z==vg)mb&&(mb+=","),++ug%10||(mb+="\n\t"),"key"==Y&&(Y="keys"),mb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));re(a)}break;
case "p":if("print"==f[0]){Hf(a,b.substr(5));break}var wg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var xg="pr"==wg?1:0;if(a.N)a.f("step in progress");else{var qf=Q(a.g.u);a.wa(qf);a.N?(a.Ba(a.b,qf,!0),Ee(a)||(a.C&&wd(a.C),a.N=0)):If(a,xg?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}He(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==nb)a.ba=nb;
else{a.f("invalid base: "+nb);break}}a.f("default base: "+a.ba);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.g.da=ob;break;case "start":a.g.ta=ob;break;case "stop":a.g.ia=ob;break;default:a.f("unknown cs option");break a}void 0!==ob&&Vc(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(td(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.W+"x)");break;
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Mf(a,f[0],f[1]);break;case "u":Me(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Jf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.2 ("+
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Lf(a,b.substr(1));break}var qd="commands:",rd;for(rd in Of)qd+="\n"+Ba(rd,9)+Of[rd];Fd(a)||(qd+="\nnote: history disabled if no exec breakpoints");a.f(qd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(wf){a.f("debugger error: "+(wf.stack||wf.message)),d=!1}return d}function Yc(a,b,c){b=me(a,b,c);for(var d in b)if(!Ef(a,b[+d]))return!1;return!0}
var Of={"?":"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"},zf=20,Af=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
Ee=0,Fe=1,Ge=2,De=["PC","RA","EA"],Pf={},Pe=(Pf[28672]={0:101},Pf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Pf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:zf,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Pf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Pf[29248]={24576:79,24640:80,25088:81,25152:82},Pf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Pf),vf=["","I",
"M","S"],xf=" L E LE A GE N G".split(" "),yf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),He=1E3,Ke=">> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new te(d);wb(d,c)}});
function Qf(a,b,c){v.call(this,"Computer",a,33554432);this.j.U=!1;this.R=null;Rf(this,b);this.O=Tc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.G=this.N=null;this.L=this.W=!1;this.I=this.B=null;this.S=this.P=!1;this.da=Tc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Sf(this);if(this.g=vb("CPU",this.id)){this.A=vb("Debugger",this.id);this.D=new wc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=tb(this.id);if((this.u=vb("Panel",this.id))&&this.u.oa)for(b=
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.oa=this.u.oa;this.f(Jb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=Tc(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.b=parseInt(d,10));var g;if(a=Tc(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=Tf),this.b&&(this.I=new H(this,"1.34.2"),Uf(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Vf(this))&&(this.L=!0);if(b){var f=this;Fa(b,null,!0,function(a,b,c){c?(f.G=null,f.L=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(f.M=b,f.W=!0);E(f)})}else E(this);this.H.power||(this.O=!0);!c&&this.O&&Wf(this,this.Ga)}else u("Unable to find CPU component")}p(Qf,v);function Rf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
function Tc(a,b,c,d){var e=b.toLowerCase(),e=Ua(b)||Ua(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Wf(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Eb(g)){Eb(g,function(){Wf(a,b,c)});return}}b.call(a,c)}
function Xf(a,b){var c=new H(a,"1.34.2",Yf);if(Uf(c)&&Zf(c)){var d=c.get($f),e=b?b.get($f):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Qf.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?ag:Tf));if(!this.v){this.v++;var b=!1,c=!1;this.P=!1;var d=this.I||new H(this,"1.34.2");if(a==bg)b=!0;else if(a>Tf){if(Uf(d,this.M)){this.B=new H(this,"1.34.2",cg);Uf(this.B)&&(dg(this,d),a=eg,fg(this.B));this.B.set($f,Ea());gg(this.B);var e=this.b&&!this.L;if(a==ag||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Zf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Uf(d,f):("error"==g&&"no machine state"!=
f?(this.ca("Error: "+f),"unable to verify user"==f&&(Sa(hg,""),this.i=null)):this.f(g+": "+f),fg(d),Uf(d)?(c=Zf(d),e=!0):c=!1))}e&&Xf(this,c?d:null)}else a==eg&&d.clear()}else Xf(this);delete this.M;delete this.I}e=tb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=ig(this,f,d,b,c));b=[d,a,c];a!=bg?Wf(this,this.kb,b):this.kb(b)}};
function ig(a,b,c,d,e){if(!b.j.U){b.j.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(u("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Tf,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.g&&(ig(this,this.g,b,c,a),I(this,-2),this.g.Z());this.P&&(dg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
function dg(a,b){if(sb("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Nf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.2"),f=new H(a,"1.34.2",Yf),h=Ea();f.set($f,h);g.set($f,h);g.set(jg,"1.34.2");g.set(kg,window?window.location.href:null);g.set(lg,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.J),a.g.V()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k<h.length;k++){var m=h[k];m.j.U&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.U=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&mg(a,a.i,g.toString()),gg(f)&&gg(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Cg),d&&g.clear(h)):e=g.toString());c&&(a.j.U=!1,b=a.H.power)&&(b.textContent="Power");a.v=0;return e}
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":If(a,f[0],f[1]);break;case "u":Ie(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Ff(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.2 ("+
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Hf(a,b.substr(1));break}var rd="commands:",sd;for(sd in Kf)rd+="\n"+Ba(sd,9)+Kf[sd];Fd(a)||(rd+="\nnote: history disabled if no exec breakpoints");a.f(rd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(sf){a.f("debugger error: "+(sf.stack||sf.message)),d=!1}return d}function Yc(a,b,c){b=ie(a,b,c);for(var d in b)if(!Af(a,b[+d]))return!1;return!0}
var Kf={"?":"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"},vf=20,wf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
Ae=0,Be=1,Ce=2,ze=["PC","RA","EA"],Lf={},Le=(Lf[28672]={0:101},Lf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Lf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:vf,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Lf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Lf[29248]={24576:79,24640:80,25088:81,25152:82},Lf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Lf),rf=["","I",
"M","S"],tf=" L E LE A GE N G".split(" "),uf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),De=1E3,Ge=">> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new pe(d);wb(d,c)}});
function Mf(a,b,c){v.call(this,"Computer",a,33554432);this.j.U=!1;this.R=null;Nf(this,b);this.O=Tc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.L=this.W=!1;this.J=this.B=null;this.S=this.P=!1;this.da=Tc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Of(this);if(this.g=vb("CPU",this.id)){this.A=vb("Debugger",this.id);this.D=new wc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=tb(this.id);if((this.u=vb("Panel",this.id))&&this.u.oa)for(b=
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.oa=this.u.oa;this.f(Jb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=Tc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=Tc(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=Pf),this.b&&(this.J=new H(this,"1.34.2"),Qf(this.J)?b=null:
delete this.J);!b&&this.b&&(b=Rf(this))&&(this.L=!0);if(b){var f=this;Fa(b,null,!0,function(a,b,c){c?(f.F=null,f.L=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(f.M=b,f.W=!0);E(f)})}else E(this);this.H.power||(this.O=!0);!c&&this.O&&Sf(this,this.Ga)}else u("Unable to find CPU component")}p(Mf,v);function Nf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
function Tc(a,b,c,d){var e=b.toLowerCase(),e=Ua(b)||Ua(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Sf(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Eb(g)){Eb(g,function(){Sf(a,b,c)});return}}b.call(a,c)}
function Tf(a,b){var c=new H(a,"1.34.2",Uf);if(Qf(c)&&Vf(c)){var d=c.get(Wf),e=b?b.get(Wf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Mf.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?Xf:Pf));if(!this.v){this.v++;var b=!1,c=!1;this.P=!1;var d=this.J||new H(this,"1.34.2");if(a==Yf)b=!0;else if(a>Pf){if(Qf(d,this.M)){this.B=new H(this,"1.34.2",Zf);Qf(this.B)&&($f(this,d),a=ag,bg(this.B));this.B.set(Wf,Ea());cg(this.B);var e=this.b&&!this.L;if(a==Xf||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Vf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Qf(d,f):("error"==g&&"no machine state"!=
f?(this.ca("Error: "+f),"unable to verify user"==f&&(Sa(dg,""),this.i=null)):this.f(g+": "+f),bg(d),Qf(d)?(c=Vf(d),e=!0):c=!1))}e&&Tf(this,c?d:null)}else a==ag&&d.clear()}else Tf(this);delete this.M;delete this.J}e=tb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=eg(this,f,d,b,c));b=[d,a,c];a!=Yf?Sf(this,this.kb,b):this.kb(b)}};
function eg(a,b,c,d,e){if(!b.j.U){b.j.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(u("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Pf,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.g&&(eg(this,this.g,b,c,a),I(this,-2),this.g.Z());this.P&&($f(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
function $f(a,b){if(sb("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
function Jf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.2"),f=new H(a,"1.34.2",Uf),h=Ea();f.set(Wf,h);g.set(Wf,h);g.set(fg,"1.34.2");g.set(gg,window?window.location.href:null);g.set(hg,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.V()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k<h.length;k++){var m=h[k];m.j.U&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.U=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&ig(a,a.i,g.toString()),cg(f)&&cg(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==yg),d&&g.clear(h)):e=g.toString());c&&(a.j.U=!1,b=a.H.power)&&(b.textContent="Power");a.v=0;return e}
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ib(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ib(this,"Resetting "+this.g.type),this.g.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ib(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.g){var c=a.g,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.J?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.g.j.J;d=!!(a.g.v&8);if(0>=b||60<=(a.L+=b)){e=a.g.u;if(a.H.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?pa(e,void 0):t(e,void 0);a.H.PC.textContent!=e&&(a.H.PC.textContent=e)}a.L=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.la);$b(a,a.i);Ub(a,a.v)}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.v||(d.j.U?Nf(d,!1,!0):Wf(d,d.Ga))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.j.U&&!d.v)if(d.b&&!d.G){var a=sb("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Nf(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(Tf)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(xa())c.parentNode.removeChild(c);else return this.H[b]=
c,c.onclick=function(){var a=Sf(d,!0);if(a){var b=!!(d.b&&!d.G||d.N),c=Nf(d,b);b?mg(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
function Sf(a,b){var c=a.i;c||((c=Ra(hg),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Dg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
function Dg(a,b){a.i=null;b=Fa(ya()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Sa(hg,b.data),a.i=b.data)}catch(d){u(d.message+" ("+c+")")}return a.i}function Vf(a){var b=null;a.i&&(b=ya()+"/api/v1/user?req=load&user="+a.i+"&state="+Eg(a,"1.34.2"));return b}
function mg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Eg(a,"1.34.2");d.data=c;b=Fa(ya()+"/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.ca("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.ca(c),Sa(hg,""),a.i=null)}}
function wd(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var cg="failsafe",Yf="validate",$f="timestamp",jg="version",kg="url",lg="browser",hg="user",bg=-1,Tf=0,ag=1,eg=2,Cg=3;Za(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var g=c[e],f=A(g),f=new Qf(f,d,!0);wb(f,g);f.O&&Wf(f,f.Ga)}});
$a.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=vb("Computer",c.id))&&c.S&&!c.j.U&&c.Ga(bg)}});$a.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=vb("Computer",c.id))&&c.j.U&&Nf(c,!(!c.b||c.G),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=Eg(a,b,c);fg(this,a.ub)}l=H.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function Uf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:Ha()&&(b=Ra(a.key))?(a.g=b,a.A=!0):!1}function Zf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){u(c.message||c),b=!1}return b}function gg(a){var b=!0;if(Ha()){var c=JSON.stringify(a.b);Sa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
function fg(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){fg(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 Eg(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}var Fg=0;
function Gg(a,b,c,d,e,g,f){g("Loading "+a+"...");Fa(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Hg(k,a,b,c,d,e,g,f)})}
function Hg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(pb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(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(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Ig(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Ig(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],f);Ig(a,b,c)}})}else c(a,null)}
function Jg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function f(a){g("Error: "+a);m&&(--Fg||cb(!0));m=!1}var h,k,m=!0;Fg++;qb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Gg(d,null,a,null,!1,g,function(a,e){e?(pb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Fg||cb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Fg||
cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Gg(c,b,a,e,!0,g,n):Hg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){cb(!1);return Jg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Jg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
function I(a,b){if(a.g){var c=a.g,d=b||0,e=c.H.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.L+=b)){e=a.g.u;if(a.H.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?pa(e,void 0):t(e,void 0);a.H.PC.textContent!=e&&(a.H.PC.textContent=e)}a.L=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.la);$b(a,a.i);Ub(a,a.v)}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.H[b]=c,c.onclick=function(){d.v||(d.j.U?Jf(d,!1,!0):Sf(d,d.Ga))},!0;case "reset":return this.H[b]=c,c.onclick=function(){if(d.j.U&&!d.v)if(d.b&&!d.F){var a=sb("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Jf(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(Pf)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(xa())c.parentNode.removeChild(c);else return this.H[b]=
c,c.onclick=function(){var a=Of(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=Jf(d,b);b?ig(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
function Of(a,b){var c=a.i;c||((c=Ra(dg),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=zg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
function zg(a,b){a.i=null;b=Fa(ya()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Sa(dg,b.data),a.i=b.data)}catch(d){u(d.message+" ("+c+")")}return a.i}function Rf(a){var b=null;a.i&&(b=ya()+"/api/v1/user?req=load&user="+a.i+"&state="+Ag(a,"1.34.2"));return b}
function ig(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ag(a,"1.34.2");d.data=c;b=Fa(ya()+"/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.ca("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.ca(c),Sa(dg,""),a.i=null)}}
function wd(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var Zf="failsafe",Uf="validate",Wf="timestamp",fg="version",gg="url",hg="browser",dg="user",Yf=-1,Pf=0,Xf=1,ag=2,yg=3;Za(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var g=c[e],f=A(g),f=new Mf(f,d,!0);wb(f,g);f.O&&Sf(f,f.Ga)}});
$a.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=vb("Computer",c.id))&&c.S&&!c.j.U&&c.Ga(Yf)}});$a.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=vb("Computer",c.id))&&c.j.U&&Jf(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=Ag(a,b,c);bg(this,a.ub)}l=H.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function Qf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:Ha()&&(b=Ra(a.key))?(a.g=b,a.A=!0):!1}function Vf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){u(c.message||c),b=!1}return b}function cg(a){var b=!0;if(Ha()){var c=JSON.stringify(a.b);Sa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
function bg(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){bg(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 Ag(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Bg=0;
function Cg(a,b,c,d,e,g,f){g("Loading "+a+"...");Fa(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Dg(k,a,b,c,d,e,g,f)})}
function Dg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(pb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(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(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Eg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Eg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],f);Eg(a,b,c)}})}else c(a,null)}
function Fg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function f(a){g("Error: "+a);m&&(--Bg||cb(!0));m=!1}var h,k,m=!0;Bg++;qb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Cg(d,null,a,null,!1,g,function(a,e){e?(pb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Bg||cb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Bg||
cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Cg(c,b,a,e,!0,g,n):Dg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){cb(!1);return Fg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Fg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!yb[a]){for(var c=!0,d=yb,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;xb(a)||(c=!1)}return c};window.enableEvents=cb;window.sendEvent=eb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map

View file

@ -33,7 +33,7 @@ function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.protot
ha("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={yb:0,Ra:1,Ab:2,Bb:3,Cb:4,Db:5,Eb:6,Fb:7,Ja:8,Gb:9,Sa:10,Hb:11,Ib:12,Ta:13,Jb:14,Kb:15,Lb:16,Mb:17,Nb:18,Ob:19,Pb:20,Qb:21,Rb:22,Sb:23,Tb:24,Ub:25,Vb: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,Ia:65,xb:66,zb:67,Wb:68,E:69,Xb:70,Yb:71,Zb:72,$b:73,ac:74,bc:75,cc:76,dc:77,ec:78,fc:79,gc:80,Q:81,
hc:82,ic:83,jc:84,kc:85,lc:86,mc:87,nc:88,oc:89,Ya:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pc:97,qc:98,rc:99,d:100,e:101,sc:102,tc:103,uc:104,vc:105,wc:106,k:107,xc:108,yc:109,n:110,zc:111,p:112,q:113,r:114,Ac:115,t:116,Bc:117,Cc:118,Dc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ua:127};
function la(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ma(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return la(a,8,b,"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return la(a,16,b,c?"0x":"")}function na(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ma(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ka(a,8,b,"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ka(a,16,b,c?"0x":"")}function na(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(){var a=u();return-1!==a.indexOf("pcjs.org",a.length-8)}function qa(a){return a.replace(/[&<>"']/g,function(a){return ra[a]})}function sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};
function ta(){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 w(a,b,c,d){c=void 0===c?!1:c;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,
@ -44,7 +44,7 @@ function u(){return"http://"+(window?window.location.host:"www.pcjs.org")}functi
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(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)}return!1}
function Aa(a){if(!Ba){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function y(a){z.init.push(a)}
function Da(a){if(Ea)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 A(a){!Ea&&a?(Ea=!0,Fa&&Ga("init"),Ha&&Ga("show")):Ea=a}function Ga(a){z[a]&&Da(z[a])}var Ba=null,z={init:[],show:[],exit:[]},Fa=!1,Ha=!1,Ea=!0,wa=null;Ca("onload",function(){Fa=!0;Da(z.init)});Ca("onpageshow",function(){Ha=!0;Da(z.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Da(z.exit)});
function B(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.Xa=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.u=this.f=this.m=this.o=this.ba=null;C.push(this)}function Ia(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function D(){return Date.now()||+new Date}
function B(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.Xa=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.v=this.f=this.m=this.s=this.ba=null;C.push(this)}function Ia(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function D(){return Date.now()||+new Date}
function x(a){window&&window.alert(a)}function Ka(a){var b=!1;window&&(b=window.confirm(a));return b}function E(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<C.length;b++){var d=C[b];a&&d.id.indexOf(a)||c.push(d)}return c}function La(a){if(void 0!==a){var b;for(b=0;b<C.length;b++)if(C[b].id===a)return C[b]}return null}
function F(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<C.length;d++)if(c)c==C[d]&&(c=null);else if(!(a!=C[d].type||b&&C[d].id.indexOf(b)))return C[d]}return null}function G(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function H(a,b){var c=I;b=J(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),p=0;p<l.length;p++)switch(h=l[p],h){case c+"-binding":(h=G(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.length}}}}
@ -57,105 +57,105 @@ window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machin
var Ja=window?window.PCjs.Machines:{},C=window?window.PCjs.Components:[],Na=window?window.PCjs.Commands:{},Oa=["hold","sleep","wait"],Pa={alert:function(a){x(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Qa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
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 I="pdp10",L="PDPjs",Ta=Math.pow(2,18),Ua=Math.pow(2,18)-1,Va=Math.pow(2,36),M=Math.pow(2,18),Wa=Math.pow(2,17)-1,Xa=Math.pow(2,35)-1,Ya=Math.pow(2,23),I="pdp10",L="PDPjs";
function Za(a,b){B.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.b=this.w=this.g=this.h=0;this.G=this.I=-1;this.L=this.M=this.s=!1;this.O=$a;this.j={};this.a={START:[1,1,!0,!1,this.ib],STEP:[1,1,!1,!1,this.jb],ENABLE:[1,1,!1,!1,this.cb],CONT:[1,1,!0,!1,this.ab],DEP:[0,0,!0,!1,this.bb],EXAM:[1,1,!0,!1,this.eb],LOAD:[1,1,!0,!1,this.gb],TEST:[0,0,!0,!1,this.fb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.hb,a];this.u=this.f=this.m=this.o=null;this.exports={hold:this.$a,toggle:this.sb,reset:this.ob,
set:this.rb};K(this)}n(Za,B);k=Za.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
k.U=function(a,b,c,d){if(this.o&&this.o.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ab(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ab(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bb(a,b)}}(this,b),!0):B.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.o=a;this.m=b;this.f=c;this.u=d;cb(this);db(this)};k.V=function(a,b){if(!b)if(this.R&&eb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,[this.b,this.h,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])fb(this,this.b=a[0]),N(this,this.h=a[1]),gb(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}db(this);return!0};function hb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cb(a,b){for(var c in a.j)hb(a,c,null!=b?b:a.j[c])}function ib(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function db(a){for(var b in a.a)ib(a,b,a.a[b][1])}
var I="pdp10",L="PDPjs",M=Math.pow(2,18),Ta=Math.pow(2,18)-1,Ua=Math.pow(2,36),N=Math.pow(2,18),Va=Math.pow(2,17)-1,Wa=Math.pow(2,35)-1,Xa=Math.pow(2,23),I="pdp10",L="PDPjs";
function Ya(a,b){B.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.b=this.w=this.g=this.h=0;this.G=this.I=-1;this.L=this.M=this.u=!1;this.O=Za;this.j={};this.a={START:[1,1,!0,!1,this.ib],STEP:[1,1,!1,!1,this.jb],ENABLE:[1,1,!1,!1,this.cb],CONT:[1,1,!0,!1,this.ab],DEP:[0,0,!0,!1,this.bb],EXAM:[1,1,!0,!1,this.eb],LOAD:[1,1,!0,!1,this.gb],TEST:[0,0,!0,!1,this.fb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.hb,a];this.v=this.f=this.m=this.s=null;this.exports={hold:this.$a,toggle:this.sb,reset:this.ob,
set:this.rb};K(this)}n(Ya,B);k=Ya.prototype;k.reset=function(a){this.stop();a&&$a(this,this.h=0)};
k.U=function(a,b,c,d){if(this.s&&this.s.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ab(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ab(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bb(a,b)}}(this,b),!0):B.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.s=a;this.m=b;this.f=c;this.v=d;cb(this);db(this)};k.V=function(a,b){if(!b)if(this.R&&eb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,[this.b,this.h,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])fb(this,this.b=a[0]),$a(this,this.h=a[1]),gb(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}db(this);return!0};function hb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cb(a,b){for(var c in a.j)hb(a,c,null!=b?b:a.j[c])}function ib(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function db(a){for(var b in a.a)ib(a,b,a.a[b][1])}
k.$a=function(a,b,c){if(ab(this,b)){if(c){var d=this;setTimeout(function(){bb(d,b);a&&a()},+c);return!1}bb(this,b)}return!0};
k.rb=function(a,b){if("SR"==a){a=b;b=8;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)}return gb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,ib(this,a,c[1]),!0):!1};k.sb=function(a){return ab(this,a)?(bb(this,a),!0):!1};function ab(a,b){var c=a.a[b];return c?(ib(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=jb&&(a.L=b==kb,a.M=b==lb),!0):!1}function bb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(ib(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.ib=function(a){a||this.f.c.A||(this.f.h=this.b%Ta,this.a[mb]&&this.a[mb][1]&&nb(this.f))};k.jb=function(){};k.cb=function(a){a||P(this.f)};k.ab=function(a){if(!a&&!this.f.c.A)if(this.a[mb]&&this.a[mb][1])nb(this.f);else{a=this.u;var b;if(b=a)a.c.ra&&(a.c.Da=!0),b=!a.c.ra;if(b)Sa(a,!0),a.b(0,null),Sa(a,!1);else try{var c=this.f.wa(1);0<c&&(ob(this.f,c),pb(this.f,c,!0),qb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.c.error=!0,c.F(a))}this.stop();this.o&&Q(this.o)}};
k.bb=function(a){a&&!this.f.c.A&&(this.L&&rb(this),a=N(this,this.h=this.g),this.O==$a?sb(this.m,this.b,a):this.f.v(this.b,a))};k.eb=function(a){if(!a&&!this.f.c.A){this.M&&rb(this);if(this.O==$a){a=this.m;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.h++;b=c.m(b&16383,b);a.h--;a=b}else a=this.f.l(this.b);N(this,this.h=a)}};k.gb=function(a){a||this.f.c.A||fb(this,this.g)};k.fb=function(a){a?(this.s=!0,cb(this,!0)):(this.s=!1,cb(this),gb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
function rb(a){var b=1,c=a.m.g;a.a[jb]&&a.a[jb][1]||(b=-b);fb(a,a.b&~c|a.b+b&c)}function fb(a,b){a.b=b&a.m.g;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||hb(d,e,f)}}}function N(a,b){a.w=b%Va;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||hb(d,e,f)}}return a.w}function gb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;db(a);return!0}k.stop=function(){fb(this,this.f.h)};
function eb(){for(var a=J(document,I,"panel"),b=0;b<a.length;b++){var c=a[b],d=G(c),e=La(d.id);e||(e=new Za(d,!0));H(e,c)}}var $a=7,kb="DEP",mb="ENABLE",lb="EXAM",jb="STEP";y(eb);function tb(a,b,c){B.call(this,"Bus",a);this.f=b;this.u=c;this.w=+a.busWidth||18;this.s=1<<this.w;this.g=this.s-1;this.b=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new R(this);ub(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;K(this)}n(tb,B);k=tb.prototype;k.reset=function(){};
k.ib=function(a){a||this.f.c.A||(this.f.g=this.b%M,this.a[mb]&&this.a[mb][1]&&nb(this.f))};k.jb=function(){};k.cb=function(a){a||P(this.f)};k.ab=function(a){if(!a&&!this.f.c.A)if(this.a[mb]&&this.a[mb][1])nb(this.f);else{a=this.v;var b;if(b=a)a.c.ra&&(a.c.Da=!0),b=!a.c.ra;if(b)Sa(a,!0),a.b(0,null),Sa(a,!1);else try{var c=this.f.wa(1);0<c&&(ob(this.f,c),pb(this.f,c,!0),qb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.c.error=!0,c.F(a))}this.stop();this.s&&Q(this.s)}};
k.bb=function(a){a&&!this.f.c.A&&(this.L&&rb(this),a=$a(this,this.h=this.g),this.O==Za?sb(this.m,this.b,a):this.f.o(this.b,a))};k.eb=function(a){if(!a&&!this.f.c.A){this.M&&rb(this);if(this.O==Za){a=this.m;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.h++;b=c.m(b&16383,b);a.h--;a=b}else a=this.f.l(this.b);$a(this,this.h=a)}};k.gb=function(a){a||this.f.c.A||fb(this,this.g)};k.fb=function(a){a?(this.u=!0,cb(this,!0)):(this.u=!1,cb(this),gb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
function rb(a){var b=1,c=a.m.g;a.a[jb]&&a.a[jb][1]||(b=-b);fb(a,a.b&~c|a.b+b&c)}function fb(a,b){a.b=b&a.m.g;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.u||hb(d,e,f)}}}function $a(a,b){a.w=b%Ua;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.u||hb(d,e,f)}}return a.w}function gb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;db(a);return!0}k.stop=function(){fb(this,this.f.g)};
function eb(){for(var a=J(document,I,"panel"),b=0;b<a.length;b++){var c=a[b],d=G(c),e=La(d.id);e||(e=new Ya(d,!0));H(e,c)}}var Za=7,kb="DEP",mb="ENABLE",lb="EXAM",jb="STEP";y(eb);function tb(a,b,c){B.call(this,"Bus",a);this.f=b;this.v=c;this.w=+a.busWidth||18;this.u=1<<this.w;this.g=this.u-1;this.b=Math.log2(16384);this.j=this.u/16384|0;this.h=0;this.a=[];a=new R(this);ub(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;K(this)}n(tb,B);k=tb.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,vb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function wb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return xb(yb,e,f)}e=new R(a,e,p,16384,d);ub(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+zb[d]+" at "+ma(b)),!0):xb(Ab,b,c)}function sb(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.b(c,b&16383,b);a.h--}
function vb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function xb(a,b,c){x("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var yb=1,Ab=2;function Bb(a){B.call(this,"Device",a)}n(Bb,B);k=Bb.prototype;k.Z=function(a,b,c,d){this.m=b;this.o=a;this.f=c;this.u=d;K(this)};
function wb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return xb(yb,e,f)}e=new R(a,e,p,16384,d);ub(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+zb[d]+" at "+ma(b)),!0):xb(Ab,b,c)}function sb(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.i(c,b&16383,b);a.h--}
function vb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function xb(a,b,c){x("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var yb=1,Ab=2;function Bb(a){B.call(this,"Device",a)}n(Bb,B);k=Bb.prototype;k.Z=function(a,b,c,d){this.m=b;this.s=a;this.f=c;this.v=d;K(this)};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new O(this)).data()};k.restore=function(){return!0};y(function(){for(var a=J(document,I,"device"),b=0;b<a.length;b++){var c,d=a[b];c=G(d);switch(c.type){case "default":c=new Bb(c),H(c,d)}}});
function R(a,b,c,d,e){this.u=a;this.id=Cb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Db;this.o=e==Eb;this.l=this.m=this.Fa;this.v=this.b=this.Ha;this.f=this.i=0;ub(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Fb(this,Gb)}else Fb(this)}k=R.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Fb(a,b){b||(b=Hb);Ib(a,b,void 0);Jb(a,b,void 0)}
function Ib(a,b,c){c&&a.f||(a.l=b[0]||a.Fa);if(c||void 0===c)a.m=b[0]||a.Fa}function Jb(a,b,c){c&&a.i||(a.v=!a.o&&b[1]||a.Ha);if(c||void 0===c)a.b=b[1]||a.Ha}function ub(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Ib(a,Kb,!1),(a.i=b.i)&&Jb(a,Kb,!1))}k.Fa=function(){var a=this.u;a.h||P(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.m(a,b)};k.ub=function(a,b,c){this.o||this.b(a,b,c)};
function R(a,b,c,d,e){this.v=a;this.id=Cb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Db;this.s=e==Eb;this.l=this.m=this.Fa;this.o=this.i=this.Ha;this.f=this.b=0;ub(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Fb(this,Gb)}else Fb(this)}k=R.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Fb(a,b){b||(b=Hb);Ib(a,b,void 0);Jb(a,b,void 0)}
function Ib(a,b,c){c&&a.f||(a.l=b[0]||a.Fa);if(c||void 0===c)a.m=b[0]||a.Fa}function Jb(a,b,c){c&&a.b||(a.o=!a.s&&b[1]||a.Ha);if(c||void 0===c)a.i=b[1]||a.Ha}function ub(a,b){a.f=a.b=0;b&&((a.f=b.f)&&Ib(a,Kb,!1),(a.b=b.b)&&Jb(a,Kb,!1))}k.Fa=function(){var a=this.v;a.h||P(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.m(a,b)};k.ub=function(a,b,c){this.s||this.i(a,b,c)};
var Db=0,Eb=2,zb=["NONE","RAM","ROM"],Cb=0,Hb=[],Gb=[R.prototype.mb,R.prototype.vb],Kb=[R.prototype.kb,R.prototype.ub];
function Lb(a,b){B.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.c.A=this.c.Ga=!1;this.c.J=a.autoStart;"string"==typeof this.c.J&&(this.c.J="true"==this.c.J);this.c.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.s=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
null;K(this)}n(Lb,B);k=Lb.prototype;k.Z=function(a,b,c,d){this.o=a;this.m=b;this.u=d;this.ka=a.g;for(a=0;a<Mb.length;a++)(b=this.i[Mb[a]])&&this.o.U(null,Mb[a],b);K(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=S(this.o,"autoStart");null!=c?this.c.J="true"==c?!0:"false"==c?!1:!!c:null==this.c.J&&(this.c.J=void 0===this.i.run);if(!b){if(a){Nb(this);if(!this.restore(a))return!1;Ob(this)}else this.reset();this.status("No debugger detected");this.c.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.c.A?!0:this.c.J?(nb(this),!0):!1};k.Pa=function(){return 0};
function Lb(a,b){B.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.c.A=this.c.Ga=!1;this.c.J=a.autoStart;"string"==typeof this.c.J&&(this.c.J="true"==this.c.J);this.c.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.u=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
null;K(this)}n(Lb,B);k=Lb.prototype;k.Z=function(a,b,c,d){this.s=a;this.m=b;this.v=d;this.ka=a.g;for(a=0;a<Mb.length;a++)(b=this.i[Mb[a]])&&this.s.U(null,Mb[a],b);K(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=S(this.s,"autoStart");null!=c?this.c.J="true"==c?!0:"false"==c?!1:!!c:null==this.c.J&&(this.c.J=void 0===this.i.run);if(!b){if(a){Nb(this);if(!this.restore(a))return!1;Ob(this)}else this.reset();this.status("No debugger detected");this.c.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.c.A?!0:this.c.J?(nb(this),!0):!1};k.Pa=function(){return 0};
function Ob(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.c.sa=0<=a.oa&&0<a.da;a.c.sa&&(a.na=0,a.R=a.oa-a.I)}function qb(a,b){if(a.c.sa){var c=!1;a.na=a.na+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Pb(a)&&(a.da=a.ea=-1,Ob(a),P(a),c=!0);c&&a.K(Pb(a)+" cycles: checksum="+t(a.na))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.c.B)a=!0;else{var b=null,c,h=E(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.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.c.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.c.A?P(d):nb(d))},!0;case "speed":return this.i[b]=
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Qb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function pb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Rb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Sb);a.fa=Math.floor(a.Ba/Sb*c);b||(a.X=a.fa);a.pa=0}function Pb(a){return a.I+a.s+a.D-a.G}function Nb(a){a.L=0;a.Ca=0;a.I=a.s=a.D=a.G=0;Ob(a);Qb(a,1)}
function Qb(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}pb(a,a.s);a.s=0;a.j=D();a.C=0;Rb(a)}function Tb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.c.B)a=!0;else{var b=null,c,h=E(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.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.c.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.c.A?P(d):nb(d))},!0;case "speed":return this.i[b]=
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Qb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function pb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Rb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Sb);a.fa=Math.floor(a.Ba/Sb*c);b||(a.X=a.fa);a.pa=0}function Pb(a){return a.I+a.u+a.D-a.G}function Nb(a){a.L=0;a.Ca=0;a.I=a.u=a.D=a.G=0;Ob(a);Qb(a,1)}
function Qb(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.s&&(c=a.s,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}pb(a,a.u);a.u=0;a.j=D();a.C=0;Rb(a)}function Tb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
function ob(a,b){for(var c=a.w.length-1;0<=c;c--){var d=a.w[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Ub(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
k.pb=function(){if(this.c.A){this.pa>=this.Ba&&Rb(this,!0);this.ca=0;this.ja=D();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Ub(this,!0);this.ca+=b;this.s+=b;qb(this,b);ob(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Vb&&(this.o&&Q(this.o,void 0),this.Ca=0);break}}while(this.c.A)}catch(f){P(this);
this.o&&this.o.stop(D(),Pb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Na;this.C=D();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.s/(10*d))/100,864E5<=d&&(this.I=0,Qb(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
function nb(a){var b;a.c.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.K(a.toString()+" busy");else{Qb(a);a.c.A=!0;a.c.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Pb(a));a.u||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Ub(a);pb(a,a.s);a.s=0;a.c.A=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(D(),Pb(a));b=!0;a.u||a.status("Stopped")}a.c.complete=void 0;return b}var Sb=30,Vb=15,Mb=["power","reset"];
function Wb(a){var b=+a.model||1001;Lb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Xb.bind(this);this.a=T.bind(this);this.ha=null;this.Ka=[];this.c.complete=!1}n(Wb,Lb);k=Wb.prototype;k.reset=function(){this.status("Model "+this.Va);this.c.A&&P(this);this.b=this.M=this.qa=0;this.ia=this.h=this.ya=this.La;this.g=0;this.l=this.lb;this.v=this.wb;this.ha=null;Nb(this);this.c.error=!1;Lb.prototype.reset.call(this)};k.Pa=function(){return 0};
k.save=function(){var a=new O(this);a.set(0,[this.b,this.M,this.qa,this.h,this.ya,this.ia,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.c.J]);a.set(3,Yb(this));a.set(4,Tb(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.h=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Qb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
a[b];return!0};function Yb(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.m;a=this.ia=a;return b.a[(a&b.g)>>>b.b].l(a&16383,a)};k.wb=function(a,b){var c=this.m;a=this.ia=a;c.a[(a&c.g)>>>c.b].v(b,a&16383,a)};
k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ga?0:1:-1;this.c.Ga=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ha||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.u.h(this.h,b)){P(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.l(this.b)&8388607:(this.qa=this.l(this.ya=this.h))&8388607;this.b=this.M&262143;if(a=this.M>>18&15)this.b=this.b+this.l(a)&Ua;this.M&4194304?a=-1:(this.h=(this.h+1)%Ta,a=this.qa/Ya|0);0<=a&&this.Wa(a)}while(0<
this.G);return this.c.complete?this.D-this.G:!1===this.c.complete?-1:0};y(function(){for(var a=J(document,I,"cpu"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Wb(d);H(d,c)}});function Xb(a){Zb[a>>4].call(this,a)}function U(a){this.a(a)}function $b(a){this.a(a)}function ac(a){this.a(a)}function bc(a){var b=a&15,c=this.l(this.b),d=this.l(b);this.v(b,V(a,d,c)+(c-(c&262143)))}function cc(a){var b=a&15,c=this.l(b);this.v(b,V(a,c,0))}
function dc(a){var b=this.l(a&15),c=this.l(this.b);this.v(this.b,V(a,c,b)+(b-(b&262143)))}function ec(a){var b=this.l(this.b);this.v(this.b,fc(a,b,b));var c=a&15;c&&(b=this.l(c),this.v(c,fc(a,b,b)))}function gc(a){var b=a&15,c=(this.l(this.b)&262143)*M,d=this.l(b);this.v(b,V(a,d,c)+c)}function hc(a){var b=a&15,c=this.b*M,d=this.l(b);this.v(b,V(a,d,c)+c)}function ic(a){var b=(this.l(a&15)&262143)*M,c=this.l(this.b);this.v(this.b,V(a,c,b)+b)}
function jc(a){var b=this.l(this.b),c=(b&262143)*M;this.v(this.b,V(a,b,c)+c);var d=a&15;d&&(b=this.l(d),c=(b&262143)*M,this.v(d,V(a,b,c)+c))}function kc(a){var b=a&15,c=this.l(this.b)&262143,d=this.l(b);this.v(b,W(a,d,c)+c)}function lc(a){var b=a&15,c=this.l(b);this.v(b,W(a,c,this.b)+this.b)}function mc(a){var b=this.l(a&15)&262143,c=this.l(this.b);this.v(this.b,W(a,c,b)+b)}function nc(a){var b=this.l(this.b);this.v(this.b,oc(a,b,b));var c=a&15;c&&(b=this.l(c),this.v(c,oc(a,b,b)))}
function pc(a){var b=a&15,c=this.l(this.b)/M|0,d=this.l(b);this.v(b,W(a,d,c)+c)}function qc(a){var b=a&15,c=this.l(b);this.v(b,W(a,c,0))}function rc(a){var b=this.l(a&15)/M|0,c=this.l(this.b);this.v(this.b,W(a,c,b)+b)}function sc(a){var b=this.l(this.b),c=b/M|0;this.v(this.b,W(a,b,c)+c);var d=a&15;d&&(b=this.l(d),c=b/M|0,this.v(d,W(a,b,c)+c))}function X(a){this.a(a)}function T(a){this.K("undefined opcode: "+ma(a));this.h=(this.h+-1)%Ta;P(this)}
function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*M;break;case 384:b=c>Wa?262143*M:0}return b}function oc(a,b,c){if(a&=384)switch(b&=262143,a){case 256:b+=262143*M;break;case 384:b+=c>Wa?262143*M:0}return b}function V(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Xa?262143:0}return b}function fc(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Xa?262143:0}return b}
k.pb=function(){if(this.c.A){this.pa>=this.Ba&&Rb(this,!0);this.ca=0;this.ja=D();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Ub(this,!0);this.ca+=b;this.u+=b;qb(this,b);ob(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Vb&&(this.s&&Q(this.s,void 0),this.Ca=0);break}}while(this.c.A)}catch(f){P(this);
this.s&&this.s.stop(D(),Pb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Na;this.C=D();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.u/(10*d))/100,864E5<=d&&(this.I=0,Qb(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
function nb(a){var b;a.c.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.K(a.toString()+" busy");else{Qb(a);a.c.A=!0;a.c.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.s&&a.s.start(a.j,Pb(a));a.v||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Ub(a);pb(a,a.u);a.u=0;a.c.A=!1;if(b=a.i.run)b.textContent="Run";a.s&&a.s.stop(D(),Pb(a));b=!0;a.v||a.status("Stopped")}a.c.complete=void 0;return b}var Sb=30,Vb=15,Mb=["power","reset"];
function Wb(a){var b=+a.model||1001;Lb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Xb.bind(this);this.a=T.bind(this);this.ha=null;this.Ka=[];this.c.complete=!1}n(Wb,Lb);k=Wb.prototype;k.reset=function(){this.status("Model "+this.Va);this.c.A&&P(this);this.b=this.M=this.qa=0;this.ia=this.g=this.ya=this.La;this.h=0;this.l=this.lb;this.o=this.wb;this.ha=null;Nb(this);this.c.error=!1;Lb.prototype.reset.call(this)};k.Pa=function(){return 0};
k.save=function(){var a=new O(this);a.set(0,[this.b,this.M,this.qa,this.g,this.ya,this.ia,this.h]);a.set(1,[]);a.set(2,[this.I,this.W,this.c.J]);a.set(3,Yb(this));a.set(4,Tb(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.g=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.h=b.next().value;b=a[2];this.I=b[0];Qb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
a[b];return!0};function Yb(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.m;a=this.ia=a;return b.a[(a&b.g)>>>b.b].l(a&16383,a)};k.wb=function(a,b){var c=this.m;a=this.ia=a;c.a[(a&c.g)>>>c.b].o(b,a&16383,a)};
k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ga?0:1:-1;this.c.Ga=!1;this.D=this.G=a;this.h=this.h&-5|0;do{if(a=this.h)if(a=this.h&11)this.h&2?this.ha||(this.h&=-3):this.h&1&&this.h++,a=!1;if(a){if(this.h&4&&this.v.h(this.g,b)){P(this);break}if(0>b)break}this.h&=15;this.M=this.M&4194304?this.l(this.b)&8388607:(this.qa=this.l(this.ya=this.g))&8388607;this.b=this.M&262143;if(a=this.M>>18&15)this.b=this.b+this.l(a)&Ta;this.M&4194304?a=-1:(this.g=(this.g+1)%M,a=this.qa/Xa|0);0<=a&&this.Wa(a)}while(0<
this.G);return this.c.complete?this.D-this.G:!1===this.c.complete?-1:0};y(function(){for(var a=J(document,I,"cpu"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Wb(d);H(d,c)}});function Xb(a){Zb[a>>4].call(this,a)}function U(a){this.a(a)}function $b(a){var b=a&15,c=this.l(this.b),d=this.l(b);this.o(b,V(a,d,c)+(c-(c&262143)))}function ac(a){var b=a&15,c=this.l(b);this.o(b,V(a,c,0))}function bc(a){var b=this.l(a&15),c=this.l(this.b);this.o(this.b,V(a,c,b)+(b-(b&262143)))}
function cc(a){var b=this.l(this.b),c,d=b;if(c=a&384)switch(d-=d&262143,c){case 256:d+=262143;break;case 384:d+=b>Wa?262143:0}b=d;this.o(this.b,b);(a&=15)&&this.o(a,b)}function dc(a){var b=a&15,c=(this.l(this.b)&262143)*N,d=this.l(b);this.o(b,V(a,d,c)+c)}function ec(a){var b=a&15,c=this.b*N,d=this.l(b);this.o(b,V(a,d,c)+c)}function fc(a){var b=(this.l(a&15)&262143)*N,c=this.l(this.b);this.o(this.b,V(a,c,b)+b)}
function gc(a){var b=this.l(this.b),c=(b&262143)*N,b=V(a,b,c)+c;this.o(this.b,b);(a&=15)&&this.o(a,b)}function hc(a){var b=a&15,c=this.l(this.b)&262143,d=this.l(b);this.o(b,W(a,d,c)+c)}function ic(a){var b=a&15,c=this.l(b);this.o(b,W(a,c,this.b)+this.b)}function jc(a){var b=this.l(a&15)&262143,c=this.l(this.b);this.o(this.b,W(a,c,b)+b)}
function kc(a){var b=this.l(this.b),c,d=b;if(c=a&384)switch(d&=262143,c){case 256:d+=262143*N;break;case 384:d+=b>Va?262143*N:0}b=d;this.o(this.b,b);(a&=15)&&this.o(a,b)}function lc(a){var b=a&15,c=this.l(this.b)/N|0,d=this.l(b);this.o(b,W(a,d,c)+c)}function mc(a){var b=a&15,c=this.l(b);this.o(b,W(a,c,0))}function nc(a){var b=this.l(a&15)/N|0,c=this.l(this.b);this.o(this.b,W(a,c,b)+b)}function oc(a){var b=this.l(this.b),c=b/N|0,b=W(a,b,c)+c;this.o(this.b,b);(a&=15)&&this.o(a,b)}
function X(a){this.a(a)}function T(a){this.K("undefined opcode: "+ma(a));this.g=(this.g+-1)%M;P(this)}function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*N;break;case 384:b=c>Va?262143*N:0}return b}function V(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Wa?262143:0}return b}
var Zb=[U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},$b,ac,ac,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},$b,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){a&=15;var b=this.l(a);this.v(a,this.l(this.b));this.v(this.b,b)},function(a){a=this.l(a&15);var b=
a/M|0;for(a&=262143;;){this.v(a,this.l(b));if(a==this.b)break;b=b+1&262143;a=a+1&262143}},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.o(a&15,this.l(this.b))},function(a){this.o(a&15,this.b)},function(a){this.o(this.b,this.l(a&15))},function(a){(a&=15)&&this.o(a,this.l(this.b))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},T,function(a){a&=15;var b=this.l(a);this.o(a,this.l(this.b));this.o(this.b,b)},function(a){var b=!1;a&=15;for(var c=this.l(a),d=c/N|0,c=c&262143;!b;)this.o(c,this.l(d)),c==this.b&&(b=!0),d=d+1&262143,c=c+1&262143,this.c.A||(this.o(a,d*N+c),b||(this.g=(this.g+-1)%M),b=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},bc,cc,dc,ec,gc,hc,
ic,jc,bc,cc,dc,ec,gc,hc,ic,jc,bc,cc,dc,ec,gc,hc,ic,jc,bc,cc,dc,ec,gc,hc,ic,jc,kc,lc,mc,nc,pc,qc,rc,sc,kc,lc,mc,nc,pc,qc,rc,sc,kc,lc,mc,nc,pc,qc,rc,sc,kc,lc,mc,nc,pc,qc,rc,sc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},$b,ac,bc,cc,dc,ec,fc,gc,$b,ac,bc,cc,dc,ec,fc,gc,$b,ac,bc,cc,dc,ec,fc,gc,$b,ac,bc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,hc,ic,jc,kc,lc,mc,nc,oc,hc,ic,jc,kc,lc,mc,nc,oc,hc,ic,jc,kc,lc,mc,nc,oc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
function tc(a){B.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.s=na(this.h);if(this.h){a=this.h;var b=oa(this.s);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;w(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.h=null);uc(c)})}}n(tc,B);
tc.prototype.Z=function(a,b,c,d){this.m=b;this.f=c;this.u=d;uc(this)};tc.prototype.V=function(){this.N&&(this.u&&this.u.a(this.id,this.j,this.g,this.N),delete this.N);return!0};tc.prototype.P=function(){return!0};
function uc(a){if(!Ra(a)){if(a.h){if(!a.a||!a.m)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+t(a.a.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")";a.c.error=!0;a.F(b)}else{b=a.j;if(wb(a.m,b,a.g,Eb)){var c;for(c=0;c<a.a.length;c++)sb(a.m,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.m,g=d.g,h=[],l=d.j>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.m;
d=d.g;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}K(a)}}y(function(){for(var a=J(document,I,"rom"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new tc(d);H(d,c)}});
function Y(a){B.call(this,"RAM",a);this.N=this.Y=null;this.b=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.s=!1;this.a=a.file;this.j=na(this.a);if(this.a){a=this.a;var b=oa(this.j);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;w(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.Y=a.Y,c.N=a.N,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);vc(c)})}}n(Y,B);Y.prototype.Z=function(a,b,c,d){this.m=b;this.f=c;this.u=d;vc(this)};Y.prototype.V=function(a,b){this.N&&(this.u&&this.u.a(this.id,this.b,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
function vc(a){if(a.m&&(!a.h&&a.g&&(wb(a.m,a.b,a.g,1)?a.h=!0:a.g=0),!Ra(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;wc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.s=!0;K(a)}}
Y.prototype.reset=function(){if(this.h&&!this.s){for(var a=this.m,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.b(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&wc(this,this.Y,this.T,this.S,this.b,!this.u)}this.s=!1};
function wc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)sb(a.m,c+g,b[g]);g=!0}g&&(null==d&&(P(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Ta,f?a.c.B?a.c.A||nb(a):a.c.J=!0:a.u&&a.c.B?P(a)||a.o.c.reset||(a.u.g(),Q(a.o,-1)):!1===f&&P(a),!a.c.A&&a.ka&&a.ka.stop()));return g}y(function(){for(var a=J(document,I,"ram"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Y(d);H(d,c)}});
function xc(a){B.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=yc;b&&(void 0===c&&(c="Panel"),(c=F(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(xc,B);k=xc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case yc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(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.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.o=a;this.m=b;this.f=c;this.u=d;K(this)};
k.Qa=function(a){if(!this.a){var b=S(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.la)return;c=sa(c[1]);if(this.a=La(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.b.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.b.push(b)}else this.b=this.b.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var yc="buffer";
y(function(){for(var a=J(document,I,"serial"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new xc(d);H(d,c)}});
function zc(a,b,c){B.call(this,"Computer",a);this.c.B=!1;this.M=null;Ac(this,b);this.I=S(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.s=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=S(this,"url")||"";(Math.random()+.1).toString(36);this.b=Bc(this);if(this.f=F("CPU",this.id)){this.u=F("Debugger",this.id);this.m=new tb({id:this.ma+".bus",busWidth:this.W},this.f,this.u);var d,e=E(this.id);if((this.g=F("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.m,this.f,this.u);b=null;d=S(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=S(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=Cc),this.a&&(this.w=new O(this,"1.34.2"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
(b=Dc(this))&&(this.C=!0);if(b){var g=this;w(b,null,!0,function(a,b,c){c?(g.s=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.D=b,g.R=!0);K(g)})}else K(this);this.i.power||(this.I=!0);!c&&this.I&&Ec(this,this.ga)}else x("Unable to find CPU component")}n(zc,B);function Ac(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
function S(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.M&&(e=a.M[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Ec(a,b,c){for(var d=E(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){Ec(a,b,c)});return}}b.call(a,c)}
function Fc(a,b){var c=new O(a,"1.34.2",Gc);if(Z(c)&&Hc(c)){var d=c.get(Ic),e=b?b.get(Ic):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=zc.prototype;
k.ga=function(a){void 0===a&&(a=this.a||(this.D?Jc:Cc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new O(this,"1.34.2");if(a==Kc)b=!0;else if(a>Cc){if(Z(d,this.D)){this.j=new O(this,"1.34.2",Lc);Z(this.j)&&(Mc(this,d),a=Nc,Oc(this.j));this.j.set(Ic,ta());Pc(this.j);var e=this.a&&!this.C;if(a==Jc||Ka("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=Hc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(ya(Qc,""),this.b=null)):this.K(f+": "+g),Oc(d),Z(d)?(c=Hc(d),e=!0):c=!1))}e&&Fc(this,c?d:null)}else a==Nc&&d.clear()}else Fc(this);delete this.D;delete this.w}e=E(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Rc(this,g,d,b,c));b=[d,a,c];a!=Kc?Ec(this,this.Oa,b):this.Oa(b)}};
function Rc(a,b,c,d,e){if(!b.c.B){b.c.B=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=Cc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Rc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.L&&(Mc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
function Mc(a,b){if(Ka("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=L;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;w("http://www.pcjs.org/api/v1/report",d,!0)}}
function Sc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new O(a,"1.34.2"),g=new O(a,"1.34.2",Gc),h=ta();g.set(Ic,h);f.set(Ic,h);f.set(Tc,"1.34.2");f.set(Uc,window?window.location.href:null);f.set(Vc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.c.J=a.f.c.A),P(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.c.B=!1,!1===d&&(e=null)));for(var h=E(a.id),l=0;l<h.length;l++){var p=h[l];p.c.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.c.B=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&Wc(a,a.b,f.toString()),Pc(g)&&Pc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Xc),d&&f.clear(h)):e=f.toString());c&&(a.c.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.c.reset=!0;this.m&&this.m.reset&&this.m.reset();this.f&&this.f.reset&&this.f.reset();for(var a=E(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c!==this.f&&c.reset&&c.reset()}this.c.reset=!1;Q(this,-1)};
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
function pc(a){B.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.u=na(this.h);if(this.h){a=this.h;var b=oa(this.u);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;w(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.h=null);qc(c)})}}n(pc,B);
pc.prototype.Z=function(a,b,c,d){this.m=b;this.f=c;this.v=d;qc(this)};pc.prototype.V=function(){this.N&&(this.v&&this.v.a(this.id,this.j,this.g,this.N),delete this.N);return!0};pc.prototype.P=function(){return!0};
function qc(a){if(!Ra(a)){if(a.h){if(!a.a||!a.m)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+t(a.a.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")";a.c.error=!0;a.F(b)}else{b=a.j;if(wb(a.m,b,a.g,Eb)){var c;for(c=0;c<a.a.length;c++)sb(a.m,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.m,g=d.g,h=[],l=d.j>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.m;
d=d.g;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}K(a)}}y(function(){for(var a=J(document,I,"rom"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new pc(d);H(d,c)}});
function Y(a){B.call(this,"RAM",a);this.N=this.Y=null;this.b=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.u=!1;this.a=a.file;this.j=na(this.a);if(this.a){a=this.a;var b=oa(this.j);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;w(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.Y=a.Y,c.N=a.N,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);rc(c)})}}n(Y,B);Y.prototype.Z=function(a,b,c,d){this.m=b;this.f=c;this.v=d;rc(this)};Y.prototype.V=function(a,b){this.N&&(this.v&&this.v.a(this.id,this.b,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
function rc(a){if(a.m&&(!a.h&&a.g&&(wb(a.m,a.b,a.g,1)?a.h=!0:a.g=0),!Ra(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;sc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.u=!0;K(a)}}
Y.prototype.reset=function(){if(this.h&&!this.u){for(var a=this.m,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.i(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&sc(this,this.Y,this.T,this.S,this.b,!this.v)}this.u=!1};
function sc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)sb(a.m,c+g,b[g]);g=!0}g&&(null==d&&(P(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.g=d%M,f?a.c.B?a.c.A||nb(a):a.c.J=!0:a.v&&a.c.B?P(a)||a.s.c.reset||(a.v.g(),Q(a.s,-1)):!1===f&&P(a),!a.c.A&&a.ka&&a.ka.stop()));return g}y(function(){for(var a=J(document,I,"ram"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Y(d);H(d,c)}});
function tc(a){B.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=uc;b&&(void 0===c&&(c="Panel"),(c=F(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(tc,B);k=tc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case uc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(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.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.s=a;this.m=b;this.f=c;this.v=d;K(this)};
k.Qa=function(a){if(!this.a){var b=S(this.s,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.la)return;c=sa(c[1]);if(this.a=La(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.b.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.b.push(b)}else this.b=this.b.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var uc="buffer";
y(function(){for(var a=J(document,I,"serial"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new tc(d);H(d,c)}});
function vc(a,b,c){B.call(this,"Computer",a);this.c.B=!1;this.M=null;wc(this,b);this.I=S(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.u=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=S(this,"url")||"";(Math.random()+.1).toString(36);this.b=xc(this);if(this.f=F("CPU",this.id)){this.v=F("Debugger",this.id);this.m=new tb({id:this.ma+".bus",busWidth:this.W},this.f,this.v);var d,e=E(this.id);if((this.g=F("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.m,this.f,this.v);b=null;d=S(this,"resume",a);void 0!==d&&(1<d.length?b=this.u=d:this.a=parseInt(d,10));var f;if(a=S(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=yc),this.a&&(this.w=new O(this,"1.34.2"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
(b=zc(this))&&(this.C=!0);if(b){var g=this;w(b,null,!0,function(a,b,c){c?(g.u=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.D=b,g.R=!0);K(g)})}else K(this);this.i.power||(this.I=!0);!c&&this.I&&Ac(this,this.ga)}else x("Unable to find CPU component")}n(vc,B);function wc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
function S(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.M&&(e=a.M[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Ac(a,b,c){for(var d=E(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){Ac(a,b,c)});return}}b.call(a,c)}
function Bc(a,b){var c=new O(a,"1.34.2",Cc);if(Z(c)&&Dc(c)){var d=c.get(Ec),e=b?b.get(Ec):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=vc.prototype;
k.ga=function(a){void 0===a&&(a=this.a||(this.D?Fc:yc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new O(this,"1.34.2");if(a==Gc)b=!0;else if(a>yc){if(Z(d,this.D)){this.j=new O(this,"1.34.2",Hc);Z(this.j)&&(Ic(this,d),a=Jc,Kc(this.j));this.j.set(Ec,ta());Lc(this.j);var e=this.a&&!this.C;if(a==Fc||Ka("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=Dc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(ya(Mc,""),this.b=null)):this.K(f+": "+g),Kc(d),Z(d)?(c=Dc(d),e=!0):c=!1))}e&&Bc(this,c?d:null)}else a==Jc&&d.clear()}else Bc(this);delete this.D;delete this.w}e=E(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Nc(this,g,d,b,c));b=[d,a,c];a!=Gc?Ac(this,this.Oa,b):this.Oa(b)}};
function Nc(a,b,c,d,e){if(!b.c.B){b.c.B=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=yc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Nc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.L&&(Ic(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
function Ic(a,b){if(Ka("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=L;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;w("http://www.pcjs.org/api/v1/report",d,!0)}}
function Oc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new O(a,"1.34.2"),g=new O(a,"1.34.2",Cc),h=ta();g.set(Ec,h);f.set(Ec,h);f.set(Pc,"1.34.2");f.set(Qc,window?window.location.href:null);f.set(Rc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.c.J=a.f.c.A),P(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.c.B=!1,!1===d&&(e=null)));for(var h=E(a.id),l=0;l<h.length;l++){var p=h[l];p.c.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.c.B=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&Sc(a,a.b,f.toString()),Lc(g)&&Lc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Tc),d&&f.clear(h)):e=f.toString());c&&(a.c.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.c.reset=!0;this.m&&this.m.reset&&this.m.reset();this.f&&this.f.reset&&this.f.reset();for(var a=E(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c!==this.f&&c.reset&&c.reset()}this.c.reset=!1;Q(this,-1)};
k.start=function(a,b){for(var c=E(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Q(this,-1)};k.stop=function(a,b){for(var c=E(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Q(this,-1)};
function Q(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.u&&a.u.j||8,e=e||0,e=8==f?ma(e,void 0):t(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.h:0<b&&c&&!d&&(a.b=a.f.ia);fb(a,a.b);N(a,a.h)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.c.B?Sc(d,!1,!0):Ec(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.c.B&&!d.h)if(d.a&&!d.s){var a=Ka("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(Cc)}else d.reset(),d.f&&!d.u&&d.f.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.i[b]=
c,c.onclick=function(){var a=Bc(d,!0);if(a){var b=!!(d.a&&!d.s||d.G),c=Sc(d,b);b?Wc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function Bc(a,b){var c=a.b;c||((c=xa(Qc),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Yc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function Yc(a,b){a.b=null;b=w(u()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(Qc,b.data),a.b=b.data)}catch(d){x(d.message+" ("+c+")")}return a.b}function Dc(a){var b=null;a.b&&(b=u()+"/api/v1/user?req=load&user="+a.b+"&state="+Zc(a,"1.34.2"));return b}
function Wc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zc(a,"1.34.2");d.data=c;b=w(u()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.F("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.F(c),ya(Qc,""),a.b=null)}}
var Lc="failsafe",Gc="validate",Ic="timestamp",Tc="version",Uc="url",Vc="browser",Qc="user",Kc=-1,Cc=0,Jc=1,Nc=2,Xc=3;y(function(){for(var a=J(document,I+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=G(c),c=J(c,I,"computer"),e=0;e<c.length;e++){var f=c[e],g=G(f),g=new zc(g,d,!0);H(g,f);g.I&&Ec(g,g.ga)}});z.show.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.O&&!c.c.B&&c.ga(Kc)}});
z.exit.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.c.B&&Sc(c,!(!c.a||c.s),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.b=!1;this.key=Zc(a,b,c);Oc(this,a.Xa)}k=O.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.b=!1,!0):a.i?!0:va()&&(b=xa(a.key))?(a.f=b,a.i=!0):!1}
function Hc(a){var b=!0;if(!a.b)try{a.a=JSON.parse(a.f),a.b=!0}catch(c){x(c.message||c),b=!1}return b}function Pc(a){var b=!0;if(va()){var c=JSON.stringify(a.a);ya(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Oc(a,b){a.f="";a.a={};a.i=a.b=!1;b&&a.set("parms",b)}
k.clear=function(a){Oc(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 Zc(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}var $c=0;
function ad(a,b,c,d,e,f,g){f("Loading "+a+"...");w(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):bd(l,a,b,c,d,e,f,g)})}
function bd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(Ia(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?cd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function cd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");w(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],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);cd(a,b,c)}})}else c(a,null)}
function dd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&J(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=qa(a))}function g(a){f("Error: "+a);p&&(--$c||A(!0));p=!1}var h,l,p=!0;$c++;Ja[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ka=document.createElement("style");ka.type="text/css";ka.styleSheet?ka.styleSheet.cssText=r:ka.appendChild(document.createTextNode(r));v.appendChild(ka)}d||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.2/components.xsl");r=function(e,l){l?ad(d,null,a,null,!1,f,function(a,e){e?(Ia(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--$c||A(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--$c||
A(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ad(c,b,a,e,!0,f,r):bd(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(ed){g(ed.message)}return p}window.embedPDP10=function(a,b,c,d){A(!1);return dd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){A(!1);return dd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return F(b,a+".machine")};
function Q(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.h&8);if(0>=b||60<=(a.C+=b)){e=a.f.g;if(a.i.PC){var f=a.v&&a.v.j||8,e=e||0,e=8==f?ma(e,void 0):t(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.g:0<b&&c&&!d&&(a.b=a.f.ia);fb(a,a.b);$a(a,a.h)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.c.B?Oc(d,!1,!0):Ac(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.c.B&&!d.h)if(d.a&&!d.u){var a=Ka("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Oc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(yc)}else d.reset(),d.f&&!d.v&&d.f.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.i[b]=
c,c.onclick=function(){var a=xc(d,!0);if(a){var b=!!(d.a&&!d.u||d.G),c=Oc(d,b);b?Sc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function xc(a,b){var c=a.b;c||((c=xa(Mc),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Uc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function Uc(a,b){a.b=null;b=w(u()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(Mc,b.data),a.b=b.data)}catch(d){x(d.message+" ("+c+")")}return a.b}function zc(a){var b=null;a.b&&(b=u()+"/api/v1/user?req=load&user="+a.b+"&state="+Vc(a,"1.34.2"));return b}
function Sc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vc(a,"1.34.2");d.data=c;b=w(u()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.F("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.F(c),ya(Mc,""),a.b=null)}}
var Hc="failsafe",Cc="validate",Ec="timestamp",Pc="version",Qc="url",Rc="browser",Mc="user",Gc=-1,yc=0,Fc=1,Jc=2,Tc=3;y(function(){for(var a=J(document,I+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=G(c),c=J(c,I,"computer"),e=0;e<c.length;e++){var f=c[e],g=G(f),g=new vc(g,d,!0);H(g,f);g.I&&Ac(g,g.ga)}});z.show.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.O&&!c.c.B&&c.ga(Gc)}});
z.exit.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.c.B&&Oc(c,!(!c.a||c.u),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.a={};this.b=this.i=!1;this.key=Vc(a,b,c);Kc(this,a.Xa)}k=O.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.b=!0,a.i=!1,!0):a.b?!0:va()&&(b=xa(a.key))?(a.f=b,a.b=!0):!1}
function Dc(a){var b=!0;if(!a.i)try{a.a=JSON.parse(a.f),a.i=!0}catch(c){x(c.message||c),b=!1}return b}function Lc(a){var b=!0;if(va()){var c=JSON.stringify(a.a);ya(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Kc(a,b){a.f="";a.a={};a.b=a.i=!1;b&&a.set("parms",b)}
k.clear=function(a){Kc(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 Vc(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}var Wc=0;
function Xc(a,b,c,d,e,f,g){f("Loading "+a+"...");w(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Yc(l,a,b,c,d,e,f,g)})}
function Yc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(Ia(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Zc(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Zc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");w(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],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[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);Zc(a,b,c)}})}else c(a,null)}
function $c(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&J(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=qa(a))}function g(a){f("Error: "+a);p&&(--Wc||A(!0));p=!1}var h,l,p=!0;Wc++;Ja[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],la=document.createElement("style");la.type="text/css";la.styleSheet?la.styleSheet.cssText=r:la.appendChild(document.createTextNode(r));v.appendChild(la)}d||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.2/components.xsl");r=function(e,l){l?Xc(d,null,a,null,!1,f,function(a,e){e?(Ia(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Wc||A(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Wc||
A(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Xc(c,b,a,e,!0,f,r):Yc(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(ad){g(ad.message)}return p}window.embedPDP10=function(a,b,c,d){A(!1);return $c("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){A(!1);return $c("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return F(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Na[a]){for(var c=!0,d=Na,e=a,f=b.length,g=[],h=[],l="",p=null,r=0;r<f;r++){var v=b[r];if('"'==v||"'"==v)p&&v!=p?l+=v:(p?p=null:p=v,l&&(h.push(l),l=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){l&&(h.push(l),l="");";"==v&&h.length&&(g.push(h),h=[]);continue}}l+=v}}l&&h.push(l);h.length&&g.push(h);d[e]=g;Ma(a)||(c=!1)}return c};window.enableEvents=A;window.sendEvent=Ga;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10.map