Rounded out the rest of the MUL and DIV instructions
This commit is contained in:
parent
b3982328ed
commit
e9d2b0ec25
3 changed files with 494 additions and 350 deletions
|
|
@ -459,7 +459,6 @@ PDP10.opDPB = function(op, acc)
|
|||
if (this.regBP < 0) {
|
||||
this.regBP = w;
|
||||
this.regRA = this.regEA | PDP10.OPCODE.I_BIT;
|
||||
this.advancePC(-1);
|
||||
return;
|
||||
}
|
||||
var p = (this.regBP / PDP10.OPCODE.P_SCALE) & PDP10.OPCODE.P_MASK;
|
||||
|
|
@ -1080,13 +1079,14 @@ PDP10.opMOVN = function(op, acc)
|
|||
PDP10.opMOVNI = function(op, acc)
|
||||
{
|
||||
/*
|
||||
* We perform an in-line twos complement of regEA, since doNEG() updates the flags, and the documentation
|
||||
* above claims that this operation must "set no flags." It's certainly true that regEA, being an 18-bit value,
|
||||
* could never be -2^35, but it COULD be zero -- and apparently this instruction treats zero differently from MOVN.
|
||||
* We used to perform an in-line two's complement of regEA, since doNEG() updates the flags, and the
|
||||
* documentation above claimed that MOVNI must "set no flags." It's certainly true that regEA, being an
|
||||
* 18-bit value, could never be -2^35, but it COULD be zero. However, SIMH doesn't treat zero any
|
||||
* differently for MOVNI, so we currently don't either.
|
||||
*
|
||||
* TODO: Verify the "set no flags" assertion.
|
||||
* TODO: Verify the "set no flags" assertion on *real* (KA10) hardware.
|
||||
*/
|
||||
this.writeWord(acc, this.regEA? PDP10.TWO_POW36 - this.regEA : 0);
|
||||
this.writeWord(acc, PDP10.doNEG.call(this, this.regEA) /* this.regEA? PDP10.TWO_POW36 - this.regEA : 0 */);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1190,10 +1190,7 @@ PDP10.opMOVM = function(op, acc)
|
|||
*/
|
||||
PDP10.opMOVMI = function(op, acc)
|
||||
{
|
||||
/*
|
||||
* Since the src is an 18-bit immediate value, there's no need to call doABS().
|
||||
*/
|
||||
this.writeWord(acc, this.regEA);
|
||||
this.writeWord(acc, this.regEA); // src is an 18-bit immediate value, so there's no need to call doABS()
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1249,7 +1246,15 @@ PDP10.opMOVMS = function(op, acc)
|
|||
};
|
||||
|
||||
/**
|
||||
* opIMUL(0o220000)
|
||||
* opIMUL(0o220000): Integer Multiply
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-28:
|
||||
*
|
||||
* Multiply AC by the operand specified by M, and place the sign and the 35 low order magnitude bits of the
|
||||
* product in the specified destination. Set Overflow if the product is >= 2^35 or < -2^35 (ie if the high order
|
||||
* word of the double length product is not null); the high order word is 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
|
||||
|
|
@ -1257,11 +1262,19 @@ PDP10.opMOVMS = function(op, acc)
|
|||
*/
|
||||
PDP10.opIMUL = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
this.writeWord(acc, PDP10.doMUL.call(this, this.readWord(acc), this.readWord(this.regEA), true));
|
||||
};
|
||||
|
||||
/**
|
||||
* opIMULI(0o221000)
|
||||
* opIMULI(0o221000): Integer Multiply Immediate
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-28:
|
||||
*
|
||||
* Multiply AC by the operand specified by M, and place the sign and the 35 low order magnitude bits of the
|
||||
* product in the specified destination. Set Overflow if the product is >= 2^35 or < -2^35 (ie if the high order
|
||||
* word of the double length product is not null); the high order word is lost.
|
||||
*
|
||||
* NOTE: This is an "Immediate" mode instruction: the source is the word 0,E and the destination is [A].
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1269,11 +1282,19 @@ PDP10.opIMUL = function(op, acc)
|
|||
*/
|
||||
PDP10.opIMULI = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
this.writeWord(acc, PDP10.doMUL.call(this, this.readWord(acc), this.regEA, true));
|
||||
};
|
||||
|
||||
/**
|
||||
* opIMULM(0o222000)
|
||||
* opIMULM(0o222000): Integer Multiply to Memory
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-28:
|
||||
*
|
||||
* Multiply AC by the operand specified by M, and place the sign and the 35 low order magnitude bits of the
|
||||
* product in the specified destination. Set Overflow if the product is >= 2^35 or < -2^35 (ie if the high order
|
||||
* word of the double length product is not null); the high order word is lost.
|
||||
*
|
||||
* NOTE: This is a "Memory" mode instruction: the source is [E] and the destination is [E] (opposite of "Basic").
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1281,11 +1302,19 @@ PDP10.opIMULI = function(op, acc)
|
|||
*/
|
||||
PDP10.opIMULM = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
this.writeWord(this.regEA, PDP10.doMUL.call(this, this.readWord(acc), this.readWord(this.regEA), true));
|
||||
};
|
||||
|
||||
/**
|
||||
* opIMULB(0o223000)
|
||||
* opIMULB(0o223000): Integer Multiply to Both
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-28:
|
||||
*
|
||||
* Multiply AC by the operand specified by M, and place the sign and the 35 low order magnitude bits of the
|
||||
* product in the specified destination. Set Overflow if the product is >= 2^35 or < -2^35 (ie if the high order
|
||||
* word of the double length product is not null); the high order word is lost.
|
||||
*
|
||||
* NOTE: This is a "Both" mode instruction: the source is [E] and the destination is [E] and [A].
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1293,7 +1322,7 @@ PDP10.opIMULM = function(op, acc)
|
|||
*/
|
||||
PDP10.opIMULB = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
this.writeWord(this.regEA, this.writeWord(acc, PDP10.doMUL.call(this, this.readWord(acc), this.readWord(this.regEA), true)));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1380,7 +1409,17 @@ PDP10.opMULB = function(op, acc)
|
|||
};
|
||||
|
||||
/**
|
||||
* opIDIV(0o230000)
|
||||
* opIDIV(0o230000): Integer Divide
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the operand specified by M is zero, set Overflow and No Divide, and go immediately to the next instruction
|
||||
* without affecting the original AC or memory operand in any way. Otherwise divide AC by the specified operand,
|
||||
* calculating a quotient of 35 magnitude bits including leading zeros. Place the unrounded quotient in the
|
||||
* specified destination. If M specifies AC as the destination, place the remainder, with the same sign as the
|
||||
* dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is a "Basic" mode instruction: the source is [E] and the destination is [A],[A+1] (opposite of "Memory").
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1388,11 +1427,24 @@ PDP10.opMULB = function(op, acc)
|
|||
*/
|
||||
PDP10.opIDIV = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var dst = PDP10.doDIV.call(this, this.readWord(acc), 0, this.readWord(this.regEA));
|
||||
if (dst < 0) return;
|
||||
this.writeWord(acc, dst);
|
||||
this.writeWord((acc + 1) & 0o17, this.regExt);
|
||||
};
|
||||
|
||||
/**
|
||||
* opIDIVI(0o231000)
|
||||
* opIDIVI(0o231000): Integer Divide Immediate
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the operand specified by M is zero, set Overflow and No Divide, and go immediately to the next instruction
|
||||
* without affecting the original AC or memory operand in any way. Otherwise divide AC by the specified operand,
|
||||
* calculating a quotient of 35 magnitude bits including leading zeros. Place the unrounded quotient in the
|
||||
* specified destination. If M specifies AC as the destination, place the remainder, with the same sign as the
|
||||
* dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is an "Immediate" mode instruction: the source is the word 0,E and the destination is [A],[A+1].
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1400,11 +1452,24 @@ PDP10.opIDIV = function(op, acc)
|
|||
*/
|
||||
PDP10.opIDIVI = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var dst = PDP10.doDIV.call(this, this.readWord(acc), 0, this.regEA);
|
||||
if (dst < 0) return;
|
||||
this.writeWord(acc, dst);
|
||||
this.writeWord((acc + 1) & 0o17, this.regExt);
|
||||
};
|
||||
|
||||
/**
|
||||
* opIDIVM(0o232000)
|
||||
* opIDIVM(0o232000): Integer Divide to Memory
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the operand specified by M is zero, set Overflow and No Divide, and go immediately to the next instruction
|
||||
* without affecting the original AC or memory operand in any way. Otherwise divide AC by the specified operand,
|
||||
* calculating a quotient of 35 magnitude bits including leading zeros. Place the unrounded quotient in the
|
||||
* specified destination. If M specifies AC as the destination, place the remainder, with the same sign as the
|
||||
* dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is a "Memory" mode instruction: the source is [E] and the destination is [E] (opposite of "Basic").
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1412,11 +1477,23 @@ PDP10.opIDIVI = function(op, acc)
|
|||
*/
|
||||
PDP10.opIDIVM = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var dst = PDP10.doDIV.call(this, this.readWord(acc), 0, this.readWord(this.regEA));
|
||||
if (dst < 0) return;
|
||||
this.writeWord(this.regEA, dst);
|
||||
};
|
||||
|
||||
/**
|
||||
* opIDIVB(0o233000)
|
||||
* opIDIVB(0o233000): Integer Divide to Both
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the operand specified by M is zero, set Overflow and No Divide, and go immediately to the next instruction
|
||||
* without affecting the original AC or memory operand in any way. Otherwise divide AC by the specified operand,
|
||||
* calculating a quotient of 35 magnitude bits including leading zeros. Place the unrounded quotient in the
|
||||
* specified destination. If M specifies AC as the destination, place the remainder, with the same sign as the
|
||||
* dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is a "Both" mode instruction: the source is [E] and the destination is [E] and [A],[A+1].
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1424,7 +1501,9 @@ PDP10.opIDIVM = function(op, acc)
|
|||
*/
|
||||
PDP10.opIDIVB = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var dst = PDP10.doDIV.call(this, this.readWord(acc), 0, this.readWord(this.regEA));
|
||||
if (dst < 0) return;
|
||||
this.writeWord(acc, this.writeWord(this.regEA, dst));
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -1456,7 +1535,18 @@ PDP10.opDIV = function(op, acc)
|
|||
};
|
||||
|
||||
/**
|
||||
* opDIVI(0o235000)
|
||||
* opDIVI(0o235000): Divide Immediate
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the magnitude of the number in AC is greater than or equal to that of the operand specified by M,
|
||||
* set Overflow and No Divide, and go immediately to the next instruction without affecting the original AC
|
||||
* or memory operand in any way. Otherwise divide the double length number contained in accumulators A and A+1
|
||||
* by the specified operand, calculating a quotient of 35 magnitude bits including leading zeros. Place the
|
||||
* unrounded quotient in the specified destination. If M specifies AC as a destination, place the remainder,
|
||||
* with the same sign as the dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is an "Immediate" mode instruction: the source is the word 0,E and the destination is [A],[A+1].
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1464,11 +1554,27 @@ PDP10.opDIV = function(op, acc)
|
|||
*/
|
||||
PDP10.opDIVI = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var ext = this.readWord(acc);
|
||||
var dst = this.readWord((acc + 1) & 0o17);
|
||||
dst = PDP10.doDIV.call(this, dst, ext, this.regEA);
|
||||
if (dst < 0) return;
|
||||
this.writeWord(acc, dst);
|
||||
this.writeWord((acc + 1) & 0o17, this.regExt);
|
||||
};
|
||||
|
||||
/**
|
||||
* opDIVM(0o236000)
|
||||
* opDIVM(0o236000): Divide to Memory
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the magnitude of the number in AC is greater than or equal to that of the operand specified by M,
|
||||
* set Overflow and No Divide, and go immediately to the next instruction without affecting the original AC
|
||||
* or memory operand in any way. Otherwise divide the double length number contained in accumulators A and A+1
|
||||
* by the specified operand, calculating a quotient of 35 magnitude bits including leading zeros. Place the
|
||||
* unrounded quotient in the specified destination. If M specifies AC as a destination, place the remainder,
|
||||
* with the same sign as the dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is a "Memory" mode instruction: the source is [E] and the destination is [E] (opposite of "Basic").
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1476,11 +1582,26 @@ PDP10.opDIVI = function(op, acc)
|
|||
*/
|
||||
PDP10.opDIVM = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var ext = this.readWord(acc);
|
||||
var dst = this.readWord((acc + 1) & 0o17);
|
||||
dst = PDP10.doDIV.call(this, dst, ext, this.readWord(this.regEA));
|
||||
if (dst < 0) return;
|
||||
this.writeWord(this.regEA, dst);
|
||||
};
|
||||
|
||||
/**
|
||||
* opDIVB(0o237000)
|
||||
* opDIVB(0o237000): Divide to Both
|
||||
*
|
||||
* From the DEC PDP-10 System Reference Manual (May 1968), p. 2-29:
|
||||
*
|
||||
* If the magnitude of the number in AC is greater than or equal to that of the operand specified by M,
|
||||
* set Overflow and No Divide, and go immediately to the next instruction without affecting the original AC
|
||||
* or memory operand in any way. Otherwise divide the double length number contained in accumulators A and A+1
|
||||
* by the specified operand, calculating a quotient of 35 magnitude bits including leading zeros. Place the
|
||||
* unrounded quotient in the specified destination. If M specifies AC as a destination, place the remainder,
|
||||
* with the same sign as the dividend, in accumulator A+1.
|
||||
*
|
||||
* NOTE: This is a "Both" mode instruction: the source is [E] and the destination is [E] and [A],[A+1].
|
||||
*
|
||||
* @this {CPUStatePDP10}
|
||||
* @param {number} op
|
||||
|
|
@ -1488,7 +1609,12 @@ PDP10.opDIVM = function(op, acc)
|
|||
*/
|
||||
PDP10.opDIVB = function(op, acc)
|
||||
{
|
||||
this.opUndefined(op);
|
||||
var ext = this.readWord(acc);
|
||||
var dst = this.readWord((acc + 1) & 0o17);
|
||||
dst = PDP10.doDIV.call(this, dst, ext, this.readWord(this.regEA));
|
||||
if (dst < 0) return;
|
||||
this.writeWord(acc, this.writeWord(this.regEA, dst));
|
||||
this.writeWord((acc + 1) & 0o17, this.regExt);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -5670,7 +5796,7 @@ PDP10.doIOR = function(dst, src)
|
|||
};
|
||||
|
||||
/**
|
||||
* doMUL(dst, src)
|
||||
* doMUL(dst, src, fTruncate)
|
||||
*
|
||||
* Used by callers to perform the multiplication (MUL) of two signed 36-bit operands.
|
||||
*
|
||||
|
|
@ -5682,9 +5808,10 @@ PDP10.doIOR = function(dst, src)
|
|||
* @this {CPUStatePDP10}
|
||||
* @param {number} dst (36-bit value)
|
||||
* @param {number} src (36-bit value)
|
||||
* @param {boolean} [fTruncate] (true to truncate the result to 36 bits)
|
||||
* @return {number} (dst * src) (the high 36 bits of the result; the low 36 bits are stored in regExt)
|
||||
*/
|
||||
PDP10.doMUL = function(dst, src)
|
||||
PDP10.doMUL = function(dst, src, fTruncate)
|
||||
{
|
||||
var n1 = dst, n2 = src;
|
||||
var fNeg = false, res, ext;
|
||||
|
|
@ -5733,6 +5860,20 @@ PDP10.doMUL = function(dst, src)
|
|||
}
|
||||
}
|
||||
|
||||
if (fTruncate) {
|
||||
/*
|
||||
* If ext is something OTHER than an extension of the res sign bit, then we have overflow.
|
||||
*/
|
||||
if ((ext || res > PDP10.MAX_POS36) && (ext != PDP10.WORD_MASK || res <= PDP10.MAX_POS36)) {
|
||||
this.regPS |= PDP10.PSFLAG.OVFL;
|
||||
}
|
||||
/*
|
||||
* Also note that, in the truncate case, we return the low order bits (res), rather than the
|
||||
* the high order bits (ext) that split72() does.
|
||||
*/
|
||||
return res;
|
||||
}
|
||||
|
||||
return PDP10.split72.call(this, res, ext);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -30,214 +30,216 @@ var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function la(){da();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 ma(this)}});la=function(){}}function ma(a){var b=0;return na(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function na(a){la();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 oa(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})}}
|
||||
oa("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}});oa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var pa={ac:0,ub:1,cc:2,dc:3,ec:4,fc:5,gc:6,hc:7,gb:8,ic:9,vb:10,jc:11,kc:12,wb:13,lc:14,mc:15,nc:16,oc:17,pc:18,qc:19,rc:20,sc:21,tc:22,uc:23,vc:24,wc:25,xc: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,fb:65,$b:66,bc:67,yc:68,E:69,zc:70,Ac:71,Bc:72,Cc:73,Dc:74,Ec:75,Fc:76,Gc:77,Hc:78,Ic:79,Jc:80,Q:81,Kc:82,Lc:83,Mc:84,Nc:85,Oc:86,Pc:87,
|
||||
Qc:88,Rc:89,yb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Sc:97,Tc:98,Uc:99,d:100,e:101,Vc:102,Wc:103,Xc:104,Yc:105,Zc:106,k:107,$c:108,ad:109,n:110,bd:111,p:112,q:113,r:114,cd:115,t:116,ed:117,fd:118,gd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,xb:127};
|
||||
var pa={ec:0,xb:1,gc:2,hc:3,ic:4,jc:5,kc:6,lc:7,lb:8,mc:9,yb:10,nc:11,oc:12,zb:13,pc:14,qc:15,rc:16,sc:17,tc:18,uc:19,vc:20,wc:21,xc:22,yc:23,zc:24,Ac:25,Bc: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,kb:65,dc:66,fc:67,Cc:68,E:69,Dc:70,Ec:71,Fc:72,Gc:73,Hc:74,Ic:75,Jc:76,Kc:77,Lc:78,Mc:79,Nc:80,Q:81,Oc:82,Pc:83,Qc:84,Rc:85,Sc:86,Tc:87,
|
||||
Uc:88,Vc:89,Bb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Wc:97,Xc:98,Yc:99,d:100,e:101,Zc:102,$c:103,ad:104,bd:105,cd:106,k:107,dd:108,ed:109,n:110,fd:111,p:112,q:113,r:114,gd:115,t:116,jd:117,kd:118,ld:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ab:127};
|
||||
function qa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
||||
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function ra(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 sa(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ra(a,8,b,c?"0o":"")}function q(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ra(a,16,b,c?"0x":"")}
|
||||
function va(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 wa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function xa(){var a=ya();return-1!==a.indexOf("pcjs.org",a.length-8)}function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}
|
||||
function Ha(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ia(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Ja(){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 ta(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 ua(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function xa(){var a=ya();return-1!==a.indexOf("pcjs.org",a.length-8)}function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}
|
||||
function Ca(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function Da(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function Ja(){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 Ka(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,
|
||||
f,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function La(a,b){var c,d={Y:null,U:null,pa:null,oa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.pa=g.load;d.oa=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
|
||||
function La(a,b){var c,d={Y:null,U:null,sa:null,ra:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.sa=g.load;d.ra=g.exec;if(e=g.bytes)d.Y=e;else if(e=g.words)for(d.Y=Array(2*e.length),f=c=0;c<e.length;c++)d.Y[f++]=e[c]&255,d.Y[f++]=e[c]>>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c<e.length;c++)d.Y[f++]=
|
||||
e[c]&255,d.Y[f++]=e[c]>>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Ca=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(r(d.Y[0]),d=null):(r("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){r("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){r("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.Y=e)}return d}
|
||||
function ya(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ma(){if(null==Na){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Na=a}return Na}function Oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function Pa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Qa(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 Ra(a){if(!Sa){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," "))}Sa=c}return Sa[a]}function bb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function cb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function db(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function eb(a){fb.init.push(a)}
|
||||
function Ra(a){if(!Sa){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," "))}Sa=c}return Sa[a]}function Ta(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Ua(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function db(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function eb(a){fb.init.push(a)}
|
||||
function gb(a){if(hb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ib(a){!hb&&a?(hb=!0,jb&&kb("init"),lb&&kb("show")):hb=a}function kb(a){fb[a]&&gb(fb[a])}var Sa=null,fb={init:[],show:[],exit:[]},jb=!1,lb=!1,hb=!0,Na=null;db("onload",function(){jb=!0;gb(fb.init)});db("onpageshow",function(){lb=!0;gb(fb.show)});db(Qa("Opera")||Qa("iOS")?"onunload":"onbeforeunload",function(){gb(fb.exit)});
|
||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.jb=b.comment;this.tb=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Ma=this.id:(this.Na=this.id.substr(0,a),this.Ma=this.id.substr(a+1));this.w={ready:!1,Fa:!1,Za:!1,V:!1,error:!1};this.Qa=null;this.w.error=!1;this.X=c||0;this.D=this.v=this.H=this.G=this.qa=null;v.push(this)}function mb(a,b,c){nb[a]&&b&&(nb[a][b]=c)}function ob(){return Date.now()||+new Date}
|
||||
function r(a){window&&window.alert(a)}function pb(a){var b=!1;window&&(b=window.confirm(a));return b}function qb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function sb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
|
||||
function Bb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function Cb(a,b){var c=x;b=y(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 k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(g))&&h.binding&&a.ia(h.type,h.binding,g,h.value),m=k.length}}}}
|
||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.jb=b.comment;this.Db=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.Pa=this.id:(this.Qa=this.id.substr(0,a),this.Pa=this.id.substr(a+1));this.w={ready:!1,Ia:!1,cb:!1,V:!1,error:!1};this.Ta=null;this.w.error=!1;this.X=c||0;this.D=this.v=this.H=this.G=this.ta=null;v.push(this)}function mb(a,b,c){nb[a]&&b&&(nb[a][b]=c)}function ob(){return Date.now()||+new Date}
|
||||
function r(a){window&&window.alert(a)}function pb(a){var b=!1;window&&(b=window.confirm(a));return b}function qb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function rb(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
|
||||
function sb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function ub(a,b){var c=x;b=y(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 k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(g))&&h.binding&&a.ja(h.type,h.binding,g,h.value),m=k.length}}}}
|
||||
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
function Db(a){for(var b=!0,c=Eb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Fb.indexOf(e)&&(f=function(){return function(){Db(a)}}());var g=Gb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=Bb(d[1],a);if(h)if(g=Hb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Eb[a];return b}l=u.prototype;
|
||||
function Db(a){for(var b=!0,c=Eb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Fb.indexOf(e)&&(f=function(){return function(){Db(a)}}());var g=Gb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=sb(d[1],a);if(h)if(g=Hb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){r("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Eb[a];return b}l=u.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.ia=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.qa=this.J[b]=c,c.value="",this.j=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.j(a,this.Ma)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
|
||||
l.status=function(a){this.j(this.Ma+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Ib(a,b){a.w.error=!0;a.da(b)}function Jb(a){return a.w.error?(a.j(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.w.ready?b():a.Qa=b);return a.w.ready}function z(a){if(!a.w.error&&(a.w.ready=!0,a.w.ready)){var b=a.Qa;a.Qa=null;b&&b()}}function Lb(a,b){a.w.Fa&&(b?a.w.Za=!0:void 0===b&&a.j(a.toString()+" busy"));return a.w.Fa}
|
||||
function Mb(a,b){if(a.w.Za)return a.w.Fa=!1,a.w.Za=!1;if(a.w.error)return a.j(a.toString()+" error"),!1;a.w.Fa=b;return a.w.Fa}l.ra=function(){return this.w.V=!0};l.ha=function(a,b){b&&(this.w.V=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.ob)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
|
||||
l.ja=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.ta=this.J[b]=c,c.value="",this.j=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.da=function(a){this.j(a,this.Pa)}),!0;default:return!1}};l.log=function(){};l.j=function(){};
|
||||
l.status=function(a){this.j(this.Pa+": "+a)};l.da=function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)};function Ib(a,b){a.w.error=!0;a.da(b)}function Jb(a){return a.w.error?(a.j(a.toString()+" error"),!0):!1}function Kb(a,b){b&&(a.w.ready?b():a.Ta=b);return a.w.ready}function z(a){if(!a.w.error&&(a.w.ready=!0,a.w.ready)){var b=a.Ta;a.Ta=null;b&&b()}}function Lb(a,b){a.w.Ia&&(b?a.w.cb=!0:void 0===b&&a.j(a.toString()+" busy"));return a.w.Ia}
|
||||
function Mb(a,b){if(a.w.cb)return a.w.Ia=!1,a.w.cb=!1;if(a.w.error)return a.j(a.toString()+" error"),!1;a.w.Ia=b;return a.w.Ia}l.ua=function(){return this.w.V=!0};l.ia=function(a,b){b&&(this.w.V=!1);return!0};function Nb(a,b){if(a.D){a===a.D?b|=0:b=b||a.X;var c=a.D.X&b;return!!b&&c===b||!!(c&a.D.sb)}return!1}function Ob(a,b,c,d){a.D&&(!0===c||Nb(a,c|0))&&a.D.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var nb=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Eb=window?window.PCjs.Commands:{},Fb=["hold","sleep","wait"],Gb={alert:function(a){r(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Hb={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 x="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,A=Math.pow(2,18),E=Math.pow(2,18)-1,F=Math.pow(2,18),Rb=Math.pow(2,35)-1,G=Math.pow(2,35),H=Math.pow(2,36)-1,I=Math.pow(2,36),Sb=Math.pow(2,17)-1,J=Math.pow(2,35)-1,Tb=Math.pow(2,35),Ub=Math.pow(2,36),Vb=Math.pow(2,34),K=Math.pow(2,32),Wb=Math.pow(2,21),Xb=Math.pow(2,26),Yb=Math.pow(2,23),Zb=Math.pow(2,30),x="pdp10",Pb="PDPjs",M={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,
|
||||
var x="pdp10",Pb="PDPjs",Qb=Math.pow(2,18)-1,A=Math.pow(2,18),B=Math.pow(2,18)-1,F=Math.pow(2,18),Rb=Math.pow(2,35)-1,G=Math.pow(2,35),H=Math.pow(2,36)-1,I=Math.pow(2,36),Sb=Math.pow(2,17)-1,J=Math.pow(2,35)-1,Tb=Math.pow(2,35),Ub=Math.pow(2,36),Vb=Math.pow(2,34),K=Math.pow(2,32),Wb=Math.pow(2,21),Xb=Math.pow(2,26),Yb=Math.pow(2,23),Zb=Math.pow(2,30),x="pdp10",Pb="PDPjs",M={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 $b(a,b){u.call(this,"Panel",a,512);this.K=this.M=0;this.T=b;this.f=this.I=this.u=this.A=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.B={};this.b={START:[1,1,!0,!1,this.Lb],STEP:[1,1,!1,!1,this.Mb],ENABLE:[1,1,!1,!1,this.Gb],CONT:[1,1,!0,!1,this.Eb],DEP:[0,0,!0,!1,this.Fb],EXAM:[1,1,!0,!1,this.Hb],LOAD:[1,1,!0,!1,this.Jb],TEST:[0,0,!0,!1,this.Ib]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Kb,a];this.D=this.v=this.H=this.G=null;this.exports={hold:this.Cb,toggle:this.Vb,reset:this.Rb,
|
||||
set:this.Ub};z(this)}p($b,u);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.A=0)};
|
||||
l.ia=function(a,b,c,d){if(this.G&&this.G.ia(a,b,c,d)||this.v&&this.v.ia(a,b,c,d)||this.D&&this.D.ia(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.J[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.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):u.prototype.ia.call(this,a,b,c,d)}};l.Aa=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;ec(this);fc(this)};l.ra=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ha=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,[this.f,this.A,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])hc(this,this.f=a[0]),bc(this,this.A=a[1]),ic(this,a[2]);return!0};l.Rb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.B)jc(a,c,null!=b?b:a.B[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
|
||||
l.Cb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.Ub=function(a,b){if("SR"==a)return ic(this,qa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.Vb=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1}
|
||||
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Lb=function(a){a||this.v.w.L||(this.v.A=this.f%A,this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Mb=function(){};l.Gb=function(a){a||this.v.W()};
|
||||
l.Eb=function(a){if(!a&&!this.v.w.L)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.D)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Ja(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&Ib(this.v,c.stack||c.message)}this.stop();this.G&&P(this.G)}};l.Fb=function(a){a&&!this.v.w.L&&(this.P&&uc(this),a=bc(this,this.A=this.u),this.S==ac?Dc(this.H,this.f,a):this.v.i(this.f,a))};
|
||||
l.Hb=function(a){if(!a&&!this.v.w.L){var b;this.R&&uc(this);this.S==ac?b=Ec(this.H,this.f):b=this.v.g(this.f);bc(this,this.A=b)}};l.Jb=function(a){a||this.v.w.L||hc(this,this.u)};l.Ib=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Kb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.H.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.f&~c|a.f+b&c)}
|
||||
function $b(a,b){u.call(this,"Panel",a,512);this.K=this.M=0;this.T=b;this.f=this.I=this.u=this.A=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=ac;this.B={};this.b={START:[1,1,!0,!1,this.Pb],STEP:[1,1,!1,!1,this.Qb],ENABLE:[1,1,!1,!1,this.Kb],CONT:[1,1,!0,!1,this.Ib],DEP:[0,0,!0,!1,this.Jb],EXAM:[1,1,!0,!1,this.Lb],LOAD:[1,1,!0,!1,this.Nb],TEST:[0,0,!0,!1,this.Mb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Ob,a];this.D=this.v=this.H=this.G=null;this.exports={hold:this.Gb,toggle:this.Zb,reset:this.Vb,
|
||||
set:this.Yb};z(this)}p($b,u);l=$b.prototype;l.reset=function(a){this.stop();a&&bc(this,this.A=0)};
|
||||
l.ja=function(a,b,c,d){if(this.G&&this.G.ja(a,b,c,d)||this.v&&this.v.ja(a,b,c,d)||this.D&&this.D.ja(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.J[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.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){dc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){cc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){dc(a,b)}}(this,b),!0):u.prototype.ja.call(this,a,b,c,d)}};l.Aa=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;ec(this);fc(this)};l.ua=function(a,b){if(!b)if(this.T&&gc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ia=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,[this.f,this.A,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])hc(this,this.f=a[0]),bc(this,this.A=a[1]),ic(this,a[2]);return!0};l.Vb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}fc(this);return!0};function jc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ec(a,b){for(var c in a.B)jc(a,c,null!=b?b:a.B[c])}function kc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fc(a){for(var b in a.b)kc(a,b,a.b[b][1])}
|
||||
l.Gb=function(a,b,c){if(cc(this,b)){if(c){var d=this;setTimeout(function(){dc(d,b);a&&a()},+c);return!1}dc(this,b)}return!0};l.Yb=function(a,b){if("SR"==a)return ic(this,qa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,kc(this,a,c[1]),!0):!1};l.Zb=function(a){return cc(this,a)?(dc(this,a),!0):!1};function cc(a,b){var c=a.b[b];return c?(kc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lc&&(a.P=b==mc,a.R=b==nc),!0):!1}
|
||||
function dc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(kc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Pb=function(a){a||this.v.w.L||(this.v.A=this.f%A,this.b[oc]&&this.b[oc][1]&&pc(this.v))};l.Qb=function(){};l.Kb=function(a){a||this.v.W()};
|
||||
l.Ib=function(a){if(!a&&!this.v.w.L)if(this.b[oc]&&this.b[oc][1])pc(this.v);else{if((a=this.D)&&!Lb(a,!0))Mb(a,!0),qc(a,0,null),Mb(a,!1);else try{var b=this.v.Ma(1);0<b&&(rc(this.v,b),sc(this.v,b,!0),tc(this.v,b))}catch(c){"number"!=typeof c&&Ib(this.v,c.stack||c.message)}this.stop();this.G&&P(this.G)}};l.Jb=function(a){a&&!this.v.w.L&&(this.P&&uc(this),a=bc(this,this.A=this.u),this.S==ac?vc(this.H,this.f,a):this.v.i(this.f,a))};
|
||||
l.Lb=function(a){if(!a&&!this.v.w.L){var b;this.R&&uc(this);this.S==ac?b=Ec(this.H,this.f):b=this.v.g(this.f);bc(this,this.A=b)}};l.Nb=function(a){a||this.v.w.L||hc(this,this.u)};l.Mb=function(a){a?(this.F=!0,ec(this,!0)):(this.F=!1,ec(this),ic(this,0))};l.Ob=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function uc(a){var b=1,c=a.H.u;a.b[lc]&&a.b[lc][1]||(b=-b);hc(a,a.f&~c|a.f+b&c)}
|
||||
function hc(a,b){a.f=b&a.H.u;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.B[e]=f;d.F||jc(d,e,f)}}}function bc(a,b){a.I=b%I;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,f=b&1<<c;d.B[e]=f;d.F||jc(d,e,f)}}return a.I}function ic(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;fc(a);return!0}l.stop=function(){hc(this,this.v.A)};
|
||||
function gc(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=sb(d.id);e||(e=new $b(d,!0));Cb(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";eb(gc);function Fc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.f=Math.log2(16384);this.B=this.F/16384|0;this.A=0;this.b=[];a=new Gc(this);Hc(a,this.D);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;z(this)}p(Fc,u);l=Fc.prototype;l.reset=function(){};
|
||||
l.ra=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ha=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,Ic(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,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Jc(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.C)return h.Ha+=h.C-e,h.C=e,!0;if(e>=h.C+h.Ha){m=h.size-(e-k);m>f&&(m=f);h.Ha=e-h.C+m;e=k+16384;f-=m;g++;continue}}return Kc(Lc,e,f)}e=new Gc(a,e,m,16384,d);Hc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Mc[d]+" at "+sa(b)),!0):Kc(Nc,b,c)}
|
||||
function Ec(a,b){var c=a.b[(b&a.u)>>>a.f];a.A++;b=c.G(b&16383,b);a.A--;return b}function Dc(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.A++;d.D(c,b&16383,b);a.A--}function Ic(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.ab||e.Ab){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
l.Bb=function(a){this.A||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+Q(this.D,a),!0,!0),this.v.W())};function Kc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Lc=1,Nc=2;function Oc(a){u.call(this,"Device",a,256)}p(Oc,u);l=Oc.prototype;l.Aa=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.D=d;z(this)};l.ra=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ha=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new O(this)).data()};
|
||||
l.restore=function(){return!0};eb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Oc(c),Cb(c,d)}}});function Gc(a,b,c,d,e){this.J=a;this.id=Pc+=2;this.C=b;this.Ha=c;this.size=d||0;this.type=e||Qc;this.H=e==Rc;this.b=null;this.g=this.G=this.eb;this.i=this.D=this.Ia;this.f=this.v=0;Hc(this);this.ab=this.Ab=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Sc(this,Tc)}else Sc(this)}l=Gc.prototype;l.save=function(){return this.u};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.ab=!0):!1};function Sc(a,b){b||(b=Uc);Vc(a,b,void 0);Wc(a,b,void 0)}function Vc(a,b,c){c&&a.f||(a.g=b[0]||a.eb);if(c||void 0===c)a.G=b[0]||a.eb}function Wc(a,b,c){c&&a.v||(a.i=!a.H&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Da=function(a,b){b?this.v++||Wc(this,Xc,!1):this.f++||Vc(this,Xc,!1)};function Yc(a,b){b?--a.v||(a.i=a.H?a.Ia:a.D):--a.f||(a.g=a.G)}
|
||||
function Hc(a,b,c){a.b=b;a.f=a.v=0;c&&((a.f=c.f)&&Vc(a,Xc,!1),(a.v=c.v)&&Wc(a,Xc,!1))}l.eb=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+Q(this.b,b),!0);this.J.Bb(b);return-1};l.Ia=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+Q(this.b,a)+" to invalid addresses "+Q(this.b,c),!0)};l.Pb=function(a){return this.u[a]};l.Yb=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.ab=!0)};
|
||||
l.Nb=function(a,b){if(this.b&&null!=this.C){var c=this.b;Zc(c,this.C+a,2,c.M)&&c.W(!1)}return this.G(a,b)};l.Xb=function(a,b,c){if(this.b&&null!=this.C){var d=this.b;Zc(d,this.C+b,2,d.I)&&d.W(!1)}this.H?this.Ia(a,0,c):this.D(a,b,c)};var Qc=0,Rc=2,Mc=["NONE","RAM","ROM"],Pc=0,Uc=[],Tc=[Gc.prototype.Pb,Gc.prototype.Yb],Xc=[Gc.prototype.Nb,Gc.prototype.Xb];
|
||||
function $c(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ua=0;this.Xa=b;this.ea=c;this.Va=Math.round(this.Xa/1E4)/100;this.ba=this.Va*this.ea;this.Wa=this.ya=this.fa=this.Oa=0;this.w.L=this.w.Ta=!1;this.w.Z=a.autoStart;"string"==typeof this.w.Z&&(this.w.Z="true"==this.w.Z);this.w.Ea=!1;this.wa=this.ka=0;this.xa=+a.csStart;this.ja=+a.csInterval;this.la=+a.csStop;this.O=[];this.lb=this.Sb.bind(this);this.T=this.N=this.R=this.S=this.M=this.va=this.P=this.ma=this.Ya=this.aa=
|
||||
0;this.Ka=null;z(this)}p($c,u);l=$c.prototype;l.Aa=function(a,b,c,d){this.G=a;this.H=b;this.D=d;this.Ka=a.u;for(a=0;a<ad.length;a++)(b=this.J[ad[a]])&&this.G.ia(null,ad[a],b);z(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.ra=function(a,b){var c=bd(this.G,"autoStart");null!=c?this.w.Z="true"==c?!0:"false"==c?!1:!!c:null==this.w.Z&&(this.w.Z=!this.D&&void 0===this.J.run);if(!b){if(a){cd(this);if(!this.restore(a))return!1;dd(this)}else this.reset();this.D?(a=this.D,b=this.w.Z,a.wa=!0,a.j("Type ? for help with PDPjs Debugger commands"),ed(a),b||fd(a),a.ua&&(b=a.ua,a.ua=null,gd(a,b))):this.status("No debugger detected");this.w.Z||this.j("CPU will not be auto-started "+(this.Ka?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ha=function(a){return a?this.save():!0};l.Z=function(){return this.w.L?!0:this.w.Z?(pc(this),!0):!1};l.rb=function(){return 0};function dd(a){void 0===a.xa&&(a.xa=0);void 0===a.ja&&(a.ja=-1);void 0===a.la&&(a.la=-1);a.w.Ea=0<=a.xa&&0<a.ja;a.w.Ea&&(a.wa=0,a.ka=a.xa-a.T)}function tc(a,b){if(a.w.Ea){var c=!1;a.wa=a.wa+a.rb()|0;a.ka-=b;0>=a.ka&&(a.ka+=a.ja,c=!0);0<=a.la&&a.la<=hd(a)&&(a.ja=a.la=-1,dd(a),a.W(),c=!0);c&&a.j(hd(a)+" cycles: checksum="+q(a.wa))}}
|
||||
l.ia=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.w.V)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.w.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.w.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.w.ready?"powered yet":"ready yet"+(b.Qa?" (waiting for notification)":""))+".");a=!1}a&&(d.w.L?d.W():pc(d))},!0;case "speed":return this.J[b]=
|
||||
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){id(d,d.ea<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function jd(a,b){var c=1;b&&1<a.ea&&a.aa&&(c=a.aa/a.Va);a.Wa=Math.round(1E3/kd);a.ya=Math.floor(a.Xa/kd*c);b||(a.fa=a.ya);a.Oa=0}function hd(a){return a.T+a.N+a.R-a.S}function cd(a){a.aa=0;a.Ya=0;a.T=a.N=a.R=a.S=0;dd(a);id(a,1)}
|
||||
function id(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Va*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&ld(a.G)}sc(a,a.N);a.N=0;a.M=ob();a.P=0;jd(a);return d}function md(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
|
||||
function gc(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=rb(d.id);e||(e=new $b(d,!0));ub(e,c)}}var ac=7,mc="DEP",oc="ENABLE",nc="EXAM",lc="STEP";eb(gc);function Fc(a,b,c){u.call(this,"Bus",a,16);this.v=b;this.D=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.f=Math.log2(16384);this.B=this.F/16384|0;this.A=0;this.b=[];a=new Gc(this);Hc(a,this.D);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;z(this)}p(Fc,u);l=Fc.prototype;l.reset=function(){};
|
||||
l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ia=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,Ic(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,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Jc(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.C)return h.Ka+=h.C-e,h.C=e,!0;if(e>=h.C+h.Ka){m=h.size-(e-k);m>f&&(m=f);h.Ka=e-h.C+m;e=k+16384;f-=m;g++;continue}}return Kc(Lc,e,f)}e=new Gc(a,e,m,16384,d);Hc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Mc[d]+" at "+sa(b)),!0):Kc(Nc,b,c)}
|
||||
function Ec(a,b){var c=a.b[(b&a.u)>>>a.f];a.A++;b=c.G(b&16383,b);a.A--;return b}function vc(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.A++;d.D(c,b&16383,b);a.A--}function Ic(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.fb||e.Eb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
l.Fb=function(a){this.A||(this.D&&Nb(this.D,4)&&Ob(this.D,"memory fault on "+Q(this.D,a),!0,!0),this.v.W())};function Kc(a,b,c){r("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Lc=1,Nc=2;function Oc(a){u.call(this,"Device",a,256)}p(Oc,u);l=Oc.prototype;l.Aa=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.D=d;z(this)};l.ua=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ia=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new O(this)).data()};
|
||||
l.restore=function(){return!0};eb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Oc(c),ub(c,d)}}});function Gc(a,b,c,d,e){this.J=a;this.id=Pc+=2;this.C=b;this.Ka=c;this.size=d||0;this.type=e||Qc;this.H=e==Rc;this.b=null;this.g=this.G=this.ib;this.i=this.D=this.La;this.f=this.v=0;Hc(this);this.fb=this.Eb=!1;if(this.size){a=this.u=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Sc(this,Tc)}else Sc(this)}l=Gc.prototype;l.save=function(){return this.u};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.u=a,this.fb=!0):!1};function Sc(a,b){b||(b=Uc);Vc(a,b,void 0);Wc(a,b,void 0)}function Vc(a,b,c){c&&a.f||(a.g=b[0]||a.ib);if(c||void 0===c)a.G=b[0]||a.ib}function Wc(a,b,c){c&&a.v||(a.i=!a.H&&b[1]||a.La);if(c||void 0===c)a.D=b[1]||a.La}l.Da=function(a,b){b?this.v++||Wc(this,Xc,!1):this.f++||Vc(this,Xc,!1)};function Yc(a,b){b?--a.v||(a.i=a.H?a.La:a.D):--a.f||(a.g=a.G)}
|
||||
function Hc(a,b,c){a.b=b;a.f=a.v=0;c&&((a.f=c.f)&&Vc(a,Xc,!1),(a.v=c.v)&&Wc(a,Xc,!1))}l.ib=function(a,b){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to read invalid address "+Q(this.b,b),!0);this.J.Fb(b);return-1};l.La=function(a,b,c){this.b&&Nb(this.b,32)&&Ob(this.b,"attempt to write "+Q(this.b,a)+" to invalid addresses "+Q(this.b,c),!0)};l.Tb=function(a){return this.u[a]};l.bc=function(a,b){this.u[b]!=a&&(this.u[b]=a,this.fb=!0)};
|
||||
l.Rb=function(a,b){if(this.b&&null!=this.C){var c=this.b;Zc(c,this.C+a,2,c.M)&&c.W(!1)}return this.G(a,b)};l.ac=function(a,b,c){if(this.b&&null!=this.C){var d=this.b;Zc(d,this.C+b,2,d.I)&&d.W(!1)}this.H?this.La(a,0,c):this.D(a,b,c)};var Qc=0,Rc=2,Mc=["NONE","RAM","ROM"],Pc=0,Uc=[],Tc=[Gc.prototype.Tb,Gc.prototype.bc],Xc=[Gc.prototype.Rb,Gc.prototype.ac];
|
||||
function $c(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Xa=0;this.$a=b;this.ea=c;this.Ya=Math.round(this.$a/1E4)/100;this.ba=this.Ya*this.ea;this.Za=this.Ga=this.fa=this.Ra=0;this.w.L=this.w.Wa=!1;this.w.Z=a.autoStart;"string"==typeof this.w.Z&&(this.w.Z="true"==this.w.Z);this.w.Ea=!1;this.za=this.la=0;this.Fa=+a.csStart;this.ka=+a.csInterval;this.ma=+a.csStop;this.O=[];this.rb=this.Wb.bind(this);this.T=this.N=this.R=this.S=this.M=this.ya=this.P=this.na=this.ab=this.aa=
|
||||
0;this.Na=null;z(this)}p($c,u);l=$c.prototype;l.Aa=function(a,b,c,d){this.G=a;this.H=b;this.D=d;this.Na=a.u;for(a=0;a<ad.length;a++)(b=this.J[ad[a]])&&this.G.ja(null,ad[a],b);z(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.ua=function(a,b){var c=bd(this.G,"autoStart");null!=c?this.w.Z="true"==c?!0:"false"==c?!1:!!c:null==this.w.Z&&(this.w.Z=!this.D&&void 0===this.J.run);if(!b){if(a){cd(this);if(!this.restore(a))return!1;dd(this)}else this.reset();this.D?(a=this.D,b=this.w.Z,a.wa=!0,a.j("Type ? for help with PDPjs Debugger commands"),ed(a),b||fd(a),a.qa&&(b=a.qa,a.qa=null,gd(a,b))):this.status("No debugger detected");this.w.Z||this.j("CPU will not be auto-started "+(this.Na?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ia=function(a){return a?this.save():!0};l.Z=function(){return this.w.L?!0:this.w.Z?(pc(this),!0):!1};l.vb=function(){return 0};function dd(a){void 0===a.Fa&&(a.Fa=0);void 0===a.ka&&(a.ka=-1);void 0===a.ma&&(a.ma=-1);a.w.Ea=0<=a.Fa&&0<a.ka;a.w.Ea&&(a.za=0,a.la=a.Fa-a.T)}function tc(a,b){if(a.w.Ea){var c=!1;a.za=a.za+a.vb()|0;a.la-=b;0>=a.la&&(a.la+=a.ka,c=!0);0<=a.ma&&a.ma<=hd(a)&&(a.ka=a.ma=-1,dd(a),a.W(),c=!0);c&&a.j(hd(a)+" cycles: checksum="+q(a.za))}}
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.G)if(a=d.G,a.w.V)a=!0;else{var b=null,c,h=qb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.w.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.w.V);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.w.ready?"powered yet":"ready yet"+(b.Ta?" (waiting for notification)":""))+".");a=!1}a&&(d.w.L?d.W():pc(d))},!0;case "speed":return this.J[b]=
|
||||
c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){id(d,d.ea<<1,!0)},c.textContent=this.ba.toFixed(2)+"Mhz",!0}return!1};function sc(a,b,c){a.T+=b;c&&(a.R=a.S=0)}function jd(a,b){var c=1;b&&1<a.ea&&a.aa&&(c=a.aa/a.Ya);a.Za=Math.round(1E3/kd);a.Ga=Math.floor(a.$a/kd*c);b||(a.fa=a.Ga);a.Ra=0}function hd(a){return a.T+a.N+a.R-a.S}function cd(a){a.aa=0;a.ab=0;a.T=a.N=a.R=a.S=0;dd(a);id(a,1)}
|
||||
function id(a,b,c){var d=!1;if(void 0!==b){.8>a.aa/a.ba?b=1:d=!0;a.ea=b;b=a.Ya*a.ea;if(a.ba!=b){a.ba=b;b=a.ba.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.j("target speed: "+b)}c&&a.G&&ld(a.G)}sc(a,a.N);a.N=0;a.M=ob();a.P=0;jd(a);return d}function md(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;c<a.O.length;c++)b.push(a.O[c][0]);return b}
|
||||
function rc(a,b){for(var c=a.O.length-1;0<=c;c--){var d=a.O[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function od(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c}
|
||||
l.Sb=function(){if(this.w.L){this.Oa>=this.Xa&&jd(this,!0);this.ma=0;this.va=ob();if(this.P){var a=this.va-this.P;a>this.Wa&&(this.M+=a,this.M>this.va&&(this.M=this.va))}try{do{var b=md(this,this.w.Ea?1:this.ya);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.ma+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.ya;++this.Ya>=pd&&(this.G&&P(this.G,void 0),this.Ya=0);break}}while(this.w.L)}catch(e){this.W();this.G&&this.G.stop(ob(),hd(this));Ib(this,
|
||||
e.stack||e.message);return}if(this.w.L){a=setTimeout;b=this.lb;this.P=ob();var c=this.Wa;this.ma&&(c=Math.round(c*this.ma/this.ya));var c=c-(this.P-this.va),d=this.P-this.M;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,id(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.M-=c),c=0;this.Oa+=this.ma;this.P+=c;a(b,c)}}};
|
||||
function pc(a,b){if(!Jb(a))if(a.w.L)a.j(a.toString()+" busy");else{id(a);a.w.L=!0;a.w.Ta=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&ld(a.G,!0),a.G.start(a.M,hd(a)));a.D||a.status("Started");setTimeout(a.lb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.w.L){od(this);sc(this,this.N);this.N=0;this.w.L=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(ob(),hd(this));b=!0;this.D||this.status("Stopped")}this.w.complete=a;return b};var kd=30,pd=15,ad=["power","reset"];
|
||||
function qd(a){var b=+a.model||1001;$c.call(this,a,1E6);this.kb=b;this.La=+a.addrReset||0;this.zb=rd.bind(this);this.b=R.bind(this);this.ta=null;this.ib=[];this.w.complete=!1}p(qd,$c);l=qd.prototype;l.reset=function(){this.status("Model "+this.kb);this.w.L&&this.W();this.f=this.I=this.za=0;this.A=this.ua=this.La;this.F=this.na=-1;this.K=this.u=0;this.sa=this.A;this.B=0;this.g=this.Ob;this.i=this.Zb;this.ta=null;cd(this);this.w.error=!1;$c.prototype.reset.call(this)};l.rb=function(){return 0};
|
||||
l.save=function(){var a=new O(this);a.set(0,[this.f,this.I,this.za,this.A,this.na,this.F,this.u,this.B,this.ua,this.sa,this.La]);a.set(1,[]);a.set(2,[this.T,this.ea,this.w.Z]);a.set(3,sd(this));a.set(4,nd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];la();da();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.f=b.next().value;this.I=b.next().value;this.za=b.next().value;this.A=b.next().value;this.na=b.next().value;this.F=b.next().value;this.u=b.next().value;this.B=b.next().value;this.ua=b.next().value;this.sa=b.next().value;this.La=b.next().value;b=a[2];this.T=b[0];id(this,b[1]);this.w.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ib.length;d++){var e=this.ib[d];if(e.Wb===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.ta,this.ta=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function td(a,b){var c=a.A;a.A=(c+b)%A;return c}function sd(a){var b=[];for(a=a.ta;a;)b.push(a.Wb),a=a.next;return b}l.Ob=function(a){var b=this.H;a=this.sa=a;return b.b[(a&b.u)>>>b.f].g(a&16383,a)};l.Zb=function(a,b){var c=this.H;a=this.sa=a;c.b[(a&c.u)>>>c.f].i(b,a&16383,a);return b};
|
||||
l.Ja=function(a){this.w.complete=!0;var b=this.D?ud(this.D)?1:this.w.Ta?-1:0:0,c=a?this.w.Ta?0:1:-1;this.w.Ta=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(vd(this.D,this.A,c)){this.W();break}++b||(this.B&=-5);c||c++}if(a=this.B&11)this.B&2?this.ta||(this.B&=-3):this.B&1&&this.B++,a=!1;if(a){if(this.B&4&&vd(this.D,this.A,c)){this.W();break}if(0>c)break}}this.B&=15;this.I&4194304?this.I=this.g(this.f):0<=this.na?(this.I=this.za=this.g(this.na),this.na=-1):(this.I=this.za=
|
||||
this.g(this.ua=this.A),this.A=(this.A+1)%A);this.I&=8388607;this.f=this.I&262143;if(a=this.I>>18&15)this.f=this.f+this.g(a)&Qb;a=this.I&4194304?-1:this.za/Yb|0;0<=a&&this.zb(a)}while(0<this.S);return this.w.complete?this.R-this.S:!1===this.w.complete?-1:0};eb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new qd(d);Cb(d,c)}});function rd(a){wd[a>>4].call(this,a,a&15)}function S(a){this.b(a)}
|
||||
function xd(){var a=0,b=this.g(this.f),c=b/Zb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Zb+(d<<24)+(b&16777215);a&&(b=(b+a)%I);this.i(this.f,b)}function yd(a,b){a=this.g(this.f);if(0>this.F)this.F=a,this.I=this.f|4194304;else{var c=this.F/Zb&63,d=this.F>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.i(b,a);this.F=-1}}
|
||||
function zd(a,b){a=this.g(this.f);if(0>this.F)this.F=a,this.I=this.f|4194304,td(this,-1);else{var c=this.F/Zb&63,d=this.F>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%I;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.i(this.f,a);this.F=-1}}function Ad(a,b){this.i(b,this.g(this.f))}function Bd(a,b){this.i(b,this.f)}function Cd(a,b){this.i(this.f,this.g(b))}function Dd(a,b){this.i(b,0)}function Zd(a,b){this.i(b,H-this.g(b))}function $d(a,b){this.i(b,H)}
|
||||
function ae(a,b){var c=this.g(this.f),d=this.g(b);this.i(b,be(a,d,c)+(c-(c&E)))}function ce(a,b){var c=this.g(b);this.i(b,be(a,c,0))}function de(a,b){b=this.g(b);var c=this.g(this.f);this.i(this.f,be(a,c,b)+(b-(b&E)))}function ee(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d-=d&E,a){case 256:d+=E;break;case 384:d+=c>J?E:0}c=d;this.i(this.f,c);b&&this.i(b,c)}function fe(a,b){var c=(this.g(this.f)&E)*F,d=this.g(b);this.i(b,be(a,d,c)+c)}
|
||||
function ge(a,b){var c=this.f*F,d=this.g(b);this.i(b,be(a,d,c)+c)}function he(a,b){b=(this.g(b)&E)*F;var c=this.g(this.f);this.i(this.f,be(a,c,b)+b)}function ie(a,b){var c=this.g(this.f),d=(c&E)*F,c=be(a,c,d)+d;this.i(this.f,c);b&&this.i(b,c)}function je(a,b){var c=this.g(this.f)&E,d=this.g(b);this.i(b,ke(a,d,c)+c)}function le(a,b){var c=this.g(b);this.i(b,ke(a,c,this.f)+this.f)}function me(a,b){b=this.g(b)&E;var c=this.g(this.f);this.i(this.f,ke(a,c,b)+b)}
|
||||
function ne(a,b){var c=this.g(this.f),d=c;if(a&=384)switch(d&=E,a){case 256:d+=E*F;break;case 384:d+=c>Sb?E*F:0}c=d;this.i(this.f,c);b&&this.i(b,c)}function oe(a,b){var c=this.g(this.f)/F|0,d=this.g(b);this.i(b,ke(a,d,c)+c)}function pe(a,b){var c=this.g(b);this.i(b,ke(a,c,0))}function qe(a,b){b=this.g(b)/F|0;var c=this.g(this.f);this.i(this.f,ke(a,c,b)+b)}function re(a,b){var c=this.g(this.f),d=c/F|0,c=ke(a,c,d)+d;this.i(this.f,c);b&&this.i(b,c)}function U(a){se[a&7].call(this,a,a>>3&127)}
|
||||
function te(){}function R(a){this.j("undefined opcode: "+sa(a));td(this,-1);this.W()}function ue(a){a>J&&(a!=Tb?a=Ub-a:this.u|=163840);return a}function ve(a,b){var c=(a+b)%I;we.call(this,a,b,c);return c}function V(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function xe(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function ye(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}
|
||||
function ze(a,b){var c=a,d=b;b=!1;var e;c>J&&(c=I-c,b=!b);d>J&&(d=I-d,b=!b);if(c<F&&d<F)a=c*d,e=0;else{a=c%F;c=Math.trunc(c/F);e=d%F;var d=Math.trunc(d/F),f=a*e,g=c*e+Math.trunc(f/F);e=Math.trunc(g/F);g=g%F+a*d;a=g*F+f%F;e+=Math.trunc(g/F)+c*d}b&&(a?(e=H-e,a=I-a):e&&(e=I-e));b=a;a=e;c=a-a%G;a=2*a%I+Math.trunc(b/G);b=c+b%G;e=a-a%G;c!=e&&(a=c+(a-e),this.u|=131072);this.K=b;return a}function Ae(a){a?a==Tb?this.u|=163840:a=Ub-a:this.u|=98304;return a}
|
||||
function Be(a,b){var c=a-b;0>c&&(c+=I);we.call(this,c,b,a);return c}function we(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function ke(a,b,c){switch(a&384){case 0:b-=b&E;break;case 128:b=0;break;case 256:b=E*F;break;case 384:b=c>Sb?E*F:0}return b}function be(a,b,c){switch(a&384){case 0:b&=E;break;case 128:b=0;break;case 256:b=E;break;case 384:b=c>J?E:0}return b}
|
||||
function Ce(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=I&&(a[0]%=I,a[1]++)}function De(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Ee(a){a[1]%2&&(a[0]+=I);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}
|
||||
var wd=[S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},xd,function(a,b){0>this.F&&xd.call(this);yd.call(this,0,b)},yd,function(a,b){0>this.F&&xd.call(this);zd.call(this,0,b)},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)},Ad,Bd,Cd,function(a,b){b&&this.i(b,this.g(this.f))},function(a,b){a=this.g(this.f);a=(a/F|0)+a%F*F;this.i(b,a)},function(a,b){this.i(b,this.f*F)},function(a,b){a=this.g(b);a=(a/F|0)+a%F*F;this.i(this.f,a)},function(a,b){a=this.g(this.f);a=(a/F|0)+a%F*F;this.i(this.f,a);b&&this.i(b,a)},function(a,b){this.i(b,Ae.call(this,this.g(this.f)))},function(a,b){this.i(b,this.f?Ub-this.f:0)},function(a,b){this.i(this.f,
|
||||
Ae.call(this,this.g(b)))},function(a,b){a=Ae.call(this,this.g(this.f));this.i(this.f,a);b&&this.i(b,a)},function(a,b){this.i(b,ue.call(this,this.g(this.f)))},function(a,b){this.i(b,this.f)},function(a,b){this.i(this.f,ue.call(this,this.g(b)))},function(a,b){a=ue.call(this,this.g(this.f));this.i(this.f,a);b&&this.i(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,ze.call(this,this.g(b),this.g(this.f)));this.i(b+1&15,this.K)},function(a,
|
||||
b){this.i(b,ze.call(this,this.g(b),this.f));this.i(b+1&15,this.K)},function(a,b){this.i(this.f,ze.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,ze.call(this,this.g(b),this.g(this.f))));this.i(b+1&15,this.K)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){a=this.g(b);var c=this.g(b+1&15);var d=c,e=a,f=this.g(this.f),c=a=!1,g=e-e%G,d=d%G+e*G%I,e=this.K=g+Math.trunc(e/2);f>J&&(f=I-f,a=!a);e>J&&(d?(e=H-e,d=I-d):e&&
|
||||
(e=I-e),c=!0,a=!a);if(e>=f)this.u|=32,c=-1;else{for(var g=[0,0],h=[1,0],f=[f,0],e=[d,e];0<De(e,f);)Ce(f,f),Ce(h,h);do{if(0<=De(e,f)){var d=e,k=f;d[0]-=k[0];d[1]-=k[1];0>d[0]&&(d[0]+=I,d[1]--);Ce(g,h);if(!e[0]&&!e[1])break}Ee(f);Ee(h)}while(h[0]||h[1]);d=g[0];this.K=e[0];a&&d&&(d=I-d);c&&this.K&&(this.K=I-this.K);c=d}0>c||(this.i(b,c),this.i(b+1&15,this.K))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){var c=(this.f<<14>>14)%256;if(c){a=this.g(b);var d=a>J?-(I-
|
||||
a):a;0<c?(35<=c?(d=0>d?G:0,c=Rb):(d=d*Math.pow(2,c)%G,c=G-Math.pow(2,35-c)),a<=J?a+c>J&&(this.u|=131072):a-c<=J&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+I:d;this.i(b,a)}},function(a,b){if(a=(this.f<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%I+Math.trunc(c/Math.pow(2,36-a));this.i(b,c)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%I:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.i(b,c)}},function(a,b){a=0;var c=
|
||||
this.g(b);if(c){for(;c<G;)a++,c*=2;this.A=this.f%A}this.i(b+1&15,a)},function(a,b){if(a=(this.f<<14>>14)%256){var c,d=this.g(b),e=this.g(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<G||d>Rb&&d<H)this.u|=131072;if(71<=a){if(0<e&&e<G||e>Rb&&e<H)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=J?e+c>J&&(this.u|=131072):e-c<=J&&(this.u|=131072);e=0;f>Rb&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=J?f+c>J&&(this.u|=
|
||||
131072):(f-c<=J&&(this.u|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>Rb?H:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=Rb?d=0:(d=H,e+=G)):(c=d>Rb?I-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>Rb&&(e+=G));this.i(b,d);this.i(b+1&15,e)}},function(a,b){if(a=(this.f<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%I+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%I+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,
|
||||
a-36)%I+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%I+Math.trunc(d/Math.pow(2,72-a)));this.i(b,c);this.i(b+1&15,d)}},function(a,b){if(a=(this.f<<14>>14)%256){var c=this.g(b),d=this.g(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%I,d=0):(c=c*Math.pow(2,a)%I+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%I):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%I,c=Math.trunc(c/Math.pow(2,-a)));this.i(b,c);this.i(b+1&15,d)}},R,function(a,
|
||||
b){a=this.g(b);this.i(b,this.g(this.f));this.i(this.f,a)},function(a,b){a=!1;for(var c=this.g(b),d=c/F|0,c=c&E;!a;)this.i(c,this.g(d)),c==this.f&&(a=!0),d=d+1&E,c=c+1&E,this.w.L||(this.i(b,d*F+c),a||td(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,this.A=this.f%A)},function(){this.na=this.f},R,function(a){this.b(a)},function(a,b){a=this.g(b);a+=262145;this.i(a&E,this.g(this.f));a>=I&&(a-=I);a/F|0||(this.u|=262144);
|
||||
this.i(b,a)},function(a,b){a=this.g(b);var c=this.g(a&E);this.i(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=I);(a/F|0)==E&&(this.u|=262144);this.i(b,a)},function(a){this.b(a)},function(){this.i(this.f,(this.u&E)*F+this.A);this.A=(this.f+1)%A},function(a,b){this.i(b,(this.u&E)*F+this.A);this.A=this.f%A},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.i(b,ve.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,ve.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,ve.call(this,
|
||||
this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,ve.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,Be.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,Be.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,Be.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,Be.call(this,this.g(b),this.g(this.f))))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Dd,Dd,function(){this.i(this.f,0)},function(a,b){this.i(this.f,this.i(b,0))},function(a,b){this.i(b,V.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,V.call(this,this.g(b),
|
||||
this.f))},function(a,b){this.i(this.f,V.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,V.call(this,H-this.g(b),this.g(this.f)))},function(a,b){this.i(b,V.call(this,H-this.g(b),this.f))},function(a,b){this.i(this.f,V.call(this,H-this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,H-this.g(b),this.g(this.f))))},Ad,Bd,te,Ad,function(a,b){this.i(b,V.call(this,this.g(b),H-this.g(this.f)))},
|
||||
function(a,b){this.i(b,V.call(this,this.g(b),H-this.f))},function(a,b){this.i(this.f,V.call(this,this.g(b),H-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,this.g(b),H-this.g(this.f))))},te,te,Cd,Cd,function(a,b){this.i(b,xe.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,xe.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,xe.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,xe.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,
|
||||
W.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,W.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,W.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,W.call(this,this.g(b),this.g(this.f))))},function(a,b){this.i(b,V.call(this,H-this.g(b),H-this.g(this.f)))},function(a,b){this.i(b,V.call(this,H-this.g(b),H-this.f))},function(a,b){this.i(this.f,V.call(this,H-this.g(b),H-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,V.call(this,H-this.g(b),H-
|
||||
this.g(this.f))))},function(a,b){this.i(b,ye.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(b,ye.call(this,this.g(b),this.f))},function(a,b){this.i(this.f,ye.call(this,this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,ye.call(this,this.g(b),this.g(this.f))))},Zd,Zd,function(a,b){this.i(this.f,H-this.g(b))},function(a,b){this.i(this.f,this.i(b,H-this.g(b)))},function(a,b){this.i(b,W.call(this,H-this.g(b),this.g(this.f)))},function(a,b){this.i(b,W.call(this,H-this.g(b),this.f))},
|
||||
function(a,b){this.i(this.f,W.call(this,H-this.g(b),this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,W.call(this,H-this.g(b),this.g(this.f))))},function(a,b){this.i(b,H-this.g(this.f))},function(a,b){this.i(b,H-this.f)},function(){this.i(this.f,H-this.g(this.f))},function(a,b){this.i(this.f,this.i(b,H-this.g(this.f)))},function(a,b){this.i(b,W.call(this,this.g(b),H-this.g(this.f)))},function(a,b){this.i(b,W.call(this,this.g(b),H-this.f))},function(a,b){this.i(this.f,W.call(this,this.g(b),H-
|
||||
this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,W.call(this,this.g(b),H-this.g(this.f))))},function(a,b){this.i(b,W.call(this,H-this.g(b),H-this.g(this.f)))},function(a,b){this.i(b,W.call(this,H-this.g(b),H-this.f))},function(a,b){this.i(this.f,W.call(this,H-this.g(b),H-this.g(this.f)))},function(a,b){this.i(this.f,this.i(b,W.call(this,H-this.g(b),H-this.g(this.f))))},$d,$d,function(){this.i(this.f,H)},function(a,b){this.i(this.f,this.i(b,H))},ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,
|
||||
ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},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],se=[function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.g(this.f);a&8&&(this.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.b(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&
|
||||
262144&&(a|=65536);this.i(this.f,a);break;default:this.b(a)}},function(a){this.b(a)},function(a){this.b(a)}];
|
||||
function Fe(a){u.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.F=va(this.A);if(this.A){a=this.A;var b=wa(this.F);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ka(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(mb(c.Na,a,b),(a=La(a,b))?(c.b=a.Y,c.U=a.U):c.A=null);Ge(c)})}}p(Fe,u);
|
||||
Fe.prototype.Aa=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Ge(this)};Fe.prototype.ra=function(){this.U&&(this.D&&He(this.D,this.id,this.B,this.u,this.U),delete this.U);return!0};Fe.prototype.ha=function(){return!0};
|
||||
function Ge(a){if(!Kb(a)){if(a.A){if(!a.b||!a.H)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ib(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.u,8,!0)+")");else{var b;b=a.B;if(Jc(a.H,b,a.u,Rc)){var c;for(c=0;c<a.b.length;c++)Dc(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.u,h=[],k=d.B>>>f.f;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.u;g=0;for(e>>>=
|
||||
f.f;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}z(a)}}eb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Fe(d);Cb(d,c)}});
|
||||
function Ie(a){u.call(this,"RAM",a);this.U=this.Ca=null;this.f=+a.addr;this.u=+a.size;this.pa=a.load;this.oa=a.exec;null!=this.pa&&(this.pa=+this.pa);null!=this.oa&&(this.oa=+this.oa);this.A=this.F=!1;this.b=a.file;this.B=va(this.b);if(this.b){a=this.b;var b=wa(this.B);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ka(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(mb(c.Na,a,b),(a=La(a,b))?(c.Ca=a.Ca,
|
||||
c.U=a.U,null==c.pa&&(c.pa=a.pa),null==c.oa&&(c.oa=a.oa)):c.b=null);Je(c)})}}p(Ie,u);Ie.prototype.Aa=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Je(this)};Ie.prototype.ra=function(a,b){this.U&&(this.D&&He(this.D,this.id,this.f,this.u,this.U),delete this.U);b||this.reset();return!0};Ie.prototype.ha=function(){return!0};
|
||||
function Je(a){if(a.H&&(!a.A&&a.u&&(Jc(a.H,a.f,a.u,1)?a.A=!0:a.u=0),!Kb(a))){if(!a.A)r("No RAM allocated");else if(a.b){if(!a.Ca)return;Ke(a,a.Ca,a.pa,a.oa,a.f)?a.status('Loaded image "'+a.B+'"'):a.da('Error loading image "'+a.B+'"')}a.F=!0;z(a)}}
|
||||
Ie.prototype.reset=function(){if(this.A&&!this.F){for(var a=this.H,b=this.f,c=this.u,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-Tb&&(g+=I);for(var g=Math.trunc(Math.abs(g))%I,h=d;f--&&h<e.size;h++)e.D(g,d,e.C+d);c-=16384;b++;d=0}this.Ca&&Ke(this,this.Ca,this.pa,this.oa,this.f,!this.D)}this.F=!1};
|
||||
function Ke(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Dc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.La=d,a.A=d%A,f?a.w.V?a.w.L||pc(a):a.w.Z=!0:a.D&&a.w.V?a.W()||a.G.w.reset||(ed(a.D),P(a.G,-1)):!1===f&&a.W(),!a.w.L&&a.Ka&&a.Ka.stop()));return g}eb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ie(d);Cb(d,c)}});
|
||||
function Le(a){u.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.u=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Me;b&&(void 0===c&&(c="Panel"),(c=Bb(c,this.id))&&(b=c.J[b])&&this.ia(null,a,b))}this.b=this.B=null;this.exports={connect:this.sb,receiveData:this.Ra,receiveStatus:this.Qb,setConnection:this.Tb}}p(Le,u);l=Le.prototype;
|
||||
l.ia=function(a,b,c){var d=this;switch(b){case Me:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?pa.gb:pa.xb:46==c?b=pa.gb:a.ctrlKey&&c>=pa.fb&&c<=pa.yb&&(b=c-(pa.fb-pa.ub));b&&(a.preventDefault&&a.preventDefault(),d.Ra(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==pa.wb&&(b=pa.vb);d.Ra(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.Ra(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.Aa=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;z(this)};
|
||||
l.sb=function(a){if(!this.b){var b=bd(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ha(c[0]);if(d!=this.Ma)return;c=Ha(c[1]);if(this.b=sb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Na+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ra=function(a,b){if(!b)if(this.sb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ha=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new O(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ra=function(a){if("number"==typeof a)this.f.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.f.push(b)}else this.f=this.f.concat(a);return!0};l.Qb=function(){};l.Tb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Me="buffer";
|
||||
eb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Le(d);Cb(d,c)}});function Ne(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.A=-1;this.u=[];this.T={}}p(Ne,u);Ne.prototype.bb=function(){return-1};Ne.prototype.cb=function(){};
|
||||
function Oe(a,b,c,d){if(c)if(b){0>a.A&&a.u.length&&(a.A=0);if(0>a.A||b!=a.u[a.A])a.u.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.u[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ha(b.substring(c,f))),c=f+1}}return a}
|
||||
function Pe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
l.Wb=function(){if(this.w.L){this.Ra>=this.$a&&jd(this,!0);this.na=0;this.ya=ob();if(this.P){var a=this.ya-this.P;a>this.Za&&(this.M+=a,this.M>this.ya&&(this.M=this.ya))}try{do{var b=md(this,this.w.Ea?1:this.Ga);try{this.Ma(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.na+=b;this.N+=b;tc(this,b);rc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ga;++this.ab>=pd&&(this.G&&P(this.G,void 0),this.ab=0);break}}while(this.w.L)}catch(e){this.W();this.G&&this.G.stop(ob(),hd(this));Ib(this,
|
||||
e.stack||e.message);return}if(this.w.L){a=setTimeout;b=this.rb;this.P=ob();var c=this.Za;this.na&&(c=Math.round(c*this.na/this.Ga));var c=c-(this.P-this.ya),d=this.P-this.M;d&&(this.aa=Math.round(this.N/(10*d))/100,864E5<=d&&(this.T=0,id(this)));if(0>c||this.aa<this.ba)-1E3>c&&(this.M-=c),c=0;this.Ra+=this.na;this.P+=c;a(b,c)}}};
|
||||
function pc(a,b){if(!Jb(a))if(a.w.L)a.j(a.toString()+" busy");else{id(a);a.w.L=!0;a.w.Wa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&ld(a.G,!0),a.G.start(a.M,hd(a)));a.D||a.status("Started");setTimeout(a.rb,0)}}l.Ma=function(){return 0};l.W=function(a){var b=!1;if(this.w.L){od(this);sc(this,this.N);this.N=0;this.w.L=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(ob(),hd(this));b=!0;this.D||this.status("Stopped")}this.w.complete=a;return b};var kd=30,pd=15,ad=["power","reset"];
|
||||
function qd(a){var b=+a.model||1001;$c.call(this,a,1E6);this.qb=b;this.Oa=+a.addrReset||0;this.Cb=rd.bind(this);this.f=R.bind(this);this.wa=null;this.nb=[];this.w.complete=!1}p(qd,$c);l=qd.prototype;l.reset=function(){this.status("Model "+this.qb);this.w.L&&this.W();this.b=this.K=this.Ha=0;this.A=this.xa=this.Oa;this.I=this.qa=-1;this.F=this.u=0;this.bb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.A;this.B=0;this.g=this.Sb;this.i=this.cc;this.wa=null;cd(this);this.w.error=!1;$c.prototype.reset.call(this)};
|
||||
l.vb=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[this.b,this.K,this.Ha,this.A,this.qa,this.I,this.u,this.B,this.xa,this.va,this.Oa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.w.Z]);a.set(3,sd(this));a.set(4,nd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];la();da();la();var c=b[Symbol.iterator];b=c?c.call(b):ma(b);this.b=b.next().value;this.K=b.next().value;this.Ha=b.next().value;this.A=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.u=b.next().value;this.B=b.next().value;this.xa=b.next().value;this.va=b.next().value;this.Oa=b.next().value;b=a[2];this.T=b[0];id(this,b[1]);this.w.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.nb.length;d++){var e=this.nb[d];if(e.$b===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.wa,this.wa=d)}a=a[4];for(b=0;b<this.O.length&&b<a.length;b++)this.O[b][0]=a[b];return!0};function td(a,b){var c=a.A;a.A=(c+b)%A;return c}function sd(a){var b=[];for(a=a.wa;a;)b.push(a.$b),a=a.next;return b}l.Sb=function(a){var b=this.H;a=this.va=a;return b.b[(a&b.u)>>>b.f].g(a&16383,a)};l.cc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.f].i(b,a&16383,a);return b};
|
||||
l.Ma=function(a){this.w.complete=!0;var b=this.D?ud(this.D)?1:this.w.Wa?-1:0:0,c=a?this.w.Wa?0:1:-1;this.w.Wa=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(vd(this.D,this.A,c)){this.W();break}++b||(this.B&=-5);c||c++}if(a=this.B&11)this.B&2?this.wa||(this.B&=-3):this.B&1&&this.B++,a=!1;if(a){if(this.B&4&&vd(this.D,this.A,c)){this.W();break}if(0>c)break}}this.B&=15;this.K&4194304?this.K=this.g(this.b):0<=this.qa?(this.K=this.Ha=this.g(this.qa),this.qa=-1):(this.K=this.Ha=
|
||||
this.g(this.xa=this.A),this.A=(this.A+1)%A);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.g(a)&Qb;a=this.K&4194304?-1:this.Ha/Yb|0;0<=a&&this.Cb(a)}while(0<this.S);return this.w.complete?this.R-this.S:!1===this.w.complete?-1:0};eb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new qd(d);ub(d,c)}});function rd(a){wd[a>>4].call(this,a,a&15)}function S(a){this.f(a)}
|
||||
function xd(){var a=0,b=this.g(this.b),c=b/Zb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Zb+(d<<24)+(b&16777215);a&&(b=(b+a)%I);this.i(this.b,b)}function yd(a,b){a=this.g(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Zb&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.i(b,a);this.I=-1}}
|
||||
function zd(a,b){a=this.g(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/Zb&63,d=this.I>>24&63;b=this.g(b)%Math.pow(2,d)*Math.pow(2,c)%I;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.i(this.b,a);this.I=-1}}function Ad(a,b){this.i(b,this.g(this.b))}function Bd(a,b){this.i(b,this.b)}function Cd(a,b){this.i(this.b,this.g(b))}function Dd(a,b){this.i(b,0)}function Zd(a,b){this.i(b,H-this.g(b))}function $d(a,b){this.i(b,H)}
|
||||
function ae(a,b){var c=this.g(this.b),d=this.g(b);this.i(b,be(a,d,c)+(c-(c&B)))}function ce(a,b){var c=this.g(b);this.i(b,be(a,c,0))}function de(a,b){b=this.g(b);var c=this.g(this.b);this.i(this.b,be(a,c,b)+(b-(b&B)))}function ee(a,b){var c=this.g(this.b),d=c;if(a&=384)switch(d-=d&B,a){case 256:d+=B;break;case 384:d+=c>J?B:0}c=d;this.i(this.b,c);b&&this.i(b,c)}function fe(a,b){var c=(this.g(this.b)&B)*F,d=this.g(b);this.i(b,be(a,d,c)+c)}
|
||||
function ge(a,b){var c=this.b*F,d=this.g(b);this.i(b,be(a,d,c)+c)}function he(a,b){b=(this.g(b)&B)*F;var c=this.g(this.b);this.i(this.b,be(a,c,b)+b)}function ie(a,b){var c=this.g(this.b),d=(c&B)*F,c=be(a,c,d)+d;this.i(this.b,c);b&&this.i(b,c)}function je(a,b){var c=this.g(this.b)&B,d=this.g(b);this.i(b,ke(a,d,c)+c)}function le(a,b){var c=this.g(b);this.i(b,ke(a,c,this.b)+this.b)}function me(a,b){b=this.g(b)&B;var c=this.g(this.b);this.i(this.b,ke(a,c,b)+b)}
|
||||
function ne(a,b){var c=this.g(this.b),d=c;if(a&=384)switch(d&=B,a){case 256:d+=B*F;break;case 384:d+=c>Sb?B*F:0}c=d;this.i(this.b,c);b&&this.i(b,c)}function oe(a,b){var c=this.g(this.b)/F|0,d=this.g(b);this.i(b,ke(a,d,c)+c)}function pe(a,b){var c=this.g(b);this.i(b,ke(a,c,0))}function qe(a,b){b=this.g(b)/F|0;var c=this.g(this.b);this.i(this.b,ke(a,c,b)+b)}function re(a,b){var c=this.g(this.b),d=c/F|0,c=ke(a,c,d)+d;this.i(this.b,c);b&&this.i(b,c)}function U(a){se[a&7].call(this,a,a>>3&127)}
|
||||
function te(){}function R(a){this.j("undefined opcode: "+sa(a));td(this,-1);this.W()}function ue(a){a>J&&(a!=Tb?a=Ub-a:this.u|=163840);return a}function ve(a,b){var c=(a+b)%I;we.call(this,a,b,c);return c}function V(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}
|
||||
function xe(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%I;b=this.F=f+Math.trunc(b/2);c>J&&(c=I-c,d=!d);b>J&&(a?(b=H-b,a=I-a):b&&(b=I-b),e=!0,d=!d);if(b>=c)return this.u|=131104,-1;f=this.bb;f[0]=0;f[1]=0;f=this.oa;f[0]=1;f[1]=0;f=this.ga;f[0]=c;f[1]=0;c=this.pa;c[0]=a;for(c[1]=b;0<ye(this.pa,this.ga);)ze(this.ga,this.ga),ze(this.oa,this.oa);do{if(0<=ye(this.pa,this.ga)&&(b=this.pa,a=this.ga,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=I,b[1]--),ze(this.bb,this.oa),Ae(this.pa)))break;Be(this.ga);Be(this.oa)}while(!Ae(this.oa));
|
||||
a=this.bb[0];this.F=this.pa[0];d&&a&&(a=I-a);e&&this.F&&(this.F=I-this.F);return a}function Ce(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function De(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}
|
||||
function Ee(a,b,c){var d=a,e=b;b=!1;var f;d>J&&(d=I-d,b=!b);e>J&&(e=I-e,b=!b);if(d<F&&e<F)a=d*e,f=0;else{a=d%F;d=Math.trunc(d/F);f=e%F;var e=Math.trunc(e/F),g=a*f,h=d*f+Math.trunc(g/F);f=Math.trunc(h/F);h=h%F+a*e;a=h*F+g%F;f+=Math.trunc(h/F)+d*e}b&&(a?(f=H-f,a=I-a):f&&(f=I-f));if(c)return(f||a>J)&&(f!=H||a<=J)&&(this.u|=131072),a;c=a;b=f;a=b-b%G;b=2*b%I+Math.trunc(c/G);c=a+c%G;d=b-b%G;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b}
|
||||
function Fe(a){a?a==Tb?this.u|=163840:a=Ub-a:this.u|=98304;return a}function Ge(a,b){var c=a-b;0>c&&(c+=I);we.call(this,c,b,a);return c}function we(a,b,c){a=Math.trunc(a/Vb);b=Math.trunc(b/Vb);c=Math.trunc(c/Vb);var d=a^(a^b)&(b^c);this.u=this.u|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function ke(a,b,c){switch(a&384){case 0:b-=b&B;break;case 128:b=0;break;case 256:b=B*F;break;case 384:b=c>Sb?B*F:0}return b}
|
||||
function be(a,b,c){switch(a&384){case 0:b&=B;break;case 128:b=0;break;case 256:b=B;break;case 384:b=c>J?B:0}return b}function ze(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=I&&(a[0]%=I,a[1]++)}function ye(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Be(a){a[1]%2&&(a[0]+=I);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Ae(a){return!a[0]&&!a[1]}
|
||||
var wd=[S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},xd,function(a,b){0>this.I&&xd.call(this);yd.call(this,0,b)},yd,function(a,b){0>this.I&&xd.call(this);zd.call(this,0,b)},zd,function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},Ad,Bd,Cd,function(a,b){b&&this.i(b,this.g(this.b))},function(a,b){a=this.g(this.b);a=(a/F|0)+a%F*F;this.i(b,a)},function(a,b){this.i(b,this.b*F)},function(a,b){a=this.g(b);a=(a/F|0)+a%F*F;this.i(this.b,a)},function(a,b){a=this.g(this.b);a=(a/F|0)+a%F*F;this.i(this.b,a);b&&this.i(b,a)},function(a,b){this.i(b,Fe.call(this,this.g(this.b)))},function(a,b){this.i(b,Fe.call(this,this.b))},function(a,b){this.i(this.b,
|
||||
Fe.call(this,this.g(b)))},function(a,b){a=Fe.call(this,this.g(this.b));this.i(this.b,a);b&&this.i(b,a)},function(a,b){this.i(b,ue.call(this,this.g(this.b)))},function(a,b){this.i(b,this.b)},function(a,b){this.i(this.b,ue.call(this,this.g(b)))},function(a,b){a=ue.call(this,this.g(this.b));this.i(this.b,a);b&&this.i(b,a)},function(a,b){this.i(b,Ee.call(this,this.g(b),this.g(this.b),!0))},function(a,b){this.i(b,Ee.call(this,this.g(b),this.b,!0))},function(a,b){this.i(this.b,Ee.call(this,this.g(b),this.g(this.b),
|
||||
!0))},function(a,b){this.i(this.b,this.i(b,Ee.call(this,this.g(b),this.g(this.b),!0)))},function(a,b){this.i(b,Ee.call(this,this.g(b),this.g(this.b)));this.i(b+1&15,this.F)},function(a,b){this.i(b,Ee.call(this,this.g(b),this.b));this.i(b+1&15,this.F)},function(a,b){this.i(this.b,Ee.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,Ee.call(this,this.g(b),this.g(this.b))));this.i(b+1&15,this.F)},function(a,b){a=xe.call(this,this.g(b),0,this.g(this.b));0>a||(this.i(b,a),this.i(b+
|
||||
1&15,this.F))},function(a,b){a=xe.call(this,this.g(b),0,this.b);0>a||(this.i(b,a),this.i(b+1&15,this.F))},function(a,b){a=xe.call(this,this.g(b),0,this.g(this.b));0>a||this.i(this.b,a)},function(a,b){a=xe.call(this,this.g(b),0,this.g(this.b));0>a||this.i(b,this.i(this.b,a))},function(a,b){a=this.g(b);var c=this.g(b+1&15),c=xe.call(this,c,a,this.g(this.b));0>c||(this.i(b,c),this.i(b+1&15,this.F))},function(a,b){a=this.g(b);var c=this.g(b+1&15),c=xe.call(this,c,a,this.b);0>c||(this.i(b,c),this.i(b+
|
||||
1&15,this.F))},function(a,b){a=this.g(b);b=this.g(b+1&15);b=xe.call(this,b,a,this.g(this.b));0>b||this.i(this.b,b)},function(a,b){a=this.g(b);var c=this.g(b+1&15),c=xe.call(this,c,a,this.g(this.b));0>c||(this.i(b,this.i(this.b,c)),this.i(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.g(b);var d=a>J?-(I-a):a;0<c?(35<=c?(d=0>d?G:0,c=Rb):(d=d*Math.pow(2,c)%G,c=G-Math.pow(2,35-c)),a<=J?a+c>J&&(this.u|=131072):a-c<=J&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,
|
||||
-c));a=0>d?d+I:d;this.i(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.g(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%I+Math.trunc(c/Math.pow(2,36-a));this.i(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.g(b),c=0<a?36<=a?0:c*Math.pow(2,a)%I:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.i(b,c)}},function(a,b){a=0;var c=this.g(b);if(c){for(;c<G;)a++,c*=2;this.A=this.b%A}this.i(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.g(b),e=this.g(b+1&15);if(0<a){var f=d;if(36<=a){if(0<
|
||||
d&&d<G||d>Rb&&d<H)this.u|=131072;if(71<=a){if(0<e&&e<G||e>Rb&&e<H)this.u|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=J?e+c>J&&(this.u|=131072):e-c<=J&&(this.u|=131072);e=0;f>Rb&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=J?f+c>J&&(this.u|=131072):(f-c<=J&&(this.u|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>Rb?H:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=Rb?d=0:(d=H,e+=G)):(c=d>Rb?I-Math.pow(2,36+a):0,e=Math.trunc(e%
|
||||
G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>Rb&&(e+=G));this.i(b,d);this.i(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.g(b),d=this.g(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%I+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%I+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%I+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%I+Math.trunc(d/Math.pow(2,72-a)));this.i(b,c);this.i(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=
|
||||
this.g(b),d=this.g(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%I,d=0):(c=c*Math.pow(2,a)%I+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%I):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%I,c=Math.trunc(c/Math.pow(2,-a)));this.i(b,c);this.i(b+1&15,d)}},R,function(a,b){a=this.g(b);this.i(b,this.g(this.b));this.i(this.b,a)},function(a,b){a=!1;for(var c=this.g(b),d=c/F|0,c=c&B;!a;)this.i(c,this.g(d)),c==this.b&&(a=!0),d=d+1&B,c=c+1&B,
|
||||
this.w.L||(this.i(b,d*F+c),a||td(this,-1),a=!0)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,this.A=this.b%A)},function(){this.qa=this.b},R,function(a){this.f(a)},function(a,b){a=this.g(b);a+=262145;this.i(a&B,this.g(this.b));a>=I&&(a-=I);a/F|0||(this.u|=262144);this.i(b,a)},function(a,b){a=this.g(b);var c=this.g(a&B);this.i(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=I);(a/F|0)==B&&(this.u|=262144);this.i(b,a)},function(a){this.f(a)},
|
||||
function(){this.i(this.b,(this.u&B)*F+this.A);this.A=(this.b+1)%A},function(a,b){this.i(b,(this.u&B)*F+this.A);this.A=this.b%A},function(a){this.f(a)},function(a){this.f(a)},function(a,b){this.i(b,ve.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(b,ve.call(this,this.g(b),this.b))},function(a,b){this.i(this.b,ve.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,ve.call(this,this.g(b),this.g(this.b))))},function(a,b){this.i(b,Ge.call(this,this.g(b),this.g(this.b)))},
|
||||
function(a,b){this.i(b,Ge.call(this,this.g(b),this.b))},function(a,b){this.i(this.b,Ge.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,Ge.call(this,this.g(b),this.g(this.b))))},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},Dd,Dd,function(){this.i(this.b,0)},function(a,b){this.i(this.b,this.i(b,0))},function(a,b){this.i(b,V.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(b,V.call(this,this.g(b),this.b))},function(a,b){this.i(this.b,V.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,V.call(this,this.g(b),this.g(this.b))))},
|
||||
function(a,b){this.i(b,V.call(this,H-this.g(b),this.g(this.b)))},function(a,b){this.i(b,V.call(this,H-this.g(b),this.b))},function(a,b){this.i(this.b,V.call(this,H-this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,V.call(this,H-this.g(b),this.g(this.b))))},Ad,Bd,te,Ad,function(a,b){this.i(b,V.call(this,this.g(b),H-this.g(this.b)))},function(a,b){this.i(b,V.call(this,this.g(b),H-this.b))},function(a,b){this.i(this.b,V.call(this,this.g(b),H-this.g(this.b)))},function(a,b){this.i(this.b,
|
||||
this.i(b,V.call(this,this.g(b),H-this.g(this.b))))},te,te,Cd,Cd,function(a,b){this.i(b,Ce.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(b,Ce.call(this,this.g(b),this.b))},function(a,b){this.i(this.b,Ce.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,Ce.call(this,this.g(b),this.g(this.b))))},function(a,b){this.i(b,W.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(b,W.call(this,this.g(b),this.b))},function(a,b){this.i(this.b,W.call(this,this.g(b),this.g(this.b)))},
|
||||
function(a,b){this.i(this.b,this.i(b,W.call(this,this.g(b),this.g(this.b))))},function(a,b){this.i(b,V.call(this,H-this.g(b),H-this.g(this.b)))},function(a,b){this.i(b,V.call(this,H-this.g(b),H-this.b))},function(a,b){this.i(this.b,V.call(this,H-this.g(b),H-this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,V.call(this,H-this.g(b),H-this.g(this.b))))},function(a,b){this.i(b,De.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(b,De.call(this,this.g(b),this.b))},function(a,b){this.i(this.b,
|
||||
De.call(this,this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,De.call(this,this.g(b),this.g(this.b))))},Zd,Zd,function(a,b){this.i(this.b,H-this.g(b))},function(a,b){this.i(this.b,this.i(b,H-this.g(b)))},function(a,b){this.i(b,W.call(this,H-this.g(b),this.g(this.b)))},function(a,b){this.i(b,W.call(this,H-this.g(b),this.b))},function(a,b){this.i(this.b,W.call(this,H-this.g(b),this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,W.call(this,H-this.g(b),this.g(this.b))))},function(a,
|
||||
b){this.i(b,H-this.g(this.b))},function(a,b){this.i(b,H-this.b)},function(){this.i(this.b,H-this.g(this.b))},function(a,b){this.i(this.b,this.i(b,H-this.g(this.b)))},function(a,b){this.i(b,W.call(this,this.g(b),H-this.g(this.b)))},function(a,b){this.i(b,W.call(this,this.g(b),H-this.b))},function(a,b){this.i(this.b,W.call(this,this.g(b),H-this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,W.call(this,this.g(b),H-this.g(this.b))))},function(a,b){this.i(b,W.call(this,H-this.g(b),H-this.g(this.b)))},
|
||||
function(a,b){this.i(b,W.call(this,H-this.g(b),H-this.b))},function(a,b){this.i(this.b,W.call(this,H-this.g(b),H-this.g(this.b)))},function(a,b){this.i(this.b,this.i(b,W.call(this,H-this.g(b),H-this.g(this.b))))},$d,$d,function(){this.i(this.b,H)},function(a,b){this.i(this.b,this.i(b,H))},ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,ae,ce,de,ee,fe,ge,he,ie,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,je,le,me,ne,oe,pe,qe,re,function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},
|
||||
function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},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],se=[function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},function(a,b){switch(b){case 0:a=this.g(this.b);a&8&&(this.u&=-131073);a&131072&&(this.u&=-262145);break;default:this.f(a)}},function(a,b){switch(b){case 0:a=0;this.u&131072&&(a|=8);this.u&262144&&(a|=65536);this.i(this.b,a);break;default:this.f(a)}},function(a){this.f(a)},function(a){this.f(a)}];
|
||||
function He(a){u.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.F=ta(this.A);if(this.A){a=this.A;var b=ua(this.F);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ka(a,null,!0,function(a,b,f){f?(c.da("Unable to load ROM resource (error "+f+": "+a+")"),c.A=null):(mb(c.Qa,a,b),(a=La(a,b))?(c.b=a.Y,c.U=a.U):c.A=null);Ie(c)})}}p(He,u);
|
||||
He.prototype.Aa=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Ie(this)};He.prototype.ua=function(){this.U&&(this.D&&Je(this.D,this.id,this.B,this.u,this.U),delete this.U);return!0};He.prototype.ia=function(){return!0};
|
||||
function Ie(a){if(!Kb(a)){if(a.A){if(!a.b||!a.H)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ib(a,"ROM size ("+q(a.b.length,8,!0)+") does not match specified size ("+q(a.u,8,!0)+")");else{var b;b=a.B;if(Jc(a.H,b,a.u,Rc)){var c;for(c=0;c<a.b.length;c++)vc(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.u,h=[],k=d.B>>>f.f;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.H;d=d.u;g=0;for(e>>>=
|
||||
f.f;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}z(a)}}eb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new He(d);ub(d,c)}});
|
||||
function Ke(a){u.call(this,"RAM",a);this.U=this.Ca=null;this.f=+a.addr;this.u=+a.size;this.sa=a.load;this.ra=a.exec;null!=this.sa&&(this.sa=+this.sa);null!=this.ra&&(this.ra=+this.ra);this.A=this.F=!1;this.b=a.file;this.B=ta(this.b);if(this.b){a=this.b;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ka(a,null,!0,function(a,b,f){f?(c.da("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(mb(c.Qa,a,b),(a=La(a,b))?(c.Ca=a.Ca,
|
||||
c.U=a.U,null==c.sa&&(c.sa=a.sa),null==c.ra&&(c.ra=a.ra)):c.b=null);Le(c)})}}p(Ke,u);Ke.prototype.Aa=function(a,b,c,d){this.H=b;this.v=c;this.D=d;Le(this)};Ke.prototype.ua=function(a,b){this.U&&(this.D&&Je(this.D,this.id,this.f,this.u,this.U),delete this.U);b||this.reset();return!0};Ke.prototype.ia=function(){return!0};
|
||||
function Le(a){if(a.H&&(!a.A&&a.u&&(Jc(a.H,a.f,a.u,1)?a.A=!0:a.u=0),!Kb(a))){if(!a.A)r("No RAM allocated");else if(a.b){if(!a.Ca)return;Me(a,a.Ca,a.sa,a.ra,a.f)?a.status('Loaded image "'+a.B+'"'):a.da('Error loading image "'+a.B+'"')}a.F=!0;z(a)}}
|
||||
Ke.prototype.reset=function(){if(this.A&&!this.F){for(var a=this.H,b=this.f,c=this.u,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-Tb&&(g+=I);for(var g=Math.trunc(Math.abs(g))%I,h=d;f--&&h<e.size;h++)e.D(g,d,e.C+d);c-=16384;b++;d=0}this.Ca&&Me(this,this.Ca,this.sa,this.ra,this.f,!this.D)}this.F=!1};
|
||||
function Me(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)vc(a.H,c+g,b[g]);g=!0}g&&(null==d&&(a.v.W(),f=!1),null!=d&&(a=a.v,a.Oa=d,a.A=d%A,f?a.w.V?a.w.L||pc(a):a.w.Z=!0:a.D&&a.w.V?a.W()||a.G.w.reset||(ed(a.D),P(a.G,-1)):!1===f&&a.W(),!a.w.L&&a.Na&&a.Na.stop()));return g}eb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ke(d);ub(d,c)}});
|
||||
function Ne(a){u.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.u=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Oe;b&&(void 0===c&&(c="Panel"),(c=sb(c,this.id))&&(b=c.J[b])&&this.ja(null,a,b))}this.b=this.B=null;this.exports={connect:this.wb,receiveData:this.Ua,receiveStatus:this.Ub,setConnection:this.Xb}}p(Ne,u);l=Ne.prototype;
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case Oe:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?pa.lb:pa.Ab:46==c?b=pa.lb:a.ctrlKey&&c>=pa.kb&&c<=pa.Bb&&(b=c-(pa.kb-pa.xb));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==pa.zb&&(b=pa.yb);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};l.Aa=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;z(this)};
|
||||
l.wb=function(a){if(!this.b){var b=bd(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.Pa)return;c=Ca(c[1]);if(this.b=rb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Qa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.ua=function(a,b){if(!b)if(this.wb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ia=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new O(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ua=function(a){if("number"==typeof a)this.f.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.f.push(b)}else this.f=this.f.concat(a);return!0};l.Ub=function(){};l.Xb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var Oe="buffer";
|
||||
eb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ne(d);ub(d,c)}});function Pe(a){u.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.A=-1;this.u=[];this.T={}}p(Pe,u);Pe.prototype.gb=function(){return-1};Pe.prototype.hb=function(){};
|
||||
function Qe(a,b,c,d){if(c)if(b){0>a.A&&a.u.length&&(a.A=0);if(0>a.A||b!=a.u[a.A])a.u.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.u[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ca(b.substring(c,f))),c=f+1}}return a}
|
||||
function Re(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function Qe(a,b,c){var d;if(b){b=Re(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=Ha(n);if(!n){f=!0;break}n=Se(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],C=n.length;k.length&&Te[n]<Te[k[k.length-1]]&&Pe(h,k,1);k.push(n);b=b.substr(t+C)}Pe(h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ue(a,null,
|
||||
d))}return d}function Re(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",f=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Qe(a,c[1]);b=b.replace(d+c[1]+e,null!=g?Q(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function Se(a,b,c,d){var e;null!=b?(e=a.bb(b),0<=e?e=a.cb(e):(e=a.T[b],null==e&&(e=qa(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
|
||||
function Ue(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,m=void 0,n=8,t="";n?32<n&&(n=32):n=32;for(var C=null==k||isNaN(k),fa=m=m||n;0<n--;)fa||(t=","+t,fa=m),t=(C?"?":k&1?"1":"0")+t,k>>=1,fa--;g=t+g;d>>=8}d=q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
|
||||
function Ve(a,b){if(b)return Ue(a,b,a.T[b]);var c=0;for(b in a.T)Ue(a,b,a.T[b]),c++;return 0<c}function Q(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=sa(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=ra(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Te={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function We(a){Ne.call(this,a);this.wa=!1;this.la=!0;this.va=X();this.K=X(0);this.ja=X(0);this.ba=X(0);this.F=[];this.b=this.M=this.I=[];Xe(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Ye(this);this.D=this;this.ma={};this.X=this.ob=0;this.S=null;this.O=[];Ze(this,a.messages);this.ua=a.commands;this.N=0;this.za=this.ta=null;this.B=this.ya=this.xa=this.fa=this.na=0;this.ea=this.aa=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return gd(b,a)}):void 0===global[x]&&(global[x]=function(a){return gd(b,
|
||||
a)})}p(We,Ne);function $e(a){a=a&&a.C;null==a&&(a=-1);return a}function X(a,b,c){return{C:void 0===a?null:a,Pa:void 0===b?!1:b,ga:!1,ca:c}}function af(a,b,c,d){a.C=b;a.Pa=c||!1;a.ga=!1;a.ca=d}function bf(a){return[a.C,a.Pa,a.ga,a.ca,a.Sa]}function cf(a,b){var c=X(b[0],b[1],b[2]);c.ga=b[3];b[4]&&(c.mb=Oe(a,c.Sa=b[4]));return c}l=We.prototype;
|
||||
l.Aa=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;(a=bd(a,"messages"))&&Ze(this,a);df(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=$e(ef(d,c,d.ja));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.f;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=Mc[c],n&&d.j(q(n.id,8)+" %"+q(e<<d.H.f,8)+" %"+q(n.C,8)+" "+q(n.Ha,
|
||||
function Se(a,b,c){var d;if(b){b=Te(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],t=n.length,n=Ca(n);if(!n){f=!0;break}n=Ue(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],D=n.length;k.length&&Ve[n]<Ve[k[k.length-1]]&&Re(h,k,1);k.push(n);b=b.substr(t+D)}Re(h,k)&&1==h.length||(f=!0);f?c&&a.j("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&We(a,null,
|
||||
d))}return d}function Te(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",f=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=Se(a,c[1]);b=b.replace(d+c[1]+e,null!=g?Q(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function Ue(a,b,c,d){var e;null!=b?(e=a.gb(b),0<=e?e=a.hb(e):(e=a.T[b],null==e&&(e=qa(b,a.ca))),null!=e||d||a.j("invalid "+(c?c:"value")+": "+b)):d||a.j("missing "+(c||"value"));return e}
|
||||
function We(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,m=void 0,n=8,t="";n?32<n&&(n=32):n=32;for(var D=null==k||isNaN(k),fa=m=m||n;0<n--;)fa||(t=","+t,fa=m),t=(D?"?":k&1?"1":"0")+t,k>>=1,fa--;g=t+g;d>>=8}d=q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e}
|
||||
function Xe(a,b){if(b)return We(a,b,a.T[b]);var c=0;for(b in a.T)We(a,b,a.T[b]),c++;return 0<c}function Q(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=sa(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=ra(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Ve={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Ye(a){Pe.call(this,a);this.wa=!1;this.la=!0;this.va=X();this.K=X(0);this.ga=X(0);this.ba=X(0);this.F=[];this.b=this.M=this.I=[];Ze(this);this.R=this.ka=0;this.f=[];this.oa=void 0;$e(this);this.D=this;this.ma={};this.X=this.sb=0;this.S=null;this.O=[];af(this,a.messages);this.qa=a.commands;this.N=0;this.za=this.pa=null;this.B=this.ya=this.xa=this.fa=this.na=0;this.ea=this.aa=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return gd(b,a)}):void 0===global[x]&&(global[x]=function(a){return gd(b,
|
||||
a)})}p(Ye,Pe);function bf(a){a=a&&a.C;null==a&&(a=-1);return a}function X(a,b,c){return{C:void 0===a?null:a,Sa:void 0===b?!1:b,ha:!1,ca:c}}function cf(a,b,c,d){a.C=b;a.Sa=c||!1;a.ha=!1;a.ca=d}function df(a){return[a.C,a.Sa,a.ha,a.ca,a.Va]}function ef(a,b){var c=X(b[0],b[1],b[2]);c.ha=b[3];b[4]&&(c.ob=Qe(a,c.Va=b[4]));return c}l=Ye.prototype;
|
||||
l.Aa=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;(a=bd(a,"messages"))&&af(this,a);ff(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=bf(gf(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.f;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.j("..."):(c=n.type,m=Mc[c],n&&d.j(q(n.id,8)+" %"+q(e<<d.H.f,8)+" %"+q(n.C,8)+" "+q(n.Ka,
|
||||
4,!0)+" "+q(n.size,4,!0)+" "+m),c!=Qc&&(c=-1),m=0);a+=16384;e++}}});z(this)};
|
||||
l.ia=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.u.length-1&&(b=d.u[++d.A])):40==a.keyCode&&(0<d.A?b=d.u[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,cb(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";gd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,cb(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function fd(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.Ba=function(a,b){var c=-1,d=$e(a);-1!==d&&(c=Ec(this.H,d),b&&null!=a.C&&(a.C+=b||1));return c};l.hb=function(a,b,c){var d=$e(a);-1!==d&&(Dc(this.H,d,b),c&&null!=a.C&&(a.C+=c||1),P(this.G,-1))};
|
||||
function ef(a,b,c){var d,e;c||(c=X());var f=c.C;if(void 0!==b){b=Re(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var m=a.F[k].U[f];if(null!=m){h=m.o;break}}null!=h&&(g=X(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Qe(a,b,void 0)}null!=f&&af(c,f,d,e);return c}function ff(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.mb=Oe(a,b.Sa=c[2]))}
|
||||
function Z(a,b){return Q(a,b.C)}function gf(a){return sa(a/A,6)+" "+sa(a%A,6)}function Ze(a,b){a.D=a;a.X=a.ob=536870916;a.S=null;a.O=[];b=Oe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in M){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|=M[c],a.j(c+" messages enabled"))}}function df(a,b){for(var c in M)if(16==M[c]){a.ma[c]=b;break}}
|
||||
l.bb=function(a){return hf.indexOf(a.toUpperCase())};l.cb=function(a){var b,c=this.v;switch(a){case jf:b=c.A;break;case kf:b=c.I;break;case lf:b=c.f;break;case mf:b=c.u&65536?1:0;break;case nf:b=c.u&32768?1:0;break;case of:b=c.u&131072?1:0;break;case pf:b=c.u&32?1:0;break;case qf:b=c.u&262144?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+Z(this,X(this.v.ua)));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.v&&(c=this.v.w.L)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,od(a),a.fa=0,a.G&&P(a.G,void 0))}};
|
||||
function Ye(a){var b;if(!ud(a))a.f&&a.f.length&&a.j("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(rf);for(b=0;b<a.f.length;b++)a.f[b]=X();a.R=0;a.j("instruction history buffer allocated")}}function sf(a,b,c){if(!tf(a,c))return!1;pc(a.v,b);return!0}
|
||||
function qc(a,b,c,d){if(!tf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||ud(a)&&vd(a,a.v.A,0);try{b=md(a.v,b);var f=a.v.Ja(b);0<f&&(rc(a.v,f),a.B+=f,sc(a.v,f,!0),tc(a.v,f),a.fa++)}catch(g){"number"!=typeof g&&(a.B=0,Ib(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),P(a.G,-1));ed(a,c||!1,e);return 0<a.B}l.W=function(a){this.v&&this.v.W(a)};function ed(a,b,c){b=void 0===b?!0:b;a.wa&&(c&&a.j(uf+c),af(a.K,a.v.A),b&&1!=a.N?vf(a):wf(a))}
|
||||
function tf(a,b){var c;(c=!a.v||!Kb(a.v))||(c=a.v,c.w.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.w.L?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Jb(a.v)}l.ra=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ha=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ye(this);this.fa=0;this.S=null;this.B=0;af(this.K,this.v.A);this.w.L=!1;xf(this);a||ed(this)};
|
||||
l.save=function(){var a=new O(this);a.set(0,bf(this.K));a.set(1,bf(this.ja));a.set(2,bf(this.ba));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.K=cf(this,a[b++]),this.ja=cf(this,a[b++]),this.ba=cf(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.j("running");this.w.L=!0;this.xa=a;this.ya=b};
|
||||
l.stop=function(a,b){if(this.w.L){this.w.L=!1;this.B=b-this.ya;if(!this.N){b="stopped";if(this.B){a-=this.xa;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";ud(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ed(this,!0);fd(this);xf(this,this.v.A);this.S=null}};function ud(a){return 1<a.b.length||!!a.ka}
|
||||
function vd(a,b,c){var d=-1;c||(d=a.v.g(b),2756==d>>23&&a.v.ua==b&&(b=td(a.v,1)));if(0<c&&(a.ka&&!--a.ka||Zc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.fa++,0>d&&(d=a.v.g(b)),0<=d&&(af(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
|
||||
function yf(a,b,c,d){var e=X(b.C),f=a.Ba(b,1),g,h,k,m=0,n=f/Wb|0,t;for(t in zf)if(g=zf[t][n&t]){h=+t;n>>=6;switch(h){case 32512:k=Af;m=n&3;break;case 32256:k=gg;m=n&7;break;case 29248:k=ig,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>jg&&(k="B");k=kg[g||0]+k;if(g){if(28700==h)m=f/Xb&127,h=Q(a,m,-1);else if(m=f>>23&15,h=Q(a,m,-1),g==lg&&(g=mg[m]))k=kg[g],h="";k=Ba(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=Q(a,f&262143,-1);(f=f>>18&15)&&(k+="("+Q(a,f,-1)+")")}else k=Ba(k,8)+gf(f);f=k;g="";h=Z(a,
|
||||
e)+":";if(-1!==e.C&&-1!==b.C){do if(k=a.Ba(e,1),g+=" "+gf(k),null==e.C)break;while(e.C!=b.C)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.w.Ea?h+("cycles="+hd(a.v).toString()+" cs="+q(a.v.wa)):h+(null!=d?"="+d.toString():""));return h}function Xe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=$e(c);var d=a.H;Yc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=$e(c),d=a.H,Yc(d.b[c>>>d.f],!0);a.I=["bw"];a.na=0;a.ka=0}
|
||||
l.Da=function(a,b,c){var d=!0;c||ng(this,a,b,!1,!0);if(a!=this.b){var e=$e(b);if(-1===e)this.j("invalid address: "+Z(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.f].Da(e&16383,a==this.I)}}d&&(a.push(b),c?b.ga=!0:(og(this,a,a.length-1,"set"),Ye(this)));return d};function ng(a,b,c,d,e){var f=!1;c=$e(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==$e(h)&&(!d||h.ga)){f=!0;h.ga||e||og(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,Yc(d.b[c>>>d.f],b==a.I));h.ga||Ye(a);break}}return f}
|
||||
function pg(a,b){for(var c=1;c<b.length;c++)og(a,b,c);return b.length-1}function og(a,b,c,d){c=b[c];a.j(b[0]+" "+Z(a,c)+(d?" "+d:c.Sa?' "'+c.Sa+'"':""))}function xf(a,b){if(void 0!==b)Zc(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.ga){if(!ng(a,a.b,c,!0))break;b=0}}}
|
||||
function Zc(a,b,c,d,e){var f=!1;if(!a.na++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ga)for(var k=$e(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,f=!0;h.ga&&(ng(a,d,h,!0),e=!0);if(n=h.mb){for(var f=!1,t=0;t<n.length;t++)if(!qg(a,n[t],!0)){if(n[t].indexOf("if")){f=!0;break}for(var C=t+1;C<n.length&&n[C].indexOf("else");C++)t++;if(C==n.length){f=!0;break}}a.v.w.L||(f=!0)}if(f){e||og(a,d,g,"hit");break}}}a.na--;return f}
|
||||
function rg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=sa(d,2);af(e.va,d);f+="="+Q(e,e.Ba(e.va),36)+" ";c+=f}if(b){b="";for(d=0;d<hf.length;d++)(e=hf[d]||"")&&(e+="="+Q(a,a.cb(d),d>=mf?1:d==kf?23:18)+" "),b+=e;c+="\n"+b}return c}l.pb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function He(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],t=Ia(n,k,a.pb);0>t&&n.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({dd:b,C:c,Db:d,U:e,nb:f})}function sg(a,b,c){var d=[],e=$e(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.C>>>0,h=f.Db;if(e>=g&&e<g+h){e=Ia(f.nb,[e-g],a.pb);0<=e?tg(a,b,e,d):c&&(e=~e,tg(a,b,e-1,d),tg(a,b,e,d));break}}return d}
|
||||
function tg(a,b,c,d){var e={},f=a.F[b].nb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function ug(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.j("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=Qe(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function vg(a,b,c){var d=null;if(b=ef(a,b)){var e=sg(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.C-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+Q(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.C)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+Q(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function vf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=Qe(a,b);if(void 0===g)return;b=a.bb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case jf:h.A=
|
||||
g%A;af(a.K,h.A);break;case mf:f=65536;break;case nf:f=32768;break;case of:f=131072;break;case pf:f=32;break;case qf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);P(a.G);a.j("updated registers:")}}a.j(rg(a,e));c&&(af(a.K,d.A),wf(a,Z(a,a.K)))}}function wg(a,b){b=Ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):Ue(a,null,c[2].charCodeAt(0)):Qe(a,b,!0)}
|
||||
function xg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Se(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;bb(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ea&&a.ea.stop();P(a.G,-1);Mb(a,!1)})}}
|
||||
function wf(a,b,c,d){if(b=ef(a,b,a.K)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Se(a,c.substr(1)),null!=c&&(d=c);else{d=ef(a,c);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.N?a.B:null,g=null!=f?"cycles":null,h=sg(a,b),k=b.C;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);h=a.ba;m=b;h.C=m.C;h.Pa=m.Pa;h.ga=m.ga;h.ca=m.ca;a.j(yf(a,b,g,f));e-=b.C-k;c++}}}
|
||||
function qg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(uf+b):(a.P&&(a.j("ended assemble at "+Z(a,a.ba)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Kb(a)&&0<b.length){a.P&&(b="a "+Z(a,a.ba)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var t=ef(a,
|
||||
g[1],a.ba);if(t){var C=g[2];if(void 0==C)a.j("begin assemble at "+Z(a,t)),a.P=!0,P(a.G);else{g.shift();g.shift();g.shift();var fa,vc=g.join(""),B=-1,wc,rb,Ed=C.toUpperCase(),Fd;for(Fd in mg)if(rb=mg[Fd],Ed==kg[rb]){Ed=kg[lg];vc=Q(a,+Fd)+","+vc;break}for(var Bf in zf){var Ta;wc=+Bf;var Cf=zf[Bf];switch(wc){case 32512:Ta=Af;break;case 32256:Ta=gg;break;case 29248:Ta=ig;break;default:Ta=[""]}var Df,Gd;for(Gd in Cf){rb=Cf[Gd];for(var Ua=0;Ua<Ta.length;Ua++){var Hd=Ta[Ua];"S"==Hd&&rb>jg&&(Hd="B");if(Ed==
|
||||
kg[rb]+Hd){Df=29248!=wc?Ua:(Ua&3)<<1|(Ua&12)<<2;B=(Gd|Df<<6)*Wb;break}}if(0<=B)break}if(0<=B)break}if(0<=B)if(vc)for(var Id=vc.split(","),Va=0;Va<Id.length;Va++){var N=Id[Va].trim();if(N){if(1<Va){a.j("too many operands: "+N);B=-1;break}var xc=N.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!xc){a.j("unknown operand: "+N);B=-1;break}N=xc[2];Va&&(N=N.replace(/(^|[^0-9])\./g,"$1"+Z(a,t)));var L=Qe(a,N);if(void 0==L){B=-1;break}if(!Va&&1<Id.length)if(28700==wc){if(0>L||127<L){a.j("device code out of range: "+
|
||||
N);B=-1;break}B+=L*Xb}else{if(0>L||15<L){a.j("accumulator address out of range: "+N);B=-1;break}B+=L<<23}else{if(0>L||262143<L){a.j("memory address out of range: "+N);B=-1;break}B+=L;if(N=xc[3]){L=Qe(a,N);if(void 0==L){B=-1;break}if(0>L||15<L){a.j("memory index out of range: "+N);B=-1;break}B+=L<<18}xc[1]&&(B+=4194304)}}}else a.j("missing operand(s)"),B=-1;else a.j("unknown instruction: "+C);fa=B;0<=fa&&(a.hb(t,fa),a.j(yf(a,t)))}}break;case "b":a:{var Zg=g[0],Wa=g[1],$g=b;if("?"==Wa)a.j("breakpoint commands:"),
|
||||
a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var Ca=Zg.charAt(1);if("l"==Ca){var Jd;Jd=0+pg(a,a.b);Jd+=pg(a,a.M);(Jd+=pg(a,a.I))||a.j("no breakpoints")}else if("n"==Ca){var Ef=+Wa||0;Wa&&(a.ka=Ef);a.j("break after "+Ef+" instruction(s)")}else if(void 0===Wa)a.j("missing breakpoint address");else{var T=X();
|
||||
if("*"!=Wa&&(T=ef(a,Wa,a.K),!T))break a;"c"==Ca?null==T.C?(Xe(a),a.j("all breakpoints cleared")):ng(a,a.b,T)||ng(a,a.M,T)||ng(a,a.I,T)||a.j("breakpoint missing: "+Z(a,T)):null!=T.C&&(ff(a,T,$g),"p"==Ca?a.Da(a.b,T):"r"==Ca?a.Da(a.M,T):"w"==Ca?a.Da(a.I,T):a.j("unknown breakpoint command: "+Ca))}}}break;case "c":a.qa&&(a.qa.value="");break;case "d":a:{var Xa,Ya=g[0],ga=g[1],ta=g[2],ah=g[3];if("?"==ga){var Za="";for(Xa in M)a.ma[Xa]&&(Za&&(Za+=","),Za+=Xa);Za+=",state,symbols";a.j("dump memory commands:");
|
||||
a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");Za.length&&a.j("dump extension commands:\n\t"+Za)}else if("state"==ga){var Kd=yg(a.G,!0);"console"==ta?console.log(Kd):(a.qa&&(a.qa.value=""),Kd&&a.j(Kd))}else if("symbols"==ga)for(var Ld=0;Ld<a.F.length;Ld++){var Md=a.F[Ld],$a;for($a in Md.U)if("."!=$a.charAt(0)){var Ff=Md.U[$a].o;if(void 0!==Ff){var Gf=Md.U[$a].l;Gf&&($a=Gf);
|
||||
a.j(Q(a,Ff)+" "+$a)}}}else{if("d"==Ya){for(Xa in M)if(g[1]==Xa){var Hf=a.ma[Xa];Hf?(g.shift(),g.shift(),Hf(g)):a.j("no dump registered for "+ga);break a}ga||(Ya=a.za||"dw")}else a.za=Ya;if("dh"==Ya){var If=ga,Jf=ta,Kf="",Lf=0,ca=a.R,ha=a.f;if(ha.length){var Y=+If||a.sa,tb=+Jf||10;isNaN(Y)?Y=tb:Kf="more ";Y>ha.length&&(a.j("note: only "+ha.length+" available"),Y=ha.length);ca-=Y;0>ca&&(null==ha[ha.length-1].C?(Y=ca+Y,ca=0):ca+=ha.length);var Nd=[];"call"==Jf&&(tb=1E5,Nd=["CALL"]);for(void 0!==If&&
|
||||
a.j(Y+" instructions earlier:");0<tb&&ca!=a.R;){var Mf=ha[ca++];if(null==Mf.C)break;var ub=X(Mf.C),bh=Y--,Nf=yf(a,ub,"history",bh);(!Nd.length||0<=Nf.indexOf(Nd[0]))&&a.j(Nf);ub.$a&&(ca+=ub.$a,tb-=ub.$a,Y-=ub.$a);ca>=ha.length&&(ca=0);a.sa=Y;Lf++;tb--}}Lf||(a.j("no "+Kf+"history available"),a.sa=void 0)}else{var ab=ef(a,ga,a.ja);if(ab){var Da=0,Of="ds"==Ya;if(ta){if("l"==ta.charAt(0))ta=ta.substr(1)||ah,Da=Se(a,ta);else{var Pf=ef(a,ta);Pf&&(Da=Pf.C-ab.C)}0>Da&&(Da=0);65536<Da&&(Da=65536)}var ch=a.ca;
|
||||
ab.ca&&(a.ca=ab.ca);for(var Qf="db"==Ya?1:2,Od=Da||32,Pd=1==Qf?2:4,dh=(Od+Pd-1)/Pd|0||1,Ea="";dh--&&0<Od;){for(var Fa="",Rf="",ga=Z(a,ab),Sf=Pd;0<Sf--&&0<Od--;){var yc=a.Ba(ab,1);Of?(Fa&&(Fa+=","),Fa+=yc):(Fa+=gf(yc),Fa+=" ");for(var Tf=0;1==Qf&&6>Tf;Tf++)Rf+=String.fromCharCode((yc%64|0)+32),yc/=64}Ea&&(Ea+="\n");Ea=Of?Ea+(Fa+","):Ea+(ga+": "+Fa+(0>Sf?" "+Rf:""))}Ea&&a.j(Ea);a.ca=ch}}}}break;case "e":if("else"==g[0])break;var Uf,Vf,Wf=g[0],Qd=g[1];"e"==Wf||"ew"==Wf?(Uf=a.Ba,Vf=a.hb):Qd=null;if(null==
|
||||
Qd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var zc=ef(a,Qd,a.ja);if(zc)for(var Ac=2;Ac<g.length;Ac++){var Rd=Qe(a,g[Ac]);if(void 0===Rd){a.j("unknown value: "+g[Ac]);break}a.j("changing "+Z(a,zc)+" from "+gf(Uf.call(a,zc))+" to "+gf(Rd));Vf.call(a,zc,Rd,1)}}break;case "g":a:{var Xf=g[1],eh=b;if(void 0!==Xf){var Sd=ef(a,Xf);if(!Sd)break a;ff(a,Sd,eh);a.Da(a.b,Sd,!0)}sf(a,!0,c)}break;case "h":a.w.L?(c||a.j("halting"),a.W()):Lb(a,!0)||c||a.j("already halted");
|
||||
break;case "i":if("if"==g[0]){var Td;var vb=b.substr(2),vb=Ha(vb);Qe(a,vb)?(c||a.j("true: "+vb),Td=!0):(c||a.j("false: "+vb),Td=!1);Td||(d=!1);break}f=!0;break;case "k":var fh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Ud=0,Vd=X(),wb=X();for(a.j("stack trace for "+Z(a,wb));10>Ud;){for(var Ga=null,gh=256;65536>wb.C>>>0;){Vd.C=a.Ba(wb,2);if(null==wb.C||!gh--)break;if(!(Vd.C&1)){for(var hh=a,Bc=Vd,Yf=null,xb=Bc.C,Zf=xb,
|
||||
Wd=1;6>=Wd&&xb;Wd++){if(2<Wd){Bc.C=xb;var Cc=yf(hh,Bc);if(0<=Cc.indexOf("JSR")){var $f=Cc.indexOf(" ");if(xb+(Cc.indexOf(" ",$f+1)-$f-1)/2==Zf){Yf=Cc;break}}}xb-=2}Bc.C=Zf;if(Ga=Yf)break}}if(!Ga||null==Ga)break;var ag=null;if("ks"==fh){var bg=Ga.match(/[0-9A-F]+$/);bg&&(ag=vg(a,bg[0]))}Ga=Ba(Ga,50)+" ;"+(ag||"stack="+Z(a,wb));a.j(Ga);Ud++}Ud||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){vg(a,g[1],!0);break}f=!0;break;case "m":a:{var ia,ja=null,D=g[1];"?"==D&&(D=void 0);if(void 0!==
|
||||
D){var ua=0;if("all"==D)ua=1879046143,D=null;else if("on"==D)ja=!0,D=null;else if("off"==D)ja=!1,D=null;else{"keys"==D&&(D="key");"kbd"==D&&(D="keyboard");for(ia in M)if(D==ia){ua=M[ia];ja=!!(a.X&ua);break}if(!ua){a.j("unknown message category: "+D);break a}}if(ua)if("on"==g[2])a.X|=ua,ja=!0;else if("off"==g[2]&&(a.X&=~ua,ja=!1,1073741824==ua)){for(var cg=1E3<=a.O.length?a.O.length-1E3:0;cg<a.O.length;)a.j(a.O[cg++]);a.O=[]}}var ih=0,yb="";for(ia in M)if(!D||D==ia){var jh=!!(a.X&M[ia]);if(null===
|
||||
ja||ja==jh)yb&&(yb+=","),++ih%10||(yb+="\n\t"),"key"==ia&&(ia="keys"),yb+=ia}void 0===D&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==ja?ja?"messages on: ":"messages off: ":"message categories:\n\t")+(yb||"none"));Ye(a)}break;case "p":if("print"==g[0]){wg(a,b.substr(5));break}var dg=g[0],eg="p"==dg?0:"pr"==dg?1:-1;if("?"==g[1]||0>eg)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");else if(a.N)a.j("step in progress");
|
||||
else{var fg=X(a.v.A);a.Ba(fg);a.N?(a.Da(a.b,fg,!0),sf(a)||(a.G&&ld(a.G),a.N=0)):xg(a,eg?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}vf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var zb=+g[2];if(8==zb||10==zb||16==zb)a.ca=zb;else{a.j("invalid base: "+zb);break}}a.j("default base: "+a.ca);break;case "cs":var Ab;void 0!==g[3]&&(Ab=+g[3]);switch(g[2]){case "int":a.v.ja=Ab;break;case "start":a.v.xa=Ab;break;case "stop":a.v.la=Ab;break;default:a.j("unknown cs option");break a}void 0!==
|
||||
Ab&&dd(a.v);a.j("checksums "+(a.v.w.Ea?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(id(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),
|
||||
a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":xg(a,g[0],g[1]);break;case "u":wf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ug(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.kb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){wg(a,b.substr(1));break}var Xd="commands:",Yd;for(Yd in zg)Xd+="\n"+Ba(Yd,9)+zg[Yd];ud(a)||(Xd+="\nnote: history disabled if no exec breakpoints");a.j(Xd);break;default:f=!0}f&&(a.j("unknown command: "+
|
||||
b),d=!1)}}catch(hg){a.j("debugger error: "+(hg.stack||hg.message)),d=!1}return d}function gd(a,b,c){b=Oe(a,b,c);for(var d in b)if(!qg(a,b[+d]))return!1;return!0}
|
||||
var zg={"?":"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"},jg=20,lg=85,kg=".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 JOV JCRY0 JCRY1 JCRY JFOV".split(" "),
|
||||
jf=0,kf=1,lf=2,mf=3,nf=4,of=5,pf=6,qf=7,hf="PC RA EA C0 C1 OV ND PD".split(" "),Ag={},zf=(Ag[28672]={0:101},Ag[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:lg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Ag[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:jg,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},Ag[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Ag[29248]={24576:79,24640:80,25088:81,25152:82},Ag[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},Ag),Af=["","I","M","S"],gg=" L E LE A GE N G".split(" "),ig="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),mg={8:102,4:103,2:104,6:105,1:106},rf=1E3,uf=">> ";eb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new We(d);Cb(d,c)}});
|
||||
function Bg(a,b,c){u.call(this,"Computer",a,33554432);this.w.V=!1;this.R=null;Cg(this,b);this.O=bd(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=bd(this,"url")||"";(Math.random()+.1).toString(36);this.f=Dg(this);if(this.v=Bb("CPU",this.id)){this.D=Bb("Debugger",this.id);this.H=new Fc({id:this.Na+".bus",busWidth:this.aa},this.v,this.D);var d,e=qb(this.id);if((this.u=Bb("Panel",this.id))&&this.u.qa)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.qa=this.u.qa;this.j(Pb+" 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.Aa&&d.Aa(this,this.H,this.v,this.D);b=null;d=bd(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=bd(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.K=!0,this.b=Eg),this.b&&(this.I=new O(this,"1.34.2"),Fg(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Gg(this))&&(this.K=!0);if(b){var g=this;Ka(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ha(b):"")+")")):(g.M=b,g.T=!0);z(g)})}else z(this);this.J.power||(this.O=!0);!c&&this.O&&Hg(this,this.Ga)}else r("Unable to find CPU component")}p(Bg,u);function Cg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
|
||||
function bd(a,b,c,d){var e=b.toLowerCase(),e=Ra(b)||Ra(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 Hg(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Kb(f)){Kb(f,function(){Hg(a,b,c)});return}}b.call(a,c)}
|
||||
function Ig(a,b){var c=new O(a,"1.34.2",Jg);if(Fg(c)&&Kg(c)){var d=c.get(Lg),e=b?b.get(Lg):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Bg.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?Mg:Eg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.I||new O(this,"1.34.2");if(a==Ng)b=!0;else if(a>Eg){if(Fg(d,this.M)){this.B=new O(this,"1.34.2",Og);Fg(this.B)&&(Pg(this,d),a=Qg,Rg(this.B));this.B.set(Lg,Ja());Sg(this.B);var e=this.b&&!this.K;if(a==Mg||pb("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Kg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Fg(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.da("Error: "+g),"unable to verify user"==g&&(Pa(Tg,""),this.f=null)):this.j(f+": "+g),Rg(d),Fg(d)?(c=Kg(d),e=!0):c=!1))}e&&Ig(this,c?d:null)}else a==Qg&&d.clear()}else Ig(this);delete this.M;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Ug(this,g,d,b,c));b=[d,a,c];a!=Ng?Hg(this,this.qb,b):this.qb(b)}};
|
||||
function Ug(a,b,c,d,e){if(!b.w.V){b.w.V=!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.ra(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.T?(c.clear(),a.b=Eg,window&&window.location.reload()):a.P=!0,b.ra(null),e=!1),!d&&b.jb){var g=b.jb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.qb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.w.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Ug(this,this.v,b,c,a),P(this,-2),this.v.Z());this.P&&(Pg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.A=0};
|
||||
function Pg(a,b){if(pb("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function yg(a,b,c){var d,e="none";if(a.A)return null;a.A--;var f=new O(a,"1.34.2"),g=new O(a,"1.34.2",Jg),h=Ja();g.set(Lg,h);f.set(Lg,h);f.set(Vg,"1.34.2");f.set(Wg,window?window.location.href:null);f.set(Xg,window?window.navigator.userAgent:"");a.v&&a.v.ha&&(c&&(b&&(a.v.w.Z=a.v.w.L),a.v.W()),d=a.v.ha(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.w.V=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.w.V&&(m.ha&&(d=m.ha(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.w.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Yg(a,a.f,f.toString()),Sg(g)&&Sg(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==kh),d&&f.clear(h)):e=f.toString());c&&(a.w.V=!1,b=a.J.power)&&(b.textContent="Power");a.A=0;return e}
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.u.length-1&&(b=d.u[++d.A])):40==a.keyCode&&(0<d.A?b=d.u[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.J[b]=c,Ua(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";gd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Ua(c,function(a){var b=!1;Lb(d,!0)||(Mb(d,!0),b=qc(d,a?1:0,null),Mb(d,!1));return b}),!0}return!1};function fd(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.Ba=function(a,b){var c=-1,d=bf(a);-1!==d&&(c=Ec(this.H,d),b&&null!=a.C&&(a.C+=b||1));return c};l.mb=function(a,b,c){var d=bf(a);-1!==d&&(vc(this.H,d,b),c&&null!=a.C&&(a.C+=c||1),P(this.G,-1))};
|
||||
function gf(a,b,c){var d,e;c||(c=X());var f=c.C;if(void 0!==b){b=Te(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var g,f=b,h;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(var f=f.toUpperCase(),k=0;k<a.F.length;k++){var m=a.F[k].U[f];if(null!=m){h=m.o;break}}null!=h&&(g=X(h));if(g)return g;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=Se(a,b,void 0)}null!=f&&cf(c,f,d,e);return c}function hf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ob=Qe(a,b.Va=c[2]))}
|
||||
function Z(a,b){return Q(a,b.C)}function jf(a){return sa(a/A,6)+" "+sa(a%A,6)}function af(a,b){a.D=a;a.X=a.sb=536870916;a.S=null;a.O=[];b=Qe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in M){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|=M[c],a.j(c+" messages enabled"))}}function ff(a,b){for(var c in M)if(16==M[c]){a.ma[c]=b;break}}
|
||||
l.gb=function(a){return kf.indexOf(a.toUpperCase())};l.hb=function(a){var b,c=this.v;switch(a){case lf:b=c.A;break;case mf:b=c.K;break;case nf:b=c.b;break;case of:b=c.u&65536?1:0;break;case pf:b=c.u&32768?1:0;break;case qf:b=c.u&131072?1:0;break;case rf:b=c.u&32?1:0;break;case sf:b=c.u&262144?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+Z(this,X(this.v.xa)));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.v&&(c=this.v.w.L)||Lb(this,!0))this.W(),c&&(a+=" (cpu halted)");this.j(a);this.v&&(a=this.v,od(a),a.fa=0,a.G&&P(a.G,void 0))}};
|
||||
function $e(a){var b;if(!ud(a))a.f&&a.f.length&&a.j("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(tf);for(b=0;b<a.f.length;b++)a.f[b]=X();a.R=0;a.j("instruction history buffer allocated")}}function uf(a,b,c){if(!vf(a,c))return!1;pc(a.v,b);return!0}
|
||||
function qc(a,b,c,d){if(!vf(a))return!1;var e="";null===c&&(e=(c=!a.pa||"tr"==a.pa)?"tr":"t");a.B=0;b||ud(a)&&vd(a,a.v.A,0);try{b=md(a.v,b);var f=a.v.Ma(b);0<f&&(rc(a.v,f),a.B+=f,sc(a.v,f,!0),tc(a.v,f),a.fa++)}catch(g){"number"!=typeof g&&(a.B=0,Ib(a.v,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),P(a.G,-1));ed(a,c||!1,e);return 0<a.B}l.W=function(a){this.v&&this.v.W(a)};function ed(a,b,c){b=void 0===b?!0:b;a.wa&&(c&&a.j(wf+c),cf(a.K,a.v.A),b&&1!=a.N?xf(a):yf(a))}
|
||||
function vf(a,b){var c;(c=!a.v||!Kb(a.v))||(c=a.v,c.w.V?c=!0:(c.j(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.w.L?(b||a.j("cpu busy or unavailable, command ignored"),!1):!Jb(a.v)}l.ua=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ia=function(a,b){b&&this.j(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){$e(this);this.fa=0;this.S=null;this.B=0;cf(this.K,this.v.A);this.w.L=!1;zf(this);a||ed(this)};
|
||||
l.save=function(){var a=new O(this);a.set(0,df(this.K));a.set(1,df(this.ga));a.set(2,df(this.ba));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.K=ef(this,a[b++]),this.ga=ef(this,a[b++]),this.ba=ef(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.j("running");this.w.L=!0;this.xa=a;this.ya=b};
|
||||
l.stop=function(a,b){if(this.w.L){this.w.L=!1;this.B=b-this.ya;if(!this.N){b="stopped";if(this.B){a-=this.xa;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";ud(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Nb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.j(b)}ed(this,!0);fd(this);zf(this,this.v.A);this.S=null}};function ud(a){return 1<a.b.length||!!a.ka}
|
||||
function vd(a,b,c){var d=-1;c||(d=a.v.g(b),2756==d>>23&&a.v.xa==b&&(b=td(a.v,1)));if(0<c&&(a.ka&&!--a.ka||Zc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.fa++,0>d&&(d=a.v.g(b)),0<=d&&(cf(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
|
||||
function Af(a,b,c,d){var e=X(b.C),f=a.Ba(b,1),g,h,k,m=0,n=f/Wb|0,t;for(t in Bf)if(g=Bf[t][n&t]){h=+t;n>>=6;switch(h){case 32512:k=Cf;m=n&3;break;case 32256:k=ig;m=n&7;break;case 29248:k=kg,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>lg&&(k="B");k=mg[g||0]+k;if(g){if(28700==h)m=f/Xb&127,h=Q(a,m,-1);else if(m=f>>23&15,h=Q(a,m,-1),g==ng&&(g=og[m]))k=mg[g],h="";k=Ba(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=Q(a,f&262143,-1);(f=f>>18&15)&&(k+="("+Q(a,f,-1)+")")}else k=Ba(k,8)+jf(f);f=k;g="";h=Z(a,
|
||||
e)+":";if(-1!==e.C&&-1!==b.C){do if(k=a.Ba(e,1),g+=" "+jf(k),null==e.C)break;while(e.C!=b.C)}h+=Ba(g,16)+f;c&&(h=Ba(h,48)+";"+(c||""),h=a.v.w.Ea?h+("cycles="+hd(a.v).toString()+" cs="+q(a.v.za)):h+(null!=d?"="+d.toString():""));return h}function Ze(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=bf(c);var d=a.H;Yc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=bf(c),d=a.H,Yc(d.b[c>>>d.f],!0);a.I=["bw"];a.na=0;a.ka=0}
|
||||
l.Da=function(a,b,c){var d=!0;c||pg(this,a,b,!1,!0);if(a!=this.b){var e=bf(b);if(-1===e)this.j("invalid address: "+Z(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.f].Da(e&16383,a==this.I)}}d&&(a.push(b),c?b.ha=!0:(qg(this,a,a.length-1,"set"),$e(this)));return d};function pg(a,b,c,d,e){var f=!1;c=bf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==bf(h)&&(!d||h.ha)){f=!0;h.ha||e||qg(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.H,Yc(d.b[c>>>d.f],b==a.I));h.ha||$e(a);break}}return f}
|
||||
function rg(a,b){for(var c=1;c<b.length;c++)qg(a,b,c);return b.length-1}function qg(a,b,c,d){c=b[c];a.j(b[0]+" "+Z(a,c)+(d?" "+d:c.Va?' "'+c.Va+'"':""))}function zf(a,b){if(void 0!==b)Zc(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.ha){if(!pg(a,a.b,c,!0))break;b=0}}}
|
||||
function Zc(a,b,c,d,e){var f=!1;if(!a.na++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ha)for(var k=bf(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,f=!0;h.ha&&(pg(a,d,h,!0),e=!0);if(n=h.ob){for(var f=!1,t=0;t<n.length;t++)if(!sg(a,n[t],!0)){if(n[t].indexOf("if")){f=!0;break}for(var D=t+1;D<n.length&&n[D].indexOf("else");D++)t++;if(D==n.length){f=!0;break}}a.v.w.L||(f=!0)}if(f){e||qg(a,d,g,"hit");break}}}a.na--;return f}
|
||||
function tg(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=sa(d,2);cf(e.va,d);f+="="+Q(e,e.Ba(e.va),36)+" ";c+=f}if(b){b="";for(d=0;d<kf.length;d++)(e=kf[d]||"")&&(e+="="+Q(a,a.hb(d),d>=of?1:d==mf?23:18)+" "),b+=e;c+="\n"+b}return c}l.tb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Je(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],t=Da(n,k,a.tb);0>t&&n.splice(-(t+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({hd:b,C:c,Hb:d,U:e,pb:f})}function ug(a,b,c){var d=[],e=bf(b)>>>0;for(b=0;b<a.F.length;b++){var f=a.F[b],g=f.C>>>0,h=f.Hb;if(e>=g&&e<g+h){e=Da(f.pb,[e-g],a.tb);0<=e?vg(a,b,e,d):c&&(e=~e,vg(a,b,e-1,d),vg(a,b,e,d));break}}return d}
|
||||
function vg(a,b,c,d){var e={},f=a.F[b].pb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function wg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Xe(a)||a.j("no variables"),!0;if(!c[2])return Xe(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=Se(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.j("invalid assignment:"+b);return!1}
|
||||
function xg(a,b,c){var d=null;if(b=gf(a,b)){var e=ug(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.C-e[1])&&(g=" + "+q(f,4,!0)),f=e[0]+" ("+Q(a,e[1])+")"+g,c&&a.j(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.C)&&(g=" - "+q(f,4,!0)),f=e[4]+" ("+Q(a,e[5])+")"+g,c&&a.j(f),d||(d=f))}else c&&a.j("no symbols")}return d}
|
||||
function xf(a,b){var c;if(b&&"?"==b[1])a.j("register commands:"),a.j("\tr\tdump registers"),a.j("\trm\tdump misc registers"),a.j("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.j("missing value for "+b[1]);return}g=Se(a,b);if(void 0===g)return;b=a.gb(f);if(0>b){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case lf:h.A=
|
||||
g%A;cf(a.K,h.A);break;case of:f=65536;break;case pf:f=32768;break;case qf:f=131072;break;case rf:f=32;break;case sf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);P(a.G);a.j("updated registers:")}}a.j(tg(a,e));c&&(cf(a.K,d.A),yf(a,Z(a,a.K)))}}function yg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.j(c[2]):We(a,null,c[2].charCodeAt(0)):Se(a,b,!0)}
|
||||
function zg(a,b,c){if("?"==c)a.j("trace commands:"),a.j("\tt [#]\ttrace # instructions"),a.j("\ttr [#]\ttrace # instructions with register updates"),a.j("\ttc [#]\ttrace # cycles"),a.j("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Ue(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.pa=b;Ta(c,function(){return Mb(a,!0)&&qc(a,e,d,!1)},function(){a.ea&&a.ea.stop();P(a.G,-1);Mb(a,!1)})}}
|
||||
function yf(a,b,c,d){if(b=gf(a,b,a.K)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ue(a,c.substr(1)),null!=c&&(d=c);else{d=gf(a,c);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.j("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Lb(a,!1)||a.N?a.B:null,g=null!=f?"cycles":null,h=ug(a,b),k=b.C;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.j(m)}h[3]&&(g=h[3],f=null);h=a.ba;m=b;h.C=m.C;h.Sa=m.Sa;h.ha=m.ha;h.ca=m.ca;a.j(Af(a,b,g,f));e-=b.C-k;c++}}}
|
||||
function sg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(wf+b):(a.P&&(a.j("ended assemble at "+Z(a,a.ba)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Kb(a)&&0<b.length){a.P&&(b="a "+Z(a,a.ba)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var t=gf(a,
|
||||
g[1],a.ba);if(t){var D=g[2];if(void 0==D)a.j("begin assemble at "+Z(a,t)),a.P=!0,P(a.G);else{g.shift();g.shift();g.shift();var fa,wc=g.join(""),C=-1,xc,tb,Ed=D.toUpperCase(),Fd;for(Fd in og)if(tb=og[Fd],Ed==mg[tb]){Ed=mg[ng];wc=Q(a,+Fd)+","+wc;break}for(var Df in Bf){var Va;xc=+Df;var Ef=Bf[Df];switch(xc){case 32512:Va=Cf;break;case 32256:Va=ig;break;case 29248:Va=kg;break;default:Va=[""]}var Ff,Gd;for(Gd in Ef){tb=Ef[Gd];for(var Wa=0;Wa<Va.length;Wa++){var Hd=Va[Wa];"S"==Hd&&tb>lg&&(Hd="B");if(Ed==
|
||||
mg[tb]+Hd){Ff=29248!=xc?Wa:(Wa&3)<<1|(Wa&12)<<2;C=(Gd|Ff<<6)*Wb;break}}if(0<=C)break}if(0<=C)break}if(0<=C)if(wc)for(var Id=wc.split(","),Xa=0;Xa<Id.length;Xa++){var N=Id[Xa].trim();if(N){if(1<Xa){a.j("too many operands: "+N);C=-1;break}var yc=N.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!yc){a.j("unknown operand: "+N);C=-1;break}N=yc[2];Xa&&(N=N.replace(/(^|[^0-9])\./g,"$1"+Z(a,t)));var L=Se(a,N);if(void 0==L){C=-1;break}if(!Xa&&1<Id.length)if(28700==xc){if(0>L||127<L){a.j("device code out of range: "+
|
||||
N);C=-1;break}C+=L*Xb}else{if(0>L||15<L){a.j("accumulator address out of range: "+N);C=-1;break}C+=L<<23}else{if(0>L||262143<L){a.j("memory address out of range: "+N);C=-1;break}C+=L;if(N=yc[3]){L=Se(a,N);if(void 0==L){C=-1;break}if(0>L||15<L){a.j("memory index out of range: "+N);C=-1;break}C+=L<<18}yc[1]&&(C+=4194304)}}}else a.j("missing operand(s)"),C=-1;else a.j("unknown instruction: "+D);fa=C;0<=fa&&(a.mb(t,fa),a.j(Af(a,t)))}}break;case "b":a:{var ah=g[0],Ya=g[1],bh=b;if("?"==Ya)a.j("breakpoint commands:"),
|
||||
a.j("\tbp #\tset exec breakpoint"),a.j("\tbr #\tset read breakpoint"),a.j("\tbw #\tset write breakpoint"),a.j("\tbc #\tclear breakpoint (* to clear all)"),a.j("\tbl\tlist all breakpoints"),a.j("\tbn [#]\tbreak after # instruction(s)");else{var Ea=ah.charAt(1);if("l"==Ea){var Jd;Jd=0+rg(a,a.b);Jd+=rg(a,a.M);(Jd+=rg(a,a.I))||a.j("no breakpoints")}else if("n"==Ea){var Gf=+Ya||0;Ya&&(a.ka=Gf);a.j("break after "+Gf+" instruction(s)")}else if(void 0===Ya)a.j("missing breakpoint address");else{var T=X();
|
||||
if("*"!=Ya&&(T=gf(a,Ya,a.K),!T))break a;"c"==Ea?null==T.C?(Ze(a),a.j("all breakpoints cleared")):pg(a,a.b,T)||pg(a,a.M,T)||pg(a,a.I,T)||a.j("breakpoint missing: "+Z(a,T)):null!=T.C&&(hf(a,T,bh),"p"==Ea?a.Da(a.b,T):"r"==Ea?a.Da(a.M,T):"w"==Ea?a.Da(a.I,T):a.j("unknown breakpoint command: "+Ea))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var Za,$a=g[0],ga=g[1],va=g[2],ch=g[3];if("?"==ga){var ab="";for(Za in M)a.ma[Za]&&(ab&&(ab+=","),ab+=Za);ab+=",state,symbols";a.j("dump memory commands:");
|
||||
a.j("\tdw [a] [n] dump n words at address a");a.j("\tds [a] [n] dump n words at address a as JSON");a.j("\tdh [p] [n] dump n instructions from history position p");ab.length&&a.j("dump extension commands:\n\t"+ab)}else if("state"==ga){var Kd=Ag(a.G,!0);"console"==va?console.log(Kd):(a.ta&&(a.ta.value=""),Kd&&a.j(Kd))}else if("symbols"==ga)for(var Ld=0;Ld<a.F.length;Ld++){var Md=a.F[Ld],bb;for(bb in Md.U)if("."!=bb.charAt(0)){var Hf=Md.U[bb].o;if(void 0!==Hf){var If=Md.U[bb].l;If&&(bb=If);
|
||||
a.j(Q(a,Hf)+" "+bb)}}}else{if("d"==$a){for(Za in M)if(g[1]==Za){var Jf=a.ma[Za];Jf?(g.shift(),g.shift(),Jf(g)):a.j("no dump registered for "+ga);break a}ga||($a=a.za||"dw")}else a.za=$a;if("dh"==$a){var Kf=ga,Lf=va,Mf="",Nf=0,ca=a.R,ha=a.f;if(ha.length){var Y=+Kf||a.oa,vb=+Lf||10;isNaN(Y)?Y=vb:Mf="more ";Y>ha.length&&(a.j("note: only "+ha.length+" available"),Y=ha.length);ca-=Y;0>ca&&(null==ha[ha.length-1].C?(Y=ca+Y,ca=0):ca+=ha.length);var Nd=[];"call"==Lf&&(vb=1E5,Nd=["CALL"]);for(void 0!==Kf&&
|
||||
a.j(Y+" instructions earlier:");0<vb&&ca!=a.R;){var Of=ha[ca++];if(null==Of.C)break;var wb=X(Of.C),dh=Y--,Pf=Af(a,wb,"history",dh);(!Nd.length||0<=Pf.indexOf(Nd[0]))&&a.j(Pf);wb.eb&&(ca+=wb.eb,vb-=wb.eb,Y-=wb.eb);ca>=ha.length&&(ca=0);a.oa=Y;Nf++;vb--}}Nf||(a.j("no "+Mf+"history available"),a.oa=void 0)}else{var cb=gf(a,ga,a.ga);if(cb){var Fa=0,Qf="ds"==$a;if(va){if("l"==va.charAt(0))va=va.substr(1)||ch,Fa=Ue(a,va);else{var Rf=gf(a,va);Rf&&(Fa=Rf.C-cb.C)}0>Fa&&(Fa=0);65536<Fa&&(Fa=65536)}var eh=a.ca;
|
||||
cb.ca&&(a.ca=cb.ca);for(var Sf="db"==$a?1:2,Od=Fa||32,Pd=1==Sf?2:4,fh=(Od+Pd-1)/Pd|0||1,Ga="";fh--&&0<Od;){for(var Ha="",Tf="",ga=Z(a,cb),Uf=Pd;0<Uf--&&0<Od--;){var zc=a.Ba(cb,1);Qf?(Ha&&(Ha+=","),Ha+=zc):(Ha+=jf(zc),Ha+=" ");for(var Vf=0;1==Sf&&6>Vf;Vf++)Tf+=String.fromCharCode((zc%64|0)+32),zc/=64}Ga&&(Ga+="\n");Ga=Qf?Ga+(Ha+","):Ga+(ga+": "+Ha+(0>Uf?" "+Tf:""))}Ga&&a.j(Ga);a.ca=eh}}}}break;case "e":if("else"==g[0])break;var Wf,Xf,Yf=g[0],Qd=g[1];"e"==Yf||"ew"==Yf?(Wf=a.Ba,Xf=a.mb):Qd=null;if(null==
|
||||
Qd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Ac=gf(a,Qd,a.ga);if(Ac)for(var Bc=2;Bc<g.length;Bc++){var Rd=Se(a,g[Bc]);if(void 0===Rd){a.j("unknown value: "+g[Bc]);break}a.j("changing "+Z(a,Ac)+" from "+jf(Wf.call(a,Ac))+" to "+jf(Rd));Xf.call(a,Ac,Rd,1)}}break;case "g":a:{var Zf=g[1],gh=b;if(void 0!==Zf){var Sd=gf(a,Zf);if(!Sd)break a;hf(a,Sd,gh);a.Da(a.b,Sd,!0)}uf(a,!0,c)}break;case "h":a.w.L?(c||a.j("halting"),a.W()):Lb(a,!0)||c||a.j("already halted");
|
||||
break;case "i":if("if"==g[0]){var Td;var xb=b.substr(2),xb=Ca(xb);Se(a,xb)?(c||a.j("true: "+xb),Td=!0):(c||a.j("false: "+xb),Td=!1);Td||(d=!1);break}f=!0;break;case "k":var hh=g[0];if("?"==g[1])a.j("stack trace commands:"),a.j("\tk\tshow frame addresses"),a.j("\tks\tshow symbol information");else{var Ud=0,Vd=X(),yb=X();for(a.j("stack trace for "+Z(a,yb));10>Ud;){for(var Ia=null,ih=256;65536>yb.C>>>0;){Vd.C=a.Ba(yb,2);if(null==yb.C||!ih--)break;if(!(Vd.C&1)){for(var jh=a,Cc=Vd,$f=null,zb=Cc.C,ag=zb,
|
||||
Wd=1;6>=Wd&&zb;Wd++){if(2<Wd){Cc.C=zb;var Dc=Af(jh,Cc);if(0<=Dc.indexOf("JSR")){var bg=Dc.indexOf(" ");if(zb+(Dc.indexOf(" ",bg+1)-bg-1)/2==ag){$f=Dc;break}}}zb-=2}Cc.C=ag;if(Ia=$f)break}}if(!Ia||null==Ia)break;var cg=null;if("ks"==hh){var dg=Ia.match(/[0-9A-F]+$/);dg&&(cg=xg(a,dg[0]))}Ia=Ba(Ia,50)+" ;"+(cg||"stack="+Z(a,yb));a.j(Ia);Ud++}Ud||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){xg(a,g[1],!0);break}f=!0;break;case "m":a:{var ia,ja=null,E=g[1];"?"==E&&(E=void 0);if(void 0!==
|
||||
E){var wa=0;if("all"==E)wa=1879046143,E=null;else if("on"==E)ja=!0,E=null;else if("off"==E)ja=!1,E=null;else{"keys"==E&&(E="key");"kbd"==E&&(E="keyboard");for(ia in M)if(E==ia){wa=M[ia];ja=!!(a.X&wa);break}if(!wa){a.j("unknown message category: "+E);break a}}if(wa)if("on"==g[2])a.X|=wa,ja=!0;else if("off"==g[2]&&(a.X&=~wa,ja=!1,1073741824==wa)){for(var eg=1E3<=a.O.length?a.O.length-1E3:0;eg<a.O.length;)a.j(a.O[eg++]);a.O=[]}}var kh=0,Ab="";for(ia in M)if(!E||E==ia){var lh=!!(a.X&M[ia]);if(null===
|
||||
ja||ja==lh)Ab&&(Ab+=","),++kh%10||(Ab+="\n\t"),"key"==ia&&(ia="keys"),Ab+=ia}void 0===E&&a.j("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.j((null!==ja?ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ab||"none"));$e(a)}break;case "p":if("print"==g[0]){yg(a,b.substr(5));break}var fg=g[0],gg="p"==fg?0:"pr"==fg?1:-1;if("?"==g[1]||0>gg)a.j("step commands:"),a.j("\tp\tstep over instruction"),a.j("\tpr\tstep over instruction with register update");else if(a.N)a.j("step in progress");
|
||||
else{var hg=X(a.v.A);a.Ba(hg);a.N?(a.Da(a.b,hg,!0),uf(a)||(a.G&&ld(a.G),a.N=0)):zg(a,gg?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}xf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Bb=+g[2];if(8==Bb||10==Bb||16==Bb)a.ca=Bb;else{a.j("invalid base: "+Bb);break}}a.j("default base: "+a.ca);break;case "cs":var Cb;void 0!==g[3]&&(Cb=+g[3]);switch(g[2]){case "int":a.v.ka=Cb;break;case "start":a.v.Fa=Cb;break;case "stop":a.v.ma=Cb;break;default:a.j("unknown cs option");break a}void 0!==
|
||||
Cb&&dd(a.v);a.j("checksums "+(a.v.w.Ea?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(id(a.v,+g[2])||a.j("warning: using 1x multiplier, previous target not reached"));a.j("target speed: "+(a.v.ba.toFixed(2)+"Mhz")+" ("+a.v.ea+"x)");break;default:if(g[1]){a.j("unknown option: "+g[1]);break}case "?":a.j("debugger options:"),a.j("\tbase #\t\tset default base to #"),a.j("\tcs int #\tset checksum cycle interval to #"),a.j("\tcs start #\tset checksum cycle start count to #"),a.j("\tcs stop #\tset checksum cycle stop count to #"),
|
||||
a.j("\tsp #\t\tset speed multiplier to #")}break;case "t":zg(a,g[0],g[1]);break;case "u":yf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){wg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Pb||"PDP10")+" version 1.34.2 ("+a.v.qb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){yg(a,b.substr(1));break}var Xd="commands:",Yd;for(Yd in Bg)Xd+="\n"+Ba(Yd,9)+Bg[Yd];ud(a)||(Xd+="\nnote: history disabled if no exec breakpoints");a.j(Xd);break;default:f=!0}f&&(a.j("unknown command: "+
|
||||
b),d=!1)}}catch(jg){a.j("debugger error: "+(jg.stack||jg.message)),d=!1}return d}function gd(a,b,c){b=Qe(a,b,c);for(var d in b)if(!sg(a,b[+d]))return!1;return!0}
|
||||
var Bg={"?":"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"},lg=20,ng=85,mg=".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 JOV JCRY0 JCRY1 JCRY JFOV".split(" "),
|
||||
lf=0,mf=1,nf=2,of=3,pf=4,qf=5,rf=6,sf=7,kf="PC RA EA C0 C1 OV ND PD".split(" "),Cg={},Bf=(Cg[28672]={0:101},Cg[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:ng,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Cg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:lg,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},Cg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Cg[29248]={24576:79,24640:80,25088:81,25152:82},Cg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},Cg),Cf=["","I","M","S"],ig=" L E LE A GE N G".split(" "),kg="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),og={8:102,4:103,2:104,6:105,1:106},tf=1E3,wf=">> ";eb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ye(d);ub(d,c)}});
|
||||
function Dg(a,b,c){u.call(this,"Computer",a,33554432);this.w.V=!1;this.R=null;Eg(this,b);this.O=bd(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.F=this.N=null;this.K=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.ba=bd(this,"url")||"";(Math.random()+.1).toString(36);this.f=Fg(this);if(this.v=sb("CPU",this.id)){this.D=sb("Debugger",this.id);this.H=new Fc({id:this.Qa+".bus",busWidth:this.aa},this.v,this.D);var d,e=qb(this.id);if((this.u=sb("Panel",this.id))&&this.u.ta)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.j=this.u.j,d.ta=this.u.ta;this.j(Pb+" 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.Aa&&d.Aa(this,this.H,this.v,this.D);b=null;d=bd(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=bd(this,"state")||(f=!0,a.state))this.N=b=a,f||(this.K=!0,this.b=Gg),this.b&&(this.I=new O(this,"1.34.2"),Hg(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Ig(this))&&(this.K=!0);if(b){var g=this;Ka(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.da("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.M=b,g.T=!0);z(g)})}else z(this);this.J.power||(this.O=!0);!c&&this.O&&Jg(this,this.Ja)}else r("Unable to find CPU component")}p(Dg,u);function Eg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
|
||||
function bd(a,b,c,d){var e=b.toLowerCase(),e=Ra(b)||Ra(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 Jg(a,b,c){for(var d=qb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Kb(f)){Kb(f,function(){Jg(a,b,c)});return}}b.call(a,c)}
|
||||
function Kg(a,b){var c=new O(a,"1.34.2",Lg);if(Hg(c)&&Mg(c)){var d=c.get(Ng),e=b?b.get(Ng):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Dg.prototype;
|
||||
l.Ja=function(a){void 0===a&&(a=this.b||(this.M?Og:Gg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.I||new O(this,"1.34.2");if(a==Pg)b=!0;else if(a>Gg){if(Hg(d,this.M)){this.B=new O(this,"1.34.2",Qg);Hg(this.B)&&(Rg(this,d),a=Sg,Tg(this.B));this.B.set(Ng,Ja());Ug(this.B);var e=this.b&&!this.K;if(a==Og||pb("Click OK to restore the previous "+Pb+" machine state, or CANCEL to reset the machine.")){if(c=Mg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Hg(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.da("Error: "+g),"unable to verify user"==g&&(Pa(Vg,""),this.f=null)):this.j(f+": "+g),Tg(d),Hg(d)?(c=Mg(d),e=!0):c=!1))}e&&Kg(this,c?d:null)}else a==Sg&&d.clear()}else Kg(this);delete this.M;delete this.I}e=qb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=Wg(this,g,d,b,c));b=[d,a,c];a!=Pg?Jg(this,this.ub,b):this.ub(b)}};
|
||||
function Wg(a,b,c,d,e){if(!b.w.V){b.w.V=!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.ua(f,d)&&f&&(r("Unable to restore state for "+b.type),a.N&&!a.T?(c.clear(),a.b=Gg,window&&window.location.reload()):a.P=!0,b.ua(null),e=!1),!d&&b.jb){var g=b.jb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.ub=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.w.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Wg(this,this.v,b,c,a),P(this,-2),this.v.Z());this.P&&(Rg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.A=0};
|
||||
function Rg(a,b){if(pb("There may be a problem with your "+Pb+" machine.\n\nTo help us diagnose it, click OK to send this "+Pb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Pb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ka("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Ag(a,b,c){var d,e="none";if(a.A)return null;a.A--;var f=new O(a,"1.34.2"),g=new O(a,"1.34.2",Lg),h=Ja();g.set(Ng,h);f.set(Ng,h);f.set(Xg,"1.34.2");f.set(Yg,window?window.location.href:null);f.set(Zg,window?window.navigator.userAgent:"");a.v&&a.v.ia&&(c&&(b&&(a.v.w.Z=a.v.w.L),a.v.W()),d=a.v.ia(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.w.V=!1,!1===d&&(e=null)));for(var h=qb(a.id),k=0;k<h.length;k++){var m=h[k];m.w.V&&(m.ia&&(d=m.ia(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.w.V=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&$g(a,a.f,f.toString()),Ug(g)&&Ug(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==mh),d&&f.clear(h)):e=f.toString());c&&(a.w.V=!1,b=a.J.power)&&(b.textContent="Power");a.A=0;return e}
|
||||
l.reset=function(){this.w.reset=!0;this.H&&this.H.reset&&(Ob(this,"Resetting "+this.H.type),this.H.reset());this.v&&this.v.reset&&(Ob(this,"Resetting "+this.v.type),this.v.reset());for(var a=qb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.H&&c!==this.v&&c.reset&&(Ob(this,"Resetting "+c.type),c.reset())}this.w.reset=!1;P(this,-1)};l.start=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}P(this,-1)};
|
||||
l.stop=function(a,b){for(var c=qb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}P(this,-1)};
|
||||
function P(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.Ua+=d))&&(e.textContent=c.w.L?c.aa.toFixed(2)+"Mhz":"Stopped",c.Ua=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.w.L;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.A;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?sa(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.f=a.v.A:0<b&&c&&!d&&(a.f=a.v.sa);hc(a,a.f);bc(a,a.A)}}
|
||||
l.ia=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.A||(d.w.V?yg(d,!1,!0):Hg(d,d.Ga))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.w.V&&!d.A)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");yg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(Eg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(xa())c.parentNode.removeChild(c);else return this.J[b]=
|
||||
c,c.onclick=function(){var a=Dg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=yg(d,b);b?Yg(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Dg(a,b){var c=a.f;c||((c=Oa(Tg),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=lh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
||||
function lh(a,b){a.f=null;b=Ka(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&&(Pa(Tg,b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function Gg(a){var b=null;a.f&&(b=ya()+"/api/v1/user?req=load&user="+a.f+"&state="+mh(a,"1.34.2"));return b}
|
||||
function Yg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=mh(a,"1.34.2");d.data=c;b=Ka(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.da("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.da(c),Pa(Tg,""),a.f=null)}}
|
||||
function ld(a,b){if(a.qa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.qa.focus();!b&&window&&window.scrollTo(c,d)}}var Og="failsafe",Jg="validate",Lg="timestamp",Vg="version",Wg="url",Xg="browser",Tg="user",Ng=-1,Eg=0,Mg=1,Qg=2,kh=3;eb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new Bg(g,d,!0);Cb(g,f);g.O&&Hg(g,g.Ga)}});
|
||||
fb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Bb("Computer",c.id))&&c.S&&!c.w.V&&c.Ga(Ng)}});fb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Bb("Computer",c.id))&&c.w.V&&yg(c,!(!c.b||c.F),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.b={};this.v=this.u=!1;this.key=mh(a,b,c);Rg(this,a.tb)}l=O.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 Fg(a,b){return b?(a.f=b,a.v=!0,a.u=!1,!0):a.v?!0:Ma()&&(b=Oa(a.key))?(a.f=b,a.v=!0):!1}function Kg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.f),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function Sg(a){var b=!0;if(Ma()){var c=JSON.stringify(a.b);Pa(a.key,c)||(r("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.f};
|
||||
function Rg(a,b){a.f="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){Rg(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 mh(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 nh=0;
|
||||
function oh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ka(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):ph(k,a,b,c,d,e,f,g)})}
|
||||
function ph(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(mb(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(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?qh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function qh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(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 k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);qh(a,b,c)}})}else c(a,null)}
|
||||
function rh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&y(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);m&&(--nh||ib(!0));m=!1}var h,k,m=!0;nh++;nb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],C=document.createElement("style");C.type="text/css";C.styleSheet?C.styleSheet.cssText=n:C.appendChild(document.createTextNode(n));t.appendChild(C)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?oh(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--nh||ib(!0)):g("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),--nh||
|
||||
ib(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?oh(c,b,a,e,!0,f,n):ph(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(fa){g(fa.message)}return m}window.embedPDP10=function(a,b,c,d){ib(!1);return rh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return rh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return Bb(b,a+".machine")};
|
||||
function P(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.Xa+=d))&&(e.textContent=c.w.L?c.aa.toFixed(2)+"Mhz":"Stopped",c.Xa=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.w.L;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.A;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?sa(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.f=a.v.A:0<b&&c&&!d&&(a.f=a.v.va);hc(a,a.f);bc(a,a.A)}}
|
||||
l.ja=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.A||(d.w.V?Ag(d,!1,!0):Jg(d,d.Ja))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.w.V&&!d.A)if(d.b&&!d.F){var a=pb("Click OK to save changes to this "+Pb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ag(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ja(Gg)}else d.reset(),d.v&&!d.D&&d.v.Z()},!0;case "save":if(xa())c.parentNode.removeChild(c);else return this.J[b]=
|
||||
c,c.onclick=function(){var a=Fg(d,!0);if(a){var b=!!(d.b&&!d.F||d.N),c=Ag(d,b);b?$g(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Fg(a,b){var c=a.f;c||((c=Oa(Vg),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=nh(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
||||
function nh(a,b){a.f=null;b=Ka(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&&(Pa(Vg,b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function Ig(a){var b=null;a.f&&(b=ya()+"/api/v1/user?req=load&user="+a.f+"&state="+oh(a,"1.34.2"));return b}
|
||||
function $g(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=oh(a,"1.34.2");d.data=c;b=Ka(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.da("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.da(c),Pa(Vg,""),a.f=null)}}
|
||||
function ld(a,b){if(a.ta){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ta.focus();!b&&window&&window.scrollTo(c,d)}}var Qg="failsafe",Lg="validate",Ng="timestamp",Xg="version",Yg="url",Zg="browser",Vg="user",Pg=-1,Gg=0,Og=1,Sg=2,mh=3;eb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new Dg(g,d,!0);ub(g,f);g.O&&Jg(g,g.Ja)}});
|
||||
fb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=sb("Computer",c.id))&&c.S&&!c.w.V&&c.Ja(Pg)}});fb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=sb("Computer",c.id))&&c.w.V&&Ag(c,!(!c.b||c.F),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.b={};this.v=this.u=!1;this.key=oh(a,b,c);Tg(this,a.Db)}l=O.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 Hg(a,b){return b?(a.f=b,a.v=!0,a.u=!1,!0):a.v?!0:Ma()&&(b=Oa(a.key))?(a.f=b,a.v=!0):!1}function Mg(a){var b=!0;if(!a.u)try{a.b=JSON.parse(a.f),a.u=!0}catch(c){r(c.message||c),b=!1}return b}function Ug(a){var b=!0;if(Ma()){var c=JSON.stringify(a.b);Pa(a.key,c)||(r("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.f};
|
||||
function Tg(a,b){a.f="";a.b={};a.v=a.u=!1;b&&a.set("parms",b)}l.clear=function(a){Tg(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 oh(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 ph=0;
|
||||
function qh(a,b,c,d,e,f,g){f("Loading "+a+"...");Ka(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):rh(k,a,b,c,d,e,f,g)})}
|
||||
function rh(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(mb(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(t){g=null,a=t.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?sh(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function sh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ka(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 k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);sh(a,b,c)}})}else c(a,null)}
|
||||
function th(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&y(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function g(a){f("Error: "+a);m&&(--ph||ib(!0));m=!1}var h,k,m=!0;ph++;nb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var t=document.head||document.getElementsByTagName("head")[0],D=document.createElement("style");D.type="text/css";D.styleSheet?D.styleSheet.cssText=n:D.appendChild(document.createTextNode(n));t.appendChild(D)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?qh(d,null,a,null,!1,f,function(a,e){e?(mb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--ph||ib(!0)):g("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),--ph||
|
||||
ib(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?qh(c,b,a,e,!0,f,n):rh(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(fa){g(fa.message)}return m}window.embedPDP10=function(a,b,c,d){ib(!1);return th("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ib(!1);return th("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return sb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Eb[a]){for(var c=!0,d=Eb,e=a,f=b.length,g=[],h=[],k="",m=null,n=0;n<f;n++){var t=b[n];if('"'==t||"'"==t)m&&t!=m?k+=t:(m?m=null:m=t,k&&(h.push(k),k=""));else{if(!m){if("\r"==t||"\n"==t)t=";";if(" "==t||"\t"==t||";"==t){k&&(h.push(k),k="");";"==t&&h.length&&(g.push(h),h=[]);continue}}k+=t}}k&&h.push(k);h.length&&g.push(h);d[e]=g;Db(a)||(c=!1)}return c};window.enableEvents=ib;window.sendEvent=kb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
|
||||
|
|
|
|||
|
|
@ -30,147 +30,148 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function ea(){ba();var a=m.Symbol.iterator;a||(a=m.Symbol.iterator=m.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ga(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ga(a){ea();a={next:a};a[m.Symbol.iterator]=function(){return this};return a}
|
||||
function n(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 ha(a,b){if(b){var c=m;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})}}
|
||||
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 q={Cb:0,Wa:1,Eb:2,Fb:3,Gb:4,Hb:5,Ib:6,Jb:7,Oa:8,Kb:9,Xa:10,Lb:11,Mb:12,Ya:13,Nb:14,Ob:15,Pb:16,Qb:17,Rb:18,Sb:19,Tb:20,Ub:21,Vb:22,Wb:23,Xb:24,Yb:25,Zb: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,Na:65,Bb:66,Db:67,$b:68,E:69,ac:70,bc:71,cc:72,dc:73,ec:74,fc:75,gc:76,hc:77,ic:78,jc:79,kc:80,Q:81,lc:82,mc:83,nc:84,oc:85,pc:86,qc:87,
|
||||
rc:88,sc:89,ab:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,tc:97,uc:98,vc:99,d:100,e:101,wc:102,xc:103,yc:104,zc:105,Ac:106,k:107,Bc:108,Cc:109,n:110,Dc:111,p:112,q:113,r:114,Ec:115,t:116,Fc:117,Gc:118,Hc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Za:127};function ia(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}
|
||||
var p={Gb:0,Za:1,Ib:2,Jb:3,Kb:4,Lb:5,Mb:6,Nb:7,Ta:8,Ob:9,$a:10,Pb:11,Qb:12,ab:13,Rb:14,Sb:15,Tb:16,Ub:17,Vb:18,Wb:19,Xb:20,Yb:21,Zb:22,$b:23,ac:24,bc:25,cc: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,Sa:65,Fb:66,Hb:67,dc:68,E:69,ec:70,fc:71,gc:72,hc:73,ic:74,jc:75,kc:76,lc:77,mc:78,nc:79,oc:80,Q:81,pc:82,qc:83,rc:84,sc:85,tc:86,uc:87,
|
||||
vc:88,wc:89,cb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,xc:97,yc:98,zc:99,d:100,e:101,Ac:102,Bc:103,Cc:104,Dc:105,Ec:106,k:107,Fc:108,Gc:109,n:110,Hc:111,p:112,q:113,r:114,Ic:115,t:116,Jc:117,Kc:118,Lc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,bb:127};function ia(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 ja(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ia(a,8,b,"")}function ka(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ia(a,16,b,c?"0x":"")}function la(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 ma(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function na(){var a=oa();return-1!==a.indexOf("pcjs.org",a.length-8)}
|
||||
function pa(a){return a.replace(/[&<>"']/g,function(a){return qa[a]})}function ra(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var qa={"&":"&","<":"<",">":">",'"':""","'":"'"};function sa(){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 r(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,
|
||||
f,e))});if(b&&"object"==typeof b){var l="",p;for(p in b)b.hasOwnProperty(p)&&(l&&(l+="&"),l+=p+"="+encodeURIComponent(b[p]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
f,e))});if(b&&"object"==typeof b){var l="",q;for(q in b)b.hasOwnProperty(q)&&(l&&(l+="&"),l+=q+"="+encodeURIComponent(b[q]));l=l.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function ta(a,b){var c,d={H:null,O:null,T:null,S:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.T=g.load;d.S=g.exec;if(e=g.bytes)d.H=e;else if(e=g.words)for(d.H=Array(2*e.length),f=c=0;c<e.length;c++)d.H[f++]=e[c]&255,d.H[f++]=e[c]>>8&255;else if(e=g.longs)for(d.H=Array(4*e.length),f=c=0;c<e.length;c++)d.H[f++]=
|
||||
e[c]&255,d.H[f++]=e[c]>>8&255,d.H[f++]=e[c]>>16&255,d.H[f++]=e[c]>>24&255;else(e=g.data)?d.Y=e:d.H=g;d.H&&(d.H.length?1==d.H.length&&(t(d.H[0]),d=null):(t("Empty resource: "+a),d=null));d.O=g.symbols}catch(h){t("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){t("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.H=e)}return d}
|
||||
function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function va(){if(null==wa){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}wa=a}return wa}function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function ua(){if(null==va){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}va=a}return va}function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
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 u(a){v.init.push(a)}
|
||||
function Da(a){if(Ea)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Fa(a){!Ea&&a?(Ea=!0,Ga&&Ha("init"),Ia&&Ha("show")):Ea=a}function Ha(a){v[a]&&Da(v[a])}var Ba=null,v={init:[],show:[],exit:[]},Ga=!1,Ia=!1,Ea=!0,wa=null;Ca("onload",function(){Ga=!0;Da(v.init)});Ca("onpageshow",function(){Ia=!0;Da(v.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Da(v.exit)});
|
||||
function w(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Qa=b.comment;this.Va=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.ra=this.id:(this.sa=this.id.substr(0,a),this.ra=this.id.substr(a+1));this.h={ready:!1,wa:!1,Ia:!1,F:!1,error:!1};this.ya=null;this.h.error=!1;this.w=this.i=this.s=this.u=this.ca=null;y.push(this)}function Ja(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function La(){return Date.now()||+new Date}
|
||||
function Da(a){if(Ea)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Fa(a){!Ea&&a?(Ea=!0,Ga&&Ha("init"),Ia&&Ha("show")):Ea=a}function Ha(a){v[a]&&Da(v[a])}var Ba=null,v={init:[],show:[],exit:[]},Ga=!1,Ia=!1,Ea=!0,va=null;Ca("onload",function(){Ga=!0;Da(v.init)});Ca("onpageshow",function(){Ia=!0;Da(v.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Da(v.exit)});
|
||||
function w(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ra=b.comment;this.gb=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.ua=this.id:(this.va=this.id.substr(0,a),this.ua=this.id.substr(a+1));this.h={ready:!1,za:!1,Ma:!1,F:!1,error:!1};this.Ba=null;this.h.error=!1;this.w=this.i=this.s=this.u=this.fa=null;y.push(this)}function Ja(a,b,c){Ka[a]&&b&&(Ka[a][b]=c)}function La(){return Date.now()||+new Date}
|
||||
function t(a){window&&window.alert(a)}function Ma(a){var b=!1;window&&(b=window.confirm(a));return b}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Na(a){if(void 0!==a){var b;for(b=0;b<y.length;b++)if(y[b].id===a)return y[b]}return null}
|
||||
function B(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function D(a,b){var c=E;b=F(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=C(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.length}}}}
|
||||
function A(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function C(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function D(a,b){var c=E;b=F(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(" "),q=0;q<l.length;q++)switch(h=l[q],h){case c+"-binding":(h=C(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),q=l.length}}}}
|
||||
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
function Oa(a){for(var b=!0,c=Pa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Qa.indexOf(e)&&(f=function(){return function(){Oa(a)}}());var g=Ra[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=B(d[1],a);if(h)if(g=Sa[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){t("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Pa[a];return b}k=w.prototype;
|
||||
function Oa(a){for(var b=!0,c=Pa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Qa.indexOf(e)&&(f=function(){return function(){Oa(a)}}());var g=Ra[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=A(d[1],a);if(h)if(g=Sa[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){t("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Pa[a];return b}k=w.prototype;
|
||||
k.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.ca=this.m[b]=c,c.value="",this.M=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.M(a,this.ra)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
|
||||
k.status=function(a){this.M(this.ra+": "+a)};k.G=function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)};function Ta(a,b){b&&(a.h.ready?b():a.ya=b);return a.h.ready}function G(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.ya;a.ya=null;b&&b()}}function Ua(a,b){a.h.Ia?(a.h.wa=!1,a.h.Ia=!1):a.h.error?a.M(a.toString()+" error"):a.h.wa=b}k.V=function(){return this.h.F=!0};k.R=function(a,b){b&&(this.h.F=!1);return!0};
|
||||
k.U=function(a,b,c){switch(b){case "clear":return this.m[b]||(this.m[b]=c,c.onclick=function(a){return function(){a.m.print&&(a.m.print.value="")}}(this)),!0;case "print":return this.m[b]||(this.fa=this.m[b]=c,c.value="",this.M=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.G=function(a){this.M(a,this.ua)}),!0;default:return!1}};k.log=function(){};k.M=function(){};
|
||||
k.status=function(a){this.M(this.ua+": "+a)};k.G=function(a,b,c){c=c||this.type;b||t((c?c+": ":"")+a)};function Ta(a,b){b&&(a.h.ready?b():a.Ba=b);return a.h.ready}function G(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.Ba;a.Ba=null;b&&b()}}function Ua(a,b){a.h.Ma?(a.h.za=!1,a.h.Ma=!1):a.h.error?a.M(a.toString()+" error"):a.h.za=b}k.V=function(){return this.h.F=!0};k.R=function(a,b){b&&(this.h.F=!1);return!0};
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var Ka=window?window.PCjs.Machines:{},y=window?window.PCjs.Components:[],Pa=window?window.PCjs.Commands:{},Qa=["hold","sleep","wait"],Ra={alert:function(a){t(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Sa={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 E="pdp10",H="PDPjs",Va=Math.pow(2,18)-1,I=Math.pow(2,18),J=Math.pow(2,18)-1,K=Math.pow(2,18),L=Math.pow(2,35)-1,M=Math.pow(2,35),N=Math.pow(2,36)-1,O=Math.pow(2,36),Wa=Math.pow(2,17)-1,P=Math.pow(2,35)-1,Xa=Math.pow(2,35),Ya=Math.pow(2,36),Za=Math.pow(2,34),Q=Math.pow(2,32),$a=Math.pow(2,23),ab=Math.pow(2,30),E="pdp10",H="PDPjs";
|
||||
function bb(a,b){w.call(this,"Panel",a);this.B=this.C=0;this.P=b;this.b=this.v=this.g=this.j=0;this.D=this.I=-1;this.K=this.L=this.o=!1;this.N=cb;this.l={};this.a={START:[1,1,!0,!1,this.mb],STEP:[1,1,!1,!1,this.nb],ENABLE:[1,1,!1,!1,this.hb],CONT:[1,1,!0,!1,this.fb],DEP:[0,0,!0,!1,this.gb],EXAM:[1,1,!0,!1,this.ib],LOAD:[1,1,!0,!1,this.kb],TEST:[0,0,!0,!1,this.jb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.lb,a];this.w=this.i=this.s=this.u=null;this.exports={hold:this.eb,toggle:this.wb,reset:this.sb,
|
||||
set:this.vb};G(this)}n(bb,w);k=bb.prototype;k.reset=function(a){this.stop();a&&db(this,this.j=0)};
|
||||
function bb(a,b){w.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.b=this.v=this.g=this.j=0;this.D=this.I=-1;this.K=this.L=this.o=!1;this.N=cb;this.l={};this.a={START:[1,1,!0,!1,this.qb],STEP:[1,1,!1,!1,this.rb],ENABLE:[1,1,!1,!1,this.lb],CONT:[1,1,!0,!1,this.jb],DEP:[0,0,!0,!1,this.kb],EXAM:[1,1,!0,!1,this.mb],LOAD:[1,1,!0,!1,this.ob],TEST:[0,0,!0,!1,this.nb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.pb,a];this.w=this.i=this.s=this.u=null;this.exports={hold:this.ib,toggle:this.Ab,reset:this.wb,
|
||||
set:this.zb};G(this)}n(bb,w);k=bb.prototype;k.reset=function(a){this.stop();a&&db(this,this.j=0)};
|
||||
k.U=function(a,b,c,d){if(this.u&&this.u.U(a,b,c,d)||this.i&&this.i.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){eb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){fb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){eb(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){fb(a,b)}}(this,b),!0):w.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.i=c;this.w=d;gb(this);hb(this)};k.V=function(a,b){if(!b)if(this.P&&ib(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new R(this);a.set(0,[this.b,this.j,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])jb(this,this.b=a[0]),db(this,this.j=a[1]),kb(this,a[2]);return!0};k.sb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}hb(this);return!0};function lb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gb(a,b){for(var c in a.l)lb(a,c,null!=b?b:a.l[c])}function mb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hb(a){for(var b in a.a)mb(a,b,a.a[b][1])}
|
||||
k.eb=function(a,b,c){if(eb(this,b)){if(c){var d=this;setTimeout(function(){fb(d,b);a&&a()},+c);return!1}fb(this,b)}return!0};
|
||||
k.vb=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 kb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,mb(this,a,c[1]),!0):!1};k.wb=function(a){return eb(this,a)?(fb(this,a),!0):!1};function eb(a,b){var c=a.a[b];return c?(mb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nb&&(a.K=b==ob,a.L=b==pb),!0):!1}function fb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(mb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.mb=function(a){a||this.i.h.A||(this.i.j=this.b%I,this.a[qb]&&this.a[qb][1]&&rb(this.i))};k.nb=function(){};k.hb=function(a){a||S(this.i)};k.fb=function(a){if(!a&&!this.i.h.A)if(this.a[qb]&&this.a[qb][1])rb(this.i);else{a=this.w;var b;if(b=a)a.h.wa&&(a.h.Ia=!0),b=!a.h.wa;if(b)Ua(a,!0),a.b(0,null),Ua(a,!1);else try{var c=this.i.Ba(1);0<c&&(sb(this.i,c),tb(this.i,c,!0),ub(this.i,c))}catch(d){"number"!=typeof d&&(c=this.i,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.u&&T(this.u)}};
|
||||
k.gb=function(a){a&&!this.i.h.A&&(this.K&&vb(this),a=db(this,this.j=this.g),this.N==cb?wb(this.s,this.b,a):this.i.f(this.b,a))};k.ib=function(a){if(!a&&!this.i.h.A){this.L&&vb(this);if(this.N==cb){a=this.s;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.j++;b=c.m(b&16383,b);a.j--;a=b}else a=this.i.c(this.b);db(this,this.j=a)}};k.kb=function(a){a||this.i.h.A||jb(this,this.g)};k.jb=function(a){a?(this.o=!0,gb(this,!0)):(this.o=!1,gb(this),kb(this,0))};k.lb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function vb(a){var b=1,c=a.s.g;a.a[nb]&&a.a[nb][1]||(b=-b);jb(a,a.b&~c|a.b+b&c)}function jb(a,b){a.b=b&a.s.g;if(a.D!==a.b){a.D=a.b;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||lb(d,e,f)}}}function db(a,b){a.v=b%O;if(a.I!==a.v){a.I=a.v;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||lb(d,e,f)}}return a.v}function kb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;hb(a);return!0}k.stop=function(){jb(this,this.i.j)};
|
||||
function ib(){for(var a=F(document,E,"panel"),b=0;b<a.length;b++){var c=a[b],d=C(c),e=Na(d.id);e||(e=new bb(d,!0));D(e,c)}}var cb=7,ob="DEP",qb="ENABLE",pb="EXAM",nb="STEP";u(ib);function xb(a,b,c){w.call(this,"Bus",a);this.i=b;this.w=c;this.v=+a.busWidth||18;this.o=1<<this.v;this.g=this.o-1;this.b=Math.log2(16384);this.l=this.o/16384|0;this.j=0;this.a=[];a=new U(this);yb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;G(this)}n(xb,w);k=xb.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.R=function(a){return a?this.save():!0};k.save=function(){var a=new R(this);a.set(0,zb(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)){t("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Ab(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.ba)return h.Aa+=h.ba-e,h.ba=e,!0;if(e>=h.ba+h.Aa){p=h.size-(e-l);p>f&&(p=f);h.Aa=e-h.ba+p;e=l+16384;f-=p;g++;continue}}return Bb(Cb,e,f)}e=new U(a,e,p,16384,d);yb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Db[d]+" at "+ja(b)),!0):Bb(Eb,b,c)}function wb(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.j++;d.g(c,b&16383,b);a.j--}
|
||||
function zb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Ja||e.cb){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],x=g+1;x<e.length&&e[x]===p;)x++;l[h++]=x-g;l[h++]=p;g=x}l.length<e.length&&(e=l)}c[f]=e}}return c}function Bb(a,b,c){t("Memory block error ("+a+": "+ka(b)+","+ka(c)+")");return!1}var Cb=1,Eb=2;function Fb(a){w.call(this,"Device",a)}n(Fb,w);k=Fb.prototype;k.Z=function(a,b,c,d){this.s=b;this.u=a;this.i=c;this.w=d;G(this)};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new R(this)).data()};k.restore=function(){return!0};u(function(){for(var a=F(document,E,"device"),b=0;b<a.length;b++){var c,d=a[b];c=C(d);switch(c.type){case "default":c=new Fb(c),D(c,d)}}});
|
||||
function U(a,b,c,d,e){this.u=a;this.id=Gb+=2;this.ba=b;this.Aa=c;this.size=d||0;this.type=e||Hb;this.s=e==Ib;this.c=this.m=this.Ka;this.f=this.g=this.Ma;this.b=this.i=0;yb(this);this.Ja=this.cb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Jb(this,Kb)}else Jb(this)}k=U.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ja=!0):!1};function Jb(a,b){b||(b=Lb);Mb(a,b,void 0);Nb(a,b,void 0)}
|
||||
function Mb(a,b,c){c&&a.b||(a.c=b[0]||a.Ka);if(c||void 0===c)a.m=b[0]||a.Ka}function Nb(a,b,c){c&&a.i||(a.f=!a.s&&b[1]||a.Ma);if(c||void 0===c)a.g=b[1]||a.Ma}function yb(a,b){a.b=a.i=0;b&&((a.b=b.b)&&Mb(a,Ob,!1),(a.i=b.i)&&Nb(a,Ob,!1))}k.Ka=function(){var a=this.u;a.j||S(a.i);return-1};k.Ma=function(){};k.qb=function(a){return this.a[a]};k.zb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ja=!0)};k.ob=function(a,b){return this.m(a,b)};k.yb=function(a,b,c){this.s||this.g(a,b,c)};
|
||||
var Hb=0,Ib=2,Db=["NONE","RAM","ROM"],Gb=0,Lb=[],Kb=[U.prototype.qb,U.prototype.zb],Ob=[U.prototype.ob,U.prototype.yb];
|
||||
function Pb(a,b){w.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ga=b;this.ea=c;this.Ea=Math.round(this.Ga/1E4)/100;this.X=this.Ea*this.ea;this.Fa=this.ma=this.fa=this.va=0;this.h.A=this.h.La=!1;this.h.J=a.autoStart;"string"==typeof this.h.J&&(this.h.J="true"==this.h.J);this.h.xa=!1;this.ta=this.da=0;this.ua=+a.csStart;this.ka=+a.csInterval;this.la=+a.csStop;this.I=[];this.Ra=this.tb.bind(this);this.P=this.D=this.L=this.N=this.C=this.ja=this.K=this.ga=this.Ha=this.W=0;this.pa=
|
||||
null;G(this)}n(Pb,w);k=Pb.prototype;k.Z=function(a,b,c,d){this.u=a;this.s=b;this.w=d;this.pa=a.g;for(a=0;a<Qb.length;a++)(b=this.m[Qb[a]])&&this.u.U(null,Qb[a],b);G(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=Rb(this.u,"autoStart");null!=c?this.h.J="true"==c?!0:"false"==c?!1:!!c:null==this.h.J&&(this.h.J=void 0===this.m.run);if(!b){if(a){Sb(this);if(!this.restore(a))return!1;Tb(this)}else this.reset();this.status("No debugger detected");this.h.J||this.M("CPU will not be auto-started "+(this.pa?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.h.A?!0:this.h.J?(rb(this),!0):!1};k.Ta=function(){return 0};
|
||||
function Tb(a){void 0===a.ua&&(a.ua=0);void 0===a.ka&&(a.ka=-1);void 0===a.la&&(a.la=-1);a.h.xa=0<=a.ua&&0<a.ka;a.h.xa&&(a.ta=0,a.da=a.ua-a.P)}function ub(a,b){if(a.h.xa){var c=!1;a.ta=a.ta+a.Ta()|0;a.da-=b;0>=a.da&&(a.da+=a.ka,c=!0);0<=a.la&&a.la<=Ub(a)&&(a.ka=a.la=-1,Tb(a),S(a),c=!0);c&&a.M(Ub(a)+" cycles: checksum="+ka(a.ta))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.F)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.ya?" (waiting for notification)":""))+".");a=!1}a&&(d.h.A?S(d):rb(d))},!0;case "speed":return this.m[b]=
|
||||
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){Vb(d,d.ea<<1,!0)},c.textContent=this.X.toFixed(2)+"Mhz",!0}return!1};function tb(a,b,c){a.P+=b;c&&(a.L=a.N=0)}function Wb(a,b){var c=1;b&&1<a.ea&&a.W&&(c=a.W/a.Ea);a.Fa=Math.round(1E3/Xb);a.ma=Math.floor(a.Ga/Xb*c);b||(a.fa=a.ma);a.va=0}function Ub(a){return a.P+a.D+a.L-a.N}function Sb(a){a.W=0;a.Ha=0;a.P=a.D=a.L=a.N=0;Tb(a);Vb(a,1)}
|
||||
function Vb(a,b,c){if(void 0!==b){.8>a.W/a.X&&(b=1);a.ea=b;b=a.Ea*a.ea;if(a.X!=b){a.X=b;b=a.X.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ca&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ca.focus(),window&&window.scrollTo(b,d)))}tb(a,a.D);a.D=0;a.C=La();a.K=0;Wb(a)}function Yb(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function sb(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 Zb(a,b){var c=a.L-=a.N;a.N=0;b&&(a.L=0);return c}
|
||||
k.tb=function(){if(this.h.A){this.va>=this.Ga&&Wb(this,!0);this.ga=0;this.ja=La();if(this.K){var a=this.ja-this.K;a>this.Fa&&(this.C+=a,this.C>this.ja&&(this.C=this.ja))}try{do{for(var b,c=this.h.xa?1:this.ma,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ba(b)}catch(f){if("number"!=typeof f)throw f;}b=Zb(this,!0);this.ga+=b;this.D+=b;ub(this,b);sb(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.ma;++this.Ha>=$b&&(this.u&&T(this.u,void 0),this.Ha=0);break}}while(this.h.A)}catch(f){S(this);
|
||||
this.u&&this.u.stop(La(),Ub(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.A){a=setTimeout;b=this.Ra;this.K=La();c=this.Fa;this.ga&&(c=Math.round(c*this.ga/this.ma));c-=this.K-this.ja;if(d=this.K-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,Vb(this));if(0>c||this.W<this.X)-1E3>c&&(this.C-=c),c=0;this.va+=this.ga;this.K+=c;a(b,c)}}};
|
||||
function rb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.A)a.M(a.toString()+" busy");else{Vb(a);a.h.A=!0;a.h.La=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.C,Ub(a));a.w||a.status("Started");setTimeout(a.Ra,0)}}k.Ba=function(){return 0};function S(a){var b=!1;if(a.h.A){Zb(a);tb(a,a.D);a.D=0;a.h.A=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(La(),Ub(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var Xb=30,$b=15,Qb=["power","reset"];
|
||||
function ac(a){var b=+a.model||1001;Pb.call(this,a,1E6);this.$a=b;this.qa=+a.addrReset||0;this.bb=bc.bind(this);this.a=V.bind(this);this.ia=null;this.Pa=[];this.h.complete=!1}n(ac,Pb);k=ac.prototype;k.reset=function(){this.status("Model "+this.$a);this.h.A&&S(this);this.b=this.v=this.na=0;this.j=this.Da=this.qa;this.o=this.aa=-1;this.B=this.g=0;this.ha=this.j;this.l=0;this.c=this.pb;this.f=this.Ab;this.ia=null;Sb(this);this.h.error=!1;Pb.prototype.reset.call(this)};k.Ta=function(){return 0};
|
||||
k.save=function(){var a=new R(this);a.set(0,[this.b,this.v,this.na,this.j,this.aa,this.o,this.g,this.l,this.Da,this.ha,this.qa]);a.set(1,[]);a.set(2,[this.P,this.ea,this.h.J]);a.set(3,cc(this));a.set(4,Yb(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.v=b.next().value;this.na=b.next().value;this.j=b.next().value;this.aa=b.next().value;this.o=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Da=b.next().value;this.ha=b.next().value;this.qa=b.next().value;b=a[2];this.P=b[0];Vb(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Pa.length;d++){var e=this.Pa[d];if(e.xb===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.ia,this.ia=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=a[b];return!0};function dc(a){a.j=(a.j+-1)%I}function cc(a){var b=[];for(a=a.ia;a;)b.push(a.xb),a=a.next;return b}k.pb=function(a){var b=this.s;a=this.ha=a;return b.a[(a&b.g)>>>b.b].c(a&16383,a)};k.Ab=function(a,b){var c=this.s;a=this.ha=a;c.a[(a&c.g)>>>c.b].f(b,a&16383,a);return b};
|
||||
k.Ba=function(a){this.h.complete=!0;var b=a?this.h.La?0:1:-1;this.h.La=!1;this.L=this.N=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.ia||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.j(this.j,b)){S(this);break}if(0>b)break}this.l&=15;this.v&4194304?this.v=this.c(this.b):0<=this.aa?(this.v=this.na=this.c(this.aa),this.aa=-1):(this.v=this.na=this.c(this.Da=this.j),this.j=(this.j+1)%I);this.v&=8388607;this.b=this.v&262143;if(a=this.v>>18&15)this.b=this.b+this.c(a)&
|
||||
Va;a=this.v&4194304?-1:this.na/$a|0;0<=a&&this.bb(a)}while(0<this.N);return this.h.complete?this.L-this.N:!1===this.h.complete?-1:0};u(function(){for(var a=F(document,E,"cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new ac(d);D(d,c)}});function bc(a){ec[a>>4].call(this,a,a&15)}function W(a){this.a(a)}function fc(){var a=0,b=this.c(this.b),c=b/ab&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ab+(d<<24)+(b&16777215);a&&(b=(b+a)%O);this.f(this.b,b)}
|
||||
function gc(a,b){a=this.c(this.b);if(0>this.o)this.o=a,this.v=this.b|4194304;else{var c=this.o/ab&63,d=this.o>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.o=-1}}function hc(a,b){a=this.c(this.b);if(0>this.o)this.o=a,this.v=this.b|4194304,dc(this);else{var c=this.o/ab&63,d=this.o>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%O;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.b,a);this.o=-1}}function ic(a,b){this.f(b,this.c(this.b))}
|
||||
function jc(a,b){this.f(b,this.b)}function kc(a,b){this.f(this.b,this.c(b))}function lc(a,b){this.f(b,0)}function mc(a,b){this.f(b,N-this.c(b))}function nc(a,b){this.f(b,N)}function oc(a,b){var c=this.c(this.b),d=this.c(b);this.f(b,pc(a,d,c)+(c-(c&J)))}function qc(a,b){var c=this.c(b);this.f(b,pc(a,c,0))}function rc(a,b){b=this.c(b);var c=this.c(this.b);this.f(this.b,pc(a,c,b)+(b-(b&J)))}
|
||||
function sc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d-=d&J,a){case 256:d+=J;break;case 384:d+=c>P?J:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function tc(a,b){var c=(this.c(this.b)&J)*K,d=this.c(b);this.f(b,pc(a,d,c)+c)}function uc(a,b){var c=this.b*K,d=this.c(b);this.f(b,pc(a,d,c)+c)}function vc(a,b){b=(this.c(b)&J)*K;var c=this.c(this.b);this.f(this.b,pc(a,c,b)+b)}function wc(a,b){var c=this.c(this.b),d=(c&J)*K,c=pc(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}
|
||||
function xc(a,b){var c=this.c(this.b)&J,d=this.c(b);this.f(b,yc(a,d,c)+c)}function zc(a,b){var c=this.c(b);this.f(b,yc(a,c,this.b)+this.b)}function Ac(a,b){b=this.c(b)&J;var c=this.c(this.b);this.f(this.b,yc(a,c,b)+b)}function Bc(a,b){var c=this.c(this.b),d=c;if(a&=384)switch(d&=J,a){case 256:d+=J*K;break;case 384:d+=c>Wa?J*K:0}c=d;this.f(this.b,c);b&&this.f(b,c)}function Cc(a,b){var c=this.c(this.b)/K|0,d=this.c(b);this.f(b,yc(a,d,c)+c)}function Dc(a,b){var c=this.c(b);this.f(b,yc(a,c,0))}
|
||||
function Ec(a,b){b=this.c(b)/K|0;var c=this.c(this.b);this.f(this.b,yc(a,c,b)+b)}function Fc(a,b){var c=this.c(this.b),d=c/K|0,c=yc(a,c,d)+d;this.f(this.b,c);b&&this.f(b,c)}function X(a){Gc[a&7].call(this,a,a>>3&127)}function Hc(){}function V(a){this.M("undefined opcode: "+ja(a));dc(this);S(this)}function Ic(a){a>P&&(a!=Xa?a=Ya-a:this.g|=163840);return a}function Jc(a,b){var c=(a+b)%O;Kc.call(this,a,b,c);return c}function Y(a,b){return((a/Q|0)&(b/Q|0))*Q+((a&b)>>>0)}
|
||||
function Lc(a,b){return((a/Q|0)^(b/Q|0))*Q+((a^b)>>>0)}function Mc(a,b){return(~((a/Q|0)^(b/Q|0))&15)*Q+(~(a^b)>>>0)}function Z(a,b){return(a/Q|0|b/Q|0)*Q+((a|b)>>>0)}
|
||||
function Nc(a,b){var c=a,d=b;b=!1;var e;c>P&&(c=O-c,b=!b);d>P&&(d=O-d,b=!b);if(c<K&&d<K)a=c*d,e=0;else{a=c%K;c=Math.trunc(c/K);e=d%K;var d=Math.trunc(d/K),f=a*e,g=c*e+Math.trunc(f/K);e=Math.trunc(g/K);g=g%K+a*d;a=g*K+f%K;e+=Math.trunc(g/K)+c*d}b&&(a?(e=N-e,a=O-a):e&&(e=O-e));b=a;a=e;c=a-a%M;a=2*a%O+Math.trunc(b/M);b=c+b%M;e=a-a%M;c!=e&&(a=c+(a-e),this.g|=131072);this.B=b;return a}function Oc(a){a?a==Xa?this.g|=163840:a=Ya-a:this.g|=98304;return a}
|
||||
function Pc(a,b){var c=a-b;0>c&&(c+=O);Kc.call(this,c,b,a);return c}function Kc(a,b,c){a=Math.trunc(a/Za);b=Math.trunc(b/Za);c=Math.trunc(c/Za);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function yc(a,b,c){switch(a&384){case 0:b-=b&J;break;case 128:b=0;break;case 256:b=J*K;break;case 384:b=c>Wa?J*K:0}return b}function pc(a,b,c){switch(a&384){case 0:b&=J;break;case 128:b=0;break;case 256:b=J;break;case 384:b=c>P?J:0}return b}
|
||||
function Qc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=O&&(a[0]%=O,a[1]++)}function Rc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Sc(a){a[1]%2&&(a[0]+=O);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}
|
||||
var ec=[W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},fc,function(a,b){0>this.o&&fc.call(this);gc.call(this,0,b)},gc,function(a,b){0>this.o&&fc.call(this);hc.call(this,0,b)},hc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},ic,jc,kc,function(a,b){b&&this.f(b,this.c(this.b))},function(a,b){a=this.c(this.b);a=(a/K|0)+a%K*K;this.f(b,a)},function(a,b){this.f(b,this.b*K)},function(a,b){a=this.c(b);a=(a/K|0)+a%K*K;this.f(this.b,a)},function(a,b){a=this.c(this.b);a=(a/K|0)+a%K*K;this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,Oc.call(this,this.c(this.b)))},function(a,b){this.f(b,this.b?Ya-this.b:0)},function(a,b){this.f(this.b,
|
||||
Oc.call(this,this.c(b)))},function(a,b){a=Oc.call(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a,b){this.f(b,Ic.call(this,this.c(this.b)))},function(a,b){this.f(b,this.b)},function(a,b){this.f(this.b,Ic.call(this,this.c(b)))},function(a,b){a=Ic.call(this,this.c(this.b));this.f(this.b,a);b&&this.f(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,Nc.call(this,this.c(b),this.c(this.b)));this.f(b+1&15,this.B)},function(a,
|
||||
b){this.f(b,Nc.call(this,this.c(b),this.b));this.f(b+1&15,this.B)},function(a,b){this.f(this.b,Nc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Nc.call(this,this.c(b),this.c(this.b))));this.f(b+1&15,this.B)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){a=this.c(b);var c=this.c(b+1&15);var d=c,e=a,f=this.c(this.b),c=a=!1,g=e-e%M,d=d%M+e*M%O,e=this.B=g+Math.trunc(e/2);f>P&&(f=O-f,a=!a);e>P&&(d?(e=N-e,d=O-d):e&&
|
||||
(e=O-e),c=!0,a=!a);if(e>=f)this.g|=32,c=-1;else{for(var g=[0,0],h=[1,0],f=[f,0],e=[d,e];0<Rc(e,f);)Qc(f,f),Qc(h,h);do{if(0<=Rc(e,f)){var d=e,l=f;d[0]-=l[0];d[1]-=l[1];0>d[0]&&(d[0]+=O,d[1]--);Qc(g,h);if(!e[0]&&!e[1])break}Sc(f);Sc(h)}while(h[0]||h[1]);d=g[0];this.B=e[0];a&&d&&(d=O-d);c&&this.B&&(this.B=O-this.B);c=d}0>c||(this.f(b,c),this.f(b+1&15,this.B))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.c(b);var d=a>P?-(O-
|
||||
a):a;0<c?(35<=c?(d=0>d?M:0,c=L):(d=d*Math.pow(2,c)%M,c=M-Math.pow(2,35-c)),a<=P?a+c>P&&(this.g|=131072):a-c<=P&&(this.g|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+O:d;this.f(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%O+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%O:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a,b){a=0;var c=
|
||||
this.c(b);if(c){for(;c<M;)a++,c*=2;this.j=this.b%I}this.f(b+1&15,a)},function(a,b){if(a=(this.b<<14>>14)%256){var c,d=this.c(b),e=this.c(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<M||d>L&&d<N)this.g|=131072;if(71<=a){if(0<e&&e<M||e>L&&e<N)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%M,c=M-Math.pow(2,70-a),f<=P?e+c>P&&(this.g|=131072):e-c<=P&&(this.g|=131072);e=0;f>L&&(d+=M,e+=M)}else d=d*Math.pow(2,a)%M+Math.trunc(e%M/Math.pow(2,35-a)),e=e*Math.pow(2,a)%M,c=M-Math.pow(2,35-a),f<=P?f+c>P&&(this.g|=
|
||||
131072):(f-c<=P&&(this.g|=131072),d+=M,e+=M)}else-36>=a?(e=-72>=a?d>L?N:0:Math.trunc(d%M/Math.pow(2,-a-35)),d<=L?d=0:(d=N,e+=M)):(c=d>L?O-Math.pow(2,36+a):0,e=Math.trunc(e%M/Math.pow(2,-a))+d%M*Math.pow(2,35+a)%M,d=Math.trunc(d/Math.pow(2,-a))+c,d>L&&(e+=M));this.f(b,d);this.f(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%O+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%O+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,
|
||||
a-36)%O+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%O+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%O,d=0):(c=c*Math.pow(2,a)%O+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%O):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%O,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},V,function(a,
|
||||
b){a=this.c(b);this.f(b,this.c(this.b));this.f(this.b,a)},function(a,b){a=!1;for(var c=this.c(b),d=c/K|0,c=c&J;!a;)this.f(c,this.c(d)),c==this.b&&(a=!0),d=d+1&J,c=c+1&J,this.h.A||(this.f(b,d*K+c),a||dc(this),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,this.j=this.b%I)},function(){this.aa=this.b},V,function(a){this.a(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&J,this.c(this.b));a>=O&&(a-=O);a/K|0||(this.g|=262144);this.f(b,
|
||||
a)},function(a,b){a=this.c(b);var c=this.c(a&J);this.f(this.b,c);this.b==b&&(a=c);a-=262145;0>a&&(a+=O);(a/K|0)==J&&(this.g|=262144);this.f(b,a)},function(a){this.a(a)},function(){this.f(this.b,(this.g&J)*K+this.j);this.j=(this.b+1)%I},function(a,b){this.f(b,(this.g&J)*K+this.j);this.j=this.b%I},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.f(b,Jc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Jc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Jc.call(this,
|
||||
this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Jc.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Pc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Pc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Pc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Pc.call(this,this.c(b),this.c(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)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},lc,lc,function(){this.f(this.b,0)},function(a,b){this.f(this.b,this.f(b,0))},function(a,b){this.f(b,Y.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y.call(this,this.c(b),
|
||||
this.b))},function(a,b){this.f(this.b,Y.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y.call(this,N-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Y.call(this,N-this.c(b),this.b))},function(a,b){this.f(this.b,Y.call(this,N-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,N-this.c(b),this.c(this.b))))},ic,jc,Hc,ic,function(a,b){this.f(b,Y.call(this,this.c(b),N-this.c(this.b)))},
|
||||
function(a,b){this.f(b,Y.call(this,this.c(b),N-this.b))},function(a,b){this.f(this.b,Y.call(this,this.c(b),N-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,this.c(b),N-this.c(this.b))))},Hc,Hc,kc,kc,function(a,b){this.f(b,Lc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Lc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Lc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Lc.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,
|
||||
Z.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Z.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,this.c(b),this.c(this.b))))},function(a,b){this.f(b,Y.call(this,N-this.c(b),N-this.c(this.b)))},function(a,b){this.f(b,Y.call(this,N-this.c(b),N-this.b))},function(a,b){this.f(this.b,Y.call(this,N-this.c(b),N-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Y.call(this,N-this.c(b),N-
|
||||
this.c(this.b))))},function(a,b){this.f(b,Mc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(b,Mc.call(this,this.c(b),this.b))},function(a,b){this.f(this.b,Mc.call(this,this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Mc.call(this,this.c(b),this.c(this.b))))},mc,mc,function(a,b){this.f(this.b,N-this.c(b))},function(a,b){this.f(this.b,this.f(b,N-this.c(b)))},function(a,b){this.f(b,Z.call(this,N-this.c(b),this.c(this.b)))},function(a,b){this.f(b,Z.call(this,N-this.c(b),this.b))},
|
||||
function(a,b){this.f(this.b,Z.call(this,N-this.c(b),this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,N-this.c(b),this.c(this.b))))},function(a,b){this.f(b,N-this.c(this.b))},function(a,b){this.f(b,N-this.b)},function(){this.f(this.b,N-this.c(this.b))},function(a,b){this.f(this.b,this.f(b,N-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),N-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,this.c(b),N-this.b))},function(a,b){this.f(this.b,Z.call(this,this.c(b),N-
|
||||
this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,this.c(b),N-this.c(this.b))))},function(a,b){this.f(b,Z.call(this,N-this.c(b),N-this.c(this.b)))},function(a,b){this.f(b,Z.call(this,N-this.c(b),N-this.b))},function(a,b){this.f(this.b,Z.call(this,N-this.c(b),N-this.c(this.b)))},function(a,b){this.f(this.b,this.f(b,Z.call(this,N-this.c(b),N-this.c(this.b))))},nc,nc,function(){this.f(this.b,N)},function(a,b){this.f(this.b,this.f(b,N))},oc,qc,rc,sc,tc,uc,vc,wc,oc,qc,rc,sc,tc,uc,vc,wc,
|
||||
oc,qc,rc,sc,tc,uc,vc,wc,oc,qc,rc,sc,tc,uc,vc,wc,xc,zc,Ac,Bc,Cc,Dc,Ec,Fc,xc,zc,Ac,Bc,Cc,Dc,Ec,Fc,xc,zc,Ac,Bc,Cc,Dc,Ec,Fc,xc,zc,Ac,Bc,Cc,Dc,Ec,Fc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(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],Gc=[function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){switch(b){case 0:a=this.c(this.b);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.a(a)}},function(a,b){switch(b){case 0:a=0;this.g&131072&&(a|=8);this.g&
|
||||
262144&&(a|=65536);this.f(this.b,a);break;default:this.a(a)}},function(a){this.a(a)},function(a){this.a(a)}];
|
||||
function Tc(a){w.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.o=la(this.j);if(this.j){a=this.j;var b=ma(this.o);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(Ja(c.sa,a,b),(a=ta(a,b))?(c.a=a.H,c.O=a.O):c.j=null);Uc(c)})}}n(Tc,w);
|
||||
Tc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.w=d;Uc(this)};Tc.prototype.V=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Tc.prototype.R=function(){return!0};
|
||||
function Uc(a){if(!Ta(a)){if(a.j){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+ka(a.a.length,8,!0)+") does not match specified size ("+ka(a.g,8,!0)+")";a.h.error=!0;a.G(b)}else{b=a.l;if(Ab(a.s,b,a.g,Ib)){var c;for(c=0;c<a.a.length;c++)wb(a.s,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.s,g=d.g,h=[],l=d.l>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.s;
|
||||
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}}}G(a)}}u(function(){for(var a=F(document,E,"rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Tc(d);D(d,c)}});
|
||||
function Vc(a){w.call(this,"RAM",a);this.O=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.j=this.o=!1;this.a=a.file;this.l=la(this.a);if(this.a){a=this.a;var b=ma(this.l);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ja(c.sa,a,b),(a=ta(a,b))?(c.Y=a.Y,c.O=a.O,null==
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Wc(c)})}}n(Vc,w);Vc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.w=d;Wc(this)};Vc.prototype.V=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.b,this.g,this.O),delete this.O);b||this.reset();return!0};Vc.prototype.R=function(){return!0};
|
||||
function Wc(a){if(a.s&&(!a.j&&a.g&&(Ab(a.s,a.b,a.g,1)?a.j=!0:a.g=0),!Ta(a))){if(!a.j)t("No RAM allocated");else if(a.a){if(!a.Y)return;Xc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;G(a)}}
|
||||
Vc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,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,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-Xa&&(g+=O);for(var g=Math.trunc(Math.abs(g))%O,h=d;f--&&h<e.size;h++)e.g(g,d,e.ba+d);c-=16384;b++;d=0}this.Y&&Xc(this,this.Y,this.T,this.S,this.b,!this.w)}this.o=!1};
|
||||
function Xc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)wb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(S(a.i),f=!1),null!=d&&(a=a.i,a.qa=d,a.j=d%I,f?a.h.F?a.h.A||rb(a):a.h.J=!0:a.w&&a.h.F?S(a)||a.u.h.reset||(a.w.g(),T(a.u,-1)):!1===f&&S(a),!a.h.A&&a.pa&&a.pa.stop()));return g}u(function(){for(var a=F(document,E,"ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Vc(d);D(d,c)}});
|
||||
function Yc(a){w.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=Zc;b&&(void 0===c&&(c="Panel"),(c=B(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Ua,receiveData:this.za,receiveStatus:this.rb,setConnection:this.ub}}n(Yc,w);k=Yc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case Zc:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Oa:q.Za:46==c?b=q.Oa:a.ctrlKey&&c>=q.Na&&c<=q.ab&&(b=c-(q.Na-q.Wa));b&&(a.preventDefault&&a.preventDefault(),d.za(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ya&&(b=q.Xa);d.za(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.za(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.i=c;this.w=d;G(this)};
|
||||
k.Ua=function(a){if(!this.a){var b=Rb(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ra(c[0]);if(d!=this.ra)return;c=ra(c[1]);if(this.a=Na(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.sa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Ua(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new R(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.za=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.rb=function(){};k.ub=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var Zc="buffer";
|
||||
u(function(){for(var a=F(document,E,"serial"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Yc(d);D(d,c)}});
|
||||
function $c(a,b,c){w.call(this,"Computer",a);this.h.F=!1;this.L=null;ad(this,b);this.I=Rb(this,"autoPower",a,6);this.j=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.B=this.P=!1;this.v=this.l=null;this.N=this.K=!1;this.X=Rb(this,"url")||"";(Math.random()+.1).toString(36);this.b=bd(this);if(this.i=B("CPU",this.id)){this.w=B("Debugger",this.id);this.s=new xb({id:this.sa+".bus",busWidth:this.W},this.i,this.w);var d,e=z(this.id);if((this.g=B("Panel",this.id))&&this.g.ca)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.G=this.g.G,d.M=this.g.M,d.ca=this.g.ca;this.M(H+" 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.s,this.i,this.w);b=null;d=Rb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Rb(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.B=!0,this.a=cd),this.a&&(this.v=new R(this,"1.34.2"),dd(this.v)?b=null:delete this.v);!b&&this.a&&
|
||||
(b=ed(this))&&(this.B=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.o=null,g.B=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+ra(b):"")+")")):(g.C=b,g.P=!0);G(g)})}else G(this);this.m.power||(this.I=!0);!c&&this.I&&fd(this,this.oa)}else t("Unable to find CPU component")}n($c,w);function ad(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.L=b}
|
||||
function Rb(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.L&&(e=a.L[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 fd(a,b,c){for(var d=z(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ta(f)){Ta(f,function(){fd(a,b,c)});return}}b.call(a,c)}
|
||||
function gd(a,b){var c=new R(a,"1.34.2",hd);if(dd(c)&&id(c)){var d=c.get(jd),e=b?b.get(jd):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=$c.prototype;
|
||||
k.oa=function(a){void 0===a&&(a=this.a||(this.C?kd:cd));if(!this.j){this.j++;var b=!1,c=!1;this.K=!1;var d=this.v||new R(this,"1.34.2");if(a==ld)b=!0;else if(a>cd){if(dd(d,this.C)){this.l=new R(this,"1.34.2",md);dd(this.l)&&(nd(this,d),a=od,pd(this.l));this.l.set(jd,sa());qd(this.l);var e=this.a&&!this.B;if(a==kd||Ma("Click OK to restore the previous "+H+" machine state, or CANCEL to reset the machine.")){if(c=id(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?dd(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(rd,""),this.b=null)):this.M(f+": "+g),pd(d),dd(d)?(c=id(d),e=!0):c=!1))}e&&gd(this,c?d:null)}else a==od&&d.clear()}else gd(this);delete this.C;delete this.v}e=z(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.i&&(c=sd(this,g,d,b,c));b=[d,a,c];a!=ld?fd(this,this.Sa,b):this.Sa(b)}};
|
||||
function sd(a,b,c,d,e){if(!b.h.F){b.h.F=!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&&(t("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=cd,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Qa){var g=b.Qa.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){t("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
k.Sa=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.i&&(sd(this,this.i,b,c,a),T(this,-2),this.i.J());this.K&&(nd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.j=0};
|
||||
function nd(a,b){if(Ma("There may be a problem with your "+H+" machine.\n\nTo help us diagnose it, click OK to send this "+H+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=H;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function td(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new R(a,"1.34.2"),g=new R(a,"1.34.2",hd),h=sa();g.set(jd,h);f.set(jd,h);f.set(ud,"1.34.2");f.set(vd,window?window.location.href:null);f.set(wd,window?window.navigator.userAgent:"");a.i&&a.i.R&&(c&&(b&&(a.i.h.J=a.i.h.A),S(a.i)),d=a.i.R(b,c),"object"===typeof d&&f.set(a.i.id,d),c&&(a.i.h.F=!1,!1===d&&(e=null)));for(var h=z(a.id),l=0;l<h.length;l++){var p=h[l];p.h.F&&(p.R&&(d=p.R(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.h.F=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&xd(a,a.b,f.toString()),qd(g)&&qd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==yd),d&&f.clear(h)):e=f.toString());c&&(a.h.F=!1,b=a.m.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.i&&this.i.reset&&this.i.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.i&&c.reset&&c.reset()}this.h.reset=!1;T(this,-1)};
|
||||
k.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}T(this,-1)};k.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}T(this,-1)};
|
||||
function T(a,b){if(a.i){var c=a.i,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.h.A?c.W.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.i.h.A;d=!!(a.i.l&8);if(0>=b||60<=(a.B+=b)){e=a.i.j;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ja(e,void 0):ka(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.B=0}-1>b?a.b=a.i.j:0<b&&c&&!d&&(a.b=a.i.ha);jb(a,a.b);db(a,a.j)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.j||(d.h.F?td(d,!1,!0):fd(d,d.oa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.j)if(d.a&&!d.o){var a=Ma("Click OK to save changes to this "+H+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");td(d,a,!0);!a&&d.D?window&&window.location.reload():d.oa(cd)}else d.reset(),d.i&&!d.w&&d.i.J()},!0;case "save":if(na())c.parentNode.removeChild(c);else return this.m[b]=
|
||||
c,c.onclick=function(){var a=bd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=td(d,b);b?xd(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function bd(a,b){var c=a.b;c||((c=xa(rd),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=zd(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
|
||||
function zd(a,b){a.b=null;b=r(oa()+"/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(rd,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function ed(a){var b=null;a.b&&(b=oa()+"/api/v1/user?req=load&user="+a.b+"&state="+Ad(a,"1.34.2"));return b}
|
||||
function xd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ad(a,"1.34.2");d.data=c;b=r(oa()+"/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.G("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.G(c),ya(rd,""),a.b=null)}}
|
||||
var md="failsafe",hd="validate",jd="timestamp",ud="version",vd="url",wd="browser",rd="user",ld=-1,cd=0,kd=1,od=2,yd=3;u(function(){for(var a=F(document,E+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=F(c,E,"computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new $c(g,d,!0);D(g,f);g.I&&fd(g,g.oa)}});v.show.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.N&&!c.h.F&&c.oa(ld)}});
|
||||
v.exit.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=B("Computer",c.id))&&c.h.F&&td(c,!(!c.a||c.o),!0)}});function R(a,b,c){this.id=a.id;this.b="";this.a={};this.i=this.g=!1;this.key=Ad(a,b,c);pd(this,a.Va)}k=R.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 dd(a,b){return b?(a.b=b,a.i=!0,a.g=!1,!0):a.i?!0:va()&&(b=xa(a.key))?(a.b=b,a.i=!0):!1}
|
||||
function id(a){var b=!0;if(!a.g)try{a.a=JSON.parse(a.b),a.g=!0}catch(c){t(c.message||c),b=!1}return b}function qd(a){var b=!0;if(va()){var c=JSON.stringify(a.a);ya(a.key,c)||(t("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.b};function pd(a,b){a.b="";a.a={};a.i=a.g=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){pd(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 Ad(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 Bd=0;
|
||||
function Cd(a,b,c,d,e,f,g){f("Loading "+a+"...");r(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Dd(l,a,b,c,d,e,f,g)})}
|
||||
function Dd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(Ja(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(A){g=null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ed(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Ed(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,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,x=/( [a-z]+=)(['"])(.*?)\2/g;p=x.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);Ed(a,b,c)}})}else c(a,null)}
|
||||
function Fd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&F(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function g(a){f("Error: "+a);p&&(--Bd||Fa(!0));p=!1}var h,l,p=!0;Bd++;Ka[b]={};try{if(h=document.getElementById(b)){var x;if("object"==typeof resources&&(x=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],ua=document.createElement("style");ua.type="text/css";ua.styleSheet?ua.styleSheet.cssText=x:ua.appendChild(document.createTextNode(x));A.appendChild(ua)}d||
|
||||
(x=a,"pdp"==a.substr(0,3)&&(x="pdpjs"),d="/versions/"+x+"/1.34.2/components.xsl");x=function(e,l){l?Cd(d,null,a,null,!1,f,function(a,e){e?(Ja(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Bd||Fa(!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),--Bd||
|
||||
Fa(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Cd(c,b,a,e,!0,f,x):Dd(c,null,b,a,e,!1,f,x)}else g("missing machine element: "+b)}catch(Gd){g(Gd.message)}return p}window.embedPDP10=function(a,b,c,d){Fa(!1);return Fd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fa(!1);return Fd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return B(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Pa[a]){for(var c=!0,d=Pa,e=a,f=b.length,g=[],h=[],l="",p=null,x=0;x<f;x++){var A=b[x];if('"'==A||"'"==A)p&&A!=p?l+=A:(p?p=null:p=A,l&&(h.push(l),l=""));else{if(!p){if("\r"==A||"\n"==A)A=";";if(" "==A||"\t"==A||";"==A){l&&(h.push(l),l="");";"==A&&h.length&&(g.push(h),h=[]);continue}}l+=A}}l&&h.push(l);h.length&&g.push(h);d[e]=g;Oa(a)||(c=!1)}return c};window.enableEvents=Fa;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10.map
|
||||
k.restore=function(a){if(a=a[0])jb(this,this.b=a[0]),db(this,this.j=a[1]),kb(this,a[2]);return!0};k.wb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}hb(this);return!0};function lb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function gb(a,b){for(var c in a.l)lb(a,c,null!=b?b:a.l[c])}function mb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function hb(a){for(var b in a.a)mb(a,b,a.a[b][1])}
|
||||
k.ib=function(a,b,c){if(eb(this,b)){if(c){var d=this;setTimeout(function(){fb(d,b);a&&a()},+c);return!1}fb(this,b)}return!0};
|
||||
k.zb=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 kb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,mb(this,a,c[1]),!0):!1};k.Ab=function(a){return eb(this,a)?(fb(this,a),!0):!1};function eb(a,b){var c=a.a[b];return c?(mb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nb&&(a.K=b==ob,a.L=b==pb),!0):!1}function fb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(mb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.qb=function(a){a||this.i.h.B||(this.i.j=this.b%I,this.a[qb]&&this.a[qb][1]&&rb(this.i))};k.rb=function(){};k.lb=function(a){a||S(this.i)};k.jb=function(a){if(!a&&!this.i.h.B)if(this.a[qb]&&this.a[qb][1])rb(this.i);else{a=this.w;var b;if(b=a)a.h.za&&(a.h.Ma=!0),b=!a.h.za;if(b)Ua(a,!0),a.b(0,null),Ua(a,!1);else try{var c=this.i.Ea(1);0<c&&(sb(this.i,c),tb(this.i,c,!0),ub(this.i,c))}catch(d){"number"!=typeof d&&(c=this.i,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.u&&vb(this.u)}};
|
||||
k.kb=function(a){a&&!this.i.h.B&&(this.K&&wb(this),a=db(this,this.j=this.g),this.N==cb?xb(this.s,this.b,a):this.i.f(this.b,a))};k.mb=function(a){if(!a&&!this.i.h.B){this.L&&wb(this);if(this.N==cb){a=this.s;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.j++;b=c.m(b&16383,b);a.j--;a=b}else a=this.i.c(this.b);db(this,this.j=a)}};k.ob=function(a){a||this.i.h.B||jb(this,this.g)};k.nb=function(a){a?(this.o=!0,gb(this,!0)):(this.o=!1,gb(this),kb(this,0))};k.pb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function wb(a){var b=1,c=a.s.g;a.a[nb]&&a.a[nb][1]||(b=-b);jb(a,a.b&~c|a.b+b&c)}function jb(a,b){a.b=b&a.s.g;if(a.D!==a.b){a.D=a.b;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||lb(d,e,f)}}}function db(a,b){a.v=b%O;if(a.I!==a.v){a.I=a.v;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||lb(d,e,f)}}return a.v}function kb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;hb(a);return!0}k.stop=function(){jb(this,this.i.j)};
|
||||
function ib(){for(var a=F(document,E,"panel"),b=0;b<a.length;b++){var c=a[b],d=C(c),e=Na(d.id);e||(e=new bb(d,!0));D(e,c)}}var cb=7,ob="DEP",qb="ENABLE",pb="EXAM",nb="STEP";u(ib);function yb(a,b,c){w.call(this,"Bus",a);this.i=b;this.w=c;this.v=+a.busWidth||18;this.o=1<<this.v;this.g=this.o-1;this.b=Math.log2(16384);this.l=this.o/16384|0;this.j=0;this.a=[];a=new zb(this);Ab(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;G(this)}n(yb,w);k=yb.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.R=function(a){return a?this.save():!0};k.save=function(){var a=new R(this);a.set(0,Bb(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)){t("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Cb(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,q=16384-(e-l);q>f&&(q=f);if(h&&h.size){if(h.type==d){if(e+f<=h.ea)return h.Da+=h.ea-e,h.ea=e,!0;if(e>=h.ea+h.Da){q=h.size-(e-l);q>f&&(q=f);h.Da=e-h.ea+q;e=l+16384;f-=q;g++;continue}}return Db(Eb,e,f)}e=new zb(a,e,q,16384,d);Ab(e,h);a.a[g++]=e;e=l+16384;f-=q}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Fb[d]+" at "+ja(b)),!0):Db(Gb,b,c)}
|
||||
function xb(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.j++;d.g(c,b&16383,b);a.j--}function Bb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Na||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var q=e[g],x=g+1;x<e.length&&e[x]===q;)x++;l[h++]=x-g;l[h++]=q;g=x}l.length<e.length&&(e=l)}c[f]=e}}return c}function Db(a,b,c){t("Memory block error ("+a+": "+ka(b)+","+ka(c)+")");return!1}var Eb=1,Gb=2;function Hb(a){w.call(this,"Device",a)}n(Hb,w);k=Hb.prototype;
|
||||
k.Z=function(a,b,c,d){this.s=b;this.u=a;this.i=c;this.w=d;G(this)};k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new R(this)).data()};k.restore=function(){return!0};u(function(){for(var a=F(document,E,"device"),b=0;b<a.length;b++){var c,d=a[b];c=C(d);switch(c.type){case "default":c=new Hb(c),D(c,d)}}});
|
||||
function zb(a,b,c,d,e){this.u=a;this.id=Ib+=2;this.ea=b;this.Da=c;this.size=d||0;this.type=e||Jb;this.s=e==Kb;this.c=this.m=this.Oa;this.f=this.g=this.Qa;this.b=this.i=0;Ab(this);this.Na=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Lb(this,Mb)}else Lb(this)}k=zb.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Na=!0):!1};function Lb(a,b){b||(b=Nb);Ob(a,b,void 0);Pb(a,b,void 0)}
|
||||
function Ob(a,b,c){c&&a.b||(a.c=b[0]||a.Oa);if(c||void 0===c)a.m=b[0]||a.Oa}function Pb(a,b,c){c&&a.i||(a.f=!a.s&&b[1]||a.Qa);if(c||void 0===c)a.g=b[1]||a.Qa}function Ab(a,b){a.b=a.i=0;b&&((a.b=b.b)&&Ob(a,Qb,!1),(a.i=b.i)&&Pb(a,Qb,!1))}k.Oa=function(){var a=this.u;a.j||S(a.i);return-1};k.Qa=function(){};k.ub=function(a){return this.a[a]};k.Db=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Na=!0)};k.sb=function(a,b){return this.m(a,b)};k.Cb=function(a,b,c){this.s||this.g(a,b,c)};
|
||||
var Jb=0,Kb=2,Fb=["NONE","RAM","ROM"],Ib=0,Nb=[],Mb=[zb.prototype.ub,zb.prototype.Db],Qb=[zb.prototype.sb,zb.prototype.Cb];
|
||||
function Rb(a,b){w.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Fa=0;this.Ja=b;this.ia=c;this.Ha=Math.round(this.Ja/1E4)/100;this.ga=this.Ha*this.ia;this.Ia=this.pa=this.ja=this.ya=0;this.h.B=this.h.Pa=!1;this.h.J=a.autoStart;"string"==typeof this.h.J&&(this.h.J="true"==this.h.J);this.h.Aa=!1;this.wa=this.ha=0;this.xa=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.I=[];this.Va=this.xb.bind(this);this.P=this.D=this.L=this.N=this.C=this.ma=this.K=this.aa=this.Ka=this.W=0;this.sa=
|
||||
null;G(this)}n(Rb,w);k=Rb.prototype;k.Z=function(a,b,c,d){this.u=a;this.s=b;this.w=d;this.sa=a.g;for(a=0;a<Sb.length;a++)(b=this.m[Sb[a]])&&this.u.U(null,Sb[a],b);G(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=Tb(this.u,"autoStart");null!=c?this.h.J="true"==c?!0:"false"==c?!1:!!c:null==this.h.J&&(this.h.J=void 0===this.m.run);if(!b){if(a){Ub(this);if(!this.restore(a))return!1;Vb(this)}else this.reset();this.status("No debugger detected");this.h.J||this.M("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.h.B?!0:this.h.J?(rb(this),!0):!1};k.Xa=function(){return 0};
|
||||
function Vb(a){void 0===a.xa&&(a.xa=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.h.Aa=0<=a.xa&&0<a.na;a.h.Aa&&(a.wa=0,a.ha=a.xa-a.P)}function ub(a,b){if(a.h.Aa){var c=!1;a.wa=a.wa+a.Xa()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.na,c=!0);0<=a.oa&&a.oa<=Wb(a)&&(a.na=a.oa=-1,Vb(a),S(a),c=!0);c&&a.M(Wb(a)+" cycles: checksum="+ka(a.wa))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.F)a=!0;else{var b=null,c,h=z(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Ba?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?S(d):rb(d))},!0;case "speed":return this.m[b]=
|
||||
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){Xb(d,d.ia<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function tb(a,b,c){a.P+=b;c&&(a.L=a.N=0)}function Yb(a,b){var c=1;b&&1<a.ia&&a.W&&(c=a.W/a.Ha);a.Ia=Math.round(1E3/Zb);a.pa=Math.floor(a.Ja/Zb*c);b||(a.ja=a.pa);a.ya=0}function Wb(a){return a.P+a.D+a.L-a.N}function Ub(a){a.W=0;a.Ka=0;a.P=a.D=a.L=a.N=0;Vb(a);Xb(a,1)}
|
||||
function Xb(a,b,c){if(void 0!==b){.8>a.W/a.ga&&(b=1);a.ia=b;b=a.Ha*a.ia;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.fa&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.fa.focus(),window&&window.scrollTo(b,d)))}tb(a,a.D);a.D=0;a.C=La();a.K=0;Yb(a)}function $b(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
|
||||
function sb(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 ac(a,b){var c=a.L-=a.N;a.N=0;b&&(a.L=0);return c}
|
||||
k.xb=function(){if(this.h.B){this.ya>=this.Ja&&Yb(this,!0);this.aa=0;this.ma=La();if(this.K){var a=this.ma-this.K;a>this.Ia&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Aa?1:this.pa,d=this.I.length-1;0<=d;d--){var e=this.I[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ea(b)}catch(f){if("number"!=typeof f)throw f;}b=ac(this,!0);this.aa+=b;this.D+=b;ub(this,b);sb(this,b);this.ja-=b;if(0>=this.ja){this.ja+=this.pa;++this.Ka>=bc&&(this.u&&vb(this.u,void 0),this.Ka=0);break}}while(this.h.B)}catch(f){S(this);
|
||||
this.u&&this.u.stop(La(),Wb(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Va;this.K=La();c=this.Ia;this.aa&&(c=Math.round(c*this.aa/this.pa));c-=this.K-this.ma;if(d=this.K-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,Xb(this));if(0>c||this.W<this.ga)-1E3>c&&(this.C-=c),c=0;this.ya+=this.aa;this.K+=c;a(b,c)}}};
|
||||
function rb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{Xb(a);a.h.B=!0;a.h.Pa=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.C,Wb(a));a.w||a.status("Started");setTimeout(a.Va,0)}}k.Ea=function(){return 0};function S(a){var b=!1;if(a.h.B){ac(a);tb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(La(),Wb(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var Zb=30,bc=15,Sb=["power","reset"];
|
||||
function cc(a){var b=+a.model||1001;Rb.call(this,a,1E6);this.eb=b;this.ta=+a.addrReset||0;this.fb=dc.bind(this);this.b=T.bind(this);this.la=null;this.Ua=[];this.h.complete=!1}n(cc,Rb);k=cc.prototype;k.reset=function(){this.status("Model "+this.eb);this.h.B&&S(this);this.a=this.A=this.qa=0;this.j=this.Ga=this.ta;this.v=this.da=-1;this.o=this.g=0;this.La=[0,0];this.ba=[0,0];this.X=[0,0];this.ca=[0,0];this.ka=this.j;this.l=0;this.c=this.tb;this.f=this.Eb;this.la=null;Ub(this);this.h.error=!1;Rb.prototype.reset.call(this)};
|
||||
k.Xa=function(){return 0};k.save=function(){var a=new R(this);a.set(0,[this.a,this.A,this.qa,this.j,this.da,this.v,this.g,this.l,this.Ga,this.ka,this.ta]);a.set(1,[]);a.set(2,[this.P,this.ia,this.h.J]);a.set(3,ec(this));a.set(4,$b(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.a=b.next().value;this.A=b.next().value;this.qa=b.next().value;this.j=b.next().value;this.da=b.next().value;this.v=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ga=b.next().value;this.ka=b.next().value;this.ta=b.next().value;b=a[2];this.P=b[0];Xb(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ua.length;d++){var e=this.Ua[d];if(e.Bb===b[c]){d=e;break a}}d=
|
||||
null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=a[b];return!0};function ec(a){var b=[];for(a=a.la;a;)b.push(a.Bb),a=a.next;return b}k.tb=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.b].c(a&16383,a)};k.Eb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.b].f(b,a&16383,a);return b};
|
||||
k.Ea=function(a){this.h.complete=!0;var b=a?this.h.Pa?0:1:-1;this.h.Pa=!1;this.L=this.N=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.j(this.j,b)){S(this);break}if(0>b)break}this.l&=15;this.A&4194304?this.A=this.c(this.a):0<=this.da?(this.A=this.qa=this.c(this.da),this.da=-1):(this.A=this.qa=this.c(this.Ga=this.j),this.j=(this.j+1)%I);this.A&=8388607;this.a=this.A&262143;if(a=this.A>>18&15)this.a=this.a+this.c(a)&
|
||||
Va;a=this.A&4194304?-1:this.qa/$a|0;0<=a&&this.fb(a)}while(0<this.N);return this.h.complete?this.L-this.N:!1===this.h.complete?-1:0};u(function(){for(var a=F(document,E,"cpu"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new cc(d);D(d,c)}});function dc(a){fc[a>>4].call(this,a,a&15)}function U(a){this.b(a)}function gc(){var a=0,b=this.c(this.a),c=b/ab&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ab+(d<<24)+(b&16777215);a&&(b=(b+a)%O);this.f(this.a,b)}
|
||||
function hc(a,b){a=this.c(this.a);if(0>this.v)this.v=a,this.A=this.a|4194304;else{var c=this.v/ab&63,d=this.v>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.f(b,a);this.v=-1}}function ic(a,b){a=this.c(this.a);if(0>this.v)this.v=a,this.A=this.a|4194304;else{var c=this.v/ab&63,d=this.v>>24&63;b=this.c(b)%Math.pow(2,d)*Math.pow(2,c)%O;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.f(this.a,a);this.v=-1}}function jc(a,b){this.f(b,this.c(this.a))}
|
||||
function kc(a,b){this.f(b,this.a)}function lc(a,b){this.f(this.a,this.c(b))}function mc(a,b){this.f(b,0)}function nc(a,b){this.f(b,N-this.c(b))}function oc(a,b){this.f(b,N)}function pc(a,b){var c=this.c(this.a),d=this.c(b);this.f(b,qc(a,d,c)+(c-(c&J)))}function rc(a,b){var c=this.c(b);this.f(b,qc(a,c,0))}function sc(a,b){b=this.c(b);var c=this.c(this.a);this.f(this.a,qc(a,c,b)+(b-(b&J)))}
|
||||
function tc(a,b){var c=this.c(this.a),d=c;if(a&=384)switch(d-=d&J,a){case 256:d+=J;break;case 384:d+=c>P?J:0}c=d;this.f(this.a,c);b&&this.f(b,c)}function uc(a,b){var c=(this.c(this.a)&J)*K,d=this.c(b);this.f(b,qc(a,d,c)+c)}function vc(a,b){var c=this.a*K,d=this.c(b);this.f(b,qc(a,d,c)+c)}function wc(a,b){b=(this.c(b)&J)*K;var c=this.c(this.a);this.f(this.a,qc(a,c,b)+b)}function xc(a,b){var c=this.c(this.a),d=(c&J)*K,c=qc(a,c,d)+d;this.f(this.a,c);b&&this.f(b,c)}
|
||||
function yc(a,b){var c=this.c(this.a)&J,d=this.c(b);this.f(b,zc(a,d,c)+c)}function Ac(a,b){var c=this.c(b);this.f(b,zc(a,c,this.a)+this.a)}function Bc(a,b){b=this.c(b)&J;var c=this.c(this.a);this.f(this.a,zc(a,c,b)+b)}function Cc(a,b){var c=this.c(this.a),d=c;if(a&=384)switch(d&=J,a){case 256:d+=J*K;break;case 384:d+=c>Wa?J*K:0}c=d;this.f(this.a,c);b&&this.f(b,c)}function Dc(a,b){var c=this.c(this.a)/K|0,d=this.c(b);this.f(b,zc(a,d,c)+c)}function Ec(a,b){var c=this.c(b);this.f(b,zc(a,c,0))}
|
||||
function Fc(a,b){b=this.c(b)/K|0;var c=this.c(this.a);this.f(this.a,zc(a,c,b)+b)}function Gc(a,b){var c=this.c(this.a),d=c/K|0,c=zc(a,c,d)+d;this.f(this.a,c);b&&this.f(b,c)}function V(a){Hc[a&7].call(this,a,a>>3&127)}function Ic(){}function T(a){this.M("undefined opcode: "+ja(a));this.j=(this.j+-1)%I;S(this)}function Jc(a){a>P&&(a!=Xa?a=Ya-a:this.g|=163840);return a}function Kc(a,b){var c=(a+b)%O;Lc.call(this,a,b,c);return c}function W(a,b){return((a/Q|0)&(b/Q|0))*Q+((a&b)>>>0)}
|
||||
function X(a,b,c){var d=!1,e=!1,f=b-b%M;a=a%M+b*M%O;b=this.o=f+Math.trunc(b/2);c>P&&(c=O-c,d=!d);b>P&&(a?(b=N-b,a=O-a):b&&(b=O-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.La;f[0]=0;f[1]=0;f=this.ba;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ca;c[0]=a;for(c[1]=b;0<Mc(this.ca,this.X);)Nc(this.X,this.X),Nc(this.ba,this.ba);do{if(0<=Mc(this.ca,this.X)&&(b=this.ca,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=O,b[1]--),Nc(this.La,this.ba),Oc(this.ca)))break;Pc(this.X);Pc(this.ba)}while(!Oc(this.ba));
|
||||
a=this.La[0];this.o=this.ca[0];d&&a&&(a=O-a);e&&this.o&&(this.o=O-this.o);return a}function Qc(a,b){return((a/Q|0)^(b/Q|0))*Q+((a^b)>>>0)}function Rc(a,b){return(~((a/Q|0)^(b/Q|0))&15)*Q+(~(a^b)>>>0)}function Y(a,b){return(a/Q|0|b/Q|0)*Q+((a|b)>>>0)}
|
||||
function Z(a,b,c){var d=a,e=b;b=!1;var f;d>P&&(d=O-d,b=!b);e>P&&(e=O-e,b=!b);if(d<K&&e<K)a=d*e,f=0;else{a=d%K;d=Math.trunc(d/K);f=e%K;var e=Math.trunc(e/K),g=a*f,h=d*f+Math.trunc(g/K);f=Math.trunc(h/K);h=h%K+a*e;a=h*K+g%K;f+=Math.trunc(h/K)+d*e}b&&(a?(f=N-f,a=O-a):f&&(f=O-f));if(c)return(f||a>P)&&(f!=N||a<=P)&&(this.g|=131072),a;c=a;b=f;a=b-b%M;b=2*b%O+Math.trunc(c/M);c=a+c%M;d=b-b%M;a!=d&&(b=a+(b-d),this.g|=131072);this.o=c;return b}
|
||||
function Sc(a){a?a==Xa?this.g|=163840:a=Ya-a:this.g|=98304;return a}function Tc(a,b){var c=a-b;0>c&&(c+=O);Lc.call(this,c,b,a);return c}function Lc(a,b,c){a=Math.trunc(a/Za);b=Math.trunc(b/Za);c=Math.trunc(c/Za);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function zc(a,b,c){switch(a&384){case 0:b-=b&J;break;case 128:b=0;break;case 256:b=J*K;break;case 384:b=c>Wa?J*K:0}return b}
|
||||
function qc(a,b,c){switch(a&384){case 0:b&=J;break;case 128:b=0;break;case 256:b=J;break;case 384:b=c>P?J:0}return b}function Nc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=O&&(a[0]%=O,a[1]++)}function Mc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Pc(a){a[1]%2&&(a[0]+=O);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Oc(a){return!a[0]&&!a[1]}
|
||||
var fc=[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.b(a)},function(a){this.b(a)},function(a){this.b(a)},gc,function(a,b){0>this.v&&gc.call(this);hc.call(this,0,b)},hc,function(a,b){0>this.v&&gc.call(this);ic.call(this,0,b)},ic,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},jc,kc,lc,function(a,b){b&&this.f(b,this.c(this.a))},function(a,b){a=this.c(this.a);a=(a/K|0)+a%K*K;this.f(b,a)},function(a,b){this.f(b,this.a*K)},function(a,b){a=this.c(b);a=(a/K|0)+a%K*K;this.f(this.a,a)},function(a,b){a=this.c(this.a);a=(a/K|0)+a%K*K;this.f(this.a,a);b&&this.f(b,a)},function(a,b){this.f(b,Sc.call(this,this.c(this.a)))},function(a,b){this.f(b,Sc.call(this,this.a))},function(a,b){this.f(this.a,
|
||||
Sc.call(this,this.c(b)))},function(a,b){a=Sc.call(this,this.c(this.a));this.f(this.a,a);b&&this.f(b,a)},function(a,b){this.f(b,Jc.call(this,this.c(this.a)))},function(a,b){this.f(b,this.a)},function(a,b){this.f(this.a,Jc.call(this,this.c(b)))},function(a,b){a=Jc.call(this,this.c(this.a));this.f(this.a,a);b&&this.f(b,a)},function(a,b){this.f(b,Z.call(this,this.c(b),this.c(this.a),!0))},function(a,b){this.f(b,Z.call(this,this.c(b),this.a,!0))},function(a,b){this.f(this.a,Z.call(this,this.c(b),this.c(this.a),
|
||||
!0))},function(a,b){this.f(this.a,this.f(b,Z.call(this,this.c(b),this.c(this.a),!0)))},function(a,b){this.f(b,Z.call(this,this.c(b),this.c(this.a)));this.f(b+1&15,this.o)},function(a,b){this.f(b,Z.call(this,this.c(b),this.a));this.f(b+1&15,this.o)},function(a,b){this.f(this.a,Z.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Z.call(this,this.c(b),this.c(this.a))));this.f(b+1&15,this.o)},function(a,b){a=X.call(this,this.c(b),0,this.c(this.a));0>a||(this.f(b,a),this.f(b+1&
|
||||
15,this.o))},function(a,b){a=X.call(this,this.c(b),0,this.a);0>a||(this.f(b,a),this.f(b+1&15,this.o))},function(a,b){a=X.call(this,this.c(b),0,this.c(this.a));0>a||this.f(this.a,a)},function(a,b){a=X.call(this,this.c(b),0,this.c(this.a));0>a||this.f(b,this.f(this.a,a))},function(a,b){a=this.c(b);var c=this.c(b+1&15),c=X.call(this,c,a,this.c(this.a));0>c||(this.f(b,c),this.f(b+1&15,this.o))},function(a,b){a=this.c(b);var c=this.c(b+1&15),c=X.call(this,c,a,this.a);0>c||(this.f(b,c),this.f(b+1&15,this.o))},
|
||||
function(a,b){a=this.c(b);b=this.c(b+1&15);b=X.call(this,b,a,this.c(this.a));0>b||this.f(this.a,b)},function(a,b){a=this.c(b);var c=this.c(b+1&15),c=X.call(this,c,a,this.c(this.a));0>c||(this.f(b,this.f(this.a,c)),this.f(b+1&15,this.o))},function(a,b){var c=(this.a<<14>>14)%256;if(c){a=this.c(b);var d=a>P?-(O-a):a;0<c?(35<=c?(d=0>d?M:0,c=L):(d=d*Math.pow(2,c)%M,c=M-Math.pow(2,35-c)),a<=P?a+c>P&&(this.g|=131072):a-c<=P&&(this.g|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+O:d;this.f(b,
|
||||
a)}},function(a,b){if(a=(this.a<<14>>14)%36){var c=this.c(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%O+Math.trunc(c/Math.pow(2,36-a));this.f(b,c)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.c(b),c=0<a?36<=a?0:c*Math.pow(2,a)%O:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.f(b,c)}},function(a,b){a=0;var c=this.c(b);if(c){for(;c<M;)a++,c*=2;this.j=this.a%I}this.f(b+1&15,a)},function(a,b){if(a=(this.a<<14>>14)%256){var c,d=this.c(b),e=this.c(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<M||d>L&&d<N)this.g|=
|
||||
131072;if(71<=a){if(0<e&&e<M||e>L&&e<N)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%M,c=M-Math.pow(2,70-a),f<=P?e+c>P&&(this.g|=131072):e-c<=P&&(this.g|=131072);e=0;f>L&&(d+=M,e+=M)}else d=d*Math.pow(2,a)%M+Math.trunc(e%M/Math.pow(2,35-a)),e=e*Math.pow(2,a)%M,c=M-Math.pow(2,35-a),f<=P?f+c>P&&(this.g|=131072):(f-c<=P&&(this.g|=131072),d+=M,e+=M)}else-36>=a?(e=-72>=a?d>L?N:0:Math.trunc(d%M/Math.pow(2,-a-35)),d<=L?d=0:(d=N,e+=M)):(c=d>L?O-Math.pow(2,36+a):0,e=Math.trunc(e%M/Math.pow(2,-a))+d%M*Math.pow(2,
|
||||
35+a)%M,d=Math.trunc(d/Math.pow(2,-a))+c,d>L&&(e+=M));this.f(b,d);this.f(b+1&15,e)}},function(a,b){if(a=(this.a<<14>>14)%72){var c=this.c(b),d=this.c(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%O+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%O+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%O+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%O+Math.trunc(d/Math.pow(2,72-a)));this.f(b,c);this.f(b+1&15,d)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.c(b),d=this.c(b+1&15);0<
|
||||
a?36<=a?(c=72<=a?0:d*Math.pow(2,a-36)%O,d=0):(c=c*Math.pow(2,a)%O+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%O):-36>=a?(d=-72>=a?0:Math.trunc(c/Math.pow(2,-a-36)),c=0):(d=Math.trunc(d/Math.pow(2,-a))+c*Math.pow(2,36+a)%O,c=Math.trunc(c/Math.pow(2,-a)));this.f(b,c);this.f(b+1&15,d)}},T,function(a,b){a=this.c(b);this.f(b,this.c(this.a));this.f(this.a,a)},function(a,b){a=!1;for(var c=this.c(b),d=c/K|0,c=c&J;!a;)this.f(c,this.c(d)),c==this.a&&(a=!0),d=d+1&J,c=c+1&J,this.h.B||(this.f(b,d*K+c),a||
|
||||
(this.j=(this.j+-1)%I),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){a=b<<14;this.g&a&&(this.g&=~a,this.j=this.a%I)},function(){this.da=this.a},T,function(a){this.b(a)},function(a,b){a=this.c(b);a+=262145;this.f(a&J,this.c(this.a));a>=O&&(a-=O);a/K|0||(this.g|=262144);this.f(b,a)},function(a,b){a=this.c(b);var c=this.c(a&J);this.f(this.a,c);this.a==b&&(a=c);a-=262145;0>a&&(a+=O);(a/K|0)==J&&(this.g|=262144);this.f(b,a)},function(a){this.b(a)},function(){this.f(this.a,
|
||||
(this.g&J)*K+this.j);this.j=(this.a+1)%I},function(a,b){this.f(b,(this.g&J)*K+this.j);this.j=this.a%I},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.f(b,Kc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(b,Kc.call(this,this.c(b),this.a))},function(a,b){this.f(this.a,Kc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Kc.call(this,this.c(b),this.c(this.a))))},function(a,b){this.f(b,Tc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(b,
|
||||
Tc.call(this,this.c(b),this.a))},function(a,b){this.f(this.a,Tc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Tc.call(this,this.c(b),this.c(this.a))))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},mc,mc,function(){this.f(this.a,0)},function(a,b){this.f(this.a,this.f(b,0))},function(a,b){this.f(b,W.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(b,W.call(this,this.c(b),this.a))},function(a,b){this.f(this.a,W.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,W.call(this,this.c(b),this.c(this.a))))},function(a,b){this.f(b,
|
||||
W.call(this,N-this.c(b),this.c(this.a)))},function(a,b){this.f(b,W.call(this,N-this.c(b),this.a))},function(a,b){this.f(this.a,W.call(this,N-this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,W.call(this,N-this.c(b),this.c(this.a))))},jc,kc,Ic,jc,function(a,b){this.f(b,W.call(this,this.c(b),N-this.c(this.a)))},function(a,b){this.f(b,W.call(this,this.c(b),N-this.a))},function(a,b){this.f(this.a,W.call(this,this.c(b),N-this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,W.call(this,
|
||||
this.c(b),N-this.c(this.a))))},Ic,Ic,lc,lc,function(a,b){this.f(b,Qc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(b,Qc.call(this,this.c(b),this.a))},function(a,b){this.f(this.a,Qc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Qc.call(this,this.c(b),this.c(this.a))))},function(a,b){this.f(b,Y.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(b,Y.call(this,this.c(b),this.a))},function(a,b){this.f(this.a,Y.call(this,this.c(b),this.c(this.a)))},function(a,
|
||||
b){this.f(this.a,this.f(b,Y.call(this,this.c(b),this.c(this.a))))},function(a,b){this.f(b,W.call(this,N-this.c(b),N-this.c(this.a)))},function(a,b){this.f(b,W.call(this,N-this.c(b),N-this.a))},function(a,b){this.f(this.a,W.call(this,N-this.c(b),N-this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,W.call(this,N-this.c(b),N-this.c(this.a))))},function(a,b){this.f(b,Rc.call(this,this.c(b),this.c(this.a)))},function(a,b){this.f(b,Rc.call(this,this.c(b),this.a))},function(a,b){this.f(this.a,Rc.call(this,
|
||||
this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Rc.call(this,this.c(b),this.c(this.a))))},nc,nc,function(a,b){this.f(this.a,N-this.c(b))},function(a,b){this.f(this.a,this.f(b,N-this.c(b)))},function(a,b){this.f(b,Y.call(this,N-this.c(b),this.c(this.a)))},function(a,b){this.f(b,Y.call(this,N-this.c(b),this.a))},function(a,b){this.f(this.a,Y.call(this,N-this.c(b),this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Y.call(this,N-this.c(b),this.c(this.a))))},function(a,b){this.f(b,
|
||||
N-this.c(this.a))},function(a,b){this.f(b,N-this.a)},function(){this.f(this.a,N-this.c(this.a))},function(a,b){this.f(this.a,this.f(b,N-this.c(this.a)))},function(a,b){this.f(b,Y.call(this,this.c(b),N-this.c(this.a)))},function(a,b){this.f(b,Y.call(this,this.c(b),N-this.a))},function(a,b){this.f(this.a,Y.call(this,this.c(b),N-this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Y.call(this,this.c(b),N-this.c(this.a))))},function(a,b){this.f(b,Y.call(this,N-this.c(b),N-this.c(this.a)))},function(a,
|
||||
b){this.f(b,Y.call(this,N-this.c(b),N-this.a))},function(a,b){this.f(this.a,Y.call(this,N-this.c(b),N-this.c(this.a)))},function(a,b){this.f(this.a,this.f(b,Y.call(this,N-this.c(b),N-this.c(this.a))))},oc,oc,function(){this.f(this.a,N)},function(a,b){this.f(this.a,this.f(b,N))},pc,rc,sc,tc,uc,vc,wc,xc,pc,rc,sc,tc,uc,vc,wc,xc,pc,rc,sc,tc,uc,vc,wc,xc,pc,rc,sc,tc,uc,vc,wc,xc,yc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,yc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,yc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,yc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,
|
||||
V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V],Hc=[function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){switch(b){case 0:a=this.c(this.a);a&8&&(this.g&=-131073);a&131072&&(this.g&=-262145);break;default:this.b(a)}},function(a,b){switch(b){case 0:a=0;this.g&131072&&(a|=8);this.g&262144&&(a|=65536);this.f(this.a,a);break;default:this.b(a)}},function(a){this.b(a)},function(a){this.b(a)}];
|
||||
function Uc(a){w.call(this,"ROM",a);this.O=this.a=null;this.l=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.j=a.file;this.o=la(this.j);if(this.j){a=this.j;var b=ma(this.o);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(Ja(c.va,a,b),(a=ta(a,b))?(c.a=a.H,c.O=a.O):c.j=null);Vc(c)})}}n(Uc,w);
|
||||
Uc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.w=d;Vc(this)};Uc.prototype.V=function(){this.O&&(this.w&&this.w.a(this.id,this.l,this.g,this.O),delete this.O);return!0};Uc.prototype.R=function(){return!0};
|
||||
function Vc(a){if(!Ta(a)){if(a.j){if(!a.a||!a.s)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+ka(a.a.length,8,!0)+") does not match specified size ("+ka(a.g,8,!0)+")";a.h.error=!0;a.G(b)}else{b=a.l;if(Cb(a.s,b,a.g,Kb)){var c;for(c=0;c<a.a.length;c++)xb(a.s,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.s,g=d.g,h=[],l=d.l>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.s;
|
||||
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}}}G(a)}}u(function(){for(var a=F(document,E,"rom"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Uc(d);D(d,c)}});
|
||||
function Wc(a){w.call(this,"RAM",a);this.O=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.j=this.o=!1;this.a=a.file;this.l=la(this.a);if(this.a){a=this.a;var b=ma(this.l);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;r(a,null,!0,function(a,b,f){f?(c.G("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ja(c.va,a,b),(a=ta(a,b))?(c.Y=a.Y,c.O=a.O,null==
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);Xc(c)})}}n(Wc,w);Wc.prototype.Z=function(a,b,c,d){this.s=b;this.i=c;this.w=d;Xc(this)};Wc.prototype.V=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.b,this.g,this.O),delete this.O);b||this.reset();return!0};Wc.prototype.R=function(){return!0};
|
||||
function Xc(a){if(a.s&&(!a.j&&a.g&&(Cb(a.s,a.b,a.g,1)?a.j=!0:a.g=0),!Ta(a))){if(!a.j)t("No RAM allocated");else if(a.a){if(!a.Y)return;Yc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;G(a)}}
|
||||
Wc.prototype.reset=function(){if(this.j&&!this.o){for(var a=this.s,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,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-Xa&&(g+=O);for(var g=Math.trunc(Math.abs(g))%O,h=d;f--&&h<e.size;h++)e.g(g,d,e.ea+d);c-=16384;b++;d=0}this.Y&&Yc(this,this.Y,this.T,this.S,this.b,!this.w)}this.o=!1};
|
||||
function Yc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)xb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(S(a.i),f=!1),null!=d&&(a=a.i,a.ta=d,a.j=d%I,f?a.h.F?a.h.B||rb(a):a.h.J=!0:a.w&&a.h.F?S(a)||a.u.h.reset||(a.w.g(),vb(a.u,-1)):!1===f&&S(a),!a.h.B&&a.sa&&a.sa.stop()));return g}u(function(){for(var a=F(document,E,"ram"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Wc(d);D(d,c)}});
|
||||
function Zc(a){w.call(this,"SerialPort",a);this.j=a.upperCase;"string"==typeof this.j&&(this.j="true"==this.j);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=$c;b&&(void 0===c&&(c="Panel"),(c=A(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.Ya,receiveData:this.Ca,receiveStatus:this.vb,setConnection:this.yb}}n(Zc,w);k=Zc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case $c:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?p.Ta:p.bb:46==c?b=p.Ta:a.ctrlKey&&c>=p.Sa&&c<=p.cb&&(b=c-(p.Sa-p.Za));b&&(a.preventDefault&&a.preventDefault(),d.Ca(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==p.ab&&(b=p.$a);d.Ca(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.Ca(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.i=c;this.w=d;G(this)};
|
||||
k.Ya=function(a){if(!this.a){var b=Tb(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=ra(c[0]);if(d!=this.ua)return;c=ra(c[1]);if(this.a=Na(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.va+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Ya(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new R(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Ca=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.vb=function(){};k.yb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var $c="buffer";
|
||||
u(function(){for(var a=F(document,E,"serial"),b=0;b<a.length;b++){var c=a[b],d=C(c),d=new Zc(d);D(d,c)}});
|
||||
function ad(a,b,c){w.call(this,"Computer",a);this.h.F=!1;this.L=null;bd(this,b);this.I=Tb(this,"autoPower",a,6);this.j=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.v=this.l=null;this.N=this.K=!1;this.X=Tb(this,"url")||"";(Math.random()+.1).toString(36);this.b=cd(this);if(this.i=A("CPU",this.id)){this.w=A("Debugger",this.id);this.s=new yb({id:this.va+".bus",busWidth:this.W},this.i,this.w);var d,e=z(this.id);if((this.g=A("Panel",this.id))&&this.g.fa)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.G=this.g.G,d.M=this.g.M,d.fa=this.g.fa;this.M(H+" 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.s,this.i,this.w);b=null;d=Tb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Tb(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.A=!0,this.a=dd),this.a&&(this.v=new R(this,"1.34.2"),ed(this.v)?b=null:delete this.v);!b&&this.a&&
|
||||
(b=fd(this))&&(this.A=!0);if(b){var g=this;r(b,null,!0,function(a,b,c){c?(g.o=null,g.A=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+ra(b):"")+")")):(g.C=b,g.P=!0);G(g)})}else G(this);this.m.power||(this.I=!0);!c&&this.I&&gd(this,this.ra)}else t("Unable to find CPU component")}n(ad,w);function bd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.L=b}
|
||||
function Tb(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.L&&(e=a.L[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 gd(a,b,c){for(var d=z(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ta(f)){Ta(f,function(){gd(a,b,c)});return}}b.call(a,c)}
|
||||
function hd(a,b){var c=new R(a,"1.34.2",id);if(ed(c)&&jd(c)){var d=c.get(kd),e=b?b.get(kd):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=ad.prototype;
|
||||
k.ra=function(a){void 0===a&&(a=this.a||(this.C?ld:dd));if(!this.j){this.j++;var b=!1,c=!1;this.K=!1;var d=this.v||new R(this,"1.34.2");if(a==md)b=!0;else if(a>dd){if(ed(d,this.C)){this.l=new R(this,"1.34.2",nd);ed(this.l)&&(od(this,d),a=pd,qd(this.l));this.l.set(kd,sa());rd(this.l);var e=this.a&&!this.A;if(a==ld||Ma("Click OK to restore the previous "+H+" machine state, or CANCEL to reset the machine.")){if(c=jd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ed(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(sd,""),this.b=null)):this.M(f+": "+g),qd(d),ed(d)?(c=jd(d),e=!0):c=!1))}e&&hd(this,c?d:null)}else a==pd&&d.clear()}else hd(this);delete this.C;delete this.v}e=z(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.i&&(c=td(this,g,d,b,c));b=[d,a,c];a!=md?gd(this,this.Wa,b):this.Wa(b)}};
|
||||
function td(a,b,c,d,e){if(!b.h.F){b.h.F=!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&&(t("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=dd,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Ra){var g=b.Ra.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){t("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
k.Wa=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.i&&(td(this,this.i,b,c,a),vb(this,-2),this.i.J());this.K&&(od(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.j=0};
|
||||
function od(a,b){if(Ma("There may be a problem with your "+H+" machine.\n\nTo help us diagnose it, click OK to send this "+H+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=H;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;r("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function ud(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new R(a,"1.34.2"),g=new R(a,"1.34.2",id),h=sa();g.set(kd,h);f.set(kd,h);f.set(vd,"1.34.2");f.set(wd,window?window.location.href:null);f.set(xd,window?window.navigator.userAgent:"");a.i&&a.i.R&&(c&&(b&&(a.i.h.J=a.i.h.B),S(a.i)),d=a.i.R(b,c),"object"===typeof d&&f.set(a.i.id,d),c&&(a.i.h.F=!1,!1===d&&(e=null)));for(var h=z(a.id),l=0;l<h.length;l++){var q=h[l];q.h.F&&(q.R&&(d=q.R(b,c),"object"===typeof d&&f.set(q.id,d)),c&&(q.h.F=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&yd(a,a.b,f.toString()),rd(g)&&rd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==zd),d&&f.clear(h)):e=f.toString());c&&(a.h.F=!1,b=a.m.power)&&(b.textContent="Power");a.j=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.i&&this.i.reset&&this.i.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.i&&c.reset&&c.reset()}this.h.reset=!1;vb(this,-1)};
|
||||
k.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}vb(this,-1)};k.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}vb(this,-1)};
|
||||
function vb(a,b){if(a.i){var c=a.i,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Fa+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Fa=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.i.h.B;d=!!(a.i.l&8);if(0>=b||60<=(a.A+=b)){e=a.i.j;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ja(e,void 0):ka(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.b=a.i.j:0<b&&c&&!d&&(a.b=a.i.ka);jb(a,a.b);db(a,a.j)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.j||(d.h.F?ud(d,!1,!0):gd(d,d.ra))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.j)if(d.a&&!d.o){var a=Ma("Click OK to save changes to this "+H+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ud(d,a,!0);!a&&d.D?window&&window.location.reload():d.ra(dd)}else d.reset(),d.i&&!d.w&&d.i.J()},!0;case "save":if(na())c.parentNode.removeChild(c);else return this.m[b]=
|
||||
c,c.onclick=function(){var a=cd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=ud(d,b);b?yd(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function cd(a,b){var c=a.b;c||((c=xa(sd),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=Ad(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
|
||||
function Ad(a,b){a.b=null;b=r(oa()+"/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(sd,b.data),a.b=b.data)}catch(d){t(d.message+" ("+c+")")}return a.b}function fd(a){var b=null;a.b&&(b=oa()+"/api/v1/user?req=load&user="+a.b+"&state="+Bd(a,"1.34.2"));return b}
|
||||
function yd(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Bd(a,"1.34.2");d.data=c;b=r(oa()+"/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.G("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.G(c),ya(sd,""),a.b=null)}}
|
||||
var nd="failsafe",id="validate",kd="timestamp",vd="version",wd="url",xd="browser",sd="user",md=-1,dd=0,ld=1,pd=2,zd=3;u(function(){for(var a=F(document,E+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=C(c),c=F(c,E,"computer"),e=0;e<c.length;e++){var f=c[e],g=C(f),g=new ad(g,d,!0);D(g,f);g.I&&gd(g,g.ra)}});v.show.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=A("Computer",c.id))&&c.N&&!c.h.F&&c.ra(md)}});
|
||||
v.exit.push(function(){for(var a=F(document,E,"computer"),b=0;b<a.length;b++){var c=C(a[b]);(c=A("Computer",c.id))&&c.h.F&&ud(c,!(!c.a||c.o),!0)}});function R(a,b,c){this.id=a.id;this.b="";this.a={};this.i=this.g=!1;this.key=Bd(a,b,c);qd(this,a.gb)}k=R.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 ed(a,b){return b?(a.b=b,a.i=!0,a.g=!1,!0):a.i?!0:ua()&&(b=xa(a.key))?(a.b=b,a.i=!0):!1}
|
||||
function jd(a){var b=!0;if(!a.g)try{a.a=JSON.parse(a.b),a.g=!0}catch(c){t(c.message||c),b=!1}return b}function rd(a){var b=!0;if(ua()){var c=JSON.stringify(a.a);ya(a.key,c)||(t("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.b};function qd(a,b){a.b="";a.a={};a.i=a.g=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){qd(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 Bd(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 Cd=0;
|
||||
function Dd(a,b,c,d,e,f,g){f("Loading "+a+"...");r(a,null,!0,function(h,l,q){q?(l||(l="unable to load "+a+" ("+q+")"),g(l,null)):Ed(l,a,b,c,d,e,f,g)})}
|
||||
function Ed(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(Ja(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(B){g=null,a=B.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Fd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Fd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");r(e,null,!0,function(f,g,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],q,x=/( [a-z]+=)(['"])(.*?)\2/g;q=x.exec(f);)l=0>l.indexOf(q[1])?l.replace(">",q[0]+">"):l.replace(new RegExp(q[1]+"(['\"])(.*?)\\1"),q[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);Fd(a,b,c)}})}else c(a,null)}
|
||||
function Gd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&F(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function g(a){f("Error: "+a);q&&(--Cd||Fa(!0));q=!1}var h,l,q=!0;Cd++;Ka[b]={};try{if(h=document.getElementById(b)){var x;if("object"==typeof resources&&(x=resources.css)){var B=document.head||document.getElementsByTagName("head")[0],wa=document.createElement("style");wa.type="text/css";wa.styleSheet?wa.styleSheet.cssText=x:wa.appendChild(document.createTextNode(x));B.appendChild(wa)}d||
|
||||
(x=a,"pdp"==a.substr(0,3)&&(x="pdpjs"),d="/versions/"+x+"/1.34.2/components.xsl");x=function(e,l){l?Dd(d,null,a,null,!1,f,function(a,e){e?(Ja(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Cd||Fa(!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),--Cd||
|
||||
Fa(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Dd(c,b,a,e,!0,f,x):Ed(c,null,b,a,e,!1,f,x)}else g("missing machine element: "+b)}catch(Hd){g(Hd.message)}return q}window.embedPDP10=function(a,b,c,d){Fa(!1);return Gd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fa(!1);return Gd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return A(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Pa[a]){for(var c=!0,d=Pa,e=a,f=b.length,g=[],h=[],l="",q=null,x=0;x<f;x++){var B=b[x];if('"'==B||"'"==B)q&&B!=q?l+=B:(q?q=null:q=B,l&&(h.push(l),l=""));else{if(!q){if("\r"==B||"\n"==B)B=";";if(" "==B||"\t"==B||";"==B){l&&(h.push(l),l="");";"==B&&h.length&&(g.push(h),h=[]);continue}}l+=B}}l&&h.push(l);h.length&&g.push(h);d[e]=g;Oa(a)||(c=!1)}return c};window.enableEvents=Fa;window.sendEvent=Ha;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue