From a7b4321f53fe4e5a50e0f42d2d600017cc42f101 Mon Sep 17 00:00:00 2001 From: Jeff Date: Thu, 9 Mar 2017 15:37:26 -0800 Subject: [PATCH] Added all the PDP-10 logical testing/modification instructions --- modules/pdp10/lib/cpuops.js | 955 ++++++++++++++++------------- versions/pdpjs/1.34.2/pdp10-dbg.js | 440 ++++++------- versions/pdpjs/1.34.2/pdp10.js | 305 ++++----- 3 files changed, 893 insertions(+), 807 deletions(-) diff --git a/modules/pdp10/lib/cpuops.js b/modules/pdp10/lib/cpuops.js index a9a88e4b8..598179ce9 100644 --- a/modules/pdp10/lib/cpuops.js +++ b/modules/pdp10/lib/cpuops.js @@ -961,7 +961,7 @@ PDP10.opMOVES = function(op, acc) PDP10.opMOVS = function(op, acc) { var src = this.readWord(this.regEA); - src = ((src / PDP10.HALF_SHIFT)|0) + ((src % PDP10.HALF_SHIFT) * PDP10.HALF_SHIFT); + src = ((src / PDP10.HALF_SHIFT)|0) + ((src & PDP10.HALF_MASK) * PDP10.HALF_SHIFT); this.writeWord(acc, src); }; @@ -1003,7 +1003,7 @@ PDP10.opMOVSI = function(op, acc) PDP10.opMOVSM = function(op, acc) { var src = this.readWord(acc); - src = ((src / PDP10.HALF_SHIFT)|0) + ((src % PDP10.HALF_SHIFT) * PDP10.HALF_SHIFT); + src = ((src / PDP10.HALF_SHIFT)|0) + ((src & PDP10.HALF_MASK) * PDP10.HALF_SHIFT); this.writeWord(this.regEA, src); }; @@ -1024,7 +1024,7 @@ PDP10.opMOVSM = function(op, acc) PDP10.opMOVSS = function(op, acc) { var src = this.readWord(this.regEA); - src = ((src / PDP10.HALF_SHIFT)|0) + ((src % PDP10.HALF_SHIFT) * PDP10.HALF_SHIFT); + src = ((src / PDP10.HALF_SHIFT)|0) + ((src & PDP10.HALF_MASK) * PDP10.HALF_SHIFT); this.writeWord(this.regEA, src); if (acc) this.writeWord(acc, src) }; @@ -2662,7 +2662,7 @@ PDP10.opSUBB = function(op, acc) */ PDP10.opCAIL = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.regEA) < 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.regEA) < 0) this.setPC(this.regPC + 1); }; /** @@ -2679,7 +2679,7 @@ PDP10.opCAIL = function(op, acc) */ PDP10.opCAIE = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.regEA) == 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.regEA) == 0) this.setPC(this.regPC + 1); }; /** @@ -2696,7 +2696,7 @@ PDP10.opCAIE = function(op, acc) */ PDP10.opCAILE = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.regEA) <= 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.regEA) <= 0) this.setPC(this.regPC + 1); }; /** @@ -2731,7 +2731,7 @@ PDP10.opCAIA = function(op, acc) */ PDP10.opCAIGE = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.regEA) >= 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.regEA) >= 0) this.setPC(this.regPC + 1); }; /** @@ -2748,7 +2748,7 @@ PDP10.opCAIGE = function(op, acc) */ PDP10.opCAIN = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.regEA) != 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.regEA) != 0) this.setPC(this.regPC + 1); }; /** @@ -2765,7 +2765,7 @@ PDP10.opCAIN = function(op, acc) */ PDP10.opCAIG = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.regEA) > 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.regEA) > 0) this.setPC(this.regPC + 1); }; /** @@ -2783,7 +2783,7 @@ PDP10.opCAIG = function(op, acc) */ PDP10.opCAML = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.readWord(this.regEA)) < 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.readWord(this.regEA)) < 0) this.setPC(this.regPC + 1); }; /** @@ -2801,7 +2801,7 @@ PDP10.opCAML = function(op, acc) */ PDP10.opCAME = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.readWord(this.regEA)) == 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.readWord(this.regEA)) == 0) this.setPC(this.regPC + 1); }; /** @@ -2819,7 +2819,7 @@ PDP10.opCAME = function(op, acc) */ PDP10.opCAMLE = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.readWord(this.regEA)) <= 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.readWord(this.regEA)) <= 0) this.setPC(this.regPC + 1); }; /** @@ -2856,7 +2856,7 @@ PDP10.opCAMA = function(op, acc) */ PDP10.opCAMGE = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.readWord(this.regEA)) >= 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.readWord(this.regEA)) >= 0) this.setPC(this.regPC + 1); }; /** @@ -2874,7 +2874,7 @@ PDP10.opCAMGE = function(op, acc) */ PDP10.opCAMN = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.readWord(this.regEA)) != 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.readWord(this.regEA)) != 0) this.setPC(this.regPC + 1); }; /** @@ -2892,7 +2892,7 @@ PDP10.opCAMN = function(op, acc) */ PDP10.opCAMG = function(op, acc) { - if (PDP10.doCMP.call(this, this.readWord(acc), this.readWord(this.regEA)) > 0) this.setPC(this.regPC + 1); + if (PDP10.CMP(this.readWord(acc), this.readWord(this.regEA)) > 0) this.setPC(this.regPC + 1); }; /** @@ -2909,7 +2909,7 @@ PDP10.opCAMG = function(op, acc) */ PDP10.opJUMPL = function(op, acc) { - if (PDP10.doSGN.call(this, this.readWord(acc)) < 0) this.setPC(this.regEA); + if (PDP10.SIGN(this.readWord(acc)) < 0) this.setPC(this.regEA); }; /** @@ -2926,7 +2926,7 @@ PDP10.opJUMPL = function(op, acc) */ PDP10.opJUMPE = function(op, acc) { - if (PDP10.doSGN.call(this, this.readWord(acc)) == 0) this.setPC(this.regEA); + if (PDP10.SIGN(this.readWord(acc)) == 0) this.setPC(this.regEA); }; /** @@ -2943,7 +2943,7 @@ PDP10.opJUMPE = function(op, acc) */ PDP10.opJUMPLE = function(op, acc) { - if (PDP10.doSGN.call(this, this.readWord(acc)) <= 0) this.setPC(this.regEA); + if (PDP10.SIGN(this.readWord(acc)) <= 0) this.setPC(this.regEA); }; /** @@ -2977,7 +2977,7 @@ PDP10.opJUMPA = function(op, acc) */ PDP10.opJUMPGE = function(op, acc) { - if (PDP10.doSGN.call(this, this.readWord(acc)) >= 0) this.setPC(this.regEA); + if (PDP10.SIGN(this.readWord(acc)) >= 0) this.setPC(this.regEA); }; /** @@ -2994,7 +2994,7 @@ PDP10.opJUMPGE = function(op, acc) */ PDP10.opJUMPN = function(op, acc) { - if (PDP10.doSGN.call(this, this.readWord(acc)) != 0) this.setPC(this.regEA); + if (PDP10.SIGN(this.readWord(acc)) != 0) this.setPC(this.regEA); }; /** @@ -3011,7 +3011,7 @@ PDP10.opJUMPN = function(op, acc) */ PDP10.opJUMPG = function(op, acc) { - if (PDP10.doSGN.call(this, this.readWord(acc)) > 0) this.setPC(this.regEA); + if (PDP10.SIGN(this.readWord(acc)) > 0) this.setPC(this.regEA); }; /** @@ -3048,7 +3048,7 @@ PDP10.opSKIP = function(op, acc) PDP10.opSKIPL = function(op, acc) { var dst = this.readWord(this.regEA); - if (PDP10.doSGN.call(this, dst) < 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) < 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3068,7 +3068,7 @@ PDP10.opSKIPL = function(op, acc) PDP10.opSKIPE = function(op, acc) { var dst = this.readWord(this.regEA); - if (PDP10.doSGN.call(this, dst) == 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) == 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3088,7 +3088,7 @@ PDP10.opSKIPE = function(op, acc) PDP10.opSKIPLE = function(op, acc) { var dst = this.readWord(this.regEA); - if (PDP10.doSGN.call(this, dst) <= 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) <= 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3127,7 +3127,7 @@ PDP10.opSKIPA = function(op, acc) PDP10.opSKIPGE = function(op, acc) { var dst = this.readWord(this.regEA); - if (PDP10.doSGN.call(this, dst) >= 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) >= 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3147,7 +3147,7 @@ PDP10.opSKIPGE = function(op, acc) PDP10.opSKIPN = function(op, acc) { var dst = this.readWord(this.regEA); - if (PDP10.doSGN.call(this, dst) != 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) != 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3167,7 +3167,7 @@ PDP10.opSKIPN = function(op, acc) PDP10.opSKIPG = function(op, acc) { var dst = this.readWord(this.regEA); - if (PDP10.doSGN.call(this, dst) > 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) > 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3207,7 +3207,7 @@ PDP10.opAOJ = function(op, acc) PDP10.opAOJL = function(op, acc) { var dst = this.writeWord(acc, PDP10.doADD.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) < 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) < 0) this.setPC(this.regEA); }; /** @@ -3227,7 +3227,7 @@ PDP10.opAOJL = function(op, acc) PDP10.opAOJE = function(op, acc) { var dst = this.writeWord(acc, PDP10.doADD.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) == 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) == 0) this.setPC(this.regEA); }; /** @@ -3247,7 +3247,7 @@ PDP10.opAOJE = function(op, acc) PDP10.opAOJLE = function(op, acc) { var dst = this.writeWord(acc, PDP10.doADD.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) <= 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) <= 0) this.setPC(this.regEA); }; /** @@ -3287,7 +3287,7 @@ PDP10.opAOJA = function(op, acc) PDP10.opAOJGE = function(op, acc) { var dst = this.writeWord(acc, PDP10.doADD.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) >= 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) >= 0) this.setPC(this.regEA); }; /** @@ -3307,7 +3307,7 @@ PDP10.opAOJGE = function(op, acc) PDP10.opAOJN = function(op, acc) { var dst = this.writeWord(acc, PDP10.doADD.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) != 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) != 0) this.setPC(this.regEA); }; /** @@ -3327,7 +3327,7 @@ PDP10.opAOJN = function(op, acc) PDP10.opAOJG = function(op, acc) { var dst = this.writeWord(acc, PDP10.doADD.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) > 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) > 0) this.setPC(this.regEA); }; /** @@ -3367,7 +3367,7 @@ PDP10.opAOS = function(op, acc) PDP10.opAOSL = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doADD.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) < 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) < 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3388,7 +3388,7 @@ PDP10.opAOSL = function(op, acc) PDP10.opAOSE = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doADD.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) == 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) == 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3409,7 +3409,7 @@ PDP10.opAOSE = function(op, acc) PDP10.opAOSLE = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doADD.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) <= 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) <= 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3451,7 +3451,7 @@ PDP10.opAOSA = function(op, acc) PDP10.opAOSGE = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doADD.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) >= 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) >= 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3472,7 +3472,7 @@ PDP10.opAOSGE = function(op, acc) PDP10.opAOSN = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doADD.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) != 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) != 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3493,7 +3493,7 @@ PDP10.opAOSN = function(op, acc) PDP10.opAOSG = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doADD.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) > 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) > 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3533,7 +3533,7 @@ PDP10.opSOJ = function(op, acc) PDP10.opSOJL = function(op, acc) { var dst = this.writeWord(acc, PDP10.doSUB.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) < 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) < 0) this.setPC(this.regEA); }; /** @@ -3553,7 +3553,7 @@ PDP10.opSOJL = function(op, acc) PDP10.opSOJE = function(op, acc) { var dst = this.writeWord(acc, PDP10.doSUB.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) == 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) == 0) this.setPC(this.regEA); }; /** @@ -3573,7 +3573,7 @@ PDP10.opSOJE = function(op, acc) PDP10.opSOJLE = function(op, acc) { var dst = this.writeWord(acc, PDP10.doSUB.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) <= 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) <= 0) this.setPC(this.regEA); }; /** @@ -3613,7 +3613,7 @@ PDP10.opSOJA = function(op, acc) PDP10.opSOJGE = function(op, acc) { var dst = this.writeWord(acc, PDP10.doSUB.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) >= 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) >= 0) this.setPC(this.regEA); }; /** @@ -3633,7 +3633,7 @@ PDP10.opSOJGE = function(op, acc) PDP10.opSOJN = function(op, acc) { var dst = this.writeWord(acc, PDP10.doSUB.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) != 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) != 0) this.setPC(this.regEA); }; /** @@ -3653,7 +3653,7 @@ PDP10.opSOJN = function(op, acc) PDP10.opSOJG = function(op, acc) { var dst = this.writeWord(acc, PDP10.doSUB.call(this, this.readWord(acc), 1)); - if (PDP10.doSGN.call(this, dst) > 0) this.setPC(this.regEA); + if (PDP10.SIGN(dst) > 0) this.setPC(this.regEA); }; /** @@ -3693,7 +3693,7 @@ PDP10.opSOS = function(op, acc) PDP10.opSOSL = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doSUB.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) < 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) < 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3714,7 +3714,7 @@ PDP10.opSOSL = function(op, acc) PDP10.opSOSE = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doSUB.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) == 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) == 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3735,7 +3735,7 @@ PDP10.opSOSE = function(op, acc) PDP10.opSOSLE = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doSUB.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) <= 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) <= 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3777,7 +3777,7 @@ PDP10.opSOSA = function(op, acc) PDP10.opSOSGE = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doSUB.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) >= 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) >= 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3798,7 +3798,7 @@ PDP10.opSOSGE = function(op, acc) PDP10.opSOSN = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doSUB.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) != 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) != 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3819,7 +3819,7 @@ PDP10.opSOSN = function(op, acc) PDP10.opSOSG = function(op, acc) { var dst = this.writeWord(this.regEA, PDP10.doSUB.call(this, this.readWord(this.regEA), 1)); - if (PDP10.doSGN.call(this, dst) > 0) this.setPC(this.regPC + 1); + if (PDP10.SIGN(dst) > 0) this.setPC(this.regPC + 1); if (acc) this.writeWord(acc, dst); }; @@ -3885,7 +3885,7 @@ PDP10.opSETZB = function(op, acc) */ PDP10.opAND = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(acc, PDP10.AND(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -3901,7 +3901,7 @@ PDP10.opAND = function(op, acc) */ PDP10.opANDI = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, this.readWord(acc), this.regEA)); + this.writeWord(acc, PDP10.AND(this.readWord(acc), this.regEA)); }; /** @@ -3917,7 +3917,7 @@ PDP10.opANDI = function(op, acc) */ PDP10.opANDM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doAND.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.AND(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -3934,7 +3934,7 @@ PDP10.opANDM = function(op, acc) */ PDP10.opANDB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doAND.call(this, this.readWord(acc), this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.AND(this.readWord(acc), this.readWord(this.regEA)))); }; /** @@ -3951,7 +3951,7 @@ PDP10.opANDB = function(op, acc) */ PDP10.opANDCA = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(acc, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -3968,7 +3968,7 @@ PDP10.opANDCA = function(op, acc) */ PDP10.opANDCAI = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), this.regEA)); + this.writeWord(acc, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), this.regEA)); }; /** @@ -3985,7 +3985,7 @@ PDP10.opANDCAI = function(op, acc) */ PDP10.opANDCAM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4002,7 +4002,7 @@ PDP10.opANDCAM = function(op, acc) */ PDP10.opANDCAB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA)))); }; /** @@ -4019,7 +4019,7 @@ PDP10.opANDCAB = function(op, acc) */ PDP10.opANDCM = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(acc, PDP10.AND(this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4036,7 +4036,7 @@ PDP10.opANDCM = function(op, acc) */ PDP10.opANDCMI = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, this.readWord(acc), PDP10.WORD_MASK - this.regEA)); + this.writeWord(acc, PDP10.AND(this.readWord(acc), PDP10.WORD_MASK - this.regEA)); }; /** @@ -4053,7 +4053,7 @@ PDP10.opANDCMI = function(op, acc) */ PDP10.opANDCMM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doAND.call(this, this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.AND(this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4070,7 +4070,7 @@ PDP10.opANDCMM = function(op, acc) */ PDP10.opANDCMB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doAND.call(this, this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.AND(this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); }; /** @@ -4087,7 +4087,7 @@ PDP10.opANDCMB = function(op, acc) */ PDP10.opXOR = function(op, acc) { - this.writeWord(acc, PDP10.doEOR.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4104,7 +4104,7 @@ PDP10.opXOR = function(op, acc) */ PDP10.opXORI = function(op, acc) { - this.writeWord(acc, PDP10.doEOR.call(this, this.readWord(acc), this.regEA)); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.regEA)); }; /** @@ -4121,7 +4121,7 @@ PDP10.opXORI = function(op, acc) */ PDP10.opXORM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doEOR.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.XOR(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4138,7 +4138,7 @@ PDP10.opXORM = function(op, acc) */ PDP10.opXORB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doEOR.call(this, this.readWord(acc), this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.readWord(this.regEA)))); }; /** @@ -4155,7 +4155,7 @@ PDP10.opXORB = function(op, acc) */ PDP10.opIOR = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4172,7 +4172,7 @@ PDP10.opIOR = function(op, acc) */ PDP10.opIORI = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, this.readWord(acc), this.regEA)); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.regEA)); }; /** @@ -4189,7 +4189,7 @@ PDP10.opIORI = function(op, acc) */ PDP10.opIORM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doIOR.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.IOR(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4206,7 +4206,7 @@ PDP10.opIORM = function(op, acc) */ PDP10.opIORB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doIOR.call(this, this.readWord(acc), this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.readWord(this.regEA)))); }; /** @@ -4223,7 +4223,7 @@ PDP10.opIORB = function(op, acc) */ PDP10.opANDCB = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(acc, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4240,7 +4240,7 @@ PDP10.opANDCB = function(op, acc) */ PDP10.opANDCBI = function(op, acc) { - this.writeWord(acc, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.regEA)); + this.writeWord(acc, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.regEA)); }; /** @@ -4257,7 +4257,7 @@ PDP10.opANDCBI = function(op, acc) */ PDP10.opANDCBM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4274,7 +4274,7 @@ PDP10.opANDCBM = function(op, acc) */ PDP10.opANDCBB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doAND.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.AND(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); }; /** @@ -4291,7 +4291,7 @@ PDP10.opANDCBB = function(op, acc) */ PDP10.opEQV = function(op, acc) { - this.writeWord(acc, PDP10.doEQV.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(acc, PDP10.EQV(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4308,7 +4308,7 @@ PDP10.opEQV = function(op, acc) */ PDP10.opEQVI = function(op, acc) { - this.writeWord(acc, PDP10.doEQV.call(this, this.readWord(acc), this.regEA)); + this.writeWord(acc, PDP10.EQV(this.readWord(acc), this.regEA)); }; /** @@ -4325,7 +4325,7 @@ PDP10.opEQVI = function(op, acc) */ PDP10.opEQVM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doEQV.call(this, this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.EQV(this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4342,7 +4342,7 @@ PDP10.opEQVM = function(op, acc) */ PDP10.opEQVB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doEQV.call(this, this.readWord(acc), this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.EQV(this.readWord(acc), this.readWord(this.regEA)))); }; /** @@ -4408,7 +4408,7 @@ PDP10.opSETCAB = function(op, acc) */ PDP10.opORCA = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(acc, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4425,7 +4425,7 @@ PDP10.opORCA = function(op, acc) */ PDP10.opORCAI = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), this.regEA)); + this.writeWord(acc, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), this.regEA)); }; /** @@ -4442,7 +4442,7 @@ PDP10.opORCAI = function(op, acc) */ PDP10.opORCAM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA))); }; /** @@ -4459,7 +4459,7 @@ PDP10.opORCAM = function(op, acc) */ PDP10.opORCAB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), this.readWord(this.regEA)))); }; /** @@ -4544,7 +4544,7 @@ PDP10.opSETCMB = function(op, acc) */ PDP10.opORCM = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4561,7 +4561,7 @@ PDP10.opORCM = function(op, acc) */ PDP10.opORCMI = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, this.readWord(acc), PDP10.WORD_MASK - this.regEA)); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), PDP10.WORD_MASK - this.regEA)); }; /** @@ -4578,7 +4578,7 @@ PDP10.opORCMI = function(op, acc) */ PDP10.opORCMM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doIOR.call(this, this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.IOR(this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4595,7 +4595,7 @@ PDP10.opORCMM = function(op, acc) */ PDP10.opORCMB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doIOR.call(this, this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.IOR(this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); }; /** @@ -4612,7 +4612,7 @@ PDP10.opORCMB = function(op, acc) */ PDP10.opORCB = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(acc, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4629,7 +4629,7 @@ PDP10.opORCB = function(op, acc) */ PDP10.opORCBI = function(op, acc) { - this.writeWord(acc, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.regEA)); + this.writeWord(acc, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.regEA)); }; /** @@ -4646,7 +4646,7 @@ PDP10.opORCBI = function(op, acc) */ PDP10.opORCBM = function(op, acc) { - this.writeWord(this.regEA, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); + this.writeWord(this.regEA, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA))); }; /** @@ -4663,7 +4663,7 @@ PDP10.opORCBM = function(op, acc) */ PDP10.opORCBB = function(op, acc) { - this.writeWord(this.regEA, this.writeWord(acc, PDP10.doIOR.call(this, PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); + this.writeWord(this.regEA, this.writeWord(acc, PDP10.IOR(PDP10.WORD_MASK - this.readWord(acc), PDP10.WORD_MASK - this.readWord(this.regEA)))); }; /** @@ -4733,7 +4733,7 @@ PDP10.opHLL = function(op, acc) { var src = this.readWord(this.regEA); var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHR(op, dst, src) + (src - (src & PDP10.HALF_MASK))); + this.writeWord(acc, PDP10.GETHR(op, dst, src) + (src - (src & PDP10.HALF_MASK))); }; /** @@ -4756,7 +4756,7 @@ PDP10.opHLL = function(op, acc) PDP10.opHLLI = function(op, acc) { var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHR(op, dst, 0)); + this.writeWord(acc, PDP10.GETHR(op, dst, 0)); }; /** @@ -4777,7 +4777,7 @@ PDP10.opHLLM = function(op, acc) { var src = this.readWord(acc); var dst = this.readWord(this.regEA); - this.writeWord(this.regEA, PDP10.getHR(op, dst, src) + (src - (src & PDP10.HALF_MASK))); + this.writeWord(this.regEA, PDP10.GETHR(op, dst, src) + (src - (src & PDP10.HALF_MASK))); }; /** @@ -4799,7 +4799,7 @@ PDP10.opHLLM = function(op, acc) PDP10.opHLLS = function(op, acc) { var dst = this.readWord(this.regEA); - dst = PDP10.setHR(op, dst, dst); + dst = PDP10.SETHR(op, dst, dst); this.writeWord(this.regEA, dst); if (acc) this.writeWord(acc, dst); }; @@ -4823,7 +4823,7 @@ PDP10.opHRL = function(op, acc) { var src = (this.readWord(this.regEA) & PDP10.HALF_MASK) * PDP10.HALF_SHIFT; var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHR(op, dst, src) + src); + this.writeWord(acc, PDP10.GETHR(op, dst, src) + src); }; /** @@ -4845,7 +4845,7 @@ PDP10.opHRLI = function(op, acc) { var src = this.regEA * PDP10.HALF_SHIFT; var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHR(op, dst, src) + src); + this.writeWord(acc, PDP10.GETHR(op, dst, src) + src); }; /** @@ -4867,7 +4867,7 @@ PDP10.opHRLM = function(op, acc) { var src = (this.readWord(acc) & PDP10.HALF_MASK) * PDP10.HALF_SHIFT; var dst = this.readWord(this.regEA); - this.writeWord(this.regEA, PDP10.getHR(op, dst, src) + src); + this.writeWord(this.regEA, PDP10.GETHR(op, dst, src) + src); }; /** @@ -4889,7 +4889,7 @@ PDP10.opHRLS = function(op, acc) { var dst = this.readWord(this.regEA); var src = (dst & PDP10.HALF_MASK) * PDP10.HALF_SHIFT; - dst = PDP10.getHR(op, dst, src) + src; + dst = PDP10.GETHR(op, dst, src) + src; this.writeWord(this.regEA, dst); if (acc) this.writeWord(acc, dst); }; @@ -4913,7 +4913,7 @@ PDP10.opHRR = function(op, acc) { var src = this.readWord(this.regEA) & PDP10.HALF_MASK; var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHL(op, dst, src) + src); + this.writeWord(acc, PDP10.GETHL(op, dst, src) + src); }; /** @@ -4934,7 +4934,7 @@ PDP10.opHRR = function(op, acc) PDP10.opHRRI = function(op, acc) { var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHL(op, dst, this.regEA) + this.regEA); + this.writeWord(acc, PDP10.GETHL(op, dst, this.regEA) + this.regEA); }; /** @@ -4956,7 +4956,7 @@ PDP10.opHRRM = function(op, acc) { var src = this.readWord(acc) & PDP10.HALF_MASK; var dst = this.readWord(this.regEA); - this.writeWord(this.regEA, PDP10.getHL(op, dst, src) + src); + this.writeWord(this.regEA, PDP10.GETHL(op, dst, src) + src); }; /** @@ -4979,7 +4979,7 @@ PDP10.opHRRM = function(op, acc) PDP10.opHRRS = function(op, acc) { var dst = this.readWord(this.regEA); - dst = PDP10.setHL(op, dst, dst); + dst = PDP10.SETHL(op, dst, dst); this.writeWord(this.regEA, dst); if (acc) this.writeWord(acc, dst); }; @@ -5002,7 +5002,7 @@ PDP10.opHLR = function(op, acc) { var src = (this.readWord(this.regEA) / PDP10.HALF_SHIFT)|0; var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHL(op, dst, src) + src); + this.writeWord(acc, PDP10.GETHL(op, dst, src) + src); }; /** @@ -5024,7 +5024,7 @@ PDP10.opHLR = function(op, acc) PDP10.opHLRI = function(op, acc) { var dst = this.readWord(acc); - this.writeWord(acc, PDP10.getHL(op, dst, 0)); + this.writeWord(acc, PDP10.GETHL(op, dst, 0)); }; /** @@ -5045,7 +5045,7 @@ PDP10.opHLRM = function(op, acc) { var src = (this.readWord(acc) / PDP10.HALF_SHIFT)|0; var dst = this.readWord(this.regEA); - this.writeWord(this.regEA, PDP10.getHL(op, dst, src) + src); + this.writeWord(this.regEA, PDP10.GETHL(op, dst, src) + src); }; /** @@ -5066,37 +5066,13 @@ PDP10.opHLRS = function(op, acc) { var dst = this.readWord(this.regEA); var src = (dst / PDP10.HALF_SHIFT)|0; - dst = PDP10.getHL(op, dst, src) + src; + dst = PDP10.GETHL(op, dst, src) + src; this.writeWord(this.regEA, dst); if (acc) this.writeWord(acc, dst); }; /** - * opTRN(0o600000) - * - * @this {CPUStatePDP10} - * @param {number} op - * @param {number} acc - */ -PDP10.opTRN = function(op, acc) -{ - this.opUndefined(op); -}; - -/** - * opTLN(0o601000) - * - * @this {CPUStatePDP10} - * @param {number} op - * @param {number} acc - */ -PDP10.opTLN = function(op, acc) -{ - this.opUndefined(op); -}; - -/** - * opTRNE(0o602000) + * opTRNE(0o602000): Test Right, No Modification, and Skip if All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5104,11 +5080,11 @@ PDP10.opTLN = function(op, acc) */ PDP10.opTRNE = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), this.regEA) == 0) this.setPC(this.regPC + 1); }; /** - * opTLNE(0o603000) + * opTLNE(0o603000): Test Left, No Modification, and Skip if All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5116,11 +5092,11 @@ PDP10.opTRNE = function(op, acc) */ PDP10.opTLNE = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT) == 0) this.setPC(this.regPC + 1); }; /** - * opTRNA(0o604000) + * opTRNA(0o604000): Test Right, No Modification, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5128,11 +5104,11 @@ PDP10.opTLNE = function(op, acc) */ PDP10.opTRNA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); }; /** - * opTLNA(0o605000) + * opTLNA(0o605000): Test Left, No Modification, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5140,11 +5116,11 @@ PDP10.opTRNA = function(op, acc) */ PDP10.opTLNA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); }; /** - * opTRNN(0o606000) + * opTRNN(0o606000): Test Right, No Modification, and Skip if Not All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5152,11 +5128,11 @@ PDP10.opTLNA = function(op, acc) */ PDP10.opTRNN = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), this.regEA) != 0) this.setPC(this.regPC + 1); }; /** - * opTLNN(0o607000) + * opTLNN(0o607000): Test Left, No Modification, and Skip if Not All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5164,35 +5140,11 @@ PDP10.opTRNN = function(op, acc) */ PDP10.opTLNN = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT) != 0) this.setPC(this.regPC + 1); }; /** - * opTDN(0o610000) - * - * @this {CPUStatePDP10} - * @param {number} op - * @param {number} acc - */ -PDP10.opTDN = function(op, acc) -{ - this.opUndefined(op); -}; - -/** - * opTSN(0o611000) - * - * @this {CPUStatePDP10} - * @param {number} op - * @param {number} acc - */ -PDP10.opTSN = function(op, acc) -{ - this.opUndefined(op); -}; - -/** - * opTDNE(0o612000) + * opTDNE(0o612000): Test Direct, No Modification, and Skip if All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5200,11 +5152,11 @@ PDP10.opTSN = function(op, acc) */ PDP10.opTDNE = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), this.readWord(this.regEA)) == 0) this.setPC(this.regPC + 1); }; /** - * opTSNE(0o613000) + * opTSNE(0o613000): Test Swapped, No Modification, and Skip if All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5212,11 +5164,11 @@ PDP10.opTDNE = function(op, acc) */ PDP10.opTSNE = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA))) == 0) this.setPC(this.regPC + 1); }; /** - * opTDNA(0o614000) + * opTDNA(0o614000): Test Direct, No Modification, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5224,11 +5176,11 @@ PDP10.opTSNE = function(op, acc) */ PDP10.opTDNA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); }; /** - * opTSNA(0o615000) + * opTSNA(0o615000): Test Swapped, No Modification, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5236,11 +5188,11 @@ PDP10.opTDNA = function(op, acc) */ PDP10.opTSNA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); }; /** - * opTDNN(0o616000) + * opTDNN(0o616000): Test Direct, No Modification, and Skip if Not All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5248,11 +5200,11 @@ PDP10.opTSNA = function(op, acc) */ PDP10.opTDNN = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), this.readWord(this.regEA)) != 0) this.setPC(this.regPC + 1); }; /** - * opTSNN(0o617000) + * opTSNN(0o617000): Test Swapped, No Modification, and Skip if Not All Masked Bits Equal 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5260,11 +5212,11 @@ PDP10.opTDNN = function(op, acc) */ PDP10.opTSNN = function(op, acc) { - this.opUndefined(op); + if (PDP10.AND(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA))) != 0) this.setPC(this.regPC + 1); }; /** - * opTRZ(0o620000) + * opTRZ(0o620000): Test Right, Zeros, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5272,11 +5224,11 @@ PDP10.opTSNN = function(op, acc) */ PDP10.opTRZ = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), this.regEA)); }; /** - * opTLZ(0o621000) + * opTLZ(0o621000): Test Left, Zeros, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5284,11 +5236,11 @@ PDP10.opTRZ = function(op, acc) */ PDP10.opTLZ = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTRZE(0o622000) + * opTRZE(0o622000): Test Right, Zeros, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5296,11 +5248,13 @@ PDP10.opTLZ = function(op, acc) */ PDP10.opTRZE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, this.regEA)); }; /** - * opTLZE(0o623000) + * opTLZE(0o623000): Test Left, Zeros, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5308,11 +5262,14 @@ PDP10.opTRZE = function(op, acc) */ PDP10.opTLZE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.regEA * PDP10.HALF_SHIFT; + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, src)); }; /** - * opTRZA(0o624000) + * opTRZA(0o624000): Test Right, Zeros, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5320,11 +5277,12 @@ PDP10.opTLZE = function(op, acc) */ PDP10.opTRZA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), this.regEA)); }; /** - * opTLZA(0o625000) + * opTLZA(0o625000): Test Left, Zeros, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5332,11 +5290,12 @@ PDP10.opTRZA = function(op, acc) */ PDP10.opTLZA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTRZN(0o626000) + * opTRZN(0o626000): Test Right, Zeros, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5344,11 +5303,13 @@ PDP10.opTLZA = function(op, acc) */ PDP10.opTRZN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, this.regEA)); }; /** - * opTLZN(0o627000) + * opTLZN(0o627000): Test Left, Zeros, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5356,11 +5317,14 @@ PDP10.opTRZN = function(op, acc) */ PDP10.opTLZN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.regEA * PDP10.HALF_SHIFT; + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, src)); }; /** - * opTDZ(0o630000) + * opTDZ(0o630000): Test Direct, Zeros, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5368,11 +5332,11 @@ PDP10.opTLZN = function(op, acc) */ PDP10.opTDZ = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), this.readWord(this.regEA))); }; /** - * opTSZ(0o631000) + * opTSZ(0o631000): Test Swapped, Zeros, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5380,11 +5344,11 @@ PDP10.opTDZ = function(op, acc) */ PDP10.opTSZ = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA)))); }; /** - * opTDZE(0o632000) + * opTDZE(0o632000): Test Direct, Zeros, and Skip if All Masked Bits Equaled a * * @this {CPUStatePDP10} * @param {number} op @@ -5392,11 +5356,14 @@ PDP10.opTSZ = function(op, acc) */ PDP10.opTDZE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.readWord(this.regEA); + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, src)); }; /** - * opTSZE(0o633000) + * opTSZE(0o633000): Test Swapped, Zeros, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5404,11 +5371,14 @@ PDP10.opTDZE = function(op, acc) */ PDP10.opTSZE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = PDP10.SWAP(this.readWord(this.regEA)); + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, src)); }; /** - * opTDZA(0o634000) + * opTDZA(0o634000): Test Direct, Zeros, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5416,11 +5386,12 @@ PDP10.opTSZE = function(op, acc) */ PDP10.opTDZA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), this.readWord(this.regEA))); }; /** - * opTSZA(0o635000) + * opTSZA(0o635000): Test Swapped, Zeros, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5428,11 +5399,12 @@ PDP10.opTDZA = function(op, acc) */ PDP10.opTSZA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA)))); }; /** - * opTDZN(0o636000) + * opTDZN(0o636000): Test Direct, Zeros, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5440,11 +5412,14 @@ PDP10.opTSZA = function(op, acc) */ PDP10.opTDZN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.readWord(this.regEA); + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, src)); }; /** - * opTSZN(0o637000) + * opTSZN(0o637000): Test Swapped, Zeros, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5452,11 +5427,14 @@ PDP10.opTDZN = function(op, acc) */ PDP10.opTSZN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = PDP10.SWAP(this.readWord(this.regEA)); + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.CLR(dst, src)); }; /** - * opTRC(0o640000) + * opTRC(0o640000): Test Right, Complement, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5464,11 +5442,11 @@ PDP10.opTSZN = function(op, acc) */ PDP10.opTRC = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.regEA)); }; /** - * opTLC(0o641000) + * opTLC(0o641000): Test Left, Complement, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5476,11 +5454,11 @@ PDP10.opTRC = function(op, acc) */ PDP10.opTLC = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTRCE(0o642000) + * opTRCE(0o642000): Test Right, Complement, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5488,11 +5466,13 @@ PDP10.opTLC = function(op, acc) */ PDP10.opTRCE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, this.regEA)); }; /** - * opTLCE(0o643000) + * opTLCE(0o643000): Test Left, Complement, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5500,11 +5480,14 @@ PDP10.opTRCE = function(op, acc) */ PDP10.opTLCE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.regEA * PDP10.HALF_SHIFT; + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, src)); }; /** - * opTRCA(0o644000) + * opTRCA(0o644000): Test Right, Complement, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5512,11 +5495,12 @@ PDP10.opTLCE = function(op, acc) */ PDP10.opTRCA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.regEA)); }; /** - * opTLCA(0o645000) + * opTLCA(0o645000): Test Left, Complement, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5524,11 +5508,12 @@ PDP10.opTRCA = function(op, acc) */ PDP10.opTLCA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTRCN(0o646000) + * opTRCN(0o646000): Test Right, Complement, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5536,11 +5521,13 @@ PDP10.opTLCA = function(op, acc) */ PDP10.opTRCN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, this.regEA)); }; /** - * opTLCN(0o647000) + * opTLCN(0o647000): Test Left, Complement, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5548,11 +5535,14 @@ PDP10.opTRCN = function(op, acc) */ PDP10.opTLCN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.regEA * PDP10.HALF_SHIFT; + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, src)); }; /** - * opTDC(0o650000) + * opTDC(0o650000): Test Direct, Complement, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5560,11 +5550,11 @@ PDP10.opTLCN = function(op, acc) */ PDP10.opTDC = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.readWord(this.regEA))); }; /** - * opTSC(0o651000) + * opTSC(0o651000): Test Swapped, Complement, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5572,11 +5562,11 @@ PDP10.opTDC = function(op, acc) */ PDP10.opTSC = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA)))); }; /** - * opTDCE(0o652000) + * opTDCE(0o652000): Test Direct, Complement, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5584,11 +5574,14 @@ PDP10.opTSC = function(op, acc) */ PDP10.opTDCE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.readWord(this.regEA); + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, src)); }; /** - * opTSCE(0o653000) + * opTSCE(0o653000): Test Swapped, Complement, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5596,11 +5589,14 @@ PDP10.opTDCE = function(op, acc) */ PDP10.opTSCE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = PDP10.SWAP(this.readWord(this.regEA)); + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, src)); }; /** - * opTDCA(0o654000) + * opTDCA(0o654000): Test Direct, Complement, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5608,11 +5604,12 @@ PDP10.opTSCE = function(op, acc) */ PDP10.opTDCA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), this.readWord(this.regEA))); }; /** - * opTSCA(0o655000) + * opTSCA(0o655000): Test Swapped, Complement, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5620,11 +5617,12 @@ PDP10.opTDCA = function(op, acc) */ PDP10.opTSCA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA)))); }; /** - * opTDCN(0o656000) + * opTDCN(0o656000): Test Direct, Complement, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5632,11 +5630,14 @@ PDP10.opTSCA = function(op, acc) */ PDP10.opTDCN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.readWord(this.regEA); + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, src)); }; /** - * opTSCN(0o657000) + * opTSCN(0o657000): Test Swapped, Complement, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5644,11 +5645,14 @@ PDP10.opTDCN = function(op, acc) */ PDP10.opTSCN = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = PDP10.SWAP(this.readWord(this.regEA)); + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.XOR(dst, src)); }; /** - * opTRO(0o660000) + * opTRO(0o660000): Test Right, Ones, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5656,11 +5660,11 @@ PDP10.opTSCN = function(op, acc) */ PDP10.opTRO = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.regEA)); }; /** - * opTLO(0o661000) + * opTLO(0o661000): Test Left, Ones, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5668,11 +5672,11 @@ PDP10.opTRO = function(op, acc) */ PDP10.opTLO = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTROE(0o662000) + * opTROE(0o662000): Test Right, Ones, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5680,11 +5684,13 @@ PDP10.opTLO = function(op, acc) */ PDP10.opTROE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, this.regEA)); }; /** - * opTLOE(0o663000) + * opTLOE(0o663000): Test Left, Ones, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5692,11 +5698,13 @@ PDP10.opTROE = function(op, acc) */ PDP10.opTLOE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA * PDP10.HALF_SHIFT) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTROA(0o664000) + * opTROA(0o664000): Test Right, Ones, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5704,11 +5712,12 @@ PDP10.opTLOE = function(op, acc) */ PDP10.opTROA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.regEA)); }; /** - * opTLOA(0o665000) + * opTLOA(0o665000): Test Left, Ones, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5716,11 +5725,12 @@ PDP10.opTROA = function(op, acc) */ PDP10.opTLOA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.regEA * PDP10.HALF_SHIFT)); }; /** - * opTRON(0o666000) + * opTRON(0o666000): Test Right, Ones, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5728,11 +5738,13 @@ PDP10.opTLOA = function(op, acc) */ PDP10.opTRON = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + if (PDP10.AND(dst, this.regEA) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, this.regEA)); }; /** - * opTLON(0o667000) + * opTLON(0o667000): Test Left, Ones, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5740,11 +5752,14 @@ PDP10.opTRON = function(op, acc) */ PDP10.opTLON = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.regEA * PDP10.HALF_SHIFT; + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, src)); }; /** - * opTDO(0o670000) + * opTDO(0o670000): Test Direct, Ones, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5752,11 +5767,11 @@ PDP10.opTLON = function(op, acc) */ PDP10.opTDO = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.readWord(this.regEA))); }; /** - * opTSO(0o671000) + * opTSO(0o671000): Test Swapped, Ones, but Do Not Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5764,11 +5779,11 @@ PDP10.opTDO = function(op, acc) */ PDP10.opTSO = function(op, acc) { - this.opUndefined(op); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA)))); }; /** - * opTDOE(0o672000) + * opTDOE(0o672000): Test Direct, Ones, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5776,11 +5791,14 @@ PDP10.opTSO = function(op, acc) */ PDP10.opTDOE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.readWord(this.regEA); + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, src)); }; /** - * opTSOE(0o673000) + * opTSOE(0o673000): Test Swapped, Ones, and Skip if All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5788,11 +5806,14 @@ PDP10.opTDOE = function(op, acc) */ PDP10.opTSOE = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = PDP10.SWAP(this.readWord(this.regEA)); + if (PDP10.AND(dst, src) == 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, src)); }; /** - * opTDOA(0o674000) + * opTDOA(0o674000): Test Direct, Ones, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5800,11 +5821,12 @@ PDP10.opTSOE = function(op, acc) */ PDP10.opTDOA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), this.readWord(this.regEA))); }; /** - * opTSOA(0o675000) + * opTSOA(0o675000): Test Swapped, Ones, but Always Skip * * @this {CPUStatePDP10} * @param {number} op @@ -5812,11 +5834,12 @@ PDP10.opTDOA = function(op, acc) */ PDP10.opTSOA = function(op, acc) { - this.opUndefined(op); + this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(this.readWord(acc), PDP10.SWAP(this.readWord(this.regEA)))); }; /** - * opTDON(0o676000) + * opTDON(0o676000): Test Direct, Ones, and Skip if Not All Masked Bits Equaled 0 * * @this {CPUStatePDP10} * @param {number} op @@ -5824,11 +5847,14 @@ PDP10.opTSOA = function(op, acc) */ PDP10.opTDON = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = this.readWord(this.regEA); + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, src)); }; /** - * opTSON(0o677000) + * opTSON(0o677000): Test Swapped, Ones, and Skip if Not All Masked Bits Equaled a * * @this {CPUStatePDP10} * @param {number} op @@ -5836,7 +5862,10 @@ PDP10.opTDON = function(op, acc) */ PDP10.opTSON = function(op, acc) { - this.opUndefined(op); + var dst = this.readWord(acc); + var src = PDP10.SWAP(this.readWord(this.regEA)); + if (PDP10.AND(dst, src) != 0) this.setPC(this.regPC + 1); + this.writeWord(acc, PDP10.IOR(dst, src)); }; /** @@ -6055,45 +6084,6 @@ PDP10.doADD = function(dst, src) return res; }; -/** - * doAND(dst, src) - * - * Performs the logical "and" (AND) of two 36-bit operands. - * - * @this {CPUStatePDP10} - * @param {number} dst (36-bit value) - * @param {number} src (36-bit value) - * @return {number} (dst & src) - */ -PDP10.doAND = function(dst, src) -{ - /* - * Since dst and src are 36-bit values, we must AND the low 32 bits separately from the higher bits, - * and then combine them with addition. Since all bits above 36 will be zero, and since 0 AND 0 is 0, - * no special masking for the higher bits is required. - * - * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a - * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is - * positive. - */ - return ((((dst / PDP10.TWO_POW32)|0) & ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst & src) >>> 0); -}; - -/** - * doCMP(dst, src) - * - * Performs the SIGNED comparison (CMP) of two 36-bit operands. - * - * @this {CPUStatePDP10} - * @param {number} dst (36-bit value) - * @param {number} src (36-bit value) - * @return {number} (dst - src) - */ -PDP10.doCMP = function(dst, src) -{ - return (dst < PDP10.INT_LIMIT? dst : dst - PDP10.WORD_LIMIT) - (src < PDP10.INT_LIMIT? src : src - PDP10.INT_LIMIT); -}; - /** * doDIV(dst, ext, src) * @@ -6146,24 +6136,24 @@ PDP10.doDIV = function(dst, ext, src) * Stick with the double worker functions I've created, and trust your JavaScript engine to * inline/optimize the code. */ - PDP10.initD(this.regRes, 0, 0); - PDP10.initD(this.regPow, 1, 0); - PDP10.initD(this.regDiv, src, 0); - PDP10.initD(this.regRem, dst, ext); + PDP10.INITD(this.regRes, 0, 0); + PDP10.INITD(this.regPow, 1, 0); + PDP10.INITD(this.regDiv, src, 0); + PDP10.INITD(this.regRem, dst, ext); - while (PDP10.cmpD(this.regRem, this.regDiv) > 0) { - PDP10.addD(this.regDiv, this.regDiv); - PDP10.addD(this.regPow, this.regPow); + while (PDP10.CMPD(this.regRem, this.regDiv) > 0) { + PDP10.ADDD(this.regDiv, this.regDiv); + PDP10.ADDD(this.regPow, this.regPow); } do { - if (PDP10.cmpD(this.regRem, this.regDiv) >= 0) { - PDP10.subD(this.regRem, this.regDiv); - PDP10.addD(this.regRes, this.regPow); - if (PDP10.zeroD(this.regRem)) break; + if (PDP10.CMPD(this.regRem, this.regDiv) >= 0) { + PDP10.SUBD(this.regRem, this.regDiv); + PDP10.ADDD(this.regRes, this.regPow); + if (PDP10.ZEROD(this.regRem)) break; } - PDP10.shrD(this.regDiv); - PDP10.shrD(this.regPow); - } while (!PDP10.zeroD(this.regPow)); + PDP10.SHRD(this.regDiv); + PDP10.SHRD(this.regPow); + } while (!PDP10.ZEROD(this.regPow)); this.assert(!this.regRes[1], "extended quotient"); this.assert(!this.regRem[1], "extended remainder"); @@ -6182,78 +6172,6 @@ PDP10.doDIV = function(dst, ext, src) return dst; }; -/** - * doEOR(dst, src) - * - * Performs the logical "exclusive-or" (XOR) of two 36-bit operands. - * - * @this {CPUStatePDP10} - * @param {number} dst (36-bit value) - * @param {number} src (36-bit value) - * @return {number} (dst ^ src) - */ -PDP10.doEOR = function(dst, src) -{ - /* - * Since dst and src are 36-bit values, we must XOR the low 32 bits separately from the higher bits, - * and then combine them with addition. Since all bits above 36 will be zero, and since 0 XOR 0 is 0, - * no special masking for the higher bits is required. - * - * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a - * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is - * positive. - */ - return ((((dst / PDP10.TWO_POW32)|0) ^ ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst ^ src) >>> 0); -}; - -/** - * doEQV(dst, src) - * - * Performs the logical "equivalence" (EQV) of two 36-bit operands. - * - * @this {CPUStatePDP10} - * @param {number} dst (36-bit value) - * @param {number} src (36-bit value) - * @return {number} (~(dst ^ src)) - */ -PDP10.doEQV = function(dst, src) -{ - /* - * Since dst and src are 36-bit values, we must EQV the low 32 bits separately from the higher bits, - * and then combine them with addition. Since all bits above 36 will be zero, and since 0 EQV 0 is 1, - * we must mask the higher 4 bits with 0o17. - * - * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a - * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is - * positive. - */ - return ((~(((dst / PDP10.TWO_POW32)|0) ^ ((src / PDP10.TWO_POW32)|0)) & 0o17) * PDP10.TWO_POW32) + (~(dst ^ src) >>> 0); -}; - -/** - * doIOR(dst, src) - * - * Performs the logical "inclusive-or" (OR) of two 36-bit operands. - * - * @this {CPUStatePDP10} - * @param {number} dst (36-bit value) - * @param {number} src (36-bit value) - * @return {number} (dst | src) - */ -PDP10.doIOR = function(dst, src) -{ - /* - * Since dst and src are 36-bit values, we must OR the low 32 bits separately from the higher bits, - * and then combine them with addition. Since all bits above 36 will be zero, and since 0 OR 0 is 0, - * no special masking for the higher bits is required. - * - * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a - * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is - * positive. - */ - return ((((dst / PDP10.TWO_POW32)|0) | ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst | src) >>> 0); -}; - /** * doMUL(dst, src, fTruncate) * @@ -6294,15 +6212,15 @@ PDP10.doMUL = function(dst, src, fTruncate) ext = 0; } else { - var n1d1 = (n1 % PDP10.HALF_SHIFT); + var n1d1 = (n1 & PDP10.HALF_MASK); var n1d2 = Math.trunc(n1 / PDP10.HALF_SHIFT); - var n2d1 = (n2 % PDP10.HALF_SHIFT); + var n2d1 = (n2 & PDP10.HALF_MASK); var n2d2 = Math.trunc(n2 / PDP10.HALF_SHIFT); var m1d1 = n1d1 * n2d1; var m1d2 = (n1d2 * n2d1) + Math.trunc(m1d1 / PDP10.HALF_SHIFT); ext = Math.trunc(m1d2 / PDP10.HALF_SHIFT); - m1d2 = (m1d2 % PDP10.HALF_SHIFT) + (n1d1 * n2d2); - res = (m1d2 * PDP10.HALF_SHIFT) + (m1d1 % PDP10.HALF_SHIFT); + m1d2 = (m1d2 & PDP10.HALF_MASK) + (n1d1 * n2d2); + res = (m1d2 * PDP10.HALF_SHIFT) + (m1d1 & PDP10.HALF_MASK); ext += Math.trunc(m1d2 / PDP10.HALF_SHIFT) + (n1d2 * n2d2); } @@ -6364,20 +6282,6 @@ PDP10.doNEG = function(src) return src; }; -/** - * doSGN(dst) - * - * Returns the signed form of the 36-bit operand; more efficient than doCMP(dst, 0). - * - * @this {CPUStatePDP10} - * @param {number} dst (36-bit value) - * @return {number} - */ -PDP10.doSGN = function(dst) -{ - return (dst < PDP10.INT_LIMIT? dst : dst - PDP10.WORD_LIMIT); -}; - /** * doSUB(dst, src) * @@ -6518,7 +6422,177 @@ PDP10.setAddFlags = function(dst, src, res) }; /** - * getHL(op, dst, src) + * AND(dst, src) + * + * Performs the logical "and" (AND) of two 36-bit operands. + * + * @param {number} dst (36-bit value) + * @param {number} src (36-bit value) + * @return {number} (dst & src) + */ +PDP10.AND = function(dst, src) +{ + /* + * Since dst and src are 36-bit values, we must AND the low 32 bits separately from the higher bits, + * and then combine them with addition. Since all bits above 36 will be zero, and since 0 AND 0 is 0, + * no special masking for the higher bits is required. + * + * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a + * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is + * positive. + */ + return ((((dst / PDP10.TWO_POW32)|0) & ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst & src) >>> 0); +}; + +/** + * CLR(dst, src) + * + * Performs the logical "and" (AND) of a 36-bit operand and its complement. + * + * @param {number} dst (36-bit value) + * @param {number} src (36-bit value) + * @return {number} (dst & ~src) + */ +PDP10.CLR = function(dst, src) +{ + return PDP10.AND(dst, PDP10.NOT(src)); +}; + +/** + * CMP(dst, src) + * + * Performs the SIGNED comparison (CMP) of two 36-bit operands. + * + * @param {number} dst (36-bit value) + * @param {number} src (36-bit value) + * @return {number} (dst - src) + */ +PDP10.CMP = function(dst, src) +{ + return (dst < PDP10.INT_LIMIT? dst : dst - PDP10.WORD_LIMIT) - (src < PDP10.INT_LIMIT? src : src - PDP10.INT_LIMIT); +}; + +/** + * EQV(dst, src) + * + * Performs the logical "equivalence" (EQV) of two 36-bit operands (ie, NOT XOR) + * + * @param {number} dst (36-bit value) + * @param {number} src (36-bit value) + * @return {number} (~(dst ^ src)) + */ +PDP10.EQV = function(dst, src) +{ + /* + * Since dst and src are 36-bit values, we must EQV the low 32 bits separately from the higher bits, + * and then combine them with addition. Since all bits above 36 will be zero, and since 0 EQV 0 is 1, + * we must mask the higher 4 bits with 0o17. + * + * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a + * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is + * positive. + */ + return ((~(((dst / PDP10.TWO_POW32)|0) ^ ((src / PDP10.TWO_POW32)|0)) & 0o17) * PDP10.TWO_POW32) + (~(dst ^ src) >>> 0); +}; + +/** + * IOR(dst, src) + * + * Performs the logical "inclusive-or" (OR) of two 36-bit operands. + * + * @param {number} dst (36-bit value) + * @param {number} src (36-bit value) + * @return {number} (dst | src) + */ +PDP10.IOR = function(dst, src) +{ + /* + * Since dst and src are 36-bit values, we must OR the low 32 bits separately from the higher bits, + * and then combine them with addition. Since all bits above 36 will be zero, and since 0 OR 0 is 0, + * no special masking for the higher bits is required. + * + * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a + * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is + * positive. + */ + return ((((dst / PDP10.TWO_POW32)|0) | ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst | src) >>> 0); +}; + +/** + * NOT(src) + * + * Performs the one's complement (NOT) of a 36-bit operand. + * + * @param {number} src (36-bit value) + * @return {number} (~src) + */ +PDP10.NOT = function(src) +{ + /* + * Since src is a 36-bit value, we must NOT the low 32 bits separately from the higher bits, + * and then combine them with addition. Since all bits above 36 will be zero, and since ~0 is 1, + * we must mask the higher 4 bits with 0o17. + * + * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a + * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is + * positive. + */ + return ((~((src / PDP10.TWO_POW32)|0) & 0o17) * PDP10.TWO_POW32) + (~src >>> 0); +}; + +/** + * SIGN(dst) + * + * Returns the signed form of the 36-bit operand; more efficient than doCMP(dst, 0). + * + * @param {number} dst (36-bit value) + * @return {number} + */ +PDP10.SIGN = function(dst) +{ + return (dst < PDP10.INT_LIMIT? dst : dst - PDP10.WORD_LIMIT); +}; + +/** + * XOR(dst, src) + * + * Performs the logical "exclusive-or" (XOR) of two 36-bit operands. + * + * @param {number} dst (36-bit value) + * @param {number} src (36-bit value) + * @return {number} (dst ^ src) + */ +PDP10.XOR = function(dst, src) +{ + /* + * Since dst and src are 36-bit values, we must XOR the low 32 bits separately from the higher bits, + * and then combine them with addition. Since all bits above 36 will be zero, and since 0 XOR 0 is 0, + * no special masking for the higher bits is required. + * + * WARNING: When using JavaScript's 32-bit operators with values that could set bit 31 and produce a + * negative value, it's critical to perform a final right-shift of 0, ensuring that the final result is + * positive. + */ + return ((((dst / PDP10.TWO_POW32)|0) ^ ((src / PDP10.TWO_POW32)|0)) * PDP10.TWO_POW32) + ((dst ^ src) >>> 0); +}; + +/** + * SWAP(src) + * + * Used by callers to "swap" the left and right half-words of a 36-bit operand. + * + * NOTE: Since HALF_MASK is an 18-bit value, it's safe to use "&" with HALF_MASK (equivalent to "%" with HALF_SHIFT). + * + * @param {number} src + * @return {number} (updated src) + */ +PDP10.SWAP = function(src) +{ + return ((src / PDP10.HALF_SHIFT)|0) + ((src & PDP10.HALF_MASK) * PDP10.HALF_SHIFT); +}; + +/** + * GETHL(op, dst, src) * * Used by callers to obtain HL (half-word left) with HR (half-word right) zeroed. * @@ -6527,7 +6601,7 @@ PDP10.setAddFlags = function(dst, src, res) * @param {number} src (18-bit value used to determine the sign extension, if any, for the left half of dst) * @return {number} (updated dst) */ -PDP10.getHL = function(op, dst, src) +PDP10.GETHL = function(op, dst, src) { switch(op & 0o600) { case 0o000: @@ -6547,7 +6621,7 @@ PDP10.getHL = function(op, dst, src) }; /** - * setHL(op, dst, src) + * SETHL(op, dst, src) * * Used by callers to obtain HL (half-word left) with HR (half-word right) preserved. * @@ -6556,7 +6630,7 @@ PDP10.getHL = function(op, dst, src) * @param {number} src (18-bit value used to determine the sign extension, if any, for the left half of dst) * @return {number} (updated dst) */ -PDP10.setHL = function(op, dst, src) +PDP10.SETHL = function(op, dst, src) { if (op &= 0o600) { dst &= PDP10.HALF_MASK; @@ -6573,7 +6647,7 @@ PDP10.setHL = function(op, dst, src) }; /** - * getHR(op, dst, src) + * GETHR(op, dst, src) * * Used by callers to obtain HR (half-word right) with HL (half-word left) zeroed. * @@ -6582,7 +6656,7 @@ PDP10.setHL = function(op, dst, src) * @param {number} src (36-bit value used to determine the sign extension, if any, for the right half of dst) * @return {number} (updated dst) */ -PDP10.getHR = function(op, dst, src) +PDP10.GETHR = function(op, dst, src) { switch(op & 0o600) { case 0o000: @@ -6602,7 +6676,7 @@ PDP10.getHR = function(op, dst, src) }; /** - * setHR(op, dst, src) + * SETHR(op, dst, src) * * Used by callers to obtain HR (half-word right) with HL (half-word left) preserved. * @@ -6611,7 +6685,7 @@ PDP10.getHR = function(op, dst, src) * @param {number} src (36-bit value used to determine the sign extension, if any, for the right half of dst) * @return {number} (updated dst) */ -PDP10.setHR = function(op, dst, src) +PDP10.SETHR = function(op, dst, src) { if (op &= 0o600) { dst -= (dst & PDP10.HALF_MASK); @@ -6628,14 +6702,14 @@ PDP10.setHR = function(op, dst, src) }; /** - * addD(dDst, dSrc) + * ADDD(dDst, dSrc) * * Adds a double-length value (dSrc) to another (dDst). * * @param {Array.} dDst * @param {Array.} dSrc */ -PDP10.addD = function(dDst, dSrc) +PDP10.ADDD = function(dDst, dSrc) { dDst[0] += dSrc[0]; dDst[1] += dSrc[1]; @@ -6646,7 +6720,7 @@ PDP10.addD = function(dDst, dSrc) }; /** - * cmpD(dDst, dSrc) + * CMPD(dDst, dSrc) * * Compares double-length values (dDst and dSrc) by computing dDst - dSrc. * @@ -6654,7 +6728,7 @@ PDP10.addD = function(dDst, dSrc) * @param {Array.} dSrc * @return {number} > 0 if dDst > dSrc, == 0 if dDst == dSrc, < 0 if dDst < dSrc */ -PDP10.cmpD = function(dDst, dSrc) +PDP10.CMPD = function(dDst, dSrc) { var result = dDst[1] - dSrc[1]; if (!result) result = dDst[0] - dSrc[0]; @@ -6662,7 +6736,7 @@ PDP10.cmpD = function(dDst, dSrc) }; /** - * initD(dDst, lo, hi) + * INITD(dDst, lo, hi) * * Initializes a double-length value (dDst). * @@ -6670,20 +6744,20 @@ PDP10.cmpD = function(dDst, dSrc) * @param {number} lo * @param {number} hi */ -PDP10.initD = function(dDst, lo, hi) +PDP10.INITD = function(dDst, lo, hi) { dDst[0] = lo; dDst[1] = hi; }; /** - * shrD(dDst) + * SHRD(dDst) * * Shifts a double-length value (dDst) right one bit. * * @param {Array.} dDst */ -PDP10.shrD = function(dDst) +PDP10.SHRD = function(dDst) { if (dDst[1] % 2) { dDst[0] += PDP10.WORD_LIMIT; @@ -6693,14 +6767,14 @@ PDP10.shrD = function(dDst) }; /** - * subD(dDst, dSrc) + * SUBD(dDst, dSrc) * * Subtracts a double-length value (dSrc) from another (dDst). * * @param {Array.} dDst * @param {Array.} dSrc */ -PDP10.subD = function(dDst, dSrc) +PDP10.SUBD = function(dDst, dSrc) { dDst[0] -= dSrc[0]; dDst[1] -= dSrc[1]; @@ -6711,13 +6785,14 @@ PDP10.subD = function(dDst, dSrc) }; /** - * zeroD(d) + * ZEROD(d) * * True if all bits in the double-length value (d) are zero, false otherwise. * * @param {Array.} d + * @return {boolean} */ -PDP10.zeroD = function(d) +PDP10.ZEROD = function(d) { return !d[0] && !d[1]; }; @@ -6795,6 +6870,10 @@ PDP10.opSETMB = PDP10.opMOVE; PDP10.opCAI = PDP10.opNOP; PDP10.opCAM = PDP10.opNOPM; PDP10.opJUMP = PDP10.opNOP; +PDP10.opTRN = PDP10.opNOP; +PDP10.opTLN = PDP10.opNOP; +PDP10.opTDN = PDP10.opNOPM; +PDP10.opTSN = PDP10.opNOPM; PDP10.aOpXXX_KA10 = [ PDP10.opUUO, // 0o000xxx diff --git a/versions/pdpjs/1.34.2/pdp10-dbg.js b/versions/pdpjs/1.34.2/pdp10-dbg.js index 290be37f5..fa5d1fa46 100644 --- a/versions/pdpjs/1.34.2/pdp10-dbg.js +++ b/versions/pdpjs/1.34.2/pdp10-dbg.js @@ -26,229 +26,233 @@ http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017 http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017 */ -var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function da(){da=function(){};ba.Symbol||(ba.Symbol=ea)}var fa=0;function ea(a){return"jscomp_symbol_"+(a||"")+fa++} -function ha(){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 ia(this)}});ha=function(){}}function ia(a){var b=0;return oa(function(){return ba?-b:b}});pa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); -var qa={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, +var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ca="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function da(){da=function(){};ca.Symbol||(ca.Symbol=ea)}var ga=0;function ea(a){return"jscomp_symbol_"+(a||"")+ga++} +function ha(){da();var a=ca.Symbol.iterator;a||(a=ca.Symbol.iterator=ca.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return ka(function(){return ba?-b:b}});ra("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); +var sa={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 ra(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0a&&-1a&&(a+=Math.pow(b,c)),0>a||a>=Math.pow(b,c))&&(a=null);if(null==a)for(;0=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ta(a,b,c){b?12"']/g,function(a){return Ba[a]})} -function Ca(a,b){return(a+" ").slice(0,b)}function Da(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ba={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ea(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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 Ga(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 Ma(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>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Da=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;ca?this.Pa=this.id:(this.Qa=this.id.substr(0,a),this.Pa=this.id.substr(a+1));this.A={ready:!1,Ia:!1,cb:!1,V:!1,error:!1};this.Ta=null;this.A.error=!1;this.X=c||0;this.D=this.v=this.H=this.G=this.ta=null;nb.push(this)}function ob(a,b,c){pb[a]&&b&&(pb[a][b]=c)}function qb(){return Date.now()||+new Date} -function r(a){window&&window.alert(a)}function rb(a){var b=!1;window&&(b=window.confirm(a));return b}function sb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba&&-1a&&(a+=Math.pow(b,c)),0>a||a>=Math.pow(b,c))&&(a=null);if(null==a)for(;0=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function va(a,b,c){b?12"']/g,function(a){return Da[a]})} +function Ea(a,b){return(a+" ").slice(0,b)}function Fa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Da={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ga(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a>1,h;h=c(b,a[g]);0a?"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 Ia(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="",n;for(n in b)b.hasOwnProperty(n)&&(k&&(k+="&"),k+=n+"="+encodeURIComponent(b[n]));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 Ja(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>8&255;else if(e=g.longs)for(d.Y=Array(4*e.length),f=c=0;c>8&255,d.Y[f++]=e[c]>>16&255,d.Y[f++]=e[c]>>24&255;else(e=g.data)?d.Da=e:d.Y=g;d.Y&&(d.Y.length?1==d.Y.length&&(q(d.Y[0]),d=null):(q("Empty resource: "+a),d=null));d.U=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.Pa=this.id:(this.Qa=this.id.substr(0,a),this.Pa=this.id.substr(a+1));this.A={ready:!1,Ia:!1,cb:!1,V:!1,error:!1};this.Ta=null;this.A.error=!1;this.X=c||0;this.D=this.v=this.H=this.G=this.ta=null;pb.push(this)}function qb(a,b,c){rb[a]&&b&&(rb[a][b]=c)}function sb(){return Date.now()||+new Date} +function q(a){window&&window.alert(a)}function tb(a){var b=!1;window&&(b=window.confirm(a));return b}function ub(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;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};Ob(this)}p(dc,t);l=dc.prototype;l.reset=function(a){this.stop();a&&fc(this,this.w=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(){gc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){hc(a,b)}}(this,b),a.ontouchstart= -function(a,b){return function(c){gc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){hc(a,b)}}(this,b),!0):t.prototype.ja.call(this,a,b,c,d)}};l.Ba=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;ic(this);jc(this)};l.ua=function(a,b){if(!b)if(this.T&&kc(),!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 F(this);a.set(0,[this.i,this.w,this.u]);return a.data()}; -l.restore=function(a){if(a=a[0])lc(this,this.i=a[0]),fc(this,this.w=a[1]),mc(this,a[2]);return!0};l.Vb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}jc(this);return!0};function nc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ic(a,b){for(var c in a.B)nc(a,c,null!=b?b:a.B[c])}function oc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jc(a){for(var b in a.b)oc(a,b,a.b[b][1])} -l.Gb=function(a,b,c){if(gc(this,b)){if(c){var d=this;setTimeout(function(){hc(d,b);a&&a()},+c);return!1}hc(this,b)}return!0};l.Yb=function(a,b){if("SR"==a)return mc(this,ra(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,oc(this,a,c[1]),!0):!1};l.Zb=function(a){return gc(this,a)?(hc(this,a),!0):!1};function gc(a,b){var c=a.b[b];return c?(oc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=pc&&(a.P=b==qc,a.R=b==rc),!0):!1} -function hc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(oc(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.A.L||(J(this.v,this.i),this.b[sc]&&this.b[sc][1]&&tc(this.v))};l.Qb=function(){};l.Kb=function(a){a||this.v.W()}; -l.Ib=function(a){if(!a&&!this.v.A.L)if(this.b[sc]&&this.b[sc][1])tc(this.v);else{if((a=this.D)&&!Pb(a,!0))Qb(a,!0),uc(a,0,null),Qb(a,!1);else try{var b=this.v.Ma(1);0c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.u&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(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 Nc(Oc,e,f)}e=new Jc(a,e,m,16384,d);Kc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Pc[d]+" at "+ta(b)),!0):Nc(Qc,b,c)} -function Hc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function zc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Lc(a){for(var b=0,c=[],d=0;d=a.la&&(a.la+=a.ka,c=!0);0<=a.ma&&a.ma<=kd(a)&&(a.ka=a.ma=-1,gd(a),a.W(),c=!0);c&&a.j(kd(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.A.V)a=!0;else{var b=null,c,h=sb(a.id);for(c=0;ca.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&&od(a.G)}wc(a,a.N);a.N=0;a.M=qb();a.P=0;md(a);return d}function pd(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 qd(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function rd(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c} -l.Wb=function(){if(this.A.L){this.Ra>=this.$a&&md(this,!0);this.na=0;this.ya=qb();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=pd(this,this.A.Fa?1:this.Ga);try{this.Ma(b)}catch(e){if("number"!=typeof e)throw e;}b=rd(this,!0);this.na+=b;this.N+=b;xc(this,b);vc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ga;++this.ab>=sd&&(this.G&&K(this.G,void 0),this.ab=0);break}}while(this.A.L)}catch(e){this.W();this.G&&this.G.stop(qb(),kd(this));Lb(this, -e.stack||e.message);return}if(this.A.L){a=setTimeout;b=this.rb;this.P=qb();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,ld(this)));if(0>c||this.aac&&(this.M-=c),c=0;this.Ra+=this.na;this.P+=c;a(b,c)}}}; -function tc(a,b){if(!Mb(a))if(a.A.L)a.j(a.toString()+" busy");else{ld(a);a.A.L=!0;a.A.Wa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&od(a.G,!0),a.G.start(a.M,kd(a)));a.D||a.status("Started");setTimeout(a.rb,0)}}l.Ma=function(){return 0};l.W=function(a){var b=!1;if(this.A.L){rd(this);wc(this,this.N);this.N=0;this.A.L=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(qb(),kd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var nd=30,sd=15,dd=["power","reset"]; -function td(a){var b=+a.model||1001;cd.call(this,a,1E6);this.qb=b;this.Oa=+a.addrReset||0;this.Cb=ud.bind(this);this.i=M.bind(this);this.wa=null;this.nb=[];this.A.complete=!1}p(td,cd);l=td.prototype;l.reset=function(){this.status("Model "+this.qb);this.A.L&&this.W();this.b=this.K=this.Ha=0;this.u=this.xa=this.Oa;this.I=this.qa=-1;this.F=this.w=0;this.bb=[0,0];this.oa=[0,0];this.ga=[0,0];this.pa=[0,0];this.va=this.u;this.B=0;this.f=this.Sb;this.g=this.cc;this.wa=null;fd(this);this.A.error=!1;cd.prototype.reset.call(this)}; -l.vb=function(){return 0};l.save=function(){var a=new F(this);a.set(0,[this.b,this.K,this.Ha,this.u,this.qa,this.I,this.w,this.B,this.xa,this.va,this.Oa]);a.set(1,[]);a.set(2,[this.T,this.ea,this.A.Z]);a.set(3,vd(this));a.set(4,qd(this));return a.data()}; -l.restore=function(a){var b;b=a[0];ha();da();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.b=b.next().value;this.K=b.next().value;this.Ha=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.I=b.next().value;this.w=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];ld(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)};l.cc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b}; -l.Ma=function(a){this.A.complete=!0;var b=this.D?xd(this.D)?1:this.A.Wa?-1:0:0,c=a?this.A.Wa?0:1:-1;this.A.Wa=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(yd(this.D,this.u,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&&yd(this.D,this.u,c)){this.W();break}if(0>c)break}}this.B&=15;this.K&4194304?this.K=this.f(this.b):0<=this.qa?(this.K=this.Ha=this.f(this.qa),this.qa=-1):(this.K=this.Ha= -this.f(this.xa=this.u),this.u=(this.u+1)%Vb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Ub;a=this.K&4194304?-1:this.Ha/ac|0;0<=a&&this.Cb(a)}while(0>4].call(this,a,a&15)}function N(a){this.i(a)} -function Ad(){var a=0,b=this.f(this.b),c=b/bc&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*bc+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function Bd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/bc&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}} -function Cd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/bc&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function Dd(a,b){this.g(b,this.f(this.b))}function Ed(a,b){this.g(b,this.b)}function $d(a,b){this.g(this.b,this.f(b))}function ae(a,b){this.g(b,0)}function be(a,b){this.g(b,C-this.f(b))}function ce(a,b){this.g(b,C)} -function de(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,ee(a,d,c)+(c-(c&y)))}function fe(a,b){var c=this.f(b);this.g(b,ee(a,c,0))}function ge(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,ee(a,c,b)+(b-(b&y)))}function he(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&y,a){case 256:d+=y;break;case 384:d+=c>A?y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ie(a,b){var c=(this.f(this.b)&y)*z,d=this.f(b);this.g(b,ee(a,d,c)+c)} -function je(a,b){var c=this.b*z,d=this.f(b);this.g(b,ee(a,d,c)+c)}function ke(a,b){b=(this.f(b)&y)*z;var c=this.f(this.b);this.g(this.b,ee(a,c,b)+b)}function le(a,b){var c=this.f(this.b),d=(c&y)*z,c=ee(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function me(a,b){var c=this.f(this.b)&y,d=this.f(b);this.g(b,ne(a,d,c)+c)}function oe(a,b){var c=this.f(b);this.g(b,ne(a,c,this.b)+this.b)}function pe(a,b){b=this.f(b)&y;var c=this.f(this.b);this.g(this.b,ne(a,c,b)+b)} -function qe(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=y,a){case 256:d+=y*z;break;case 384:d+=c>Wb?y*z:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function re(a,b){var c=this.f(this.b)/z|0,d=this.f(b);this.g(b,ne(a,d,c)+c)}function se(a,b){var c=this.f(b);this.g(b,ne(a,c,0))}function te(a,b){b=this.f(b)/z|0;var c=this.f(this.b);this.g(this.b,ne(a,c,b)+b)}function ue(a,b){var c=this.f(this.b),d=c/z|0,c=ne(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function O(a){ve[a&7].call(this,a,a>>3&127)} -function we(){}function xe(){}function M(a){this.j("undefined opcode: "+ta(a));wd(this,-1);this.W()}function ye(a){a>A&&(a!=B?a=Yb-a:this.w|=163840);return a}function Q(a,b){var c=(a+b)%D;ze.call(this,a,b,c);return c}function S(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function T(a,b){return(aA&&(c=D-c,d=!d);b>A&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.w|=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;0b[0]&&(b[0]+=D,b[1]--),Ce(this.bb,this.oa),De(this.pa)))break;Ee(this.ga);Ee(this.oa)}while(!De(this.oa)); -a=this.bb[0];this.F=this.pa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}function Fe(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function Ge(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)} -function He(a,b,c){var d=a,e=b;b=!1;var f;d>A&&(d=D-d,b=!b);e>A&&(e=D-e,b=!b);if(dA)&&(f!=C||a<=A)&&(this.w|=131072),a;c=a;b=f;a=b-b%B;b=2*b%D+Math.trunc(c/B);c=a+c%B;d=b-b%B;a!=d&&(b=a+(b-d),this.w|=131072);this.F=c;return b} -function Ie(a){a?a==B?this.w|=163840:a=Yb-a:this.w|=98304;return a}function V(a){return ac&&(c+=D);ze.call(this,c,b,a);return c}function ze(a,b,c){a=Math.trunc(a/Xb);b=Math.trunc(b/Xb);c=Math.trunc(c/Xb);var d=a^(a^b)&(b^c);this.w=this.w|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function ne(a,b,c){switch(a&384){case 0:b-=b&y;break;case 128:b=0;break;case 256:b=y*z;break;case 384:b=c>Wb?y*z:0}return b} -function ee(a,b,c){switch(a&384){case 0:b&=y;break;case 128:b=0;break;case 256:b=y;break;case 384:b=c>A?y:0}return b}function Ce(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function Be(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Ee(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function De(a){return!a[0]&&!a[1]} -var zd=[N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},Ad,function(a,b){0>this.I&&Ad.call(this);Bd.call(this,0,b)},Bd,function(a,b){0>this.I&&Ad.call(this);Cd.call(this,0,b)},Cd,function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)}, -function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)}, -function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},Dd,Ed,$d,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/z|0)+a%z*z;this.g(b,a)},function(a,b){this.g(b,this.b*z)},function(a,b){a=this.f(b);a=(a/z|0)+a%z*z;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/z|0)+a%z*z;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,Ie.call(this,this.f(this.b)))},function(a,b){this.g(b,Ie.call(this,this.b))},function(a,b){this.g(this.b, -Ie.call(this,this.f(b)))},function(a,b){a=Ie.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,ye.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,ye.call(this,this.f(b)))},function(a,b){a=ye.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,He.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,He.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,He.call(this,this.f(b),this.f(this.b), -!0))},function(a,b){this.g(this.b,this.g(b,He.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,He.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,He.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,He.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,He.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=Ae.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+ -1&15,this.F))},function(a,b){a=Ae.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=Ae.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=Ae.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=Ae.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=Ae.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))}, -function(a,b){a=this.f(b);b=this.f(b+1&15);b=Ae.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=Ae.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>A?-(D-a):a;0d?B:0,c=A):(d=d*Math.pow(2,c)%B,c=B-Math.pow(2,35-c)),a<=A?a+c>A&&(this.w|=131072):a-c<=A&&(this.w|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+D:d; -this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%D+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0A&& -dA&&eA&&(this.w|=131072):e-c<=A&&(this.w|=131072);e=0;f>A&&(d+=B,e+=B)}else d=d*Math.pow(2,a)%B+Math.trunc(e%B/Math.pow(2,35-a)),e=e*Math.pow(2,a)%B,c=B-Math.pow(2,35-a),f<=A?f+c>A&&(this.w|=131072):(f-c<=A&&(this.w|=131072),d+=B,e+=B)}else-36>=a?(e=-72>=a?d>A?C:0:Math.trunc(d%B/Math.pow(2,-a-35)),d<=A?d=0:(d=C,e+=B)):(c=d>A?D-Math.pow(2,36+a):0,e=Math.trunc(e%B/Math.pow(2,-a))+ -d%B*Math.pow(2,35+a)%B,d=Math.trunc(d/Math.pow(2,-a))+c,d>A&&(e+=B));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%D+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%D+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%D+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%D+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+ -1&15);0=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)%D,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},M,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/z|0,c=c&y;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&y,c=c+1&y,this.A.L||(this.g(b,d* -z+c),a||wd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%C;this.g(b,a);a=B&&J(this,this.b)},function(a){this.i(a)},function(a,b){a=b<<14;this.w&a&&(this.w&=~a,J(this,this.b))},function(){this.qa=this.b},M,function(a){this.i(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&y,this.f(this.b));a>=D&&(a-=D);a/z|0||(this.w|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&y);this.g(this.b,c);this.b==b&&(a=c);a-=262145; -0>a&&(a+=D);(a/z|0)==y&&(this.w|=262144);this.g(b,a)},function(a){this.i(a)},function(){this.g(this.b,(this.w&y)*z+this.u);J(this,this.b+1)},function(a,b){this.g(b,(this.w&y)*z+this.u);J(this,this.b)},function(a){this.i(a)},function(a){this.i(a)},function(a,b){this.g(b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,Q.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,Q.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,Q.call(this,this.f(b),this.f(this.b))))}, -function(a,b){this.g(b,W.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,W.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,W.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,W.call(this,this.f(b),this.f(this.b))))},we,function(a,b){0>T.call(this,this.f(b),this.b)&&J(this,this.u+1)},function(a,b){T.call(this,this.f(b),this.b)||J(this,this.u+1)},function(a,b){0>=T.call(this,this.f(b),this.b)&&J(this,this.u+1)},function(){J(this,this.u+1)},function(a, -b){0<=T.call(this,this.f(b),this.b)&&J(this,this.u+1)},function(a,b){T.call(this,this.f(b),this.b)&&J(this,this.u+1)},function(a,b){0T.call(this,this.f(b),this.f(this.b))&&J(this,this.u+1)},function(a,b){T.call(this,this.f(b),this.f(this.b))||J(this,this.u+1)},function(a,b){0>=T.call(this,this.f(b),this.f(this.b))&&J(this,this.u+1)},function(){J(this,this.u+1)},function(a,b){0<=T.call(this,this.f(b),this.f(this.b))&&J(this,this.u+ -1)},function(a,b){T.call(this,this.f(b),this.f(this.b))&&J(this,this.u+1)},function(a,b){0V.call(this,this.f(b))&&J(this,this.b)},function(a,b){V.call(this,this.f(b))||J(this,this.b)},function(a,b){0>=V.call(this,this.f(b))&&J(this,this.b)},function(){J(this,this.b)},function(a,b){0<=V.call(this,this.f(b))&&J(this,this.b)},function(a,b){V.call(this,this.f(b))&&J(this,this.b)},function(a,b){0V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V.call(this,a)||J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){J(this,this.u+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);V.call(this,a)&&J(this,this.u+ -1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0V.call(this,a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V.call(this,a)||J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0>=V.call(this,a)&&J(this,this.b)},function(a,b){this.g(b,Q.call(this,this.f(b),1));J(this,this.b)},function(a,b){a=this.g(b,Q.call(this, -this.f(b),1));0<=V.call(this,a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));V.call(this,a)&&J(this,this.b)},function(a,b){a=this.g(b,Q.call(this,this.f(b),1));0V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V.call(this,a)||J(this,this.u+1);b&& -this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0>=V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));0<=V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1));V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,Q.call(this,this.f(this.b),1)); -0V.call(this,a)&&J(this,this.b)},function(a,b){a=this.g(b,W.call(this,this.f(b),1));V.call(this,a)||J(this,this.b)},function(a,b){a=this.g(b,W.call(this,this.f(b),1));0>=V.call(this,a)&&J(this,this.b)},function(a,b){this.g(b,W.call(this,this.f(b),1));J(this,this.b)},function(a,b){a=this.g(b,W.call(this,this.f(b),1));0<=V.call(this,a)&&J(this,this.b)}, -function(a,b){a=this.g(b,W.call(this,this.f(b),1));V.call(this,a)&&J(this,this.b)},function(a,b){a=this.g(b,W.call(this,this.f(b),1));0V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,W.call(this,this.f(this.b),1));V.call(this,a)||J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,W.call(this, -this.f(this.b),1));0>=V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,W.call(this,this.f(this.b),1));J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,W.call(this,this.f(this.b),1));0<=V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,W.call(this,this.f(this.b),1));V.call(this,a)&&J(this,this.u+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,W.call(this,this.f(this.b),1));0>>f.i;0>>= -f.i;0>>a.i;0g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h=qa.kb&&c<=qa.Bb&&(b=c-(qa.kb-qa.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==qa.zb&&(b=qa.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.Ba=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;Ob(this)}; -l.wb=function(a){if(!this.b){var b=ed(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.Pa)return;c=Da(c[1]);if(this.b=tb(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 F(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ua=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.P?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Da(b.substring(c,f))),c=f+1}}return a} -function Te(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<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":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; +function fc(a,b){r.call(this,"Panel",a,512);this.K=this.M=0;this.T=b;this.i=this.I=this.u=this.w=0;this.N=this.O=-1;this.P=this.R=this.F=!1;this.S=gc;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};Qb(this)}la(fc,r);l=fc.prototype;l.reset=function(a){this.stop();a&&hc(this,this.w=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(){ic(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){jc(a,b)}}(this,b),a.ontouchstart= +function(a,b){return function(c){ic(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){jc(a,b)}}(this,b),!0):r.prototype.ja.call(this,a,b,c,d)}};l.Ba=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;kc(this);lc(this)};l.ua=function(a,b){if(!b)if(this.T&&mc(),!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 E(this);a.set(0,[this.i,this.w,this.u]);return a.data()}; +l.restore=function(a){if(a=a[0])nc(this,this.i=a[0]),hc(this,this.w=a[1]),oc(this,a[2]);return!0};l.Vb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}lc(this);return!0};function pc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function kc(a,b){for(var c in a.B)pc(a,c,null!=b?b:a.B[c])}function qc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function lc(a){for(var b in a.b)qc(a,b,a.b[b][1])} +l.Gb=function(a,b,c){if(ic(this,b)){if(c){var d=this;setTimeout(function(){jc(d,b);a&&a()},+c);return!1}jc(this,b)}return!0};l.Yb=function(a,b){if("SR"==a)return oc(this,ta(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,qc(this,a,c[1]),!0):!1};l.Zb=function(a){return ic(this,a)?(jc(this,a),!0):!1};function ic(a,b){var c=a.b[b];return c?(qc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=rc&&(a.P=b==sc,a.R=b==tc),!0):!1} +function jc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(qc(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.A.L||(F(this.v,this.i),this.b[uc]&&this.b[uc][1]&&vc(this.v))};l.Qb=function(){};l.Kb=function(a){a||this.v.W()}; +l.Ib=function(a){if(!a&&!this.v.A.L)if(this.b[uc]&&this.b[uc][1])vc(this.v);else{if((a=this.D)&&!Rb(a,!0))Sb(a,!0),wc(a,0,null),Sb(a,!1);else try{var b=this.v.Ma(1);0c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.b["S"+b][1]=a.u&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.i;0f&&(n=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){n=h.size-(e-k);n>f&&(n=f);h.Ka=e-h.C+n;e=k+16384;f-=n;g++;continue}}return Pc(Qc,e,f)}e=new Lc(a,e,n,16384,d);Mc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=n}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Rc[d]+" at "+va(b)),!0):Pc(Sc,b,c)} +function Cc(a,b){var c=a.b[(b&a.u)>>>a.i];a.w++;b=c.D(b&16383,b);a.w--;return b}function Bc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.w++;d.w(c,b&16383,b);a.w--}function Nc(a){for(var b=0,c=[],d=0;d=a.la&&(a.la+=a.ka,c=!0);0<=a.ma&&a.ma<=md(a)&&(a.ka=a.ma=-1,id(a),a.W(),c=!0);c&&a.j(md(a)+" cycles: checksum="+m(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.A.V)a=!0;else{var b=null,c,h=ub(a.id);for(c=0;ca.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&&qd(a.G)}yc(a,a.N);a.N=0;a.M=sb();a.P=0;od(a);return d}function rd(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 sd(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function td(a,b){var c=a.R-=a.S;a.S=0;b&&(a.R=0);return c} +l.Wb=function(){if(this.A.L){this.Ra>=this.$a&&od(this,!0);this.na=0;this.ya=sb();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=rd(this,this.A.Fa?1:this.Ga);try{this.Ma(b)}catch(e){if("number"!=typeof e)throw e;}b=td(this,!0);this.na+=b;this.N+=b;zc(this,b);xc(this,b);this.fa-=b;if(0>=this.fa){this.fa+=this.Ga;++this.ab>=ud&&(this.G&&G(this.G,void 0),this.ab=0);break}}while(this.A.L)}catch(e){this.W();this.G&&this.G.stop(sb(),md(this));Nb(this, +e.stack||e.message);return}if(this.A.L){a=setTimeout;b=this.rb;this.P=sb();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,nd(this)));if(0>c||this.aac&&(this.M-=c),c=0;this.Ra+=this.na;this.P+=c;a(b,c)}}}; +function vc(a,b){if(!Ob(a))if(a.A.L)a.j(a.toString()+" busy");else{nd(a);a.A.L=!0;a.A.Wa=!0;var c=a.J.run;c&&(c.textContent="Halt");a.G&&(b&&qd(a.G,!0),a.G.start(a.M,md(a)));a.D||a.status("Started");setTimeout(a.rb,0)}}l.Ma=function(){return 0};l.W=function(a){var b=!1;if(this.A.L){td(this);yc(this,this.N);this.N=0;this.A.L=!1;if(b=this.J.run)b.textContent="Run";this.G&&this.G.stop(sb(),md(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var pd=30,ud=15,fd=["power","reset"]; +function vd(a){var b=+a.model||1001;ed.call(this,a,1E6);this.qb=b;this.Oa=+a.addrReset||0;this.Cb=wd.bind(this);this.w=I.bind(this);this.wa=null;this.nb=[];this.A.complete=!1}la(vd,ed);l=vd.prototype;l.reset=function(){this.status("Model "+this.qb);this.A.L&&this.W();this.b=this.K=this.Ha=0;this.i=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.i;this.B=0;this.f=this.Sb;this.g=this.cc;this.wa=null;hd(this);this.A.error=!1;ed.prototype.reset.call(this)}; +l.vb=function(){return 0};l.save=function(){var a=new E(this);a.set(0,[this.b,this.K,this.Ha,this.i,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.A.Z]);a.set(3,xd(this));a.set(4,sd(this));return a.data()}; +l.restore=function(a){var b;b=a[0];ha();da();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.b=b.next().value;this.K=b.next().value;this.Ha=b.next().value;this.i=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];nd(this,b[1]);this.A.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.i].f(a&16383,a)};l.cc=function(a,b){var c=this.H;a=this.va=a;c.b[(a&c.u)>>>c.i].g(b,a&16383,a);return b}; +l.Ma=function(a){this.A.complete=!0;var b=this.D?zd(this.D)?1:this.A.Wa?-1:0:0,c=a?this.A.Wa?0:1:-1;this.A.Wa=!1;this.R=this.S=a;this.B=this.B&-5|(b?4:0);do{if(this.B){if(this.B&4){if(Ad(this.D,this.i,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&&Ad(this.D,this.i,c)){this.W();break}if(0>c)break}}this.B&=15;this.K&4194304?this.K=this.f(this.b):0<=this.qa?(this.K=this.Ha=this.f(this.qa),this.qa=-1):(this.K=this.Ha= +this.f(this.xa=this.i),this.i=(this.i+1)%Xb);this.K&=8388607;this.b=this.K&262143;if(a=this.K>>18&15)this.b=this.b+this.f(a)&Wb;a=this.K&4194304?-1:this.Ha/cc|0;0<=a&&this.Cb(a)}while(0>4].call(this,a,a&15)}function M(a){this.w(a)} +function Cd(){var a=0,b=this.f(this.b),c=b/dc&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*dc+(d<<24)+(b&16777215);a&&(b=(b+a)%C);this.g(this.b,b)}function Dd(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/dc&63,d=this.I>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.I=-1}} +function Ed(a,b){a=this.f(this.b);if(0>this.I)this.I=a,this.K=this.b|4194304;else{var c=this.I/dc&63,d=this.I>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%C;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.I=-1}}function Fd(a,b){this.g(b,this.f(this.b))}function Gd(a,b){this.g(b,this.b)}function Hd(a,b){this.g(this.b,this.f(b))}function ce(a,b){this.g(b,0)}function de(a,b){this.g(b,B-this.f(b))}function ee(a,b){this.g(b,B)} +function fe(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,ge(a,d,c)+(c-(c&x)))}function he(a,b){var c=this.f(b);this.g(b,ge(a,c,0))}function ie(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,ge(a,c,b)+(b-(b&x)))}function je(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function ke(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,ge(a,d,c)+c)} +function le(a,b){var c=this.b*y,d=this.f(b);this.g(b,ge(a,d,c)+c)}function me(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,ge(a,c,b)+b)}function ne(a,b){var c=this.f(this.b),d=(c&x)*y,c=ge(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function oe(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,pe(a,d,c)+c)}function qe(a,b){var c=this.f(b);this.g(b,pe(a,c,this.b)+this.b)}function re(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,pe(a,c,b)+b)} +function se(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Yb?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function te(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,pe(a,d,c)+c)}function ue(a,b){var c=this.f(b);this.g(b,pe(a,c,0))}function ve(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,pe(a,c,b)+b)}function we(a,b){var c=this.f(this.b),d=c/y|0,c=pe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function N(a){xe[a&7].call(this,a,a>>3&127)} +function ye(){}function ze(){}function I(a){this.j("undefined opcode: "+va(a));yd(this,-1);this.W()}function Ae(a){a>z&&(a!=A?a=$b-a:this.u|=163840);return a}function O(a,b){var c=(a+b)%C;Be.call(this,a,b,c);return c} +function Ce(a,b,c){var d=!1,e=!1,f=b-b%A;a=a%A+b*A%C;b=this.F=f+Math.trunc(b/2);c>z&&(c=C-c,d=!d);b>z&&(a?(b=B-b,a=C-a):b&&(b=C-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;0b[0]&&(b[0]+=C,b[1]--),Ee(this.bb,this.oa),Fe(this.pa)))break;Ge(this.ga);Ge(this.oa)}while(!Fe(this.oa)); +a=this.bb[0];this.F=this.pa[0];d&&a&&(a=C-a);e&&this.F&&(this.F=C-this.F);return a} +function He(a,b,c){var d=a,e=b;b=!1;var f;d>z&&(d=C-d,b=!b);e>z&&(e=C-e,b=!b);if(dz)&&(f!=B||a<=z)&&(this.u|=131072),a;c=a;b=f;a=b-b%A;b=2*b%C+Math.trunc(c/A);c=a+c%A;d=b-b%A;a!=d&&(b=a+(b-d),this.u|=131072);this.F=c;return b} +function Ie(a){a?a==A?this.u|=163840:a=$b-a:this.u|=98304;return a}function P(a,b){var c=a-b;0>c&&(c+=C);Be.call(this,c,b,a);return c}function Be(a,b,c){a=Math.trunc(a/Zb);b=Math.trunc(b/Zb);c=Math.trunc(c/Zb);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 Q(a,b){return((a/D|0)&(b/D|0))*D+((a&b)>>>0)}function S(a,b){return Q(a,(~(b/D|0)&15)*D+(~b>>>0))}function Je(a,b){return(a>>0)}function T(a,b){return(a/D|0|b/D|0)*D+((a|b)>>>0)}function U(a){return a>>0)}function X(a){return(a/y|0)+(a&x)*y}function pe(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Yb?x*y:0}return b}function ge(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b} +function Ee(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=C&&(a[0]%=C,a[1]++)}function De(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Ge(a){a[1]%2&&(a[0]+=C);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Fe(a){return!a[0]&&!a[1]} +var Bd=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,I,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},Cd,function(a,b){0>this.I&&Cd.call(this);Dd.call(this,0,b)},Dd,function(a,b){0>this.I&&Cd.call(this);Ed.call(this,0,b)},Ed,function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, +function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)}, +function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},Fd,Gd,Hd,function(a,b){b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(b,a)},function(a,b){this.g(b,this.b*y)},function(a,b){a=this.f(b);a=(a/y|0)+(a&x)*y;this.g(this.b,a)},function(a,b){a=this.f(this.b);a=(a/y|0)+(a&x)*y;this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,Ie.call(this,this.f(this.b)))},function(a,b){this.g(b,Ie.call(this,this.b))},function(a,b){this.g(this.b, +Ie.call(this,this.f(b)))},function(a,b){a=Ie.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,Ae.call(this,this.f(this.b)))},function(a,b){this.g(b,this.b)},function(a,b){this.g(this.b,Ae.call(this,this.f(b)))},function(a,b){a=Ae.call(this,this.f(this.b));this.g(this.b,a);b&&this.g(b,a)},function(a,b){this.g(b,He.call(this,this.f(b),this.f(this.b),!0))},function(a,b){this.g(b,He.call(this,this.f(b),this.b,!0))},function(a,b){this.g(this.b,He.call(this,this.f(b),this.f(this.b), +!0))},function(a,b){this.g(this.b,this.g(b,He.call(this,this.f(b),this.f(this.b),!0)))},function(a,b){this.g(b,He.call(this,this.f(b),this.f(this.b)));this.g(b+1&15,this.F)},function(a,b){this.g(b,He.call(this,this.f(b),this.b));this.g(b+1&15,this.F)},function(a,b){this.g(this.b,He.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,He.call(this,this.f(b),this.f(this.b))));this.g(b+1&15,this.F)},function(a,b){a=Ce.call(this,this.f(b),0,this.f(this.b));0>a||(this.g(b,a),this.g(b+ +1&15,this.F))},function(a,b){a=Ce.call(this,this.f(b),0,this.b);0>a||(this.g(b,a),this.g(b+1&15,this.F))},function(a,b){a=Ce.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=Ce.call(this,this.f(b),0,this.f(this.b));0>a||this.g(this.b,a)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=Ce.call(this,c,a,this.f(this.b));0>c||(this.g(b,c),this.g(b+1&15,this.F))},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=Ce.call(this,c,a,this.b);0>c||(this.g(b,c),this.g(b+1&15,this.F))}, +function(a,b){a=this.f(b);b=this.f(b+1&15);b=Ce.call(this,b,a,this.f(this.b));0>b||this.g(this.b,b)},function(a,b){a=this.f(b);var c=this.f(b+1&15),c=Ce.call(this,c,a,this.f(this.b));0>c||(this.g(b,this.g(this.b,c)),this.g(b+1&15,this.F))},function(a,b){var c=(this.b<<14>>14)%256;if(c){a=this.f(b);var d=a>z?-(C-a):a;0d?A:0,c=z):(d=d*Math.pow(2,c)%A,c=A-Math.pow(2,35-c)),a<=z?a+c>z&&(this.u|=131072):a-c<=z&&(this.u|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+C:d; +this.g(b,a)}},function(a,b){if(a=(this.b<<14>>14)%36){var c=this.f(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%C+Math.trunc(c/Math.pow(2,36-a));this.g(b,c)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.g(b,c)}},function(a,b){a=0;var c=this.f(b);if(c){for(;c>14)%256){var c,d=this.f(b),e=this.f(b+1&15);if(0z&& +dz&&ez&&(this.u|=131072):e-c<=z&&(this.u|=131072);e=0;f>z&&(d+=A,e+=A)}else d=d*Math.pow(2,a)%A+Math.trunc(e%A/Math.pow(2,35-a)),e=e*Math.pow(2,a)%A,c=A-Math.pow(2,35-a),f<=z?f+c>z&&(this.u|=131072):(f-c<=z&&(this.u|=131072),d+=A,e+=A)}else-36>=a?(e=-72>=a?d>z?B:0:Math.trunc(d%A/Math.pow(2,-a-35)),d<=z?d=0:(d=B,e+=A)):(c=d>z?C-Math.pow(2,36+a):0,e=Math.trunc(e%A/Math.pow(2,-a))+ +d%A*Math.pow(2,35+a)%A,d=Math.trunc(d/Math.pow(2,-a))+c,d>z&&(e+=A));this.g(b,d);this.g(b+1&15,e)}},function(a,b){if(a=(this.b<<14>>14)%72){var c=this.f(b),d=this.f(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%C+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%C+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%C+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%C+Math.trunc(d/Math.pow(2,72-a)));this.g(b,c);this.g(b+1&15,d)}},function(a,b){if(a=(this.b<<14>>14)%256){var c=this.f(b),d=this.f(b+ +1&15);0=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)%C,c=Math.trunc(c/Math.pow(2,-a)));this.g(b,c);this.g(b+1&15,d)}},I,function(a,b){a=this.f(b);this.g(b,this.f(this.b));this.g(this.b,a)},function(a,b){a=!1;for(var c=this.f(b),d=c/y|0,c=c&x;!a;)this.g(c,this.f(d)),c==this.b&&(a=!0),d=d+1&x,c=c+1&x,this.A.L||(this.g(b,d* +y+c),a||yd(this,-1),a=!0)},function(a,b){a=(this.f(b)+262145)%B;this.g(b,a);a=A&&F(this,this.b)},function(a){this.w(a)},function(a,b){a=b<<14;this.u&a&&(this.u&=~a,F(this,this.b))},function(){this.qa=this.b},I,function(a){this.w(a)},function(a,b){a=this.f(b);a+=262145;this.g(a&x,this.f(this.b));a>=C&&(a-=C);a/y|0||(this.u|=262144);this.g(b,a)},function(a,b){a=this.f(b);var c=this.f(a&x);this.g(this.b,c);this.b==b&&(a=c);a-=262145; +0>a&&(a+=C);(a/y|0)==x&&(this.u|=262144);this.g(b,a)},function(a){this.w(a)},function(){this.g(this.b,(this.u&x)*y+this.i);F(this,this.b+1)},function(a,b){this.g(b,(this.u&x)*y+this.i);F(this,this.b)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){this.g(b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,O.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,O.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,O.call(this,this.f(b),this.f(this.b))))}, +function(a,b){this.g(b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(b,P.call(this,this.f(b),this.b))},function(a,b){this.g(this.b,P.call(this,this.f(b),this.f(this.b)))},function(a,b){this.g(this.b,this.g(b,P.call(this,this.f(b),this.f(this.b))))},ye,function(a,b){0>Je(this.f(b),this.b)&&F(this,this.i+1)},function(a,b){Je(this.f(b),this.b)||F(this,this.i+1)},function(a,b){0>=Je(this.f(b),this.b)&&F(this,this.i+1)},function(){F(this,this.i+1)},function(a,b){0<=Je(this.f(b),this.b)&& +F(this,this.i+1)},function(a,b){Je(this.f(b),this.b)&&F(this,this.i+1)},function(a,b){0Je(this.f(b),this.f(this.b))&&F(this,this.i+1)},function(a,b){Je(this.f(b),this.f(this.b))||F(this,this.i+1)},function(a,b){0>=Je(this.f(b),this.f(this.b))&&F(this,this.i+1)},function(){F(this,this.i+1)},function(a,b){0<=Je(this.f(b),this.f(this.b))&&F(this,this.i+1)},function(a,b){Je(this.f(b),this.f(this.b))&&F(this,this.i+1)},function(a,b){0U(this.f(b))&&F(this,this.b)},function(a,b){U(this.f(b))||F(this,this.b)},function(a,b){0>=U(this.f(b))&&F(this,this.b)},function(){F(this,this.b)},function(a,b){0<=U(this.f(b))&&F(this,this.b)},function(a,b){U(this.f(b))&&F(this,this.b)},function(a,b){0U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)||F(this,this.i+ +1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0>=U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){F(this,this.i+1);b&&this.g(b,this.f(this.b))},function(a,b){a=this.f(this.b);0<=U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.f(this.b);0U(a)&&F(this,this.b)},function(a, +b){a=this.g(b,O.call(this,this.f(b),1));U(a)||F(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0>=U(a)&&F(this,this.b)},function(a,b){this.g(b,O.call(this,this.f(b),1));F(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0<=U(a)&&F(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));U(a)&&F(this,this.b)},function(a,b){a=this.g(b,O.call(this,this.f(b),1));0U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));U(a)||F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0>=U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0<=U(a)&&F(this,this.i+1);b&&this.g(b,a)}, +function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,O.call(this,this.f(this.b),1));0U(a)&&F(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));U(a)||F(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0>=U(a)&&F(this,this.b)},function(a,b){this.g(b,P.call(this, +this.f(b),1));F(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0<=U(a)&&F(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));U(a)&&F(this,this.b)},function(a,b){a=this.g(b,P.call(this,this.f(b),1));0U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));U(a)||F(this, +this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>=U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0<=U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));U(a)&&F(this,this.i+1);b&&this.g(b,a)},function(a,b){a=this.g(this.b,P.call(this,this.f(this.b),1));0>>f.i;0>>= +f.i;0>>a.i;0g&&g>=-A&&(g+=C);for(var g=Math.trunc(Math.abs(g))%C,h=d;f--&&h=sa.kb&&c<=sa.Bb&&(b=c-(sa.kb-sa.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==sa.zb&&(b=sa.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.Ba=function(a,b,c,d){this.G=a;this.H=b;this.v=c;this.D=d;Qb(this)}; +l.wb=function(a){if(!this.b){var b=gd(this.G,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Fa(c[0]);if(d!=this.Pa)return;c=Fa(c[1]);if(this.b=vb(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 E(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Ua=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;da.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.P?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Fa(b.substring(c,f))),c=f+1}}return a} +function Ve(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<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":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 Ue(a,b,c){var d;if(b){b=Ve(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1,ja--;g=u+g;d>>=8}d=q(c,0,!0)+" "+c+". "+ta(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e} -function Ze(a,b){if(b)return Ye(a,b,a.T[b]);var c=0;for(b in a.T)Ye(a,b,a.T[b]),c++;return 0>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Xe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; -function $e(a){Re.call(this,a);this.xa=!1;this.la=!0;this.va=18;this.wa=X();this.K=X(0);this.ga=X(0);this.ba=X(0);this.F=[];this.b=this.M=this.I=[];af(this);this.R=this.ka=0;this.i=[];this.oa=void 0;bf(this);this.D=this;this.ma={};this.X=this.sb=0;this.S=null;this.O=[];cf(this,a.messages);this.qa=a.commands;this.N=0;this.Aa=this.pa=null;this.B=this.za=this.ya=this.fa=this.na=0;this.ea=this.aa=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return jd(b,a)}):void 0===global[w]&&(global[w]= -function(a){return jd(b,a)})}p($e,Re);function df(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 ef(a,b,c,d){a.C=b;a.Sa=c||!1;a.ha=!1;a.ca=d}function ff(a){return[a.C,a.Sa,a.ha,a.ca,a.Va]}function gf(a,b){var c=X(b[0],b[1],b[2]);c.ha=b[3];b[4]&&(c.ob=Se(a,c.Va=b[4]));return c}l=$e.prototype; -l.Ba=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;this.va=b.F;(a=ed(a,"messages"))&&cf(this,a);hf(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=df(jf(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;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=Pc[c],n&&d.j(q(n.id,8)+" %"+q(e<a&&a>=-B&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function Z(a,b){return L(a,b.C)}function mf(a){return ta(a/Vb,6)+" "+ta(a%Vb,6)} -function cf(a,b){a.D=a;a.X=a.sb=536870916;a.S=null;a.O=[];b=Se(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in cc){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>23&&a.v.xa==b&&(b=wd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(ef(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1} -function Df(a,b,c,d){var e=X(b.C),f=a.Ca(b,1),g,h,k,m=0,n=f/Zb|0,u;for(u in Ef)if(g=Ef[u][n&u]){h=+u;n>>=6;switch(h){case 32512:k=Ff;m=n&3;break;case 32256:k=lg;m=n&7;break;case 29248:k=ng,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&g>og&&(k="B");k=pg[g||0]+k;if(g){if(28700==h)m=f/$b&127,h=L(a,m,-1);else if(m=f>>23&15,h=L(a,m,-1),g==qg&&(g=rg[m]))k=pg[g],h="";k=Ca(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=L(a,f&262143,-1);(f=f>>18&15)&&(k+="("+L(a,f,-1)+")")}else k=Ca(k,8)+mf(f);f=k;g="";h=Z(a, -e)+":";if(-1!==e.C&&-1!==b.C){do if(k=a.Ca(e,1),g+=" "+mf(k),null==e.C)break;while(e.C!=b.C)}h+=Ca(g,16)+f;c&&(h=Ca(h,48)+";"+(c||""),h=a.v.A.Fa?h+("cycles="+kd(a.v).toString()+" cs="+q(a.v.za)):h+(null!=d?"="+d.toString():""));return h}function af(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b>>d.i],!0);a.I=["bw"];a.na=0;a.ka=0} -l.Ea=function(a,b,c){var d=!0;c||sg(this,a,b,!1,!0);if(a!=this.b){var e=df(b);if(-1===e)this.j("invalid address: "+Z(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ea(e&16383,a==this.I)}}d&&(a.push(b),c?b.ha=!0:(tg(this,a,a.length-1,"set"),bf(this)));return d};function sg(a,b,c,d,e){var f=!1;c=df(c);for(var g=1;g>>d.i],b==a.I));h.ha||bf(a);break}}return f} -function ug(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=ta(d,2);ef(e.wa,d);f+="="+L(e,e.Ca(e.wa),36)+" ";c+=f}if(b){b="";for(d=0;d=rf?1:d==pf?23:18)+" "),b+=e;c+="\n"+b}return c}l.tb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],u=Ea(n,k,a.tb);0>u&&n.splice(-(u+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({hd:b,C:c,Hb:d,U:e,pb:f})}function xg(a,b,c){var d=[],e=df(b)>>>0;for(b=0;b>>0,h=f.Hb;if(e>=g&&eb){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case of:J(h, -g);ef(a.K,h.u);break;case rf:f=65536;break;case sf:f=32768;break;case tf:f=131072;break;case uf:f=32;break;case vf:f=262144}f&&(h.w=g?h.w|f:h.w&~f);K(a.G);a.j("updated registers:")}}a.j(wg(a,e));c&&(ef(a.K,d.u),Bf(a,Z(a,a.K)))}}function Bg(a,b){b=Da(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[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(Df(a,b,g,f));e-=b.C-k;c++}}} -function vg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(zf+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(Nb(a)&&0n||"z"og&&(Id="B");if(Fd== -pg[xb]+Id){If=29248!=Bc?Za:(Za&3)<<1|(Za&12)<<2;G=(Hd|If<<6)*Zb;break}}if(0<=G)break}if(0<=G)break}if(0<=G)if(Ac)for(var Jd=Ac.split(","),$a=0;$aP||127P||15P||262143P||15la.length&&(a.j("note: only "+la.length+" available"),ca=la.length);ga-=ca;0>ga&&(null==la[la.length-1].C?(ca=ga+ca,ga=0):ga+=la.length);var Od=[];"call"==Of&&(zb=1E5,Od=["CALL"]);for(void 0!== -Nf&&a.j(ca+" instructions earlier:");0=la.length&&(ga=0);a.oa=ca;Qf++;zb--}}Qf||(a.j("no "+Pf+"history available"),a.oa=void 0)}else{var fb=jf(a,ka,a.ga);if(fb){var Ia=0,Tf="ds"==cb;if(ya){if("l"==ya.charAt(0))ya=ya.substr(1)||fh,Ia=We(a,ya);else{var Uf=jf(a,ya);Uf&&(Ia=Uf.C-fb.C)}0>Ia&&(Ia=0);65536Yf;Yf++)Wf+=String.fromCharCode((Dc%64|0)+32),Dc/=64}Ja&&(Ja+="\n");Ja=Tf?Ja+(Ka+","):Ja+(ka+": "+Ka+(0>Xf?" "+Wf:""))}Ja&&a.j(Ja);a.ca=hh}}}}break;case "e":if("else"==g[0])break;var Zf,$f,ag=g[0],Rd=g[1];"e"==ag||"ew"==ag?(Zf=a.Ca,$f=a.mb):Rd=null; -if(null==Rd)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Ec=jf(a,Rd,a.ga);if(Ec)for(var Sd=2;SdVd;){for(var La=null,lh=256;65536>Db.C>>>0;){Wd.C=a.Ca(Db,2);if(null==Db.C||!lh--)break;if(!(Wd.C&1)){for(var mh=a,Fc=Wd,cg=null,Eb=Fc.C,dg=Eb,Xd=1;6>=Xd&&Eb;Xd++){if(2< -Xd){Fc.C=Eb;var Gc=Df(mh,Fc);if(0<=Gc.indexOf("JSR")){var eg=Gc.indexOf(" ");if(Eb+(Gc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=Gc;break}}}Eb-=2}Fc.C=dg;if(La=cg)break}}if(!La||null==La)break;var fg=null;if("ks"==kh){var gg=La.match(/[0-9A-F]+$/);gg&&(fg=Ag(a,gg[0]))}La=Ca(La,50)+" ;"+(fg||"stack="+Z(a,Db));a.j(La);Vd++}Vd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Ag(a,g[1],!0);break}f=!0;break;case "m":a:{var ma,na=null,I=g[1];"?"==I&&(I=void 0);if(void 0!==I){var za=0;if("all"== -I)za=1879046143,I=null;else if("on"==I)na=!0,I=null;else if("off"==I)na=!1,I=null;else{"keys"==I&&(I="key");"kbd"==I&&(I="keyboard");for(ma in cc)if(I==ma){za=cc[ma];na=!!(a.X&za);break}if(!za){a.j("unknown message category: "+I);break a}}if(za)if("on"==g[2])a.X|=za,na=!0;else if("off"==g[2]&&(a.X&=~za,na=!1,1073741824==za)){for(var hg=1E3<=a.O.length?a.O.length-1E3:0;hgjg)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 kg=X(a.v.u);a.Ca(kg);a.N?(a.Ea(a.b,kg,!0),xf(a)||(a.G&&od(a.G),a.N=0)):Cg(a,jg?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}Af(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Gb=+g[2];if(8==Gb||10==Gb||16==Gb)a.ca=Gb;else{a.j("invalid base: "+Gb);break}}a.j("default base: "+a.ca);break;case "cs":var Hb;void 0!==g[3]&&(Hb=+g[3]);switch(g[2]){case "int":a.v.ka=Hb;break;case "start":a.v.Aa=Hb;break;case "stop":a.v.ma=Hb;break;default:a.j("unknown cs option");break a}void 0!== -Hb&&gd(a.v);a.j("checksums "+(a.v.A.Fa?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ld(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":Cg(a,g[0],g[1]);break;case "u":Bf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){zg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Tb||"PDP10")+" version 1.34.2 ("+a.v.qb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Bg(a,b.substr(1));break}var Yd="commands:",Zd;for(Zd in Eg)Yd+="\n"+Ca(Zd,9)+Eg[Zd];xd(a)||(Yd+="\nnote: history disabled if no exec breakpoints");a.j(Yd);break;default:f=!0}f&&(a.j("unknown command: "+ -b),d=!1)}}catch(mg){a.j("Debugger "+(mg.stack||mg.message)),d=!1}return d}function jd(a,b,c){b=Se(a,b,c);for(var d in b)if(!vg(a,b[+d]))return!1;return!0} -var Eg={"?":"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"},og=20,qg=85,pg=".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 CAM 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(" "), -of=0,pf=1,qf=2,rf=3,sf=4,tf=5,uf=6,vf=7,nf="PC RA EA C0 C1 OV ND PD".split(" "),Fg={},Ef=(Fg[28672]={0:101},Fg[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:qg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Fg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:og,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},Fg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Fg[29248]={24576:79,24640:80,25088:81,25152:82},Fg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97, -28692:98,28696:99,28700:100},Fg),Ff=["","I","M","S"],lg=" L E LE A GE N G".split(" "),ng="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),rg={8:102,4:103,2:104,6:105,1:106},wf=1E3,zf=">> ";Xa(function(){for(var a=x(document,w,"debugger"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bJg){if(Kg(d,this.M)){this.B=new F(this,"1.34.2",Tg);Kg(this.B)&&(Ug(this,d),a=Vg,Wg(this.B));this.B.set(Qg,Fa());Xg(this.B);var e=this.b&&!this.K;if(a==Rg||rb("Click OK to restore the previous "+Tb+" machine state, or CANCEL to reset the machine.")){if(c=Pg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Kg(d,g):("error"==f&&"no machine state"!= -g?(this.da("Error: "+g),"unable to verify user"==g&&(Qa(Yg,""),this.i=null)):this.j(f+": "+g),Wg(d),Kg(d)?(c=Pg(d),e=!0):c=!1))}e&&Ng(this,c?d:null)}else a==Vg&&d.clear()}else Ng(this);delete this.M;delete this.I}e=sb(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Zg(this,this.v,b,c,a),K(this,-2),this.v.Z());this.P&&(Ug(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0}; -function Ug(a,b){if(rb("There may be a problem with your "+Tb+" machine.\n\nTo help us diagnose it, click OK to send this "+Tb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Tb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ga("http://www.pcjs.org/api/v1/report",d,!0)}} -function Dg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new F(a,"1.34.2"),g=new F(a,"1.34.2",Og),h=Fa();g.set(Qg,h);f.set(Qg,h);f.set($g,"1.34.2");f.set(ah,window?window.location.href:null);f.set(bh,window?window.navigator.userAgent:"");a.v&&a.v.ia&&(c&&(b&&(a.v.A.Z=a.v.A.L),a.v.W()),d=a.v.ia(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=sb(a.id),k=0;k=d||30<=(c.Xa+=d))&&(e.textContent=c.A.L?c.aa.toFixed(2)+"Mhz":"Stopped",c.Xa=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.A.L;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.u;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?ta(e,void 0):q(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.u:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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(u){g=null,a=u.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ga(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);vh(a,b,c)}})}else c(a,null)} -function wh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&x(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Aa(a))}function g(a){f("Error: "+a);m&&(--sh||jb(!0));m=!1}var h,k,m=!0;sh++;pb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var u=document.head||document.getElementsByTagName("head")[0],H=document.createElement("style");H.type="text/css";H.styleSheet?H.styleSheet.cssText=n:H.appendChild(document.createTextNode(n));u.appendChild(H)}d|| -(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?th(d,null,a,null,!1,f,function(a,e){e?(ob(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--sh||jb(!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),--sh|| -jb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?th(c,b,a,e,!0,f,n):uh(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(ja){g(ja.message)}return m}window.embedPDP10=function(a,b,c,d){jb(!1);return wh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){jb(!1);return wh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return ub(b,a+".machine")}; -window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!yb[a]){for(var c=!0,d=yb,e=a,f=b.length,g=[],h=[],k="",m=null,n=0;n=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e>=1,ma--;g=w+g;d>>=8}d=m(c,0,!0)+" "+c+". "+va(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.j((null!=b?b+": ":"")+d);return e} +function af(a,b){if(b)return $e(a,b,a.T[b]);var c=0;for(b in a.T)$e(a,b,a.T[b]),c++;return 0>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var Ze={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9}; +function bf(a){Te.call(this,a);this.xa=!1;this.la=!0;this.va=18;this.wa=Y();this.K=Y(0);this.ga=Y(0);this.ba=Y(0);this.F=[];this.b=this.M=this.I=[];cf(this);this.R=this.ka=0;this.i=[];this.oa=void 0;df(this);this.D=this;this.ma={};this.X=this.sb=0;this.S=null;this.O=[];ef(this,a.messages);this.qa=a.commands;this.N=0;this.Aa=this.pa=null;this.B=this.za=this.ya=this.fa=this.na=0;this.ea=this.aa=null;var b=this;window?void 0===window[u]&&(window[u]=function(a){return ld(b,a)}):void 0===global[u]&&(global[u]= +function(a){return ld(b,a)})}la(bf,Te);function ff(a){a=a&&a.C;null==a&&(a=-1);return a}function Y(a,b,c){return{C:void 0===a?null:a,Sa:void 0===b?!1:b,ha:!1,ca:c}}function gf(a,b,c,d){a.C=b;a.Sa=c||!1;a.ha=!1;a.ca=d}function hf(a){return[a.C,a.Sa,a.ha,a.ca,a.Va]}function jf(a,b){var c=Y(b[0],b[1],b[2]);c.ha=b[3];b[4]&&(c.ob=Ue(a,c.Va=b[4]));return c}l=bf.prototype; +l.Ba=function(a,b,c,d){this.H=b;this.G=a;this.v=c;this.ea=a.u;this.va=b.F;(a=gd(a,"messages"))&&ef(this,a);kf(this,function(a){a:{var b=d.H.b,c=a[0],e=a=0,k=b.length;if(c){a=ff(lf(d,c,d.ga));if(-1===a){d.j("invalid address: "+c);break a}e=a>>>d.H.i;k=1}d.j("blockid physical blockaddr used size type");d.j("-------- --------- --------- ------ ------ ----");for(var c=-1,n=0;k--;){var p=b[e];p.type==c?n++||d.j("..."):(c=p.type,n=Rc[c],p&&d.j(m(p.id,8)+" %"+m(e<a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function Z(a,b){return H(a,b.C)}function of(a){return va(a/Xb,6)+" "+va(a%Xb,6)} +function ef(a,b){a.D=a;a.X=a.sb=536870916;a.S=null;a.O=[];b=Ue(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ec){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>23&&a.v.xa==b&&(b=yd(a.v,1)));if(0d&&(d=a.v.f(b)),0<=d&&(gf(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1} +function Ff(a,b,c,d){var e=Y(b.C),f=a.Ca(b,1),g,h,k,n=0,p=f/ac|0,w;for(w in Gf)if(g=Gf[w][p&w]){h=+w;p>>=6;switch(h){case 32512:k=Hf;n=p&3;break;case 32256:k=ng;n=p&7;break;case 29248:k=pg,n=(p&48)>>2|(p&6)>>1}break}k=k&&k[n]||"";"S"==k&&g>qg&&(k="B");k=rg[g||0]+k;if(g){if(28700==h)n=f/bc&127,h=H(a,n,-1);else if(n=f>>23&15,h=H(a,n,-1),g==sg&&(g=tg[n]))k=rg[g],h="";k=Ea(k,8)+(h?h+",":"");f&4194304&&(k+="@");k+=H(a,f&262143,-1);(f=f>>18&15)&&(k+="("+H(a,f,-1)+")")}else k=Ea(k,8)+of(f);f=k;g="";h=Z(a, +e)+":";if(-1!==e.C&&-1!==b.C){do if(k=a.Ca(e,1),g+=" "+of(k),null==e.C)break;while(e.C!=b.C)}h+=Ea(g,16)+f;c&&(h=Ea(h,48)+";"+(c||""),h=a.v.A.Fa?h+("cycles="+md(a.v).toString()+" cs="+m(a.v.za)):h+(null!=d?"="+d.toString():""));return h}function cf(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b>>d.i],!1)}a.M=["br"];if(a.I)for(b=1;b>>d.i],!0);a.I=["bw"];a.na=0;a.ka=0} +l.Ea=function(a,b,c){var d=!0;c||ug(this,a,b,!1,!0);if(a!=this.b){var e=ff(b);if(-1===e)this.j("invalid address: "+Z(this,b)),d=!1;else{var f=this.H;f.b[e>>>f.i].Ea(e&16383,a==this.I)}}d&&(a.push(b),c?b.ha=!0:(vg(this,a,a.length-1,"set"),df(this)));return d};function ug(a,b,c,d,e){var f=!1;c=ff(c);for(var g=1;g>>d.i],b==a.I));h.ha||df(a);break}}return f} +function wg(a,b){for(var c=1;cd;d++){!d||d&3||(c+="\n");var e=a,f=va(d,2);gf(e.wa,d);f+="="+H(e,e.Ca(e.wa),36)+" ";c+=f}if(b){b="";for(d=0;d=tf?1:d==rf?23:18)+" "),b+=e;c+="\n"+b}return c}l.tb=function(a,b){return a[0]>b[0]?1:a[0]>>0,g],w=Ga(p,k,a.tb);0>w&&p.splice(-(w+1),0,k)}n&&(h.a=n.replace(/''/g,'"'))}a.F.push({hd:b,C:c,Hb:d,U:e,pb:f})}function zg(a,b,c){var d=[],e=ff(b)>>>0;for(b=0;b>>0,h=f.Hb;if(e>=g&&eb){a.j("unknown register: "+f);return}var f=0,h=a.v;switch(b){case qf:F(h, +g);gf(a.K,h.i);break;case tf:f=65536;break;case uf:f=32768;break;case vf:f=131072;break;case wf:f=32;break;case xf:f=262144}f&&(h.u=g?h.u|f:h.u&~f);G(a.G);a.j("updated registers:")}}a.j(yg(a,e));c&&(gf(a.K,d.i),Df(a,Z(a,a.K)))}}function Dg(a,b){b=Fa(b);var c=b.match(/^(['"])(.*?)\1$/);c?1h[0].indexOf("+"))){var n=h[0]+":";h[2]&&(n+=" "+h[2]);a.j(n)}h[3]&&(g=h[3],f=null);h=a.ba;n=b;h.C=n.C;h.Sa=n.Sa;h.ha=n.ha;h.ca=n.ca;a.j(Ff(a,b,g,f));e-=b.C-k;c++}}} +function xg(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.j(Bf+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(Pb(a)&&0p||"z"qg&&(Ld="B");if(Id== +rg[Bb]+Ld){Kf=29248!=Ec?cb:(cb&3)<<1|(cb&12)<<2;J=(Kd|Kf<<6)*ac;break}}if(0<=J)break}if(0<=J)break}if(0<=J)if(Dc)for(var Md=Dc.split(","),db=0;dbR||127R||15R||262143R||15oa.length&&(a.j("note: only "+oa.length+" available"),fa=oa.length);ja-=fa;0>ja&&(null==oa[oa.length-1].C?(fa=ja+fa,ja=0):ja+=oa.length);var Rd=[];"call"==Qf&&(Db=1E5,Rd=["CALL"]);for(void 0!== +Pf&&a.j(fa+" instructions earlier:");0=oa.length&&(ja=0);a.oa=fa;Sf++;Db--}}Sf||(a.j("no "+Rf+"history available"),a.oa=void 0)}else{var jb=lf(a,na,a.ga);if(jb){var La=0,Vf="ds"==gb;if(Ba){if("l"==Ba.charAt(0))Ba=Ba.substr(1)||hh,La=Ye(a,Ba);else{var Wf=lf(a,Ba);Wf&&(La=Wf.C-jb.C)}0>La&&(La=0);65536$f;$f++)Yf+=String.fromCharCode((Gc%64|0)+32),Gc/=64}Ma&&(Ma+="\n");Ma=Vf?Ma+(Na+","):Ma+(na+": "+Na+(0>Zf?" "+Yf:""))}Ma&&a.j(Ma);a.ca=jh}}}}break;case "e":if("else"==g[0])break;var ag,bg,cg=g[0],Ud=g[1];"e"==cg||"ew"==cg?(ag=a.Ca,bg=a.mb):Ud=null; +if(null==Ud)a.j("edit memory commands:"),a.j("\tew [a] [...] edit words at address a");else{var Hc=lf(a,Ud,a.ga);if(Hc)for(var Vd=2;VdYd;){for(var Oa=null,nh=256;65536>Hb.C>>>0;){Zd.C=a.Ca(Hb,2);if(null==Hb.C||!nh--)break;if(!(Zd.C&1)){for(var oh=a,Ic=Zd,eg=null,Ib=Ic.C,fg=Ib,$d=1;6>=$d&&Ib;$d++){if(2< +$d){Ic.C=Ib;var Jc=Ff(oh,Ic);if(0<=Jc.indexOf("JSR")){var gg=Jc.indexOf(" ");if(Ib+(Jc.indexOf(" ",gg+1)-gg-1)/2==fg){eg=Jc;break}}}Ib-=2}Ic.C=fg;if(Oa=eg)break}}if(!Oa||null==Oa)break;var hg=null;if("ks"==mh){var ig=Oa.match(/[0-9A-F]+$/);ig&&(hg=Cg(a,ig[0]))}Oa=Ea(Oa,50)+" ;"+(hg||"stack="+Z(a,Hb));a.j(Oa);Yd++}Yd||a.j("no return addresses found")}break;case "l":if("ln"==g[0]){Cg(a,g[1],!0);break}f=!0;break;case "m":a:{var pa,qa=null,L=g[1];"?"==L&&(L=void 0);if(void 0!==L){var Ca=0;if("all"== +L)Ca=1879046143,L=null;else if("on"==L)qa=!0,L=null;else if("off"==L)qa=!1,L=null;else{"keys"==L&&(L="key");"kbd"==L&&(L="keyboard");for(pa in ec)if(L==pa){Ca=ec[pa];qa=!!(a.X&Ca);break}if(!Ca){a.j("unknown message category: "+L);break a}}if(Ca)if("on"==g[2])a.X|=Ca,qa=!0;else if("off"==g[2]&&(a.X&=~Ca,qa=!1,1073741824==Ca)){for(var jg=1E3<=a.O.length?a.O.length-1E3:0;jglg)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 mg=Y(a.v.i);a.Ca(mg);a.N?(a.Ea(a.b,mg,!0),zf(a)||(a.G&&qd(a.G),a.N=0)):Eg(a,lg?"tr":"t")}break;case "r":if("reset"==b){a.G&&a.G.reset();break}Cf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Kb=+g[2];if(8==Kb||10==Kb||16==Kb)a.ca=Kb;else{a.j("invalid base: "+Kb);break}}a.j("default base: "+a.ca);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.ka=Lb;break;case "start":a.v.Aa=Lb;break;case "stop":a.v.ma=Lb;break;default:a.j("unknown cs option");break a}void 0!== +Lb&&id(a.v);a.j("checksums "+(a.v.A.Fa?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(nd(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":Eg(a,g[0],g[1]);break;case "u":Df(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Bg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.j((Vb||"PDP10")+" version 1.34.2 ("+a.v.qb+",RELEASE)");a.j(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Dg(a,b.substr(1));break}var ae="commands:",be;for(be in Gg)ae+="\n"+Ea(be,9)+Gg[be];zd(a)||(ae+="\nnote: history disabled if no exec breakpoints");a.j(ae);break;default:f=!0}f&&(a.j("unknown command: "+ +b),d=!1)}}catch(og){a.j("Debugger "+(og.stack||og.message)),d=!1}return d}function ld(a,b,c){b=Ue(a,b,c);for(var d in b)if(!xg(a,b[+d]))return!1;return!0} +var Gg={"?":"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"},qg=20,sg=85,rg=".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 CAM 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(" "), +qf=0,rf=1,sf=2,tf=3,uf=4,vf=5,wf=6,xf=7,pf="PC RA EA C0 C1 OV ND PD".split(" "),Hg={},Gf=(Hg[28672]={0:101},Hg[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:sg,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Hg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:qg,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},Hg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Hg[29248]={24576:79,24640:80,25088:81,25152:82},Hg[28700]={28672:93,28676:94,28680:95,28684:96,28688:97, +28692:98,28696:99,28700:100},Hg),Hf=["","I","M","S"],ng=" L E LE A GE N G".split(" "),pg="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),tg={8:102,4:103,2:104,6:105,1:106},yf=1E3,Bf=">> ";Za(function(){for(var a=v(document,u,"debugger"),b=0;b\nLicense: GPL version 3 or later ");for(b=0;bLg){if(Mg(d,this.M)){this.B=new E(this,"1.34.2",Vg);Mg(this.B)&&(Wg(this,d),a=Xg,Yg(this.B));this.B.set(Sg,Ha());Zg(this.B);var e=this.b&&!this.K;if(a==Tg||tb("Click OK to restore the previous "+Vb+" machine state, or CANCEL to reset the machine.")){if(c=Rg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Mg(d,g):("error"==f&&"no machine state"!= +g?(this.da("Error: "+g),"unable to verify user"==g&&(Sa($g,""),this.i=null)):this.j(f+": "+g),Yg(d),Mg(d)?(c=Rg(d),e=!0):c=!1))}e&&Pg(this,c?d:null)}else a==Xg&&d.clear()}else Pg(this);delete this.M;delete this.I}e=ub(this.id);for(f=0;fa[1];a=a[2];this.S=!0;this.A.V=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ah(this,this.v,b,c,a),G(this,-2),this.v.Z());this.P&&(Wg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0}; +function Wg(a,b){if(tb("There may be a problem with your "+Vb+" machine.\n\nTo help us diagnose it, click OK to send this "+Vb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Vb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ia("http://www.pcjs.org/api/v1/report",d,!0)}} +function Fg(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new E(a,"1.34.2"),g=new E(a,"1.34.2",Qg),h=Ha();g.set(Sg,h);f.set(Sg,h);f.set(bh,"1.34.2");f.set(ch,window?window.location.href:null);f.set(dh,window?window.navigator.userAgent:"");a.v&&a.v.ia&&(c&&(b&&(a.v.A.Z=a.v.A.L),a.v.W()),d=a.v.ia(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.V=!1,!1===d&&(e=null)));for(var h=ub(a.id),k=0;k=d||30<=(c.Xa+=d))&&(e.textContent=c.A.L?c.aa.toFixed(2)+"Mhz":"Stopped",c.Xa=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.v.A.L;d=!!(a.v.B&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.ca||8,e=e||0,e=8==f?va(e,void 0):m(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ia(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],n,p=/( [a-z]+=)(['"])(.*?)\2/g;n=p.exec(f);)k=0>k.indexOf(n[1])?k.replace(">",n[0]+">"):k.replace(new RegExp(n[1]+"(['\"])(.*?)\\1"),n[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);xh(a,b,c)}})}else c(a,null)} +function yh(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&v(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Aa(a))}function g(a){f("Error: "+a);n&&(--uh||lb(!0));n=!1}var h,k,n=!0;uh++;rb[b]={};try{if(h=document.getElementById(b)){var p;if("object"==typeof resources&&(p=resources.css)){var w=document.head||document.getElementsByTagName("head")[0],K=document.createElement("style");K.type="text/css";K.styleSheet?K.styleSheet.cssText=p:K.appendChild(document.createTextNode(p));w.appendChild(K)}d|| +(p=a,"pdp"==a.substr(0,3)&&(p="pdpjs"),d="/versions/"+p+"/1.34.2/components.xsl");p=function(e,k){k?vh(d,null,a,null,!1,f,function(a,e){e?(qb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--uh||lb(!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),--uh|| +lb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?vh(c,b,a,e,!0,f,p):wh(c,null,b,a,e,!1,f,p)}else g("missing machine element: "+b)}catch(ma){g(ma.message)}return n}window.embedPDP10=function(a,b,c,d){lb(!1);return yh("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){lb(!1);return yh("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return wb(b,a+".machine")}; +window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!zb[a]){for(var c=!0,d=zb,e=a,f=b.length,g=[],h=[],k="",n=null,p=0;pa?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); -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, +var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++} +function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return ba?-b:b}});ia("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}}); +var n={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="";isNaN(a)?a=null:null!=a&&(0>a&&-1a&&(a+=Math.pow(b,c)),0>a||a>=Math.pow(b,c))&&(a=null);if(null==a)for(;0=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"']/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 q(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="",r;for(r in b)b.hasOwnProperty(r)&&(l&&(l+="&"),l+=r+"="+encodeURIComponent(b[r]));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>8&255;else if(e=g.longs)for(d.H=Array(4*e.length),f=c=0;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;ca?this.ua=this.id:(this.va=this.id.substr(0,a),this.ua=this.id.substr(a+1));this.i={ready:!1,za:!1,Ma:!1,F:!1,error:!1};this.Ba=null;this.i.error=!1;this.w=this.j=this.s=this.v=this.fa=null;w.push(this)}function Ka(a,b,c){La[a]&&b&&(La[a][b]=c)}function Ma(){return Date.now()||+new Date} -function t(a){window&&window.alert(a)}function Na(a){var b=!1;window&&(b=window.confirm(a));return b}function x(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba&&-1a&&(a+=Math.pow(b,c)),0>a||a>=Math.pow(b,c))&&(a=null);if(null==a)for(;0=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ka(a,b){b?12"']/g,function(a){return ra[a]})}function sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={"&":"&","<":"<",">":">",'"':""","'":"'"}; +function ta(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())} +function p(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 m="",u;for(u in b)b.hasOwnProperty(u)&&(m&&(m+="&"),m+=u+"="+encodeURIComponent(b[u]));m=m.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(m)}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 ua(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>8&255;else if(e=g.longs)for(d.H=Array(4*e.length),f=c=0;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&&(q(d.H[0]),d=null):(q("Empty resource: "+a),d=null));d.O=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;ca?this.ua=this.id:(this.va=this.id.substr(0,a),this.ua=this.id.substr(a+1));this.i={ready:!1,za:!1,Ma:!1,F:!1,error:!1};this.Ba=null;this.i.error=!1;this.w=this.j=this.s=this.v=this.fa=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date} +function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;ba;a++)this.a["S"+a]=[0,0,!1,!1,this.pb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.ib,toggle:this.Ab,reset:this.wb, -set:this.zb};D(this)}n(eb,v);k=eb.prototype;k.reset=function(a){this.stop();a&&gb(this,this.h=0)}; -k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.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(){hb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){ib(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){hb(a, -b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){ib(a,b)}}(this,b),!0):v.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;jb(this);kb(this)};k.V=function(a,b){if(!b)if(this.P&&lb(),!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 M(this);a.set(0,[this.f,this.h,this.g]);return a.data()}; -k.restore=function(a){if(a=a[0])mb(this,this.f=a[0]),gb(this,this.h=a[1]),nb(this,a[2]);return!0};k.wb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}kb(this);return!0};function ob(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function jb(a,b){for(var c in a.l)ob(a,c,null!=b?b:a.l[c])}function pb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function kb(a){for(var b in a.a)pb(a,b,a.a[b][1])} -k.ib=function(a,b,c){if(hb(this,b)){if(c){var d=this;setTimeout(function(){ib(d,b);a&&a()},+c);return!1}ib(this,b)}return!0}; +var z="pdp10",Ya="PDPjs",Za=Math.pow(2,18)-1,$a=Math.pow(2,18),ab=Math.pow(2,17)-1,D=Math.pow(2,18)-1,E=Math.pow(2,18),F=Math.pow(2,35)-1,G=Math.pow(2,35),H=Math.pow(2,36)-1,J=Math.pow(2,36),K=Math.pow(2,32),bb=Math.pow(2,34),cb=Math.pow(2,36),db=Math.pow(2,23),eb=Math.pow(2,30),z="pdp10",Ya="PDPjs"; +function fb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.h=0;this.D=this.I=-1;this.K=this.L=this.o=!1;this.N=gb;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.j=this.s=this.v=null;this.exports={hold:this.ib,toggle:this.Ab,reset:this.wb, +set:this.zb};B(this)}l(fb,t);k=fb.prototype;k.reset=function(a){this.stop();a&&hb(this,this.h=0)}; +k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.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(){ib(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){jb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ib(a, +b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){jb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;kb(this);lb(this)};k.V=function(a,b){if(!b)if(this.P&&mb(),!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 L(this);a.set(0,[this.f,this.h,this.g]);return a.data()}; +k.restore=function(a){if(a=a[0])nb(this,this.f=a[0]),hb(this,this.h=a[1]),ob(this,a[2]);return!0};k.wb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}lb(this);return!0};function pb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function kb(a,b){for(var c in a.l)pb(a,c,null!=b?b:a.l[c])}function qb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function lb(a){for(var b in a.a)qb(a,b,a.a[b][1])} +k.ib=function(a,b,c){if(ib(this,b)){if(c){var d=this;setTimeout(function(){jb(d,b);a&&a()},+c);return!1}jb(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.f];a.h++;b=c.h(b&16383,b);a.h--;a=b}else a=this.j.b(this.f);gb(this,this.h=a)}};k.ob=function(a){a||this.j.i.B||mb(this,this.g)};k.nb=function(a){a?(this.o=!0,jb(this,!0)):(this.o=!1,jb(this),nb(this,0))};k.pb=function(a,b){this.g=a?this.g|1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.a["S"+b][1]=a.g&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.f;0f&&(r=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){r=h.size-(e-l);r>f&&(r=f);h.Da=e-h.ea+r;e=l+16384;f-=r;g++;continue}}return Gb(Hb,e,f)}e=new Cb(a,e,r,16384,d);Db(e,h);a.a[g++]=e;e=l+16384;f-=r}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Ib[d]+" at "+ja(b)),!0):Gb(Jb,b,c)} -function Ab(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.h++;d.g(c,b&16383,b);a.h--}function Eb(a){for(var b=0,c=[],d=0;d=a.ha&&(a.ha+=a.na,c=!0);0<=a.oa&&a.oa<=Zb(a)&&(a.na=a.oa=-1,Yb(a),O(a),c=!0);c&&a.M(Zb(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.v)if(a=d.v,a.i.F)a=!0;else{var b=null,c,h=x(a.id);for(c=0;ca.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.v&&(c=a.v,c.fa&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.fa.focus(),window&&window.scrollTo(b,d)))}wb(a,a.D);a.D=0;a.C=Ma();a.K=0;ac(a)}function cc(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function dc(a,b){var c=a.L-=a.N;a.N=0;b&&(a.L=0);return c} -k.xb=function(){if(this.i.B){this.ya>=this.Ja&&ac(this,!0);this.aa=0;this.ma=Ma();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.i.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=dc(this,!0);this.aa+=b;this.D+=b;xb(this,b);vb(this,b);this.ja-=b;if(0>=this.ja){this.ja+=this.pa;++this.Ka>=ec&&(this.v&&yb(this.v,void 0),this.Ka=0);break}}while(this.i.B)}catch(f){O(this); -this.v&&this.v.stop(Ma(),Zb(this));a=f.stack||f.message;this.i.error=!0;this.G(a);return}if(this.i.B){a=setTimeout;b=this.Va;this.K=Ma();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,$b(this));if(0>c||this.Wc&&(this.C-=c),c=0;this.ya+=this.aa;this.K+=c;a(b,c)}}}; -function ub(a){var b;a.i.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.B)a.M(a.toString()+" busy");else{$b(a);a.i.B=!0;a.i.Pa=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,Zb(a));a.w||a.status("Started");setTimeout(a.Va,0)}}k.Ea=function(){return 0};function O(a){var b=!1;if(a.i.B){dc(a);wb(a,a.D);a.D=0;a.i.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Ma(),Zb(a));b=!0;a.w||a.status("Stopped")}a.i.complete=void 0;return b}var bc=30,ec=15,Vb=["power","reset"]; -function fc(a){var b=+a.model||1001;Ub.call(this,a,1E6);this.eb=b;this.ta=+a.addrReset||0;this.fb=gc.bind(this);this.f=P.bind(this);this.la=null;this.Ua=[];this.i.complete=!1}n(fc,Ub);k=fc.prototype;k.reset=function(){this.status("Model "+this.eb);this.i.B&&O(this);this.a=this.A=this.qa=0;this.g=this.Ga=this.ta;this.u=this.da=-1;this.o=this.h=0;this.La=[0,0];this.ba=[0,0];this.X=[0,0];this.ca=[0,0];this.ka=this.g;this.l=0;this.b=this.tb;this.c=this.Eb;this.la=null;Xb(this);this.i.error=!1;Ub.prototype.reset.call(this)}; -k.Xa=function(){return 0};k.save=function(){var a=new M(this);a.set(0,[this.a,this.A,this.qa,this.g,this.da,this.u,this.h,this.l,this.Ga,this.ka,this.ta]);a.set(1,[]);a.set(2,[this.P,this.ia,this.i.J]);a.set(3,hc(this));a.set(4,cc(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.g=b.next().value;this.da=b.next().value;this.u=b.next().value;this.h=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];$b(this,b[1]);this.i.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.f].b(a&16383,a)};k.Eb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b}; -k.Ea=function(a){this.i.complete=!0;var b=a?this.i.Pa?0:1:-1;this.i.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.h(this.g,b)){O(this);break}if(0>b)break}this.l&=15;this.A&4194304?this.A=this.b(this.a):0<=this.da?(this.A=this.qa=this.b(this.da),this.da=-1):(this.A=this.qa=this.b(this.Ga=this.g),this.g=(this.g+1)%Za);this.A&=8388607;this.a=this.A&262143;if(a=this.A>>18&15)this.a=this.a+this.b(a)& -Ya;a=this.A&4194304?-1:this.qa/cb|0;0<=a&&this.fb(a)}while(0>4].call(this,a,a&15)}function Q(a){this.f(a)}function jc(){var a=0,b=this.b(this.a),c=b/db&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*db+(d<<24)+(b&16777215);a&&(b=(b+a)%K);this.c(this.a,b)} -function kc(a,b){a=this.b(this.a);if(0>this.u)this.u=a,this.A=this.a|4194304;else{var c=this.u/db&63,d=this.u>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.u=-1}}function lc(a,b){a=this.b(this.a);if(0>this.u)this.u=a,this.A=this.a|4194304;else{var c=this.u/db&63,d=this.u>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%K;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.u=-1}}function mc(a,b){this.c(b,this.b(this.a))} -function nc(a,b){this.c(b,this.a)}function oc(a,b){this.c(this.a,this.b(b))}function pc(a,b){this.c(b,0)}function qc(a,b){this.c(b,J-this.b(b))}function rc(a,b){this.c(b,J)}function sc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,tc(a,d,c)+(c-(c&E)))}function uc(a,b){var c=this.b(b);this.c(b,tc(a,c,0))}function vc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,tc(a,c,b)+(b-(b&E)))} -function wc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&E,a){case 256:d+=E;break;case 384:d+=c>H?E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function xc(a,b){var c=(this.b(this.a)&E)*G,d=this.b(b);this.c(b,tc(a,d,c)+c)}function yc(a,b){var c=this.a*G,d=this.b(b);this.c(b,tc(a,d,c)+c)}function zc(a,b){b=(this.b(b)&E)*G;var c=this.b(this.a);this.c(this.a,tc(a,c,b)+b)}function Ac(a,b){var c=this.b(this.a),d=(c&E)*G,c=tc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)} -function Bc(a,b){var c=this.b(this.a)&E,d=this.b(b);this.c(b,Cc(a,d,c)+c)}function Dc(a,b){var c=this.b(b);this.c(b,Cc(a,c,this.a)+this.a)}function Ec(a,b){b=this.b(b)&E;var c=this.b(this.a);this.c(this.a,Cc(a,c,b)+b)}function Fc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=E,a){case 256:d+=E*G;break;case 384:d+=c>$a?E*G:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Gc(a,b){var c=this.b(this.a)/G|0,d=this.b(b);this.c(b,Cc(a,d,c)+c)}function Hc(a,b){var c=this.b(b);this.c(b,Cc(a,c,0))} -function Ic(a,b){b=this.b(b)/G|0;var c=this.b(this.a);this.c(this.a,Cc(a,c,b)+b)}function Jc(a,b){var c=this.b(this.a),d=c/G|0,c=Cc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function R(a){Kc[a&7].call(this,a,a>>3&127)}function Lc(){}function Mc(){}function P(a){this.M("undefined opcode: "+ja(a));this.g=(this.g+-1)%Za;O(this)}function Nc(a){a>H&&(a!=I?a=bb-a:this.h|=163840);return a}function S(a,b){var c=(a+b)%K;Oc.call(this,a,b,c);return c}function T(a,b){return((a/L|0)&(b/L|0))*L+((a&b)>>>0)} -function U(a,b){return(aH&&(c=K-c,d=!d);b>H&&(a?(b=J-b,a=K-a):b&&(b=K-b),e=!0,d=!d);if(b>=c)return this.h|=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;0b[0]&&(b[0]+=K,b[1]--),Qc(this.La,this.ba),Rc(this.ca)))break;Sc(this.X);Sc(this.ba)}while(!Rc(this.ba)); -a=this.La[0];this.o=this.ca[0];d&&a&&(a=K-a);e&&this.o&&(this.o=K-this.o);return a}function Tc(a,b){return((a/L|0)^(b/L|0))*L+((a^b)>>>0)}function Uc(a,b){return(~((a/L|0)^(b/L|0))&15)*L+(~(a^b)>>>0)}function W(a,b){return(a/L|0|b/L|0)*L+((a|b)>>>0)} -function X(a,b,c){var d=a,e=b;b=!1;var f;d>H&&(d=K-d,b=!b);e>H&&(e=K-e,b=!b);if(dH)&&(f!=J||a<=H)&&(this.h|=131072),a;c=a;b=f;a=b-b%I;b=2*b%K+Math.trunc(c/I);c=a+c%I;d=b-b%I;a!=d&&(b=a+(b-d),this.h|=131072);this.o=c;return b} -function Vc(a){a?a==I?this.h|=163840:a=bb-a:this.h|=98304;return a}function Y(a){return ac&&(c+=K);Oc.call(this,c,b,a);return c}function Oc(a,b,c){a=Math.trunc(a/ab);b=Math.trunc(b/ab);c=Math.trunc(c/ab);var d=a^(a^b)&(b^c);this.h=this.h|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function Cc(a,b,c){switch(a&384){case 0:b-=b&E;break;case 128:b=0;break;case 256:b=E*G;break;case 384:b=c>$a?E*G:0}return b} -function tc(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>H?E:0}return b}function Qc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=K&&(a[0]%=K,a[1]++)}function Pc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Sc(a){a[1]%2&&(a[0]+=K);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Rc(a){return!a[0]&&!a[1]} -var ic=[Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,function(a){this.f(a)},function(a){this.f(a)},function(a){this.f(a)},jc,function(a,b){0>this.u&&jc.call(this);kc.call(this,0,b)},kc,function(a,b){0>this.u&&jc.call(this);lc.call(this,0,b)},lc,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)},mc,nc,oc,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/G|0)+a%G*G;this.c(b,a)},function(a,b){this.c(b,this.a*G)},function(a,b){a=this.b(b);a=(a/G|0)+a%G*G;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/G|0)+a%G*G;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Vc.call(this,this.b(this.a)))},function(a,b){this.c(b,Vc.call(this,this.a))},function(a,b){this.c(this.a, -Vc.call(this,this.b(b)))},function(a,b){a=Vc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Nc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Nc.call(this,this.b(b)))},function(a,b){a=Nc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,X.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,X.call(this,this.b(b),this.a,!0))},function(a,b){this.c(this.a,X.call(this,this.b(b),this.b(this.a), -!0))},function(a,b){this.c(this.a,this.c(b,X.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,X.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.o)},function(a,b){this.c(b,X.call(this,this.b(b),this.a));this.c(b+1&15,this.o)},function(a,b){this.c(this.a,X.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,X.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.o)},function(a,b){a=V.call(this,this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+1& -15,this.o))},function(a,b){a=V.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=V.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=V.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=V.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=V.call(this,c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a, -b){a=this.b(b);b=this.b(b+1&15);b=V.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=V.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){var c=(this.a<<14>>14)%256;if(c){a=this.b(b);var d=a>H?-(K-a):a;0d?I:0,c=H):(d=d*Math.pow(2,c)%I,c=I-Math.pow(2,35-c)),a<=H?a+c>H&&(this.h|=131072):a-c<=H&&(this.h|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+K:d;this.c(b,a)}}, -function(a,b){if(a=(this.a<<14>>14)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%K+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c>14)%256){var c,d=this.b(b),e=this.b(b+1&15);if(0H&&dH&&eH&&(this.h|=131072):e-c<=H&&(this.h|=131072);e=0;f>H&&(d+=I,e+=I)}else d=d*Math.pow(2,a)%I+Math.trunc(e%I/Math.pow(2,35-a)),e=e*Math.pow(2,a)%I,c=I-Math.pow(2,35-a),f<=H?f+c>H&&(this.h|=131072):(f-c<=H&&(this.h|=131072),d+=I,e+=I)}else-36>=a?(e=-72>=a?d>H?J:0:Math.trunc(d%I/Math.pow(2,-a-35)),d<=H?d=0:(d=J,e+=I)):(c=d>H?K-Math.pow(2,36+a):0,e=Math.trunc(e%I/Math.pow(2,-a))+d%I*Math.pow(2,35+ -a)%I,d=Math.trunc(d/Math.pow(2,-a))+c,d>H&&(e+=I));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=(this.a<<14>>14)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%K+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%K+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%K+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%K+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),d=this.b(b+1&15);0=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)%K,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},P,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,a)},function(a,b){a=!1;for(var c=this.b(b),d=c/G|0,c=c&E;!a;)this.c(c,this.b(d)),c==this.a&&(a=!0),d=d+1&E,c=c+1&E,this.i.B||(this.c(b,d*G+c),a||(this.g= -(this.g+-1)%Za),a=!0)},function(a,b){a=(this.b(b)+262145)%J;this.c(b,a);a=I&&N(this,this.a)},function(a){this.f(a)},function(a,b){a=b<<14;this.h&a&&(this.h&=~a,N(this,this.a))},function(){this.da=this.a},P,function(a){this.f(a)},function(a,b){a=this.b(b);a+=262145;this.c(a&E,this.b(this.a));a>=K&&(a-=K);a/G|0||(this.h|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&E);this.c(this.a,c);this.a==b&&(a=c);a-=262145; -0>a&&(a+=K);(a/G|0)==E&&(this.h|=262144);this.c(b,a)},function(a){this.f(a)},function(){this.c(this.a,(this.h&E)*G+this.g);N(this,this.a+1)},function(a,b){this.c(b,(this.h&E)*G+this.g);N(this,this.a)},function(a){this.f(a)},function(a){this.f(a)},function(a,b){this.c(b,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,S.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,S.call(this,this.b(b),this.b(this.a))))}, -function(a,b){this.c(b,Z.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,Z.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,Z.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Z.call(this,this.b(b),this.b(this.a))))},Lc,function(a,b){0>U.call(this,this.b(b),this.a)&&N(this,this.g+1)},function(a,b){U.call(this,this.b(b),this.a)||N(this,this.g+1)},function(a,b){0>=U.call(this,this.b(b),this.a)&&N(this,this.g+1)},function(){N(this,this.g+1)},function(a, -b){0<=U.call(this,this.b(b),this.a)&&N(this,this.g+1)},function(a,b){U.call(this,this.b(b),this.a)&&N(this,this.g+1)},function(a,b){0U.call(this,this.b(b),this.b(this.a))&&N(this,this.g+1)},function(a,b){U.call(this,this.b(b),this.b(this.a))||N(this,this.g+1)},function(a,b){0>=U.call(this,this.b(b),this.b(this.a))&&N(this,this.g+1)},function(){N(this,this.g+1)},function(a,b){0<=U.call(this,this.b(b),this.b(this.a))&&N(this,this.g+ -1)},function(a,b){U.call(this,this.b(b),this.b(this.a))&&N(this,this.g+1)},function(a,b){0Y.call(this,this.b(b))&&N(this,this.a)},function(a,b){Y.call(this,this.b(b))||N(this,this.a)},function(a,b){0>=Y.call(this,this.b(b))&&N(this,this.a)},function(){N(this,this.a)},function(a,b){0<=Y.call(this,this.b(b))&&N(this,this.a)},function(a,b){Y.call(this,this.b(b))&&N(this,this.a)},function(a,b){0Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);Y.call(this,a)||N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0>=Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){N(this,this.g+1);b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0<=Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);Y.call(this,a)&&N(this,this.g+ -1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0Y.call(this,a)&&N(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));Y.call(this,a)||N(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0>=Y.call(this,a)&&N(this,this.a)},function(a,b){this.c(b,S.call(this,this.b(b),1));N(this,this.a)},function(a,b){a=this.c(b,S.call(this, -this.b(b),1));0<=Y.call(this,a)&&N(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));Y.call(this,a)&&N(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));Y.call(this,a)||N(this,this.g+1);b&& -this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>=Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0<=Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1)); -0Y.call(this,a)&&N(this,this.a)},function(a,b){a=this.c(b,Z.call(this,this.b(b),1));Y.call(this,a)||N(this,this.a)},function(a,b){a=this.c(b,Z.call(this,this.b(b),1));0>=Y.call(this,a)&&N(this,this.a)},function(a,b){this.c(b,Z.call(this,this.b(b),1));N(this,this.a)},function(a,b){a=this.c(b,Z.call(this,this.b(b),1));0<=Y.call(this,a)&&N(this,this.a)}, -function(a,b){a=this.c(b,Z.call(this,this.b(b),1));Y.call(this,a)&&N(this,this.a)},function(a,b){a=this.c(b,Z.call(this,this.b(b),1));0Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Z.call(this,this.b(this.a),1));Y.call(this,a)||N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Z.call(this, -this.b(this.a),1));0>=Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Z.call(this,this.b(this.a),1));N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Z.call(this,this.b(this.a),1));0<=Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Z.call(this,this.b(this.a),1));Y.call(this,a)&&N(this,this.g+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,Z.call(this,this.b(this.a),1));0>>f.f;0>>=f.f;0>>a.f;0g&&g>=-I&&(g+=K);for(var g=Math.trunc(Math.abs(g))%K,h=d;f--&&h=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.v=a;this.s=b;this.j=c;this.w=d;D(this)}; -k.Ya=function(a){if(!this.a){var b=Wb(this.v,"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=Oa(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 M(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Ca=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d\nLicense: GPL version 3 or later ");for(b=0;bfd){if(gd(d,this.C)){this.l=new M(this,"1.34.2",pd);gd(this.l)&&(qd(this,d),a=rd,sd(this.l));this.l.set(md,sa());td(this.l);var e=this.a&&!this.A;if(a==nd||Na("Click OK to restore the previous "+Xa+" machine state, or CANCEL to reset the machine.")){if(c=ld(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?gd(d,g):("error"==f&&"no machine state"!= -g?(this.G("Error: "+g),"unable to verify user"==g&&(xa(ud,""),this.f=null)):this.M(f+": "+g),sd(d),gd(d)?(c=ld(d),e=!0):c=!1))}e&&jd(this,c?d:null)}else a==rd&&d.clear()}else jd(this);delete this.C;delete this.u}e=x(this.id);for(f=0;fa[1];a=a[2];this.N=!0;this.i.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(vd(this,this.j,b,c,a),yb(this,-2),this.j.J());this.K&&(qd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0}; -function qd(a,b){if(Na("There may be a problem with your "+Xa+" machine.\n\nTo help us diagnose it, click OK to send this "+Xa+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Xa;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;q("http://www.pcjs.org/api/v1/report",d,!0)}} -function wd(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new M(a,"1.34.2"),g=new M(a,"1.34.2",kd),h=sa();g.set(md,h);f.set(md,h);f.set(xd,"1.34.2");f.set(yd,window?window.location.href:null);f.set(zd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.i.J=a.j.i.B),O(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.i.F=!1,!1===d&&(e=null)));for(var h=x(a.id),l=0;l=d||30<=(c.Fa+=d))&&(e.textContent=c.i.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Fa=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.i.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.g;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.f=a.j.g:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), -a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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(F){g=null,a=F.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");q(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],r,A=/( [a-z]+=)(['"])(.*?)\2/g;r=A.exec(f);)l=0>l.indexOf(r[1])?l.replace(">",r[0]+">"):l.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[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);Hd(a,b,c)}})}else c(a,null)} -function Id(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&C(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=pa(a))}function g(a){f("Error: "+a);r&&(--Ed||Ga(!0));r=!1}var h,l,r=!0;Ed++;La[b]={};try{if(h=document.getElementById(b)){var A;if("object"==typeof resources&&(A=resources.css)){var F=document.head||document.getElementsByTagName("head")[0],za=document.createElement("style");za.type="text/css";za.styleSheet?za.styleSheet.cssText=A:za.appendChild(document.createTextNode(A));F.appendChild(za)}d|| -(A=a,"pdp"==a.substr(0,3)&&(A="pdpjs"),d="/versions/"+A+"/1.34.2/components.xsl");A=function(e,l){l?Fd(d,null,a,null,!1,f,function(a,e){e?(Ka(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Ed||Ga(!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),--Ed|| -Ga(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Fd(c,b,a,e,!0,f,A):Gd(c,null,b,a,e,!1,f,A)}else g("missing machine element: "+b)}catch(Jd){g(Jd.message)}return r}window.embedPDP10=function(a,b,c,d){Ga(!1);return Id("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Ga(!1);return Id("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return y(b,a+".machine")}; -window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ra[a]){for(var c=!0,d=Ra,e=a,f=b.length,g=[],h=[],l="",r=null,A=0;A>>a.f];a.h++;b=c.h(b&16383,b);a.h--;a=b}else a=this.j.b(this.f);hb(this,this.h=a)}};k.ob=function(a){a||this.j.i.B||nb(this,this.g)};k.nb=function(a){a?(this.o=!0,kb(this,!0)):(this.o=!1,kb(this),ob(this,0))};k.pb=function(a,b){this.g=a?this.g|1<c;c++){var d=a,e="A"+c,f=b&1<c;c++){var d=a,e="D"+c,f=b&1<b;b++)a.a["S"+b][1]=a.g&1<d.length){for(var e=0,f=Array(4096),g=0;g>>a.f;0f&&(u=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){u=h.size-(e-m);u>f&&(u=f);h.Da=e-h.ea+u;e=m+16384;f-=u;g++;continue}}return Hb(Ib,e,f)}e=new Db(a,e,u,16384,d);Eb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Jb[d]+" at "+ka(b)),!0):Hb(Kb,b,c)} +function Bb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.h++;d.g(c,b&16383,b);a.h--}function Fb(a){for(var b=0,c=[],d=0;d=a.ha&&(a.ha+=a.na,c=!0);0<=a.oa&&a.oa<=$b(a)&&(a.na=a.oa=-1,Zb(a),N(a),c=!0);c&&a.M($b(a)+" cycles: checksum="+la(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.v)if(a=d.v,a.i.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;ca.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.v&&(c=a.v,c.fa&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.fa.focus(),window&&window.scrollTo(b,d)))}xb(a,a.D);a.D=0;a.C=Na();a.K=0;bc(a)}function dc(a){for(var b=[],c=0;cd[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ec(a,b){var c=a.L-=a.N;a.N=0;b&&(a.L=0);return c} +k.xb=function(){if(this.i.B){this.ya>=this.Ja&&bc(this,!0);this.aa=0;this.ma=Na();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.i.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=ec(this,!0);this.aa+=b;this.D+=b;yb(this,b);wb(this,b);this.ja-=b;if(0>=this.ja){this.ja+=this.pa;++this.Ka>=fc&&(this.v&&zb(this.v,void 0),this.Ka=0);break}}while(this.i.B)}catch(f){N(this); +this.v&&this.v.stop(Na(),$b(this));a=f.stack||f.message;this.i.error=!0;this.G(a);return}if(this.i.B){a=setTimeout;b=this.Va;this.K=Na();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,ac(this));if(0>c||this.Wc&&(this.C-=c),c=0;this.ya+=this.aa;this.K+=c;a(b,c)}}}; +function vb(a){var b;a.i.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.i.B)a.M(a.toString()+" busy");else{ac(a);a.i.B=!0;a.i.Pa=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,$b(a));a.w||a.status("Started");setTimeout(a.Va,0)}}k.Ea=function(){return 0};function N(a){var b=!1;if(a.i.B){ec(a);xb(a,a.D);a.D=0;a.i.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),$b(a));b=!0;a.w||a.status("Stopped")}a.i.complete=void 0;return b}var cc=30,fc=15,Wb=["power","reset"]; +function gc(a){var b=+a.model||1001;Vb.call(this,a,1E6);this.eb=b;this.ta=+a.addrReset||0;this.fb=hc.bind(this);this.g=O.bind(this);this.la=null;this.Ua=[];this.i.complete=!1}l(gc,Vb);k=gc.prototype;k.reset=function(){this.status("Model "+this.eb);this.i.B&&N(this);this.a=this.A=this.qa=0;this.f=this.Ga=this.ta;this.u=this.da=-1;this.o=this.h=0;this.La=[0,0];this.ba=[0,0];this.X=[0,0];this.ca=[0,0];this.ka=this.f;this.l=0;this.b=this.tb;this.c=this.Eb;this.la=null;Yb(this);this.i.error=!1;Vb.prototype.reset.call(this)}; +k.Xa=function(){return 0};k.save=function(){var a=new L(this);a.set(0,[this.a,this.A,this.qa,this.f,this.da,this.u,this.h,this.l,this.Ga,this.ka,this.ta]);a.set(1,[]);a.set(2,[this.P,this.ia,this.i.J]);a.set(3,ic(this));a.set(4,dc(this));return a.data()}; +k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.A=b.next().value;this.qa=b.next().value;this.f=b.next().value;this.da=b.next().value;this.u=b.next().value;this.h=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];ac(this,b[1]);this.i.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d>>b.f].b(a&16383,a)};k.Eb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b}; +k.Ea=function(a){this.i.complete=!0;var b=a?this.i.Pa?0:1:-1;this.i.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.h(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.A&4194304?this.A=this.b(this.a):0<=this.da?(this.A=this.qa=this.b(this.da),this.da=-1):(this.A=this.qa=this.b(this.Ga=this.f),this.f=(this.f+1)%$a);this.A&=8388607;this.a=this.A&262143;if(a=this.A>>18&15)this.a=this.a+this.b(a)& +Za;a=this.A&4194304?-1:this.qa/db|0;0<=a&&this.fb(a)}while(0>4].call(this,a,a&15)}function P(a){this.g(a)}function kc(){var a=0,b=this.b(this.a),c=b/eb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*eb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)} +function lc(a,b){a=this.b(this.a);if(0>this.u)this.u=a,this.A=this.a|4194304;else{var c=this.u/eb&63,d=this.u>>24&63;a=32>=c+d?(a>>c&(1<>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.u=-1}}function mc(a,b){a=this.b(this.a);if(0>this.u)this.u=a,this.A=this.a|4194304;else{var c=this.u/eb&63,d=this.u>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.u=-1}}function nc(a,b){this.c(b,this.b(this.a))} +function oc(a,b){this.c(b,this.a)}function pc(a,b){this.c(this.a,this.b(b))}function qc(a,b){this.c(b,0)}function rc(a,b){this.c(b,H-this.b(b))}function sc(a,b){this.c(b,H)}function tc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,uc(a,d,c)+(c-(c&D)))}function vc(a,b){var c=this.b(b);this.c(b,uc(a,c,0))}function wc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,uc(a,c,b)+(b-(b&D)))} +function xc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&D,a){case 256:d+=D;break;case 384:d+=c>F?D:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function yc(a,b){var c=(this.b(this.a)&D)*E,d=this.b(b);this.c(b,uc(a,d,c)+c)}function zc(a,b){var c=this.a*E,d=this.b(b);this.c(b,uc(a,d,c)+c)}function Ac(a,b){b=(this.b(b)&D)*E;var c=this.b(this.a);this.c(this.a,uc(a,c,b)+b)}function Bc(a,b){var c=this.b(this.a),d=(c&D)*E,c=uc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)} +function Cc(a,b){var c=this.b(this.a)&D,d=this.b(b);this.c(b,Dc(a,d,c)+c)}function Ec(a,b){var c=this.b(b);this.c(b,Dc(a,c,this.a)+this.a)}function Fc(a,b){b=this.b(b)&D;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Gc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=D,a){case 256:d+=D*E;break;case 384:d+=c>ab?D*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Hc(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Dc(a,d,c)+c)}function Ic(a,b){var c=this.b(b);this.c(b,Dc(a,c,0))} +function Jc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Dc(a,c,b)+b)}function Kc(a,b){var c=this.b(this.a),d=c/E|0,c=Dc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Lc[a&7].call(this,a,a>>3&127)}function Mc(){}function Nc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Oc(a){a>F&&(a!=G?a=cb-a:this.h|=163840);return a}function R(a,b){var c=(a+b)%J;Pc.call(this,a,b,c);return c} +function Qc(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=H-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.h|=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;0b[0]&&(b[0]+=J,b[1]--),Sc(this.La,this.ba),Tc(this.ca)))break;Uc(this.X);Uc(this.ba)}while(!Tc(this.ba)); +a=this.La[0];this.o=this.ca[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a} +function Vc(a,b,c){var d=a,e=b;b=!1;var f;d>F&&(d=J-d,b=!b);e>F&&(e=J-e,b=!b);if(dF)&&(f!=H||a<=F)&&(this.h|=131072),a;c=a;b=f;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;d=b-b%G;a!=d&&(b=a+(b-d),this.h|=131072);this.o=c;return b} +function Wc(a){a?a==G?this.h|=163840:a=cb-a:this.h|=98304;return a}function S(a,b){var c=a-b;0>c&&(c+=J);Pc.call(this,c,b,a);return c}function Pc(a,b,c){a=Math.trunc(a/bb);b=Math.trunc(b/bb);c=Math.trunc(c/bb);var d=a^(a^b)&(b^c);this.h=this.h|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a>>0)}function Z(a){return(a/E|0)+(a&D)*E}function Dc(a,b,c){switch(a&384){case 0:b-=b&D;break;case 128:b=0;break;case 256:b=D*E;break;case 384:b=c>ab?D*E:0}return b}function uc(a,b,c){switch(a&384){case 0:b&=D;break;case 128:b=0;break;case 256:b=D;break;case 384:b=c>F?D:0}return b} +function Sc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=J&&(a[0]%=J,a[1]++)}function Rc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Uc(a){a[1]%2&&(a[0]+=J);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Tc(a){return!a[0]&&!a[1]} +var jc=[P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},kc,function(a,b){0>this.u&&kc.call(this);lc.call(this,0,b)},lc,function(a,b){0>this.u&&kc.call(this);mc.call(this,0,b)},mc,function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)}, +function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)}, +function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},function(a){this.g(a)},nc,oc,pc,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&D)*E;this.c(b,a)},function(a,b){this.c(b,this.a*E)},function(a,b){a=this.b(b);a=(a/E|0)+(a&D)*E;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&D)*E;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Wc.call(this,this.b(this.a)))},function(a,b){this.c(b,Wc.call(this,this.a))},function(a,b){this.c(this.a, +Wc.call(this,this.b(b)))},function(a,b){a=Wc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Oc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Oc.call(this,this.b(b)))},function(a,b){a=Oc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a,!0))},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a), +!0))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.o)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a));this.c(b+1&15,this.o)},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.o)},function(a,b){a=Qc.call(this,this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+ +1&15,this.o))},function(a,b){a=Qc.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=Qc.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=Qc.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))}, +function(a,b){a=this.b(b);b=this.b(b+1&15);b=Qc.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=Qc.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){var c=(this.a<<14>>14)%256;if(c){a=this.b(b);var d=a>F?-(J-a):a;0d?G:0,c=F):(d=d*Math.pow(2,c)%G,c=G-Math.pow(2,35-c)),a<=F?a+c>F&&(this.h|=131072):a-c<=F&&(this.h|=131072)):d=-35>=c?0>d?-1:0:Math.trunc(d/Math.pow(2,-c));a=0>d?d+J:d; +this.c(b,a)}},function(a,b){if(a=(this.a<<14>>14)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%J+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),c=0=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c>14)%256){var c,d=this.b(b),e=this.b(b+1&15);if(0F&& +dF&&eF&&(this.h|=131072):e-c<=F&&(this.h|=131072);e=0;f>F&&(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<=F?f+c>F&&(this.h|=131072):(f-c<=F&&(this.h|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?H:0:Math.trunc(d%G/Math.pow(2,-a-35)),d<=F?d=0:(d=H,e+=G)):(c=d>F?J-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>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=(this.a<<14>>14)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%J+Math.trunc(d/Math.pow(2,72-a)));this.c(b,c);this.c(b+1&15,d)}},function(a,b){if(a=(this.a<<14>>14)%256){var c=this.b(b),d=this.b(b+ +1&15);0=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)%J,c=Math.trunc(c/Math.pow(2,-a)));this.c(b,c);this.c(b+1&15,d)}},O,function(a,b){a=this.b(b);this.c(b,this.b(this.a));this.c(this.a,a)},function(a,b){a=!1;for(var c=this.b(b),d=c/E|0,c=c&D;!a;)this.c(c,this.b(d)),c==this.a&&(a=!0),d=d+1&D,c=c+1&D,this.i.B||(this.c(b,d* +E+c),a||(this.f=(this.f+-1)%$a),a=!0)},function(a,b){a=(this.b(b)+262145)%H;this.c(b,a);a=G&&M(this,this.a)},function(a){this.g(a)},function(a,b){a=b<<14;this.h&a&&(this.h&=~a,M(this,this.a))},function(){this.da=this.a},O,function(a){this.g(a)},function(a,b){a=this.b(b);a+=262145;this.c(a&D,this.b(this.a));a>=J&&(a-=J);a/E|0||(this.h|=262144);this.c(b,a)},function(a,b){a=this.b(b);var c=this.b(a&D);this.c(this.a,c);this.a==b&& +(a=c);a-=262145;0>a&&(a+=J);(a/E|0)==D&&(this.h|=262144);this.c(b,a)},function(a){this.g(a)},function(){this.c(this.a,(this.h&D)*E+this.f);M(this,this.a+1)},function(a,b){this.c(b,(this.h&D)*E+this.f);M(this,this.a)},function(a){this.g(a)},function(a){this.g(a)},function(a,b){this.c(b,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,R.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,R.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,R.call(this,this.b(b), +this.b(this.a))))},function(a,b){this.c(b,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(b,S.call(this,this.b(b),this.a))},function(a,b){this.c(this.a,S.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,S.call(this,this.b(b),this.b(this.a))))},Mc,function(a,b){0>V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.a)&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b), +this.a)&&M(this,this.f+1)},function(a,b){V(this.b(b),this.a)&&M(this,this.f+1)},function(a,b){0V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))||M(this,this.f+1)},function(a,b){0>=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(){M(this,this.f+1)},function(a,b){0<=V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){V(this.b(b),this.b(this.a))&&M(this,this.f+1)},function(a,b){0X(this.b(b))&&M(this,this.a)},function(a,b){X(this.b(b))||M(this,this.a)},function(a,b){0>=X(this.b(b))&&M(this,this.a)},function(){M(this,this.a)},function(a,b){0<=X(this.b(b))&&M(this,this.a)},function(a,b){X(this.b(b))&&M(this,this.a)},function(a,b){0X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);X(a)||M(this,this.f+ +1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){M(this,this.f+1);b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.b(this.a);0X(a)&&M(this,this.a)},function(a, +b){a=this.c(b,R.call(this,this.b(b),1));X(a)||M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0>=X(a)&&M(this,this.a)},function(a,b){this.c(b,R.call(this,this.b(b),1));M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0<=X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));X(a)&&M(this,this.a)},function(a,b){a=this.c(b,R.call(this,this.b(b),1));0X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));X(a)||M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)}, +function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,R.call(this,this.b(this.a),1));0X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));X(a)||M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0>=X(a)&&M(this,this.a)},function(a,b){this.c(b,S.call(this, +this.b(b),1));M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0<=X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));X(a)&&M(this,this.a)},function(a,b){a=this.c(b,S.call(this,this.b(b),1));0X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));X(a)||M(this, +this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0<=X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));X(a)&&M(this,this.f+1);b&&this.c(b,a)},function(a,b){a=this.c(this.a,S.call(this,this.b(this.a),1));0>>f.f;0>>=f.f;0>>a.f;0g&&g>=-G&&(g+=J);for(var g=Math.trunc(Math.abs(g))%J,h=d;f--&&h=n.Sa&&c<=n.cb&&(b=c-(n.Sa-n.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==n.ab&&(b=n.$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.v=a;this.s=b;this.j=c;this.w=d;B(this)}; +k.Ya=function(a){if(!this.a){var b=Xb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.ua)return;c=sa(c[1]);if(this.a=Pa(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 L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Ca=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d\nLicense: GPL version 3 or later ");for(b=0;bhd){if(id(d,this.C)){this.l=new L(this,"1.34.2",rd);id(this.l)&&(sd(this,d),a=td,ud(this.l));this.l.set(od,ta());vd(this.l);var e=this.a&&!this.A;if(a==pd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=nd(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?id(d,g):("error"==f&&"no machine state"!= +g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(wd,""),this.f=null)):this.M(f+": "+g),ud(d),id(d)?(c=nd(d),e=!0):c=!1))}e&&ld(this,c?d:null)}else a==td&&d.clear()}else ld(this);delete this.C;delete this.u}e=w(this.id);for(f=0;fa[1];a=a[2];this.N=!0;this.i.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(xd(this,this.j,b,c,a),zb(this,-2),this.j.J());this.K&&(sd(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0}; +function sd(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo help us diagnose it, click OK to send this "+Ya+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Ya;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}} +function yd(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new L(a,"1.34.2"),g=new L(a,"1.34.2",md),h=ta();g.set(od,h);f.set(od,h);f.set(zd,"1.34.2");f.set(Ad,window?window.location.href:null);f.set(Bd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.i.J=a.j.i.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.i.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m=d||30<=(c.Fa+=d))&&(e.textContent=c.i.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Fa=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.i.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDPjs$2"), +a=a.replace(/().*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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(I){g=null,a=I.message}else a="unrecognized XML: "+(255/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(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 m=h[0],u,C=/( [a-z]+=)(['"])(.*?)\2/g;u=C.exec(f);)m=0>m.indexOf(u[1])?m.replace(">",u[0]+">"):m.replace(new RegExp(u[1]+"(['\"])(.*?)\\1"),u[0]);h[0]!=m&&(g=g.replace(h[0],m))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/, +"");a=a.replace(d[0],g);Jd(a,b,c)}})}else c(a,null)} +function Kd(a,b,c,d,e){function f(a){if(void 0===m){var b=h&&A(h,"machine-warning");m=b&&b[0]||h}m&&(m.innerHTML=qa(a))}function g(a){f("Error: "+a);u&&(--Gd||Ha(!0));u=!1}var h,m,u=!0;Gd++;Ma[b]={};try{if(h=document.getElementById(b)){var C;if("object"==typeof resources&&(C=resources.css)){var I=document.head||document.getElementsByTagName("head")[0],Da=document.createElement("style");Da.type="text/css";Da.styleSheet?Da.styleSheet.cssText=C:Da.appendChild(document.createTextNode(C));I.appendChild(Da)}d|| +(C=a,"pdp"==a.substr(0,3)&&(C="pdpjs"),d="/versions/"+C+"/1.34.2/components.xsl");C=function(e,m){m?Hd(d,null,a,null,!1,f,function(a,e){e?(La(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=m.transformNode(e))?(h.outerHTML=e,--Gd||Ha(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(m,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Gd|| +Ha(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Hd(c,b,a,e,!0,f,C):Id(c,null,b,a,e,!1,f,C)}else g("missing machine element: "+b)}catch(Ld){g(Ld.message)}return u}window.embedPDP10=function(a,b,c,d){Ha(!1);return Kd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Ha(!1);return Kd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return x(b,a+".machine")}; +window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Sa[a]){for(var c=!0,d=Sa,e=a,f=b.length,g=[],h=[],m="",u=null,C=0;C