Started work on new decoding functions
This commit is contained in:
parent
a13bb9348a
commit
7f0b6a091d
8 changed files with 852 additions and 732 deletions
|
|
@ -1083,7 +1083,13 @@ CPUPDP11.prototype.runCPU = function(fUpdateFocus)
|
||||||
/*
|
/*
|
||||||
* Execute the burst.
|
* Execute the burst.
|
||||||
*/
|
*/
|
||||||
this.stepCPU(nCyclesPerBurst);
|
try {
|
||||||
|
this.stepCPU(nCyclesPerBurst);
|
||||||
|
}
|
||||||
|
catch(exception) {
|
||||||
|
if (typeof exception != "number") throw exception;
|
||||||
|
if (DEBUG) this.println("CPU exception " + str.toHexWord(exception));
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* nCycles is how many cycles stepCPU() actually ran (nBurstCycles less any remaining nStepCycles).
|
* nCycles is how many cycles stepCPU() actually ran (nBurstCycles less any remaining nStepCycles).
|
||||||
|
|
|
||||||
|
|
@ -40,85 +40,116 @@ if (NODE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* op=0x00 (NOP)
|
* fnBIC(dst, src)
|
||||||
*
|
*
|
||||||
* @this {CPUStatePDP11}
|
* @param {number} src
|
||||||
|
* @param {number} dst
|
||||||
|
* @return {number} (~src & dst)
|
||||||
*/
|
*/
|
||||||
PDP11.opNOP = function()
|
PDP11.fnBIC = function(src, dst)
|
||||||
{
|
{
|
||||||
this.nStepCycles -= 4;
|
return ~src & dst;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/**
|
||||||
* This 256-entry array of opcode functions is at the heart of the CPU engine: stepCPU(n).
|
* op1170(opCode)
|
||||||
*
|
*
|
||||||
* It might be worth trying a switch() statement instead, to see how the performance compares,
|
* @this {CPUStatePDP11}
|
||||||
* but I suspect that would vary quite a bit across JavaScript engines; for now, I'm putting my
|
* @param {number} opCode
|
||||||
* money on array lookup.
|
|
||||||
*/
|
*/
|
||||||
PDP11.aOpsPDP1170 = [
|
PDP11.op1170 = function(opCode)
|
||||||
/* 0x00-0x03 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
{
|
||||||
/* 0x04-0x07 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
PDP11.aOpsF000_1170[opCode >> 12].call(this, opCode);
|
||||||
/* 0x08-0x0B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
};
|
||||||
/* 0x0C-0x0F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
|
||||||
/* 0x10-0x13 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
/**
|
||||||
/* 0x14-0x17 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* op0XXX_1170(opCode)
|
||||||
/* 0x18-0x1B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*
|
||||||
/* 0x1C-0x1F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @this {CPUStatePDP11}
|
||||||
/* 0x20-0x23 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @param {number} opCode
|
||||||
/* 0x24-0x27 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*/
|
||||||
/* 0x28-0x2B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
PDP11.op0XXX_1170 = function(opCode)
|
||||||
/* 0x2C-0x2F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
{
|
||||||
/* 0x30-0x33 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
// PDP11.aOpsF000_1170[opCode >> 12].call(this, opCode);
|
||||||
/* 0x34-0x37 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
};
|
||||||
/* 0x38-0x3B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
|
||||||
/* 0x3C-0x3F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
/**
|
||||||
/* 0x40-0x43 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* opMOV(opCode)
|
||||||
/* 0x44-0x47 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*
|
||||||
/* 0x48-0x4B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @this {CPUStatePDP11}
|
||||||
/* 0x4C-0x4F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @param {number} opCode
|
||||||
/* 0x50-0x53 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*/
|
||||||
/* 0x54-0x57 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
PDP11.opMOV = function(opCode)
|
||||||
/* 0x58-0x5B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
{
|
||||||
/* 0x5C-0x5F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.updateNZFlags(this.writeWordByMode(opCode, this.readWordByMode(opCode >> PDP11.SRCMODE.SHIFT)));
|
||||||
/* 0x60-0x63 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.nStepCycles -= 1;
|
||||||
/* 0x64-0x67 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
};
|
||||||
/* 0x68-0x6B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
|
||||||
/* 0x6C-0x6F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
/**
|
||||||
/* 0x70-0x73 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* opCMP(opCode)
|
||||||
/* 0x74-0x77 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*
|
||||||
/* 0x78-0x7B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @this {CPUStatePDP11}
|
||||||
/* 0x7C-0x7F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @param {number} opCode
|
||||||
/* 0x80-0x83 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*/
|
||||||
/* 0x84-0x87 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
PDP11.opCMP = function(opCode)
|
||||||
/* 0x88-0x8B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
{
|
||||||
/* 0x8C-0x8F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
var src = this.readWordByMode(opCode >> PDP11.SRCMODE.SHIFT);
|
||||||
/* 0x90-0x93 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
var dst = this.readWordByMode(opCode);
|
||||||
/* 0x94-0x97 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
var result = src - dst;
|
||||||
/* 0x98-0x9B */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.updateAllFlags(result, src, dst);
|
||||||
/* 0x9C-0x9F */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.nStepCycles -= 1;
|
||||||
/* 0xA0-0xA3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
};
|
||||||
/* 0xA4-0xA7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
|
||||||
/* 0xA8-0xAB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
/**
|
||||||
/* 0xAC-0xAF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* opBIT(opCode)
|
||||||
/* 0xB0-0xB3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*
|
||||||
/* 0xB4-0xB7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @this {CPUStatePDP11}
|
||||||
/* 0xB8-0xBB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @param {number} opCode
|
||||||
/* 0xBC-0xBF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*/
|
||||||
/* 0xC0-0xC3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
PDP11.opBIT = function(opCode)
|
||||||
/* 0xC4-0xC7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
{
|
||||||
/* 0xC8-0xCB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.updateNZFlags(this.readWordByMode(opCode >> PDP11.SRCMODE.SHIFT) & this.readWordByMode(opCode));
|
||||||
/* 0xCC-0xCF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.nStepCycles -= 1;
|
||||||
/* 0xD0-0xD3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
};
|
||||||
/* 0xD4-0xD7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
|
||||||
/* 0xD8-0xDB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
/**
|
||||||
/* 0xDC-0xDF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* opBIC(opCode)
|
||||||
/* 0xE0-0xE3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*
|
||||||
/* 0xE4-0xE7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @this {CPUStatePDP11}
|
||||||
/* 0xE8-0xEB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
* @param {number} opCode
|
||||||
/* 0xEC-0xEF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
*/
|
||||||
/* 0xF0-0xF3 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
PDP11.opBIC = function(opCode)
|
||||||
/* 0xF4-0xF7 */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
{
|
||||||
/* 0xF8-0xFB */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP,
|
this.updateNZFlags(this.updateWordByMode(opCode, this.readWordByMode(opCode >> PDP11.SRCMODE.SHIFT), PDP11.fnBIC));
|
||||||
/* 0xFC-0xFF */ PDP11.opNOP, PDP11.opNOP, PDP11.opNOP, PDP11.opNOP
|
this.nStepCycles -= 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* opNOP(opCode)
|
||||||
|
*
|
||||||
|
* @this {CPUStatePDP11}
|
||||||
|
* @param {number} opCode
|
||||||
|
*/
|
||||||
|
PDP11.opNOP = function(opCode)
|
||||||
|
{
|
||||||
|
this.nStepCycles -= 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
PDP11.aOpsF000_1170 = [
|
||||||
|
PDP11.op0XXX_1170,
|
||||||
|
PDP11.opMOV, // MOV 01SSDD
|
||||||
|
PDP11.opCMP, // CMP 02SSDD
|
||||||
|
PDP11.opBIT, // BIT 03SSDD
|
||||||
|
PDP11.opBIC, // BIC 04SSDD
|
||||||
|
PDP11.opNOP, // 0x5XXX
|
||||||
|
PDP11.opNOP, // 0x6XXX
|
||||||
|
PDP11.opNOP, // 0x7XXX
|
||||||
|
PDP11.opNOP, // 0x8XXX
|
||||||
|
PDP11.opNOP, // 0x9XXX
|
||||||
|
PDP11.opNOP, // 0xAXXX
|
||||||
|
PDP11.opNOP, // 0xBXXX
|
||||||
|
PDP11.opNOP, // 0xCXXX
|
||||||
|
PDP11.opNOP, // 0xDXXX
|
||||||
|
PDP11.opNOP, // 0xEXXX
|
||||||
|
PDP11.opNOP // 0xFXXX
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -92,17 +92,11 @@ Component.subclass(CPUStatePDP11, CPUPDP11);
|
||||||
/**
|
/**
|
||||||
* initProcessor()
|
* initProcessor()
|
||||||
*
|
*
|
||||||
* Interestingly, if I dynamically generate aOps as an array of functions bound to "this", using the bind()
|
|
||||||
* method, overall performance is worse. You would think that eliminating the need to use the call() method
|
|
||||||
* on every opcode function invocation would be helpful, but it's not. I'm not sure exactly why yet; perhaps
|
|
||||||
* a Closure Compiler optimization is defeated when generating the function array at run-time instead of at
|
|
||||||
* compile-time.
|
|
||||||
*
|
|
||||||
* @this {CPUStatePDP11}
|
* @this {CPUStatePDP11}
|
||||||
*/
|
*/
|
||||||
CPUStatePDP11.prototype.initProcessor = function()
|
CPUStatePDP11.prototype.initProcessor = function()
|
||||||
{
|
{
|
||||||
this.aOps = PDP11.aOpsPDP1170;
|
this.decode = PDP11.op1170.bind(this);
|
||||||
this.initRegs();
|
this.initRegs();
|
||||||
this.flags.complete = this.flags.debugCheck = false;
|
this.flags.complete = this.flags.debugCheck = false;
|
||||||
};
|
};
|
||||||
|
|
@ -133,10 +127,10 @@ CPUStatePDP11.prototype.initRegs = function()
|
||||||
*/
|
*/
|
||||||
this.flagC = 0x10000; // PSW C bit
|
this.flagC = 0x10000; // PSW C bit
|
||||||
this.flagV = 0x8000; // PSW V bit
|
this.flagV = 0x8000; // PSW V bit
|
||||||
this.flagZ = 0xffff; // ~ PSW Z bit (TODO: Why is Z clear instead of set like all other flags?)
|
this.flagZ = 0xffff; // ~ PSW Z bit (TODO: Why is Z clear instead of set like all other flags?)
|
||||||
this.flagN = 0x8000; // PSW N bit
|
this.flagN = 0x8000; // PSW N bit
|
||||||
|
this.regPSW = 0xf; // PSW other bits (TODO: What's the point of setting the flag bits here, too?)
|
||||||
this.PSW = 0xf; // PSW other bits
|
this.regOp = -1; // current opcode
|
||||||
this.regsGen = [ // General R0 - R7
|
this.regsGen = [ // General R0 - R7
|
||||||
0, 0, 0, 0, 0, 0, 0, this.resetAddr
|
0, 0, 0, 0, 0, 0, 0, this.resetAddr
|
||||||
];
|
];
|
||||||
|
|
@ -153,7 +147,7 @@ CPUStatePDP11.prototype.initRegs = function()
|
||||||
this.loopRate = 9999; // instructions we can execute in 12ms
|
this.loopRate = 9999; // instructions we can execute in 12ms
|
||||||
this.priorityReview = 2; // flag to mark if we need to check priority change
|
this.priorityReview = 2; // flag to mark if we need to check priority change
|
||||||
this.stackLimit = 0xff;
|
this.stackLimit = 0xff;
|
||||||
this.trapMask = 0;
|
this.opFlags = 0;
|
||||||
this.trapPSW = -1;
|
this.trapPSW = -1;
|
||||||
this.CPU_Error = 0;
|
this.CPU_Error = 0;
|
||||||
this.cpuType = 70;
|
this.cpuType = 70;
|
||||||
|
|
@ -637,6 +631,36 @@ CPUStatePDP11.prototype.setPSW = function(newPSW)
|
||||||
this.PSW = newPSW;
|
this.PSW = newPSW;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* updateNZFlags(result)
|
||||||
|
*
|
||||||
|
* @this {CPUStatePDP11}
|
||||||
|
* @param {number} result
|
||||||
|
*/
|
||||||
|
CPUStatePDP11.prototype.updateNZFlags = function(result)
|
||||||
|
{
|
||||||
|
if (!this.opFlags & PDP11.OPFLAG.SKIP_FLAGS) {
|
||||||
|
this.flagN = this.flagZ = result;
|
||||||
|
this.flagV = 0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* updateAllFlags(result, src, dst)
|
||||||
|
*
|
||||||
|
* @this {CPUStatePDP11}
|
||||||
|
* @param {number} result
|
||||||
|
* @param {number} src
|
||||||
|
* @param {number} dst
|
||||||
|
*/
|
||||||
|
CPUStatePDP11.prototype.updateAllFlags = function(result, src, dst)
|
||||||
|
{
|
||||||
|
if (!this.opFlags & PDP11.OPFLAG.SKIP_FLAGS) {
|
||||||
|
this.flagN = this.flagZ = this.flagC = result;
|
||||||
|
this.flagV = (src ^ dst) & (src ^ result);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* panic(reason)
|
* panic(reason)
|
||||||
*
|
*
|
||||||
|
|
@ -655,13 +679,11 @@ CPUStatePDP11.prototype.panic = function(reason)
|
||||||
*
|
*
|
||||||
* trap() handles all the trap/abort functions. It reads the trap vector from kernel
|
* trap() handles all the trap/abort functions. It reads the trap vector from kernel
|
||||||
* D space, changes mode to reflect the new PSW and PC, and then pushes the old PSW and
|
* D space, changes mode to reflect the new PSW and PC, and then pushes the old PSW and
|
||||||
* PC onto the new mode stack. trap() returns a -1 which is passed up through function
|
* PC onto the new mode stack.
|
||||||
* calls to indicate that a trap/abort has occurred (suspend instruction processing).
|
|
||||||
*
|
*
|
||||||
* @this {CPUStatePDP11}
|
* @this {CPUStatePDP11}
|
||||||
* @param {number} vector
|
* @param {number} vector
|
||||||
* @param {number} reason
|
* @param {number} reason
|
||||||
* @return {number}
|
|
||||||
*/
|
*/
|
||||||
CPUStatePDP11.prototype.trap = function(vector, reason)
|
CPUStatePDP11.prototype.trap = function(vector, reason)
|
||||||
{
|
{
|
||||||
|
|
@ -692,9 +714,9 @@ CPUStatePDP11.prototype.trap = function(vector, reason)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.trapMask = 0; // lose interest in traps after an abort
|
this.opFlags &= ~PDP11.OPFLAG.TRAP_MASK; // lose interest in traps after an abort
|
||||||
this.trapPSW = -1; // reset flag that we have a trap within a trap
|
this.trapPSW = -1; // reset flag that we have a trap within a trap
|
||||||
return -1; // signal that a trap has occurred
|
throw vector | (reason << 8);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -778,7 +800,7 @@ CPUStatePDP11.prototype.mapVirtualToPhysical = function(virtualAddress, accessMa
|
||||||
} else { // no max_memory check in 16 bit mode
|
} else { // no max_memory check in 16 bit mode
|
||||||
if ((physicalAddress & 1) && !(accessMask & PDP11.BYTE_MODE)) {
|
if ((physicalAddress & 1) && !(accessMask & PDP11.BYTE_MODE)) {
|
||||||
this.CPU_Error |= 0x40;
|
this.CPU_Error |= 0x40;
|
||||||
return this.trap(4, 22);
|
this.trap(PDP11.TRAP.BUS_ERROR, 22);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return physicalAddress;
|
return physicalAddress;
|
||||||
|
|
@ -787,22 +809,22 @@ CPUStatePDP11.prototype.mapVirtualToPhysical = function(virtualAddress, accessMa
|
||||||
page = (virtualAddress >> 13) & this.mmuMask[this.mmuMode];
|
page = (virtualAddress >> 13) & this.mmuMask[this.mmuMode];
|
||||||
pdr = this.mmuMap[this.mmuMode][page];
|
pdr = this.mmuMap[this.mmuMode][page];
|
||||||
physicalAddress = ((this.mmuMap[this.mmuMode][page + 16] << 6) + (virtualAddress & 0x1fff)) & 0x3fffff;
|
physicalAddress = ((this.mmuMap[this.mmuMode][page + 16] << 6) + (virtualAddress & 0x1fff)) & 0x3fffff;
|
||||||
if (this.MMR3 & 0x10) { // if 22 bit MM mode
|
if (this.MMR3 & 0x10) { // if 22 bit MM mode
|
||||||
if (physicalAddress >= BusPDP11.IOPAGE_UNIBUS && physicalAddress < BusPDP11.IOPAGE_22BIT) {
|
if (physicalAddress >= BusPDP11.IOPAGE_UNIBUS && physicalAddress < BusPDP11.IOPAGE_22BIT) {
|
||||||
physicalAddress = this.mapUnibus(physicalAddress & 0x3ffff); // 18bit unibus space
|
physicalAddress = this.mapUnibus(physicalAddress & 0x3ffff); // 18bit unibus space
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
physicalAddress &= 0x3ffff; // truncate if only 18 bit mapping
|
physicalAddress &= 0x3ffff; // truncate if only 18 bit mapping
|
||||||
if (physicalAddress >= BusPDP11.IOPAGE_18BIT) physicalAddress |= BusPDP11.IOPAGE_22BIT;
|
if (physicalAddress >= BusPDP11.IOPAGE_18BIT) physicalAddress |= BusPDP11.IOPAGE_22BIT;
|
||||||
}
|
}
|
||||||
if (physicalAddress < BusPDP11.IOPAGE_UNIBUS) {
|
if (physicalAddress < BusPDP11.IOPAGE_UNIBUS) {
|
||||||
if (physicalAddress >= BusPDP11.MAX_MEMORY) {
|
if (physicalAddress >= BusPDP11.MAX_MEMORY) {
|
||||||
this.CPU_Error |= 0x20;
|
this.CPU_Error |= 0x20;
|
||||||
return this.trap(4, 24); // KB11-EM does this after ABORT handling - KB11-CM before
|
this.trap(PDP11.TRAP.BUS_ERROR, 24); // KB11-EM does this after ABORT handling - KB11-CM before
|
||||||
}
|
}
|
||||||
if ((physicalAddress & 1) && !(accessMask & PDP11.BYTE_MODE)) {
|
if ((physicalAddress & 1) && !(accessMask & PDP11.BYTE_MODE)) {
|
||||||
this.CPU_Error |= 0x40;
|
this.CPU_Error |= 0x40;
|
||||||
return this.trap(4, 26);
|
this.trap(PDP11.TRAP.BUS_ERROR, 26);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (pdr & 0x7) {
|
switch (pdr & 0x7) {
|
||||||
|
|
@ -856,14 +878,14 @@ CPUStatePDP11.prototype.mapVirtualToPhysical = function(virtualAddress, accessMa
|
||||||
if (!(this.MMR0 & 0xe000)) {
|
if (!(this.MMR0 & 0xe000)) {
|
||||||
this.MMR0 |= errorMask | (this.mmuLastMode << 5) | (this.mmuLastPage << 1);
|
this.MMR0 |= errorMask | (this.mmuLastMode << 5) | (this.mmuLastPage << 1);
|
||||||
}
|
}
|
||||||
return this.trap(0xa8, 28); // 0250
|
this.trap(PDP11.TRAP.MMU_FAULT, 28);
|
||||||
}
|
}
|
||||||
if (!(this.MMR0 & 0xf000)) {
|
if (!(this.MMR0 & 0xf000)) {
|
||||||
//if (physicalAddress < 017772200 || physicalAddress > 017777677) {
|
//if (physicalAddress < 017772200 || physicalAddress > 017777677) {
|
||||||
if (physicalAddress < 0x3ff480 || physicalAddress > 0x3fffbf) {
|
if (physicalAddress < 0x3ff480 || physicalAddress > 0x3fffbf) {
|
||||||
this.MMR0 |= 0x1000; // MMU trap flag
|
this.MMR0 |= 0x1000; // MMU trap flag
|
||||||
if (this.MMR0 & 0x0200) {
|
if (this.MMR0 & 0x0200) {
|
||||||
this.trapMask |= 2; // MMU trap
|
this.opFlags |= PDP11.OPFLAG.TRAP_MMU;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1015,10 +1037,11 @@ CPUStatePDP11.prototype.pushWord = function(data)
|
||||||
if (virtualAddress <= this.stackLimit - 32) {
|
if (virtualAddress <= this.stackLimit - 32) {
|
||||||
this.CPU_Error |= 4; // Red stack
|
this.CPU_Error |= 4; // Red stack
|
||||||
this.regsGen[6] = 4;
|
this.regsGen[6] = 4;
|
||||||
return this.trap(4, 32);
|
this.trap(PDP11.TRAP.BUS_ERROR, 32);
|
||||||
|
} else {
|
||||||
|
this.CPU_Error |= 8; // Yellow
|
||||||
|
this.opFlags |= 4;
|
||||||
}
|
}
|
||||||
this.CPU_Error |= 8; // Yellow
|
|
||||||
this.trapMask |= 4;
|
|
||||||
}
|
}
|
||||||
if ((physicalAddress = this.mapVirtualToPhysical(virtualAddress | 0x10000, PDP11.WRITE_MODE)) >= 0) {
|
if ((physicalAddress = this.mapVirtualToPhysical(virtualAddress | 0x10000, PDP11.WRITE_MODE)) >= 0) {
|
||||||
return this.writeWordByAddr(physicalAddress, data);
|
return this.writeWordByAddr(physicalAddress, data);
|
||||||
|
|
@ -1059,22 +1082,27 @@ CPUStatePDP11.prototype.pushWord = function(data)
|
||||||
CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessMode)
|
CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessMode)
|
||||||
{
|
{
|
||||||
var virtualAddress, stepSize, reg = addressMode & 7;
|
var virtualAddress, stepSize, reg = addressMode & 7;
|
||||||
|
|
||||||
switch ((addressMode >> 3) & 7) {
|
switch ((addressMode >> 3) & 7) {
|
||||||
case 0: // Mode 0: Registers don't have a virtual address so trap!
|
case 0: // Mode 0: Registers don't have a virtual address so trap!
|
||||||
return this.trap(4, 34); // trap for invalid virtual address
|
this.trap(PDP11.TRAP.BUS_ERROR, 34); // trap for invalid virtual address
|
||||||
case 1: // Mode 1: (R)
|
break;
|
||||||
|
|
||||||
|
case 1: // Mode 1: (R)
|
||||||
if (reg === 6 && (!this.mmuMode) && (accessMode & PDP11.WRITE_MODE) &&
|
if (reg === 6 && (!this.mmuMode) && (accessMode & PDP11.WRITE_MODE) &&
|
||||||
(this.regsGen[6] <= this.stackLimit || this.regsGen[6] >= 0xfffe)) {
|
(this.regsGen[6] <= this.stackLimit || this.regsGen[6] >= 0xfffe)) {
|
||||||
if (this.regsGen[6] <= this.stackLimit - 32 || this.regsGen[6] >= 0xfffe) {
|
if (this.regsGen[6] <= this.stackLimit - 32 || this.regsGen[6] >= 0xfffe) {
|
||||||
this.CPU_Error |= 4; // Red stack
|
this.CPU_Error |= 4; // Red stack
|
||||||
this.regsGen[6] = 4;
|
this.regsGen[6] = 4;
|
||||||
return this.trap(4, 36);
|
this.trap(PDP11.TRAP.BUS_ERROR, 36);
|
||||||
|
} else {
|
||||||
|
this.CPU_Error |= 8; // Yellow
|
||||||
|
this.opFlags |= PDP11.OPFLAG.TRAP_SP;
|
||||||
}
|
}
|
||||||
this.CPU_Error |= 8; // Yellow
|
|
||||||
this.trapMask |= 4;
|
|
||||||
}
|
}
|
||||||
return (reg === 7 ? this.regsGen[reg] : (this.regsGen[reg] | 0x10000));
|
return (reg === 7 ? this.regsGen[reg] : (this.regsGen[reg] | 0x10000));
|
||||||
case 2: // Mode 2: (R)+
|
|
||||||
|
case 2: // Mode 2: (R)+
|
||||||
stepSize = 2;
|
stepSize = 2;
|
||||||
virtualAddress = this.regsGen[reg];
|
virtualAddress = this.regsGen[reg];
|
||||||
if (reg !== 7) {
|
if (reg !== 7) {
|
||||||
|
|
@ -1150,10 +1178,11 @@ CPUStatePDP11.prototype.getVirtualByMode = function(addressMode, accessMode)
|
||||||
if (this.regsGen[6] <= this.stackLimit - 32) {
|
if (this.regsGen[6] <= this.stackLimit - 32) {
|
||||||
this.CPU_Error |= 4; // Red stack
|
this.CPU_Error |= 4; // Red stack
|
||||||
this.regsGen[6] = 4;
|
this.regsGen[6] = 4;
|
||||||
return this.trap(4, 38);
|
this.trap(PDP11.TRAP.BUS_ERROR, 38);
|
||||||
|
} else {
|
||||||
|
this.CPU_Error |= 8; // Yellow
|
||||||
|
this.opFlags |= PDP11.OPFLAG.TRAP_SP;
|
||||||
}
|
}
|
||||||
this.CPU_Error |= 8; // Yellow
|
|
||||||
this.trapMask |= 4;
|
|
||||||
}
|
}
|
||||||
return virtualAddress;
|
return virtualAddress;
|
||||||
};
|
};
|
||||||
|
|
@ -1189,15 +1218,11 @@ CPUStatePDP11.prototype.getAddrByMode = function(addressMode, accessMode)
|
||||||
CPUStatePDP11.prototype.readWordByMode = function(addressMode)
|
CPUStatePDP11.prototype.readWordByMode = function(addressMode)
|
||||||
{
|
{
|
||||||
var result;
|
var result;
|
||||||
if (!(addressMode & 0x38)) {
|
if (!(addressMode & PDP11.OPMODE.MASK)) {
|
||||||
result = this.regsGen[addressMode & 7];
|
result = this.regsGen[addressMode & PDP11.OPREG.MASK];
|
||||||
//LOG_SOURCE(result);
|
|
||||||
} else {
|
} else {
|
||||||
if ((result = this.getAddrByMode(addressMode, PDP11.READ_MODE)) >= 0) {
|
var addr = this.getAddrByMode(addressMode, PDP11.READ_MODE);
|
||||||
if ((result = this.readWordByAddr(result)) >= 0) {
|
result = this.readWordByAddr(addr);
|
||||||
//LOG_SOURCE(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
@ -1225,6 +1250,46 @@ CPUStatePDP11.prototype.readByteByMode = function(addressMode)
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* writeWordByMode(addressMode, data)
|
||||||
|
*
|
||||||
|
* @this {CPUStatePDP11}
|
||||||
|
* @param {number} addressMode
|
||||||
|
* @param {number} data
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
|
CPUStatePDP11.prototype.writeWordByMode = function(addressMode, data)
|
||||||
|
{
|
||||||
|
if (!(addressMode & PDP11.OPMODE.MASK)) {
|
||||||
|
this.regsGen[addressMode & PDP11.OPREG.MASK] = data;
|
||||||
|
} else {
|
||||||
|
this.writeWordByAddr(this.getAddrByMode(addressMode, PDP11.WRITE_MODE), data);
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* updateWordByMode(addressMode, src, fnOp)
|
||||||
|
*
|
||||||
|
* @this {CPUStatePDP11}
|
||||||
|
* @param {number} addressMode
|
||||||
|
* @param {number} src
|
||||||
|
* @param {function(number,number)} fnOp
|
||||||
|
* @return {number}
|
||||||
|
*/
|
||||||
|
CPUStatePDP11.prototype.updateWordByMode = function(addressMode, src, fnOp)
|
||||||
|
{
|
||||||
|
var data;
|
||||||
|
if (!(addressMode & PDP11.OPMODE.MASK)) {
|
||||||
|
var reg = addressMode & PDP11.OPREG.MASK;
|
||||||
|
this.regsGen[reg] = data = fnOp(src, this.regsGen[reg]);
|
||||||
|
} else {
|
||||||
|
var addr = this.getAddrByMode(addressMode, PDP11.WRITE_MODE);
|
||||||
|
this.writeWordByAddr(addr, data = fnOp(src, this.readWordByAddr(addr)));
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* branch(PC, instruction)
|
* branch(PC, instruction)
|
||||||
*
|
*
|
||||||
|
|
@ -1315,6 +1380,28 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
result,
|
result,
|
||||||
virtualAddress, savePSW, reg, i, j;
|
virtualAddress, savePSW, reg, i, j;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check for any pending traps.
|
||||||
|
*
|
||||||
|
* I've moved this TRAP_MASK check BEFORE we decode the next instruction instead
|
||||||
|
* of immediately AFTER, because the last instruction may have thrown an exception,
|
||||||
|
* kicking us out before we reach the bottom of this loop.
|
||||||
|
*/
|
||||||
|
if (this.opFlags & PDP11.OPFLAG.TRAP_MASK) {
|
||||||
|
if (this.opFlags & PDP11.OPFLAG.TRAP_MMU) {
|
||||||
|
this.trap(PDP11.TRAP.MMU_FAULT, 52); // MMU trap has priority
|
||||||
|
} else {
|
||||||
|
if (this.opFlags & PDP11.OPFLAG.TRAP_SP) {
|
||||||
|
this.trap(PDP11.TRAP.BUS_ERROR, 54); // then SP trap
|
||||||
|
} else {
|
||||||
|
if (this.opFlags & PDP11.OPFLAG.TRAP_TF) {
|
||||||
|
this.trap(PDP11.TRAP.BREAKPOINT, 56); // and finally a TF trap
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.opFlags &= ~PDP11.OPFLAG.TRAP_MASK;
|
||||||
|
}
|
||||||
|
|
||||||
if (this.priorityReview) { // if nothing has changed don't check priority
|
if (this.priorityReview) { // if nothing has changed don't check priority
|
||||||
if (this.priorityReview === 1) {
|
if (this.priorityReview === 1) {
|
||||||
this.priorityReview = 2; // SPL delay
|
this.priorityReview = 2; // SPL delay
|
||||||
|
|
@ -1347,7 +1434,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
}
|
}
|
||||||
if (savePSW > (this.PSW & 0xe0)) {
|
if (savePSW > (this.PSW & 0xe0)) {
|
||||||
if (j < 0) {
|
if (j < 0) {
|
||||||
this.trap(0xA0, /*0240*/ 42);
|
this.trap(PDP11.TRAP.PIRQ, 42);
|
||||||
} else {
|
} else {
|
||||||
this.trap(this.interruptQueue[j].vector, 44);
|
this.trap(this.interruptQueue[j].vector, 44);
|
||||||
this.interruptQueue.splice(j, 1);
|
this.interruptQueue.splice(j, 1);
|
||||||
|
|
@ -1355,69 +1442,81 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(this.MMR0 & 0xe000)) {
|
if (!(this.MMR0 & 0xe000)) {
|
||||||
this.MMR1 = 0;
|
this.MMR1 = 0;
|
||||||
this.MMR2 = this.regsGen[7];
|
this.MMR2 = this.regsGen[7];
|
||||||
}
|
}
|
||||||
// If needed T-bit trap at the end of this instruction
|
|
||||||
this.trapMask = this.PSW & 0x10;
|
/*
|
||||||
if ((instruction = this.readWordByVirtual(this.regsGen[7])) >= 0) {
|
* Snapshot the TF bit in opFlags, while simultaneously clearing all other opFlags;
|
||||||
|
* we'll check the TRAP_TF bit in opFlags when we come back around for another opcode.
|
||||||
|
*/
|
||||||
|
this.opFlags = this.PSW & PDP11.PSW.TF;
|
||||||
|
|
||||||
|
this.regOp = this.readWordByVirtual(this.regsGen[7]);
|
||||||
|
this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff;
|
||||||
|
this.decode(this.regOp);
|
||||||
|
|
||||||
|
if (this.regOp >= 0) {
|
||||||
|
instruction = this.regOp;
|
||||||
this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff;
|
this.regsGen[7] = (this.regsGen[7] + 2) & 0xffff;
|
||||||
|
|
||||||
switch (instruction & 0xF000) /*0170000*/ { // Double operand instructions xxSSDD
|
switch (instruction & 0xF000) /*0170000*/ { // Double operand instructions xxSSDD
|
||||||
case 0x1000: /*0010000*/ // MOV 01SSDD
|
// case 0x1000: /*0010000*/ // MOV 01SSDD
|
||||||
//LOG_INSTRUCTION(instruction, 2, "MOV");
|
// //LOG_INSTRUCTION(instruction, 2, "MOV");
|
||||||
if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
||||||
if (!(instruction & 0x38)) {
|
// if (!(instruction & 0x38)) {
|
||||||
this.regsGen[instruction & 7] = src;
|
// this.regsGen[instruction & 7] = src;
|
||||||
this.flagN = this.flagZ = src;
|
// this.flagN = this.flagZ = src;
|
||||||
this.flagV = 0;
|
// this.flagV = 0;
|
||||||
} else {
|
// } else {
|
||||||
if ((dstAddr = this.getAddrByMode(instruction, PDP11.WRITE_MODE)) >= 0) {
|
// if ((dstAddr = this.getAddrByMode(instruction, PDP11.WRITE_MODE)) >= 0) {
|
||||||
if (this.writeWordByAddr(dstAddr, src) >= 0) {
|
// if (this.writeWordByAddr(dstAddr, src) >= 0) {
|
||||||
this.flagN = this.flagZ = src;
|
// this.flagN = this.flagZ = src;
|
||||||
this.flagV = 0;
|
// this.flagV = 0;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
case 0x2000: /*0020000*/ // CMP 02SSDD
|
// case 0x2000: /*0020000*/ // CMP 02SSDD
|
||||||
//LOG_INSTRUCTION(instruction, 2, "CMP");
|
// //LOG_INSTRUCTION(instruction, 2, "CMP");
|
||||||
if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
||||||
if ((dst = this.readWordByMode(instruction)) >= 0) {
|
// if ((dst = this.readWordByMode(instruction)) >= 0) {
|
||||||
result = src - dst;
|
// result = src - dst;
|
||||||
this.flagN = this.flagZ = this.flagC = result;
|
// this.flagN = this.flagZ = this.flagC = result;
|
||||||
this.flagV = (src ^ dst) & (src ^ result);
|
// this.flagV = (src ^ dst) & (src ^ result);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
case 0x3000: /*0030000*/ // BIT 03SSDD
|
// case 0x3000: /*0030000*/ // BIT 03SSDD
|
||||||
//LOG_INSTRUCTION(instruction, 2, "BIT");
|
// //LOG_INSTRUCTION(instruction, 2, "BIT");
|
||||||
if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
||||||
if ((dst = this.readWordByMode(instruction)) >= 0) {
|
// if ((dst = this.readWordByMode(instruction)) >= 0) {
|
||||||
this.flagN = this.flagZ = src & dst;
|
// this.flagN = this.flagZ = src & dst;
|
||||||
this.flagV = 0;
|
// this.flagV = 0;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
case 0x4000: /*0040000*/ // BIC 04SSDD
|
// case 0x4000: /*0040000*/ // BIC 04SSDD
|
||||||
//LOG_INSTRUCTION(instruction, 2, "BIC");
|
// //LOG_INSTRUCTION(instruction, 2, "BIC");
|
||||||
if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
// if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
||||||
if (!(instruction & 0x38)) {
|
// if (!(instruction & 0x38)) {
|
||||||
result = this.regsGen[instruction & 7] &= ~src;
|
// result = this.regsGen[instruction & 7] &= ~src;
|
||||||
this.flagN = this.flagZ = result;
|
// this.flagN = this.flagZ = result;
|
||||||
this.flagV = 0;
|
// this.flagV = 0;
|
||||||
} else {
|
// } else {
|
||||||
if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.MODIFY_WORD))) >= 0) {
|
// if ((dst = this.readWordByAddr(dstAddr = this.getAddrByMode(instruction, PDP11.MODIFY_WORD))) >= 0) {
|
||||||
result = dst & ~src;
|
// result = dst & ~src;
|
||||||
if (this.writeWordByAddr(dstAddr, result) >= 0) {
|
// if (this.writeWordByAddr(dstAddr, result) >= 0) {
|
||||||
this.flagN = this.flagZ = result;
|
// this.flagN = this.flagZ = result;
|
||||||
this.flagV = 0;
|
// this.flagV = 0;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
case 0x5000: /*0050000*/ // BIS 05SSDD
|
case 0x5000: /*0050000*/ // BIS 05SSDD
|
||||||
//LOG_INSTRUCTION(instruction, 2, "BIS");
|
//LOG_INSTRUCTION(instruction, 2, "BIS");
|
||||||
if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
if ((src = this.readWordByMode(instruction >> 6)) >= 0) {
|
||||||
|
|
@ -1753,11 +1852,11 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
break;
|
break;
|
||||||
case 0x8800: /*0104000*/ // EMT 104000 -> 104377
|
case 0x8800: /*0104000*/ // EMT 104000 -> 104377
|
||||||
//LOG_INSTRUCTION(instruction, 7, "EMT");
|
//LOG_INSTRUCTION(instruction, 7, "EMT");
|
||||||
this.trap(0x18, /*030*/ 2);
|
this.trap(PDP11.TRAP.EMULATOR, /*030*/ 2);
|
||||||
break;
|
break;
|
||||||
case 0x8900: /*0104400*/ // TRAP 104400 -> 104777
|
case 0x8900: /*0104400*/ // TRAP 104400 -> 104777
|
||||||
//LOG_INSTRUCTION(instruction, 7, "TRAP");
|
//LOG_INSTRUCTION(instruction, 7, "TRAP");
|
||||||
this.trap(0x1C, /*034*/ 4);
|
this.trap(PDP11.TRAP.TRAP, /*034*/ 4);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
switch (instruction & 0xFFC0) /*0177700*/ { // Single operand instructions xxxxDD
|
switch (instruction & 0xFFC0) /*0177700*/ { // Single operand instructions xxxxDD
|
||||||
|
|
@ -2296,7 +2395,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
//LOG_INSTRUCTION(instruction, 0, "HALT");
|
//LOG_INSTRUCTION(instruction, 0, "HALT");
|
||||||
if (0xc000 & this.PSW) {
|
if (0xc000 & this.PSW) {
|
||||||
this.CPU_Error |= 0x80; /*0200*/
|
this.CPU_Error |= 0x80; /*0200*/
|
||||||
this.trap(4, 46);
|
this.trap(PDP11.TRAP.BUS_ERROR, 46);
|
||||||
} else {
|
} else {
|
||||||
this.runState = 3; // halt
|
this.runState = 3; // halt
|
||||||
this.endBurst();
|
this.endBurst();
|
||||||
|
|
@ -2320,11 +2419,11 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
break;
|
break;
|
||||||
case 0x3: /*0000003*/ // BPT 000003
|
case 0x3: /*0000003*/ // BPT 000003
|
||||||
//LOG_INSTRUCTION(instruction, 0, "BPT");
|
//LOG_INSTRUCTION(instruction, 0, "BPT");
|
||||||
this.trap(0xC, /*014*/ 6);
|
this.trap(PDP11.TRAP.BREAKPOINT, /*014*/ 6);
|
||||||
break;
|
break;
|
||||||
case 0x4: /*0000004*/ // IOT 000004
|
case 0x4: /*0000004*/ // IOT 000004
|
||||||
//LOG_INSTRUCTION(instruction, 0, "IOT");
|
//LOG_INSTRUCTION(instruction, 0, "IOT");
|
||||||
this.trap(0x10, /*020*/ 8);
|
this.trap(PDP11.TRAP.IOT, /*020*/ 8);
|
||||||
break;
|
break;
|
||||||
case 0x5: /*0000005*/ // RESET 000005
|
case 0x5: /*0000005*/ // RESET 000005
|
||||||
//LOG_INSTRUCTION(instruction, 0, "RESET");
|
//LOG_INSTRUCTION(instruction, 0, "RESET");
|
||||||
|
|
@ -2343,14 +2442,16 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
if ((savePSW = this.readWordByVirtual(dstAddr | 0x10000)) >= 0) {
|
if ((savePSW = this.readWordByVirtual(dstAddr | 0x10000)) >= 0) {
|
||||||
this.regsGen[6] = (dstAddr + 2) & 0xffff;
|
this.regsGen[6] = (dstAddr + 2) & 0xffff;
|
||||||
savePSW &= 0xf8ff;
|
savePSW &= 0xf8ff;
|
||||||
if (this.PSW & 0xc000) { // user / super restrictions
|
if (this.PSW & 0xc000) { // user / super restrictions
|
||||||
// keep SPL and allow lower only for modes and register set
|
// keep SPL and allow lower only for modes and register set
|
||||||
savePSW = (savePSW & 0xf81f) | (this.PSW & 0xf8e0);
|
savePSW = (savePSW & 0xf81f) | (this.PSW & 0xf8e0);
|
||||||
}
|
}
|
||||||
this.regsGen[7] = virtualAddress;
|
this.regsGen[7] = virtualAddress;
|
||||||
this.setPSW(savePSW);
|
this.setPSW(savePSW);
|
||||||
this.trapMask &= ~0x10; // turn off Trace trap
|
this.opFlags &= ~PDP11.OPFLAG.TRAP_TF;
|
||||||
if (instruction === 2) this.trapMask |= this.PSW & 0x10; // RTI enables immediate trace
|
if (instruction === 2) { // RTI enables immediate trace
|
||||||
|
this.opFlags |= (this.PSW & PDP11.PSW.TF);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -2360,7 +2461,7 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
// break; // Exists on pdp 11/44 & KB11-EM
|
// break; // Exists on pdp 11/44 & KB11-EM
|
||||||
default: // We don't know this instruction
|
default: // We don't know this instruction
|
||||||
//LOG_INSTRUCTION(instruction, 11, "-unknown-");
|
//LOG_INSTRUCTION(instruction, 11, "-unknown-");
|
||||||
this.trap(0x8, /*010*/ 48); // Illegal instruction
|
this.trap(PDP11.TRAP.RESERVED, /*010*/ 48); // reserved instruction
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2369,18 +2470,6 @@ CPUStatePDP11.prototype.stepCPU = function(nMinCycles)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.trapMask) { // check for any traps pending
|
|
||||||
if (this.trapMask & 2) {
|
|
||||||
this.trap(0xA8, /*0250*/ 52); // MMU trap has priority
|
|
||||||
} else {
|
|
||||||
if (this.trapMask & 4) {
|
|
||||||
this.trap(4, 54); // then SP trap
|
|
||||||
} else {
|
|
||||||
if (this.trapMask & 0x10) this.trap(0xC, /*014*/ 56); // and finally a T-bit trap
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.trapMask = 0;
|
|
||||||
}
|
|
||||||
} while (this.nStepCycles > 0);
|
} while (this.nStepCycles > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -214,7 +214,7 @@ if (DEBUGGER) {
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CPU opcode ordinals
|
* CPU opcode IDs
|
||||||
*/
|
*/
|
||||||
DebuggerPDP11.OPS = {
|
DebuggerPDP11.OPS = {
|
||||||
NONE: 0, ADC: 1, ADCB: 2, ADD: 3, ASL: 4, ASLB: 5, ASR: 6, ASRB: 7,
|
NONE: 0, ADC: 1, ADCB: 2, ADD: 3, ASL: 4, ASLB: 5, ASR: 6, ASRB: 7,
|
||||||
|
|
@ -261,120 +261,119 @@ if (DEBUGGER) {
|
||||||
DebuggerPDP11.REG_PSW = 20;
|
DebuggerPDP11.REG_PSW = 20;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Operand descriptor masks; anything that's not covered by TYPE_SRC or TYPE_DST must be a TYPE_OTHER value.
|
* Operand type masks; anything that's not covered by OP_SRC or OP_DST must be a OP_OTHER value.
|
||||||
*/
|
*/
|
||||||
DebuggerPDP11.TYPE_DSTREG = 0x0007;
|
DebuggerPDP11.OP_DSTREG = PDP11.OPREG.MASK;
|
||||||
DebuggerPDP11.TYPE_DSTMODE = 0x0038;
|
DebuggerPDP11.OP_DSTMODE = PDP11.OPMODE.MASK;
|
||||||
DebuggerPDP11.TYPE_DSTMODE_SHIFT = 3;
|
DebuggerPDP11.OP_DST = (DebuggerPDP11.OP_DSTMODE | DebuggerPDP11.OP_DSTREG);
|
||||||
DebuggerPDP11.TYPE_DST = (DebuggerPDP11.TYPE_DSTMODE | DebuggerPDP11.TYPE_DSTREG);
|
DebuggerPDP11.OP_SRCREG = PDP11.OPREG.MASK << 6;
|
||||||
DebuggerPDP11.TYPE_SRCREG = 0x01C0;
|
DebuggerPDP11.OP_SRCMODE = PDP11.OPMODE.MASK << 6;
|
||||||
DebuggerPDP11.TYPE_SRCMODE = 0x0E00;
|
DebuggerPDP11.OP_SRC = (DebuggerPDP11.OP_SRCMODE | DebuggerPDP11.OP_SRCREG);
|
||||||
DebuggerPDP11.TYPE_SRC = (DebuggerPDP11.TYPE_SRCMODE | DebuggerPDP11.TYPE_SRCREG);
|
DebuggerPDP11.OP_BRANCH = 0x1000;
|
||||||
DebuggerPDP11.TYPE_BRANCH = 0x1000;
|
DebuggerPDP11.OP_DSTOFF = 0x2000;
|
||||||
DebuggerPDP11.TYPE_DSTOFF = 0x2000;
|
DebuggerPDP11.OP_DSTNUM3 = 0x3000; // DST 3-bit number (ie, just the DSTREG field)
|
||||||
DebuggerPDP11.TYPE_DSTNUM3 = 0x3000; // DST 3-bit number (ie, just the DSTREG field)
|
DebuggerPDP11.OP_DSTNUM6 = 0x6000; // DST 6-bit number (ie, both the DSTREG and DSTMODE fields)
|
||||||
DebuggerPDP11.TYPE_DSTNUM6 = 0x6000; // DST 6-bit number (ie, both the DSTREG and DSTMODE fields)
|
DebuggerPDP11.OP_OTHER = 0xF000;
|
||||||
DebuggerPDP11.TYPE_OTHER = 0xF000;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The opMasks table contains opcode masks, and each mask refers to table of possible values, and each
|
* The opTable contains opcode masks, and each mask refers to table of possible values, and each
|
||||||
* value refers to an array that contains:
|
* value refers to an array that contains:
|
||||||
*
|
*
|
||||||
* [0]: {number} of the opcode name (see OP.*)
|
* [0]: {number} of the opcode name (see OP.*)
|
||||||
* [1]: {number} containing the first operand descriptor bit(s), if any
|
* [1]: {number} containing the first operand type bit(s), if any
|
||||||
* [2]: {number} containing the second operand descriptor bit(s), if any
|
* [2]: {number} containing the second operand type bit(s), if any
|
||||||
*
|
*
|
||||||
* Note that, by convention, opcodes that require two operands list the SRC operand first and DST operand
|
* Note that, by convention, opcodes that require two operands list the SRC operand first and DST operand
|
||||||
* second (ie, the OPPOSITE of the Intel convention).
|
* second (ie, the OPPOSITE of the Intel convention).
|
||||||
*
|
*
|
||||||
* Also note that, for some of the newer PDP-11 opcodes (eg, MUL, DIV, ASH, ASHC), the location of the
|
* Also note that, for some of the newer PDP-11 opcodes (eg, MUL, DIV, ASH, ASHC), the location of the
|
||||||
* opcode's SRC and DST bits are reversed. This is why, for example, you'll see the MUL instruction defined
|
* opcode's SRC and DST bits are reversed. This is why, for example, you'll see the MUL instruction defined
|
||||||
* below as having TYPE_DST for the first operand and TYPE_SRCREG for the second operand. This does NOT mean
|
* below as having OP_DST for the first operand and OP_SRCREG for the second operand. This does NOT mean
|
||||||
* that the opcode's destination operand is being listed first, but rather that the bits describing the source
|
* that the opcode's destination operand is being listed first, but rather that the bits describing the source
|
||||||
* operand are in the opcode's TYPE_DST field.
|
* operand are in the opcode's OP_DST field.
|
||||||
*/
|
*/
|
||||||
DebuggerPDP11.opMasks = {
|
DebuggerPDP11.opTable = {
|
||||||
0xF000: {
|
0xF000: {
|
||||||
0x1000: [DebuggerPDP11.OPS.MOV, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 01SSDD
|
0x1000: [DebuggerPDP11.OPS.MOV, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 01SSDD
|
||||||
0x2000: [DebuggerPDP11.OPS.CMP, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 02SSDD
|
0x2000: [DebuggerPDP11.OPS.CMP, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 02SSDD
|
||||||
0x3000: [DebuggerPDP11.OPS.BIT, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 03SSDD
|
0x3000: [DebuggerPDP11.OPS.BIT, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 03SSDD
|
||||||
0x4000: [DebuggerPDP11.OPS.BIC, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 04SSDD
|
0x4000: [DebuggerPDP11.OPS.BIC, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 04SSDD
|
||||||
0x5000: [DebuggerPDP11.OPS.BIS, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 05SSDD
|
0x5000: [DebuggerPDP11.OPS.BIS, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 05SSDD
|
||||||
0x6000: [DebuggerPDP11.OPS.ADD, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 06SSDD
|
0x6000: [DebuggerPDP11.OPS.ADD, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 06SSDD
|
||||||
0x9000: [DebuggerPDP11.OPS.MOVB, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 11SSDD
|
0x9000: [DebuggerPDP11.OPS.MOVB, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 11SSDD
|
||||||
0xA000: [DebuggerPDP11.OPS.CMPB, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 12SSDD
|
0xA000: [DebuggerPDP11.OPS.CMPB, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 12SSDD
|
||||||
0xB000: [DebuggerPDP11.OPS.BITB, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 13SSDD
|
0xB000: [DebuggerPDP11.OPS.BITB, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 13SSDD
|
||||||
0xC000: [DebuggerPDP11.OPS.BICB, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 14SSDD
|
0xC000: [DebuggerPDP11.OPS.BICB, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 14SSDD
|
||||||
0xD000: [DebuggerPDP11.OPS.BISB, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST], // 15SSDD
|
0xD000: [DebuggerPDP11.OPS.BISB, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST], // 15SSDD
|
||||||
0xE000: [DebuggerPDP11.OPS.SUB, DebuggerPDP11.TYPE_SRC, DebuggerPDP11.TYPE_DST] // 16SSDD
|
0xE000: [DebuggerPDP11.OPS.SUB, DebuggerPDP11.OP_SRC, DebuggerPDP11.OP_DST] // 16SSDD
|
||||||
},
|
},
|
||||||
0xFE00: {
|
0xFE00: {
|
||||||
0x0800: [DebuggerPDP11.OPS.JSR, DebuggerPDP11.TYPE_SRCREG, DebuggerPDP11.TYPE_DST], // 004RDD
|
0x0800: [DebuggerPDP11.OPS.JSR, DebuggerPDP11.OP_SRCREG, DebuggerPDP11.OP_DST], // 004RDD
|
||||||
0x7000: [DebuggerPDP11.OPS.MUL, DebuggerPDP11.TYPE_DST, DebuggerPDP11.TYPE_SRCREG], // 070RSS
|
0x7000: [DebuggerPDP11.OPS.MUL, DebuggerPDP11.OP_DST, DebuggerPDP11.OP_SRCREG], // 070RSS
|
||||||
0x7200: [DebuggerPDP11.OPS.DIV, DebuggerPDP11.TYPE_DST, DebuggerPDP11.TYPE_SRCREG], // 071RSS
|
0x7200: [DebuggerPDP11.OPS.DIV, DebuggerPDP11.OP_DST, DebuggerPDP11.OP_SRCREG], // 071RSS
|
||||||
0x7400: [DebuggerPDP11.OPS.ASH, DebuggerPDP11.TYPE_DST, DebuggerPDP11.TYPE_SRCREG], // 072RSS
|
0x7400: [DebuggerPDP11.OPS.ASH, DebuggerPDP11.OP_DST, DebuggerPDP11.OP_SRCREG], // 072RSS
|
||||||
0x7600: [DebuggerPDP11.OPS.ASHC, DebuggerPDP11.TYPE_DST, DebuggerPDP11.TYPE_SRCREG], // 073RSS
|
0x7600: [DebuggerPDP11.OPS.ASHC, DebuggerPDP11.OP_DST, DebuggerPDP11.OP_SRCREG], // 073RSS
|
||||||
0x7800: [DebuggerPDP11.OPS.XOR, DebuggerPDP11.TYPE_SRCREG, DebuggerPDP11.TYPE_DST], // 074RSS
|
0x7800: [DebuggerPDP11.OPS.XOR, DebuggerPDP11.OP_SRCREG, DebuggerPDP11.OP_DST], // 074RSS
|
||||||
0x7E00: [DebuggerPDP11.OPS.SOB, DebuggerPDP11.TYPE_SRCREG, DebuggerPDP11.TYPE_DSTOFF] // 077Rnn
|
0x7E00: [DebuggerPDP11.OPS.SOB, DebuggerPDP11.OP_SRCREG, DebuggerPDP11.OP_DSTOFF] // 077Rnn
|
||||||
},
|
},
|
||||||
0xFF00: {
|
0xFF00: {
|
||||||
0x0100: [DebuggerPDP11.OPS.BR, DebuggerPDP11.TYPE_BRANCH],
|
0x0100: [DebuggerPDP11.OPS.BR, DebuggerPDP11.OP_BRANCH],
|
||||||
0x0200: [DebuggerPDP11.OPS.BNE, DebuggerPDP11.TYPE_BRANCH],
|
0x0200: [DebuggerPDP11.OPS.BNE, DebuggerPDP11.OP_BRANCH],
|
||||||
0x0300: [DebuggerPDP11.OPS.BEQ, DebuggerPDP11.TYPE_BRANCH],
|
0x0300: [DebuggerPDP11.OPS.BEQ, DebuggerPDP11.OP_BRANCH],
|
||||||
0x0400: [DebuggerPDP11.OPS.BGE, DebuggerPDP11.TYPE_BRANCH],
|
0x0400: [DebuggerPDP11.OPS.BGE, DebuggerPDP11.OP_BRANCH],
|
||||||
0x0500: [DebuggerPDP11.OPS.BLT, DebuggerPDP11.TYPE_BRANCH],
|
0x0500: [DebuggerPDP11.OPS.BLT, DebuggerPDP11.OP_BRANCH],
|
||||||
0x0600: [DebuggerPDP11.OPS.BGT, DebuggerPDP11.TYPE_BRANCH],
|
0x0600: [DebuggerPDP11.OPS.BGT, DebuggerPDP11.OP_BRANCH],
|
||||||
0x0700: [DebuggerPDP11.OPS.BLE, DebuggerPDP11.TYPE_BRANCH],
|
0x0700: [DebuggerPDP11.OPS.BLE, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8000: [DebuggerPDP11.OPS.BPL, DebuggerPDP11.TYPE_BRANCH],
|
0x8000: [DebuggerPDP11.OPS.BPL, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8100: [DebuggerPDP11.OPS.BMI, DebuggerPDP11.TYPE_BRANCH],
|
0x8100: [DebuggerPDP11.OPS.BMI, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8200: [DebuggerPDP11.OPS.BHI, DebuggerPDP11.TYPE_BRANCH],
|
0x8200: [DebuggerPDP11.OPS.BHI, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8300: [DebuggerPDP11.OPS.BLOS, DebuggerPDP11.TYPE_BRANCH],
|
0x8300: [DebuggerPDP11.OPS.BLOS, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8400: [DebuggerPDP11.OPS.BVC, DebuggerPDP11.TYPE_BRANCH],
|
0x8400: [DebuggerPDP11.OPS.BVC, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8500: [DebuggerPDP11.OPS.BVS, DebuggerPDP11.TYPE_BRANCH],
|
0x8500: [DebuggerPDP11.OPS.BVS, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8600: [DebuggerPDP11.OPS.BCC, DebuggerPDP11.TYPE_BRANCH],
|
0x8600: [DebuggerPDP11.OPS.BCC, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8700: [DebuggerPDP11.OPS.BCS, DebuggerPDP11.TYPE_BRANCH],
|
0x8700: [DebuggerPDP11.OPS.BCS, DebuggerPDP11.OP_BRANCH],
|
||||||
0x8800: [DebuggerPDP11.OPS.EMT], // 104000..104377
|
0x8800: [DebuggerPDP11.OPS.EMT], // 104000..104377
|
||||||
0x8900: [DebuggerPDP11.OPS.TRAP] // 104400..104777
|
0x8900: [DebuggerPDP11.OPS.TRAP] // 104400..104777
|
||||||
},
|
},
|
||||||
0xFFC0: {
|
0xFFC0: {
|
||||||
0x0040: [DebuggerPDP11.OPS.JMP, DebuggerPDP11.TYPE_DST], // 0001DD
|
0x0040: [DebuggerPDP11.OPS.JMP, DebuggerPDP11.OP_DST], // 0001DD
|
||||||
0x00C0: [DebuggerPDP11.OPS.SWAB, DebuggerPDP11.TYPE_DST], // 0003DD
|
0x00C0: [DebuggerPDP11.OPS.SWAB, DebuggerPDP11.OP_DST], // 0003DD
|
||||||
0x0A00: [DebuggerPDP11.OPS.CLR, DebuggerPDP11.TYPE_DST], // 0050DD
|
0x0A00: [DebuggerPDP11.OPS.CLR, DebuggerPDP11.OP_DST], // 0050DD
|
||||||
0x0A40: [DebuggerPDP11.OPS.COM, DebuggerPDP11.TYPE_DST], // 0051DD
|
0x0A40: [DebuggerPDP11.OPS.COM, DebuggerPDP11.OP_DST], // 0051DD
|
||||||
0x0A80: [DebuggerPDP11.OPS.INC, DebuggerPDP11.TYPE_DST], // 0052DD
|
0x0A80: [DebuggerPDP11.OPS.INC, DebuggerPDP11.OP_DST], // 0052DD
|
||||||
0x0AC0: [DebuggerPDP11.OPS.DEC, DebuggerPDP11.TYPE_DST], // 0053DD
|
0x0AC0: [DebuggerPDP11.OPS.DEC, DebuggerPDP11.OP_DST], // 0053DD
|
||||||
0x0B00: [DebuggerPDP11.OPS.NEG, DebuggerPDP11.TYPE_DST], // 0054DD
|
0x0B00: [DebuggerPDP11.OPS.NEG, DebuggerPDP11.OP_DST], // 0054DD
|
||||||
0x0B40: [DebuggerPDP11.OPS.ADC, DebuggerPDP11.TYPE_DST], // 0055DD
|
0x0B40: [DebuggerPDP11.OPS.ADC, DebuggerPDP11.OP_DST], // 0055DD
|
||||||
0x0B80: [DebuggerPDP11.OPS.SBC, DebuggerPDP11.TYPE_DST], // 0056DD
|
0x0B80: [DebuggerPDP11.OPS.SBC, DebuggerPDP11.OP_DST], // 0056DD
|
||||||
0x0BC0: [DebuggerPDP11.OPS.TST, DebuggerPDP11.TYPE_DST], // 0057DD
|
0x0BC0: [DebuggerPDP11.OPS.TST, DebuggerPDP11.OP_DST], // 0057DD
|
||||||
0x0C00: [DebuggerPDP11.OPS.ROR, DebuggerPDP11.TYPE_DST], // 0060DD
|
0x0C00: [DebuggerPDP11.OPS.ROR, DebuggerPDP11.OP_DST], // 0060DD
|
||||||
0x0C40: [DebuggerPDP11.OPS.ROL, DebuggerPDP11.TYPE_DST], // 0061DD
|
0x0C40: [DebuggerPDP11.OPS.ROL, DebuggerPDP11.OP_DST], // 0061DD
|
||||||
0x0C80: [DebuggerPDP11.OPS.ASR, DebuggerPDP11.TYPE_DST], // 0062DD
|
0x0C80: [DebuggerPDP11.OPS.ASR, DebuggerPDP11.OP_DST], // 0062DD
|
||||||
0x0CC0: [DebuggerPDP11.OPS.ASL, DebuggerPDP11.TYPE_DST], // 0063DD
|
0x0CC0: [DebuggerPDP11.OPS.ASL, DebuggerPDP11.OP_DST], // 0063DD
|
||||||
0x0D00: [DebuggerPDP11.OPS.MARK, DebuggerPDP11.TYPE_DSTNUM6], // 0064nn
|
0x0D00: [DebuggerPDP11.OPS.MARK, DebuggerPDP11.OP_DSTNUM6], // 0064nn
|
||||||
0x0D40: [DebuggerPDP11.OPS.MFPI, DebuggerPDP11.TYPE_DST], // 0065SS
|
0x0D40: [DebuggerPDP11.OPS.MFPI, DebuggerPDP11.OP_DST], // 0065SS
|
||||||
0x0D80: [DebuggerPDP11.OPS.MTPI, DebuggerPDP11.TYPE_DST], // 0066DD
|
0x0D80: [DebuggerPDP11.OPS.MTPI, DebuggerPDP11.OP_DST], // 0066DD
|
||||||
0x0DC0: [DebuggerPDP11.OPS.SXT, DebuggerPDP11.TYPE_DST], // 0067DD
|
0x0DC0: [DebuggerPDP11.OPS.SXT, DebuggerPDP11.OP_DST], // 0067DD
|
||||||
0x8A00: [DebuggerPDP11.OPS.CLRB, DebuggerPDP11.TYPE_DST], // 1050DD
|
0x8A00: [DebuggerPDP11.OPS.CLRB, DebuggerPDP11.OP_DST], // 1050DD
|
||||||
0x8A40: [DebuggerPDP11.OPS.COMB, DebuggerPDP11.TYPE_DST], // 1051DD
|
0x8A40: [DebuggerPDP11.OPS.COMB, DebuggerPDP11.OP_DST], // 1051DD
|
||||||
0x8A80: [DebuggerPDP11.OPS.INCB, DebuggerPDP11.TYPE_DST], // 1052DD
|
0x8A80: [DebuggerPDP11.OPS.INCB, DebuggerPDP11.OP_DST], // 1052DD
|
||||||
0x8AC0: [DebuggerPDP11.OPS.DECB, DebuggerPDP11.TYPE_DST], // 1053DD
|
0x8AC0: [DebuggerPDP11.OPS.DECB, DebuggerPDP11.OP_DST], // 1053DD
|
||||||
0x8B00: [DebuggerPDP11.OPS.NEGB, DebuggerPDP11.TYPE_DST], // 1054DD
|
0x8B00: [DebuggerPDP11.OPS.NEGB, DebuggerPDP11.OP_DST], // 1054DD
|
||||||
0x8B40: [DebuggerPDP11.OPS.ADCB, DebuggerPDP11.TYPE_DST], // 1055DD
|
0x8B40: [DebuggerPDP11.OPS.ADCB, DebuggerPDP11.OP_DST], // 1055DD
|
||||||
0x8B80: [DebuggerPDP11.OPS.SBCB, DebuggerPDP11.TYPE_DST], // 1056DD
|
0x8B80: [DebuggerPDP11.OPS.SBCB, DebuggerPDP11.OP_DST], // 1056DD
|
||||||
0x8BC0: [DebuggerPDP11.OPS.TSTB, DebuggerPDP11.TYPE_DST], // 1057DD
|
0x8BC0: [DebuggerPDP11.OPS.TSTB, DebuggerPDP11.OP_DST], // 1057DD
|
||||||
0x8C00: [DebuggerPDP11.OPS.RORB, DebuggerPDP11.TYPE_DST], // 1060DD
|
0x8C00: [DebuggerPDP11.OPS.RORB, DebuggerPDP11.OP_DST], // 1060DD
|
||||||
0x8C40: [DebuggerPDP11.OPS.ROLB, DebuggerPDP11.TYPE_DST], // 1061DD
|
0x8C40: [DebuggerPDP11.OPS.ROLB, DebuggerPDP11.OP_DST], // 1061DD
|
||||||
0x8C80: [DebuggerPDP11.OPS.ASRB, DebuggerPDP11.TYPE_DST], // 1062DD
|
0x8C80: [DebuggerPDP11.OPS.ASRB, DebuggerPDP11.OP_DST], // 1062DD
|
||||||
0x8CC0: [DebuggerPDP11.OPS.ASLB, DebuggerPDP11.TYPE_DST], // 1063DD
|
0x8CC0: [DebuggerPDP11.OPS.ASLB, DebuggerPDP11.OP_DST], // 1063DD
|
||||||
0x8D00: [DebuggerPDP11.OPS.MTPS, DebuggerPDP11.TYPE_DST], // 1064SS (only on LSI-11)
|
0x8D00: [DebuggerPDP11.OPS.MTPS, DebuggerPDP11.OP_DST], // 1064SS (only on LSI-11)
|
||||||
0x8D40: [DebuggerPDP11.OPS.MFPD, DebuggerPDP11.TYPE_DST], // 1065DD (same as MFPI if no separate instruction/data spaces)
|
0x8D40: [DebuggerPDP11.OPS.MFPD, DebuggerPDP11.OP_DST], // 1065DD (same as MFPI if no separate instruction/data spaces)
|
||||||
0x8D80: [DebuggerPDP11.OPS.MTPD, DebuggerPDP11.TYPE_DST], // 1066DD (same as MTPI if no separate instruction/data spaces)
|
0x8D80: [DebuggerPDP11.OPS.MTPD, DebuggerPDP11.OP_DST], // 1066DD (same as MTPI if no separate instruction/data spaces)
|
||||||
0x8DC0: [DebuggerPDP11.OPS.MFPS, DebuggerPDP11.TYPE_DST] // 1067SS (only on LSI-11)
|
0x8DC0: [DebuggerPDP11.OPS.MFPS, DebuggerPDP11.OP_DST] // 1067SS (only on LSI-11)
|
||||||
},
|
},
|
||||||
0xFFF8: {
|
0xFFF8: {
|
||||||
0x0080: [DebuggerPDP11.OPS.RTS, DebuggerPDP11.TYPE_DSTREG], // 00020R
|
0x0080: [DebuggerPDP11.OPS.RTS, DebuggerPDP11.OP_DSTREG], // 00020R
|
||||||
0x0098: [DebuggerPDP11.OPS.SPL, DebuggerPDP11.TYPE_DSTNUM3] // 00023N
|
0x0098: [DebuggerPDP11.OPS.SPL, DebuggerPDP11.OP_DSTNUM3] // 00023N
|
||||||
},
|
},
|
||||||
0xFFFF: {
|
0xFFFF: {
|
||||||
0x0000: [DebuggerPDP11.OPS.HALT], // 000000
|
0x0000: [DebuggerPDP11.OPS.HALT], // 000000
|
||||||
|
|
@ -443,7 +442,7 @@ if (DEBUGGER) {
|
||||||
var sMessages = cmp.getMachineParm('messages');
|
var sMessages = cmp.getMachineParm('messages');
|
||||||
if (sMessages) this.messageInit(sMessages);
|
if (sMessages) this.messageInit(sMessages);
|
||||||
|
|
||||||
this.opMasks = DebuggerPDP11.opMasks;
|
this.opTable = DebuggerPDP11.opTable;
|
||||||
|
|
||||||
this.messageDump(MessagesPDP11.BUS, function onDumpBus(asArgs) { dbg.dumpBus(asArgs); });
|
this.messageDump(MessagesPDP11.BUS, function onDumpBus(asArgs) { dbg.dumpBus(asArgs); });
|
||||||
|
|
||||||
|
|
@ -1594,9 +1593,8 @@ if (DEBUGGER) {
|
||||||
}
|
}
|
||||||
this.aBreakWrite = ["bw"];
|
this.aBreakWrite = ["bw"];
|
||||||
/*
|
/*
|
||||||
* nSuppressBreaks ensures we can't get into an infinite loop where a breakpoint lookup requires
|
* nSuppressBreaks ensures we can't get into an infinite loop where a breakpoint lookup
|
||||||
* reading a segment descriptor via getSegment(), and that triggers more memory reads, which triggers
|
* requires reading memory that triggers more memory reads, which triggers more breakpoint checks.
|
||||||
* more breakpoint checks.
|
|
||||||
*/
|
*/
|
||||||
this.nSuppressBreaks = 0;
|
this.nSuppressBreaks = 0;
|
||||||
};
|
};
|
||||||
|
|
@ -1892,10 +1890,9 @@ if (DEBUGGER) {
|
||||||
var opCode = this.getWord(dbgAddr, true);
|
var opCode = this.getWord(dbgAddr, true);
|
||||||
|
|
||||||
var opDesc;
|
var opDesc;
|
||||||
for (var mask in this.opMasks) {
|
for (var mask in this.opTable) {
|
||||||
var opMask = this.opMasks[mask];
|
var opMasks = this.opTable[mask];
|
||||||
var bits = opCode & mask;
|
opDesc = opMasks[opCode & mask];
|
||||||
opDesc = opMask[bits];
|
|
||||||
if (opDesc) break;
|
if (opDesc) break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1907,10 +1904,10 @@ if (DEBUGGER) {
|
||||||
|
|
||||||
for (var iOperand = 1; iOperand <= cOperands; iOperand++) {
|
for (var iOperand = 1; iOperand <= cOperands; iOperand++) {
|
||||||
|
|
||||||
var type = opDesc[iOperand];
|
var opType = opDesc[iOperand];
|
||||||
if (type === undefined) continue;
|
if (opType === undefined) continue;
|
||||||
|
|
||||||
var sOperand = this.getOperand(opCode, type, dbgAddr);
|
var sOperand = this.getOperand(opCode, opType, dbgAddr);
|
||||||
|
|
||||||
if (!sOperand || !sOperand.length) {
|
if (!sOperand || !sOperand.length) {
|
||||||
sOperands = "INVALID";
|
sOperands = "INVALID";
|
||||||
|
|
@ -1956,63 +1953,63 @@ if (DEBUGGER) {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getOperand(opCode, type, dbgAddr)
|
* getOperand(opCode, opType, dbgAddr)
|
||||||
*
|
*
|
||||||
* If getOperand() returns an Array rather than a string, then the first element is the original
|
* If getOperand() returns an Array rather than a string, then the first element is the original
|
||||||
* operand, and the second element is a comment containing an alternate representation of the operand.
|
* operand, and the second element is a comment containing an alternate representation of the operand.
|
||||||
*
|
*
|
||||||
* @this {DebuggerPDP11}
|
* @this {DebuggerPDP11}
|
||||||
* @param {number} opCode
|
* @param {number} opCode
|
||||||
* @param {number} type
|
* @param {number} opType
|
||||||
* @param {DbgAddrPDP11} dbgAddr
|
* @param {DbgAddrPDP11} dbgAddr
|
||||||
* @return {string|Array.<string>}
|
* @return {string|Array.<string>}
|
||||||
*/
|
*/
|
||||||
DebuggerPDP11.prototype.getOperand = function(opCode, type, dbgAddr)
|
DebuggerPDP11.prototype.getOperand = function(opCode, opType, dbgAddr)
|
||||||
{
|
{
|
||||||
var sOperand = "", disp, addr;
|
var sOperand = "", disp, addr;
|
||||||
/*
|
/*
|
||||||
* Take care of TYPE_OTHER opcodes first; then all we'll have to worry about
|
* Take care of OP_OTHER opcodes first; then all we'll have to worry about
|
||||||
* next are TYPE_SRC or TYPE_DST opcodes.
|
* next are OP_SRC or OP_DST opcodes.
|
||||||
*/
|
*/
|
||||||
var typeOther = type & DebuggerPDP11.TYPE_OTHER;
|
var opTypeOther = opType & DebuggerPDP11.OP_OTHER;
|
||||||
if (typeOther == DebuggerPDP11.TYPE_BRANCH) {
|
if (opTypeOther == DebuggerPDP11.OP_BRANCH) {
|
||||||
disp = ((opCode & 0xff) << 24) >> 23;
|
disp = ((opCode & 0xff) << 24) >> 23;
|
||||||
addr = (dbgAddr.addr + disp) & 0xffff;
|
addr = (dbgAddr.addr + disp) & 0xffff;
|
||||||
sOperand = this.toStrBase(addr);
|
sOperand = this.toStrBase(addr);
|
||||||
}
|
}
|
||||||
else if (typeOther == DebuggerPDP11.TYPE_DSTOFF) {
|
else if (opTypeOther == DebuggerPDP11.OP_DSTOFF) {
|
||||||
disp = (opCode & 0x3f) << 1;
|
disp = (opCode & 0x3f) << 1;
|
||||||
addr = (dbgAddr.addr - disp) & 0xffff;
|
addr = (dbgAddr.addr - disp) & 0xffff;
|
||||||
sOperand = this.toStrBase(addr);
|
sOperand = this.toStrBase(addr);
|
||||||
}
|
}
|
||||||
else if (typeOther == DebuggerPDP11.TYPE_DSTNUM3) {
|
else if (opTypeOther == DebuggerPDP11.OP_DSTNUM3) {
|
||||||
disp = (opCode & 0x7);
|
disp = (opCode & 0x7);
|
||||||
sOperand = this.toStrBase(disp, 2);
|
sOperand = this.toStrBase(disp, 2);
|
||||||
}
|
}
|
||||||
else if (typeOther == DebuggerPDP11.TYPE_DSTNUM6) {
|
else if (opTypeOther == DebuggerPDP11.OP_DSTNUM6) {
|
||||||
disp = (opCode & 0x3f);
|
disp = (opCode & 0x3f);
|
||||||
sOperand = this.toStrBase(disp);
|
sOperand = this.toStrBase(disp);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*
|
/*
|
||||||
* Isolate all TYPE_SRC or TYPE_DST bits from opcode in the mode variable.
|
* Isolate all OP_SRC or OP_DST bits from opcode in the opMode variable.
|
||||||
*/
|
*/
|
||||||
var mode = opCode & type;
|
var opMode = opCode & opType;
|
||||||
/*
|
/*
|
||||||
* Convert TYPE_SRC bits into TYPE_DST bits, since they use the same format.
|
* Convert OP_SRC bits into OP_DST bits, since they use the same format.
|
||||||
*/
|
*/
|
||||||
if (type & DebuggerPDP11.TYPE_SRC) {
|
if (opType & DebuggerPDP11.OP_SRC) {
|
||||||
mode >>= 6;
|
opMode >>= 6;
|
||||||
type >>= 6;
|
opType >>= 6;
|
||||||
}
|
}
|
||||||
if (type & DebuggerPDP11.TYPE_DST) {
|
if (opType & DebuggerPDP11.OP_DST) {
|
||||||
var wIndex;
|
var wIndex;
|
||||||
var reg = mode & DebuggerPDP11.TYPE_DSTREG;
|
var reg = opMode & DebuggerPDP11.OP_DSTREG;
|
||||||
/*
|
/*
|
||||||
* Note that opcodes that specify only REG bits in the type mask (ie, no MOD bits)
|
* Note that opcodes that specify only REG bits in the opType mask (ie, no MOD bits)
|
||||||
* will automatically default to MODE_REG below.
|
* will automatically default to OPMODE_REG below.
|
||||||
*/
|
*/
|
||||||
switch((mode & DebuggerPDP11.TYPE_DSTMODE) >> DebuggerPDP11.TYPE_DSTMODE_SHIFT) {
|
switch((opMode & DebuggerPDP11.OP_DSTMODE)) {
|
||||||
case PDP11.OPMODE.REG: // 0x0: REGISTER
|
case PDP11.OPMODE.REG: // 0x0: REGISTER
|
||||||
sOperand = this.getRegName(reg);
|
sOperand = this.getRegName(reg);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -84,19 +84,19 @@ var TYPEDARRAYS = (typeof ArrayBuffer !== 'undefined');
|
||||||
* which all machine components should start using; eg: "if (PDP11.DEBUG) ..." instead of "if (DEBUG) ...".
|
* which all machine components should start using; eg: "if (PDP11.DEBUG) ..." instead of "if (DEBUG) ...".
|
||||||
*/
|
*/
|
||||||
var PDP11 = {
|
var PDP11 = {
|
||||||
APPCLASS: APPCLASS,
|
APPCLASS: APPCLASS,
|
||||||
APPNAME: APPNAME,
|
APPNAME: APPNAME,
|
||||||
APPVERSION: APPVERSION, // shared
|
APPVERSION: APPVERSION, // shared
|
||||||
BYTEARRAYS: BYTEARRAYS,
|
BYTEARRAYS: BYTEARRAYS,
|
||||||
COMPILED: COMPILED, // shared
|
COMPILED: COMPILED, // shared
|
||||||
CSSCLASS: CSSCLASS, // shared
|
CSSCLASS: CSSCLASS, // shared
|
||||||
DEBUG: DEBUG, // shared
|
DEBUG: DEBUG, // shared
|
||||||
DEBUGGER: DEBUGGER,
|
DEBUGGER: DEBUGGER,
|
||||||
MAXDEBUG: MAXDEBUG, // shared
|
MAXDEBUG: MAXDEBUG, // shared
|
||||||
PRIVATE: PRIVATE, // shared
|
PRIVATE: PRIVATE, // shared
|
||||||
TYPEDARRAYS: TYPEDARRAYS,
|
TYPEDARRAYS:TYPEDARRAYS,
|
||||||
SITEHOST: SITEHOST, // shared
|
SITEHOST: SITEHOST, // shared
|
||||||
XMLVERSION: XMLVERSION, // shared
|
XMLVERSION: XMLVERSION, // shared
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CPU model numbers (supported)
|
* CPU model numbers (supported)
|
||||||
|
|
@ -121,68 +121,95 @@ var PDP11 = {
|
||||||
* certain that this file is included BEFORE the first reference to any of these properties, that
|
* certain that this file is included BEFORE the first reference to any of these properties, that
|
||||||
* automatic inlining will no longer occur.
|
* automatic inlining will no longer occur.
|
||||||
*/
|
*/
|
||||||
ADDR_INVALID: -1,
|
ADDR_INVALID: -1,
|
||||||
/*
|
/*
|
||||||
* Processor modes
|
* Processor modes
|
||||||
*/
|
*/
|
||||||
MODE: {
|
MODE: {
|
||||||
KERNEL: 0x0,
|
KERNEL: 0x0,
|
||||||
SUPER: 0x1,
|
SUPER: 0x1,
|
||||||
UNUSED: 0x2,
|
UNUSED: 0x2,
|
||||||
USER: 0x3,
|
USER: 0x3,
|
||||||
MASK: 0x3
|
MASK: 0x3
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
* Processor Status flag definitions (stored in regPSW)
|
* Processor Status flag definitions (stored in regPSW)
|
||||||
*/
|
*/
|
||||||
PSW: {
|
PSW: {
|
||||||
CF: 0x0001, // bit 0: Carry Flag
|
CF: 0x0001, // bit 0: Carry Flag
|
||||||
CF_SHIFT: 0,
|
CF_SHIFT: 0,
|
||||||
VF: 0x0002, // bit 1: Overflow Flag (aka OF on Intel processors)
|
VF: 0x0002, // bit 1: Overflow Flag (aka OF on Intel processors)
|
||||||
VF_SHIFT: 1,
|
VF_SHIFT: 1,
|
||||||
ZF: 0x0004, // bit 2: Zero Flag
|
ZF: 0x0004, // bit 2: Zero Flag
|
||||||
ZF_SHIFT: 2,
|
ZF_SHIFT: 2,
|
||||||
NF: 0x0008, // bit 3: Negative Flag (aka SF -- Sign Flag -- on Intel processors)
|
NF: 0x0008, // bit 3: Negative Flag (aka SF -- Sign Flag -- on Intel processors)
|
||||||
NF_SHIFT: 3,
|
NF_SHIFT: 3,
|
||||||
TF: 0x0010, // bit 4: Trap Flag
|
TF: 0x0010, // bit 4: Trap Flag
|
||||||
TF_SHIFT: 4,
|
TF_SHIFT: 4,
|
||||||
PRI: 0x00E0, // bits 5-7: Priority
|
PRI: 0x00E0, // bits 5-7: Priority
|
||||||
PRI_SHIFT: 5,
|
PRI_SHIFT: 5,
|
||||||
UNUSED: 0x0700, // bits 8-10: unused
|
UNUSED: 0x0700, // bits 8-10: unused
|
||||||
REGSET: 0x0800, // bit 11: Register Set
|
REGSET: 0x0800, // bit 11: Register Set
|
||||||
PMODE: 0x3000, // bits 12-13: Prev Mode (see PDP11.MODE)
|
PMODE: 0x3000, // bits 12-13: Prev Mode (see PDP11.MODE)
|
||||||
PMODE_SHIFT:12,
|
PMODE_SHIFT: 12,
|
||||||
CMODE: 0xC000, // bits 14-15: Curr Mode (see PDP11.MODE)
|
CMODE: 0xC000, // bits 14-15: Curr Mode (see PDP11.MODE)
|
||||||
CMODE_SHIFT:14
|
CMODE_SHIFT: 14
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
* Interrupt-related flags (stored in intFlags)
|
* Interrupt-related flags (stored in intFlags)
|
||||||
*/
|
*/
|
||||||
INTFLAG: {
|
INTFLAG: {
|
||||||
NONE: 0x0000,
|
NONE: 0x0000,
|
||||||
INTR: 0x00ff, // mask for 8 bits, representing interrupt levels 0-7
|
INTR: 0x00ff, // mask for 8 bits, representing interrupt levels 0-7
|
||||||
HALT: 0x0100 // halt requested; see opHLT()
|
HALT: 0x0100 // halt requested; see opHLT()
|
||||||
|
},
|
||||||
|
OPFLAG: {
|
||||||
|
TRAP_TF: 0x10, // aka PDP11.PSW.TF
|
||||||
|
TRAP_MMU: 0x20,
|
||||||
|
TRAP_SP: 0x40,
|
||||||
|
TRAP_MASK: 0x70,
|
||||||
|
SKIP_FLAGS: 0x80
|
||||||
},
|
},
|
||||||
/*
|
/*
|
||||||
* Opcode modes
|
* Opcode reg (opcode bits 2-0)
|
||||||
|
*/
|
||||||
|
OPREG: {
|
||||||
|
MASK: 0x07
|
||||||
|
},
|
||||||
|
/*
|
||||||
|
* Opcode modes (opcode bits 5-3)
|
||||||
*/
|
*/
|
||||||
OPMODE: {
|
OPMODE: {
|
||||||
REG: 0x0, // REGISTER (register is operand)
|
REG: 0x00, // REGISTER (register is operand)
|
||||||
REGD: 0x1, // REGISTER DEFERRED (register is address of operand)
|
REGD: 0x08, // REGISTER DEFERRED (register is address of operand)
|
||||||
POSTINC: 0x2, // POST-INCREMENT (register is address of operand, register incremented)
|
POSTINC: 0x10, // POST-INCREMENT (register is address of operand, register incremented)
|
||||||
POSTINCD: 0x3, // POST-INCREMENT DEFERRED (register is address of address of operand, register incremented)
|
POSTINCD: 0x18, // POST-INCREMENT DEFERRED (register is address of address of operand, register incremented)
|
||||||
PREDEC: 0x4, // PRE-DECREMENT (register decremented, register is address of operand)
|
PREDEC: 0x20, // PRE-DECREMENT (register decremented, register is address of operand)
|
||||||
PREDECD: 0x5, // PRE-DECREMENT DEFERRED (register decremented, register is address of address of operand)
|
PREDECD: 0x28, // PRE-DECREMENT DEFERRED (register decremented, register is address of address of operand)
|
||||||
INDEX: 0x6, // INDEX (register + next word is address of operand)
|
INDEX: 0x30, // INDEX (register + next word is address of operand)
|
||||||
INDEXD: 0x7 // INDEX DEFERRED (register + next word is address of address of operand)
|
INDEXD: 0x38, // INDEX DEFERRED (register + next word is address of address of operand)
|
||||||
|
MASK: 0x38
|
||||||
},
|
},
|
||||||
/*
|
DSTMODE: {
|
||||||
* Opcode definitions
|
MASK: 0x003F,
|
||||||
*/
|
SHIFT: 0
|
||||||
OPCODE: {
|
},
|
||||||
// TODO
|
SRCMODE: {
|
||||||
|
MASK: 0x0FC0,
|
||||||
|
SHIFT: 6
|
||||||
|
},
|
||||||
|
TRAP: {
|
||||||
|
UNDEFINED: 0x00, // 000 (reserved)
|
||||||
|
BUS_ERROR: 0x04, // 004 illegal instructions, bus errors, stack limit, illegal internal address, microbreak
|
||||||
|
RESERVED: 0x08, // 010 reserved instructions
|
||||||
|
BREAKPOINT: 0x0C, // 014 BPT, breakpoint trap (trace)
|
||||||
|
IOT: 0x10, // 020 IOT, input/output trap
|
||||||
|
POWER_FAIL: 0x14, // 024 power fail
|
||||||
|
EMULATOR: 0x18, // 030 EMT, emulator trap
|
||||||
|
TRAP: 0x1C, // 034 TRAP instruction
|
||||||
|
PIRQ: 0xA0, // 240 PIRQ, program interrupt request
|
||||||
|
MMU_FAULT: 0xA8 // 250 MMU aborts and traps
|
||||||
},
|
},
|
||||||
|
|
||||||
BYTE_MODE: 1,
|
BYTE_MODE: 1,
|
||||||
READ_MODE: 2,
|
READ_MODE: 2,
|
||||||
WRITE_MODE: 4,
|
WRITE_MODE: 4,
|
||||||
|
|
|
||||||
|
|
@ -222,17 +222,9 @@ DevicePDP11.prototype.readPSW = function(addr)
|
||||||
*/
|
*/
|
||||||
DevicePDP11.prototype.writePSW = function(data, addr)
|
DevicePDP11.prototype.writePSW = function(data, addr)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* TODO: Determine whether we need to replicate the code in access_iopage() that returns a bogus
|
|
||||||
* error when writing to ADDR_PSW, as a way of preventing instructions like CLR from updating the flags
|
|
||||||
* and potentially modifying some of the PSW bits that were just set (eg, the Z flag).
|
|
||||||
*
|
|
||||||
* If so, then we'll need to centralize the flag update logic, so that it can be skipped whenever a
|
|
||||||
* special one-time opcode flag is set. Because there are a number of arithmetic instructions besides
|
|
||||||
* CLR that could be used to modify ADDR_PSW.
|
|
||||||
*/
|
|
||||||
var maskDisallowed = PDP11.PSW.UNUSED | PDP11.PSW.TF;
|
var maskDisallowed = PDP11.PSW.UNUSED | PDP11.PSW.TF;
|
||||||
this.cpu.setPSW((data & ~maskDisallowed) | (this.cpu.getPSW() & maskDisallowed));
|
this.cpu.setPSW((data & ~maskDisallowed) | (this.cpu.getPSW() & maskDisallowed));
|
||||||
|
this.cpu.opFlags |= PDP11.OPFLAG.SKIP_FLAGS;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -623,27 +615,6 @@ DevicePDP11.prototype.kw11_interrupt = function()
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* mapUnibus(unibusAddress)
|
|
||||||
*
|
|
||||||
* @this {DevicePDP11}
|
|
||||||
* @param {number} unibusAddress
|
|
||||||
* @return {number}
|
|
||||||
*/
|
|
||||||
DevicePDP11.prototype.mapUnibus = function(unibusAddress)
|
|
||||||
{
|
|
||||||
var idx = (unibusAddress >> 13) & 0x1f;
|
|
||||||
if (idx < 31) {
|
|
||||||
if (this.cpu.MMR3 & 0x20) {
|
|
||||||
unibusAddress = (this.cpu.unibusMap[idx] + (unibusAddress & 0x1ffe)) & 0x3ffffe;
|
|
||||||
if (unibusAddress >= BusPDP11.IOPAGE_UNIBUS && unibusAddress < BusPDP11.IOPAGE_22BIT) this.cpu.panic(898);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unibusAddress |= BusPDP11.IOPAGE_22BIT;
|
|
||||||
}
|
|
||||||
return unibusAddress;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getData(xhr, callback, meta, block, address, count)
|
* getData(xhr, callback, meta, block, address, count)
|
||||||
*
|
*
|
||||||
|
|
@ -764,7 +735,7 @@ DevicePDP11.prototype.readData = function(meta, block, address, count)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (word = 0; word < meta.blocksize && count > 0; word++) {
|
for (word = 0; word < meta.blocksize && count > 0; word++) {
|
||||||
if (this.cpu.writeWordByAddr((meta.mapped? this.mapUnibus(address) : address), meta.cache[block][word]) < 0) {
|
if (this.cpu.writeWordByAddr((meta.mapped? this.cpu.mapUnibus(address) : address), meta.cache[block][word]) < 0) {
|
||||||
meta.postProcess(2, meta, block, address, count); // NXM
|
meta.postProcess(2, meta, block, address, count); // NXM
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -798,7 +769,7 @@ DevicePDP11.prototype.writeData = function(meta, block, address, count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (word = 0; word < meta.blocksize && count > 0; word++) {
|
for (word = 0; word < meta.blocksize && count > 0; word++) {
|
||||||
data = this.cpu.readWordByAddr((meta.mapped? this.mapUnibus(address) : address));
|
data = this.cpu.readWordByAddr((meta.mapped? this.cpu.mapUnibus(address) : address));
|
||||||
if (data < 0) {
|
if (data < 0) {
|
||||||
meta.postProcess(2, meta, block, address, count); // NXM
|
meta.postProcess(2, meta, block, address, count); // NXM
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -1,212 +1,212 @@
|
||||||
(function(){var m;
|
(function(){var m;
|
||||||
function aa(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&f&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var e,c=a;((f=b)&&10!=f?16==f?null!==c.match(/^[0-9a-f]+$/i):8==f?null!==c.match(/^[0-7]+$/):2==
|
function aa(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==c?(b=8,c=null):"$"==c&&(b=16,c=null);null==c?a=a.substr(1):("0"==c&&(c=a.charAt(1),"b"==c&&f&&(b=2,c=null),"o"==c?(b=8,c=null):"x"==c&&(b=16,c=null)),null==c?a=a.substr(2):(c=a.charAt(a.length-1).toLowerCase(),"y"==c?(b=2,c=null):"."==c?(b=10,c=null):"h"==c&&(b=16,c=null),null==c&&(a=a.substr(0,a.length-1))));var e,c=a;((f=b)&&10!=f?16==f?null!==c.match(/^[0-9a-f]+$/i):8==f?null!==c.match(/^[0-7]+$/):2==
|
||||||
f&&null!==c.match(/^[01]+$/):null!==c.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(d=e|0)}return d}function ba(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),c=String.fromCharCode(f)+c;a>>=4}return(d?"0x":"")+c}
|
f&&null!==c.match(/^[01]+$/):null!==c.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(d=e|0)}return d}function ba(a,b,d){var c="";b?11<b&&(b=11):b=a&-65536?11:6;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode((a&7)+48)+c,a>>=3;return(d?"0o":"")+c}function r(a,b,d){var c="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),c=String.fromCharCode(f)+c;a>>=4}return(d?"0x":"")+c}
|
||||||
function ca(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function ia(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ja(){var a=ka();return-1!==a.indexOf("pcjs.org",a.length-8)}var la={"&":"&","<":"<",">":">",'"':""","'":"'"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function pa(a,b){return(a+" ").slice(0,b)}
|
function ca(a){var b=a,d=a.lastIndexOf("/");0<=d&&(b=a.substr(d+1));d=b.indexOf("&");0<d&&(b=b.substr(0,d));return b}function da(a){var b="",d=a.lastIndexOf(".");0<=d&&(b=a.substr(d+1).toLowerCase());return b}function ja(){var a=ka();return-1!==a.indexOf("pcjs.org",a.length-8)}var la={"&":"&","<":"<",">":">",'"':""","'":"'"};function ma(a){return a.replace(/[&<>"']/g,function(a){return la[a]})}function na(a,b){return(a+" ").slice(0,b)}
|
||||||
function qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,d){var c=0,f=a.length,e=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var sa=Date.now||function(){return+new Date};function wa(){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 qa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function ra(a,b,d){var c=0,f=a.length,e=0;for(void 0===d&&(d=function(a,b){return a>b?1:a<b?-1:0});c<f;){var h=c+f>>1,g;g=d(b,a[h]);0<g?c=h+1:(f=h,e=!g)}return e?c:~c}var sa=Date.now||function(){return+new Date};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 xa(a,b,d,c){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return c&&c(a,e,f),[e,f];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),c&&c(a,e,f))});if(b&&"object"==
|
function xa(a,b,d,c){var f=0,e=null,h=null;if("object"==typeof resources&&(e=resources[a]))return c&&c(a,e,f),[e,f];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(g.onreadystatechange=function(){4===g.readyState&&(e=g.responseText,200==g.status||!g.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=g.status||-1),c&&c(a,e,f))});if(b&&"object"==
|
||||||
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(e=g.responseText,200!=g.status&&(f=g.status||-1),c&&c(a,e,f),h=[e,f]);return h}function ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!d);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!d),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();d||(e=g.responseText,200!=g.status&&(f=g.status||-1),c&&c(a,e,f),h=[e,f]);return h}function ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||||
function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Aa(){if(null==za){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}za=a}return za}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
|
function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.confirm(a));return b}var za=null;function Aa(){if(null==za){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}za=a}return za}function Ba(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
|
||||||
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
|
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Da(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ea(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
|
||||||
function Ka(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
|
function Fa(a,b){function d(){b(100===c)&&(f=setTimeout(d,c),c=100)}var c=0,f=null,e=!1;a.onmousedown=function(){e||f||(c=500,d())};a.ontouchstart=function(){f||(c=500,d())};a.onmouseup=a.onmouseout=function(){f&&(clearTimeout(f),f=null)};a.ontouchend=a.ontouchcancel=function(){f&&(clearTimeout(f),f=null);e=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
|
||||||
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
|
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Da("Opera")||Da("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
|
||||||
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.lc=b.comment;this.Mc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.nc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,mb:!1,cc:!1,ea:!1,error:!1};this.Vb=null;this.A.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
|
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.mc=b.comment;this.Nc=b;b=this.id.indexOf(".");0>b?this.Bb=this.id:(this.oc=this.id.substr(0,b),this.Bb=this.id.substr(b+1));this[a]=d;this.w={ready:!1,nb:!1,dc:!1,fa:!1,error:!1};this.Wb=null;this.w.error=!1;this.O={};this.H=null;this.ha=c||0;v.push(this)}var Ua=void 0,Va={};
|
||||||
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
|
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
|
||||||
function w(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},v=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
|
function w(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},v=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var c=v[b];a&&c.id.indexOf(a)||d.push(c)}return d}
|
||||||
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
|
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<v.length;c++)if(d)d==v[c]&&(d=null);else if(!(a!=v[c].type||b&&v[c].id.indexOf(b)))return v[c]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
|
||||||
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ta(g.type,g.binding,h,g.value),l=k.length}}}}
|
function db(a,b){for(var d=A(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)for(var f=d[c].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=z(h))&&g.binding&&a.ua(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||||
function A(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d}
|
function A(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)f.test(a[b].className)&&d.push(a[b]);return d}
|
||||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ta:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.eb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
|
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ua:function(a,b,d){switch(b){case "clear":return this.O[b]||(this.O[b]=d,d.onclick=function(a){return function(){a.O.print&&(a.O.print.value="")}}(this)),!0;case "print":return this.O[b]||(this.fb=this.O[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
|
||||||
this.na=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},na:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.A.ea=!0},Ma:function(a,b){b&&(this.A.ea=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Gc)}return!1}
|
this.oa=function(a){this.g(a,this.Bb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Bb+": "+a)},oa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Na:function(){return this.w.fa=!0},Ma:function(a,b){b&&(this.w.fa=!1);return!0}};function eb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ha;var d=a.H.ha&b;return!!b&&d===b||!!(d&a.H.Hc)}return!1}
|
||||||
function fb(a,b){if(a.A.cc)return a.A.mb&&(a.A.mb=!1),a.A.cc=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.mb=b;return a.A.mb}function qb(a,b){a.A.mb&&(b?a.A.cc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.mb}function C(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.Vb;a.Vb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.Vb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.na(b)}
|
function fb(a,b){if(a.w.dc)return a.w.nb&&(a.w.nb=!1),a.w.dc=!1;if(a.w.error)return a.g(a.toString()+" error"),!1;a.w.nb=b;return a.w.nb}function gb(a,b){a.w.nb&&(b?a.w.dc=!0:void 0===b&&a.g(a.toString()+" busy"));return a.w.nb}function C(a){if(!a.w.error&&(a.w.ready=!0,a.w.ready)){var b=a.Wb;a.Wb=null;b&&b()}}function rb(a,b){b&&(a.w.ready?b():a.Wb=b);return a.w.ready}function sb(a,b){a.w.error=!0;a.oa(b)}
|
||||||
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}w(ub);m=ub.prototype;m.ta=function(a,b,d,c){return this.i&&this.i.ta(a,b,d,c)||this.f&&this.f.ta(a,b,d,c)||this.H&&this.H.ta(a,b,d,c)?!0:this.parent.ta.call(this,a,b,d,c)};m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.f=d;this.H=c};
|
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}w(ub);m=ub.prototype;m.ua=function(a,b,d,c){return this.i&&this.i.ua(a,b,d,c)||this.f&&this.f.ua(a,b,d,c)||this.H&&this.H.ua(a,b,d,c)?!0:this.parent.ua.call(this,a,b,d,c)};m.Xa=function(a,b,d,c){this.i=a;this.F=b;this.f=d;this.H=c};
|
||||||
m.Na=function(a,b){b||vb();return!0};m.Ma=function(){return!0};m.wa=function(){};function vb(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new ub(f));db(e,c);a&&C(e)}}Qa(vb);
|
m.Na=function(a,b){b||vb();return!0};m.Ma=function(){return!0};m.xa=function(){};function vb(){for(var a=!1,b=A(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],f=z(c),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===e){e=v[h];break a}e=null}e||(a=!0,e=new ub(f));db(e,c);a&&C(e)}}Qa(vb);
|
||||||
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.za=1<<this.X;this.T=this.za>>2;this.G=this.za-1;this.F=this.I/this.za|0;this.B=this.F-1;this.Sa=[];this.J=null;this.Gb=this.Cc;a=new G;xb(a,this.H);this.R=Array(this.F);for(b=0;b<this.F;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
|
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.H=d;this.N=a.busWidth||16;this.I=Math.pow(2,this.N);this.i=this.I-1|0;this.X=(this.N>>1)+2;10>this.X&&(this.X=10);15<this.X&&(this.X=15);this.Aa=1<<this.X;this.T=this.Aa>>2;this.F=this.Aa-1;this.G=this.I/this.Aa|0;this.A=this.G-1;this.Ta=[];this.J=null;this.Gb=this.Dc;a=new G;xb(a,this.H);this.R=Array(this.G);for(b=0;b<this.G;b++)this.R[b]=a;this.Cb=Array(4);this.Cb[0]=yb;this.Cb[1]=zb;this.Cb[2]=Ab;this.Cb[3]=Bb;this.P=this.I-8192;Cb(this,
|
||||||
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Sa[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Sa[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
|
this.P,8192,Db,this);C(this)}w(wb);function yb(a,b){var d=this.controller.Ta[a];if(d){if(d[0])return d[0](b);if(d[2])return b&1?d[2](b&-2)>>8:d[2](b)&255}else if(b&1&&(d=this.controller.Ta[a&-2],d[2]))return d[2](b&-2)>>8;return this.controller.Gb(b,-1,1)}
|
||||||
function zb(a,b,d){var c=this.controller.Sa[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Sa[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Ab(a,b){var d=this.controller.Sa[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
|
function zb(a,b,d){var c=this.controller.Ta[a];if(c){if(c[1]){c[1](b,d);return}if(c[3]){a=c[2]?c[2](d):0;if(d&1)c[3](a&255|b<<8,d&-2);else c[3](a&-256|b,d);return}}else if(d&1&&(c=this.controller.Ta[a&-2],c[3])){d&=-2;a=c[2]?c[2](d):0;c[3](a&255|b<<8,d);return}this.controller.Gb(d,b,1)}function Ab(a,b){var d=this.controller.Ta[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return this.controller.Gb(b,-1,0)}
|
||||||
function Bb(a,b,d){if(a=this.controller.Sa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Cc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
|
function Bb(a,b,d){if(a=this.controller.Ta[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}this.controller.Gb(d,b,0)}m=wb.prototype;m.reset=function(){this.J&&this.J()};m.Dc=function(){return 0};m.Na=function(a,b){b||this.reset();return!0};
|
||||||
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.za,n=a.za-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.C)return k.Tb+=k.C-e,k.C=e,!0;if(e>=k.C+k.Tb){n=k.size-(e-l);n>h&&(n=h);k.Tb=e-k.C+n;e=l+a.za;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.za,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.za;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
|
function Cb(a,b,d,c,f){for(var e=b,h=d,g=e>>>a.X;0<h&&g<a.R.length;){var k=a.R[g],l=g*a.Aa,n=a.Aa-(e-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==f){if(e+h<=k.C)return k.Ub+=k.C-e,k.C=e,!0;if(e>=k.C+k.Ub){n=k.size-(e-l);n>h&&(n=h);k.Ub=e-k.C+n;e=l+a.Aa;h-=n;g++;continue}}return Eb(1,e,h)}e=new G(e,n,a.Aa,c,f);xb(e,a.H,k);a.R[g++]=e;e=l+a.Aa;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
|
||||||
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].rb(a&this.G,a)};m.Ga=function(a){var b=a&this.G,d=(a&this.i)>>>this.X;return b!=this.G?this.R[d].vc(b,a):this.R[d++].rb(b,a)|this.R[d&this.B].rb(0,a+1)<<8};function Gb(a,b){var d=b&a.G,c=(b&a.i)>>>a.X;return d!=a.G?a.R[c].gc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.B].Ob(0,b+1)<<8}m.ac=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.G,b&255,a)};
|
m.Hb=function(a){return this.R[(a&this.i)>>>this.X].sb(a&this.F,a)};m.Ha=function(a){var b=a&this.F,d=(a&this.i)>>>this.X;return b!=this.F?this.R[d].wc(b,a):this.R[d++].sb(b,a)|this.R[d&this.A].sb(0,a+1)<<8};function Gb(a,b){var d=b&a.F,c=(b&a.i)>>>a.X;return d!=a.F?a.R[c].hc(d,b):a.R[c++].Ob(d,b)|a.R[c&a.A].Ob(0,b+1)<<8}m.bc=function(a,b){this.R[(a&this.i)>>>this.X].xb(a&this.F,b&255,a)};
|
||||||
m.ic=function(a,b){var d=a&this.G,c=(a&this.i)>>>this.X;d!=this.G?this.R[c].Bc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.B].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
m.jc=function(a,b){var d=a&this.F,c=(a&this.i)>>>this.X;d!=this.F?this.R[c].Cc(d,b&65535,a):(this.R[c++].xb(d,b&255,a),this.R[c&this.A].xb(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
||||||
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={fc:[],Ha:0,pa:128,H:127,Ic:0};this.i={data:0,fd:0,ob:20,cd:0};this.B={Ib:0,K:0};this.F={Qb:2496,ka:0,S:128,Rb:0,Pb:0,sa:0,wc:0,ma:[],bb:[406,406,406,406],Y:[12,12,12,12]};this.I={K:129,Fb:0,ca:0,Xa:0,Ta:0,$a:0,ma:[],Y:[40,40,40,40],bb:[1024,1024,512,512],Ec:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Y:[22,22,22,50],ab:[19,19,19,32],bc:[815,411,815,630],ma:[],U:2176,ub:0,sb:0,Ba:[0,0,0,0,0,0,0,0],Aa:0,oa:[4544,4544,4544,4544,4544,
|
function Hb(a){u.call(this,"Device",a,Hb);this.P=a.name;this.N={gc:[],Ia:0,qa:128,H:127,Jc:0};this.i={data:0,gd:0,pb:20,dd:0};this.A={Ib:0,K:0};this.G={Qb:2496,la:0,S:128,Rb:0,Pb:0,ta:0,xc:0,na:[],cb:[406,406,406,406],Z:[12,12,12,12]};this.I={K:129,Fb:0,ca:0,Ya:0,Ua:0,ab:0,na:[],Z:[40,40,40,40],cb:[1024,1024,512,512],Fc:[157,157,29,29]};this.J={f:[8210,8208,8210,8226],Z:[22,22,22,50],bb:[19,19,19,32],cc:[815,411,815,630],na:[],U:2176,vb:0,tb:0,Ca:[0,0,0,0,0,0,0,0],Ba:0,pa:[4544,4544,4544,4544,4544,
|
||||||
4544,4544,4544],tb:[0,0,0,0,0,0,0,0],jb:0,ad:[0,0,0,0,0,0,0,0],xc:0,yc:[0,0,0,0,0,0,0,0],G:[0,0,0,0,0,0,0,0],bd:[1,2,3,4,5,6,7,8],zc:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],$b:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],Xc:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Za:0,hc:0}}w(Hb);
|
4544,4544,4544],ub:[0,0,0,0,0,0,0,0],kb:0,bd:[0,0,0,0,0,0,0,0],yc:0,zc:[0,0,0,0,0,0,0,0],F:[0,0,0,0,0,0,0,0],cd:[1,2,3,4,5,6,7,8],Ac:[0,0,0,0,0,0,0,0],Pa:[0,0,0,0,0,0,0,0],ac:[0,0,0,0,0,0,0,0],$c:[0,0,0,0,0,0,0,0],ad:[0,0,0,0,0,0,0,0],Yc:[0,0,0,0,0,0,0,0],Zc:[0,0,0,0,0,0,0,0],$a:0,ic:0}}w(Hb);
|
||||||
var Ib=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
var Ib=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||||
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
||||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=Hb.prototype;
|
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=Hb.prototype;
|
||||||
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;switch(this.P){default:a=Ub;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Sa[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Sa[n]=[h,g,k,e,!1]}}f=this.Dc.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.Tc=function(){return Vb(this.f)};m.ed=function(a){Wb(this.f,a&-1809|Vb(this.f)&1808)};
|
m.Xa=function(a,b,d,c){this.F=b;this.f=d;this.H=c;switch(this.P){default:a=Jb;for(var f in a){var e=a[f];d=b;c=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=c;l+=2){var n=l&8191;void 0!==d.Ta[n]?t("I/O address already registered: "+r(d.P+n,8,!0)):d.Ta[n]=[h,g,k,e,!1]}}f=this.Ec.bind(this);b.J=this.reset.bind(this);b.Gb=f}C(this)};m.Uc=function(){return Vb(this.f)};
|
||||||
function Xb(a){var b=a.F,d,c,f,e=b.sa>>13&7;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Uc,drive:e,blocksize:256,mapped:0,maxblock:b.bb[e]*b.Y[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.ka=0;b.S=128;b.sa=0;break;case 1:if((b.sa>>4&511)>=b.bb[e]){b.ka|=32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Yb(a,b.ma[e],d,c,f);return;case 2:if((b.sa>>4&511)>=b.bb[e]){b.ka|=
|
m.fd=function(a){Wb(this.f,a&-1809|Vb(this.f)&1808);this.f.W|=128};
|
||||||
32832;b.S|=49152;break}if((b.sa&15)>=b.Y[e]){b.ka|=32800;b.S|=49152;break}d=(b.sa>>4&511)*b.Y[e]+(b.sa&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.Zb(b.ma[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.sa%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Uc=function(a,b,d,c,f){var e=this.F;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.ka|=33024;e.S|=49152;break;case 2:e.ka|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
|
function Xb(a){var b=a.G,d,c,f,e=b.ta>>13&7;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:256,mapped:0,maxblock:b.cb[e]*b.Z[e],url:"rk"+e+".dsk"});b.S&=-129;switch(b.S>>1&7){case 0:b.Qb=2496;b.la=0;b.S=128;b.ta=0;break;case 1:if((b.ta>>4&511)>=b.cb[e]){b.la|=32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;Yb(a,b.na[e],d,c,f);return;case 2:if((b.ta>>4&511)>=b.cb[e]){b.la|=
|
||||||
function Zb(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ma[e]&&(b.ma[e]={cache:[],postProcess:a.Vc,drive:e,blocksize:128,mapped:1,maxblock:b.bb[e]*b.Y[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Xa&8&&(b.K&=63);b.Xa=b.Ec[e]|b.$a&64;break;case 3:1==(b.ca&3)&&(b.$a=b.ca&4?b.$a+(b.ca&65408)&65408|b.ca<<2&64:b.$a-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.$a);break;case 4:b.Xa=b.$a;break;case 5:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+
|
32832;b.S|=49152;break}if((b.ta&15)>=b.Z[e]){b.la|=32800;b.S|=49152;break}d=(b.ta>>4&511)*b.Z[e]+(b.ta&15);c=(b.S&48)<<12|b.Pb;f=65536-b.Rb&65535;a.$b(b.na[e],d,c,f);return}b.Qb=e<<13|b.Qb&8176|b.ta%9&15;H(a.f,20,160,144,function(){b.S=b.S&65534|128;return!!(b.S&64)})}m.Vc=function(a,b,d,c,f){var e=this.G;e.Pb=c&65535;e.S=e.S&-49|c>>12&48;e.Rb=65536-f&65535;switch(a){case 1:e.la|=33024;e.S|=49152;break;case 2:e.la|=33792,e.S|=49152}H(this.f,20,160,144,function(){e.S=e.S&65534|128;return!!(e.S&64)})};
|
||||||
(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;Yb(a,b.ma[e],d,c,f);return;case 6:if(b.ca>>6>=b.bb[e]){b.K|=37888;break}if((b.ca&63)>=b.Y[e]){b.K|=37888;break}d=(b.ca>>6)*b.Y[e]+(b.ca&63);c=(b.Ta&63)<<16|b.Fb;f=65536-b.Xa&65535;a.Zb(b.ma[e],d,c,f);return}H(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
|
function Zb(a){var b=a.I,d,c,f,e=b.K>>8&3;b.K&=-2;"undefined"===typeof b.na[e]&&(b.na[e]={cache:[],postProcess:a.Wc,drive:e,blocksize:128,mapped:1,maxblock:b.cb[e]*b.Z[e],url:"rl"+e+".dsk"});switch(b.K>>1&7){case 2:b.Ya&8&&(b.K&=63);b.Ya=b.Fc[e]|b.ab&64;break;case 3:1==(b.ca&3)&&(b.ab=b.ca&4?b.ab+(b.ca&65408)&65408|b.ca<<2&64:b.ab-(b.ca&65408)&65408|b.ca<<2&64,b.ca=b.ab);break;case 4:b.Ya=b.ab;break;case 5:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+
|
||||||
m.Vc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ta=c>>16&63;e.ca=~~(d/e.Y[b.La])<<6|d%e.Y[b.La];e.$a=e.ca;e.Xa=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function $b(a){a=a.J;a.U=2176;a.Aa=0;a.oa=[4544,4544,4544,4544,4544,4544,4544,4544];a.tb=[0,0,0,0,0,0,0,0];a.jb=a.ub=a.sb=a.Za=a.hc=0}
|
(b.ca&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;Yb(a,b.na[e],d,c,f);return;case 6:if(b.ca>>6>=b.cb[e]){b.K|=37888;break}if((b.ca&63)>=b.Z[e]){b.K|=37888;break}d=(b.ca>>6)*b.Z[e]+(b.ca&63);c=(b.Ua&63)<<16|b.Fb;f=65536-b.Ya&65535;a.$b(b.na[e],d,c,f);return}H(a.f,20,160,112,function(){b.K|=129;return!!(b.K&64)})}
|
||||||
function ac(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Aa&=-2049;d.oa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.ma[b]&&(d.ma[b]={cache:[],postProcess:a.Wc,drive:b,blocksize:256,mapped:0,maxblock:d.bc[0]*d.ab[0]*d.Y[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.$b[b]=d.Pa[b];d.U|=32896;d.oa[b]|=32896;d.jb|=1<<b;break;case 9:$b(a);break;case 19:d.oa[b]|=64;break;case 49:if(d.Pa[b]>=d.bc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+
|
m.Wc=function(a,b,d,c,f){var e=this.I;e.Fb=c&65535;e.K=e.K&-49|c>>12&48;e.Ua=c>>16&63;e.ca=~~(d/e.Z[b.La])<<6|d%e.Z[b.La];e.ab=e.ca;e.Ya=65536-f&65535;switch(a){case 1:e.K|=33792;break;case 2:e.K|=40960}H(this.f,20,160,112,function(){e.K|=129;return!!(e.K&64)})};function $b(a){a=a.J;a.U=2176;a.Ba=0;a.pa=[4544,4544,4544,4544,4544,4544,4544,4544];a.ub=[0,0,0,0,0,0,0,0];a.kb=a.vb=a.tb=a.$a=a.ic=0}
|
||||||
(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;Yb(a,d.ma[b],c,f,e);return;case 57:if(d.Pa[b]>=d.bc[0]||d.Ba[b]>>8>=d.ab[0]||(d.Ba[b]&255)>=d.Y[0]){d.tb[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.ab[0]+(d.Ba[b]>>8))*d.Y[0]+(d.Ba[b]&255);f=(d.Za&63)<<16|d.sb;e=65536-d.ub&65535;a.Zb(d.ma[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.oa[b]|=128;return!!(d.U&64)})}
|
function ac(a,b){var d=a.J,c,f,e;d.U&=-16513;d.Ba&=-2049;d.pa[b]&=-1153;H(a.f,-1,0,172);"undefined"===typeof d.na[b]&&(d.na[b]={cache:[],postProcess:a.Xc,drive:b,blocksize:256,mapped:0,maxblock:d.cc[0]*d.bb[0]*d.Z[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ac[b]=d.Pa[b];d.U|=32896;d.pa[b]|=32896;d.kb|=1<<b;break;case 9:$b(a);break;case 19:d.pa[b]|=64;break;case 49:if(d.Pa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+
|
||||||
m.Wc=function(a,b,d,c,f){var e=this.J;e.ub=65536-f&65535;e.sb=c&65535;e.U=e.U&-769|c>>8&768;e.Za=c>>16&63;f=~~(d/e.Y[0]);c=~~(f/e.ab[0]);e.Ba[b.La]=f%e.ab[0]<<8|d%e.Y[0];e.$b[b.La]=e.Pa[b.La]=c;e.jb|=1<<b.La;d>=b.Rc-1&&(e.oa[b.La]|=1024);switch(a){case 1:e.Aa|=512;e.U|=49152;break;case 2:e.Aa|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.oa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Oc=function(){this.B.K|=128;this.B.K&64&&H(this.f,0,192,64)};
|
(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;Yb(a,d.na[b],c,f,e);return;case 57:if(d.Pa[b]>=d.cc[0]||d.Ca[b]>>8>=d.bb[0]||(d.Ca[b]&255)>=d.Z[0]){d.ub[b]|=1024;d.U|=49152;break}c=(d.Pa[b]*d.bb[0]+(d.Ca[b]>>8))*d.Z[0]+(d.Ca[b]&255);f=(d.$a&63)<<16|d.tb;e=65536-d.vb&65535;a.$b(d.na[b],c,f,e);return}H(a.f,3,160,172,function(){d.U=d.U&65534|128;d.pa[b]|=128;return!!(d.U&64)})}
|
||||||
function bc(a,b){var d=b>>13&31;31>d?a.f.Ia&32&&(b=a.f.wb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&cc(898)):b|=4186112;return b}
|
m.Xc=function(a,b,d,c,f){var e=this.J;e.vb=65536-f&65535;e.tb=c&65535;e.U=e.U&-769|c>>8&768;e.$a=c>>16&63;f=~~(d/e.Z[0]);c=~~(f/e.bb[0]);e.Ca[b.La]=f%e.bb[0]<<8|d%e.Z[0];e.ac[b.La]=e.Pa[b.La]=c;e.kb|=1<<b.La;d>=b.Sc-1&&(e.pa[b.La]|=1024);switch(a){case 1:e.Ba|=512;e.U|=49152;break;case 2:e.Ba|=2048,e.U|=49152}H(this.f,20,160,172,function(){e.pa[b.La]|=128;e.U=e.U&65534|128;return!!(e.U&64)})};m.Pc=function(){this.A.K|=128;this.A.K&64&&H(this.f,0,192,64)};
|
||||||
function dc(a,b,d,c,f,e){var h=~~((e+d.Ua-1)/d.Ua),g=new XMLHttpRequest;2048>h&&c+2048<d.Rc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Ua<<1)+"-"+(((c+h)*d.Ua<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Yb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Ua;p++)d.cache[n][p]=q<l.length?
|
function bc(a,b,d,c,f,e){var h=~~((e+d.Va-1)/d.Va),g=new XMLHttpRequest;2048>h&&c+2048<d.Sc&&(h=2048);g.open("GET",d.url,!0);g.setRequestHeader("Range","bytes="+(c*d.Va<<1)+"-"+(((c+h)*d.Va<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,n,p,q;l=g.response;if(0!=g.status&&206!=g.status||!l)d.Zb(1,d,c,f,e);else{l=new Uint8Array(l);n=c;for(q=0;q<l.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],p=0;p<d.Va;p++)d.cache[n][p]=q<l.length?
|
||||||
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Ua<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.Zb=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){dc(this,this.Zb,a,b,d,c);return}for(f=0;f<a.Ua&&0<c;f++){if(0>K(this.f,a.Qc?bc(this,d):d,a.cache[b][f])){a.Yb(2,a,b,d,c);return}d+=2;--c}b++}a.Yb(0,a,b,d,c)};
|
l[q]&255|l[q+1]<<8&65280:0,q+=2;else q+=d.Va<<1;n++}h(d,c,f,e)}}};g.send(null)}function I(a,b,d,c,f){if(d&1){if(!f)return J(a.f,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?f&&(c=b&65280|c&255):c=b;return c}m.$b=function(a,b,d,c){for(var f;0<c;){if("undefined"===typeof a.cache[b]){bc(this,this.$b,a,b,d,c);return}for(f=0;f<a.Va&&0<c;f++){if(0>K(this.f,a.Rc?cc(this.f,d):d,a.cache[b][f])){a.Zb(2,a,b,d,c);return}d+=2;--c}b++}a.Zb(0,a,b,d,c)};
|
||||||
function Yb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Ua;e++)b.cache[d][e]=0;for(e=0;e<b.Ua&&0<f;e++){h=L(a.f,b.Qc?bc(a,c):c);if(0>h){b.Yb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Yb(0,b,d,c,f)}m.reset=function(){this.i.ob=this.i.ob&-120|20;this.N.Ha=0;this.N.pa=128;this.B.K=0;this.F.S=128;this.I.K=128;$b(this)};
|
function Yb(a,b,d,c,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],e=0;e<b.Va;e++)b.cache[d][e]=0;for(e=0;e<b.Va&&0<f;e++){h=L(a.f,b.Rc?cc(a.f,c):c);if(0>h){b.Zb(2,b,d,c,f);return}b.cache[d][e]=h;c+=2;--f}d++}b.Zb(0,b,d,c,f)}m.reset=function(){this.i.pb=this.i.pb&-120|20;this.N.Ia=0;this.N.qa=128;this.A.K=0;this.G.S=128;this.I.K=128;$b(this)};
|
||||||
m.Dc=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Xb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Xb=c;e.Oa=2}break;case 4194294:if(70!==e.fb)return J(e,4);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.fb)return J(e,4);c=1;break;case 4194290:if(70!==e.fb)return J(e,4);c=0;break;case 4194288:if(70!==e.fb)return J(e,4);c=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
m.Ec=function(a,b,d){var c,f,e=this.f;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=e.Qa&65280:(a&1&&(b<<=8),e.Qa=b|255,c=0);break;case 4194298:if(0>b)c=e.Yb;else{a&1&&(b<<=8);if(c=b&65024){f=c>>9;do c+=34;while(f>>=1)}e.Yb=c;e.Oa=2}break;case 4194294:if(70!==e.gb)return J(e,4,222);0>b?c=e.L:c=e.L=0;break;case 4194292:if(70!==e.gb)return J(e,4,224);c=1;break;case 4194290:if(70!==e.gb)return J(e,4,226);c=0;break;case 4194288:if(70!==e.gb)return J(e,4,228);c=61183;break;case 4194296:0<=
|
||||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.fb)return J(e,4);f=a-4194272>>1;0>b?c=e.ec[f]:(c=I(this,e.ec[f],a,b,d),0<=c&&(e.ec[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[3]=b),c=e.ra[3]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[1]=b),c=e.ra[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Ya[f]=b),c=e.Ya[f]),c;case 4194246:return a&
|
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.gb)return J(e,4,232);f=a-4194272>>1;0>b?c=e.fc[f]:(c=I(this,e.fc[f],a,b,d),0<=c&&(e.fc[f]=c));break;case 4194254:return a&1?e.M>>14&1?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[3]=b),c=e.sa[3]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[1]=b),c=e.sa[1]),c;case 4194252:case 4194250:case 4194248:return f=a&7,e.M&2048?(0<=b&&(e.b[f]=b),c=e.b[f]):(0<=b&&(e.Za[f]=
|
||||||
1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.ra[0]=b),c=e.ra[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Ya[f]=b),c=e.Ya[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.L|=16,J(e,4)}break;case 4194176:f=a>>1&31;c=I(this,e.ja[3][f],a,b,d);0<=c&&(e.ja[3][f]=c,e.ja[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.B;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=e.Ca;c&65280&&(c=(c<<8|c>>8)&
|
b),c=e.Za[f]),c;case 4194246:return a&1?(0<=b&&(e.b[7]=b),c=e.b[7]):e.M>>14&0?(0<=b&&(e.b[6]=b),c=e.b[6]):(0<=b&&(e.sa[0]=b),c=e.sa[0]),c;case 4194244:case 4194242:case 4194240:return f=a&7,e.M&2048?(0<=b&&(e.Za[f]=b),c=e.Za[f]):(0<=b&&(e.b[f]=b),c=e.b[f]),c;default:return e.L|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;c=I(this,e.ka[3][f],a,b,d);0<=c&&(e.ka[3][f]=c,e.ka[3][f&15]&=65295);break;case 4194112:var h=this.N;f=this.A;switch(a&-2){case 4194174:c=I(this,e.Ab,a,b,d);0<=c&&(e.Ab=c);break;case 4194172:c=
|
||||||
65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Wb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Wb=c>>1&15,c&257?(f=2,e.Ia&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.ob=this.i.ob&-8|f));break;case 4194168:0>b?c=this.i.cd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Ic=0),h.pa&=-129,H(e,100,128,52,function(){h.pa|=128;return!!(h.pa&64)}));c=0;break;case 4194164:0>b?c=h.pa:(c=I(this,h.pa,a,b,d),0<=c&&(128==(h.pa&192)&&c&
|
e.Da;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:e.ba=e.ba&62337|e.Kb<<5|e.Xb<<1;0>b?c=e.ba:(c=I(this,e.ba,a,b,d),0<=c&&(e.ba=c&=62337,e.Kb=c>>5&3,e.Xb=c>>1&15,c&257?(f=2,e.Ra&16&&(f=1),e.Jb=c&1?6:4):(e.Jb=0,f=4),this.i.pb=this.i.pb&-8|f));break;case 4194168:0>b?c=this.i.dd&65535:(c=I(this,this.i.data,a,b,d),0<=c&&(this.i.data=c));break;case 4194166:0<=b&&(b&127&&(h.Jc=0),h.qa&=-129,H(e,100,128,52,function(){h.qa|=128;return!!(h.qa&64)}));c=0;break;case 4194164:0>b?c=h.qa:(c=I(this,h.qa,a,b,
|
||||||
64&&H(e,8,128,52,function(){h.pa|=128;return!!(h.pa&64)}),h.pa=h.pa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ha&=-129,0<h.fc.length&&(c=h.fc.shift(),0<h.fc.length&&setTimeout(function(){h.Ha|=128;h.Ha&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ha:(c=I(this,h.Ha,a,b,d),0<=c&&(h.Ha=h.Ha&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=I(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Oc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.L|=16,J(e,4)}break;case 4194048:f=
|
d),0<=c&&(128==(h.qa&192)&&c&64&&H(e,8,128,52,function(){h.qa|=128;return!!(h.qa&64)}),h.qa=h.qa&128|c&-129));break;case 4194162:c=0;0>b&&(h.Ia&=-129,0<h.gc.length&&(c=h.gc.shift(),0<h.gc.length&&setTimeout(function(){h.Ia|=128;h.Ia&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?c=h.Ia:(c=I(this,h.Ia,a,b,d),0<=c&&(h.Ia=h.Ia&128|c&-129));break;case 4194150:0>b?(c=f.K,f.K&=-129):(c=I(this,f.K,a,b,d),0<=c&&(c&64&&!f.Ib&&(setInterval(this.Pc.bind(this),25),f.Ib=1),f.K=c&-129));break;default:return e.L|=
|
||||||
this.F;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.ka,a,b,d);0<=c&&(f.ka=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Xb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.sa,a,b,d);0<=c&&(f.sa=c);break;case 4194060:break;case 4194062:c=I(this,f.wc,a,b,d);0<=c&&(f.wc=c);break;default:return e.L|=16,J(e,4)}break;case 4193728:var g=
|
16,J(e,4,126)}break;case 4194048:f=this.G;switch(a&-2){case 4194048:c=I(this,f.Qb,a,b,d);0<=c&&(f.Qb=c);break;case 4194050:c=I(this,f.la,a,b,d);0<=c&&(f.la=c);break;case 4194052:c=I(this,f.S,a,b,d);0<=b&&0<=c&&(f.S=c&-36993|f.S&36992,f.S&1&&Xb(this));break;case 4194054:c=I(this,f.Rb,a,b,d);0<=c&&(f.Rb=c);break;case 4194056:c=I(this,f.Pb,a,b,d);0<=c&&(f.Pb=c);break;case 4194058:c=I(this,f.ta,a,b,d);0<=c&&(f.ta=c);break;case 4194060:break;case 4194062:c=I(this,f.xc,a,b,d);0<=c&&(f.xc=c);break;default:return e.L|=
|
||||||
this.J;f=g.Aa&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.Za=g.Za&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?ac(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.ub,a,b,d);0<=c&&(g.ub=c);break;case 4193732:c=I(this,g.sb,a,b,d);0<=c&&(g.sb=c&65534);break;case 4193734:c=I(this,g.Ba[f],a,b,d);0<=c&&(g.Ba[f]=c&7967);break;case 4193736:c=I(this,g.Aa,a,b,d);0<=c&&(g.Aa=c&63|g.Aa&65472,c&128&&$b(this));break;case 4193738:c=g.oa[f];break;case 4193740:c=g.tb[f];
|
16,J(e,4,128)}break;case 4193728:var g=this.J;f=g.Ba&7;switch(a&-2){case 4193728:c=I(this,g.U,a,b,d);0<=b&&0<=c&&(g.$a=g.$a&60|c>>8&3,g.U=c&17279|g.U&34944|2048,c&1&&g.U&128?ac(this,f):192==(c&192)&&H(e,0,160,172));break;case 4193730:c=I(this,g.vb,a,b,d);0<=c&&(g.vb=c);break;case 4193732:c=I(this,g.tb,a,b,d);0<=c&&(g.tb=c&65534);break;case 4193734:c=I(this,g.Ca[f],a,b,d);0<=c&&(g.Ca[f]=c&7967);break;case 4193736:c=I(this,g.Ba,a,b,d);0<=c&&(g.Ba=c&63|g.Ba&65472,c&128&&$b(this));break;case 4193738:c=
|
||||||
break;case 4193742:c=I(this,g.jb,a,b,d);0<=c&&(g.jb=c&255);break;case 4193744:c=g.ad[f];break;case 4193746:c=I(this,g.xc,a,b,d);0<=c&&(g.xc=c);break;case 4193748:c=I(this,g.yc[f],a,b,d);0<=c&&(g.yc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.bd[f];break;case 4193754:c=I(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.$b[f]=g.Pa[f];c=g.$b[f];break;case 4193760:c=g.Zc[f];break;case 4193762:c=g.$c[f];break;case 4193764:c=
|
g.pa[f];break;case 4193740:c=g.ub[f];break;case 4193742:c=I(this,g.kb,a,b,d);0<=c&&(g.kb=c&255);break;case 4193744:c=g.bd[f];break;case 4193746:c=I(this,g.yc,a,b,d);0<=c&&(g.yc=c);break;case 4193748:c=I(this,g.zc[f],a,b,d);0<=c&&(g.zc[f]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=g.cd[f];break;case 4193754:c=I(this,g.Ac[f],a,b,d);0<=c&&(g.Ac[f]=c);break;case 4193756:c=I(this,g.Pa[f],a,b,d);0<=c&&(g.Pa[f]=c&511);break;case 4193758:g.ac[f]=g.Pa[f];c=g.ac[f];break;case 4193760:c=g.$c[f];
|
||||||
g.Xc[f];break;case 4193766:c=g.Yc[f];break;case 4193768:c=I(this,g.Za,a,b,d);0<=c&&(g.Za=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.hc,a,b,d);0<=c&&(g.hc=c);break;default:return e.L|=16,J(e,4)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ta=f.Ta&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||Zb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Xa,
|
break;case 4193762:c=g.ad[f];break;case 4193764:c=g.Yc[f];break;case 4193766:c=g.Zc[f];break;case 4193768:c=I(this,g.$a,a,b,d);0<=c&&(g.$a=c&63,g.U=g.U&-769|(c&3)<<8);break;case 4193770:c=I(this,g.ic,a,b,d);0<=c&&(g.ic=c);break;default:return e.L|=16,J(e,4,132)}break;case 4192512:f=this.I;switch(a&-2){case 4192512:c=I(this,f.K,a,b,d);0<=b&&0<=c&&(f.Ua=f.Ua&60|c>>4&3,f.K=f.K&-1023|c&1022,f.K&128||Zb(this));break;case 4192514:c=I(this,f.Fb,a,b,d);0<=c&&(f.Fb=c&65534);break;case 4192516:c=I(this,f.ca,
|
||||||
a,b,d);0<=c&&(f.Xa=c);break;case 4192520:c=I(this,f.Ta,a,b,d);0<=c&&(f.Ta=c&63,f.K=f.K&-49|(f.Ta&3)<<4);break;default:return e.L|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ia:(c=I(this,e.Ia,a,b,d),0<=c&&(70!==e.fb&&(c&=-49),e.Ia=c,e.hb[0]=c&4?15:7,e.hb[1]=c&2?15:7,e.hb[3]=c&1?15:7,e.Jb&&(f=2,e.Ia&16&&(f=1),this.i.ob=this.i.ob&-8|f)));break;default:return e.L|=16,J(e,4)}break;case 4191424:f=a>>1&31;c=I(this,e.ja[0][f],a,b,d);0<=c&&(e.ja[0][f]=c,e.ja[0][f&15]&=65295);break;case 4191360:f=
|
a,b,d);0<=c&&(f.ca=c);break;case 4192518:c=I(this,f.Ya,a,b,d);0<=c&&(f.Ya=c);break;case 4192520:c=I(this,f.Ua,a,b,d);0<=c&&(f.Ua=c&63,f.K=f.K&-49|(f.Ua&3)<<4);break;default:return e.L|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=e.Ra:(c=I(this,e.Ra,a,b,d),0<=c&&(70!==e.gb&&(c&=-49),e.Ra=c,e.ib[0]=c&4?15:7,e.ib[1]=c&2?15:7,e.ib[3]=c&1?15:7,e.Jb&&(f=2,e.Ra&16&&(f=1),this.i.pb=this.i.pb&-8|f)));break;default:return e.L|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;c=I(this,e.ka[0][f],
|
||||||
a>>1&31;c=I(this,e.ja[1][f],a,b,d);0<=c&&(e.ja[1][f]=c,e.ja[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.fb)return J(e,4);f=a>>2&31;c=e.wb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.wb[f]=a&2?c<<16|e.wb[f]&65535:e.wb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Ib[a>>1&255];else return e.L|=16,J(e,4);break;default:return e.L|=16,J(e,4)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===
|
a,b,d);0<=c&&(e.ka[0][f]=c,e.ka[0][f&15]&=65295);break;case 4191360:f=a>>1&31;c=I(this,e.ka[1][f],a,b,d);0<=c&&(e.ka[1][f]=c,e.ka[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.gb)return J(e,4,234);f=a>>2&31;c=e.Sb[f];a&2&&(c=c>>16);c&=65535;0<=b&&(c=I(this,c,a,b,d),0<=c&&(e.Sb[f]=a&2?c<<16|e.Sb[f]&65535:e.Sb[f]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Ib[a>>1&255];else return e.L|=16,J(e,
|
||||||
typeof c&&cc(76);return c};var Ub={};Ub[4194302]=[null,null,Hb.prototype.Tc,Hb.prototype.ed];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var ec;if(tb){var fc=new ArrayBuffer(2);(new DataView(fc)).setUint16(0,256,!0);ec=256===(new Uint16Array(fc))[0]}else ec=!1;var gc=ec;
|
4,138);break;default:return e.L|=16,J(e,4,142)}d&&0<=c&&(a&1?c=c>>8:c&=255);"undefined"===typeof c&&console.log("panic(76)");return c};var Jb={};Jb[4194302]=[null,null,Hb.prototype.Uc,Hb.prototype.fd];Qa(function(){for(var a=A(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Hb(c);db(c,d)}});var dc;if(tb){var ec=new ArrayBuffer(2);(new DataView(ec)).setUint16(0,256,!0);dc=256===(new Uint16Array(ec))[0]}else dc=!1;var fc=dc;
|
||||||
function G(a,b,d,c,f){this.id=hc+=2;this.f=null;this.C=a;this.Tb=b;this.size=d||0;this.type=c||ic;this.O=c==jc;this.controller=null;xb(this);this.Va=this.Kc=!1;if(d)if(f)this.controller=f,this.f=null,kc(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.G=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),kc(this,gc?lc:mc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;kc(this,nc)}else kc(this)}
|
function G(a,b,d,c,f){this.id=gc+=2;this.f=null;this.C=a;this.Ub=b;this.size=d||0;this.type=c||hc;this.O=c==ic;this.controller=null;xb(this);this.Wa=this.Lc=!1;if(d)if(f)this.controller=f,this.f=null,jc(this,f.Cb);else if(tb)this.I=new ArrayBuffer(d),this.J=new DataView(this.I,0,d),this.F=new Uint8Array(this.I,0,d),this.P=new Uint16Array(this.I,0,d>>1),this.f=new Int32Array(this.I,0,d>>2),jc(this,fc?kc:lc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;jc(this,mc)}else jc(this)}
|
||||||
var ic=0,jc=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],hc=0;
|
var hc=0,ic=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],gc=0;
|
||||||
G.prototype={constructor:G,parent:null,Ib:function(a){this.C=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Va=!0}return!1},cb:function(a,b){b?0===this.B++&&oc(this,pc,!1):0===this.i++&&qc(this,pc,!1)},T:function(){this.H&&
|
G.prototype={constructor:G,parent:null,Ib:function(a){this.C=a},save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.Wa=!0}return!1},eb:function(a,b){b?0===this.A++&&nc(this,oc,!1):0===this.i++&&pc(this,oc,!1)},T:function(){this.H&&
|
||||||
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.C),!0);return 255},F:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.C),!0)},V:function(a,b){return this.rb(a++,b++)|this.rb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},aa:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ya:function(a,
|
eb(this.H,129)&&this.H.message("attempt to read invalid block %"+r(this.C),!0);return 255},G:function(a,b){this.H&&eb(this.H,129)&&this.H.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.C),!0)},V:function(a,b){return this.sb(a++,b++)|this.sb(a,b)<<8},N:function(a,b,d){this.xb(a++,b&255,d++);this.xb(a,b>>8,d)},da:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},za:function(a,
|
||||||
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Va=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Va=!0},Z:function(a,b){if(this.H&&null!=this.C){var d=this.H;rc(d,this.C+a,1,d.W)&&d.la(!0)}return this.Ob(a,b)},fa:function(a,b){if(this.H&&null!=this.C){var d=this.H;rc(d,this.C+a,2,d.W)&&d.la(!0)}return this.gc(a,b)},va:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;
|
b){var d=a>>2,c=(a&3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.Wa=!0},Bb:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.Wa=!0},$:function(a,b){if(this.H&&null!=this.C){var d=this.H;qc(d,this.C+a,1,d.Y)&&d.ma(!0)}return this.Ob(a,b)},ga:function(a,b){if(this.H&&null!=this.C){var d=this.H;qc(d,this.C+a,2,d.Y)&&d.ma(!0)}return this.hc(a,b)},wa:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;
|
||||||
rc(c,this.C+a,1,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;rc(c,this.C+a,2,c.J)&&c.la(!0)}this.O?this.F(a,b,d):this.kc(a,b,d)},W:function(a){return this.G[a]},$:function(a){return this.G[a]},da:function(a){return this.J.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.P[a>>1]},ua:function(a,b){this.G[a]=b;this.Va=!0},xa:function(a,b){this.G[a]=b;this.Va=!0},Da:function(a,b){this.J.setUint16(a,b,!0);this.Va=!0},
|
qc(c,this.C+a,1,c.J)&&c.ma(!0)}this.O?this.G(a,b,d):this.yb(a,b,d)},Ja:function(a,b,d){if(this.H&&null!=this.C){var c=this.H;qc(c,this.C+a,2,c.J)&&c.ma(!0)}this.O?this.G(a,b,d):this.lc(a,b,d)},Y:function(a){return this.F[a]},aa:function(a){return this.F[a]},ea:function(a){return this.J.getUint16(a,!0)},ja:function(a){return a&1?this.F[a]|this.F[a+1]<<8:this.P[a>>1]},va:function(a,b){this.F[a]=b;this.Wa=!0},ya:function(a,b){this.F[a]=b;this.Wa=!0},Ea:function(a,b){this.J.setUint16(a,b,!0);this.Wa=
|
||||||
Ra:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.P[a>>1]=b;this.Va=!0}};function xb(a,b,d){a.H=b;a.i=a.B=0;d&&((a.i=d.i)&&qc(a,pc,!1),(a.B=d.B)&&oc(a,pc,!1))}function sc(a,b){b?0===--a.B&&(a.xb=a.O?a.F:a.yb,a.Bc=a.O?a.N:a.kc):0===--a.i&&(a.rb=a.Ob,a.vc=a.gc)}function oc(a,b,d){d&&a.B||(a.xb=!a.O&&b[1]||a.F,a.Bc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.F,a.kc=b[3]||a.N}function qc(a,b,d){d&&a.i||(a.rb=b[0]||a.T,a.vc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.gc=b[2]||a.V}
|
!0},Sa:function(a,b){a&1?(this.F[a]=b,this.F[a+1]=b>>8):this.P[a>>1]=b;this.Wa=!0}};function xb(a,b,d){a.H=b;a.i=a.A=0;d&&((a.i=d.i)&&pc(a,oc,!1),(a.A=d.A)&&nc(a,oc,!1))}function rc(a,b){b?0===--a.A&&(a.xb=a.O?a.G:a.yb,a.Cc=a.O?a.N:a.lc):0===--a.i&&(a.sb=a.Ob,a.wc=a.hc)}function nc(a,b,d){d&&a.A||(a.xb=!a.O&&b[1]||a.G,a.Cc=!a.O&&b[3]||a.N);if(d||void 0===d)a.yb=b[1]||a.G,a.lc=b[3]||a.N}function pc(a,b,d){d&&a.i||(a.sb=b[0]||a.T,a.wc=b[2]||a.V);if(d||void 0===d)a.Ob=b[0]||a.T,a.hc=b[2]||a.V}
|
||||||
function kc(a,b){b||(b=tc);qc(a,b,void 0);oc(a,b,void 0)}var tc=[],nc=[G.prototype.aa,G.prototype.ya,G.prototype.qa,G.prototype.Bb],pc=[G.prototype.Z,G.prototype.va,G.prototype.fa,G.prototype.Ja];if(tb)var mc=[G.prototype.W,G.prototype.ua,G.prototype.da,G.prototype.Da],lc=[G.prototype.$,G.prototype.xa,G.prototype.ga,G.prototype.Ra];
|
function jc(a,b){b||(b=sc);pc(a,b,void 0);nc(a,b,void 0)}var sc=[],mc=[G.prototype.da,G.prototype.za,G.prototype.ra,G.prototype.Bb],oc=[G.prototype.$,G.prototype.wa,G.prototype.ga,G.prototype.Ja];if(tb)var lc=[G.prototype.Y,G.prototype.va,G.prototype.ea,G.prototype.Ea],kc=[G.prototype.aa,G.prototype.ya,G.prototype.ja,G.prototype.Sa];
|
||||||
function uc(a,b){u.call(this,"CPU",a,uc,1);var d=a.multiplier||1;this.ya=a.cycles||b;this.ib=d;this.xa=Math.round(this.ya/1E4)/100;this.gb=this.xa*this.ib;this.A.ia=!1;this.A.jc=!1;this.A.Db=a.autoStart;this.A.rc=!1;this.A.nb=!1;this.Lb=this.Z=0;this.Mb=a.csStart;this.pb=a.csInterval;this.qb=a.csStop;this.qa=[];this.Eb=this.kb.bind(this);C(this)}w(uc);var vc=["power","reset"];m=uc.prototype;
|
function tc(a,b){u.call(this,"CPU",a,tc,1);var d=a.multiplier||1;this.za=a.cycles||b;this.jb=d;this.ya=Math.round(this.za/1E4)/100;this.hb=this.ya*this.jb;this.w.ia=!1;this.w.kc=!1;this.w.Db=a.autoStart;this.w.sc=!1;this.w.ob=!1;this.Lb=this.Y=0;this.Mb=a.csStart;this.qb=a.csInterval;this.rb=a.csStop;this.ja=[];this.Eb=this.lb.bind(this);C(this)}w(tc);var uc=["power","reset"];m=tc.prototype;
|
||||||
m.Wa=function(a,b,d,c){this.i=a;this.G=b;this.H=c;for(b=0;b<vc.length;b++)(d=this.O[vc[b]])&&this.i.ta(null,vc[b],d);this.da=null;a=wc(a,"autoStart");null!=a&&(this.A.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){xc(this);if(!this.restore(a))return!1;Kc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}M(this);return!0};
|
m.Xa=function(a,b,d,c){this.i=a;this.F=b;this.H=c;for(b=0;b<uc.length;b++)(d=this.O[uc[b]])&&this.i.ua(null,uc[b],d);this.da=null;a=vc(a,"autoStart");null!=a&&(this.w.Db="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Na=function(a,b){if(!b){if(a&&this.restore){wc(this);if(!this.restore(a))return!1;xc(this)}else this.reset();this.H?this.H.Ib():this.g("No debugger detected")}yc(this);return!0};
|
||||||
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.A.Db||!this.H&&void 0===this.O.run?(this.kb(!0),!0):!1};m.tc=function(){return 0};function Kc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.pb&&(a.pb=-1);void 0===a.qb&&(a.qb=-1);a.A.nb=0<=a.Mb&&0<a.pb;a.A.nb&&(a.Lb=0,a.Z=a.Mb-a.W)}function Lc(a,b){if(a.A.nb){var d=!1;a.Lb=a.Lb+a.tc()|0;a.Z-=b;0>=a.Z&&(a.Z+=a.pb,d=!0);0<=a.qb&&a.qb<=Mc(a)&&(a.pb=a.qb=-1,Kc(a),a.la(),d=!0);d&&a.g(Mc(a)+" cycles: checksum="+r(a.Lb))}}
|
m.Ma=function(a){return a?this.save():!0};m.Db=function(){return this.w.Db||!this.H&&void 0===this.O.run?(this.lb(!0),!0):!1};m.uc=function(){return 0};function xc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.w.ob=0<=a.Mb&&0<a.qb;a.w.ob&&(a.Lb=0,a.Y=a.Mb-a.V)}function zc(a,b){if(a.w.ob){var d=!1;a.Lb=a.Lb+a.uc()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.qb,d=!0);0<=a.rb&&a.rb<=Mc(a)&&(a.qb=a.rb=-1,xc(a),a.ma(),d=!0);d&&a.g(Mc(a)+" cycles: checksum="+r(a.Lb))}}
|
||||||
function Nc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.la());var f=a.H&&a.H.va||8;d=!a.A.ia||a.A.rc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
|
function Nc(a,b,d,c){if(a.O[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.ma());var f=a.H&&a.H.wa||8;d=!a.w.ia||a.w.sc?8==f?ba(d,c):r(d,c):"--------".substr(0,c||4);a.O[b].textContent!=d&&(a.O[b].textContent=d)}}
|
||||||
m.ta=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.A.ea)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.ea);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Vb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ia?c.la():c.kb())};
|
m.ua=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.O[b]=d;a=!0;break;case "run":this.O[b]=d;d.onclick=function(){var a;if(a=c.i)if(a=c.i,a.w.fa)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.w.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.w.fa);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.w.ready?"powered yet":"ready yet"+(b.Wb?" (waiting for notification)":""))+".");a=!1}a&&(c.w.ia?c.ma():c.lb())};
|
||||||
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Oc(c,c.ib<<1,!0)},d.textContent=this.gb.toFixed(2)+"Mhz",a=!0}return a};function Pc(a,b,d){a.W+=b;d&&(a.V=a.N=0)}function Qc(a,b){var d=1;b&&1<a.ib&&a.P&&(d=a.P/a.xa);a.lb=Math.round(1E3/30);a.va=Math.floor(a.ya/30*d);b||(a.$=a.va);a.Da=0}function Mc(a){return a.W+a.J+a.V-a.N}function xc(a){a.P=0;a.zb=0;a.W=a.J=a.V=a.N=0;Kc(a);Oc(a,1)}
|
a=!0;break;case "speed":this.O[b]=d;a=!0;break;case "setSpeed":this.O[b]=d,d.onclick=function(){Oc(c,c.jb<<1,!0)},d.textContent=this.hb.toFixed(2)+"Mhz",a=!0}return a};function Pc(a,b,d){a.V+=b;d&&(a.T=a.G=0)}function Qc(a,b){var d=1;b&&1<a.jb&&a.N&&(d=a.N/a.ya);a.mb=Math.round(1E3/30);a.va=Math.floor(a.za/30*d);b||(a.$=a.va);a.Ea=0}function Mc(a){return a.V+a.J+a.T-a.G}function wc(a){a.N=0;a.zb=0;a.V=a.J=a.T=a.G=0;xc(a);Oc(a,1)}
|
||||||
function Oc(a,b,d){var c=!1;if(void 0!==b){.8>a.P/a.gb?b=1:c=!0;a.ib=b;b=a.xa*a.ib;if(a.gb!=b){a.gb=b;b=a.gb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Sb()}Pc(a,a.J);a.J=0;a.I=sa();a.T=0;Qc(a);return c}function Rc(a){a.V-=a.N;a.N=0}
|
function Oc(a,b,d){var c=!1;if(void 0!==b){.8>a.N/a.hb?b=1:c=!0;a.jb=b;b=a.ya*a.jb;if(a.hb!=b){a.hb=b;b=a.hb.toFixed(2)+"Mhz";var f=a.O.setSpeed;f&&(f.textContent=b);a.g("target speed: "+b)}d&&a.i&&a.i.Tb()}Pc(a,a.J);a.J=0;a.I=sa();a.P=0;Qc(a);return c}function Rc(a){a.T-=a.G;a.G=0}
|
||||||
m.kb=function(a){if(fb(this,!0)){if(!this.A.ia){Oc(this);this.i&&this.i.start(this.I,Mc(this));this.A.ia=!0;this.A.jc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.wa(!0),a&&this.i.Sb(!0))}this.Da>=this.ya&&Qc(this,!0);this.fa=0;this.ua=sa();this.T&&(a=this.ua-this.T,a>this.lb&&(this.I+=a,this.I>this.ua&&(this.I=this.ua)));try{do{for(var d=this.A.nb?1:this.va,c=this.qa.length-1;0<=c;c--){var f=this.qa[c];0>f[0]||d>f[0]&&(d=f[0])}this.vb(d);var e=this.V-this.N;
|
m.lb=function(a){if(fb(this,!0)){if(!this.w.ia){Oc(this);this.i&&this.i.start(this.I,Mc(this));this.w.ia=!0;this.w.kc=!0;this.da&&this.da.start();var b=this.O.run;b&&(b.textContent="Halt");this.i&&(this.i.xa(!0),a&&this.i.Tb(!0))}this.Ea>=this.za&&Qc(this,!0);this.ea=0;this.ra=sa();this.P&&(a=this.ra-this.P,a>this.mb&&(this.I+=a,this.I>this.ra&&(this.I=this.ra)));try{do{for(var d,c=this.w.ob?1:this.va,f=this.ja.length-1;0<=f;f--){var e=this.ja[f];0>e[0]||c>e[0]&&(c=e[0])}d=c;try{this.wb(d)}catch(l){if("number"!=
|
||||||
a=e;for(var h=this.qa.length-1;0<=h;h--){var g=this.qa[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=e;this.J+=e;Pc(this,0,!0);Lc(this,e);this.$-=e;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.wa(),this.zb=0);break}}while(this.A.ia)}catch(k){this.la();M(this);this.i&&this.i.stop(sa(),Mc(this));fb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Eb;this.T=sa();f=this.lb;this.fa&&(f=Math.round(f*this.fa/this.va));f=f-(this.T-this.ua);if(e=this.T-this.I)this.P=
|
typeof l)throw l;}var h=this.T-this.G;a=h;for(var g=this.ja.length-1;0<=g;g--){var k=this.ja[g];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ea+=h;this.J+=h;Pc(this,0,!0);zc(this,h);this.$-=h;if(0>=this.$){this.$+=this.va;15<=++this.zb&&(this.i&&this.i.xa(),this.zb=0);break}}while(this.w.ia)}catch(l){this.ma();yc(this);this.i&&this.i.stop(sa(),Mc(this));fb(this,!1);sb(this,l.stack||l.message);return}d=setTimeout;c=this.Eb;this.P=sa();f=this.mb;this.ea&&(f=Math.round(f*this.ea/this.va));f=f-(this.P-
|
||||||
Math.round(this.J/(10*e))/100,864E5<=e&&(this.W=0,Oc(this));if(0>f||this.P<this.gb)-1E3>f&&(this.I-=f),f=0;this.Da+=this.fa;this.T+=f;d(c,f)}else M(this),this.i&&this.i.stop(sa(),Mc(this))};m.vb=function(){return 0};m.la=function(a){qb(this,!0);Rc(this);Pc(this,this.J);this.J=0;if(this.A.ia){this.A.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.A.complete=a};function M(a,b){a.i&&a.i.wa(b)}
|
this.ra);if(e=this.P-this.I)this.N=Math.round(this.J/(10*e))/100,864E5<=e&&(this.V=0,Oc(this));if(0>f||this.N<this.hb)-1E3>f&&(this.I-=f),f=0;this.Ea+=this.ea;this.P+=f;d(c,f)}else yc(this),this.i&&this.i.stop(sa(),Mc(this))};m.wb=function(){return 0};m.ma=function(a){gb(this,!0);Rc(this);Pc(this,this.J);this.J=0;if(this.w.ia){this.w.ia=!1;this.da&&this.da.stop();var b=this.O.run;b&&(b.textContent="Run")}this.w.complete=a};function yc(a,b){a.i&&a.i.xa(b)}
|
||||||
function Sc(a){this.uc=+a.model||1170;this.Ub=a.resetAddr||0;uc.call(this,a,1E6);this.Ja=0;this.D=65536;this.u=32768;this.w=65535;this.j=32768;this.M=15;this.b=[0,0,0,0,0,0,0,this.Ub];this.Ya=[0,0,0,0,0,0];this.ra=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Xb=0;this.Oa=2;this.Qa=255;this.F=0;this.aa=-1;this.L=0;this.fb=70;this.Wb=this.Kb=this.Jb=this.B=this.Ia=this.Ab=this.Ca=this.ba=0;this.hb=[7,7,7,7];this.ja=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,
|
function Sc(a){this.vc=+a.model||1170;this.Vb=a.resetAddr||0;tc.call(this,a,1E6);this.Ja=0;this.decode=Tc.bind(this);this.D=65536;this.u=32768;this.B=65535;this.j=32768;this.wa=-1;this.b=[0,0,0,0,0,0,0,this.Vb];this.Za=[0,0,0,0,0,0];this.sa=[0,0,0,0];this.memory=[];this.f=[];this.ga=this.Yb=0;this.Oa=2;this.Qa=255;this.W=0;this.aa=-1;this.L=0;this.gb=70;this.Xb=this.Kb=this.Jb=this.A=this.Ra=this.Ab=this.Da=this.ba=0;this.ib=[7,7,7,7];this.ka=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.wb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.ec=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Hc=!1}w(Sc,uc);m=Sc.prototype;
|
0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Sb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.fc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.w.complete=this.w.Ic=!1}w(Sc,tc);m=Sc.prototype;
|
||||||
m.reset=function(){this.A.ia&&this.la();Tc(this);xc(this);this.A.error=!1;this.parent.reset.call(this)};function Tc(a){a.Qa=255;a.L=0;a.f=[];a.Xb=0;a.ba=a.Ca=a.Ab=a.Ia=a.Jb=0;a.hb[0]=a.hb[1]=a.hb[3]=7;a.Kb=0}m.tc=function(){return 0};
|
m.reset=function(){this.w.ia&&this.ma();Uc(this);wc(this);this.w.error=!1;this.parent.reset.call(this)};function Uc(a){a.Qa=255;a.L=0;a.f=[];a.Yb=0;a.ba=a.Da=a.Ab=a.Ra=a.Jb=0;a.ib[0]=a.ib[1]=a.ib[3]=7;a.Kb=0}m.uc=function(){return 0};
|
||||||
m.save=function(){var a=new Uc(this);N(a,0,[]);N(a,1,[this.Ra,this.W,this.ib]);for(var b=this.G,d=0,c=[],f=0;f<b.F;f++){var e=b.R[f];if(e.Va||e.Kc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}N(a,2,c);return a.data()};
|
m.save=function(){var a=new Vc(this);M(a,0,[]);M(a,1,[this.Sa,this.V,this.jb]);for(var b=this.F,d=0,c=[],f=0;f<b.G;f++){var e=b.R[f];if(e.Wa||e.Lc){c[d++]=f;var h=d++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var n=e[g],p=g+1;p<e.length&&e[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<e.length){e=l;break a}}c[h]=e}}M(a,2,c);return a.data()};
|
||||||
m.restore=function(a){var b=a[1];this.Ra=b[0];this.W=b[1];Oc(this,b[3]);a:{b=this.G;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
|
m.restore=function(a){var b=a[1];this.Sa=b[0];this.V=b[1];Oc(this,b[3]);a:{b=this.F;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],f=a[d+1];if(f&&f.length<b.T){for(var e=0,h=Array(b.T),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.R[c];if(!e||!e.restore(f)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
|
||||||
m.ta=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ta.call(this,a,b,d)}return c};
|
m.ua=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.O[b]=d;this.Ja++;c=!0;break;default:c=this.parent.ua.call(this,a,b,d)}return c};
|
||||||
m.wa=function(a){if(this.Ja&&(a||!this.A.ia||this.A.rc)){for(a=0;a<this.b.length;a++)Nc(this,"R"+a,this.b[a]);a=Vb(this);Nc(this,"PS",a);Nc(this,"NF",a&8?1:0,1);Nc(this,"ZF",a&4?1:0,1);Nc(this,"VF",a&2?1:0,1);Nc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.A.ia&&this.P?this.P.toFixed(2)+"Mhz":"Stopped"};
|
m.xa=function(a){if(this.Ja&&(a||!this.w.ia||this.w.sc)){for(a=0;a<this.b.length;a++)Nc(this,"R"+a,this.b[a]);a=Vb(this);Nc(this,"PS",a);Nc(this,"NF",a&8?1:0,1);Nc(this,"ZF",a&4?1:0,1);Nc(this,"VF",a&2?1:0,1);Nc(this,"CF",a&1?1:0,1)}if(a=this.O.speed)a.textContent=this.w.ia&&this.N?this.N.toFixed(2)+"Mhz":"Stopped"};
|
||||||
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].dd===c){0<e&&(a.f[e-1].Ea+=a.f[e].Ea);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Ea>b){a.f[e].Ea-=b;break}b-=a.f[e].Ea}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function Vb(a){return a.M=a.M&63728|(a.j&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.D&65536?1:0)}
|
function H(a,b,d,c,f){for(var e=a.f.length;0<e--;)if(a.f[e].ed===c){0<e&&(a.f[e-1].Fa+=a.f[e].Fa);a.f.splice(e,1);break}if(0<=b){2===a.ga&&(b=0,a.ga=0,setTimeout(a.Eb,0));for(e=a.f.length;0<e--;){if(a.f[e].Fa>b){a.f[e].Fa-=b;break}b-=a.f[e].Fa}a.f.splice(e+1,0,{delay:b,priority:d&224,vector:c,callback:f})}a.Oa=2}function Vb(a){return a.M=a.M&63728|(a.j&32768?8:0)|(a.B&65535?0:4)|(a.u&32768?2:0)|(a.D&65536?1:0)}
|
||||||
function Wb(a,b){a.j=b<<12;a.w=~b&4;a.u=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Ya.length;0<=--d;){var c=a.b[d];a.b[d]=a.Ya[d];a.Ya[d]=c}a.B=b>>14&3;d=a.M>>14&3;a.B!=d&&(a.ra[d]=a.b[6],a.b[6]=a.ra[a.B]);a.Oa=2;a.M=b}function cc(a){console.log("panic("+a+")")}
|
function Wb(a,b){a.j=b<<12;a.B=~b&4;a.u=b<<14;a.D=b<<16;if((b^a.M)&2048)for(var d=a.Za.length;0<=--d;){var c=a.b[d];a.b[d]=a.Za[d];a.Za[d]=c}a.A=b>>14&3;d=a.M>>14&3;a.A!=d&&(a.sa[d]=a.b[6],a.b[6]=a.sa[a.A]);a.Oa=2;a.M=b}function Wc(a,b){!a.W&128&&(a.j=a.B=b,a.u=0)}
|
||||||
function J(a,b){var d,c,f=0;0>a.aa?a.aa=Vb(a):a.B||(b=4,f=1);a.ba&57344||(a.Ca=63222,a.Ab=b);a.B=0;0<=(d=P(a,b|65536))&&0<=(c=P(a,b+2&65535|65536))&&(Wb(a,c&53247|a.aa>>2&12288),f&&(a.L|=4,a.b[6]=4),0<=Vc(a,a.aa)&&0<=Vc(a,a.b[7])&&(a.b[7]=d));a.F=0;return a.aa=-1}
|
function J(a,b,d){var c,f,e=0;0>a.aa?a.aa=Vb(a):a.A||(b=4,e=1);a.ba&57344||(a.Da=63222,a.Ab=b);a.A=0;0<=(c=N(a,b|65536))&&0<=(f=N(a,b+2&65535|65536))&&(Wb(a,f&53247|a.aa>>2&12288),e&&(a.L|=4,a.b[6]=4),0<=Xc(a,a.aa)&&0<=Xc(a,a.b[7])&&(a.b[7]=c));a.W&=-113;a.aa=-1;throw b|d<<8;}function cc(a,b){var d=b>>13&31;31>d?a.Ra&32&&(b=a.Sb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||||
function Wc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.hb[a.B];f=a.ja[a.B][c];e=(a.ja[a.B][c+16]<<6)+(b&8191)&4194303;if(a.Ia&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.Ia&32&&(e=a.wb[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&cc(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.L|=32,J(a,4);if(e&1&&!(d&1))return a.L|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?
|
function Yc(a,b,d){var c,f,e,h=0;if(d&a.Jb){c=b>>13&a.ib[a.A];f=a.ka[a.A][c];e=(a.ka[a.A][c+16]<<6)+(b&8191)&4194303;a.Ra&16?3932160<=e&&4186112>e&&(e=cc(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.L|=32,J(a,4,24)),e&1&&!(d&1)&&(a.L|=64,J(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:f|=d&4?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&
|
||||||
192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.ja[a.B][c]=f;if(4194170!==e||a.B)a.Kb=a.B,a.Wb=c;if(h){if(h&57344)return 0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Wb<<1),J(a,168);a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.F|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(d&1))return a.L|=64,J(a,4);return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.G.Ga(b):b}
|
8128)&&(h|=16384));a.ka[a.A][c]=f;if(4194170!==e||a.A)a.Kb=a.A,a.Xb=c;h&&(h&57344&&(0<=a.aa&&(h|=128),a.ba&57344||(a.ba=a.ba|h|a.Kb<<5|a.Xb<<1),J(a,168,28)),a.ba&61440||!(4191360>e||4194239<e)||(a.ba|=4096,a.ba&512&&(a.W|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(d&1)&&(a.L|=64,J(a,4,22));return e}function L(a,b){return 4194304<=b?a.b[b-4194304]:0<=b?a.F.Ha(b):b}function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.F.jc(b,d),d):b}
|
||||||
function K(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.G.ic(b,d),d):b}function Q(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.G.Hb(b):b}function R(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.G.ac(b,d),d):b}function P(a,b){return L(a,Wc(a,b,2))}function Xc(a){var b=P(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
|
function P(a,b){return 4194304<=b?a.b[b-4194304]&255:0<=b?a.F.Hb(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:0<=b?(a.F.bc(b,d),d):b}function N(a,b){return L(a,Yc(a,b,2))}function Zc(a){var b=N(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function Xc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Da=a.Da<<8|246);!a.A&&c<=a.Qa&&4<c&&(c<=a.Qa-32?(a.L|=4,a.b[6]=4,J(a,4,32)):(a.L|=8,a.W|=4));return 0<=(d=Yc(a,c|65536,4))?K(a,d,b):d}
|
||||||
function Vc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.ba&57344||(a.Ca=a.Ca<<8|246);if(!a.B&&c<=a.Qa&&4<c){if(c<=a.Qa-32)return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return 0<=(d=Wc(a,c|65536,4))?K(a,d,b):d}
|
function $c(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.A&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])&&(a.b[6]<=a.Qa-32||65534<=a.b[6]?(a.L|=4,a.b[6]=4,J(a,4,36)):(a.L|=8,a.W|=64)),7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=N(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
|
||||||
function Yc(a,b,d){var c,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.B&&d&4&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32||65534<=a.b[6])return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return 7===e?a.b[e]:a.b[e]|65536;case 2:f=2;c=a.b[e];7!==e&&(c|=65536,6>e&&d&1&&(f=1));break;case 3:f=2;c=a.b[e];7!==e&&(c|=65536);if(0>(c=P(a,c)))return c;c|=65536;break;case 4:f=-2;6>e&&d&1&&(f=-1);c=a.b[e]+f&65535;7!==e&&(c|=65536);break;case 5:f=-2;c=a.b[e]-2&65535;7!==e&&(c|=65536);if(0>(c=
|
N(a,c)))return c;c|=65536;break;case 6:if(0>(c=N(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=N(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=N(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Da=a.Da<<8|f<<3&248|e);6===e&&!a.A&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])&&(a.b[6]<=a.Qa-32?(a.L|=4,a.b[6]=4,J(a,4,38)):(a.L|=8,a.W|=64));return c}
|
||||||
P(a,c)))return c;c|=65536;break;case 6:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return c|65536;case 7:if(0>(c=P(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[e]&65535;return 0>(c=P(a,c|65536))?c:c|65536}a.b[e]=a.b[e]+f&65535;a.ba&57344||(a.Ca=a.Ca<<8|f<<3&248|e);if(6===e&&!a.B&&d&4&&0>=f&&(a.b[6]<=a.Qa||65534<=a.b[6])){if(a.b[6]<=a.Qa-32)return a.L|=4,a.b[6]=4,J(a,4);a.L|=8;a.F|=4}return c}
|
function R(a,b,d){var c;return b&56?(0<=(c=$c(a,b,d))&&(c=Yc(a,c,d)),c):4194304+(b&7)}function S(a,b){var d;b&56?(d=R(a,b,2),d=L(a,d)):d=a.b[b&7];return d}function ad(a,b){var d;b&56?0<=(d=R(a,b,3))&&(d=P(a,d)):d=a.b[b&7]&255;return d}function T(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||||
function S(a,b,d){var c;return b&56?(0<=(c=Yc(a,b,d))&&(c=Wc(a,c,d)),c):4194304+(b&7)}function T(a,b){var d;b&56?0<=(d=S(a,b,2))&&(d=L(a,d)):d=a.b[b&7];return d}function Zc(a,b){var d;b&56?0<=(d=S(a,b,3))&&(d=Q(a,d)):d=a.b[b&7]&255;return d}function U(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
m.wb=function(a){this.w.complete=!0;var b=this.w.Ic=this.H&&bd(this.H),d=a?this.w.kc?0:1:-1;this.w.kc=!1;this.T=this.G=a;this.Sa&256?(Rc(this),a=!1):a=!0;if(a){do{if(b){if(cd(this.H,this.b[7],d)){this.ma();break}d=1}var c,f,e,h,g;this.W&112&&(this.W&32?J(this,168,52):this.W&64?J(this,4,54):this.W&16&&J(this,12,56),this.W&=-113);if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Yb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Fa){this.f[a].Fa--;this.Oa=2;break}if(this.f[a].pc){if(!this.f[a].pc()){this.f.splice(a,
|
||||||
m.vb=function(a){this.A.complete=!0;var b=this.A.Hc=this.H&&$c(this.H),d=a?this.A.jc?0:1:-1;this.A.jc=!1;this.V=this.N=a;this.Ra&256?(Rc(this),a=!1):a=!0;if(a){do{if(b){if(ad(this.H,this.b[7],d)){this.la();break}d=1}var c,f,e,h,g;if(this.Oa)if(1===this.Oa)this.Oa=2;else{this.Oa=0;g=-1;c=this.Xb&224;if(0<(a=this.f.length))for(;0<a--;){if(0<this.f[a].Ea){this.f[a].Ea--;this.Oa=2;break}if(this.f[a].oc){if(!this.f[a].oc()){this.f.splice(a,1);g--;continue}this.f[a].oc=null}this.f[a].Sc>c&&(c=this.f[a].Sc,
|
1);g--;continue}this.f[a].pc=null}this.f[a].Tc>c&&(c=this.f[a].Tc,g=a)}c>(this.M&224)&&(0>g?J(this,160,42):(J(this,this.f[g].ed,44),this.f.splice(g,1)))}this.ba&57344||(this.Da=0,this.Ab=this.b[7]);this.W=this.M&16;this.wa=N(this,this.b[7]);this.b[7]=this.b[7]+2&65535;this.decode(this.wa);if(0<=this.wa)switch(a=this.wa,this.b[7]=this.b[7]+2&65535,a&61440){case 20480:0<=(c=S(this,a>>6))&&(a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.B=a,this.u=0)):(this.j=this.B=a=this.b[a&
|
||||||
g=a)}c>(this.M&224)&&(0>g?J(this,160):(J(this,this.f[g].dd),this.f.splice(g,1)))}this.ba&57344||(this.Ca=0,this.Ab=this.b[7]);this.F=this.M&16;if(0<=(a=P(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=T(this,a>>6))&&(a&56?0<=(e=S(this,a,4))&&0<=K(this,e,c)&&(this.j=this.w=c,this.u=0):(this.j=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=T(this,a>>6))&&0<=(f=T(this,a))&&(this.j=this.w=this.D=a=c-f,this.u=(c^f)&(c^a));break;case 12288:0<=(c=T(this,a>>6))&&0<=(f=
|
7]|=c,this.u=0));break;case 24576:0<=(c=S(this,a>>6))&&(a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.B=this.D=a,this.u=(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.B=this.D=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=ad(this,a>>6))&&(a&56?0<=(e=R(this,a,5))&&0<=Q(this,e,c)&&(this.j=this.B=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.B=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=ad(this,a>>6))&&0<=(f=ad(this,a))&&(a=c-f,this.j=this.B=this.D=
|
||||||
T(this,a))&&(this.j=this.w=c&f,this.u=0);break;case 16384:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&~c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f|c,0<=K(this,e,a)&&(this.j=this.w=a,this.u=0)):(this.j=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=c+f,0<=K(this,e,a)&&(this.j=this.w=this.D=a,this.u=
|
a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=ad(this,a>>6))&&0<=(f=ad(this,a))&&(this.j=this.B=(c&f)<<8,this.u=0);break;case 49152:0<=(c=ad(this,a>>6))&&0<=(f=P(this,e=R(this,a,7)))&&(a=f&~c,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=0));break;case 53248:0<=(c=ad(this,a>>6))&&0<=(f=P(this,e=R(this,a,7)))&&(a=f|c,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=0));break;case 57344:0<=(c=S(this,a>>6))&&(a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.B=this.D=a,this.u=(c^f)&
|
||||||
(c^a)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=c+f)&65535,this.j=this.w=this.D=a,this.u=(c^a)&(f^a)));break;case 36864:0<=(c=Zc(this,a>>6))&&(a&56?0<=(e=S(this,a,5))&&0<=R(this,e,c)&&(this.j=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.j=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(a=c-f,this.j=this.w=this.D=a<<8,this.u=((c^f)&(c^a))<<8);break;case 45056:0<=(c=Zc(this,a>>6))&&0<=(f=Zc(this,a))&&(this.j=this.w=(c&f)<<8,this.u=0);break;case 49152:0<=(c=
|
(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.B=this.D=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=$c(this,a,0))&&(g=a>>6&7,0<=Xc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=S(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.B=this.j|a,this.D=this.u=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=S(this,a))&&(c?(g=
|
||||||
Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f&~c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 53248:0<=(c=Zc(this,a>>6))&&0<=(f=Q(this,e=S(this,a,7)))&&(a=f|c,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=0));break;case 57344:0<=(c=T(this,a>>6))&&(a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-c,0<=K(this,e,a)&&(this.j=this.w=this.D=a,this.u=(c^f)&(f^a))):(g=a&7,f=this.b[g],this.b[g]=(a=f-c)&65535,this.j=this.w=this.D=a,this.u=(c^f)&(f^a)));break;default:switch(a&65024){case 2048:0<=(h=Yc(this,
|
a>>6&7,f=this.b[g]<<16|this.b[g|1],this.D=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.B=a>>16|a,this.j=a>>16):(this.u=32768,this.B=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.B=this.j=0,this.u=32768,this.D=65536));break;case 29696:0<=(c=S(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.D=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.D=
|
||||||
a,0))&&(g=a>>6&7,0<=Vc(this,this.b[g])&&(this.b[g]=this.b[7],this.b[7]=h&65535));break;case 28672:0<=(c=T(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),f=this.b[g],f&32768&&(f|=-65536),a=~~(c*f),this.b[g]=a>>16&65535,this.b[g|1]=a&65535,this.j=a>>16,this.w=this.j|a,this.D=this.u=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=T(this,a))&&(c?(g=a>>6&7,f=this.b[g]<<16|this.b[g|1],this.D=this.u=0,c&32768&&(c|=-65536),a=~~(f/c),-32768<=a&&32767>=a?(this.b[g]=a&65535,this.b[g|1]=f-a*c&65535,this.w=
|
a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.B=a);break;case 30208:if(0<=(c=S(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|1];this.D=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.B=a>>16|a}break;case 30720:a&56?0<=
|
||||||
a>>16|a,this.j=a>>16):(this.u=32768,this.w=a>>15|a,this.j=f>>16,-1===c&&65534===this.b[g]&&(this.b[g]=this.b[g|1]=1))):(this.w=this.j=0,this.u=32768,this.D=65536));break;case 29696:0<=(c=T(this,a))&&(g=a>>6&7,a=this.b[g],a&32768&&(a|=4294901760),this.D=this.u=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a=a>>c):c&&(16<c?(this.u=a,a=0):(this.D=a=a<<c,(f=a>>15&65535)&&65535!==f&&(this.u=32768))),this.b[g]=a&65535,this.j=this.w=a);break;case 30208:if(0<=(c=T(this,a))){g=a>>6&7;f=this.b[g]<<16|this.b[g|
|
(f=L(this,e=R(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.B=f,this.u=0)):(this.j=this.B=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=T(this.b[7],a);break;case 512:this.B&65535&&(this.b[7]=T(this.b[7],a));break;case 768:this.B&65535||(this.b[7]=T(this.b[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.b[7]=T(this.b[7],a));break;case 1280:(this.j&
|
||||||
1];this.D=this.u=0;c&=63;if(c&32)c=64-c,32<c&&(c=32),a=f>>c-1,this.D=a<<16,a>>=1,f&2147483648&&(a|=4294967295<<32-c);else if(c){if(a=f<<c-1,this.D=a>>15,a<<=1,32<c&&(c=32),f>>=32-c)f|=4294967295<<c&4294967295,4294967295!==f&&(this.u=32768)}else a=f;this.b[g]=a>>16&65535;this.b[g|1]=a&65535;this.j=a>>16;this.w=a>>16|a}break;case 30720:a&56?0<=(f=L(this,e=S(this,a,6)))&&(f^=this.b[a>>6&7],0<=K(this,e,f)&&(this.j=this.w=f,this.u=0)):(this.j=this.w=f=this.b[a&7]^=this.b[a>>6&7],this.u=0);break;case 32256:g=
|
32768)!==(this.u&32768)&&(this.b[7]=T(this.b[7],a));break;case 1536:this.B&65535&&(this.j&32768)===(this.u&32768)&&(this.b[7]=T(this.b[7],a));break;case 1792:this.B&65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=T(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=T(this.b[7],a));break;case 33280:!(this.D&65536)&&this.B&65535&&(this.b[7]=T(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=T(this.b[7],a));break;case 33536:if(this.D&65536||!(this.B&65535))this.b[7]=T(this.b[7],a);break;
|
||||||
a>>6&7;if(this.b[g]=this.b[g]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=U(this.b[7],a);break;case 512:this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 768:this.w&65535||(this.b[7]=U(this.b[7],a));break;case 1024:(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1280:(this.j&32768)!==(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1536:this.w&65535&&(this.j&32768)===(this.u&32768)&&(this.b[7]=U(this.b[7],a));break;case 1792:this.w&
|
case 33792:this.u&32768||(this.b[7]=T(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=T(this.b[7],a));break;case 34304:this.D&65536||(this.b[7]=T(this.b[7],a));break;case 34560:this.D&65536&&(this.b[7]=T(this.b[7],a));break;case 34816:J(this,24,2);break;case 35072:J(this,28,4);break;default:switch(a&65472){case 64:0<=(h=$c(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.B=f&65280,this.u=this.D=0)):(g=a&7,f=this.b[g],
|
||||||
65535&&(this.j&32768)===(this.u&32768)||(this.b[7]=U(this.b[7],a));break;case 32768:this.j&32768||(this.b[7]=U(this.b[7],a));break;case 33280:!(this.D&65536)&&this.w&65535&&(this.b[7]=U(this.b[7],a));break;case 33024:this.j&32768&&(this.b[7]=U(this.b[7],a));break;case 33536:if(this.D&65536||!(this.w&65535))this.b[7]=U(this.b[7],a);break;case 33792:this.u&32768||(this.b[7]=U(this.b[7],a));break;case 34048:this.u&32768&&(this.b[7]=U(this.b[7],a));break;case 34304:this.D&65536||(this.b[7]=U(this.b[7],
|
this.b[g]=(f<<8|f>>8)&65535,this.j=this.B=f&65280,this.u=this.D=0);break;case 2560:a&56?0<=(e=R(this,a,4))&&0<=K(this,e,0)&&(this.j=this.D=this.u=this.B=0):this.j=this.D=this.u=this.B=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=R(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.B=a,this.D=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.B=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.B=a,this.u=a&(a^f));break;case 2752:a&
|
||||||
a));break;case 34560:this.D&65536&&(this.b[7]=U(this.b[7],a));break;case 34816:J(this,24);break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(h=Yc(this,a,0))&&(this.b[7]=h&65535);break;case 192:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<8|f>>8,0<=K(this,e,a)&&(this.j=this.w=f&65280,this.u=this.D=0)):(g=a&7,f=this.b[g],this.b[g]=(f<<8|f>>8)&65535,this.j=this.w=f&65280,this.u=this.D=0);break;case 2560:a&56?0<=(e=S(this,a,4))&&0<=K(this,e,0)&&(this.j=this.D=this.u=this.w=0):this.j=this.D=
|
56?0<=(f=L(this,e=R(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.B=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.B=a,this.u=(a^f)&f);break;case 2816:0<=(f=L(this,e=R(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=R(this,a,6)))&&(a=f+(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=R(this,a,6)))&&(a=f-(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=
|
||||||
this.u=this.w=this.b[a&7]=0;break;case 2624:0<=(f=L(this,e=S(this,a,6)))&&(a=~f,0<=K(this,e,a)&&(this.j=this.w=a,this.D=65536,this.u=0));break;case 2688:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f+1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=a&(a^f))):(g=a&7,f=this.b[g],a=f+1,this.b[g]=a&65535,this.j=this.w=a,this.u=a&(a^f));break;case 2752:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f-1,0<=K(this,e,a)&&(this.j=this.w=a,this.u=(a^f)&f)):(g=a&7,f=this.b[g],a=f-1,this.b[g]=a&65535,this.j=this.w=a,this.u=(a^f)&f);
|
(a^f)&f));break;case 3008:0<=(f=S(this,a))&&(this.j=this.B=f,this.D=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=(this.D&65536|f)>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.B=a,this.u=a^this.D>>1)):(g=a&7,f=this.b[g],a=(this.D&65536|f)>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.B=a,this.u=a^this.D>>1);break;case 3136:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f<<1|this.D>>16&1,0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.D>>16&1,this.b[g]=
|
||||||
break;case 2816:0<=(f=L(this,e=S(this,a,6)))&&(a=-f,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a&f));break;case 2880:0<=(f=L(this,e=S(this,a,6)))&&(a=f+(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a&(a^f)));break;case 2944:0<=(f=L(this,e=S(this,a,6)))&&(a=f-(this.D>>16&1),0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=(a^f)&f));break;case 3008:0<=(f=T(this,a))&&(this.j=this.w=f,this.D=this.u=0);break;case 3072:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=(this.D&65536|f)>>1,0<=K(this,
|
a&65535,this.D=this.j=this.B=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.B=a,this.u=this.j^this.D>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.B=a,this.u=this.j^this.D>>1);break;case 3264:a&56?0<=(f=L(this,e=R(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.D=this.j=this.B=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.D=this.j=this.B=a,this.u=a^f);break;case 3328:h=this.b[7]+
|
||||||
e,a)&&(this.D=f<<16,this.j=this.w=a,this.u=a^this.D>>1)):(g=a&7,f=this.b[g],a=(this.D&65536|f)>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.w=a,this.u=a^this.D>>1);break;case 3136:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1|this.D>>16&1,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1|this.D>>16&1,this.b[g]=a&65535,this.D=this.j=this.w=a,this.u=a^f);break;case 3200:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f&32768|f>>1,0<=K(this,e,a)&&(this.D=f<<16,this.j=this.w=a,this.u=
|
((a&63)<<1)&65535;0<=(c=N(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=$c(this,a,0))&&(61440!==(this.M&61440)&&(h&=65535),this.A=this.M>>12&3,0<=(c=N(this,h))&&(this.A=this.M>>14&3,0<=Xc(this,c)&&(this.j=this.B=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.sa[this.M>>12&3],0<=Xc(this,c)&&(this.j=this.B=c,this.u=0));break;case 3456:0<=(f=Zc(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=$c(this,a,0))&&(h&=65535,
|
||||||
this.j^this.D>>1)):(g=a&7,f=this.b[g],a=f&32768|f>>1,this.b[g]=a&65535,this.D=f<<16,this.j=this.w=a,this.u=this.j^this.D>>1);break;case 3264:a&56?0<=(f=L(this,e=S(this,a,6)))&&(a=f<<1,0<=K(this,e,a)&&(this.D=this.j=this.w=a,this.u=a^f)):(g=a&7,f=this.b[g],a=f<<1,this.b[g]=a&65535,this.D=this.j=this.w=a,this.u=a^f);break;case 3328:h=this.b[7]+((a&63)<<1)&65535;0<=(c=P(this,h|65536))&&(this.b[7]=this.b[5],this.b[5]=c,this.b[6]=h+2&65535);break;case 3392:a&56?0<=(h=Yc(this,a,0))&&(61440!==(this.M&61440)&&
|
this.A=this.M>>12&3,0<=(e=Yc(this,h,4))&&(this.A=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.B=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.sa[this.M>>12&3]=f,this.j=this.B=f,this.u=0));break;case 3520:0<=(e=R(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.B=a,this.u=0));break;case 35328:a&56?0<=(e=R(this,a,5))&&0<=Q(this,e,0)&&(this.j=this.D=this.u=this.B=0):(this.b[a&7]&=65280,this.j=this.D=this.u=this.B=0);break;case 35392:0<=(f=P(this,e=R(this,a,7)))&&(a=
|
||||||
(h&=65535),this.B=this.M>>12&3,0<=(c=P(this,h))&&(this.B=this.M>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.ra[this.M>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 3456:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(h&=65535,this.B=this.M>>12&3,0<=(e=Wc(this,h,4))&&(this.B=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=
|
~f,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.D=65536,this.u=0));break;case 35456:0<=(f=P(this,e=R(this,a,7)))&&(a=f+1,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=(a&(a^f))<<8));break;case 35520:0<=(f=P(this,e=R(this,a,7)))&&(a=f-1,0<=Q(this,e,a)&&(this.j=this.B=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=P(this,e=R(this,a,7)))&&(a=-f,0<=Q(this,e,a)&&(this.D=this.j=this.B=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=P(this,e=R(this,a,7)))&&(a=f+(this.D>>16&1),0<=Q(this,e,a)&&(this.j=this.B=this.D=
|
||||||
f:this.ra[this.M>>12&3]=f,this.j=this.w=f,this.u=0));break;case 3520:0<=(e=S(this,a,4))&&(a=-(this.j>>15&1),0<=K(this,e,a)&&(this.w=a,this.u=0));break;case 35328:a&56?0<=(e=S(this,a,5))&&0<=R(this,e,0)&&(this.j=this.D=this.u=this.w=0):(this.b[a&7]&=65280,this.j=this.D=this.u=this.w=0);break;case 35392:0<=(f=Q(this,e=S(this,a,7)))&&(a=~f,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.D=65536,this.u=0));break;case 35456:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=(a&(a^
|
a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=P(this,e=R(this,a,7)))&&(a=f-(this.D>>16&1),0<=Q(this,e,a)&&(this.j=this.B=this.D=a<<8,this.u=((a^f)&f)<<8));break;case 35776:0<=(f=ad(this,a))&&(this.j=this.B=f<<8,this.D=this.u=0);break;case 35840:0<=(f=P(this,e=R(this,a,7)))&&(a=((this.D&65536)>>8|f)>>1,0<=Q(this,e,a)&&(this.D=f<<16,this.j=this.B=a<<8,this.u=this.j^this.D>>1));break;case 35904:0<=(f=P(this,e=R(this,a,7)))&&(a=f<<1|this.D>>16&1,0<=Q(this,e,a)&&(this.D=this.j=this.B=a<<8,this.u=(a^
|
||||||
f))<<8));break;case 35520:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-1,0<=R(this,e,a)&&(this.j=this.w=a<<8,this.u=((a^f)&f)<<8));break;case 35584:0<=(f=Q(this,e=S(this,a,7)))&&(a=-f,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a&f)<<8));break;case 35648:0<=(f=Q(this,e=S(this,a,7)))&&(a=f+(this.D>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.D=a<<8,this.u=(a&(a^f))<<8));break;case 35712:0<=(f=Q(this,e=S(this,a,7)))&&(a=f-(this.D>>16&1),0<=R(this,e,a)&&(this.j=this.w=this.D=a<<8,this.u=((a^f)&f)<<8));break;
|
f)<<8));break;case 35968:0<=(f=P(this,e=R(this,a,7)))&&(a=f&128|f>>1,0<=Q(this,e,a)&&(this.D=f<<16,this.j=this.B=a<<8,this.u=this.j^this.D>>1));break;case 36032:0<=(f=P(this,e=R(this,a,7)))&&(a=f<<1,0<=Q(this,e,a)&&(this.D=this.j=this.B=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=$c(this,a,0))&&(this.A=this.M>>12&3,0<=(c=N(this,h|65536))&&(this.A=this.M>>14&3,0<=Xc(this,c)&&(this.j=this.B=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.sa[this.M>>12&3],0<=Xc(this,
|
||||||
case 35776:0<=(f=Zc(this,a))&&(this.j=this.w=f<<8,this.D=this.u=0);break;case 35840:0<=(f=Q(this,e=S(this,a,7)))&&(a=((this.D&65536)>>8|f)>>1,0<=R(this,e,a)&&(this.D=f<<16,this.j=this.w=a<<8,this.u=this.j^this.D>>1));break;case 35904:0<=(f=Q(this,e=S(this,a,7)))&&(a=f<<1|this.D>>16&1,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 35968:0<=(f=Q(this,e=S(this,a,7)))&&(a=f&128|f>>1,0<=R(this,e,a)&&(this.D=f<<16,this.j=this.w=a<<8,this.u=this.j^this.D>>1));break;case 36032:0<=
|
c)&&(this.j=this.B=c,this.u=0));break;case 36224:0<=(f=Zc(this))&&((this.ba&57344||(this.Da=22),a&56)?0<=(h=$c(this,a,0))&&(this.A=this.M>>12&3,0<=(e=Yc(this,h|65536,4))&&(this.A=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.B=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.sa[this.M>>12&3]=f,this.j=this.B=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Zc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<
|
||||||
(f=Q(this,e=S(this,a,7)))&&(a=f<<1,0<=R(this,e,a)&&(this.D=this.j=this.w=a<<8,this.u=(a^f)<<8));break;case 36160:a&56?0<=(h=Yc(this,a,0))&&(this.B=this.M>>12&3,0<=(c=P(this,h|65536))&&(this.B=this.M>>14&3,0<=Vc(this,c)&&(this.j=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]:this.ra[this.M>>12&3],0<=Vc(this,c)&&(this.j=this.w=c,this.u=0));break;case 36224:0<=(f=Xc(this))&&((this.ba&57344||(this.Ca=22),a&56)?0<=(h=Yc(this,a,0))&&(this.B=this.M>>12&3,0<=(e=Wc(this,
|
5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.u=0);a&4&&(this.B=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.u=32768);a&4&&(this.B=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.M?(this.L|=128,J(this,4,46)):(this.ga=3,Rc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Fa,this.f[a].Fa=0;0===g&&0===this.ga&&(this.ga=2,Rc(this));break;case 3:J(this,12,6);break;case 4:J(this,
|
||||||
h|65536,4))&&(this.B=this.M>>14&3,0<=K(this,e,f)&&(this.j=this.w=f,this.u=0))):(g=a&7,6!==g||(this.M>>2&12288)===(this.M&12288)?this.b[g]=f:this.ra[this.M>>12&3]=f,this.j=this.w=f,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Xc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.M&49152||(this.M=this.M&63519|(a&7)<<5,this.Oa=1);break;case 160:case 168:a&1&&(this.D=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.j=0);break;case 176:case 184:a&1&&(this.D=65536);a&2&&(this.u=
|
16,8);break;case 5:this.M&49152||(Uc(this),this.F.reset());break;case 2:case 6:e=this.b[6];0<=(h=N(this,e|65536))&&(e=e+2&65535,0<=(c=N(this,e|65536))&&(this.b[6]=e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.b[7]=h,Wb(this,c),this.W&=-17,2===a&&(this.W|=this.M&16)));break;default:J(this,8,48)}}}}}}}while(0<this.G)}return this.w.complete?this.T-this.G:void 0===this.w.complete?0:-1};
|
||||||
32768);a&4&&(this.w=0);a&8&&(this.j=32768);break;default:switch(a){case 0:49152&this.M?(this.L|=128,J(this,4)):(this.ga=3,Rc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.f.length))for(;0<a--;)g+=this.f[a].Ea,this.f[a].Ea=0;0===g&&0===this.ga&&(this.ga=2,Rc(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.M&49152||(Tc(this),this.G.reset());break;case 2:case 6:e=this.b[6];0<=(h=P(this,e|65536))&&(e=e+2&65535,0<=(c=P(this,e|65536))&&(this.b[6]=
|
Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Sc(c);db(c,d)}});function Tc(a){dd[a>>12].call(this,a)}function U(){--this.G}
|
||||||
e+2&65535,c&=63743,this.M&49152&&(c=c&63519|this.M&63712),this.b[7]=h,Wb(this,c),this.F&=-17,2===a&&(this.F|=this.M&16)));break;default:J(this,8)}}}}}}this.F&&(this.F&2?J(this,168):this.F&4?J(this,4):this.F&16&&J(this,12),this.F=0)}while(0<this.N)}return this.A.complete?this.V-this.N:void 0===this.A.complete?0:-1};Qa(function(){for(var a=A(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new Sc(c);db(c,d)}});
|
var dd=[function(){},function(a){var b=S(this,a>>6);a&56?K(this,R(this,a,4),b):this.b[a&7]=b;Wc(this,b);--this.G},function(a){var b=S(this,a>>6);a=S(this,a);var d=b-a;!this.W&128&&(this.j=this.B=this.D=d,this.u=(b^a)&(b^d));--this.G},function(a){Wc(this,S(this,a>>6)&S(this,a));--this.G},function(a){var b=S(this,a>>6);if(a&56){a=R(this,a,4);var d=L(this,a);K(this,a,b=~b&d)}else a&=7,this.b[a]=b=~b&this.b[a];Wc(this,b);--this.G},U,U,U,U,U,U,U,U,U,U,U];
|
||||||
function bd(a){u.call(this,"ROM",a,bd);this.i=null;this.J=a.addr;this.B=a.size;this.N=a.writable;this.F=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=ia(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){cd(d,a,b,e)})}}w(bd);bd.prototype.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;dd(this)};
|
function ed(a){u.call(this,"ROM",a,ed);this.i=null;this.J=a.addr;this.A=a.size;this.N=a.writable;this.G=a.alias;this.I=a.file;this.P=ca(this.I);if(this.I){a=this.I;var b=da(this.P);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,e){fd(d,a,b,e)})}}w(ed);ed.prototype.Xa=function(a,b,d,c){this.F=b;this.f=d;this.H=c;gd(this)};
|
||||||
bd.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.B,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.pc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({gd:b,C:d,Pc:c,Ka:f,mc:e})}delete this.Ka}return!0};bd.prototype.Ma=function(){return!0};
|
ed.prototype.Na=function(){if(this.Ka){if(this.H){var a=this.H,b=this.id,d=this.J,c=this.A,f=this.Ka,e=[],h;for(h in f){var g=f[h];"number"==typeof g&&(f[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=e,k=[k>>>0,h],p=ra(n,k,a.qc);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.N.push({hd:b,C:d,Qc:c,Ka:f,nc:e})}delete this.Ka}return!0};ed.prototype.Ma=function(){return!0};
|
||||||
function cd(a,b,d,c){if(c)a.na("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.nc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
|
function fd(a,b,d,c){if(c)a.oa("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.oc,b,d);var f;if("["==d.charAt(0)||"{"==d.charAt(0))try{var e,h,g=eval("("+d+")");if(e=g.bytes)a.i=e;else if(e=g.words)for(a.i=Array(2*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255;else if(e=g.data)for(a.i=Array(4*e.length),h=f=0;f<e.length;f++)a.i[h++]=e[f]&255,a.i[h++]=e[f]>>8&255,a.i[h++]=e[f]>>16&255,a.i[h++]=e[f]>>24&255;else a.i=g;a.Ka=g.symbols;if(!a.i.length){t("Empty ROM: "+
|
||||||
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.na("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);dd(a)}}
|
b);return}if(1==a.i.length){t(a.i[0]);return}}catch(k){a.oa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.i=Array(b.length),f=0;f<b.length;f++)a.i[f]=aa(b[f],16);gd(a)}}
|
||||||
function dd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.G){a.B||(a.B=a.i.length);if(a.i.length!=a.B)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.G,b,a.B,a.N?1:jc)){var d;for(d=0;d<a.i.length;d++){var c=a.G,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.G,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.G,h=e.B,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
|
function gd(a){if(!rb(a))if(!a.I)C(a);else if(a.i&&a.F){a.A||(a.A=a.i.length);if(a.i.length!=a.A)sb(a,"ROM size ("+r(a.i.length,8,!0)+") does not match specified size ("+r(a.A,8,!0)+")");else{var b;b=a.J;if(Cb(a.F,b,a.A,a.N?1:ic)){var d;for(d=0;d<a.i.length;d++){var c=a.F,f=b+d;c.R[(f&c.i)>>>c.X].yb(f&c.F,a.i[d]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(d=0;d<b.length;d++){for(var e=a,c=b[d],f=e.F,h=e.A,g=[],k=e.J>>>f.X;0<h&&k<f.R.length;)g.push(f.R[k++]),
|
||||||
h-=f.za;f=e.G;e=e.B;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.za}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new bd(c);db(c,d)}});function ed(a){u.call(this,"RAM",a,ed);this.F=a.addr;this.B=a.size;this.i=!1}w(ed);m=ed.prototype;m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
|
h-=f.Aa;f=e.F;e=e.A;h=0;for(c>>>=f.X;0<e&&c<f.R.length;){k=g[h++];if(!k)break;f.R[c++]=k;e-=f.Aa}}delete a.i}}C(a)}}Qa(function(){for(var a=A(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function hd(a){u.call(this,"RAM",a,hd);this.G=a.addr;this.A=a.size;this.i=!1}w(hd);m=hd.prototype;m.Xa=function(a,b,d,c){this.F=b;this.f=d;this.H=c;C(this)};m.Na=function(a,b){b||this.reset();return!0};m.Ma=function(a){return a?this.save():!0};
|
||||||
m.reset=function(){!this.i&&this.B&&Cb(this.G,this.F,this.B,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new ed(c);db(c,d)}});function fd(a){u.call(this,"Keyboard",a,fd,65536);C(this)}w(fd);fd.prototype.ta=function(){return!1};fd.prototype.Wa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
|
m.reset=function(){!this.i&&this.A&&Cb(this.F,this.G,this.A,1)&&(this.i=!0);this.i||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=A(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new hd(c);db(c,d)}});function id(a){u.call(this,"Keyboard",a,id,65536);C(this)}w(id);id.prototype.ua=function(){return!1};id.prototype.Xa=function(a,b,d,c){this.i=a;this.f=d;this.H=c;this.da=null};
|
||||||
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new fd(c);db(c,d)}});function gd(a){u.call(this,"Debugger",a,gd);this.va=a.base||16;this.Z=this.Ja=this.P=0;this.aa=!1;this.I=-1;this.F=[];this.fa={}}w(gd);var hd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
Qa(function(){for(var a=A(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new id(c);db(c,d)}});function jd(a){u.call(this,"Debugger",a,jd);this.wa=a.base||16;this.$=this.Ja=this.P=0;this.da=!1;this.I=-1;this.G=[];this.ga={}}w(jd);var kd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||||
function id(a,b,d,c){if(d)if(b){0>a.I&&a.F.length&&(a.I=0);if(0>a.I||b!=a.F[a.I])a.F.splice(0,0,b),a.I=0;a.I--}else a.aa?b="end":b=a.F[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(qa(b.substring(d,e))),d=e+1}}return a}
|
function ld(a,b,d,c){if(d)if(b){0>a.I&&a.G.length&&(a.I=0);if(0>a.I||b!=a.G[a.I])a.G.splice(0,0,b),a.I=0;a.I--}else a.da?b="end":b=a.G[a.I+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");d=0;var f=null;c=c||";";for(var e=0;e<=b.length;e++){var h=b.charAt(e);if('"'==h||"'"==h)f?h==f&&(f=null):f=h;else if(h==c&&!f||!h)a.push(qa(b.substring(d,e))),d=e+1}}return a}
|
||||||
function jd(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
|
function md(a,b,d){for(d=d||-1;d--&&b.length;){var c=b.pop();if(2>a.length)return!1;var f=a.pop(),e=a.pop();switch(c){case "*":c=e*f;break;case "/":if(!f)return!1;c=e/f;break;case "%":if(!f)return!1;c=e%f;break;case "+":c=e+f;break;case "-":c=e-f;break;case "<<":c=e<<f;break;case ">>":c=e>>f;break;case ">>>":c=e>>>f;break;case "<":c=e<f?1:0;break;case "<=":c=e<=f?1:0;break;case ">":c=e>f?1:0;break;case ">=":c=e>=f?1:0;break;case "==":c=e==f?1:0;break;case "!=":c=e!=f?1:0;break;case "&":c=e&f;break;
|
||||||
case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0}
|
case "^":c=e^f;break;case "|":c=e|f;break;case "&&":c=e&&f?1:0;break;case "||":c=e||f?1:0;break;default:return!1}a.push(c|0)}return!0}
|
||||||
function kd(a,b,d){var c;if(b){b=ld(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=qa(n);if(!n){e=!0;break}n=md(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&hd[n]<hd[k[k.length-1]]&&jd(g,k,1);k.push(n);b=b.substr(p+q)}jd(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&nd(a,null,
|
function nd(a,b,d){var c;if(b){b=od(a,b);for(var f=0,e=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);f<l.length;){var n=l[f++],p=n.length,n=qa(n);if(!n){e=!0;break}n=pd(a,n,null,!1===d);if(void 0===n){e=!0;d=!1;break}g.push(n);if(f==l.length)break;var n=l[f++],q=n.length;k.length&&kd[n]<kd[k[k.length-1]]&&md(g,k,1);k.push(n);b=b.substr(p+q)}md(g,k)&&1==g.length||(e=!0);e?d&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(c=g.pop(),d&&qd(a,null,
|
||||||
c))}return c}function ld(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=kd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.Z-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
|
c))}return c}function od(a,b){for(var d;(d=b.match(/\{(.*?)}/))&&!(0<=d[1].indexOf("{"));){var c=nd(a,d[1]);b=b.replace("{"+d[1]+"}",null!=c?r(c):"undefined")}for(;(d=b.match(/\[(.*?)]/))&&!(0<=d[1].indexOf("["));)b=b.replace("["+d[1]+"]","unimplemented");for(d=b;c=d.match(/\$([a-z]+)/i);){var f=null;switch(c[1].toLowerCase()){case "ops":f=a.$-a.Ja}if(null==f)break;d=d.replace(c[0],f.toString())}return d}
|
||||||
function md(a,b,d,c){var f;null!=b?(f=a.fa[b],null==f&&(f=aa(b,a.va)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function nd(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
|
function pd(a,b,d,c){var f;null!=b?(f=a.ga[b],null==f&&(f=aa(b,a.wa)),null!=f||c||a.g("invalid "+(d?d:"value")+": "+b)):c||a.g("missing "+(d||"value"));return f}function qd(a,b,d){var c,f=!1;if(void 0!==d){f=!0;c=d;var e=0,h="";if(!e||4<e)e=4;for(var g=0;g<e;g++){h&&(h=","+h);var k=c&255,l=8,n="";l?32<l&&(l=32):l=32;if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+h;c>>=8}c=r(d,0,!0)+" "+d+". "+ba(d,0,!0)+" "+("0b"+h)}a.g((null!=b?b+": ":"")+c);return f}
|
||||||
function od(a,b){if(b)return nd(a,b,a.fa[b]);var d=0;for(b in a.fa)nd(a,b,a.fa[b]),d++;return 0<d}function X(a,b,d){switch(a.va){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
|
function rd(a,b){if(b)return qd(a,b,a.ga[b]);var d=0;for(b in a.ga)qd(a,b,a.ga[b]),d++;return 0<d}function X(a,b,d){switch(a.wa){case 8:return ba(b,d);case 10:return b.toString();default:return r(b,d)}}
|
||||||
function pd(a){gd.call(this,a);this.V=Y();this.zb=Y();this.$=Y();this.N=[];this.B=this.W=this.J=[];qd(this);this.xa=0;rd(this);this.Ra=[];sd(this,a.messages);this.lb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return td(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return td(b,a)})}w(pd,gd);
|
function sd(a){jd.call(this,a);this.V=Y();this.zb=Y();this.aa=Y();this.N=[];this.A=this.Y=this.J=[];td(this);this.ya=0;ud(this);this.Sa=[];vd(this,a.messages);this.mb=a.commands;var b=this;window?void 0===window.pdp11&&(window.pdp11=function(a){return wd(b,a)}):void 0===global.pdp11&&(global.pdp11=function(a){return wd(b,a)})}w(sd,jd);
|
||||||
var ud={"?":"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",v:"print version","var":"assign variable"},vd="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
var xd={"?":"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",v:"print version","var":"assign variable"},yd="NONE ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||||
wd={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
|
zd={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
|
||||||
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
|
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
|
||||||
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=pd.prototype;
|
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=sd.prototype;
|
||||||
m.Wa=function(a,b,d,c){this.G=b;this.f=d;this.i=a;(a=wc(a,"messages"))&&sd(this,a);this.qc=wd;xd(this,function(a){a:{var b=c.G.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(yd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.G.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.G.X,8)+" %%"+r(n.C,8)+" "+r(n.Tb,4,
|
m.Xa=function(a,b,d,c){this.F=b;this.f=d;this.i=a;(a=vc(a,"messages"))&&vd(this,a);this.rc=zd;Ad(this,function(a){a:{var b=c.F.R,d=a[0],g=a=0,k=b.length;if(d){a=Z(Bd(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.F.X;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.F.X,8)+" %%"+r(n.C,8)+" "+r(n.Ub,4,
|
||||||
!0)+" "+r(n.size,4,!0)+" "+l),d!=ic&&(d=-1),l=0);a+=c.G.za;g++}}});C(this)};
|
!0)+" "+r(n.size,4,!0)+" "+l),d!=hc&&(d=-1),l=0);a+=c.F.Aa;g++}}});C(this)};
|
||||||
m.ta=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ua=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",td(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.F.length-1&&(b=c.F[++c.I])):40==a.keyCode&&(0<c.I?b=c.F[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Ka(d,function(){if(c.ua){var a=c.ua.value;
|
m.ua=function(a,b,d){var c=this;switch(b){case "debugInput":return this.va=this.O[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",wd(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.I<c.G.length-1&&(b=c.G[++c.I])):40==a.keyCode&&(0<c.I?b=c.G[--c.I]:(b="",c.I=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.O[b]=d,Fa(d,function(){if(c.va){var a=c.va.value;
|
||||||
c.ua.value="";td(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(fb(c,!0),b=c.vb(a?1:0),fb(c,!1));return b}),!0}return!1};m.Sb=function(){this.ua&&this.ua.focus()};function Z(a){a=a&&a.C;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.G,d=d.R[(c&d.i)>>>d.X].Ob(c&d.G,c),b&&zd(a,b));return d};m.Ga=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.G,c),b&&zd(a,b));return d};
|
c.va.value="";wd(c,a,!0);return!0}return!1}),!0;case "step":return this.O[b]=d,Fa(d,function(a){var b=!1;gb(c,!0)||(fb(c,!0),b=c.wb(a?1:0),fb(c,!1));return b}),!0}return!1};m.Tb=function(){this.va&&this.va.focus()};function Z(a){a=a&&a.C;null==a&&(a=-1);return a}m.Hb=function(a,b){var d=255,c=Z(a);-1!==c&&(d=this.F,d=d.R[(c&d.i)>>>d.X].Ob(c&d.F,c),b&&Cd(a,b));return d};m.Ha=function(a,b){var d=65535,c=Z(a);-1!==c&&(d=Gb(this.F,c),b&&Cd(a,b));return d};
|
||||||
m.ac=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G;f.R[(c&f.i)>>>f.X].yb(c&f.G,b&255,c);d&&zd(a,d);M(this.f,!0)}};m.ic=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.G,e=c&f.G,h=(c&f.i)>>>f.X;e!=f.G?f.R[h].kc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.B].yb(0,b>>8&255,c+1));d&&zd(a,d);M(this.f,!0)}};function Y(a){return{C:a,Fa:!1}}function Ad(a){return[a.C,a.Fa]}function Bd(a){return{C:a[0],Fa:a[1]}}
|
m.bc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.F;f.R[(c&f.i)>>>f.X].yb(c&f.F,b&255,c);d&&Cd(a,d);yc(this.f,!0)}};m.jc=function(a,b,d){var c=Z(a);if(-1!==c){var f=this.F,e=c&f.F,h=(c&f.i)>>>f.X;e!=f.F?f.R[h].lc(e,b&65535,c):(f.R[h++].yb(e,b&255,c),f.R[h&f.A].yb(0,b>>8&255,c+1));d&&Cd(a,d);yc(this.f,!0)}};function Y(a){return{C:a,Ga:!1}}function Dd(a){return[a.C,a.Ga]}function Ed(a){return{C:a[0],Ga:a[1]}}
|
||||||
function yd(a,b,d){var c;d=(d?a.V:a.zb).C;if(void 0!==b){c=b=ld(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=kd(a,b,void 0)}null!=d&&(c=Y(d));return c}function Cd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Fc=id(a,b.Ac=d[2]))}function zd(a,b){null!=a.C&&(a.C+=b||1)}
|
function Bd(a,b,d){var c;d=(d?a.V:a.zb).C;if(void 0!==b){c=b=od(a,b);var f;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.N.length;d++){var e=a.N[d].Ka[c];if(void 0!==e){c=e.o;void 0!==c&&(f=Y(c));break}}if(c=f)return c;d=nd(a,b,void 0)}null!=d&&(c=Y(d));return c}function ce(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Gc=ld(a,b.Bc=d[2]))}function Cd(a,b){null!=a.C&&(a.C+=b||1)}
|
||||||
function sd(a,b){a.H=a;a.ha=a.Gc=536870912;a.ya=null;a.Da=[];var d=id(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function xd(a,b){for(var d in F)if(64==F[d]){a.Ra[d]=b;break}}
|
function vd(a,b){a.H=a;a.ha=a.Hc=536870912;a.za=null;a.Ea=[];var d=ld(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var f;a:if(f=void 0,Array.prototype.indexOf)f=d.indexOf(c,f);else{f=f||0;0>f&&(f+=d.length);0>f&&(f=0);for(var e=d.length;f<e;f++)if(f in d&&d[f]===c)break a;f=-1}0<=f&&(a.ha|=F[c],a.g(c+" messages enabled"))}}function Ad(a,b){for(var d in F)if(64==F[d]){a.Sa[d]=b;break}}
|
||||||
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).C));if(this.ha&1073741824)this.Da.push(a);else if(!this.ya||a!=this.ya)if(this.ya=a,this.ha&-2147483648&&(this.la(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Rc(d);d.$=0;M(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.wa();if(this.lb){var a=this.lb;this.lb=null;td(this,a)}};
|
m.message=function(a,b){b&&(a+=" at "+X(this,Y(this.f.b[7]).C));if(this.ha&1073741824)this.Ea.push(a);else if(!this.za||a!=this.za)if(this.za=a,this.ha&-2147483648&&(this.ma(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Rc(d);d.$=0;yc(d)}};m.Ib=function(){this.g("Type ? for help with PDP11 Debugger commands");this.xa();if(this.mb){var a=this.mb;this.mb=null;wd(this,a)}};
|
||||||
function rd(a){var b;if($c(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.qa=0;a.g("instruction history buffer allocated")}if(!a.ga||!a.ga.length)for(a.ga=Array(256),b=0;b<a.ga.length;b++)a.ga[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.qa=0,a.T=[],a.ga=[]}m.kb=function(a){if(!Dd(this))return!1;this.f.kb(a);return!0};
|
function ud(a){var b;if(bd(a)){if(!a.T||!a.T.length){a.T=Array(1E3);for(b=0;b<a.T.length;b++)a.T[b]=Y();a.ra=0;a.g("instruction history buffer allocated")}if(!a.ja||!a.ja.length)for(a.ja=Array(256),b=0;b<a.ja.length;b++)a.ja[b]=[b,0]}else a.T&&a.T.length&&a.g("instruction history buffer freed"),a.ra=0,a.T=[],a.ja=[]}m.lb=function(a){if(!de(this))return!1;this.f.lb(a);return!0};
|
||||||
m.vb=function(a,b,d){if(!Dd(this))return!1;this.P=0;a||$c(this)&&ad(this,this.f.b[7],0);try{var c=this.f.vb(a);0<c&&(this.P+=c,Pc(this.f,c,!0),Lc(this.f,c),this.Z++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&M(this.f);this.wa(b||!1);return 0<this.P};m.la=function(a){this.f&&this.f.la(a)};m.wa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.da?be(this):ce(this)};
|
m.wb=function(a,b,d){if(!de(this))return!1;this.P=0;a||bd(this)&&cd(this,this.f.b[7],0);try{var c=this.f.wb(a);0<c&&(this.P+=c,Pc(this.f,c,!0),zc(this.f,c),this.$++)}catch(f){"number"!=typeof f&&(this.P=0,sb(this.f,f.stack||f.message))}!1!==d&&yc(this.f);this.xa(b||!1);return 0<this.P};m.ma=function(a){this.f&&this.f.ma(a)};m.xa=function(a){void 0===a&&(a=!0);this.V=Y(this.f.b[7]);a&&1!=this.ea?ee(this):fe(this)};
|
||||||
function Dd(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.ea?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){rd(this);this.Z=this.Ja=0;this.ya=null;this.P=0;this.V=Y(this.f.b[7]);this.A.ia=!1;de(this);a||this.wa()};
|
function de(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.w.fa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!gb(a.f)?(a=a.f,a.w.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Na=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Ma=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){ud(this);this.$=this.Ja=0;this.za=null;this.P=0;this.V=Y(this.f.b[7]);this.w.ia=!1;ge(this);a||this.xa()};
|
||||||
m.save=function(){var a=new Uc(this);N(a,0,Ad(this.V));N(a,1,Ad(this.$));N(a,2,[this.F,this.aa,this.ha]);N(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Bd(a[b++]),this.$=Bd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.aa=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.da||this.g("running");this.A.ia=!0;this.Jc=a;this.Lc=b};
|
m.save=function(){var a=new Vc(this);M(a,0,Dd(this.V));M(a,1,Dd(this.aa));M(a,2,[this.G,this.da,this.ha]);M(a,3,this.N);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.V=Ed(a[b++]),this.aa=Ed(a[b++]),this.G=a[b][0],"string"==typeof this.G&&(this.G=[this.G]),this.da=a[b][1],this.ha|=a[b][2]);a[3]&&(this.N=a[3]);return!0};m.start=function(a,b){this.ea||this.g("running");this.w.ia=!0;this.Kc=a;this.Mc=b};
|
||||||
m.stop=function(a,b){if(this.A.ia){this.A.ia=!1;this.P=b-this.Lc;if(!this.da){var d="stopped";if(this.P){var c=a-this.Jc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";$c(this)&&(d+=this.Z+" opcodes, ",this.Ja-=this.Z,this.Z=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.wa(!0);this.Sb();de(this,this.f.b[7])}};function $c(a){return 1<a.B.length||!!a.xa}
|
m.stop=function(a,b){if(this.w.ia){this.w.ia=!1;this.P=b-this.Mc;if(!this.ea){var d="stopped";if(this.P){var c=a-this.Kc,f=0<c?Math.round(1E3*this.P/c):0,d=d+" (";bd(this)&&(d+=this.$+" opcodes, ",this.Ja-=this.$,this.$=0);d+=this.P+" cycles, "+c+" ms, "+f+" hz)"}else eb(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.xa(!0);this.Tb();ge(this,this.f.b[7])}};function bd(a){return 1<a.A.length||!!a.ya}
|
||||||
function ad(a,b,d){var c=a.f;if(0<d&&(a.xa&&!--a.xa||rc(a,b,1,a.B)))return!0;0<=d&&a.ga.length&&(a.Z++,null!=Gb(a.G,b)&&(b=a.T[a.qa],b.C=c.b[7],b.Fa=!1,++a.qa==a.T.length&&(a.qa=0)));return!1}function qd(a){var b,d;a.B=["bp"];if(void 0!==a.W)for(b=1;b<a.W.length;b++){d=a.W[b];var c=a.G;sc(c.R[Z(d)>>>c.X],!1)}a.W=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.G,sc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
|
function cd(a,b,d){var c=a.f;if(0<d&&(a.ya&&!--a.ya||qc(a,b,1,a.A)))return!0;0<=d&&a.ja.length&&(a.$++,null!=Gb(a.F,b)&&(b=a.T[a.ra],b.C=c.b[7],b.Ga=!1,++a.ra==a.T.length&&(a.ra=0)));return!1}function td(a){var b,d;a.A=["bp"];if(void 0!==a.Y)for(b=1;b<a.Y.length;b++){d=a.Y[b];var c=a.F;rc(c.R[Z(d)>>>c.X],!1)}a.Y=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.F,rc(c.R[Z(d)>>>c.X],!0);a.J=["bw"];a.Eb=0}
|
||||||
m.cb=function(a,b,d){var c=!0;d||ee(this,a,b,!1,!0);if(a!=this.B){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.C)),c=!1;else{var e=this.G;e.R[f>>>e.X].cb(f&e.G,a==this.J)}}c&&(a.push(b),d?b.Fa=!0:(fe(this,a,a.length-1,"set"),rd(this)));return c};function ee(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Fa)){e=!0;g.Fa||f||fe(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.G,sc(c.R[d>>>c.X],b==a.J));g.Fa||rd(a);break}}return e}
|
m.eb=function(a,b,d){var c=!0;d||he(this,a,b,!1,!0);if(a!=this.A){var f=Z(b);if(-1===f)this.g("invalid address: "+X(this,b.C)),c=!1;else{var e=this.F;e.R[f>>>e.X].eb(f&e.F,a==this.J)}}c&&(a.push(b),d?b.Ga=!0:(ie(this,a,a.length-1,"set"),ud(this)));return c};function he(a,b,d,c,f){var e=!1;d=Z(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Z(g)&&(!c||g.Ga)){e=!0;g.Ga||f||ie(a,b,h,"cleared");b.splice(h,1);b!=a.A&&(c=a.F,rc(c.R[d>>>c.X],b==a.J));g.Ga||ud(a);break}}return e}
|
||||||
function ge(a,b){for(var d=1;d<b.length;d++)fe(a,b,d);return b.length-1}function fe(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.C)+(c?" "+c:d.Ac?' "'+d.Ac+'"':""))}function de(a,b){if(void 0!==b)rc(a,b,1,a.B,!0),a.da=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.Fa){if(!ee(a,a.B,c,!0))break;d=0}}}
|
function je(a,b){for(var d=1;d<b.length;d++)ie(a,b,d);return b.length-1}function ie(a,b,d,c){d=b[d];a.g(b[0]+" "+X(a,d.C)+(c?" "+c:d.Bc?' "'+d.Bc+'"':""))}function ge(a,b){if(void 0!==b)qc(a,b,1,a.A,!0),a.ea=0;else for(var d=1;d<a.A.length;d++){var c=a.A[d];if(c.Ga){if(!he(a,a.A,c,!0))break;d=0}}}
|
||||||
function rc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Fa)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Fa&&(ee(a,c,g,!0),f=!0);if(n=g.Fc){for(var e=!1,p=0;p<n.length;p++)if(!he(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.A.ia||(e=!0)}if(e){f||fe(a,c,h,"hit");break}}}a.Eb--;return e}
|
function qc(a,b,d,c,f){var e=!1;if(!a.Eb++)for(var h=1;!e&&h<c.length;h++){var g=c[h];if(!f||g.Ga)for(var k=Z(g),l=0;l<d;l++)if(b+l==k){var n,e=!0;g.Ga&&(he(a,c,g,!0),f=!0);if(n=g.Gc){for(var e=!1,p=0;p<n.length;p++)if(!ke(a,n[p],!0)){if(n[p].indexOf("if")){e=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){e=!0;break}}a.f.w.ia||(e=!0)}if(e){f||ie(a,c,h,"hit");break}}}a.Eb--;return e}
|
||||||
function ie(a,b,d,c){var f=Y(b.C),e=a.Ga(b,2),h,g;for(g in a.qc)if(h=a.qc[g][e&g])break;h||(h=[0]);g="";for(var k=vd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.C+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.C-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch((y&56)>>3){case 0:x=je(B);break;
|
function le(a,b,d,c){var f=Y(b.C),e=a.Ha(b,2),h,g;for(g in a.rc)if(h=a.rc[g][e&g])break;h||(h=[0]);g="";for(var k=yd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var D=p,p=b,x="",y=void 0,y=void 0,y=D&61440;if(4096==y)y=(e&255)<<24>>23,y=p.C+y&65535,x=X(q,y);else if(8192==y)y=(e&63)<<1,y=p.C-y&65535,x=X(q,y);else if(12288==y)y=e&7,x=X(q,y,2);else if(24576==y)y=e&63,x=X(q,y);else if(y=e&D,D&4032&&(y>>=6,D>>=6),D&63){var D=void 0,B=y&7;switch(y&56){case 0:x=me(B);break;case 8:x=
|
||||||
case 1:x="@"+je(B);break;case 2:7>B?x="("+je(B)+")+":(D=q.Ga(p,2),x="#"+X(q,D));break;case 3:7>B?x="@("+je(B)+")+":(D=q.Ga(p,2),x="@#"+X(q,D));break;case 4:x="-("+je(B)+")";break;case 5:x="@-("+je(B)+")";break;case 6:D=q.Ga(p,2);x=X(q,D)+"("+je(B)+")";7==B&&(x=[x,X(q,D+p.C&65535)]);break;case 7:D=q.Ga(p,2),x="@"+X(q,D)+"("+je(B)+")",7==B&&(x=[x,X(q,D+p.C&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.C)+":";
|
"@"+me(B);break;case 16:7>B?x="("+me(B)+")+":(D=q.Ha(p,2),x="#"+X(q,D));break;case 24:7>B?x="@("+me(B)+")+":(D=q.Ha(p,2),x="@#"+X(q,D));break;case 32:x="-("+me(B)+")";break;case 40:x="@-("+me(B)+")";break;case 48:D=q.Ha(p,2);x=X(q,D)+"("+me(B)+")";7==B&&(x=[x,X(q,D+p.C&65535)]);break;case 56:D=q.Ha(p,2),x="@"+X(q,D)+"("+me(B)+")",7==B&&(x=[x,X(q,D+p.C&65535)])}}q=x;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}e="";h=X(a,f.C)+":";if(-1!==
|
||||||
if(-1!==f.C&&-1!==b.C){do if(e+=" "+X(a,a.Ga(f,2)),null==f.C)break;while(f.C!=b.C)}h+=pa(e,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.nb?h+("cycles="+Mc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ke(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
|
f.C&&-1!==b.C){do if(e+=" "+X(a,a.Ha(f,2)),null==f.C)break;while(f.C!=b.C)}h+=na(e,24);h+=na(k,5);g&&(h+=" "+g);d&&(h=na(h,60)+";"+d,h=a.f.w.ob?h+("cycles="+Mc(a.f).toString()+" cs="+r(a.f.Lb)):h+(null!=c?"="+c.toString():""));return h}function ne(a,b){var d;switch(b){case "N":d=a.f.j&32768?8:0;break;case "Z":d=a.f.B&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.D&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}function me(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||||
function je(a){return 6>a?"R"+a:6==a?"SP":"PC"}function le(a,b){var d="",c=a.f;8>b?(d=je(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Ya[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.ra[b-16]):20==b&&(d="PS="+X(a,Vb(c)));d&&(d+=" ");return d}function me(a){var b,d="";for(b=0;6>b;b++)d+=le(a,b);d=d+"\n"+(le(a,6)+le(a,7)+le(a,20));return d+=ke(a,"T")+ke(a,"N")+ke(a,"Z")+ke(a,"V")+ke(a,"C")}m.pc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
function oe(a,b){var d="",c=a.f;8>b?(d=me(b),d+="="+X(a,c.b[b])):13>b?d="A"+(b-8)+"="+X(a,c.Za[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+X(a,c.sa[b-16]):20==b&&(d="PS="+X(a,Vb(c)));d&&(d+=" ");return d}function pe(a){var b,d="";for(b=0;6>b;b++)d+=oe(a,b);d=d+"\n"+(oe(a,6)+oe(a,7)+oe(a,20));return d+=ne(a,"T")+ne(a,"N")+ne(a,"Z")+ne(a,"V")+ne(a,"C")}m.qc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||||
function ne(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.C>>>0,g=e.Pc;if(f>=h&&f<h+g){f=ra(e.mc,[f-h],a.pc);0<=f?oe(a,b,f,c):d&&(f=~f,oe(a,b,f-1,c),oe(a,b,f,c));break}}return c}function oe(a,b,d,c){var f={},e=a.N[b].mc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
|
function qe(a,b,d){var c=[],f=Z(b)>>>0;for(b=0;b<a.N.length;b++){var e=a.N[b],h=e.C>>>0,g=e.Qc;if(f>=h&&f<h+g){f=ra(e.nc,[f-h],a.qc);0<=f?re(a,b,f,c):d&&(f=~f,re(a,b,f-1,c),re(a,b,f,c));break}}return c}function re(a,b,d,c){var f={},e=a.N[b].nc,h=0,g=null;0<=d&&d<e.length&&(h=e[d][0],g=e[d][1]);g&&(f=a.N[b].Ka[g],g="."==g.charAt(0)?null:f.l||g);c.push(g);c.push(h);c.push(f.a);c.push(f.c)}
|
||||||
function pe(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return od(a)||a.g("no variables"),!0;if(!d[2])return od(a,d[1]);if(!d[3])return delete a.fa[d[1]],!0;var c=kd(a,d[3]);return void 0!==c?(a.fa[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
|
function se(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return rd(a)||a.g("no variables"),!0;if(!d[2])return rd(a,d[1]);if(!d[3])return delete a.ga[d[1]],!0;var c=nd(a,d[3]);return void 0!==c?(a.ga[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||||
function qe(a,b,d){var c=null;if(b=yd(a,b,!0)){var f=ne(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.C-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.C)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
|
function te(a,b,d){var c=null;if(b=Bd(a,b,!0)){var f=qe(a,b,!0);if(f.length){var e,h;f[0]&&(h="",(e=b.C-f[1])&&(h=" + "+r(e,4,!0)),e=f[0]+" ("+X(a,f[1])+")"+h,d&&a.g(e),c=e);4<f.length&&f[4]&&(h="",(e=f[5]-b.C)&&(h=" - "+r(e,4,!0)),e=f[4]+" ("+X(a,f[5])+")"+h,d&&a.g(e),c||(c=e))}else d&&a.g("no symbols")}return c}
|
||||||
function be(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=kd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.u=
|
function ee(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var f=b[1],e=null,h=f.indexOf("=");if(0<h)e=f.substr(h+1),f=f.substr(0,h);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=nd(a,e);if(void 0!==g)switch(h=!0,f.toUpperCase()){case "PC":c.b[7]=g;a.V=Y(c.b[7]);break;case "NF":c.j=g?32768:0;break;case "ZF":c.B=g?0:1;break;case "VF":c.u=
|
||||||
g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}M(c);a.g("updated registers:")}a.g(me(a));d&&(a.V=Y(c.b[7]),ce(a,X(a,a.V.C)))}}function re(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):kd(a,b,!0)}function se(a,b,d){var c="t"!=b;d=md(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return fb(a,!0)&&a.vb(f,c,!1)},function(){M(a.f);fb(a,!1)})}
|
g?32768:0;break;case "CF":c.D=g?65536:0;break;default:a.g("unknown register: "+f);return}if(!h){a.g("invalid value: "+e);return}yc(c);a.g("updated registers:")}a.g(pe(a));d&&(a.V=Y(c.b[7]),fe(a,X(a,a.V.C)))}}function ue(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):nd(a,b,!0)}function ve(a,b,d){var c="t"!=b;d=pd(a,d,null,!0)||1;var f=1==d?0:1;"tc"==b&&(f=d,d=1);Ea(d,function(){return fb(a,!0)&&a.wb(f,c,!1)},function(){yc(a.f);fb(a,!1)})}
|
||||||
function ce(a,b,d,c){if(b=yd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=yd(a,d,!0);if(!c||c.C<b.C)return;f=c.C-b.C;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=qb(a,!1)||a.da?a.P:null;var h=null!=e?"cycles":null,g=ne(a,b),k=b.C;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=ie(a,b,h,e);a.g(e);a.V=b;f-=b.C-k;d++}}}
|
function fe(a,b,d,c){if(b=Bd(a,b,!0)){void 0===c&&(c=1);var f=256;if(void 0!==d){c=Bd(a,d,!0);if(!c||c.C<b.C)return;f=c.C-b.C;if(256<f){a.g("range too large");return}c=-1}d=0;for(var e;0<f&&c--;){e=gb(a,!1)||a.ea?a.P:null;var h=null!=e?"cycles":null,g=qe(a,b),k=b.C;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],e=null);e=le(a,b,h,e);a.g(e);a.V=b;f-=b.C-k;d++}}}
|
||||||
function he(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.aa&&(a.g("ended assemble at "+X(a,a.$.C)),a.V=a.$,a.aa=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.ya=null;if(rb(a)&&0<b.length){a.aa&&(b="a "+X(a,a.$.C)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=yd(a,e[1],!0);if(n)if(a.$=
|
function ke(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.da&&(a.g("ended assemble at "+X(a,a.aa.C)),a.V=a.aa,a.da=!1),b="");var f=b.charAt(0);if('"'==f||"'"==f)return!0;a.za=null;if(rb(a)&&0<b.length){a.da&&(b="a "+X(a,a.aa.C)+" "+b);var e=b.replace(/ +/g," ").split(" ");if(e&&e.length)for(var h=e[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){e[0]=h.substr(k);e.unshift(h.substr(0,k));break}}switch(e[0].charAt(0)){case "a":var n=Bd(a,e[1],!0);
|
||||||
n,void 0===e[2])a.g("begin assemble at "+X(a,n.C)),a.aa=!0,M(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.ac(n,p[q],1);a.g(ie(a,a.$))}}break;case "b":a:{var D=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
|
if(n)if(a.aa=n,void 0===e[2])a.g("begin assemble at "+X(a,n.C)),a.da=!0,yc(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.bc(n,p[q],1);a.g(le(a,a.aa))}}break;case "b":a:{var D=e[0],x=e[1],y=b;if("?"==x)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
|
||||||
else{var B=D.charAt(1);if("l"==B){var Fa=0,Fa=Fa+ge(a,a.B),Fa=Fa+ge(a,a.W);(Fa+=ge(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.xa=md(a,x),a.g("break after "+a.xa+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=yd(a,x,!0),!V))break a;"c"==B?null==V.C?(qd(a),a.g("all breakpoints cleared")):ee(a,a.B,V)||ee(a,a.W,V)||ee(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.C)):null!=V.C&&(Cd(a,V,y),"p"==B?a.cb(a.B,V):"r"==B?a.cb(a.W,V):"w"==B?a.cb(a.J,V):
|
else{var B=D.charAt(1);if("l"==B){var Ga=0,Ga=Ga+je(a,a.A),Ga=Ga+je(a,a.Y);(Ga+=je(a,a.J))||a.g("no breakpoints")}else if("n"==B)a.ya=pd(a,x),a.g("break after "+a.ya+" instruction(s)");else if(void 0===x)a.g("missing breakpoint address");else{var V=Y();if("*"!=x&&(V=Bd(a,x,!0),!V))break a;"c"==B?null==V.C?(td(a),a.g("all breakpoints cleared")):he(a,a.A,V)||he(a,a.Y,V)||he(a,a.J,V)||a.g("breakpoint missing: "+X(a,V.C)):null!=V.C&&(ce(a,V,y),"p"==B?a.eb(a.A,V):"r"==B?a.eb(a.Y,V):"w"==B?a.eb(a.J,V):
|
||||||
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.eb&&(a.eb.value="");break;case "d":a:{var Ga,Ha=e[0],da=e[1],ta=e[2],Me=e[3];if("?"==da){var ea="";for(Ga in F)a.Ra[Ga]&&(ea&&(ea+=","),ea+=Ga);ea+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ea.length&&a.g("dump extension commands:\n\t"+
|
a.g("unknown breakpoint command: "+B))}}}break;case "c":a.fb&&(a.fb.value="");break;case "d":a:{var Ha,Ia=e[0],ea=e[1],ua=e[2],Pe=e[3];if("?"==ea){var fa="";for(Ha in F)a.Sa[Ha]&&(fa&&(fa+=","),fa+=Ha);fa+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");fa.length&&a.g("dump extension commands:\n\t"+
|
||||||
ea)}else if("state"==da){var Ed=te(a.i,!0);"console"==ta?console.log(Ed):(a.eb&&(a.eb.value=""),a.g(Ed))}else if("symbols"==da)for(var yc=0;yc<a.N.length;yc++){var zc=a.N[yc],Ia;for(Ia in zc.Ka)if("."!=Ia.charAt(0)){var Fd=zc.Ka[Ia].o;if(void 0!==Fd){var Gd=zc.Ka[Ia].l;Gd&&(Ia=Gd);a.g(X(a,Fd)+" "+Ia)}}}else{if("d"==Ha){for(Ga in F)if(e[1]==Ga){var Hd=a.Ra[Ga];Hd?(e.shift(),e.shift(),Hd(e)):a.g("no dump registered for "+da);break a}da||(Ha=a.Nc||"db")}else a.Nc=Ha;if("dh"==Ha){var Id=da,Jd=ta,Kd="",
|
fa)}else if("state"==ea){var Fd=we(a.i,!0);"console"==ua?console.log(Fd):(a.fb&&(a.fb.value=""),a.g(Fd))}else if("symbols"==ea)for(var Ac=0;Ac<a.N.length;Ac++){var Bc=a.N[Ac],Ja;for(Ja in Bc.Ka)if("."!=Ja.charAt(0)){var Gd=Bc.Ka[Ja].o;if(void 0!==Gd){var Hd=Bc.Ka[Ja].l;Hd&&(Ja=Hd);a.g(X(a,Gd)+" "+Ja)}}}else{if("d"==Ia){for(Ha in F)if(e[1]==Ha){var Id=a.Sa[Ha];Id?(e.shift(),e.shift(),Id(e)):a.g("no dump registered for "+ea);break a}ea||(Ia=a.Oc||"db")}else a.Oc=Ia;if("dh"==Ia){var Jd=ea,Kd=ua,Ld="",
|
||||||
Ld=0,O=a.qa,fa=a.T;if(fa.length){var W=+Id||a.Ub,Ja=+Jd||10;isNaN(W)?W=Ja:Kd="more ";W>fa.length&&(a.g("note: only "+fa.length+" available"),W=fa.length);O-=W;0>O&&(null==fa[fa.length-1].C?(W=O+W,O=0):O+=fa.length);var Ac=[];"call"==Jd&&(Ja=1E5,Ac=["CALL"]);for(void 0!==Id&&a.g(W+" instructions earlier:");0<Ja&&O!=a.qa;){var Md=fa[O++];if(null==Md.C)break;var gb=Y(Md.C),Ne=W--,Nd=ie(a,gb,"history",Ne);(!Ac.length||0<=Nd.indexOf(Ac[0]))&&a.g(Nd);gb.dc&&(O+=gb.dc,Ja-=gb.dc,W-=gb.dc);O>=fa.length&&(O=
|
Md=0,O=a.ra,ga=a.T;if(ga.length){var W=+Jd||a.Vb,Ka=+Kd||10;isNaN(W)?W=Ka:Ld="more ";W>ga.length&&(a.g("note: only "+ga.length+" available"),W=ga.length);O-=W;0>O&&(null==ga[ga.length-1].C?(W=O+W,O=0):O+=ga.length);var Cc=[];"call"==Kd&&(Ka=1E5,Cc=["CALL"]);for(void 0!==Jd&&a.g(W+" instructions earlier:");0<Ka&&O!=a.ra;){var Nd=ga[O++];if(null==Nd.C)break;var hb=Y(Nd.C),Qe=W--,Od=le(a,hb,"history",Qe);(!Cc.length||0<=Od.indexOf(Cc[0]))&&a.g(Od);hb.ec&&(O+=hb.ec,Ka-=hb.ec,W-=hb.ec);O>=ga.length&&(O=
|
||||||
0);a.Ub=W;Ld++;Ja--}}Ld||(a.g("no "+Kd+"history available"),a.Ub=void 0)}else{var Jb=yd(a,da);if(Jb){var Kb=0;ta&&("l"==ta.charAt(0)&&(ta=ta.substr(1)||Me),Kb=md(a,ta)>>>0,65536<Kb&&(Kb=65536));for(var ua="",Lb="dd"==Ha?4:"dw"==Ha?2:1,Mb=Lb*Kb||128,Oe=Mb+15>>4||1;Oe--&&0<Mb;){var Nb=0,Bc=0,hb,ib="",Cc="",da=X(a,Jb.C);for(hb=16;0<hb&&0<Mb;hb--){var Ob=a.Hb(Jb,1),Nb=Nb|Ob<<(Bc++<<3);Bc==Lb&&(ib+=r(Nb,2*Lb),ib+=1==Lb?9==hb?"-":" ":" ",Nb=Bc=0);Cc+=32<=Ob&&128>Ob?String.fromCharCode(Ob):".";Mb--}ua&&
|
0);a.Vb=W;Md++;Ka--}}Md||(a.g("no "+Ld+"history available"),a.Vb=void 0)}else{var Kb=Bd(a,ea);if(Kb){var Lb=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Pe),Lb=pd(a,ua)>>>0,65536<Lb&&(Lb=65536));for(var va="",Mb="dd"==Ia?4:"dw"==Ia?2:1,Nb=Mb*Lb||128,Re=Nb+15>>4||1;Re--&&0<Nb;){var Ob=0,Dc=0,ib,jb="",Ec="",ea=X(a,Kb.C);for(ib=16;0<ib&&0<Nb;ib--){var Pb=a.Hb(Kb,1),Ob=Ob|Pb<<(Dc++<<3);Dc==Mb&&(jb+=r(Ob,2*Mb),jb+=1==Mb?9==ib?"-":" ":" ",Ob=Dc=0);Ec+=32<=Pb&&128>Pb?String.fromCharCode(Pb):".";Nb--}va&&
|
||||||
(ua+="\n");ua+=da+" "+ib+(0==hb?" "+Cc:"")}ua&&a.g(ua);a.zb=Jb}}}}break;case "e":if("else"==e[0])break;var Pb=1,Od=255,Pd=a.Hb,Qd=a.ac;"ew"==e[0]&&(Pb=2,Od=65535,Pd=a.Ga,Qd=a.ic);var Rd=Pb<<1,Sd=e[1];if(null==Sd)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Qb=yd(a,Sd);if(Qb)for(var Rb=2;Rb<e.length;Rb++){var jb=kd(a,e[Rb]);if(void 0===jb){a.g("unrecognized value: "+e[Rb]);break}jb&~Od&&a.g("warning: "+r(jb)+" exceeds "+
|
(va+="\n");va+=ea+" "+jb+(0==ib?" "+Ec:"")}va&&a.g(va);a.zb=Kb}}}}break;case "e":if("else"==e[0])break;var Qb=1,Pd=255,Qd=a.Hb,Rd=a.bc;"ew"==e[0]&&(Qb=2,Pd=65535,Qd=a.Ha,Rd=a.jc);var Sd=Qb<<1,Td=e[1];if(null==Td)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Rb=Bd(a,Td);if(Rb)for(var Sb=2;Sb<e.length;Sb++){var kb=nd(a,e[Sb]);if(void 0===kb){a.g("unrecognized value: "+e[Sb]);break}kb&~Pd&&a.g("warning: "+r(kb)+" exceeds "+
|
||||||
Pb+"-byte value");var Pe=Pd.call(a,Qb);a.g("changing "+X(a,Qb.C)+" from "+r(Pe,Rd,!0)+" to "+r(jb,Rd,!0));Qd.call(a,Qb,jb,Pb)}}break;case "g":a:{var Td=e[1],Qe=b;if(void 0!==Td){var Dc=yd(a,Td,!0);if(!Dc)break a;Cd(a,Dc,Qe);a.cb(a.B,Dc,!0)}a.kb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Ec;if(a.A.ia)Ec="halting",a.la();else{if(qb(a,!0))break a;Ec="already halted"}d||a.g(Ec)}break;case "i":if("if"==e[0]){var Fc;var kb=b.substr(2),kb=qa(kb);kd(a,kb)?(d||a.g("true: "+
|
Qb+"-byte value");var Se=Qd.call(a,Rb);a.g("changing "+X(a,Rb.C)+" from "+r(Se,Sd,!0)+" to "+r(kb,Sd,!0));Rd.call(a,Rb,kb,Qb)}}break;case "g":a:{var Ud=e[1],Te=b;if(void 0!==Ud){var Fc=Bd(a,Ud,!0);if(!Fc)break a;ce(a,Fc,Te);a.eb(a.A,Fc,!0)}a.lb(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Gc;if(a.w.ia)Gc="halting",a.ma();else{if(gb(a,!0))break a;Gc="already halted"}d||a.g(Gc)}break;case "i":if("if"==e[0]){var Hc;var lb=b.substr(2),lb=qa(lb);nd(a,lb)?(d||a.g("true: "+
|
||||||
kb),Fc=!0):(d||a.g("false: "+kb),Fc=!1);Fc||(c=!1)}break;case "k":var Re=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Gc=0,Ud=Y(),lb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,lb.C));10>Gc;){for(var va=null,Se=256;65536>lb.C>>>0;){Ud.C=a.Ga(lb,2);if(null==lb.C||!Se--)break;for(var Te=a,Sb=Ud,Vd=null,mb=Sb.C,Wd=mb,Hc=1;6>=Hc&&mb;Hc++){if(2<Hc){Sb.C=mb;var Tb=ie(Te,Sb);if(0<=Tb.indexOf("JSR")){var Xd=Tb.indexOf(" ");if(mb+
|
lb),Hc=!0):(d||a.g("false: "+lb),Hc=!1);Hc||(c=!1)}break;case "k":var Ue=e[0];if("?"==e[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ic=0,Vd=Y(),mb=Y(a.f.b[6]);for(a.g("stack trace for "+X(a,mb.C));10>Ic;){for(var wa=null,Ve=256;65536>mb.C>>>0;){Vd.C=a.Ha(mb,2);if(null==mb.C||!Ve--)break;for(var We=a,Tb=Vd,Wd=null,nb=Tb.C,Xd=nb,Jc=1;6>=Jc&&nb;Jc++){if(2<Jc){Tb.C=nb;var Ub=le(We,Tb);if(0<=Ub.indexOf("JSR")){var Yd=Ub.indexOf(" ");if(nb+
|
||||||
(Tb.indexOf(" ",Xd+1)-Xd-1)/2==Wd){Vd=Tb;break}}}mb--}Sb.C=Wd;if(va=Vd)break}if(!va||null==va)break;var Yd=null;if("ks"==Re){var Zd=va.match(/[0-9A-F]+$/);Zd&&(Yd=qe(a,Zd[0]))}va=pa(va,50)+" ;"+(Yd||"stack="+X(a,lb.C));a.g(va);Gc++}Gc||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){qe(a,e[1],!0);break}break;case "m":a:{var ga,ha=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var na=0;if("all"==E)na=1878917119,E=null;else if("on"==E)ha=!0,E=null;else if("off"==E)ha=!1,E=null;else{"keys"==
|
(Ub.indexOf(" ",Yd+1)-Yd-1)/2==Xd){Wd=Ub;break}}}nb--}Tb.C=Xd;if(wa=Wd)break}if(!wa||null==wa)break;var Zd=null;if("ks"==Ue){var $d=wa.match(/[0-9A-F]+$/);$d&&(Zd=te(a,$d[0]))}wa=na(wa,50)+" ;"+(Zd||"stack="+X(a,mb.C));a.g(wa);Ic++}Ic||a.g("no return addresses found")}break;case "l":if("ln"==e[0]){te(a,e[1],!0);break}break;case "m":a:{var ha,ia=null,E=e[1];"?"==E&&(E=void 0);if(void 0!==E){var oa=0;if("all"==E)oa=1878917119,E=null;else if("on"==E)ia=!0,E=null;else if("off"==E)ia=!1,E=null;else{"keys"==
|
||||||
E&&(E="key");"kbd"==E&&(E="keyboard");for(ga in F)if(E==ga){na=F[ga];ha=!!(a.ha&na);break}if(!na){a.g("unknown message category: "+E);break a}}if(na)if("on"==e[2])a.ha|=na,ha=!0;else if("off"==e[2]&&(a.ha&=~na,ha=!1,1073741824==na)){for(var Ic=0;Ic<a.Da.length;Ic++)a.g(a.Da[Ic]);a.Da=[]}}var Ue=0,oa="";for(ga in F)if(!E||E==ga){var Ve=!!(a.ha&F[ga]);if(null===ha||ha==Ve)oa&&(oa+=","),++Ue%10||(oa+="\n\t"),"key"==ga&&(ga="keys"),oa+=ga}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
E&&(E="key");"kbd"==E&&(E="keyboard");for(ha in F)if(E==ha){oa=F[ha];ia=!!(a.ha&oa);break}if(!oa){a.g("unknown message category: "+E);break a}}if(oa)if("on"==e[2])a.ha|=oa,ia=!0;else if("off"==e[2]&&(a.ha&=~oa,ia=!1,1073741824==oa)){for(var Kc=0;Kc<a.Ea.length;Kc++)a.g(a.Ea[Kc]);a.Ea=[]}}var Xe=0,pa="";for(ha in F)if(!E||E==ha){var Ye=!!(a.ha&F[ha]);if(null===ia||ia==Ye)pa&&(pa+=","),++Xe%10||(pa+="\n\t"),"key"==ha&&(ha="keys"),pa+=ha}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||||
a.g((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(oa||"none"));rd(a)}break;case "p":if("print"==e[0]){re(a,b.substr(5));break}var We="pr"==e[0]?1:0;if(a.da)a.g("step in progress");else{var $d=Y(a.f.b[7]);a.Hb($d);a.da?(a.cb(a.B,$d,!0),a.kb()||(a.i&&a.i.Sb(),a.da=0)):se(a,We?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}be(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var nb=+e[2];if(8==nb||10==nb||16==nb)a.va=nb;else{a.g("invalid base: "+nb);
|
a.g((null!==ia?ia?"messages on: ":"messages off: ":"message categories:\n\t")+(pa||"none"));ud(a)}break;case "p":if("print"==e[0]){ue(a,b.substr(5));break}var Ze="pr"==e[0]?1:0;if(a.ea)a.g("step in progress");else{var ae=Y(a.f.b[7]);a.Hb(ae);a.ea?(a.eb(a.A,ae,!0),a.lb()||(a.i&&a.i.Tb(),a.ea=0)):ve(a,Ze?"tr":"t")}break;case "r":if("reset"==b){a.i&&a.i.reset();break}ee(a,e);break;case "s":a:switch(e[1]){case "base":if(e[2]){var ob=+e[2];if(8==ob||10==ob||16==ob)a.wa=ob;else{a.g("invalid base: "+ob);
|
||||||
break}}a.g("default base: "+a.va);break;case "cs":var ob;void 0!==e[3]&&(ob=+e[3]);switch(e[2]){case "int":a.f.pb=ob;break;case "start":a.f.Mb=ob;break;case "stop":a.f.qb=ob;break;default:a.g("unknown cs option");break a}void 0!==ob&&Kc(a.f);a.g("checksums "+(a.f.A.nb?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Oc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.gb.toFixed(2)+"Mhz")+" ("+a.f.ib+"x)");break;case "?":a.g("debugger options:");
|
break}}a.g("default base: "+a.wa);break;case "cs":var pb;void 0!==e[3]&&(pb=+e[3]);switch(e[2]){case "int":a.f.qb=pb;break;case "start":a.f.Mb=pb;break;case "stop":a.f.rb=pb;break;default:a.g("unknown cs option");break a}void 0!==pb&&xc(a.f);a.g("checksums "+(a.f.w.ob?"enabled":"disabled"));break;case "sp":void 0!==e[2]&&(Oc(a.f,+e[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.hb.toFixed(2)+"Mhz")+" ("+a.f.jb+"x)");break;case "?":a.g("debugger options:");
|
||||||
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":se(a,e[0],e[1]);break;case "u":ce(a,e[1],e[2],8);break;case "v":if("var"==e[0]){pe(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.uc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
|
a.g("\tbase #\t\tset default base to #");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:e[1]&&a.g("unknown option: "+e[1])}break;case "t":ve(a,e[0],e[1]);break;case "u":fe(a,e[1],e[2],8);break;case "v":if("var"==e[0]){se(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.vc+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||||
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){re(a,b.substr(1));break}var pb="commands:",Jc;for(Jc in ud)pb+="\n"+pa(Jc,9)+ud[Jc];$c(a)||(pb+="\nnote: history disabled if no exec breakpoints");a.g(pb);break;default:a.g("unknown command: "+b),c=!1}}}catch(ae){a.g("debugger error: "+(ae.stack||ae.message)),c=!1}return c}function td(a,b,d){b=id(a,b,d);for(var c in b)if(!he(a,b[c]))return!1;return!0}
|
")");a.g(window?window.navigator.userAgent:"");break;case "?":if(e[1]){ue(a,b.substr(1));break}var qb="commands:",Lc;for(Lc in xd)qb+="\n"+na(Lc,9)+xd[Lc];bd(a)||(qb+="\nnote: history disabled if no exec breakpoints");a.g(qb);break;default:a.g("unknown command: "+b),c=!1}}}catch(be){a.g("debugger error: "+(be.stack||be.message)),c=!1}return c}function wd(a,b,d){b=ld(a,b,d);for(var c in b)if(!ke(a,b[c]))return!1;return!0}
|
||||||
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new pd(c);db(c,d)}});
|
Qa(function(){for(var a=A(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=z(d),c=new sd(c);db(c,d)}});
|
||||||
function ue(a,b,d){u.call(this,"Computer",a,ue,67108864);this.A.ea=!1;ve(this,b);this.W=wc(this,"autoPower",a);this.F=0;this.fa=a.busWidth||a.buswidth;this.i=we;this.T=null;this.N=this.aa=!1;this.url=wc(this,"url")||"";(Math.random()+.1).toString(36);this.B=xe(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.G=new wb({id:this.nc+".bus",busWidth:this.fa},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.eb)for(b=0;b<f.length;b++)c=f[b],c.na=this.I.na,c.g=
|
function xe(a,b,d){u.call(this,"Computer",a,xe,67108864);this.w.fa=!1;ye(this,b);this.Y=vc(this,"autoPower",a);this.G=0;this.ga=a.busWidth||a.buswidth;this.i=ze;this.T=null;this.N=this.da=!1;this.url=vc(this,"url")||"";(Math.random()+.1).toString(36);this.A=Ae(this);if(this.f=cb("CPU",this.id)){this.H=cb("Debugger",this.id);this.F=new wb({id:this.oc+".bus",busWidth:this.ga},this.f,this.H);var c,f=bb(this.id);if((this.I=cb("Panel",this.id))&&this.I.fb)for(b=0;b<f.length;b++)c=f[b],c.oa=this.I.oa,c.g=
|
||||||
this.I.g,c.eb=this.I.eb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Wa&&c.Wa(this,this.G,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=wc(this,"state")||(e=!0,a.state))b=this.Z=a,e||(this.N=!0,this.i=we),this.i&&
|
this.I.g,c.fb=this.I.fb;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)c=f[b],c.Xa&&c.Xa(this,this.F,this.f,this.H);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.P=c:this.i=parseInt(c,10));var e;if(a=vc(this,"state")||(e=!0,a.state))b=this.$=a,e||(this.N=!0,this.i=ze),this.i&&
|
||||||
(this.V=new Uc(this,"1.30.0"),ye(this.V)?b=null:delete this.V);!b&&this.i&&(b=ze(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.na("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.aa=!0);C(h)})}else C(this);this.O.power||(this.W=!0);!d&&this.W&&Ae(this,this.Nb)}else t("Unable to find CPU component")}w(ue);var we=0;
|
(this.V=new Vc(this,"1.30.0"),Be(this.V)?b=null:delete this.V);!b&&this.i&&(b=Ce(this))&&(this.N=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.P=null,h.N=!1,h.oa("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.T=b,h.da=!0);C(h)})}else C(this);this.O.power||(this.Y=!0);!d&&this.Y&&De(this,this.Nb)}else t("Unable to find CPU component")}w(xe);var ze=0;
|
||||||
function ve(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.da=b}function wc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.da&&(c=a.da[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function Ae(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){Ae(a,b,d)});return}}b.call(a,d)}
|
function ye(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.ea=b}function vc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.ea&&(c=a.ea[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function De(a,b,d){for(var c=bb(a.id),f=0;f<=c.length;f++){var e=f<c.length?c[f]:a;if(!rb(e)){rb(e,function(){De(a,b,d)});return}}b.call(a,d)}
|
||||||
function Be(a,b){var d=new Uc(a,"1.30.0","validate");if(ye(d)&&Ce(d)){var c=De(d,"timestamp"),f=b?De(b,"timestamp"):"unknown";c!=f&&(a.na("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=ue.prototype;
|
function Ee(a,b){var d=new Vc(a,"1.30.0","validate");if(Be(d)&&Fe(d)){var c=Ge(d,"timestamp"),f=b?Ge(b,"timestamp"):"unknown";c!=f&&(a.oa("Machine state may be out-of-date\n("+c+" vs. "+f+")\nCheck your browser's local storage limits"),b||d.clear())}}m=xe.prototype;
|
||||||
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:we));if(!this.F){this.F++;var b=!1,d=!1;this.$=!1;var c=this.V||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>we){if(ye(c,this.T)){this.J=new Uc(this,"1.30.0","failsafe");ye(this.J)&&(Ee(this,c),a=2,Fe(this.J));N(this.J,"timestamp",wa());Ge(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Ce(c)){var e=De(c,"code"),h=De(c,"data");e&&("ok"==e?ye(c,h):("error"==
|
m.Nb=function(a){void 0===a&&(a=this.i||(this.T?1:ze));if(!this.G){this.G++;var b=!1,d=!1;this.aa=!1;var c=this.V||new Vc(this,"1.30.0");if(-1==a)b=!0;else if(a>ze){if(Be(c,this.T)){this.J=new Vc(this,"1.30.0","failsafe");Be(this.J)&&(He(this,c),a=2,Ie(this.J));M(this.J,"timestamp",ta());Je(this.J);var f=this.i&&!this.N;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=Fe(c)){var e=Ge(c,"code"),h=Ge(c,"data");e&&("ok"==e?Be(c,h):("error"==
|
||||||
e&&"no machine state"!=h?(this.na("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(e+": "+h),Fe(c),ye(c)?(d=Ce(c),f=!0):d=!1))}f&&Be(this,d?c:null)}else 2==a&&c.clear()}else Be(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=He(this,h,c,b,d));b=[c,a,d];-1!=a?Ae(this,this.sc,b):this.sc(b)}};
|
e&&"no machine state"!=h?(this.oa("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.A=null)):this.g(e+": "+h),Ie(c),Be(c)?(d=Fe(c),f=!0):d=!1))}f&&Ee(this,d?c:null)}else 2==a&&c.clear()}else Ee(this);delete this.T;delete this.V}f=bb(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.f&&(d=Ke(this,h,c,b,d));b=[c,a,d];-1!=a?De(this,this.tc,b):this.tc(b)}};
|
||||||
function He(a,b,d,c,f){if(!b.A.ea){b.A.ea=!0;if(b.Na){var e=null;f&&((e=De(d,b.id))||(e=De(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.Z&&!a.aa?(d.clear(),a.i=we,window&&window.location.reload()):a.$=!0,b.Na(null),f=!1)}if(!c&&b.lc)for(a=b.lc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
|
function Ke(a,b,d,c,f){if(!b.w.fa){b.w.fa=!0;if(b.Na){var e=null;f&&((e=Ge(d,b.id))||(e=Ge(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Na(e,c)&&e&&(t("Unable to restore state for "+b.type),a.$&&!a.da?(d.clear(),a.i=ze,window&&window.location.reload()):a.aa=!0,b.Na(null),f=!1)}if(!c&&b.mc)for(a=b.mc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return f}
|
||||||
m.sc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ga=!0;this.A.ea=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(He(this,this.f,b,d,a),this.f.Db());this.$&&(Ee(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.F=0};
|
m.tc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ja=!0;this.w.fa=!0;var c=this.O.power;c&&(c.textContent="Shutdown");this.f&&(Ke(this,this.f,b,d,a),this.f.Db());this.aa&&(He(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.G=0};
|
||||||
function Ee(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function He(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.A||"",c=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=d;f.type="bug";f.data=c;xa("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function te(a,b,d){var c,f="none";if(a.F)return null;a.F--;var e=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=wa();N(h,"timestamp",g);N(e,"timestamp",g);N(e,"version","1.30.0");N(e,"url",window?window.location.href:null);N(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.la(),c=a.f.Ma(b,d),"object"===typeof c&&N(e,a.f.id,c),d&&(a.f.A.ea=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ea&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&N(e,l.id,c)),
|
function we(a,b,d){var c,f="none";if(a.G)return null;a.G--;var e=new Vc(a,"1.30.0"),h=new Vc(a,"1.30.0","validate"),g=ta();M(h,"timestamp",g);M(e,"timestamp",g);M(e,"version","1.30.0");M(e,"url",window?window.location.href:null);M(e,"browser",window?window.navigator.userAgent:"");a.f&&a.f.Ma&&(d&&a.f.ma(),c=a.f.Ma(b,d),"object"===typeof c&&M(e,a.f.id,c),d&&(a.f.w.fa=!1,!1===c&&(f=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.w.fa&&(l.Ma&&(c=l.Ma(b,d),"object"===typeof c&&M(e,l.id,c)),
|
||||||
d&&(l.A.ea=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.B&&Ie(a,a.B,e.toString()),Ge(h)&&Ge(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.A.ea=!1,b=a.O.power)&&(b.textContent="Power");a.F=0;return f}
|
d&&(l.w.fa=!1,!1===c&&(f=null)))}f&&(d?(g=c=!1,b?(a.A&&Le(a,a.A,e.toString()),Je(h)&&Je(e)||(f=null,c=g=!0)):a.i&&(c=!0,g=3==a.i),c&&e.clear(g)):f=e.toString());d&&(a.w.fa=!1,b=a.O.power)&&(b.textContent="Power");a.G=0;return f}
|
||||||
m.reset=function(){this.G&&this.G.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.G.type,void 0),this.G.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.G&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
m.reset=function(){this.F&&this.F.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+this.F.type,void 0),this.F.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.F&&d.reset&&(this.H&&eb(this,0)&&this.H.message("Resetting "+d.type,void 0),d.reset())}};m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||||
m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var f=d[c];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||||
m.ta=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.F||(c.A.ea?te(c,!1,!0):Ae(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.A.ea&&!c.F)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");te(c,a,!0);!a&&c.Z?window&&window.location.reload():c.Nb(we)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
|
m.ua=function(a,b,d){var c=this;switch(b){case "power":return this.O[b]=d,d.onclick=function(){c.G||(c.w.fa?we(c,!1,!0):De(c,c.Nb))},!0;case "reset":return this.O[b]=d,d.onclick=function(){if(c.w.fa&&!c.G)if(c.i&&!c.P){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");we(c,a,!0);!a&&c.$?window&&window.location.reload():c.Nb(ze)}else c.reset(),c.f&&c.f.Db()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.O[b]=
|
||||||
d;d.onclick=function(){var a=xe(c,!0);if(a){var b=!!(c.i&&!c.P||c.Z),d=te(c,b);b?Ie(c,a,d):c.na("Resume disabled, machine state not saved")}};return!0}return!1};
|
d;d.onclick=function(){var a=Ae(c,!0);if(a){var b=!!(c.i&&!c.P||c.$),d=we(c,b);b?Le(c,a,d):c.oa("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function xe(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),d&&((d=Je(a,d))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return d}
|
function Ae(a,b){var d=a.A;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),d&&((d=Me(a,d))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return d}
|
||||||
function Je(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(f){t(f.message+" ("+c+")")}return a.B}function ze(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+Ke(a,"1.30.0"));return b}
|
function Me(a,b){a.A=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.A=d.data)}catch(f){t(f.message+" ("+c+")")}return a.A}function Ce(a){var b=null;a.A&&(b=ka()+"/api/v1/user?req=load&user="+a.A+"&state="+Ne(a,"1.30.0"));return b}
|
||||||
function Ie(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ke(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.na("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.na(d),Ca("user",""),a.B=null)}}m.Sb=function(){};
|
function Le(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Ne(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var f=c.indexOf("\n");0<f&&(c=c.substr(0,f));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.oa("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.oa(d),Ca("user",""),a.A=null)}}m.Tb=function(){};
|
||||||
m.wa=function(a){this.f&&this.f.wa(a);this.I&&this.I.wa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new ue(h,c,!0);db(h,e);h.W&&Ae(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ga&&!d.A.ea&&d.Nb(-1)}});
|
m.xa=function(a){this.f&&this.f.xa(a);this.I&&this.I.xa(a)};Qa(function(){for(var a=A(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=z(d),d=A(d,"pdp11","computer"),f=0;f<d.length;f++){var e=d[f],h=z(e),h=new xe(h,c,!0);db(h,e);h.Y&&De(h,h.Nb)}});La.show.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.ja&&!d.w.fa&&d.Nb(-1)}});
|
||||||
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.A.ea&&te(d,!(!d.i||d.P),!0)}});function Uc(a,b,d){this.id=a.id;this.key=Ke(a,b,d);this.H=a.H;Fe(this,a.Mc)}function Ke(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
|
La.exit.push(function(){for(var a=A(document,"pdp11","computer"),b=0;b<a.length;b++){var d=z(a[b]);(d=cb("Computer",d.id))&&d.w.fa&&we(d,!(!d.i||d.P),!0)}});function Vc(a,b,d){this.id=a.id;this.key=Ne(a,b,d);this.H=a.H;Ie(this,a.Nc)}function Ne(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
|
||||||
Uc.prototype={constructor:Uc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Fe(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
|
Vc.prototype={constructor:Vc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Ie(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(f){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(f){}b.splice(d,1);d=0}}};
|
||||||
function Fe(a,b){a[a.id]={};b&&N(a,"parms",b);a.f=!1}function Ge(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Ce(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function ye(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function De(a,b){return a[a.id][b]||null}function N(a,b,d){try{a[a.id][b]=d}catch(c){}}var Le=0;
|
function Ie(a,b){a[a.id]={};b&&M(a,"parms",b);a.f=!1}function Je(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function Fe(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function Be(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function Ge(a,b){return a[a.id][b]||null}function M(a,b,d){try{a[a.id][b]=d}catch(c){}}var Oe=0;
|
||||||
function Xe(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):Ye(g,a,b,d,c,f,e)})}
|
function $e(a,b,d,c,f,e){f("Loading "+a+"...");xa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):af(g,a,b,d,c,f,e)})}
|
||||||
function Ye(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
function af(a,b,d,c,f,e,h){function g(a,e){if(e)h(e,null);else{if(d){ab(d,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{";c+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Ze(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?bf(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
function Ze(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
function bf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=c[2];b("Loading "+f+"...");xa(f,null,!0,function(e,h,g){if(g||!h)d(a,"unable to resolve XML reference: "+c[0]+" ("+g+")");else{if(e=c[3])if(g=h.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{d(a,"missing <"+c[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(c[0],h);Ze(a,b,d)}})}else d(a,null)}
|
"");a=a.replace(c[0],h);bf(a,b,d)}})}else d(a,null)}
|
||||||
function $e(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Le||Sa(!0));k=!1}var h,g,k=!0;Le++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
|
function cf(a,b,d,c){function f(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ma(a))}function e(a){f("Error: "+a);k&&(--Oe||Sa(!0));k=!1}var h,g,k=!0;Oe++;$a[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=l:p.appendChild(document.createTextNode(l));n.appendChild(p)}d||
|
||||||
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?Xe(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Le||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Le||Sa(!0)):e("invalid machine element: "+
|
(d="/versions/pdp11/1.30.0/components.xsl");l=function(c,g){g?$e(d,null,null,!1,f,function(c,k){if(k)if(ab(a,d,c),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--Oe||Sa(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--Oe||Sa(!0)):e("invalid machine element: "+
|
||||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?Xe(b,a,c,!0,f,l):Ye(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return $e(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();
|
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(c)}):e(c)};"<"!=b.charAt(0)?$e(b,a,c,!0,f,l):af(b,null,a,c,!1,f,l)}else e("missing machine element: "+a)}catch(q){e(q.message)}return k}window.embedPDP11=function(a,b,d,c){Sa(!1);return cf(a,b,d,c)};window.enableEvents=Sa;window.sendEvent=Ta;})();
|
||||||
|
|
|
||||||
|
|
@ -8,146 +8,145 @@ typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encod
|
||||||
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||||
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
|
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
|
||||||
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
|
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
|
||||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Gb=b.comment;this.bc=b;b=this.id.indexOf(".");0>b?this.tb=this.id:(this.Eb=this.id.substr(0,b),this.tb=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,xb:!1,L:!1,error:!1};this.lb=null;this.h.error=!1;this.A={};this.H=null;x.push(this)}var wa=void 0,xa={};
|
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Hb=b.comment;this.cc=b;b=this.id.indexOf(".");0>b?this.ub=this.id:(this.Fb=this.id.substr(0,b),this.ub=this.id.substr(b+1));this[a]=c;this.h={ready:!1,Za:!1,yb:!1,L:!1,error:!1};this.mb=null;this.h.error=!1;this.w={};this.I=null;x.push(this)}var wa=void 0,xa={};
|
||||||
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||||
function y(a,b){b||(b=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},x=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
function y(a,b){b||(b=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},x=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function z(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||||
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
||||||
function B(a,b){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=A(h))&&g.binding&&a.aa(g.type,g.binding,h,g.value),l=k.length}}}}
|
function B(a,b){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var h=f[e];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pdp11-binding":(g=A(h))&&g.binding&&a.ba(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||||
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},aa:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.yb=this.A[b]=c,c.value="",this.X=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ba:function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.zb=this.w[b]=c,c.value="",this.X=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||||
this.K=function(a){this.X(a,this.tb)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.tb+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.xb)return a.h.Za&&(a.h.Za=!1),a.h.xb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.lb;a.lb=null;b&&b()}}
|
this.K=function(a){this.X(a,this.ub)}),!0;default:return!1}},log:function(){},X:function(){},status:function(a){this.X(this.ub+": "+a)},K:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},ua:function(){return this.h.L=!0},ta:function(a,b){b&&(this.h.L=!1);return!0}};function Fa(a,b){if(a.h.yb)return a.h.Za&&(a.h.Za=!1),a.h.yb=!1;if(a.h.error)return a.X(a.toString()+" error"),!1;a.h.Za=b;return a.h.Za}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.mb;a.mb=null;b&&b()}}
|
||||||
function Ga(a,b){b&&(a.h.ready?b():a.lb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.aa=function(a,b,c,d){return this.s&&this.s.aa(a,b,c,d)||this.c&&this.c.aa(a,b,c,d)?!0:this.parent.aa.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.c=c;this.H=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=function(){};
|
function Ga(a,b){b&&(a.h.ready?b():a.mb=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}y(Ia);m=Ia.prototype;m.ba=function(a,b,c,d){return this.s&&this.s.ba(a,b,c,d)||this.c&&this.c.ba(a,b,c,d)?!0:this.parent.ba.call(this,a,b,c,d)};m.Ga=function(a,b,c,d){this.s=a;this.u=b;this.c=c;this.I=d};m.ua=function(a,b){b||Ja();return!0};m.ta=function(){return!0};m.Ka=function(){};
|
||||||
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===e){e=x[h];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}u(Ja);
|
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=A(d),e;a:{e=f.id;if(void 0!==e)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===e){e=x[h];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}u(Ja);
|
||||||
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.H=c;this.D=a.busWidth||16;this.s=Math.pow(2,this.D);this.v=this.s-1|0;this.f=(this.D>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.J=this.g>>2;this.i=this.g-1;this.j=this.s/this.g|0;this.M=this.j-1;this.oa=[];this.u=null;this.$a=this.P;a=new F;Ka(a,this.H);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=La;this.Wa[1]=Ma;this.Wa[2]=Na;this.Wa[3]=Oa;this.I=this.s-8192;Pa(this,this.I,
|
function E(a,b,c){v.call(this,"Bus",a,E);this.c=b;this.I=c;this.F=a.busWidth||16;this.s=Math.pow(2,this.F);this.u=this.s-1|0;this.f=(this.F>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.M=this.g>>2;this.i=this.g-1;this.j=this.s/this.g|0;this.N=this.j-1;this.oa=[];this.A=null;this.$a=this.R;a=new F;Ka(a,this.I);this.b=Array(this.j);for(b=0;b<this.j;b++)this.b[b]=a;this.Wa=Array(4);this.Wa[0]=La;this.Wa[1]=Ma;this.Wa[2]=Na;this.Wa[3]=Oa;this.J=this.s-8192;Pa(this,this.J,
|
||||||
8192,Qa,this);D(this)}y(E);function La(a,b){var c=this.controller.oa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.oa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.$a(b,-1,1)}
|
8192,Qa,this);D(this)}y(E);function La(a,b){var c=this.controller.oa[a];if(c){if(c[0])return c[0](b);if(c[2])return b&1?c[2](b&-2)>>8:c[2](b)&255}else if(b&1&&(c=this.controller.oa[a&-2],c[2]))return c[2](b&-2)>>8;return this.controller.$a(b,-1,1)}
|
||||||
function Ma(a,b,c){var d=this.controller.oa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.oa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.$a(c,b,1)}function Na(a,b){var c=this.controller.oa[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return this.controller.$a(b,-1,0)}
|
function Ma(a,b,c){var d=this.controller.oa[a];if(d){if(d[1]){d[1](b,c);return}if(d[3]){a=d[2]?d[2](c):0;if(c&1)d[3](a&255|b<<8,c&-2);else d[3](a&-256|b,c);return}}else if(c&1&&(d=this.controller.oa[a&-2],d[3])){c&=-2;a=d[2]?d[2](c):0;d[3](a&255|b<<8,c);return}this.controller.$a(c,b,1)}function Na(a,b){var c=this.controller.oa[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return this.controller.$a(b,-1,0)}
|
||||||
function Oa(a,b,c){if(a=this.controller.oa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}this.controller.$a(c,b,0)}E.prototype.reset=function(){this.u&&this.u()};E.prototype.P=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
|
function Oa(a,b,c){if(a=this.controller.oa[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}this.controller.$a(c,b,0)}E.prototype.reset=function(){this.A&&this.A()};E.prototype.R=function(){return 0};E.prototype.ua=function(a,b){b||this.reset();return!0};
|
||||||
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Pa)return k.rb+=k.Pa-e,k.Pa=e,!0;if(e>=k.Pa+k.rb){r=k.size-(e-l);r>h&&(r=h);k.rb=e-k.Pa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.H,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
|
function Pa(a,b,c,d,f){for(var e=b,h=c,g=e>>>a.f;0<h&&g<a.b.length;){var k=a.b[g],l=g*a.g,r=a.g-(e-l);r>h&&(r=h);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+h<=k.Qa)return k.sb+=k.Qa-e,k.Qa=e,!0;if(e>=k.Qa+k.sb){r=k.size-(e-l);r>h&&(r=h);k.sb=e-k.Qa+r;e=l+a.g;h-=r;g++;continue}}return Ra(1,e,h)}e=new F(e,r,a.g,d,f);Ka(e,a.I,k);a.b[g++]=e;e=l+a.g;h-=r}return 0>=h?(a.status(Math.floor(c/1024)+"Kb "+Sa[d]+" at "+n(b,8,!0)),!0):Ra(2,b,c)}
|
||||||
function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
|
function Ra(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
|
||||||
function G(a){v.call(this,"Device",a,G);this.u=a.name;this.s={Bb:[],fa:0,T:128,b:127,Zb:0};this.b={data:0,wc:0,Qa:20,sc:0};this.f={Ab:0,l:0};this.g={gb:2496,O:0,w:128,hb:0,fb:0,U:0,Pb:0,R:[],Ea:[406,406,406,406],C:[12,12,12,12]};this.i={l:129,Ya:0,G:0,sa:0,pa:0,wa:0,R:[],C:[40,40,40,40],Ea:[1024,1024,512,512],Xb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],C:[22,22,22,50],Da:[19,19,19,32],sb:[815,411,815,630],R:[],B:2176,Ta:0,Ra:0,$:[0,0,0,0,0,0,0,0],Z:0,S:[4544,4544,4544,4544,4544,4544,4544,
|
function G(a){v.call(this,"Device",a,G);this.A=a.name;this.s={Cb:[],ga:0,U:128,b:127,$b:0};this.b={data:0,xc:0,Ra:20,tc:0};this.f={Bb:0,l:0};this.g={gb:2496,P:0,v:128,hb:0,fb:0,V:0,Qb:0,S:[],Ea:[406,406,406,406],D:[12,12,12,12]};this.i={l:129,Ya:0,H:0,sa:0,pa:0,wa:0,S:[],D:[40,40,40,40],Ea:[1024,1024,512,512],Yb:[157,157,29,29]};this.j={c:[8210,8208,8210,8226],D:[22,22,22,50],Da:[19,19,19,32],tb:[815,411,815,630],S:[],B:2176,Ua:0,Sa:0,aa:[0,0,0,0,0,0,0,0],$:0,T:[4544,4544,4544,4544,4544,4544,4544,
|
||||||
4544],Sa:[0,0,0,0,0,0,0,0],Ja:0,qc:[0,0,0,0,0,0,0,0],Qb:0,Rb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],rc:[1,2,3,4,5,6,7,8],Sb:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],qb:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],mc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],va:0,Cb:0}}y(G);
|
4544],Ta:[0,0,0,0,0,0,0,0],Ja:0,rc:[0,0,0,0,0,0,0,0],Rb:0,Sb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],sc:[1,2,3,4,5,6,7,8],Tb:[0,0,0,0,0,0,0,0],ka:[0,0,0,0,0,0,0,0],rb:[0,0,0,0,0,0,0,0],pc:[0,0,0,0,0,0,0,0],qc:[0,0,0,0,0,0,0,0],nc:[0,0,0,0,0,0,0,0],oc:[0,0,0,0,0,0,0,0],va:0,Db:0}}y(G);
|
||||||
var Ta=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
var Ta=[4127,448,4191,450,4383,452,2591,454,21983,32768,65534,13791,16384,65534,770,2719,454,2591,65534,257,0,2566,33028,34051,33282,1281,33537,0,2758,32771,770,1025,1793,0,3078,33794,34305,513,0,5574,43690,4480,4097,4162,4227,4292,4357,57665,1281,769,0,3138,34305,1281,0,24707,2691,2627,24769,34561,1793,0,3076,20739,24899,2691,34562,2753,1281,0,2624,33537,0,16385,24641,1537,1793,0,193,8279,21589,516,12549,1538,2629,513,0,38336,65281,32769,0,32258,2561,2689,32258,3008,514,3009,769,0,5574,510,2551,
|
||||||
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
2,0,9678,208,769,0,5582,226,135,0,2598,5606,236,2,0,95,242,128,5573,57344,2591,6,5599,256,4,5574,510,3045,5599,460,76,2591,78,5571,65510,5579,12,5570,512,4224,4104,3024,8197,33788,4224,4609,8193,769,0,2640,8197,33785,6145,2625,8193,769,0,8194,761,2574,5572,43690,5579,24,5568,2048,5570,512,2628,4360,2632,2632,8708,769,0,3103,65514,34562,0,305,35406,754,258,119,65160,3024,32403,5579,36,5568,3072,35446,1,740,5570,512,4224,4104,3024,8197,33788,5569,3,2574,3039,454,528,5582,24,4224,2632,2632,8200,769,
|
||||||
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=G.prototype;
|
0,3024,3103,65514,34562,0,264,8197,33779,5003,2574,32337,260,0,258,5579,12,6080,448,6081,450,6084,452,116,2,6084,65400,17860,65024,21956,62976,38848,65401,3200,161,76,0,16944,10797];m=G.prototype;
|
||||||
m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;switch(this.u){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.I+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Wb.bind(this);b.u=this.reset.bind(this);b.$a=f}D(this)};m.hc=function(){return Va(this.c)};m.uc=function(a){Wa(this.c,a&-1809|Va(this.c)&1808)};
|
m.Ga=function(a,b,c,d){this.u=b;this.c=c;this.I=d;switch(this.A){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var h=e[0]?e[0].bind(this):null,g=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var r=l&8191;void 0!==c.oa[r]?q("I/O address already registered: "+n(c.J+r,8,!0)):c.oa[r]=[h,g,k,e,!1]}}f=this.Xb.bind(this);b.A=this.reset.bind(this);b.$a=f}D(this)};m.ic=function(){return Va(this.c)};
|
||||||
function Xa(a){var b=a.g,c,d,f,e=b.U>>13&7;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.jc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.C[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.gb=2496;b.O=0;b.w=128;b.U=0;break;case 1:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;Ya(a,b.R[e],c,d,f);return;case 2:if((b.U>>4&511)>=b.Ea[e]){b.O|=32832;
|
m.vc=function(a){Wa(this.c,a&-1809|Va(this.c)&1808);this.c.C|=128};
|
||||||
b.w|=49152;break}if((b.U&15)>=b.C[e]){b.O|=32800;b.w|=49152;break}c=(b.U>>4&511)*b.C[e]+(b.U&15);d=(b.w&48)<<12|b.fb;f=65536-b.hb&65535;a.pb(b.R[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.U%9&15;H(a.c,20,160,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}m.jc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.w=e.w&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.O|=33024;e.w|=49152;break;case 2:e.O|=33792,e.w|=49152}H(this.c,20,160,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
|
function Xa(a){var b=a.g,c,d,f,e=b.V>>13&7;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.kc,drive:e,blocksize:256,mapped:0,maxblock:b.Ea[e]*b.D[e],url:"rk"+e+".dsk"});b.v&=-129;switch(b.v>>1&7){case 0:b.gb=2496;b.P=0;b.v=128;b.V=0;break;case 1:if((b.V>>4&511)>=b.Ea[e]){b.P|=32832;b.v|=49152;break}if((b.V&15)>=b.D[e]){b.P|=32800;b.v|=49152;break}c=(b.V>>4&511)*b.D[e]+(b.V&15);d=(b.v&48)<<12|b.fb;f=65536-b.hb&65535;Ya(a,b.S[e],c,d,f);return;case 2:if((b.V>>4&511)>=b.Ea[e]){b.P|=32832;
|
||||||
function Za(a){var b=a.i,c,d,f,e=b.l>>8&3;b.l&=-2;"undefined"===typeof b.R[e]&&(b.R[e]={cache:[],postProcess:a.kc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.C[e],url:"rl"+e+".dsk"});switch(b.l>>1&7){case 2:b.sa&8&&(b.l&=63);b.sa=b.Xb[e]|b.wa&64;break;case 3:1==(b.G&3)&&(b.wa=b.G&4?b.wa+(b.G&65408)&65408|b.G<<2&64:b.wa-(b.G&65408)&65408|b.G<<2&64,b.G=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);
|
b.v|=49152;break}if((b.V&15)>=b.D[e]){b.P|=32800;b.v|=49152;break}c=(b.V>>4&511)*b.D[e]+(b.V&15);d=(b.v&48)<<12|b.fb;f=65536-b.hb&65535;a.qb(b.S[e],c,d,f);return}b.gb=e<<13|b.gb&8176|b.V%9&15;H(a.c,20,160,144,function(){b.v=b.v&65534|128;return!!(b.v&64)})}m.kc=function(a,b,c,d,f){var e=this.g;e.fb=d&65535;e.v=e.v&-49|d>>12&48;e.hb=65536-f&65535;switch(a){case 1:e.P|=33024;e.v|=49152;break;case 2:e.P|=33792,e.v|=49152}H(this.c,20,160,144,function(){e.v=e.v&65534|128;return!!(e.v&64)})};
|
||||||
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Ya(a,b.R[e],c,d,f);return;case 6:if(b.G>>6>=b.Ea[e]){b.l|=37888;break}if((b.G&63)>=b.C[e]){b.l|=37888;break}c=(b.G>>6)*b.C[e]+(b.G&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.pb(b.R[e],c,d,f);return}H(a.c,20,160,112,function(){b.l|=129;return!!(b.l&64)})}
|
function Za(a){var b=a.i,c,d,f,e=b.l>>8&3;b.l&=-2;"undefined"===typeof b.S[e]&&(b.S[e]={cache:[],postProcess:a.lc,drive:e,blocksize:128,mapped:1,maxblock:b.Ea[e]*b.D[e],url:"rl"+e+".dsk"});switch(b.l>>1&7){case 2:b.sa&8&&(b.l&=63);b.sa=b.Yb[e]|b.wa&64;break;case 3:1==(b.H&3)&&(b.wa=b.H&4?b.wa+(b.H&65408)&65408|b.H<<2&64:b.wa-(b.H&65408)&65408|b.H<<2&64,b.H=b.wa);break;case 4:b.sa=b.wa;break;case 5:if(b.H>>6>=b.Ea[e]){b.l|=37888;break}if((b.H&63)>=b.D[e]){b.l|=37888;break}c=(b.H>>6)*b.D[e]+(b.H&63);
|
||||||
m.kc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.l=e.l&-49|d>>12&48;e.pa=d>>16&63;e.G=~~(c/e.C[b.ia])<<6|c%e.C[b.ia];e.wa=e.G;e.sa=65536-f&65535;switch(a){case 1:e.l|=33792;break;case 2:e.l|=40960}H(this.c,20,160,112,function(){e.l|=129;return!!(e.l&64)})};function $a(a){a=a.j;a.B=2176;a.Z=0;a.S=[4544,4544,4544,4544,4544,4544,4544,4544];a.Sa=[0,0,0,0,0,0,0,0];a.Ja=a.Ta=a.Ra=a.va=a.Cb=0}
|
d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;Ya(a,b.S[e],c,d,f);return;case 6:if(b.H>>6>=b.Ea[e]){b.l|=37888;break}if((b.H&63)>=b.D[e]){b.l|=37888;break}c=(b.H>>6)*b.D[e]+(b.H&63);d=(b.pa&63)<<16|b.Ya;f=65536-b.sa&65535;a.qb(b.S[e],c,d,f);return}H(a.c,20,160,112,function(){b.l|=129;return!!(b.l&64)})}
|
||||||
function ab(a,b){var c=a.j,d,f,e;c.B&=-16513;c.Z&=-2049;c.S[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.R[b]&&(c.R[b]={cache:[],postProcess:a.lc,drive:b,blocksize:256,mapped:0,maxblock:c.sb[0]*c.Da[0]*c.C[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.qb[b]=c.ka[b];c.B|=32896;c.S[b]|=32896;c.Ja|=1<<b;break;case 9:$a(a);break;case 19:c.S[b]|=64;break;case 49:if(c.ka[b]>=c.sb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&
|
m.lc=function(a,b,c,d,f){var e=this.i;e.Ya=d&65535;e.l=e.l&-49|d>>12&48;e.pa=d>>16&63;e.H=~~(c/e.D[b.ia])<<6|c%e.D[b.ia];e.wa=e.H;e.sa=65536-f&65535;switch(a){case 1:e.l|=33792;break;case 2:e.l|=40960}H(this.c,20,160,112,function(){e.l|=129;return!!(e.l&64)})};function $a(a){a=a.j;a.B=2176;a.$=0;a.T=[4544,4544,4544,4544,4544,4544,4544,4544];a.Ta=[0,0,0,0,0,0,0,0];a.Ja=a.Ua=a.Sa=a.va=a.Db=0}
|
||||||
255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;Ya(a,c.R[b],d,f,e);return;case 57:if(c.ka[b]>=c.sb[0]||c.$[b]>>8>=c.Da[0]||(c.$[b]&255)>=c.C[0]){c.Sa[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.$[b]>>8))*c.C[0]+(c.$[b]&255);f=(c.va&63)<<16|c.Ra;e=65536-c.Ta&65535;a.pb(c.R[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.S[b]|=128;return!!(c.B&64)})}
|
function ab(a,b){var c=a.j,d,f,e;c.B&=-16513;c.$&=-2049;c.T[b]&=-1153;H(a.c,-1,0,172);"undefined"===typeof c.S[b]&&(c.S[b]={cache:[],postProcess:a.mc,drive:b,blocksize:256,mapped:0,maxblock:c.tb[0]*c.Da[0]*c.D[0],url:"rp"+b+".dsk"});switch(c.B&63){case 5:c.rb[b]=c.ka[b];c.B|=32896;c.T[b]|=32896;c.Ja|=1<<b;break;case 9:$a(a);break;case 19:c.T[b]|=64;break;case 49:if(c.ka[b]>=c.tb[0]||c.aa[b]>>8>=c.Da[0]||(c.aa[b]&255)>=c.D[0]){c.Ta[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.aa[b]>>8))*c.D[0]+
|
||||||
m.lc=function(a,b,c,d,f){var e=this.j;e.Ta=65536-f&65535;e.Ra=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.C[0]);d=~~(f/e.Da[0]);e.$[b.ia]=f%e.Da[0]<<8|c%e.C[0];e.qb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.fc-1&&(e.S[b.ia]|=1024);switch(a){case 1:e.Z|=512;e.B|=49152;break;case 2:e.Z|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.S[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.dc=function(){this.f.l|=128;this.f.l&64&&H(this.c,0,192,64)};
|
(c.aa[b]&255);f=(c.va&63)<<16|c.Sa;e=65536-c.Ua&65535;Ya(a,c.S[b],d,f,e);return;case 57:if(c.ka[b]>=c.tb[0]||c.aa[b]>>8>=c.Da[0]||(c.aa[b]&255)>=c.D[0]){c.Ta[b]|=1024;c.B|=49152;break}d=(c.ka[b]*c.Da[0]+(c.aa[b]>>8))*c.D[0]+(c.aa[b]&255);f=(c.va&63)<<16|c.Sa;e=65536-c.Ua&65535;a.qb(c.S[b],d,f,e);return}H(a.c,3,160,172,function(){c.B=c.B&65534|128;c.T[b]|=128;return!!(c.B&64)})}
|
||||||
function bb(a,b){var c=b>>13&31;31>c?a.c.ha&32&&(b=a.c.Ua[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&cb(898)):b|=4186112;return b}
|
m.mc=function(a,b,c,d,f){var e=this.j;e.Ua=65536-f&65535;e.Sa=d&65535;e.B=e.B&-769|d>>8&768;e.va=d>>16&63;f=~~(c/e.D[0]);d=~~(f/e.Da[0]);e.aa[b.ia]=f%e.Da[0]<<8|c%e.D[0];e.rb[b.ia]=e.ka[b.ia]=d;e.Ja|=1<<b.ia;c>=b.gc-1&&(e.T[b.ia]|=1024);switch(a){case 1:e.$|=512;e.B|=49152;break;case 2:e.$|=2048,e.B|=49152}H(this.c,20,160,172,function(){e.T[b.ia]|=128;e.B=e.B&65534|128;return!!(e.B&64)})};m.ec=function(){this.f.l|=128;this.f.l&64&&H(this.c,0,192,64)};
|
||||||
function db(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.fc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.ob(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
|
function bb(a,b,c,d,f,e){var h=~~((e+c.qa-1)/c.qa),g=new XMLHttpRequest;2048>h&&d+2048<c.gc&&(h=2048);g.open("GET",c.url,!0);g.setRequestHeader("Range","bytes="+(d*c.qa<<1)+"-"+(((d+h)*c.qa<<1)-1));g.responseType="arraybuffer";g.onreadystatechange=function(){if(4==g.readyState){var h=b.bind(a),l,r,w,K;l=g.response;if(0!=g.status&&206!=g.status||!l)c.pb(1,c,d,f,e);else{l=new Uint8Array(l);r=d;for(K=0;K<l.length;){if("undefined"===typeof c.cache[r])for(c.cache[r]=[],w=0;w<c.qa;w++)c.cache[r][w]=K<l.length?
|
||||||
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.pb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){db(this,this.pb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.ec?bb(this,c):c,a.cache[b][f])){a.ob(2,a,b,c,d);return}c+=2;--d}b++}a.ob(0,a,b,c,d)};
|
l[K]&255|l[K+1]<<8&65280:0,K+=2;else K+=c.qa<<1;r++}h(c,d,f,e)}}};g.send(null)}function I(a,b,c,d,f){if(c&1){if(!f)return J(a.c,4,122);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}m.qb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){bb(this,this.qb,a,b,c,d);return}for(f=0;f<a.qa&&0<d;f++){if(0>L(this.c,a.fc?cb(this.c,c):c,a.cache[b][f])){a.pb(2,a,b,c,d);return}c+=2;--d}b++}a.pb(0,a,b,c,d)};
|
||||||
function Ya(a,b,c,d,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){h=M(a.c,b.ec?bb(a,d):d);if(0>h){b.ob(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.ob(0,b,c,d,f)}m.reset=function(){this.b.Qa=this.b.Qa&-120|20;this.s.fa=0;this.s.T=128;this.f.l=0;this.g.w=128;this.i.l=128;$a(this)};
|
function Ya(a,b,c,d,f){for(var e,h;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.qa;e++)b.cache[c][e]=0;for(e=0;e<b.qa&&0<f;e++){h=M(a.c,b.fc?cb(a.c,d):d);if(0>h){b.pb(2,b,c,d,f);return}b.cache[c][e]=h;d+=2;--f}c++}b.pb(0,b,c,d,f)}m.reset=function(){this.b.Ra=this.b.Ra&-120|20;this.s.ga=0;this.s.U=128;this.f.l=0;this.g.v=128;this.i.l=128;$a(this)};
|
||||||
m.Wb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.nb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.nb=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Fa)return J(e,4);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4);d=0;break;case 4194288:if(70!==e.Fa)return J(e,4);d=61183;break;case 4194296:0<=b&&!(a&1)&&(b&=
|
m.Xb=function(a,b,c){var d,f,e=this.c;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.la&65280:(a&1&&(b<<=8),e.la=b|255,d=0);break;case 4194298:if(0>b)d=e.ob;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.ob=d;e.ja=2}break;case 4194294:if(70!==e.Fa)return J(e,4,222);0>b?d=e.m:d=e.m=0;break;case 4194292:if(70!==e.Fa)return J(e,4,224);d=1;break;case 4194290:if(70!==e.Fa)return J(e,4,226);d=0;break;case 4194288:if(70!==e.Fa)return J(e,4,228);d=61183;break;case 4194296:0<=
|
||||||
255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Fa)return J(e,4);f=a-4194272>>1;0>b?d=e.zb[f]:(d=I(this,e.zb[f],a,b,c),0<=d&&(e.zb[f]=d));break;case 4194254:return a&1?e.o>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.o&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=e.Ia[f]),d;case 4194246:return a&
|
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Fa)return J(e,4,232);f=a-4194272>>1;0>b?d=e.Ab[f]:(d=I(this,e.Ab[f],a,b,c),0<=d&&(e.Ab[f]=d));break;case 4194254:return a&1?e.o>>14&1?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[3]=b),d=e.Y[3]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[1]=b),d=e.Y[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.o&2048?(0<=b&&(e.a[f]=b),d=e.a[f]):(0<=b&&(e.Ia[f]=b),d=
|
||||||
1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.o&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.m|=16,J(e,4)}break;case 4194176:f=a>>1&31;d=I(this,e.N[3][f],a,b,c);0<=d&&(e.N[3][f]=d,e.N[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=e.da;d&65280&&(d=(d<<8|d>>8)&65535);
|
e.Ia[f]),d;case 4194246:return a&1?(0<=b&&(e.a[7]=b),d=e.a[7]):e.o>>14&0?(0<=b&&(e.a[6]=b),d=e.a[6]):(0<=b&&(e.Y[0]=b),d=e.Y[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.o&2048?(0<=b&&(e.Ia[f]=b),d=e.Ia[f]):(0<=b&&(e.a[f]=b),d=e.a[f]),d;default:return e.m|=16,J(e,4,124)}break;case 4194176:f=a>>1&31;d=I(this,e.O[3][f],a,b,c);0<=d&&(e.O[3][f]=d,e.O[3][f&15]&=65295);break;case 4194112:var h=this.s;f=this.f;switch(a&-2){case 4194174:d=I(this,e.Va,a,b,c);0<=d&&(e.Va=d);break;case 4194172:d=
|
||||||
break;case 4194170:e.F=e.F&62337|e.bb<<5|e.mb<<1;0>b?d=e.F:(d=I(this,e.F,a,b,c),0<=d&&(e.F=d&=62337,e.bb=d>>5&3,e.mb=d>>1&15,d&257?(f=2,e.ha&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Qa=this.b.Qa&-8|f));break;case 4194168:0>b?d=this.b.sc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.Zb=0),h.T&=-129,H(e,100,128,52,function(){h.T|=128;return!!(h.T&64)}));d=0;break;case 4194164:0>b?d=h.T:(d=I(this,h.T,a,b,c),0<=d&&(128==(h.T&192)&&d&64&&H(e,8,128,52,
|
e.ea;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.G=e.G&62337|e.bb<<5|e.nb<<1;0>b?d=e.G:(d=I(this,e.G,a,b,c),0<=d&&(e.G=d&=62337,e.bb=d>>5&3,e.nb=d>>1&15,d&257?(f=2,e.na&16&&(f=1),e.ab=d&1?6:4):(e.ab=0,f=4),this.b.Ra=this.b.Ra&-8|f));break;case 4194168:0>b?d=this.b.tc&65535:(d=I(this,this.b.data,a,b,c),0<=d&&(this.b.data=d));break;case 4194166:0<=b&&(b&127&&(h.$b=0),h.U&=-129,H(e,100,128,52,function(){h.U|=128;return!!(h.U&64)}));d=0;break;case 4194164:0>b?d=h.U:(d=I(this,h.U,a,b,c),0<=d&&
|
||||||
function(){h.T|=128;return!!(h.T&64)}),h.T=h.T&128|d&-129));break;case 4194162:d=0;0>b&&(h.fa&=-129,0<h.Bb.length&&(d=h.Bb.shift(),0<h.Bb.length&&setTimeout(function(){h.fa|=128;h.fa&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.fa:(d=I(this,h.fa,a,b,c),0<=d&&(h.fa=h.fa&128|d&-129));break;case 4194150:0>b?(d=f.l,f.l&=-129):(d=I(this,f.l,a,b,c),0<=d&&(d&64&&!f.Ab&&(setInterval(this.dc.bind(this),25),f.Ab=1),f.l=d&-129));break;default:return e.m|=16,J(e,4)}break;case 4194048:f=this.g;switch(a&
|
(128==(h.U&192)&&d&64&&H(e,8,128,52,function(){h.U|=128;return!!(h.U&64)}),h.U=h.U&128|d&-129));break;case 4194162:d=0;0>b&&(h.ga&=-129,0<h.Cb.length&&(d=h.Cb.shift(),0<h.Cb.length&&setTimeout(function(){h.ga|=128;h.ga&64&&H(e,40,128,48)},50)));break;case 4194160:0>b?d=h.ga:(d=I(this,h.ga,a,b,c),0<=d&&(h.ga=h.ga&128|d&-129));break;case 4194150:0>b?(d=f.l,f.l&=-129):(d=I(this,f.l,a,b,c),0<=d&&(d&64&&!f.Bb&&(setInterval(this.ec.bind(this),25),f.Bb=1),f.l=d&-129));break;default:return e.m|=16,J(e,4,
|
||||||
-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.O,a,b,c);0<=d&&(f.O=d);break;case 4194052:d=I(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&Xa(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.U,a,b,c);0<=d&&(f.U=d);break;case 4194060:break;case 4194062:d=I(this,f.Pb,a,b,c);0<=d&&(f.Pb=d);break;default:return e.m|=16,J(e,4)}break;case 4193728:var g=this.j;
|
126)}break;case 4194048:f=this.g;switch(a&-2){case 4194048:d=I(this,f.gb,a,b,c);0<=d&&(f.gb=d);break;case 4194050:d=I(this,f.P,a,b,c);0<=d&&(f.P=d);break;case 4194052:d=I(this,f.v,a,b,c);0<=b&&0<=d&&(f.v=d&-36993|f.v&36992,f.v&1&&Xa(this));break;case 4194054:d=I(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194056:d=I(this,f.fb,a,b,c);0<=d&&(f.fb=d);break;case 4194058:d=I(this,f.V,a,b,c);0<=d&&(f.V=d);break;case 4194060:break;case 4194062:d=I(this,f.Qb,a,b,c);0<=d&&(f.Qb=d);break;default:return e.m|=
|
||||||
f=g.Z&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?ab(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ta,a,b,c);0<=d&&(g.Ta=d);break;case 4193732:d=I(this,g.Ra,a,b,c);0<=d&&(g.Ra=d&65534);break;case 4193734:d=I(this,g.$[f],a,b,c);0<=d&&(g.$[f]=d&7967);break;case 4193736:d=I(this,g.Z,a,b,c);0<=d&&(g.Z=d&63|g.Z&65472,d&128&&$a(this));break;case 4193738:d=g.S[f];break;case 4193740:d=g.Sa[f];break;case 4193742:d=
|
16,J(e,4,128)}break;case 4193728:var g=this.j;f=g.$&7;switch(a&-2){case 4193728:d=I(this,g.B,a,b,c);0<=b&&0<=d&&(g.va=g.va&60|d>>8&3,g.B=d&17279|g.B&34944|2048,d&1&&g.B&128?ab(this,f):192==(d&192)&&H(e,0,160,172));break;case 4193730:d=I(this,g.Ua,a,b,c);0<=d&&(g.Ua=d);break;case 4193732:d=I(this,g.Sa,a,b,c);0<=d&&(g.Sa=d&65534);break;case 4193734:d=I(this,g.aa[f],a,b,c);0<=d&&(g.aa[f]=d&7967);break;case 4193736:d=I(this,g.$,a,b,c);0<=d&&(g.$=d&63|g.$&65472,d&128&&$a(this));break;case 4193738:d=g.T[f];
|
||||||
I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.qc[f];break;case 4193746:d=I(this,g.Qb,a,b,c);0<=d&&(g.Qb=d);break;case 4193748:d=I(this,g.Rb[f],a,b,c);0<=d&&(g.Rb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.rc[f];break;case 4193754:d=I(this,g.Sb[f],a,b,c);0<=d&&(g.Sb[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.qb[f]=g.ka[f];d=g.qb[f];break;case 4193760:d=g.oc[f];break;case 4193762:d=g.pc[f];break;case 4193764:d=g.mc[f];
|
break;case 4193740:d=g.Ta[f];break;case 4193742:d=I(this,g.Ja,a,b,c);0<=d&&(g.Ja=d&255);break;case 4193744:d=g.rc[f];break;case 4193746:d=I(this,g.Rb,a,b,c);0<=d&&(g.Rb=d);break;case 4193748:d=I(this,g.Sb[f],a,b,c);0<=d&&(g.Sb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=g.sc[f];break;case 4193754:d=I(this,g.Tb[f],a,b,c);0<=d&&(g.Tb[f]=d);break;case 4193756:d=I(this,g.ka[f],a,b,c);0<=d&&(g.ka[f]=d&511);break;case 4193758:g.rb[f]=g.ka[f];d=g.rb[f];break;case 4193760:d=g.pc[f];break;case 4193762:d=
|
||||||
break;case 4193766:d=g.nc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Cb,a,b,c);0<=d&&(g.Cb=d);break;default:return e.m|=16,J(e,4)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.l,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.l=f.l&-1023|d&1022,f.l&128||Za(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.G,a,b,c);0<=d&&(f.G=d);break;case 4192518:d=I(this,f.sa,a,b,c);
|
g.qc[f];break;case 4193764:d=g.nc[f];break;case 4193766:d=g.oc[f];break;case 4193768:d=I(this,g.va,a,b,c);0<=d&&(g.va=d&63,g.B=g.B&-769|(d&3)<<8);break;case 4193770:d=I(this,g.Db,a,b,c);0<=d&&(g.Db=d);break;default:return e.m|=16,J(e,4,132)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=I(this,f.l,a,b,c);0<=b&&0<=d&&(f.pa=f.pa&60|d>>4&3,f.l=f.l&-1023|d&1022,f.l&128||Za(this));break;case 4192514:d=I(this,f.Ya,a,b,c);0<=d&&(f.Ya=d&65534);break;case 4192516:d=I(this,f.H,a,b,c);0<=d&&(f.H=d);
|
||||||
0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.l=f.l&-49|(f.pa&3)<<4);break;default:return e.m|=16,J(e,4)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.ha:(d=I(this,e.ha,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.ha=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.ha&16&&(f=1),this.b.Qa=this.b.Qa&-8|f)));break;default:return e.m|=16,J(e,4)}break;case 4191424:f=a>>1&31;d=I(this,e.N[0][f],a,b,c);0<=d&&(e.N[0][f]=d,e.N[0][f&15]&=65295);break;case 4191360:f=
|
break;case 4192518:d=I(this,f.sa,a,b,c);0<=d&&(f.sa=d);break;case 4192520:d=I(this,f.pa,a,b,c);0<=d&&(f.pa=d&63,f.l=f.l&-49|(f.pa&3)<<4);break;default:return e.m|=16,J(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.na:(d=I(this,e.na,a,b,c),0<=d&&(70!==e.Fa&&(d&=-49),e.na=d,e.Ha[0]=d&4?15:7,e.Ha[1]=d&2?15:7,e.Ha[3]=d&1?15:7,e.ab&&(f=2,e.na&16&&(f=1),this.b.Ra=this.b.Ra&-8|f)));break;default:return e.m|=16,J(e,4,136)}break;case 4191424:f=a>>1&31;d=I(this,e.O[0][f],a,b,c);0<=d&&(e.O[0][f]=
|
||||||
a>>1&31;d=I(this,e.N[1][f],a,b,c);0<=d&&(e.N[1][f]=d,e.N[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4);f=a>>2&31;d=e.Ua[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.Ua[f]=a&2?d<<16|e.Ua[f]&65535:e.Ua[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Ta[a>>1&255];else return e.m|=16,J(e,4);break;default:return e.m|=16,J(e,4)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===
|
d,e.O[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=I(this,e.O[1][f],a,b,c);0<=d&&(e.O[1][f]=d,e.O[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==e.Fa)return J(e,4,234);f=a>>2&31;d=e.ib[f];a&2&&(d=d>>16);d&=65535;0<=b&&(d=I(this,d,a,b,c),0<=d&&(e.ib[f]=a&2?d<<16|e.ib[f]&65535:e.ib[f]&4294901760|d&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)d=Ta[a>>1&255];else return e.m|=16,J(e,4,138);break;default:return e.m|=
|
||||||
typeof d&&cb(76);return d};var Ua={};Ua[4194302]=[null,null,G.prototype.hc,G.prototype.uc];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var eb;if(Ha){var fb=new ArrayBuffer(2);(new DataView(fb)).setUint16(0,256,!0);eb=256===(new Uint16Array(fb))[0]}else eb=!1;var gb=eb;
|
16,J(e,4,142)}c&&0<=d&&(a&1?d=d>>8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};var Ua={};Ua[4194302]=[null,null,G.prototype.ic,G.prototype.vc];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new G(d);B(d,c)}});var db;if(Ha){var eb=new ArrayBuffer(2);(new DataView(eb)).setUint16(0,256,!0);db=256===(new Uint16Array(eb))[0]}else db=!1;var fb=db;
|
||||||
function F(a,b,c,d,f){this.id=hb+=2;this.c=null;this.Pa=a;this.rb=b;this.size=c||0;this.type=d||ib;this.i=d==jb;this.controller=null;Ka(this);this.ra=this.ac=!1;if(c)if(f)this.controller=f,this.c=null,kb(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),kb(this,gb?lb:mb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;kb(this,nb)}else kb(this)}
|
function F(a,b,c,d,f){this.id=gb+=2;this.c=null;this.Qa=a;this.sb=b;this.size=c||0;this.type=d||hb;this.i=d==ib;this.controller=null;Ka(this);this.ra=this.bc=!1;if(c)if(f)this.controller=f,this.c=null,jb(this,f.Wa);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.b=new Uint8Array(this.f,0,c),this.j=new Uint16Array(this.f,0,c>>1),this.c=new Int32Array(this.f,0,c>>2),jb(this,fb?kb:lb);else{this.c=Array(c>>2);for(a=0;a<this.c.length;a++)this.c[a]=0;jb(this,mb)}else jb(this)}
|
||||||
var ib=0,jb=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],hb=0;
|
var hb=0,ib=2,Qa=4,Sa=["NONE","RAM","ROM","VID","H/W"],gb=0;
|
||||||
F.prototype={constructor:F,parent:null,Ab:function(a){this.Pa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},D:function(){},u:function(a,b){return this.eb(a++,b++)|this.eb(a,
|
F.prototype={constructor:F,parent:null,Bb:function(a){this.Qa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.c;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.c=a;return this.ra=!0}return!1},s:function(){return 255},F:function(){},A:function(a,b){return this.eb(a++,b++)|this.eb(a,
|
||||||
b)<<8},I:function(a,b,c){this.ib(a++,b&255,c++);this.ib(a,b>>8,c)},W:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},xa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Oa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},M:function(a,b){return this.P(a,
|
b)<<8},J:function(a,b,c){this.jb(a++,b&255,c++);this.jb(a,b>>8,c)},Z:function(a){return this.c[a>>2]>>>((a&3)<<3)&255},ya:function(a){var b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8},Ca:function(a,b){var c=a>>2,d=(a&3)<<3;this.c[c]=this.c[c]&~(255<<d)|b<<d;this.ra=!0},Pa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.c[c]=this.c[c]&~(65535<<d)|b<<d:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.ra=!0},N:function(a,b){return this.R(a,
|
||||||
b)},ca:function(a,b){return this.ma(a,b)},za:function(a,b,c){this.i||this.Vb(a,b,c)},La:function(a,b,c){this.i||this.Ma(a,b,c)},J:function(a){return this.b[a]},V:function(a){return this.b[a]},ba:function(a){return this.g.getUint16(a,!0)},na:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},ya:function(a,b){this.b[a]=b;this.ra=!0},Aa:function(a,b){this.b[a]=b;this.ra=!0},Ca:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Na:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
|
b)},da:function(a,b){return this.ma(a,b)},Aa:function(a,b,c){this.i||this.Wb(a,b,c)},Ma:function(a,b,c){this.i||this.Na(a,b,c)},M:function(a){return this.b[a]},W:function(a){return this.b[a]},ca:function(a){return this.g.getUint16(a,!0)},xa:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.j[a>>1]},za:function(a,b){this.b[a]=b;this.ra=!0},Ba:function(a,b){this.b[a]=b;this.ra=!0},La:function(a,b){this.g.setUint16(a,b,!0);this.ra=!0},Oa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>
|
||||||
1]=b;this.ra=!0}};function Ka(a,b,c){a.H=b;a.A=a.v=0;c&&((a.A=c.A)&&ob(a,pb,!1),(a.v=c.v)&&qb(a,pb,!1))}function qb(a,b,c){c&&a.v||(a.ib=!a.i&&b[1]||a.D,a.vc=!a.i&&b[3]||a.I);if(c||void 0===c)a.Vb=b[1]||a.D,a.Ma=b[3]||a.I}function ob(a,b,c){c&&a.A||(a.eb=b[0]||a.s,a.ic=b[2]||a.u);if(c||void 0===c)a.P=b[0]||a.s,a.ma=b[2]||a.u}function kb(a,b){b||(b=rb);ob(a,b,void 0);qb(a,b,void 0)}
|
1]=b;this.ra=!0}};function Ka(a,b,c){a.I=b;a.w=a.u=0;c&&((a.w=c.w)&&nb(a,ob,!1),(a.u=c.u)&&pb(a,ob,!1))}function pb(a,b,c){c&&a.u||(a.jb=!a.i&&b[1]||a.F,a.wc=!a.i&&b[3]||a.J);if(c||void 0===c)a.Wb=b[1]||a.F,a.Na=b[3]||a.J}function nb(a,b,c){c&&a.w||(a.eb=b[0]||a.s,a.jc=b[2]||a.A);if(c||void 0===c)a.R=b[0]||a.s,a.ma=b[2]||a.A}function jb(a,b){b||(b=qb);nb(a,b,void 0);pb(a,b,void 0)}
|
||||||
var rb=[],nb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa],pb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La];if(Ha)var mb=[F.prototype.J,F.prototype.ya,F.prototype.ba,F.prototype.Ca],lb=[F.prototype.V,F.prototype.Aa,F.prototype.na,F.prototype.Na];
|
var qb=[],mb=[F.prototype.Z,F.prototype.Ca,F.prototype.ya,F.prototype.Pa],ob=[F.prototype.N,F.prototype.Aa,F.prototype.da,F.prototype.Ma];if(Ha)var lb=[F.prototype.M,F.prototype.za,F.prototype.ca,F.prototype.La],kb=[F.prototype.W,F.prototype.Ba,F.prototype.xa,F.prototype.Oa];
|
||||||
function sb(a,b){v.call(this,"CPU",a,sb);var c=a.multiplier||1;this.vb=a.cycles||b;this.ma=c;this.ub=Math.round(this.vb/1E4)/100;this.ba=this.ub*this.ma;this.h.ga=!1;this.h.Tb=!1;this.h.Xa=a.autoStart;this.h.Mb=!1;this.h.kb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Lb=this.Db.bind(this);D(this)}y(sb);var tb=["power","reset"];m=sb.prototype;
|
function rb(a,b){v.call(this,"CPU",a,rb);var c=a.multiplier||1;this.wb=a.cycles||b;this.da=c;this.vb=Math.round(this.wb/1E4)/100;this.Z=this.vb*this.da;this.h.ha=!1;this.h.Ub=!1;this.h.Xa=a.autoStart;this.h.Nb=!1;this.h.lb=!1;this.Na=this.ca=0;this.Oa=a.csStart;this.ya=a.csInterval;this.za=a.csStop;this.La=[];this.Mb=this.Eb.bind(this);D(this)}y(rb);var sb=["power","reset"];m=rb.prototype;
|
||||||
m.Ga=function(a,b,c,d){this.s=a;this.v=b;this.H=d;for(b=0;b<tb.length;b++)(c=this.A[tb[b]])&&this.s.aa(null,tb[b],c);this.xa=null;a=ub(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){vb(this);if(!this.restore(a))return!1;wb(this)}else this.reset();this.X("No debugger detected")}xb(this);return!0};m.ta=function(a){return a?this.save():!0};
|
m.Ga=function(a,b,c,d){this.s=a;this.u=b;this.I=d;for(b=0;b<sb.length;b++)(c=this.w[sb[b]])&&this.s.ba(null,sb[b],c);this.xa=null;a=tb(a,"autoStart");null!=a&&(this.h.Xa="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.ua=function(a,b){if(!b){if(a&&this.restore){ub(this);if(!this.restore(a))return!1;vb(this)}else this.reset();this.X("No debugger detected")}wb(this);return!0};m.ta=function(a){return a?this.save():!0};
|
||||||
m.Xa=function(){return this.h.Xa||void 0===this.A.run?(this.Db(),!0):!1};m.Ob=function(){return 0};function wb(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.kb=0<=a.Oa&&0<a.ya;a.h.kb&&(a.Na=0,a.ca=a.Oa-a.W)}
|
m.Xa=function(){return this.h.Xa||void 0===this.w.run?(this.Eb(),!0):!1};m.Pb=function(){return 0};function vb(a){void 0===a.Oa&&(a.Oa=0);void 0===a.ya&&(a.ya=-1);void 0===a.za&&(a.za=-1);a.h.lb=0<=a.Oa&&0<a.ya;a.h.lb&&(a.Na=0,a.ca=a.Oa-a.W)}
|
||||||
function N(a,b,c,d){if(a.A[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),O(a));var f=a.H&&a.H.b||8;if(!a.h.ga||a.h.Mb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.A[b].textContent!=d&&(a.A[b].textContent=d)}}
|
function N(a,b,c,d){if(a.w[b]){void 0===c&&(a.h.error=!0,a.K("Value for "+b+" is invalid"),xb(a));var f=a.I&&a.I.b||8;if(!a.h.ha||a.h.Nb)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.w[b].textContent!=d&&(a.w[b].textContent=d)}}
|
||||||
m.aa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.lb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ga?O(d):d.Db())};a=!0;
|
m.ba=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.h.L)a=!0;else{var b=null,c,g=z(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.L);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.mb?" (waiting for notification)":""))+".");a=!1}a&&(d.h.ha?xb(d):d.Eb())};a=!0;
|
||||||
break;case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){yb(d,d.ma<<1)},c.textContent=this.ba.toFixed(2)+"Mhz",a=!0}return a};function zb(a,b,c){a.W+=b;c&&(a.V=a.J=0)}function Ab(a,b){var c=1;b&&1<a.ma&&a.M&&(c=a.M/a.ub);a.Ib=Math.round(1E3/30);a.jb=Math.floor(a.vb/30*c);b||(a.Aa=a.jb);a.wb=0}function Bb(a){return a.W+a.I+a.V-a.J}function vb(a){a.M=0;a.Jb=0;a.W=a.I=a.V=a.J=0;wb(a);yb(a,1)}
|
break;case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){yb(d,d.da<<1)},c.textContent=this.Z.toFixed(2)+"Mhz",a=!0}return a};function zb(a,b,c){a.W+=b;c&&(a.R=a.A=0)}function Ab(a,b){var c=1;b&&1<a.da&&a.M&&(c=a.M/a.vb);a.Jb=Math.round(1E3/30);a.Pa=Math.floor(a.wb/30*c);b||(a.Aa=a.Pa);a.xb=0}function Bb(a){return a.W+a.J+a.R-a.A}function ub(a){a.M=0;a.Kb=0;a.W=a.J=a.R=a.A=0;vb(a);yb(a,1)}
|
||||||
function yb(a,b){if(void 0!==b){.8>a.M/a.ba&&(b=1);a.ma=b;var c=a.ub*a.ma;if(a.ba!=c){a.ba=c;var c=a.ba.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}zb(a,a.I);a.I=0;a.D=ha();a.P=0;Ab(a)}function Cb(a){a.V-=a.J;a.J=0}
|
function yb(a,b){if(void 0!==b){.8>a.M/a.Z&&(b=1);a.da=b;var c=a.vb*a.da;if(a.Z!=c){a.Z=c;var c=a.Z.toFixed(2)+"Mhz",d=a.w.setSpeed;d&&(d.textContent=c);a.X("target speed: "+c)}}zb(a,a.J);a.J=0;a.F=ha();a.N=0;Ab(a)}function Cb(a){a.R-=a.A;a.A=0}
|
||||||
m.Db=function(){if(Fa(this,!0)){if(!this.h.ga){yb(this);this.s&&this.s.start(this.D,Bb(this));this.h.ga=!0;this.h.Tb=!0;this.xa&&this.xa.start();var a=this.A.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.wb>=this.vb&&Ab(this,!0);this.Ba=0;this.Ma=ha();this.P&&(a=this.Ma-this.P,a>this.Ib&&(this.D+=a,this.D>this.Ma&&(this.D=this.Ma)));try{do{for(var b=this.h.kb?1:this.jb,c=this.La.length-1;0<=c;c--){var d=this.La[c];0>d[0]||b>d[0]&&(b=d[0])}this.Ub(b);for(var f=this.V-this.J,a=f,e=this.La.length-
|
m.Eb=function(){if(Fa(this,!0)){if(!this.h.ha){yb(this);this.s&&this.s.start(this.F,Bb(this));this.h.ha=!0;this.h.Ub=!0;this.xa&&this.xa.start();var a=this.w.run;a&&(a.textContent="Halt");this.s&&this.s.Ka(!0)}this.xb>=this.wb&&Ab(this,!0);this.Ba=0;this.Ma=ha();this.N&&(a=this.Ma-this.N,a>this.Jb&&(this.F+=a,this.F>this.Ma&&(this.F=this.Ma)));try{do{for(var b,c=this.h.lb?1:this.Pa,d=this.La.length-1;0<=d;d--){var f=this.La[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.Vb(b)}catch(l){if("number"!=typeof l)throw l;
|
||||||
1;0<=e;e--){var h=this.La[e];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ba+=f;this.I+=f;zb(this,0,!0);a=f;if(this.h.kb){var g=!1;this.Na=this.Na+this.Ob()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,g=!0);0<=this.za&&this.za<=Bb(this)&&(this.ya=this.za=-1,wb(this),O(this),g=!0);g&&this.X(Bb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=f;if(0>=this.Aa){this.Aa+=this.jb;15<=++this.Jb&&(this.s&&this.s.Ka(),this.Jb=0);break}}while(this.h.ga)}catch(k){O(this);xb(this);this.s&&this.s.stop(ha(),
|
}for(var e=this.R-this.A,a=e,h=this.La.length-1;0<=h;h--){var g=this.La[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.Ba+=e;this.J+=e;zb(this,0,!0);a=e;if(this.h.lb){var k=!1;this.Na=this.Na+this.Pb()|0;this.ca-=a;0>=this.ca&&(this.ca+=this.ya,k=!0);0<=this.za&&this.za<=Bb(this)&&(this.ya=this.za=-1,vb(this),xb(this),k=!0);k&&this.X(Bb(this)+" cycles: checksum="+n(this.Na))}this.Aa-=e;if(0>=this.Aa){this.Aa+=this.Pa;15<=++this.Kb&&(this.s&&this.s.Ka(),this.Kb=0);break}}while(this.h.ha)}catch(l){xb(this);
|
||||||
Bb(this));Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Lb;this.P=ha();d=this.Ib;this.Ba&&(d=Math.round(d*this.Ba/this.jb));d=d-(this.P-this.Ma);if(f=this.P-this.D)this.M=Math.round(this.I/(10*f))/100,864E5<=f&&(this.W=0,yb(this));if(0>d||this.M<this.ba)-1E3>d&&(this.D-=d),d=0;this.wb+=this.Ba;this.P+=d;b(c,d)}else xb(this),this.s&&this.s.stop(ha(),Bb(this))};m.Ub=function(){return 0};
|
wb(this);this.s&&this.s.stop(ha(),Bb(this));Fa(this,!1);b=l.stack||l.message;this.h.error=!0;this.K(b);return}b=setTimeout;c=this.Mb;this.N=ha();d=this.Jb;this.Ba&&(d=Math.round(d*this.Ba/this.Pa));d=d-(this.N-this.Ma);if(f=this.N-this.F)this.M=Math.round(this.J/(10*f))/100,864E5<=f&&(this.W=0,yb(this));if(0>d||this.M<this.Z)-1E3>d&&(this.F-=d),d=0;this.xb+=this.Ba;this.N+=d;b(c,d)}else wb(this),this.s&&this.s.stop(ha(),Bb(this))};m.Vb=function(){return 0};
|
||||||
function O(a){a.h.Za&&(a.h.xb=!0);Cb(a);zb(a,a.I);a.I=0;if(a.h.ga){a.h.ga=!1;a.xa&&a.xa.stop();var b=a.A.run;b&&(b.textContent="Run")}a.h.complete=void 0}function xb(a){a.s&&a.s.Ka(void 0)}
|
function xb(a){a.h.Za&&(a.h.yb=!0);Cb(a);zb(a,a.J);a.J=0;if(a.h.ha){a.h.ha=!1;a.xa&&a.xa.stop();var b=a.w.run;b&&(b.textContent="Run")}a.h.complete=void 0}function wb(a){a.s&&a.s.Ka(void 0)}
|
||||||
function Db(a){this.$b=+a.model||1170;this.cc=a.resetAddr||0;sb.call(this,a,1E6);this.Fb=0;this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.o=15;this.a=[0,0,0,0,0,0,0,this.cc];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.nb=0;this.ja=2;this.la=255;this.u=0;this.na=-1;this.m=0;this.Fa=70;this.mb=this.bb=this.ab=this.j=this.ha=this.Va=this.da=this.F=0;this.Ha=[7,7,7,7];this.N=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,
|
function Db(a){this.ac=+a.model||1170;this.dc=a.resetAddr||0;rb.call(this,a,1E6);this.Gb=0;this.decode=Eb.bind(this);this.g=65536;this.b=32768;this.f=65535;this.c=32768;this.kb=-1;this.a=[0,0,0,0,0,0,0,this.dc];this.Ia=[0,0,0,0,0,0];this.Y=[0,0,0,0];this.memory=[];this.i=[];this.Ca=this.ob=0;this.ja=2;this.la=255;this.C=0;this.ma=-1;this.m=0;this.Fa=70;this.nb=this.bb=this.ab=this.j=this.na=this.Va=this.ea=this.G=0;this.Ha=[7,7,7,7];this.O=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ua=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.zb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Yb=!1}y(Db,sb);m=Db.prototype;
|
0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.ib=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Ab=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.Zb=!1}y(Db,rb);m=Db.prototype;
|
||||||
m.reset=function(){this.h.ga&&O(this);Eb(this);vb(this);this.h.error=!1;this.parent.reset.call(this)};function Eb(a){a.la=255;a.m=0;a.i=[];a.nb=0;a.F=a.da=a.Va=a.ha=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Ob=function(){return 0};
|
m.reset=function(){this.h.ha&&xb(this);Fb(this);ub(this);this.h.error=!1;this.parent.reset.call(this)};function Fb(a){a.la=255;a.m=0;a.i=[];a.ob=0;a.G=a.ea=a.Va=a.na=a.ab=0;a.Ha[0]=a.Ha[1]=a.Ha[3]=7;a.bb=0}m.Pb=function(){return 0};
|
||||||
m.save=function(){var a=new P(this);Q(a,0,[]);Q(a,1,[this.Hb,this.W,this.ma]);for(var b=this.v,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.ac){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}Q(a,2,d);return a.data()};
|
m.save=function(){var a=new O(this);P(a,0,[]);P(a,1,[this.Ib,this.W,this.da]);for(var b=this.u,c=0,d=[],f=0;f<b.j;f++){var e=b.b[f];if(e.ra||e.bc){d[c++]=f;var h=c++;a:if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var r=e[g],w=g+1;w<e.length&&e[w]===r;)w++;l[k++]=w-g;l[k++]=r;g=w}if(l.length<e.length){e=l;break a}}d[h]=e}}P(a,2,d);return a.data()};
|
||||||
m.restore=function(a){var b=a[1];this.Hb=b[0];this.W=b[1];yb(this,b[3]);a:{b=this.v;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.J){for(var e=0,h=Array(b.J),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
m.restore=function(a){var b=a[1];this.Ib=b[0];this.W=b[1];yb(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.M){for(var e=0,h=Array(b.M),g=0;g<f.length-1;)for(var k=f[g++],l=f[g++];k--;)h[e++]=l;f=h}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
m.aa=function(a,b,c){var d=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.A[b]=c;this.Fb++;d=!0;break;default:d=this.parent.aa.call(this,a,b,c)}return d};
|
m.ba=function(a,b,c){var d=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":this.w[b]=c;this.Gb++;d=!0;break;default:d=this.parent.ba.call(this,a,b,c)}return d};
|
||||||
m.Ka=function(a){if(this.Fb&&(a||!this.h.ga||this.h.Mb)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=Va(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.A.speed)a.textContent=this.h.ga&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
|
m.Ka=function(a){if(this.Gb&&(a||!this.h.ha||this.h.Nb)){for(a=0;a<this.a.length;a++)N(this,"R"+a,this.a[a]);a=Va(this);N(this,"PS",a);N(this,"NF",a&8?1:0,1);N(this,"ZF",a&4?1:0,1);N(this,"VF",a&2?1:0,1);N(this,"CF",a&1?1:0,1)}if(a=this.w.speed)a.textContent=this.h.ha&&this.M?this.M.toFixed(2)+"Mhz":"Stopped"};
|
||||||
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].tc===d){0<e&&(a.i[e-1].ea+=a.i[e].ea);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Lb,0));for(e=a.i.length;0<e--;){if(a.i[e].ea>b){a.i[e].ea-=b;break}b-=a.i[e].ea}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}function Va(a){return a.o=a.o&63728|(a.c&32768?8:0)|(a.f&65535?0:4)|(a.b&32768?2:0)|(a.g&65536?1:0)}
|
function H(a,b,c,d,f){for(var e=a.i.length;0<e--;)if(a.i[e].uc===d){0<e&&(a.i[e-1].fa+=a.i[e].fa);a.i.splice(e,1);break}if(0<=b){2===a.Ca&&(b=0,a.Ca=0,setTimeout(a.Mb,0));for(e=a.i.length;0<e--;){if(a.i[e].fa>b){a.i[e].fa-=b;break}b-=a.i[e].fa}a.i.splice(e+1,0,{delay:b,priority:c&224,vector:d,callback:f})}a.ja=2}function Va(a){return a.o=a.o&63728|(a.c&32768?8:0)|(a.f&65535?0:4)|(a.b&32768?2:0)|(a.g&65536?1:0)}
|
||||||
function Wa(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.o)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.o>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.o=b}function cb(a){console.log("panic("+a+")")}
|
function Wa(a,b){a.c=b<<12;a.f=~b&4;a.b=b<<14;a.g=b<<16;if((b^a.o)&2048)for(var c=a.Ia.length;0<=--c;){var d=a.a[c];a.a[c]=a.Ia[c];a.Ia[c]=d}a.j=b>>14&3;c=a.o>>14&3;a.j!=c&&(a.Y[c]=a.a[6],a.a[6]=a.Y[a.j]);a.ja=2;a.o=b}function Gb(a,b){!a.C&128&&(a.c=a.f=b,a.b=0)}
|
||||||
function J(a,b){var c,d,f=0;0>a.na?a.na=Va(a):a.j||(b=4,f=1);a.F&57344||(a.da=63222,a.Va=b);a.j=0;0<=(c=R(a,b|65536))&&0<=(d=R(a,b+2&65535|65536))&&(Wa(a,d&53247|a.na>>2&12288),f&&(a.m|=4,a.a[6]=4),0<=S(a,a.na)&&0<=S(a,a.a[7])&&(a.a[7]=c));a.u=0;return a.na=-1}
|
function J(a,b,c){var d,f,e=0;0>a.ma?a.ma=Va(a):a.j||(b=4,e=1);a.G&57344||(a.ea=63222,a.Va=b);a.j=0;0<=(d=Q(a,b|65536))&&0<=(f=Q(a,b+2&65535|65536))&&(Wa(a,f&53247|a.ma>>2&12288),e&&(a.m|=4,a.a[6]=4),0<=R(a,a.ma)&&0<=R(a,a.a[7])&&(a.a[7]=d));a.C&=-113;a.ma=-1;throw b|c<<8;}function cb(a,b){var c=b>>13&31;31>c?a.na&32&&(b=a.ib[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||||
function Fb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.N[a.j][d];e=(a.N[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ha&16){if(3932160<=e&&4186112>e){e=e&262143;var g=e>>13&31;31>g?a.ha&32&&(e=a.Ua[g]+(e&8190)&4194302,3932160<=e&&4186112>e&&cb(898)):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e){if(3915776<=e)return a.m|=32,J(a,4);if(e&1&&!(c&1))return a.m|=64,J(a,4)}switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:
|
function Hb(a,b,c){var d,f,e,h=0;if(c&a.ab){d=b>>13&a.Ha[a.j];f=a.O[a.j][d];e=(a.O[a.j][d+16]<<6)+(b&8191)&4194303;a.na&16?3932160<=e&&4186112>e&&(e=cb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.m|=32,J(a,4,24)),e&1&&!(c&1)&&(a.m|=64,J(a,4,26)));switch(f&7){case 1:h=4096;case 2:f|=128;c&4&&(h=8192);break;case 4:h=4096;case 5:c&4&&(h=4096);case 6:f|=c&4?192:128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&
|
||||||
128;break;default:h=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(h|=16384):(b&8128)>(f>>2&8128)&&(h|=16384));a.N[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.mb=d;if(h){if(h&57344)return 0<=a.na&&(h|=128),a.F&57344||(a.F=a.F|h|a.bb<<5|a.mb<<1),J(a,168);a.F&61440||!(4191360>e||4194239<e)||(a.F|=4096,a.F&512&&(a.u|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return a.m|=64,J(a,4);return e}
|
(h|=16384));a.O[a.j][d]=f;if(4194170!==e||a.j)a.bb=a.j,a.nb=d;h&&(h&57344&&(0<=a.ma&&(h|=128),a.G&57344||(a.G=a.G|h|a.bb<<5|a.nb<<1),J(a,168,28)),a.G&61440||!(4191360>e||4194239<e)||(a.G|=4096,a.G&512&&(a.C|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.m|=64,J(a,4,22));return e}function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.u;var d=b&c.i,f=(b&c.u)>>>c.f;c=d!=c.i?c.b[f].jc(d,b):c.b[f++].eb(d,b)|c.b[f&c.N].eb(0,b+1)<<8}else c=b;return c}
|
||||||
function M(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(0<=b){c=a.v;var d=b&c.i,f=(b&c.v)>>>c.f;c=d!=c.i?c.b[f].ic(d,b):c.b[f++].eb(d,b)|c.b[f&c.M].eb(0,b+1)<<8}else c=b;return c}function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.v;var d=c,f=b&a.i,e=(b&a.v)>>>a.f;f!=a.i?a.b[e].vc(f,d&65535,b):(a.b[e++].ib(f,d&255,b),a.b[e&a.M].ib(0,d>>8&255,b+1));return c}return b}
|
function L(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.u;var d=c,f=b&a.i,e=(b&a.u)>>>a.f;f!=a.i?a.b[e].wc(f,d&65535,b):(a.b[e++].jb(f,d&255,b),a.b[e&a.N].jb(0,d>>8&255,b+1));return c}return b}function S(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.u,c=c.b[(b&c.u)>>>c.f].eb(b&c.i,b)):c=b;return c}function T(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.u,a.b[(b&a.u)>>>a.f].jb(b&a.i,c&255,b),c):b}
|
||||||
function T(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:0<=b?(c=a.v,c=c.b[(b&c.v)>>>c.f].eb(b&c.i,b)):c=b;return c}function U(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:0<=b?(a=a.v,a.b[(b&a.v)>>>a.f].ib(b&a.i,c&255,b),c):b}function R(a,b){return M(a,Fb(a,b,2))}function Gb(a){var b=R(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
|
function Q(a,b){return M(a,Hb(a,b,2))}function Ib(a){var b=Q(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}function R(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.G&57344||(a.ea=a.ea<<8|246);!a.j&&d<=a.la&&4<d&&(d<=a.la-32?(a.m|=4,a.a[6]=4,J(a,4,32)):(a.m|=8,a.C|=4));return 0<=(c=Hb(a,d|65536,4))?L(a,c,b):c}
|
||||||
function S(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.F&57344||(a.da=a.da<<8|246);if(!a.j&&d<=a.la&&4<d){if(d<=a.la-32)return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return 0<=(c=Fb(a,d|65536,4))?L(a,c,b):c}
|
function U(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:J(a,4,34);break;case 1:return 6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])&&(a.a[6]<=a.la-32||65534<=a.a[6]?(a.m|=4,a.a[6]=4,J(a,4,36)):(a.m|=8,a.C|=64)),7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=Q(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=Q(a,
|
||||||
function V(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return J(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32||65534<=a.a[6])return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=R(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=
|
d)))return d;d|=65536;break;case 6:if(0>(d=Q(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=Q(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=Q(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.G&57344||(a.ea=a.ea<<8|f<<3&248|e);6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])&&(a.a[6]<=a.la-32?(a.m|=4,a.a[6]=4,J(a,4,38)):(a.m|=8,a.C|=64));return d}
|
||||||
R(a,d)))return d;d|=65536;break;case 6:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=R(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=R(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.F&57344||(a.da=a.da<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.la||65534<=a.a[6])){if(a.a[6]<=a.la-32)return a.m|=4,a.a[6]=4,J(a,4);a.m|=8;a.u|=4}return d}
|
function V(a,b,c){var d;return b&56?(0<=(d=U(a,b,c))&&(d=Hb(a,d,c)),d):4194304+(b&7)}function W(a,b){var c;b&56?(c=V(a,b,2),c=M(a,c)):c=a.a[b&7];return c}function X(a,b){var c;b&56?0<=(c=V(a,b,3))&&(c=S(a,c)):c=a.a[b&7]&255;return c}function Y(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||||
function W(a,b,c){var d;return b&56?(0<=(d=V(a,b,c))&&(d=Fb(a,d,c)),d):4194304+(b&7)}function X(a,b){var c;b&56?0<=(c=W(a,b,2))&&(c=M(a,c)):c=a.a[b&7];return c}function Y(a,b){var c;b&56?0<=(c=W(a,b,3))&&(c=T(a,c)):c=a.a[b&7]&255;return c}function Z(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
m.Vb=function(a){this.h.complete=!0;this.h.Zb=!1;this.h.Ub=!1;this.R=this.A=a;this.Ib&256?(Cb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;this.C&112&&(this.C&32?J(this,168,52):this.C&64?J(this,4,54):this.C&16&&J(this,12,56),this.C&=-113);if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.ob&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].fa){this.i[a].fa--;this.ja=2;break}if(this.i[a].Lb){if(!this.i[a].Lb()){this.i.splice(a,1);e--;continue}this.i[a].Lb=null}this.i[a].hc>b&&(b=this.i[a].hc,
|
||||||
m.Ub=function(a){this.h.complete=!0;this.h.Yb=!1;this.h.Tb=!1;this.V=this.J=a;this.Hb&256?(Cb(this),a=!1):a=!0;if(a){do{var b,c,d,f,e;if(this.ja)if(1===this.ja)this.ja=2;else{this.ja=0;e=-1;b=this.nb&224;if(0<(a=this.i.length))for(;0<a--;){if(0<this.i[a].ea){this.i[a].ea--;this.ja=2;break}if(this.i[a].Kb){if(!this.i[a].Kb()){this.i.splice(a,1);e--;continue}this.i[a].Kb=null}this.i[a].gc>b&&(b=this.i[a].gc,e=a)}b>(this.o&224)&&(0>e?J(this,160):(J(this,this.i[e].tc),this.i.splice(e,1)))}this.F&57344||
|
e=a)}b>(this.o&224)&&(0>e?J(this,160,42):(J(this,this.i[e].uc,44),this.i.splice(e,1)))}this.G&57344||(this.ea=0,this.Va=this.a[7]);this.C=this.o&16;this.kb=Q(this,this.a[7]);this.a[7]=this.a[7]+2&65535;this.decode(this.kb);if(0<=this.kb)switch(a=this.kb,this.a[7]=this.a[7]+2&65535,a&61440){case 20480:0<=(b=W(this,a>>6))&&(a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c|b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=W(this,a>>6))&&(a&56?0<=(c=
|
||||||
(this.da=0,this.Va=this.a[7]);this.u=this.o&16;if(0<=(a=R(this,this.a[7])))switch(this.a[7]=this.a[7]+2&65535,a&61440){case 4096:0<=(b=X(this,a>>6))&&(a&56?0<=(d=W(this,a,4))&&0<=L(this,d,b)&&(this.c=this.f=b,this.b=0):(this.c=this.f=this.a[a&7]=b,this.b=0));break;case 8192:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=this.g=a=b-c,this.b=(b^c)&(b^a));break;case 12288:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(this.c=this.f=b&c,this.b=0);break;case 16384:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,
|
M(this,d=V(this,a,6)))&&(a=b+c,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&(c^a)));break;case 36864:0<=(b=X(this,a>>6))&&(a&56?0<=(d=V(this,a,5))&&0<=T(this,d,b)&&(this.c=this.f=b<<8,this.b=0):(b&128&&(b|=65280),this.c=this.f=this.a[a&7]=b,this.b=0));break;case 40960:0<=(b=X(this,a>>6))&&0<=(c=X(this,a))&&(a=b-c,this.c=this.f=this.g=a<<8,this.b=((b^c)&(b^a))<<8);break;case 45056:0<=(b=X(this,a>>6))&&0<=
|
||||||
d=W(this,a,6)))&&(a=c&~b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]&=~b,this.b=0));break;case 20480:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c|b,0<=L(this,d,a)&&(this.c=this.f=a,this.b=0)):(this.c=this.f=a=this.a[a&7]|=b,this.b=0));break;case 24576:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=b+c,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^a)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=b+c)&65535,this.c=this.f=this.g=a,this.b=(b^a)&
|
(c=X(this,a))&&(this.c=this.f=(b&c)<<8,this.b=0);break;case 49152:0<=(b=X(this,a>>6))&&0<=(c=S(this,d=V(this,a,7)))&&(a=c&~b,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 53248:0<=(b=X(this,a>>6))&&0<=(c=S(this,d=V(this,a,7)))&&(a=c|b,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=W(this,a>>6))&&(a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c-b,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,
|
||||||
(c^a)));break;case 36864:0<=(b=Y(this,a>>6))&&(a&56?0<=(d=W(this,a,5))&&0<=U(this,d,b)&&(this.c=this.f=b<<8,this.b=0):(b&128&&(b|=65280),this.c=this.f=this.a[a&7]=b,this.b=0));break;case 40960:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(a=b-c,this.c=this.f=this.g=a<<8,this.b=((b^c)&(b^a))<<8);break;case 45056:0<=(b=Y(this,a>>6))&&0<=(c=Y(this,a))&&(this.c=this.f=(b&c)<<8,this.b=0);break;case 49152:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c&~b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));
|
this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=U(this,a,0))&&(e=a>>6&7,0<=R(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=(b=W(this,a))&&(e=a>>6&7,b&32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.c=a>>16,this.f=this.c|a,this.g=this.b=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=W(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.b=0,b&32768&&(b|=-65536),a=~~(c/
|
||||||
break;case 53248:0<=(b=Y(this,a>>6))&&0<=(c=T(this,d=W(this,a,7)))&&(a=c|b,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=0));break;case 57344:0<=(b=X(this,a>>6))&&(a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-b,0<=L(this,d,a)&&(this.c=this.f=this.g=a,this.b=(b^c)&(c^a))):(e=a&7,c=this.a[e],this.a[e]=(a=c-b)&65535,this.c=this.f=this.g=a,this.b=(b^c)&(c^a)));break;default:switch(a&65024){case 2048:0<=(f=V(this,a,0))&&(e=a>>6&7,0<=S(this,this.a[e])&&(this.a[e]=this.a[7],this.a[7]=f&65535));break;case 28672:0<=
|
b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.c=a>>16):(this.b=32768,this.f=a>>15|a,this.c=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=this.a[e|1]=1))):(this.f=this.c=0,this.b=32768,this.g=65536));break;case 29696:0<=(b=W(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.b=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.b=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.b=32768))),this.a[e]=a&65535,this.c=this.f=
|
||||||
(b=X(this,a))&&(e=a>>6&7,b&32768&&(b|=-65536),c=this.a[e],c&32768&&(c|=-65536),a=~~(b*c),this.a[e]=a>>16&65535,this.a[e|1]=a&65535,this.c=a>>16,this.f=this.c|a,this.g=this.b=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=X(this,a))&&(b?(e=a>>6&7,c=this.a[e]<<16|this.a[e|1],this.g=this.b=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.a[e]=a&65535,this.a[e|1]=c-a*b&65535,this.f=a>>16|a,this.c=a>>16):(this.b=32768,this.f=a>>15|a,this.c=c>>16,-1===b&&65534===this.a[e]&&(this.a[e]=
|
a);break;case 30208:if(0<=(b=W(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.b=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.b=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.c=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=M(this,d=V(this,a,6)))&&(c^=this.a[a>>6&7],0<=L(this,d,c)&&(this.c=this.f=c,this.b=
|
||||||
this.a[e|1]=1))):(this.f=this.c=0,this.b=32768,this.g=65536));break;case 29696:0<=(b=X(this,a))&&(e=a>>6&7,a=this.a[e],a&32768&&(a|=4294901760),this.g=this.b=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a=a>>b):b&&(16<b?(this.b=a,a=0):(this.g=a=a<<b,(c=a>>15&65535)&&65535!==c&&(this.b=32768))),this.a[e]=a&65535,this.c=this.f=a);break;case 30208:if(0<=(b=X(this,a))){e=a>>6&7;c=this.a[e]<<16|this.a[e|1];this.g=this.b=0;b&=63;if(b&32)b=64-b,32<b&&(b=32),a=c>>b-1,this.g=a<<16,a>>=1,c&2147483648&&
|
0)):(this.c=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.b=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.a[7]=Y(this.a[7],a);break;case 512:this.f&65535&&(this.a[7]=Y(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=Y(this.a[7],a));break;case 1024:(this.c&32768)===(this.b&32768)&&(this.a[7]=Y(this.a[7],a));break;case 1280:(this.c&32768)!==(this.b&32768)&&(this.a[7]=Y(this.a[7],a));break;case 1536:this.f&
|
||||||
(a|=4294967295<<32-b);else if(b){if(a=c<<b-1,this.g=a>>15,a<<=1,32<b&&(b=32),c>>=32-b)c|=4294967295<<b&4294967295,4294967295!==c&&(this.b=32768)}else a=c;this.a[e]=a>>16&65535;this.a[e|1]=a&65535;this.c=a>>16;this.f=a>>16|a}break;case 30720:a&56?0<=(c=M(this,d=W(this,a,6)))&&(c^=this.a[a>>6&7],0<=L(this,d,c)&&(this.c=this.f=c,this.b=0)):(this.c=this.f=c=this.a[a&7]^=this.a[a>>6&7],this.b=0);break;case 32256:e=a>>6&7;if(this.a[e]=this.a[e]-1&65535)this.a[7]=this.a[7]-((a&63)<<1)&65535;break;default:switch(a&
|
65535&&(this.c&32768)===(this.b&32768)&&(this.a[7]=Y(this.a[7],a));break;case 1792:this.f&65535&&(this.c&32768)===(this.b&32768)||(this.a[7]=Y(this.a[7],a));break;case 32768:this.c&32768||(this.a[7]=Y(this.a[7],a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=Y(this.a[7],a));break;case 33024:this.c&32768&&(this.a[7]=Y(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=Y(this.a[7],a);break;case 33792:this.b&32768||(this.a[7]=Y(this.a[7],a));break;case 34048:this.b&
|
||||||
65280){case 256:this.a[7]=Z(this.a[7],a);break;case 512:this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 768:this.f&65535||(this.a[7]=Z(this.a[7],a));break;case 1024:(this.c&32768)===(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1280:(this.c&32768)!==(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1536:this.f&65535&&(this.c&32768)===(this.b&32768)&&(this.a[7]=Z(this.a[7],a));break;case 1792:this.f&65535&&(this.c&32768)===(this.b&32768)||(this.a[7]=Z(this.a[7],a));break;case 32768:this.c&
|
32768&&(this.a[7]=Y(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=Y(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=Y(this.a[7],a));break;case 34816:J(this,24,2);break;case 35072:J(this,28,4);break;default:switch(a&65472){case 64:0<=(f=U(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c<<8|c>>8,0<=L(this,d,a)&&(this.c=this.f=c&65280,this.b=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.c=this.f=c&65280,this.b=this.g=0);break;case 2560:a&
|
||||||
32768||(this.a[7]=Z(this.a[7],a));break;case 33280:!(this.g&65536)&&this.f&65535&&(this.a[7]=Z(this.a[7],a));break;case 33024:this.c&32768&&(this.a[7]=Z(this.a[7],a));break;case 33536:if(this.g&65536||!(this.f&65535))this.a[7]=Z(this.a[7],a);break;case 33792:this.b&32768||(this.a[7]=Z(this.a[7],a));break;case 34048:this.b&32768&&(this.a[7]=Z(this.a[7],a));break;case 34304:this.g&65536||(this.a[7]=Z(this.a[7],a));break;case 34560:this.g&65536&&(this.a[7]=Z(this.a[7],a));break;case 34816:J(this,24);
|
56?0<=(d=V(this,a,4))&&0<=L(this,d,0)&&(this.c=this.g=this.b=this.f=0):this.c=this.g=this.b=this.f=this.a[a&7]=0;break;case 2624:0<=(c=M(this,d=V(this,a,6)))&&(a=~c,0<=L(this,d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c+1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c-1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=
|
||||||
break;case 35072:J(this,28);break;default:switch(a&65472){case 64:0<=(f=V(this,a,0))&&(this.a[7]=f&65535);break;case 192:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<8|c>>8,0<=L(this,d,a)&&(this.c=this.f=c&65280,this.b=this.g=0)):(e=a&7,c=this.a[e],this.a[e]=(c<<8|c>>8)&65535,this.c=this.f=c&65280,this.b=this.g=0);break;case 2560:a&56?0<=(d=W(this,a,4))&&0<=L(this,d,0)&&(this.c=this.g=this.b=this.f=0):this.c=this.g=this.b=this.f=this.a[a&7]=0;break;case 2624:0<=(c=M(this,d=W(this,a,6)))&&(a=~c,0<=L(this,
|
(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=M(this,d=V(this,a,6)))&&(a=-c,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&c));break;case 2880:0<=(c=M(this,d=V(this,a,6)))&&(a=c+(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=M(this,d=V(this,a,6)))&&(a=c-(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=W(this,a))&&(this.c=this.f=c,this.g=this.b=
|
||||||
d,a)&&(this.c=this.f=a,this.g=65536,this.b=0));break;case 2688:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c+1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=a&(a^c))):(e=a&7,c=this.a[e],a=c+1,this.a[e]=a&65535,this.c=this.f=a,this.b=a&(a^c));break;case 2752:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c-1,0<=L(this,d,a)&&(this.c=this.f=a,this.b=(a^c)&c)):(e=a&7,c=this.a[e],a=c-1,this.a[e]=a&65535,this.c=this.f=a,this.b=(a^c)&c);break;case 2816:0<=(c=M(this,d=W(this,a,6)))&&(a=-c,0<=L(this,d,a)&&(this.g=this.c=this.f=
|
0);break;case 3072:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=M(this,
|
||||||
a,this.b=a&c));break;case 2880:0<=(c=M(this,d=W(this,a,6)))&&(a=c+(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a&(a^c)));break;case 2944:0<=(c=M(this,d=W(this,a,6)))&&(a=c-(this.g>>16&1),0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=(a^c)&c));break;case 3008:0<=(c=X(this,a))&&(this.c=this.f=c,this.g=this.b=0);break;case 3072:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=(this.g&65536|c)>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1)):(e=a&7,c=this.a[e],a=(this.g&65536|
|
d=V(this,a,6)))&&(a=c&32768|c>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=V(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=Q(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=
|
||||||
c)>>1,this.a[e]=a&65535,this.g=c<<16,this.c=this.f=a,this.b=a^this.g>>1);break;case 3136:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1|this.g>>16&1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1|this.g>>16&1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3200:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c&32768|c>>1,0<=L(this,d,a)&&(this.g=c<<16,this.c=this.f=a,this.b=this.c^this.g>>1)):(e=a&7,c=this.a[e],a=c&32768|c>>1,this.a[e]=a&65535,this.g=c<<16,this.c=
|
b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=U(this,a,0))&&(61440!==(this.o&61440)&&(f&=65535),this.j=this.o>>12&3,0<=(b=Q(this,f))&&(this.j=this.o>>14&3,0<=R(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=R(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Ib(this))&&((this.G&57344||(this.ea=22),a&56)?0<=(f=U(this,a,0))&&(f&=65535,this.j=this.o>>12&3,0<=(d=Hb(this,f,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&
|
||||||
this.f=a,this.b=this.c^this.g>>1);break;case 3264:a&56?0<=(c=M(this,d=W(this,a,6)))&&(a=c<<1,0<=L(this,d,a)&&(this.g=this.c=this.f=a,this.b=a^c)):(e=a&7,c=this.a[e],a=c<<1,this.a[e]=a&65535,this.g=this.c=this.f=a,this.b=a^c);break;case 3328:f=this.a[7]+((a&63)<<1)&65535;0<=(b=R(this,f|65536))&&(this.a[7]=this.a[5],this.a[5]=b,this.a[6]=f+2&65535);break;case 3392:a&56?0<=(f=V(this,a,0))&&(61440!==(this.o&61440)&&(f&=65535),this.j=this.o>>12&3,0<=(b=R(this,f))&&(this.j=this.o>>14&3,0<=S(this,b)&&(this.c=
|
(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=V(this,a,4))&&(a=-(this.c>>15&1),0<=L(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=V(this,a,5))&&0<=T(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=S(this,d=V(this,a,7)))&&(a=~c,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=
|
||||||
this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 3456:0<=(c=Gb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(f&=65535,this.j=this.o>>12&3,0<=(d=Fb(this,f,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;case 3520:0<=(d=W(this,a,4))&&(a=-(this.c>>
|
(c=S(this,d=V(this,a,7)))&&(a=c+1,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=S(this,d=V(this,a,7)))&&(a=c-1,0<=T(this,d,a)&&(this.c=this.f=a<<8,this.b=((a^c)&c)<<8));break;case 35584:0<=(c=S(this,d=V(this,a,7)))&&(a=-c,0<=T(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a&c)<<8));break;case 35648:0<=(c=S(this,d=V(this,a,7)))&&(a=c+(this.g>>16&1),0<=T(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=(a&(a^c))<<8));break;case 35712:0<=(c=S(this,d=V(this,a,7)))&&(a=c-
|
||||||
15&1),0<=L(this,d,a)&&(this.f=a,this.b=0));break;case 35328:a&56?0<=(d=W(this,a,5))&&0<=U(this,d,0)&&(this.c=this.g=this.b=this.f=0):(this.a[a&7]&=65280,this.c=this.g=this.b=this.f=0);break;case 35392:0<=(c=T(this,d=W(this,a,7)))&&(a=~c,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.g=65536,this.b=0));break;case 35456:0<=(c=T(this,d=W(this,a,7)))&&(a=c+1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=(a&(a^c))<<8));break;case 35520:0<=(c=T(this,d=W(this,a,7)))&&(a=c-1,0<=U(this,d,a)&&(this.c=this.f=a<<8,this.b=
|
(this.g>>16&1),0<=T(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=((a^c)&c)<<8));break;case 35776:0<=(c=X(this,a))&&(this.c=this.f=c<<8,this.g=this.b=0);break;case 35840:0<=(c=S(this,d=V(this,a,7)))&&(a=((this.g&65536)>>8|c)>>1,0<=T(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 35904:0<=(c=S(this,d=V(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=T(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 35968:0<=(c=S(this,d=V(this,a,7)))&&(a=c&128|c>>1,0<=T(this,
|
||||||
((a^c)&c)<<8));break;case 35584:0<=(c=T(this,d=W(this,a,7)))&&(a=-c,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a&c)<<8));break;case 35648:0<=(c=T(this,d=W(this,a,7)))&&(a=c+(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=(a&(a^c))<<8));break;case 35712:0<=(c=T(this,d=W(this,a,7)))&&(a=c-(this.g>>16&1),0<=U(this,d,a)&&(this.c=this.f=this.g=a<<8,this.b=((a^c)&c)<<8));break;case 35776:0<=(c=Y(this,a))&&(this.c=this.f=c<<8,this.g=this.b=0);break;case 35840:0<=(c=T(this,d=W(this,
|
d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 36032:0<=(c=S(this,d=V(this,a,7)))&&(a=c<<1,0<=T(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 36160:a&56?0<=(f=U(this,a,0))&&(this.j=this.o>>12&3,0<=(b=Q(this,f|65536))&&(this.j=this.o>>14&3,0<=R(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=R(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Ib(this))&&((this.G&57344||
|
||||||
a,7)))&&(a=((this.g&65536)>>8|c)>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 35904:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 35968:0<=(c=T(this,d=W(this,a,7)))&&(a=c&128|c>>1,0<=U(this,d,a)&&(this.g=c<<16,this.c=this.f=a<<8,this.b=this.c^this.g>>1));break;case 36032:0<=(c=T(this,d=W(this,a,7)))&&(a=c<<1,0<=U(this,d,a)&&(this.g=this.c=this.f=a<<8,this.b=(a^c)<<8));break;case 36160:a&
|
(this.ea=22),a&56)?0<=(f=U(this,a,0))&&(this.j=this.o>>12&3,0<=(d=Hb(this,f|65536,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Ib(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.o&49152||(this.o=this.o&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);
|
||||||
56?0<=(f=V(this,a,0))&&(this.j=this.o>>12&3,0<=(b=R(this,f|65536))&&(this.j=this.o>>14&3,0<=S(this,b)&&(this.c=this.f=b,this.b=0))):(e=a&7,b=6!==e||(this.o>>2&12288)===(this.o&12288)?this.a[e]:this.Y[this.o>>12&3],0<=S(this,b)&&(this.c=this.f=b,this.b=0));break;case 36224:0<=(c=Gb(this))&&((this.F&57344||(this.da=22),a&56)?0<=(f=V(this,a,0))&&(this.j=this.o>>12&3,0<=(d=Fb(this,f|65536,4))&&(this.j=this.o>>14&3,0<=L(this,d,c)&&(this.c=this.f=c,this.b=0))):(e=a&7,6!==e||(this.o>>2&12288)===(this.o&
|
a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.o?(this.m|=128,J(this,4,46)):(this.Ca=3,Cb(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].fa,this.i[a].fa=0;0===e&&0===this.Ca&&(this.Ca=2,Cb(this));break;case 3:J(this,12,6);break;case 4:J(this,16,8);break;case 5:this.o&49152||(Fb(this),this.u.reset());break;case 2:case 6:d=
|
||||||
12288)?this.a[e]=c:this.Y[this.o>>12&3]=c,this.c=this.f=c,this.b=0));break;default:switch(a&65528){case 128:0<=(b=Gb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.o&49152||(this.o=this.o&63519|(a&7)<<5,this.ja=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.b=0);a&4&&(this.f=1);a&8&&(this.c=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.b=32768);a&4&&(this.f=0);a&8&&(this.c=32768);break;default:switch(a){case 0:49152&this.o?(this.m|=128,J(this,4)):(this.Ca=3,
|
this.a[6];0<=(f=Q(this,d|65536))&&(d=d+2&65535,0<=(b=Q(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.o&49152&&(b=b&63519|this.o&63712),this.a[7]=f,Wa(this,b),this.C&=-17,2===a&&(this.C|=this.o&16)));break;default:J(this,8,48)}}}}}}}while(0<this.A)}return this.h.complete?this.R-this.A:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Db(d);B(d,c)}});function Eb(a){Jb[a>>12].call(this,a)}function Z(){--this.A}
|
||||||
Cb(this),console.log("HALT at "+this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.i.length))for(;0<a--;)e+=this.i[a].ea,this.i[a].ea=0;0===e&&0===this.Ca&&(this.Ca=2,Cb(this));break;case 3:J(this,12);break;case 4:J(this,16);break;case 5:this.o&49152||(Eb(this),this.v.reset());break;case 2:case 6:d=this.a[6];0<=(f=R(this,d|65536))&&(d=d+2&65535,0<=(b=R(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.o&49152&&(b=b&63519|this.o&63712),this.a[7]=f,Wa(this,b),this.u&=-17,2===a&&(this.u|=this.o&
|
var Jb=[function(){},function(a){var b=W(this,a>>6);a&56?L(this,V(this,a,4),b):this.a[a&7]=b;Gb(this,b);--this.A},function(a){var b=W(this,a>>6);a=W(this,a);var c=b-a;!this.C&128&&(this.c=this.f=this.g=c,this.b=(b^a)&(b^c));--this.A},function(a){Gb(this,W(this,a>>6)&W(this,a));--this.A},function(a){var b=W(this,a>>6);if(a&56){a=V(this,a,4);var c=M(this,a);L(this,a,b=~b&c)}else a&=7,this.a[a]=b=~b&this.a[a];Gb(this,b);--this.A},Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z];
|
||||||
16)));break;default:J(this,8)}}}}}}this.u&&(this.u&2?J(this,168):this.u&4?J(this,4):this.u&16&&J(this,12),this.u=0)}while(0<this.J)}return this.h.complete?this.V-this.J:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Db(d);B(d,c)}});
|
function Kb(a){v.call(this,"ROM",a,Kb);this.b=null;this.s=a.addr;this.f=a.size;this.A=a.writable;this.g=a.alias;this.i=a.file;this.F=ba(this.i);if(this.i){a=this.i;var b=ca(this.F);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Lb(c,a,b,e)})}}y(Kb);Kb.prototype.Ga=function(a,b,c,d){this.u=b;this.c=c;this.I=d;Mb(this)};Kb.prototype.ua=function(){this.j&&(this.I&&this.I.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
|
||||||
function Hb(a){v.call(this,"ROM",a,Hb);this.b=null;this.s=a.addr;this.f=a.size;this.u=a.writable;this.g=a.alias;this.i=a.file;this.D=ba(this.i);if(this.i){a=this.i;var b=ca(this.D);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.i+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Ib(c,a,b,e)})}}y(Hb);Hb.prototype.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;Jb(this)};Hb.prototype.ua=function(){this.j&&(this.H&&this.H.c(this.id,this.s,this.f,this.j),delete this.j);return!0};
|
Kb.prototype.ta=function(){return!0};
|
||||||
Hb.prototype.ta=function(){return!0};
|
function Lb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Fb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
|
||||||
function Ib(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Eb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,h,g=eval("("+c+")");if(e=g.bytes)a.b=e;else if(e=g.words)for(a.b=Array(2*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255;else if(e=g.data)for(a.b=Array(4*e.length),h=f=0;f<e.length;f++)a.b[h++]=e[f]&255,a.b[h++]=e[f]>>8&255,a.b[h++]=e[f]>>16&255,a.b[h++]=e[f]>>24&255;else a.b=g;a.j=g.symbols;if(!a.b.length){q("Empty ROM: "+b);
|
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Mb(a)}}
|
||||||
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.K("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);Jb(a)}}
|
function Mb(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.u){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.s;if(Pa(a.u,b,a.f,a.A?1:ib)){var c;for(c=0;c<a.b.length;c++){var d=a.u,f=b+c;d.b[(f&d.u)>>>d.f].Wb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.u,h=e.f,g=[],k=e.s>>>f.f;0<h&&
|
||||||
function Jb(a){if(!Ga(a))if(!a.i)D(a);else if(a.b&&a.v){a.f||(a.f=a.b.length);if(a.b.length!=a.f){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.h.error=!0;a.K(b)}else{b=a.s;if(Pa(a.v,b,a.f,a.u?1:jb)){var c;for(c=0;c<a.b.length;c++){var d=a.v,f=b+c;d.b[(f&d.v)>>>d.f].Vb(f&d.i,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var e=a,d=b[c],f=e.v,h=e.f,g=[],k=e.s>>>f.f;0<h&&
|
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.u;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Kb(d);B(d,c)}});function Nb(a){v.call(this,"RAM",a,Nb);this.g=a.addr;this.f=a.size;this.b=!1}y(Nb);m=Nb.prototype;m.Ga=function(a,b,c,d){this.u=b;this.c=c;this.I=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
|
||||||
k<f.b.length;)g.push(f.b[k++]),h-=f.g;f=e.v;e=e.f;h=0;for(d>>>=f.f;0<e&&d<f.b.length;){k=g[h++];if(!k)break;f.b[d++]=k;e-=f.g}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Hb(d);B(d,c)}});function Kb(a){v.call(this,"RAM",a,Kb);this.g=a.addr;this.f=a.size;this.b=!1}y(Kb);m=Kb.prototype;m.Ga=function(a,b,c,d){this.v=b;this.c=c;this.H=d;D(this)};m.ua=function(a,b){b||this.reset();return!0};m.ta=function(a){return a?this.save():!0};
|
m.reset=function(){!this.b&&this.f&&Pa(this.u,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nb(d);B(d,c)}});function Ob(a){v.call(this,"Keyboard",a,Ob);D(this)}y(Ob);Ob.prototype.ba=function(){return!1};Ob.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.I=d;this.xa=null};
|
||||||
m.reset=function(){!this.b&&this.f&&Pa(this.v,this.g,this.f,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Kb(d);B(d,c)}});function Lb(a){v.call(this,"Keyboard",a,Lb);D(this)}y(Lb);Lb.prototype.aa=function(){return!1};Lb.prototype.Ga=function(a,b,c,d){this.s=a;this.c=c;this.H=d;this.xa=null};
|
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ob(d);B(d,c)}});
|
||||||
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Lb(d);B(d,c)}});
|
function Pb(a,b,c){v.call(this,"Computer",a,Pb);this.h.L=!1;Qb(this,b);this.M=tb(this,"autoPower",a);this.g=0;this.ca=a.busWidth||a.buswidth;this.b=Rb;this.F=null;this.s=this.W=!1;this.url=tb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Sb(this);if(this.c=Ea("CPU",this.id)){this.I=Ea("Debugger",this.id);this.u=new E({id:this.Fb+".bus",busWidth:this.ca},this.c,this.I);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.zb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.zb=
|
||||||
function Mb(a,b,c){v.call(this,"Computer",a,Mb);this.h.L=!1;Nb(this,b);this.J=ub(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.b=Ob;this.D=null;this.s=this.V=!1;this.url=ub(this,"url")||"";(Math.random()+.1).toString(36);this.f=Pb(this);if(this.c=Ea("CPU",this.id)){this.H=Ea("Debugger",this.id);this.v=new E({id:this.Eb+".bus",busWidth:this.ba},this.c,this.H);var d,f=z(this.id);if((this.i=Ea("Panel",this.id))&&this.i.yb)for(b=0;b<f.length;b++)d=f[b],d.K=this.i.K,d.X=this.i.X,d.yb=
|
this.i.zb;this.X("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.X("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ga&&d.Ga(this,this.u,this.c,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.A=d:this.b=parseInt(d,10));var e;if(a=tb(this,"state")||(e=!0,a.state))b=this.N=a,e||(this.s=!0,this.b=Rb),this.b&&(this.J=
|
||||||
this.i.yb;this.X("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.X("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.Ga&&d.Ga(this,this.v,this.c,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.u=d:this.b=parseInt(d,10));var e;if(a=ub(this,"state")||(e=!0,a.state))b=this.M=a,e||(this.s=!0,this.b=Ob),this.b&&(this.I=
|
new O(this,"1.30.0"),Tb(this.J)?b=null:delete this.J);!b&&this.b&&(b=Ub(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.A=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.F=b,h.W=!0);D(h)})}else D(this);this.w.power||(this.M=!0);!c&&this.M&&Vb(this,this.cb)}else q("Unable to find CPU component")}y(Pb);var Rb=0;
|
||||||
new P(this,"1.30.0"),Qb(this.I)?b=null:delete this.I);!b&&this.b&&(b=Rb(this))&&(this.s=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.u=null,h.s=!1,h.K("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.D=b,h.V=!0);D(h)})}else D(this);this.A.power||(this.J=!0);!c&&this.J&&Sb(this,this.cb)}else q("Unable to find CPU component")}y(Mb);var Ob=0;
|
function Qb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.Z=b}function tb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.Z&&(d=a.Z[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Vb(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Vb(a,b,c)});return}}b.call(a,c)}
|
||||||
function Nb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.W=b}function ub(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.W&&(d=a.W[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Sb(a,b,c){for(var d=z(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Sb(a,b,c)});return}}b.call(a,c)}
|
function Wb(a,b){var c=new O(a,"1.30.0","validate");if(Tb(c)&&Xb(c)){var d=Yb(c,"timestamp"),f=b?Yb(b,"timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Pb.prototype;
|
||||||
function Tb(a,b){var c=new P(a,"1.30.0","validate");if(Qb(c)&&Ub(c)){var d=Vb(c,"timestamp"),f=b?Vb(b,"timestamp"):"unknown";d!=f&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Mb.prototype;
|
m.cb=function(a){void 0===a&&(a=this.b||(this.F?1:Rb));if(!this.g){this.g++;var b=!1,c=!1;this.R=!1;var d=this.J||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Rb){if(Tb(d,this.F)){this.j=new O(this,"1.30.0","failsafe");Tb(this.j)&&(Zb(this,d),a=2,$b(this.j));P(this.j,"timestamp",ia());ac(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Xb(d)){var e=Yb(d,"code"),h=Yb(d,"data");e&&("ok"==e?Tb(d,h):("error"==e&&
|
||||||
m.cb=function(a){void 0===a&&(a=this.b||(this.D?1:Ob));if(!this.g){this.g++;var b=!1,c=!1;this.P=!1;var d=this.I||new P(this,"1.30.0");if(-1==a)b=!0;else if(a>Ob){if(Qb(d,this.D)){this.j=new P(this,"1.30.0","failsafe");Qb(this.j)&&(Wb(this,d),a=2,Xb(this.j));Q(this.j,"timestamp",ia());Yb(this.j);var f=this.b&&!this.s;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Ub(d)){var e=Vb(d,"code"),h=Vb(d,"data");e&&("ok"==e?Qb(d,h):("error"==e&&
|
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),$b(d),Tb(d)?(c=Xb(d),f=!0):c=!1))}f&&Wb(this,c?d:null)}else 2==a&&d.clear()}else Wb(this);delete this.F;delete this.J}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=bc(this,h,d,b,c));b=[d,a,c];-1!=a?Vb(this,this.Ob,b):this.Ob(b)}};
|
||||||
"no machine state"!=h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.f=null)):this.X(e+": "+h),Xb(d),Qb(d)?(c=Ub(d),f=!0):c=!1))}f&&Tb(this,c?d:null)}else 2==a&&d.clear()}else Tb(this);delete this.D;delete this.I}f=z(this.id);for(e=0;e<f.length;e++)h=f[e],h!==this&&h!=this.c&&(c=Zb(this,h,d,b,c));b=[d,a,c];-1!=a?Sb(this,this.Nb,b):this.Nb(b)}};
|
function bc(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Yb(c,b.id))||(e=Yb(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Rb,window&&window.location.reload()):a.R=!0,b.ua(null),f=!1)}if(!d&&b.Hb)for(a=b.Hb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||||
function Zb(a,b,c,d,f){if(!b.h.L){b.h.L=!0;if(b.ua){var e=null;f&&((e=Vb(c,b.id))||(e=Vb(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.ua(e,d)&&e&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Ob,window&&window.location.reload()):a.P=!0,b.ua(null),f=!1)}if(!d&&b.Gb)for(a=b.Gb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
m.Ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.da=!0;this.h.L=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.c&&(bc(this,this.c,b,c,a),this.c.Xa());this.R&&(Zb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
||||||
m.Nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.h.L=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.c&&(Zb(this,this.c,b,c,a),this.c.Xa());this.P&&(Wb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
function Zb(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function Wb(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.f||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.url;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function cc(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new O(a,"1.30.0"),h=new O(a,"1.30.0","validate"),g=ia();P(h,"timestamp",g);P(e,"timestamp",g);P(e,"version","1.30.0");P(e,"url",window?window.location.href:null);P(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&xb(a.c),d=a.c.ta(b,c),"object"===typeof d&&P(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&P(e,l.id,d)),c&&(l.h.L=
|
||||||
function $b(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new P(a,"1.30.0"),h=new P(a,"1.30.0","validate"),g=ia();Q(h,"timestamp",g);Q(e,"timestamp",g);Q(e,"version","1.30.0");Q(e,"url",window?window.location.href:null);Q(e,"browser",window?window.navigator.userAgent:"");a.c&&a.c.ta&&(c&&O(a.c),d=a.c.ta(b,c),"object"===typeof d&&Q(e,a.c.id,d),c&&(a.c.h.L=!1,!1===d&&(f=null)));for(var g=z(a.id),k=0;k<g.length;k++){var l=g[k];l.h.L&&(l.ta&&(d=l.ta(b,c),"object"===typeof d&&Q(e,l.id,d)),c&&(l.h.L=
|
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&dc(a,a.f,e.toString()),ac(h)&&ac(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.w.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.u&&this.u.reset&&this.u.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||||
!1,!1===d&&(f=null)))}f&&(c?(g=d=!1,b?(a.f&&ac(a,a.f,e.toString()),Yb(h)&&Yb(e)||(f=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&e.clear(g)):f=e.toString());c&&(a.h.L=!1,b=a.A.power)&&(b.textContent="Power");a.g=0;return f}m.reset=function(){this.v&&this.v.reset&&this.v.reset();for(var a=z(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
|
||||||
m.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
m.stop=function(a,b){for(var c=z(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||||
m.aa=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.g||(d.h.L?$b(d,!1,!0):Sb(d,d.cb))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.u){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");$b(d,a,!0);!a&&d.M?window&&window.location.reload():d.cb(Ob)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.A[b]=
|
m.ba=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.g||(d.h.L?cc(d,!1,!0):Vb(d,d.cb))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.h.L&&!d.g)if(d.b&&!d.A){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");cc(d,a,!0);!a&&d.N?window&&window.location.reload():d.cb(Rb)}else d.reset(),d.c&&d.c.Xa()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.w[b]=
|
||||||
c;c.onclick=function(){var a=Pb(d,!0);if(a){var b=!!(d.b&&!d.u||d.M),c=$b(d,b);b?ac(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
c;c.onclick=function(){var a=Sb(d,!0);if(a){var b=!!(d.b&&!d.A||d.N),c=cc(d,b);b?dc(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function Pb(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=bc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
function Sb(a,b){var c=a.f;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ec(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
||||||
function bc(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Rb(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+cc(a,"1.30.0"));return b}
|
function ec(a,b){a.f=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.f=c.data)}catch(f){q(f.message+" ("+d+")")}return a.f}function Ub(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+fc(a,"1.30.0"));return b}
|
||||||
function ac(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),na("user",""),a.f=null)}}
|
function dc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=fc(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),na("user",""),a.f=null)}}
|
||||||
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Mb(h,d,!0);B(h,e);h.J&&Sb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.h.L&&c.cb(-1)}});
|
m.Ka=function(a){this.c&&this.c.Ka(a);this.i&&this.i.Ka(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],h=A(e),h=new Pb(h,d,!0);B(h,e);h.M&&Vb(h,h.cb)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.da&&!c.h.L&&c.cb(-1)}});
|
||||||
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&$b(c,!(!c.b||c.u),!0)}});function P(a,b,c){this.id=a.id;this.key=cc(a,b,c);this.H=a.H;Xb(this,a.bc)}function cc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=Ea("Computer",c.id))&&c.h.L&&cc(c,!(!c.b||c.A),!0)}});function O(a,b,c){this.id=a.id;this.key=fc(a,b,c);this.I=a.I;$b(this,a.cc)}function fc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||||
P.prototype={constructor:P,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Xb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}}};
|
O.prototype={constructor:O,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){$b(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}}};
|
||||||
function Xb(a,b){a[a.id]={};b&&Q(a,"parms",b);a.c=!1}function Yb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ub(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Qb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Vb(a,b){return a[a.id][b]||null}function Q(a,b,c){try{a[a.id][b]=c}catch(d){}}var dc=0;
|
function $b(a,b){a[a.id]={};b&&P(a,"parms",b);a.c=!1}function ac(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Xb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Tb(a,b){return b?(a[a.id]=b,a.c=!0):a.c?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.c=!0):!1}function Yb(a,b){return a[a.id][b]||null}function P(a,b,c){try{a[a.id][b]=c}catch(d){}}var gc=0;
|
||||||
function ec(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):fc(g,a,b,c,d,f,e)})}
|
function hc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),e(g,null)):ic(g,a,b,c,d,f,e)})}
|
||||||
function fc(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
function ic(a,b,c,d,f,e,h){function g(a,e){if(e)h(e,null);else{if(c){Da(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?gc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?jc(a,e,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
function gc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
function jc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(e=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,r=/( [a-z]+=)(['"])(.*?)\2/g;l=r.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(d[0],h);gc(a,b,c)}})}else c(a,null)}
|
"");a=a.replace(d[0],h);jc(a,b,c)}})}else c(a,null)}
|
||||||
function hc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--dc||ua(!0));k=!1}var h,g,k=!0;dc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
|
function kc(a,b,c,d){function f(a){if(void 0===g){var b=h&&C(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--gc||ua(!0));k=!1}var h,g,k=!0;gc++;Ca[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));r.appendChild(w)}c||
|
||||||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?ec(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--dc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--dc||ua(!0)):e("invalid machine element: "+
|
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,g){g?hc(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--gc||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--gc||ua(!0)):e("invalid machine element: "+
|
||||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?ec(b,a,d,!0,f,l):fc(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return hc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?hc(b,a,d,!0,f,l):ic(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(K){e(K.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return kc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue