Converted all "short" references to "word", since word meant 16-bit in the PDP-11 world, and no one said short back then
This commit is contained in:
parent
a451bbc5bc
commit
a4613082f8
6 changed files with 328 additions and 337 deletions
|
|
@ -109,8 +109,8 @@ function BusPDP11(parmsBus, cpu, dbg)
|
|||
*
|
||||
* [0]: readByte(addr)
|
||||
* [1]: writeByte(b, addr)
|
||||
* [2]: readShort(addr)
|
||||
* [3]: writeShort(w, addr)
|
||||
* [2]: readWord(addr)
|
||||
* [3]: writeWord(w, addr)
|
||||
*
|
||||
* Each of these 4-element arrays are similar to the memory access arrays assigned to entire Memory
|
||||
* blocks, but these handlers generally target a specific address (or handful of addresses), while
|
||||
|
|
@ -159,9 +159,9 @@ BusPDP11.ERROR = {
|
|||
/*
|
||||
* These are our custom controller functions for all IOPAGE accesses.
|
||||
*
|
||||
* Note that we try to have reasonable fall-backs for byte reads when only short read handlers exist,
|
||||
* and short reads if only byte handlers exist. Ditto for writes. These fall-backs may not always be
|
||||
* appropriate; for example, when a byte write falls back to a short write, the address must be read
|
||||
* Note that we try to have reasonable fall-backs for byte reads when only word read handlers exist,
|
||||
* and word reads if only byte handlers exist. Ditto for writes. These fall-backs may not always be
|
||||
* appropriate; for example, when a byte write falls back to a word write, the address must be read
|
||||
* first, and depending on the underlying I/O device, that may or may not have side-effects. It's really
|
||||
* up to the device to know whether that matters, and provide all the necessary handlers if it does.
|
||||
*
|
||||
|
|
@ -201,6 +201,7 @@ BusPDP11.IOController = {
|
|||
return afn[2](addr & ~0x1) >> 8;
|
||||
}
|
||||
}
|
||||
bus.println("warning: unconverted read access to byte @" + str.toOct(addr));
|
||||
return bus.fnAccess(addr, -1, 1);
|
||||
},
|
||||
|
||||
|
|
@ -239,18 +240,19 @@ BusPDP11.IOController = {
|
|||
return;
|
||||
}
|
||||
}
|
||||
bus.println("warning: unconverted write access to byte @" + str.toOct(addr));
|
||||
bus.fnAccess(addr, b, 1);
|
||||
},
|
||||
|
||||
/**
|
||||
* readShort(off, addr)
|
||||
* readWord(off, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @return {number}
|
||||
*/
|
||||
readShort: function(off, addr)
|
||||
readWord: function(off, addr)
|
||||
{
|
||||
var bus = this.controller;
|
||||
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
|
||||
|
|
@ -262,18 +264,19 @@ BusPDP11.IOController = {
|
|||
return afn[0](addr) | (afn[0](addr + 1) << 8);
|
||||
}
|
||||
}
|
||||
bus.println("warning: unconverted read access to word @" + str.toOct(addr));
|
||||
return bus.fnAccess(addr, -1, 0);
|
||||
},
|
||||
|
||||
/**
|
||||
* writeShort(off, w, addr)
|
||||
* writeWord(off, w, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} w (which should already be pre-masked to 16 bits)
|
||||
* @param {number} addr
|
||||
*/
|
||||
writeShort: function(off, w, addr)
|
||||
writeWord: function(off, w, addr)
|
||||
{
|
||||
var bus = this.controller;
|
||||
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
|
||||
|
|
@ -288,6 +291,7 @@ BusPDP11.IOController = {
|
|||
return;
|
||||
}
|
||||
}
|
||||
bus.println("warning: unconverted write access to word @" + str.toOct(addr));
|
||||
bus.fnAccess(addr, w, 0);
|
||||
}
|
||||
};
|
||||
|
|
@ -310,8 +314,8 @@ BusPDP11.prototype.initMemory = function()
|
|||
this.afnIOPage = new Array(4);
|
||||
this.afnIOPage[0] = BusPDP11.IOController.readByte;
|
||||
this.afnIOPage[1] = BusPDP11.IOController.writeByte;
|
||||
this.afnIOPage[2] = BusPDP11.IOController.readShort;
|
||||
this.afnIOPage[3] = BusPDP11.IOController.writeShort;
|
||||
this.afnIOPage[2] = BusPDP11.IOController.readWord;
|
||||
this.afnIOPage[3] = BusPDP11.IOController.writeWord;
|
||||
/*
|
||||
* Map IOPAGE at the top of the address space (as determined by nBusWidth), as well as at IOPAGE_VIRT
|
||||
* (which is the only place that 16-bit code can reach the IOPAGE when memory management is not enabled).
|
||||
|
|
@ -731,37 +735,37 @@ BusPDP11.prototype.getByteDirect = function(addr)
|
|||
};
|
||||
|
||||
/**
|
||||
* getShort(addr)
|
||||
* getWord(addr)
|
||||
*
|
||||
* @this {BusPDP11}
|
||||
* @param {number} addr is a physical address
|
||||
* @return {number} short (16-bit) value at that address
|
||||
* @return {number} word (16-bit) value at that address
|
||||
*/
|
||||
BusPDP11.prototype.getShort = function(addr)
|
||||
BusPDP11.prototype.getWord = function(addr)
|
||||
{
|
||||
var off = addr & this.nBlockLimit;
|
||||
var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
|
||||
if (off != this.nBlockLimit) {
|
||||
return this.aMemBlocks[iBlock].readShort(off, addr);
|
||||
return this.aMemBlocks[iBlock].readWord(off, addr);
|
||||
}
|
||||
return this.aMemBlocks[iBlock++].readByte(off, addr) | (this.aMemBlocks[iBlock & this.nBlockMask].readByte(0, addr + 1) << 8);
|
||||
};
|
||||
|
||||
/**
|
||||
* getShortDirect(addr)
|
||||
* getWordDirect(addr)
|
||||
*
|
||||
* This is useful for the Debugger and other components that want to bypass getShort() breakpoint detection.
|
||||
* This is useful for the Debugger and other components that want to bypass getWord() breakpoint detection.
|
||||
*
|
||||
* @this {BusPDP11}
|
||||
* @param {number} addr is a physical address
|
||||
* @return {number} short (16-bit) value at that address
|
||||
* @return {number} word (16-bit) value at that address
|
||||
*/
|
||||
BusPDP11.prototype.getShortDirect = function(addr)
|
||||
BusPDP11.prototype.getWordDirect = function(addr)
|
||||
{
|
||||
var off = addr & this.nBlockLimit;
|
||||
var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
|
||||
if (off != this.nBlockLimit) {
|
||||
return this.aMemBlocks[iBlock].readShortDirect(off, addr);
|
||||
return this.aMemBlocks[iBlock].readWordDirect(off, addr);
|
||||
}
|
||||
return this.aMemBlocks[iBlock++].readByteDirect(off, addr) | (this.aMemBlocks[iBlock & this.nBlockMask].readByteDirect(0, addr + 1) << 8);
|
||||
};
|
||||
|
|
@ -794,18 +798,18 @@ BusPDP11.prototype.setByteDirect = function(addr, b)
|
|||
};
|
||||
|
||||
/**
|
||||
* setShort(addr, w)
|
||||
* setWord(addr, w)
|
||||
*
|
||||
* @this {BusPDP11}
|
||||
* @param {number} addr is a physical address
|
||||
* @param {number} w is the short (16-bit) value to write (we truncate it to 16 bits to be safe)
|
||||
* @param {number} w is the word (16-bit) value to write (we truncate it to 16 bits to be safe)
|
||||
*/
|
||||
BusPDP11.prototype.setShort = function(addr, w)
|
||||
BusPDP11.prototype.setWord = function(addr, w)
|
||||
{
|
||||
var off = addr & this.nBlockLimit;
|
||||
var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
|
||||
if (off != this.nBlockLimit) {
|
||||
this.aMemBlocks[iBlock].writeShort(off, w & 0xffff, addr);
|
||||
this.aMemBlocks[iBlock].writeWord(off, w & 0xffff, addr);
|
||||
return;
|
||||
}
|
||||
this.aMemBlocks[iBlock++].writeByte(off, w & 0xff, addr);
|
||||
|
|
@ -813,21 +817,21 @@ BusPDP11.prototype.setShort = function(addr, w)
|
|||
};
|
||||
|
||||
/**
|
||||
* setShortDirect(addr, w)
|
||||
* setWordDirect(addr, w)
|
||||
*
|
||||
* This is useful for the Debugger and other components that want to bypass breakpoint detection AND read-only
|
||||
* memory protection (for example, this is an interface the ROM component could use to initialize ROM contents).
|
||||
*
|
||||
* @this {BusPDP11}
|
||||
* @param {number} addr is a physical address
|
||||
* @param {number} w is the short (16-bit) value to write (we truncate it to 16 bits to be safe)
|
||||
* @param {number} w is the word (16-bit) value to write (we truncate it to 16 bits to be safe)
|
||||
*/
|
||||
BusPDP11.prototype.setShortDirect = function(addr, w)
|
||||
BusPDP11.prototype.setWordDirect = function(addr, w)
|
||||
{
|
||||
var off = addr & this.nBlockLimit;
|
||||
var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
|
||||
if (off != this.nBlockLimit) {
|
||||
this.aMemBlocks[iBlock].writeShortDirect(off, w & 0xffff, addr);
|
||||
this.aMemBlocks[iBlock].writeWordDirect(off, w & 0xffff, addr);
|
||||
return;
|
||||
}
|
||||
this.aMemBlocks[iBlock++].writeByteDirect(off, w & 0xff, addr);
|
||||
|
|
@ -955,7 +959,7 @@ BusPDP11.prototype.restoreMemory = function(a)
|
|||
};
|
||||
|
||||
/**
|
||||
* addIOHandlers(start, end, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort)
|
||||
* addIOHandlers(start, end, fnReadByte, fnWriteByte, fnReadWord, fnWriteWord)
|
||||
*
|
||||
* Add I/O notification handlers to the master list (aIOHandlers). The start and end addresses are typically
|
||||
* relative to the starting IOPAGE address, but they can also be absolute; we simply mask all addresses with
|
||||
|
|
@ -966,10 +970,10 @@ BusPDP11.prototype.restoreMemory = function(a)
|
|||
* @param {number} end address
|
||||
* @param {function(number)|null|undefined} fnReadByte
|
||||
* @param {function(number,number)|null|undefined} fnWriteByte
|
||||
* @param {function(number)|null|undefined} fnReadShort
|
||||
* @param {function(number,number)|null|undefined} fnWriteShort
|
||||
* @param {function(number)|null|undefined} fnReadWord
|
||||
* @param {function(number,number)|null|undefined} fnWriteWord
|
||||
*/
|
||||
BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort)
|
||||
BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte, fnReadWord, fnWriteWord)
|
||||
{
|
||||
for (var addr = start; addr <= end; addr += 2) {
|
||||
var off = addr & BusPDP11.IOPAGE_MASK;
|
||||
|
|
@ -977,7 +981,7 @@ BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte,
|
|||
Component.warning("I/O address already registered: " + str.toHexLong(addr));
|
||||
continue;
|
||||
}
|
||||
this.aIOHandlers[off] = [fnReadByte, fnWriteByte, fnReadShort, fnWriteShort, false];
|
||||
this.aIOHandlers[off] = [fnReadByte, fnWriteByte, fnReadWord, fnWriteWord, false];
|
||||
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(addr) + ")");
|
||||
}
|
||||
};
|
||||
|
|
@ -997,9 +1001,9 @@ BusPDP11.prototype.addIOTable = function(component, table)
|
|||
var afn = table[port];
|
||||
var fnReadByte = afn[0]? afn[0].bind(component) : null;
|
||||
var fnWriteByte = afn[1]? afn[1].bind(component) : null;
|
||||
var fnReadShort = afn[2]? afn[2].bind(component) : null;
|
||||
var fnWriteShort = afn[3]? afn[3].bind(component) : null;
|
||||
this.addIOHandlers(+port, +port, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort);
|
||||
var fnReadWord = afn[2]? afn[2].bind(component) : null;
|
||||
var fnWriteWord = afn[3]? afn[3].bind(component) : null;
|
||||
this.addIOHandlers(+port, +port, fnReadByte, fnWriteByte, fnReadWord, fnWriteWord);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -979,7 +979,7 @@ CPUStatePDP11.prototype.readWordFromPhysical = function(physicalAddress)
|
|||
// return this.bus.access_iopage(physicalAddress, -1, 0);
|
||||
// } else {
|
||||
if (physicalAddress >= 0) {
|
||||
return this.bus.getShort(physicalAddress);
|
||||
return this.bus.getWord(physicalAddress);
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
|
@ -1015,7 +1015,7 @@ CPUStatePDP11.prototype.writeWordToPhysical = function(physicalAddress, data)
|
|||
// return this.bus.access_iopage(physicalAddress, data, 0);
|
||||
// } else {
|
||||
if (physicalAddress >= 0) {
|
||||
this.bus.setShort(physicalAddress, data);
|
||||
this.bus.setWord(physicalAddress, data);
|
||||
return data;
|
||||
}
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -590,32 +590,19 @@ if (DEBUGGER) {
|
|||
};
|
||||
|
||||
/**
|
||||
* getWord(dbgAddr, fAdvance)
|
||||
*
|
||||
* @this {DebuggerPDP11}
|
||||
* @param {DbgAddrPDP11} dbgAddr
|
||||
* @param {boolean} [fAdvance]
|
||||
* @return {number}
|
||||
*/
|
||||
DebuggerPDP11.prototype.getWord = function(dbgAddr, fAdvance)
|
||||
{
|
||||
return this.getShort(dbgAddr, fAdvance? 2 : 0);
|
||||
};
|
||||
|
||||
/**
|
||||
* getShort(dbgAddr, inc)
|
||||
* getWord(dbgAddr, inc)
|
||||
*
|
||||
* @this {DebuggerPDP11}
|
||||
* @param {DbgAddrPDP11} dbgAddr
|
||||
* @param {number} [inc]
|
||||
* @return {number}
|
||||
*/
|
||||
DebuggerPDP11.prototype.getShort = function(dbgAddr, inc)
|
||||
DebuggerPDP11.prototype.getWord = function(dbgAddr, inc)
|
||||
{
|
||||
var w = 0xffff;
|
||||
var addr = this.getAddr(dbgAddr, false, 2);
|
||||
if (addr !== PDP11.ADDR_INVALID) {
|
||||
w = this.bus.getShortDirect(addr);
|
||||
w = this.bus.getWordDirect(addr);
|
||||
if (inc) this.incAddr(dbgAddr, inc);
|
||||
}
|
||||
return w;
|
||||
|
|
@ -640,18 +627,18 @@ if (DEBUGGER) {
|
|||
};
|
||||
|
||||
/**
|
||||
* setShort(dbgAddr, w, inc)
|
||||
* setWord(dbgAddr, w, inc)
|
||||
*
|
||||
* @this {DebuggerPDP11}
|
||||
* @param {DbgAddrPDP11} dbgAddr
|
||||
* @param {number} w
|
||||
* @param {number} [inc]
|
||||
*/
|
||||
DebuggerPDP11.prototype.setShort = function(dbgAddr, w, inc)
|
||||
DebuggerPDP11.prototype.setWord = function(dbgAddr, w, inc)
|
||||
{
|
||||
var addr = this.getAddr(dbgAddr, true, 2);
|
||||
if (addr !== PDP11.ADDR_INVALID) {
|
||||
this.bus.setShortDirect(addr, w);
|
||||
this.bus.setWordDirect(addr, w);
|
||||
if (inc) this.incAddr(dbgAddr, inc);
|
||||
this.cpu.updateCPU(true); // we set fForce to true in case video memory was the target
|
||||
}
|
||||
|
|
@ -1513,7 +1500,7 @@ if (DEBUGGER) {
|
|||
*/
|
||||
if (nState >= 0 && this.aaOpcodeCounts.length) {
|
||||
this.cOpcodes++;
|
||||
var opCode = this.bus.getShortDirect(addr);
|
||||
var opCode = this.bus.getWordDirect(addr);
|
||||
if (opCode != null) {
|
||||
var dbgAddr = this.aOpcodeHistory[this.iOpcodeHistory];
|
||||
this.setAddr(dbgAddr, cpu.getPC());
|
||||
|
|
@ -1892,7 +1879,7 @@ if (DEBUGGER) {
|
|||
{
|
||||
var opNames = DebuggerPDP11.OPNAMES;
|
||||
var dbgAddrOp = this.newAddr(dbgAddr.addr);
|
||||
var opCode = this.getWord(dbgAddr, true);
|
||||
var opCode = this.getWord(dbgAddr, 2);
|
||||
|
||||
var opDesc;
|
||||
for (var mask in this.opTable) {
|
||||
|
|
@ -1936,7 +1923,7 @@ if (DEBUGGER) {
|
|||
var sLine = this.toStrAddr(dbgAddrOp) + ":";
|
||||
if (dbgAddrOp.addr !== PDP11.ADDR_INVALID && dbgAddr.addr !== PDP11.ADDR_INVALID) {
|
||||
do {
|
||||
sOpcodes += ' ' + this.toStrBase(this.getWord(dbgAddrOp, true));
|
||||
sOpcodes += ' ' + this.toStrBase(this.getWord(dbgAddrOp, 2));
|
||||
if (dbgAddrOp.addr == null) break;
|
||||
} while (dbgAddrOp.addr != dbgAddr.addr);
|
||||
}
|
||||
|
|
@ -2028,7 +2015,7 @@ if (DEBUGGER) {
|
|||
/*
|
||||
* When using R7 (aka PC), POST-INCREMENT is known as IMMEDIATE
|
||||
*/
|
||||
wIndex = this.getWord(dbgAddr, true);
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = "#" + this.toStrBase(wIndex);
|
||||
}
|
||||
break;
|
||||
|
|
@ -2039,7 +2026,7 @@ if (DEBUGGER) {
|
|||
/*
|
||||
* When using R7 (aka PC), POST-INCREMENT DEFERRED is known as ABSOLUTE
|
||||
*/
|
||||
wIndex = this.getWord(dbgAddr, true);
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = "@#" + this.toStrBase(wIndex);
|
||||
}
|
||||
break;
|
||||
|
|
@ -2050,7 +2037,7 @@ if (DEBUGGER) {
|
|||
sOperand = "@-(" + this.getRegName(reg) + ")";
|
||||
break;
|
||||
case PDP11.OPMODE.INDEX: // 0x6: INDEX
|
||||
wIndex = this.getWord(dbgAddr, true);
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = this.toStrBase(wIndex) + '(' + this.getRegName(reg) + ')';
|
||||
if (reg == 7) {
|
||||
/*
|
||||
|
|
@ -2060,7 +2047,7 @@ if (DEBUGGER) {
|
|||
}
|
||||
break;
|
||||
case PDP11.OPMODE.INDEXD: // 0x7: INDEX DEFERRED
|
||||
wIndex = this.getWord(dbgAddr, true);
|
||||
wIndex = this.getWord(dbgAddr, 2);
|
||||
sOperand = '@' + this.toStrBase(wIndex) + '(' + this.getRegName(reg) + ')';
|
||||
if (reg == 7) {
|
||||
/*
|
||||
|
|
@ -2771,8 +2758,8 @@ if (DEBUGGER) {
|
|||
if (asArgs[0] == "ew") {
|
||||
size = 2;
|
||||
mask = 0xffff;
|
||||
fnGet = this.getShort;
|
||||
fnSet = this.setShort;
|
||||
fnGet = this.getWord;
|
||||
fnSet = this.setWord;
|
||||
}
|
||||
var cch = size << 1;
|
||||
|
||||
|
|
@ -3348,7 +3335,7 @@ if (DEBUGGER) {
|
|||
while (cFrames < nFrames) {
|
||||
var sCall = null, sCallPrev = null, cTests = 256;
|
||||
while ((dbgAddrStack.addr >>> 0) < 0x10000) {
|
||||
dbgAddrCall.addr = this.getWord(dbgAddrStack, true);
|
||||
dbgAddrCall.addr = this.getWord(dbgAddrStack, 2);
|
||||
/*
|
||||
* Because we're using the auto-increment feature of getWord(), and because that will automatically
|
||||
* wrap the offset around the end of the segment, we must also check the addr property to detect the wrap.
|
||||
|
|
|
|||
|
|
@ -384,7 +384,7 @@ MemoryPDP11.prototype = {
|
|||
* setAccess(afn, fDirect)
|
||||
*
|
||||
* The afn parameter should be a 4-entry function table containing two byte handlers and
|
||||
* two short handlers. See the static afnMemory table for an example.
|
||||
* two word handlers. See the static afnMemory table for an example.
|
||||
*
|
||||
* If no function table is specified, a default is selected based on the MemoryPDP11 type;
|
||||
* similarly, any undefined entries in the table are filled with default handlers that fall
|
||||
|
|
@ -419,11 +419,11 @@ MemoryPDP11.prototype = {
|
|||
setReadAccess: function(afn, fDirect) {
|
||||
if (!fDirect || !this.cReadBreakpoints) {
|
||||
this.readByte = afn[0] || this.readNone;
|
||||
this.readShort = afn[2] || this.readShortDefault;
|
||||
this.readWord = afn[2] || this.readWordDefault;
|
||||
}
|
||||
if (fDirect || fDirect === undefined) {
|
||||
this.readByteDirect = afn[0] || this.readNone;
|
||||
this.readShortDirect = afn[2] || this.readShortDefault;
|
||||
this.readWordDirect = afn[2] || this.readWordDefault;
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
|
@ -436,11 +436,11 @@ MemoryPDP11.prototype = {
|
|||
setWriteAccess: function(afn, fDirect) {
|
||||
if (!fDirect || !this.cWriteBreakpoints) {
|
||||
this.writeByte = !this.fReadOnly && afn[1] || this.writeNone;
|
||||
this.writeShort = !this.fReadOnly && afn[3] || this.writeShortDefault;
|
||||
this.writeWord = !this.fReadOnly && afn[3] || this.writeWordDefault;
|
||||
}
|
||||
if (fDirect || fDirect === undefined) {
|
||||
this.writeByteDirect = afn[1] || this.writeNone;
|
||||
this.writeShortDirect = afn[3] || this.writeShortDefault;
|
||||
this.writeWordDirect = afn[3] || this.writeWordDefault;
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
|
@ -450,7 +450,7 @@ MemoryPDP11.prototype = {
|
|||
*/
|
||||
resetReadAccess: function() {
|
||||
this.readByte = this.readByteDirect;
|
||||
this.readShort = this.readShortDirect;
|
||||
this.readWord = this.readWordDirect;
|
||||
},
|
||||
/**
|
||||
* resetWriteAccess()
|
||||
|
|
@ -459,7 +459,7 @@ MemoryPDP11.prototype = {
|
|||
*/
|
||||
resetWriteAccess: function() {
|
||||
this.writeByte = this.fReadOnly? this.writeNone : this.writeByteDirect;
|
||||
this.writeShort = this.fReadOnly? this.writeShortDefault : this.writeShortDirect;
|
||||
this.writeWord = this.fReadOnly? this.writeWordDefault : this.writeWordDirect;
|
||||
},
|
||||
/**
|
||||
* printAddr(sMessage)
|
||||
|
|
@ -543,7 +543,7 @@ MemoryPDP11.prototype = {
|
|||
* if it reads back 0x0000, it will initially think that LOTS of RAM exists, only to be disappointed later
|
||||
* when it performs a more exhaustive memory test, generating unwanted error messages in the process.
|
||||
*
|
||||
* TODO: Determine if we should have separate readByteNone(), readShortNone() and readLongNone() functions
|
||||
* TODO: Determine if we should have separate readByteNone(), readWordNone() and readLongNone() functions
|
||||
* to return 0xff, 0xffff and 0xffffffff|0, respectively. This seems sufficient for now, as it seems unlikely
|
||||
* that a system would require nonexistent memory locations to return ALL bits set.
|
||||
*
|
||||
|
|
@ -575,25 +575,25 @@ MemoryPDP11.prototype = {
|
|||
}
|
||||
},
|
||||
/**
|
||||
* readShortDefault(off, addr)
|
||||
* readWordDefault(off, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @return {number}
|
||||
*/
|
||||
readShortDefault: function readShortDefault(off, addr) {
|
||||
readWordDefault: function readWordDefault(off, addr) {
|
||||
return this.readByte(off++, addr++) | (this.readByte(off, addr) << 8);
|
||||
},
|
||||
/**
|
||||
* writeShortDefault(off, w, addr)
|
||||
* writeWordDefault(off, w, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} w
|
||||
* @param {number} addr
|
||||
*/
|
||||
writeShortDefault: function writeShortDefault(off, w, addr) {
|
||||
writeWordDefault: function writeWordDefault(off, w, addr) {
|
||||
this.writeByte(off++, w & 0xff, addr++);
|
||||
this.writeByte(off, w >> 8, addr);
|
||||
},
|
||||
|
|
@ -612,14 +612,14 @@ MemoryPDP11.prototype = {
|
|||
return ((this.adw[off >> 2] >>> ((off & 0x3) << 3)) & 0xff);
|
||||
},
|
||||
/**
|
||||
* readShortMemory(off, addr)
|
||||
* readWordMemory(off, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @return {number}
|
||||
*/
|
||||
readShortMemory: function readShortMemory(off, addr) {
|
||||
readWordMemory: function readWordMemory(off, addr) {
|
||||
if (BYTEARRAYS) {
|
||||
return this.ab[off] | (this.ab[off + 1] << 8);
|
||||
}
|
||||
|
|
@ -653,14 +653,14 @@ MemoryPDP11.prototype = {
|
|||
this.fDirty = true;
|
||||
},
|
||||
/**
|
||||
* writeShortMemory(off, w, addr)
|
||||
* writeWordMemory(off, w, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} w
|
||||
* @param {number} addr
|
||||
*/
|
||||
writeShortMemory: function writeShortMemory(off, w, addr) {
|
||||
writeWordMemory: function writeWordMemory(off, w, addr) {
|
||||
if (BYTEARRAYS) {
|
||||
this.ab[off] = (w & 0xff);
|
||||
this.ab[off + 1] = (w >> 8);
|
||||
|
|
@ -692,18 +692,18 @@ MemoryPDP11.prototype = {
|
|||
return this.readByteDirect(off, addr);
|
||||
},
|
||||
/**
|
||||
* readShortChecked(off, addr)
|
||||
* readWordChecked(off, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @return {number}
|
||||
*/
|
||||
readShortChecked: function readShortChecked(off, addr) {
|
||||
readWordChecked: function readWordChecked(off, addr) {
|
||||
if (DEBUGGER && this.dbg && this.addr != null) {
|
||||
this.dbg.checkMemoryRead(this.addr + off, 2);
|
||||
}
|
||||
return this.readShortDirect(off, addr);
|
||||
return this.readWordDirect(off, addr);
|
||||
},
|
||||
/**
|
||||
* writeByteChecked(off, b, addr)
|
||||
|
|
@ -720,18 +720,18 @@ MemoryPDP11.prototype = {
|
|||
if (this.fReadOnly) this.writeNone(off, b, addr); else this.writeByteDirect(off, b, addr);
|
||||
},
|
||||
/**
|
||||
* writeShortChecked(off, w, addr)
|
||||
* writeWordChecked(off, w, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @param {number} w
|
||||
*/
|
||||
writeShortChecked: function writeShortChecked(off, w, addr) {
|
||||
writeWordChecked: function writeWordChecked(off, w, addr) {
|
||||
if (DEBUGGER && this.dbg && this.addr != null) {
|
||||
this.dbg.checkMemoryWrite(this.addr + off, 2)
|
||||
}
|
||||
if (this.fReadOnly) this.writeNone(off, w, addr); else this.writeShortDirect(off, w, addr);
|
||||
if (this.fReadOnly) this.writeNone(off, w, addr); else this.writeWordDirect(off, w, addr);
|
||||
},
|
||||
/**
|
||||
* readByteBE(off, addr)
|
||||
|
|
@ -756,28 +756,28 @@ MemoryPDP11.prototype = {
|
|||
return this.ab[off];
|
||||
},
|
||||
/**
|
||||
* readShortBE(off, addr)
|
||||
* readWordBE(off, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @return {number}
|
||||
*/
|
||||
readShortBE: function readShortBE(off, addr) {
|
||||
readWordBE: function readWordBE(off, addr) {
|
||||
return this.dv.getUint16(off, true);
|
||||
},
|
||||
/**
|
||||
* readShortLE(off, addr)
|
||||
* readWordLE(off, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @return {number}
|
||||
*/
|
||||
readShortLE: function readShortLE(off, addr) {
|
||||
readWordLE: function readWordLE(off, addr) {
|
||||
/*
|
||||
* TODO: It remains to be seen if there's any advantage to checking the offset for an aligned read
|
||||
* vs. always reading the bytes separately; it seems a safe bet for longs, but it's less clear for shorts.
|
||||
* vs. always reading the bytes separately.
|
||||
*/
|
||||
return (off & 0x1)? (this.ab[off] | (this.ab[off+1] << 8)) : this.aw[off >> 1];
|
||||
},
|
||||
|
|
@ -806,29 +806,29 @@ MemoryPDP11.prototype = {
|
|||
this.fDirty = true;
|
||||
},
|
||||
/**
|
||||
* writeShortBE(off, w, addr)
|
||||
* writeWordBE(off, w, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @param {number} w
|
||||
*/
|
||||
writeShortBE: function writeShortBE(off, w, addr) {
|
||||
writeWordBE: function writeWordBE(off, w, addr) {
|
||||
this.dv.setUint16(off, w, true);
|
||||
this.fDirty = true;
|
||||
},
|
||||
/**
|
||||
* writeShortLE(off, w, addr)
|
||||
* writeWordLE(off, w, addr)
|
||||
*
|
||||
* @this {MemoryPDP11}
|
||||
* @param {number} off
|
||||
* @param {number} addr
|
||||
* @param {number} w
|
||||
*/
|
||||
writeShortLE: function writeShortLE(off, w, addr) {
|
||||
writeWordLE: function writeWordLE(off, w, addr) {
|
||||
/*
|
||||
* TODO: It remains to be seen if there's any advantage to checking the offset for an aligned write
|
||||
* vs. always writing the bytes separately; it seems a safe bet for longs, but it's less clear for shorts.
|
||||
* vs. always writing the bytes separately.
|
||||
*/
|
||||
if (off & 0x1) {
|
||||
this.ab[off] = w;
|
||||
|
|
@ -842,13 +842,13 @@ MemoryPDP11.prototype = {
|
|||
|
||||
/*
|
||||
* This is the effective definition of afnNone, but we need not fully define it, because setAccess()
|
||||
* uses these defaults when any of the 4 handlers (ie, 2 byte handlers and 2 short handlers) are undefined.
|
||||
* uses these defaults when any of the 4 handlers (ie, 2 byte handlers and 2 word handlers) are undefined.
|
||||
*
|
||||
MemoryPDP11.afnNone = [
|
||||
MemoryPDP11.prototype.readNone,
|
||||
MemoryPDP11.prototype.writeNone,
|
||||
MemoryPDP11.prototype.readShortDefault,
|
||||
MemoryPDP11.prototype.writeShortDefault
|
||||
MemoryPDP11.prototype.readWordDefault,
|
||||
MemoryPDP11.prototype.writeWordDefault
|
||||
];
|
||||
*/
|
||||
MemoryPDP11.afnNone = [];
|
||||
|
|
@ -856,30 +856,30 @@ MemoryPDP11.afnNone = [];
|
|||
MemoryPDP11.afnMemory = [
|
||||
MemoryPDP11.prototype.readByteMemory,
|
||||
MemoryPDP11.prototype.writeByteMemory,
|
||||
MemoryPDP11.prototype.readShortMemory,
|
||||
MemoryPDP11.prototype.writeShortMemory
|
||||
MemoryPDP11.prototype.readWordMemory,
|
||||
MemoryPDP11.prototype.writeWordMemory
|
||||
];
|
||||
|
||||
MemoryPDP11.afnChecked = [
|
||||
MemoryPDP11.prototype.readByteChecked,
|
||||
MemoryPDP11.prototype.writeByteChecked,
|
||||
MemoryPDP11.prototype.readShortChecked,
|
||||
MemoryPDP11.prototype.writeShortChecked
|
||||
MemoryPDP11.prototype.readWordChecked,
|
||||
MemoryPDP11.prototype.writeWordChecked
|
||||
];
|
||||
|
||||
if (TYPEDARRAYS) {
|
||||
MemoryPDP11.afnArrayBE = [
|
||||
MemoryPDP11.prototype.readByteBE,
|
||||
MemoryPDP11.prototype.writeByteBE,
|
||||
MemoryPDP11.prototype.readShortBE,
|
||||
MemoryPDP11.prototype.writeShortBE
|
||||
MemoryPDP11.prototype.readWordBE,
|
||||
MemoryPDP11.prototype.writeWordBE
|
||||
];
|
||||
|
||||
MemoryPDP11.afnArrayLE = [
|
||||
MemoryPDP11.prototype.readByteLE,
|
||||
MemoryPDP11.prototype.writeByteLE,
|
||||
MemoryPDP11.prototype.readShortLE,
|
||||
MemoryPDP11.prototype.writeShortLE
|
||||
MemoryPDP11.prototype.readWordLE,
|
||||
MemoryPDP11.prototype.writeWordLE
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,81 +3,81 @@ function ba(a,b){var d;if(a){b||(b=10);var c=a.charAt(0),e=0<a.indexOf(",");e&&(
|
|||
c.match(/^[01]+$/):c.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(d=f|0)}return d}function ca(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 e=a&15,e=e+(0<=e&&9>=e?48:55),c=String.fromCharCode(e)+c;a>>=4}return(d?"0x":"")+c}
|
||||
function da(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 na(a,b){return(a+" ").slice(0,b)}
|
||||
function oa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function qa(a,b,d){var c=0,e=a.length,f=0;for(d||(d=function(a,b){return a>b?1:a<b?-1:0});c<e;){var g=c+e>>1,h;h=d(b,a[g]);0<h?c=g+1:(e=g,f=!h)}return f?c:~c}var ra=Date.now||function(){return+new Date};function sa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function wa(a,b,d,c){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return c&&c(a,f,e),[f,e];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),c&&c(a,f,e))});if(b&&"object"==
|
||||
function ta(a,b,d,c){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return c&&c(a,f,e),[f,e];if(d&&"function"==typeof resources)return resources(a,function(b,d){c&&c(a,b,d)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");d&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),c&&c(a,f,e))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!d);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!d),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();d||(f=h.responseText,200!=h.status&&(e=h.status||-1),c&&c(a,f,e),g=[f,e]);return g}function ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function t(a){window&&window.alert(a)}function xa(a){var b=!1;window&&(b=window.confirm(a));return b}var ya=null;function za(){if(null==ya){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}ya=a}return ya}function Aa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(d){}return b}
|
||||
function Ba(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Ca(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 Da(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
|
||||
function Ea(a,b){function d(){b(100===c)&&(e=setTimeout(d,c),c=100)}var c=0,e=null,f=!1;a.onmousedown=function(){f||e||(c=500,d())};a.ontouchstart=function(){e||(c=500,d())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ja={init:[],show:[],exit:[]},Ka=!1,La=!1,Ma=!0;function Na(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Oa(a){Ja.init.push(a)}
|
||||
function Pa(a){if(Ma)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 Qa(a){!Ma&&a?(Ma=!0,Ka&&Ra("init"),La&&Ra("show")):Ma=a}function Ra(a){Ja[a]&&Pa(Ja[a])}Na("onload",function(){Ka=!0;Pa(Ja.init)});Na("onpageshow",function(){La=!0;Pa(Ja.show)});Na(Ca("Opera")||Ca("iOS")?"onunload":"onbeforeunload",function(){Pa(Ja.exit)});
|
||||
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.rc=b.comment;this.Pc=b;b=this.id.indexOf(".");0>b?this.Fb=this.id:(this.tc=this.id.substr(0,b),this.Fb=this.id.substr(b+1));this[a]=d;this.j={ready:!1,qb:!1,hc:!1,ga:!1,error:!1};this.$b=null;this.j.error=!1;this.P={};this.I=null;this.ja=c||0;v.push(this)}var Sa=void 0,Ta={};
|
||||
function Ea(a,b){function d(){b(100===c)&&(e=setTimeout(d,c),c=100)}var c=0,e=null,f=!1;a.onmousedown=function(){f||e||(c=500,d())};a.ontouchstart=function(){e||(c=500,d())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Fa={init:[],show:[],exit:[]},Ka=!1,La=!1,Ma=!0;function Na(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Oa(a){Fa.init.push(a)}
|
||||
function Pa(a){if(Ma)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 Qa(a){!Ma&&a?(Ma=!0,Ka&&Ra("init"),La&&Ra("show")):Ma=a}function Ra(a){Fa[a]&&Pa(Fa[a])}Na("onload",function(){Ka=!0;Pa(Fa.init)});Na("onpageshow",function(){La=!0;Pa(Fa.show)});Na(Ca("Opera")||Ca("iOS")?"onunload":"onbeforeunload",function(){Pa(Fa.exit)});
|
||||
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.rc=b.comment;this.Pc=b;b=this.id.indexOf(".");0>b?this.Fb=this.id:(this.tc=this.id.substr(0,b),this.Fb=this.id.substr(b+1));this[a]=d;this.j={ready:!1,qb:!1,ic:!1,ga:!1,error:!1};this.ac=null;this.j.error=!1;this.P={};this.I=null;this.ja=c||0;v.push(this)}var Sa=void 0,Ta={};
|
||||
if(window){Sa||(Sa=window.location.search.substr(1));for(var Ua,Va=/\+/g,Wa=/([^&=]+)=?([^&]*)/g;Ua=Wa.exec(Sa);)Ta[decodeURIComponent(Ua[1].replace(Va," "))]=decodeURIComponent(Ua[2].replace(Va," "))}function Xa(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=Xa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ya=window.PCjs.Machines||(window.PCjs.Machines={}),v=window.PCjs.Components||(window.PCjs.Components=[])}else Ya={},v=[];function Za(a,b,d){Ya[a]&&b&&(Ya[a][b]=d)}function $a(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 ab(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 y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
|
||||
function bb(a,b){b=B(b.parentNode,"pdp11-control");for(var d=0;d<b.length;d++)for(var c=b[d].childNodes,e=0;e<c.length;e++){var f=c[e];if(1===f.nodeType){var g=f.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=y(f))&&g.binding&&a.wa(g.type,g.binding,f,g.value),k=h.length}}}}
|
||||
function B(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)e.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},wa:function(a,b,d){switch(b){case "clear":return this.P[b]||(this.P[b]=d,d.onclick=function(a){return function(){a.P.print&&(a.P.print.value="")}}(this)),!0;case "print":return this.P[b]||(this.ib=this.P[b]=d,d.value="",this.i=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}}(d),
|
||||
this.sa=function(a){this.i(a,this.Fb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.Fb+": "+a)},sa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Qa:function(){return this.j.ga=!0},Pa:function(a,b){b&&(this.j.ga=!1);return!0}};function cb(a,b){if(a.I){a===a.I?b|=0:b=b||a.ja;var d=a.I.ja&b;return!!b&&d===b||!!(d&a.I.Kc)}return!1}
|
||||
function db(a,b){if(a.j.hc)return a.j.qb&&(a.j.qb=!1),a.j.hc=!1;if(a.j.error)return a.i(a.toString()+" error"),!1;a.j.qb=b;return a.j.qb}function pb(a,b){a.j.qb&&(b?a.j.hc=!0:void 0===b&&a.i(a.toString()+" busy"));return a.j.qb}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.$b;a.$b=null;b&&b()}}function qb(a,b){b&&(a.j.ready?b():a.$b=b);return a.j.ready}function rb(a,b){a.j.error=!0;a.sa(b)}
|
||||
this.sa=function(a){this.i(a,this.Fb)}),!0;default:return!1}},log:function(){},i:function(){},status:function(a){this.i(this.Fb+": "+a)},sa:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},Qa:function(){return this.j.ga=!0},Pa:function(a,b){b&&(this.j.ga=!1);return!0}};function cb(a,b){if(a.I){a===a.I?b|=0:b=b||a.ja;var d=a.I.ja&b;return!!b&&d===b||!!(d&a.I.Jc)}return!1}
|
||||
function db(a,b){if(a.j.ic)return a.j.qb&&(a.j.qb=!1),a.j.ic=!1;if(a.j.error)return a.i(a.toString()+" error"),!1;a.j.qb=b;return a.j.qb}function eb(a,b){a.j.qb&&(b?a.j.ic=!0:void 0===b&&a.i(a.toString()+" busy"));return a.j.qb}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.ac;a.ac=null;b&&b()}}function qb(a,b){b&&(a.j.ready?b():a.ac=b);return a.j.ready}function rb(a,b){a.j.error=!0;a.sa(b)}
|
||||
var sb="undefined"!==typeof ArrayBuffer,tb=2,E=4,F=6,tb=0|tb,ub=1|tb,E=0|E,vb=1|E,F=0|F,G=1|F,H={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 wb(a){u.call(this,"Panel",a,wb)}w(wb);l=wb.prototype;l.wa=function(a,b,d,c){return this.w&&this.w.wa(a,b,d,c)||this.b&&this.b.wa(a,b,d,c)||this.I&&this.I.wa(a,b,d,c)?!0:this.parent.wa.call(this,a,b,d,c)};
|
||||
l.$a=function(a,b,d,c){this.w=a;this.H=b;this.b=d;this.I=c};l.Qa=function(a,b){b||xb();return!0};l.Pa=function(){return!0};l.Ba=function(){};function xb(){for(var a=!1,b=B(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],e=y(c),f;a:{f=e.id;if(void 0!==f){var g;for(g=0;g<v.length;g++)if(v[g].id===f){f=v[g];break a}}f=null}f||(a=!0,f=new wb(e));bb(f,c);a&&D(f)}}Oa(xb);
|
||||
function yb(a,b,d){u.call(this,"Bus",a,yb);this.b=b;this.I=d;this.O=a.busWidth||16;this.G=Math.pow(2,this.O);this.H=this.G-1|0;this.Z=(this.O>>1)+2;10>this.Z&&(this.Z=10);15<this.Z&&(this.Z=15);this.Da=1<<this.Z;this.R=this.Da>>2;this.g=this.Da-1;this.u=this.G/this.Da|0;this.w=this.u-1;this.Wa=[];this.J=null;this.Mb=this.Gc;a=new I;zb(a,this.I);this.S=Array(this.u);for(b=0;b<this.u;b++)this.S[b]=a;this.Gb=Array(4);this.Gb[0]=Ab;this.Gb[1]=Bb;this.Gb[2]=Cb;this.Gb[3]=Db;Eb(this,this.G-8192,8192,Fb,
|
||||
this);Eb(this,57344,8192,Fb,this);D(this)}w(yb);function Ab(a,b){var d=this.controller,c=d.Wa[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=d.Wa[a&-2],c[2]))return c[2](b&-2)>>8;return d.Mb(b,-1,1)}
|
||||
function Bb(a,b,d){var c=this.controller,e=c.Wa[a];if(e){if(e[1]){e[1](b,d);return}if(e[3]){a=e[2]?e[2](d):0;if(d&1)e[3](a&255|b<<8,d&-2);else e[3](a&-256|b,d);return}}else if(d&1&&(e=c.Wa[a&-2],e[3])){d&=-2;a=e[2]?e[2](d):0;e[3](a&255|b<<8,d);return}c.Mb(d,b,1)}function Cb(a,b){var d=this.controller;if(a=d.Wa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}return d.Mb(b,-1,0)}
|
||||
function Db(a,b,d){var c=this.controller;if(a=c.Wa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}c.Mb(d,b,0)}l=yb.prototype;l.reset=function(){this.J&&this.J()};l.Gc=function(){return 0};l.Qa=function(a,b){b||this.reset();return!0};
|
||||
function yb(a,b,d){u.call(this,"Bus",a,yb);this.b=b;this.I=d;this.O=a.busWidth||16;this.G=Math.pow(2,this.O);this.H=this.G-1|0;this.Z=(this.O>>1)+2;10>this.Z&&(this.Z=10);15<this.Z&&(this.Z=15);this.Da=1<<this.Z;this.R=this.Da>>2;this.g=this.Da-1;this.u=this.G/this.Da|0;this.w=this.u-1;this.Wa=[];this.J=null;this.Lb=this.Fc;a=new I;zb(a,this.I);this.S=Array(this.u);for(b=0;b<this.u;b++)this.S[b]=a;this.Gb=Array(4);this.Gb[0]=Ab;this.Gb[1]=Bb;this.Gb[2]=Cb;this.Gb[3]=Db;Eb(this,this.G-8192,8192,Fb,
|
||||
this);Eb(this,57344,8192,Fb,this);D(this)}w(yb);function Ab(a,b){var d=this.controller,c=d.Wa[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=d.Wa[a&-2],c[2]))return c[2](b&-2)>>8;d.i("warning: unconverted read access to byte @"+ca(b));return d.Lb(b,-1,1)}
|
||||
function Bb(a,b,d){var c=this.controller,e=c.Wa[a];if(e){if(e[1]){e[1](b,d);return}if(e[3]){a=e[2]?e[2](d):0;if(d&1)e[3](a&255|b<<8,d&-2);else e[3](a&-256|b,d);return}}else if(d&1&&(e=c.Wa[a&-2],e[3])){d&=-2;a=e[2]?e[2](d):0;e[3](a&255|b<<8,d);return}c.i("warning: unconverted write access to byte @"+ca(d));c.Lb(d,b,1)}
|
||||
function Cb(a,b){var d=this.controller;if(a=d.Wa[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}d.i("warning: unconverted read access to word @"+ca(b));return d.Lb(b,-1,0)}function Db(a,b,d){var c=this.controller;if(a=c.Wa[a]){if(a[3]){a[3](b,d);return}if(a[1]){a[1](b&255,d);a[1](b>>8,d+1);return}}c.i("warning: unconverted write access to word @"+ca(d));c.Lb(d,b,0)}l=yb.prototype;l.reset=function(){this.J&&this.J()};l.Fc=function(){return 0};l.Qa=function(a,b){b||this.reset();return!0};
|
||||
function Eb(a,b,d,c,e){for(var f=b,g=d,h=f>>>a.Z;0<g&&h<a.S.length;){var k=a.S[h],m=h*a.Da,n=a.Da-(f-m);n>g&&(n=g);if(k&&k.size){if(k.type==c&&k.controller==e){if(f+g<=k.A)return k.Zb+=k.A-f,k.A=f,!0;if(f>=k.A+k.Zb){n=k.size-(f-m);n>g&&(n=g);k.Zb=f-k.A+n;f=m+a.Da;g-=n;h++;continue}}return Gb(1,f,g)}f=new I(f,n,a.Da,c,e);zb(f,a.I,k);a.S[h++]=f;f=m+a.Da;g-=n}return 0>=g?(a.status(Math.floor(d/1024)+"Kb "+Hb[c]+" at "+r(b,8,!0)),!0):Gb(2,b,d)}
|
||||
l.Nb=function(a){return this.S[(a&this.H)>>>this.Z].wb(a&this.g,a)};l.La=function(a){var b=a&this.g,d=(a&this.H)>>>this.Z;return b!=this.g?this.S[d].zc(b,a):this.S[d++].wb(b,a)|this.S[d&this.w].wb(0,a+1)<<8};function Ib(a,b){var d=b&a.g,c=(b&a.H)>>>a.Z;return d!=a.g?a.S[c].mc(d,b):a.S[c++].Tb(d,b)|a.S[c&a.w].Tb(0,b+1)<<8}l.fc=function(a,b){this.S[(a&this.H)>>>this.Z].Bb(a&this.g,b&255,a)};
|
||||
l.oc=function(a,b){var d=a&this.g,c=(a&this.H)>>>this.Z;d!=this.g?this.S[c].Fc(d,b&65535,a):(this.S[c++].Bb(d,b&255,a),this.S[c&this.w].Bb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,d=[],c=0;c<a.u;c++){var e=a.S[c];if(e.Za||e.Nc){d[b++]=c;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}d[f]=e}}return d}function Gb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
||||
function Vb(a){u.call(this,"Device",a,Vb);this.g={lc:[],Ma:0,xa:128,g:127,Mc:0};this.w={data:0,od:0,sb:20,kd:0};this.u={Ob:0,K:0};this.G={Vb:2496,oa:0,T:128,Wb:0,Ub:0,va:0,Ac:0,ra:[],gb:[406,406,406,406],aa:[12,12,12,12]};this.J={K:129,Jb:0,fa:0,ab:0,Xa:0,eb:0,ra:[],aa:[40,40,40,40],gb:[1024,1024,512,512],Ic:[157,157,29,29]};this.O={b:[8210,8208,8210,8226],aa:[22,22,22,50],fb:[19,19,19,32],gc:[815,411,815,630],ra:[],U:2176,zb:0,xb:0,Fa:[0,0,0,0,0,0,0,0],Ea:0,ta:[4544,4544,4544,4544,4544,4544,4544,
|
||||
4544],yb:[0,0,0,0,0,0,0,0],nb:0,hd:[0,0,0,0,0,0,0,0],Bc:0,Cc:[0,0,0,0,0,0,0,0],I:[0,0,0,0,0,0,0,0],jd:[1,2,3,4,5,6,7,8],Dc:[0,0,0,0,0,0,0,0],Ta:[0,0,0,0,0,0,0,0],ec:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],gd:[0,0,0,0,0,0,0,0],dd:[0,0,0,0,0,0,0,0],ed:[0,0,0,0,0,0,0,0],cb:0,nc:0}}w(Vb);
|
||||
l.Mb=function(a){return this.S[(a&this.H)>>>this.Z].wb(a&this.g,a)};l.La=function(a){var b=a&this.g,d=(a&this.H)>>>this.Z;return b!=this.g?this.S[d].Tb(b,a):this.S[d++].wb(b,a)|this.S[d&this.w].wb(0,a+1)<<8};function Ib(a,b){var d=b&a.g,c=(b&a.H)>>>a.Z;return d!=a.g?a.S[c].mc(d,b):a.S[c++].Sb(d,b)|a.S[c&a.w].Sb(0,b+1)<<8}l.gc=function(a,b){this.S[(a&this.H)>>>this.Z].Bb(a&this.g,b&255,a)};
|
||||
l.oc=function(a,b){var d=a&this.g,c=(a&this.H)>>>this.Z;d!=this.g?this.S[c].Ec(d,b&65535,a):(this.S[c++].Bb(d,b&255,a),this.S[c&this.w].Bb(0,b>>8&255,a+1))};function Jb(a){for(var b=0,d=[],c=0;c<a.u;c++){var e=a.S[c];if(e.Za||e.Nc){d[b++]=c;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}d[f]=e}}return d}function Gb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}
|
||||
function Kb(a){u.call(this,"Device",a,Kb);this.g={lc:[],Ma:0,xa:128,g:127,Lc:0};this.w={data:0,od:0,sb:20,kd:0};this.u={Nb:0,K:0};this.G={Vb:2496,oa:0,T:128,Wb:0,Ub:0,va:0,zc:0,ra:[],gb:[406,406,406,406],aa:[12,12,12,12]};this.J={K:129,Jb:0,fa:0,ab:0,Xa:0,eb:0,ra:[],aa:[40,40,40,40],gb:[1024,1024,512,512],Hc:[157,157,29,29]};this.O={b:[8210,8208,8210,8226],aa:[22,22,22,50],fb:[19,19,19,32],hc:[815,411,815,630],ra:[],U:2176,zb:0,xb:0,Fa:[0,0,0,0,0,0,0,0],Ea:0,ta:[4544,4544,4544,4544,4544,4544,4544,
|
||||
4544],yb:[0,0,0,0,0,0,0,0],nb:0,hd:[0,0,0,0,0,0,0,0],Ac:0,Bc:[0,0,0,0,0,0,0,0],I:[0,0,0,0,0,0,0,0],jd:[1,2,3,4,5,6,7,8],Cc:[0,0,0,0,0,0,0,0],Ta:[0,0,0,0,0,0,0,0],fc:[0,0,0,0,0,0,0,0],fd:[0,0,0,0,0,0,0,0],gd:[0,0,0,0,0,0,0,0],dd:[0,0,0,0,0,0,0,0],ed:[0,0,0,0,0,0,0,0],cb:0,nc:0}}w(Kb);
|
||||
var Wb=[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,
|
||||
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];l=Vb.prototype;
|
||||
l.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;a=Xb;for(var e in a){var f=a[e];d=b;c=+e;for(var g=f[0]?f[0].bind(this):null,h=f[1]?f[1].bind(this):null,k=f[2]?f[2].bind(this):null,f=f[3]?f[3].bind(this):null,m=+e;m<=c;m+=2){var n=m&8191;void 0!==d.Wa[n]?t("I/O address already registered: "+r(m,8,!0)):d.Wa[n]=[g,h,k,f,!1]}}e=this.Hc.bind(this);b.J=this.reset.bind(this);b.Mb=e;D(this)};l.Zc=function(){return Yb(this.b)};l.md=function(a){Zb(this.b,a&-1809|Yb(this.b)&1808);this.b.V|=128};l.$c=function(){return this.g.xa};
|
||||
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];l=Kb.prototype;
|
||||
l.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;a=Xb;for(var e in a){var f=a[e];d=b;c=+e;for(var g=f[0]?f[0].bind(this):null,h=f[1]?f[1].bind(this):null,k=f[2]?f[2].bind(this):null,f=f[3]?f[3].bind(this):null,m=+e;m<=c;m+=2){var n=m&8191;void 0!==d.Wa[n]?t("I/O address already registered: "+r(m,8,!0)):d.Wa[n]=[g,h,k,f,!1]}}e=this.Gc.bind(this);b.J=this.reset.bind(this);b.Lb=e;D(this)};l.Zc=function(){return Yb(this.b)};l.md=function(a){Zb(this.b,a&-1809|Yb(this.b)&1808);this.b.V|=128};l.$c=function(){return this.g.xa};
|
||||
l.nd=function(a){var b=this;128==(this.g.xa&192)&&a&64&&J(this.b,8,4,52,function(){b.g.xa|=128;return!!(b.g.xa&64)});this.g.xa=this.g.xa&128|a&-129};
|
||||
function $b(a){var b=a.G,d,c,e,f=b.va>>13&7;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.ad,drive:f,blocksize:256,mapped:0,maxblock:b.gb[f]*b.aa[f],url:"rk"+f+".dsk"});b.T&=-129;switch(b.T>>1&7){case 0:b.Vb=2496;b.oa=0;b.T=128;b.va=0;break;case 1:if((b.va>>4&511)>=b.gb[f]){b.oa|=32832;b.T|=49152;break}if((b.va&15)>=b.aa[f]){b.oa|=32800;b.T|=49152;break}d=(b.va>>4&511)*b.aa[f]+(b.va&15);c=(b.T&48)<<12|b.Ub;e=65536-b.Wb&65535;ac(a,b.ra[f],d,c,e);return;case 2:if((b.va>>4&511)>=b.gb[f])b.oa|=
|
||||
32832,b.T|=49152;else if((b.va&15)>=b.aa[f])b.oa|=32800,b.T|=49152;else{d=(b.va>>4&511)*b.aa[f]+(b.va&15);c=(b.T&48)<<12|b.Ub;e=65536-b.Wb&65535;a.cc(b.ra[f],d,c,e);return}}b.Vb=f<<13|b.Vb&8176|b.va%9&15;J(a.b,20,5,144,function(){b.T=b.T&65534|128;return!!(b.T&64)})}l.ad=function(a,b,d,c,e){var f=this.G;f.Ub=c&65535;f.T=f.T&-49|c>>12&48;f.Wb=65536-e&65535;switch(a){case 1:f.oa|=33024;f.T|=49152;break;case 2:f.oa|=33792,f.T|=49152}J(this.b,20,5,144,function(){f.T=f.T&65534|128;return!!(f.T&64)})};
|
||||
function bc(a){var b=a.J,d,c,e,f=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.bd,drive:f,blocksize:128,mapped:1,maxblock:b.gb[f]*b.aa[f],url:"rl"+f+".dsk"});switch(b.K>>1&7){case 2:b.ab&8&&(b.K&=63);b.ab=b.Ic[f]|b.eb&64;break;case 3:1==(b.fa&3)&&(b.eb=b.fa&4?b.eb+(b.fa&65408)&65408|b.fa<<2&64:b.eb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.eb);break;case 4:b.ab=b.eb;break;case 5:if(b.fa>>6>=b.gb[f]){b.K|=37888;break}if((b.fa&63)>=b.aa[f]){b.K|=37888;break}d=(b.fa>>6)*
|
||||
b.aa[f]+(b.fa&63);c=(b.Xa&63)<<16|b.Jb;e=65536-b.ab&65535;ac(a,b.ra[f],d,c,e);return;case 6:if(b.fa>>6>=b.gb[f])b.K|=37888;else if((b.fa&63)>=b.aa[f])b.K|=37888;else{d=(b.fa>>6)*b.aa[f]+(b.fa&63);c=(b.Xa&63)<<16|b.Jb;e=65536-b.ab&65535;a.cc(b.ra[f],d,c,e);return}}J(a.b,20,5,112,function(){b.K|=129;return!!(b.K&64)})}
|
||||
32832,b.T|=49152;else if((b.va&15)>=b.aa[f])b.oa|=32800,b.T|=49152;else{d=(b.va>>4&511)*b.aa[f]+(b.va&15);c=(b.T&48)<<12|b.Ub;e=65536-b.Wb&65535;a.dc(b.ra[f],d,c,e);return}}b.Vb=f<<13|b.Vb&8176|b.va%9&15;J(a.b,20,5,144,function(){b.T=b.T&65534|128;return!!(b.T&64)})}l.ad=function(a,b,d,c,e){var f=this.G;f.Ub=c&65535;f.T=f.T&-49|c>>12&48;f.Wb=65536-e&65535;switch(a){case 1:f.oa|=33024;f.T|=49152;break;case 2:f.oa|=33792,f.T|=49152}J(this.b,20,5,144,function(){f.T=f.T&65534|128;return!!(f.T&64)})};
|
||||
function bc(a){var b=a.J,d,c,e,f=b.K>>8&3;b.K&=-2;"undefined"===typeof b.ra[f]&&(b.ra[f]={cache:[],postProcess:a.bd,drive:f,blocksize:128,mapped:1,maxblock:b.gb[f]*b.aa[f],url:"rl"+f+".dsk"});switch(b.K>>1&7){case 2:b.ab&8&&(b.K&=63);b.ab=b.Hc[f]|b.eb&64;break;case 3:1==(b.fa&3)&&(b.eb=b.fa&4?b.eb+(b.fa&65408)&65408|b.fa<<2&64:b.eb-(b.fa&65408)&65408|b.fa<<2&64,b.fa=b.eb);break;case 4:b.ab=b.eb;break;case 5:if(b.fa>>6>=b.gb[f]){b.K|=37888;break}if((b.fa&63)>=b.aa[f]){b.K|=37888;break}d=(b.fa>>6)*
|
||||
b.aa[f]+(b.fa&63);c=(b.Xa&63)<<16|b.Jb;e=65536-b.ab&65535;ac(a,b.ra[f],d,c,e);return;case 6:if(b.fa>>6>=b.gb[f])b.K|=37888;else if((b.fa&63)>=b.aa[f])b.K|=37888;else{d=(b.fa>>6)*b.aa[f]+(b.fa&63);c=(b.Xa&63)<<16|b.Jb;e=65536-b.ab&65535;a.dc(b.ra[f],d,c,e);return}}J(a.b,20,5,112,function(){b.K|=129;return!!(b.K&64)})}
|
||||
l.bd=function(a,b,d,c,e){var f=this.J;f.Jb=c&65535;f.K=f.K&-49|c>>12&48;f.Xa=c>>16&63;f.fa=~~(d/f.aa[b.Oa])<<6|d%f.aa[b.Oa];f.eb=f.fa;f.ab=65536-e&65535;switch(a){case 1:f.K|=33792;break;case 2:f.K|=40960}J(this.b,20,5,112,function(){f.K|=129;return!!(f.K&64)})};function cc(a){a=a.O;a.U=2176;a.Ea=0;a.ta=[4544,4544,4544,4544,4544,4544,4544,4544];a.yb=[0,0,0,0,0,0,0,0];a.nb=a.zb=a.xb=a.cb=a.nc=0}
|
||||
function dc(a,b){var d=a.O,c,e,f;d.U&=-16513;d.Ea&=-2049;d.ta[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof d.ra[b]&&(d.ra[b]={cache:[],postProcess:a.cd,drive:b,blocksize:256,mapped:0,maxblock:d.gc[0]*d.fb[0]*d.aa[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.ec[b]=d.Ta[b];d.U|=32896;d.ta[b]|=32896;d.nb|=1<<b;break;case 9:cc(a);break;case 19:d.ta[b]|=64;break;case 49:if(d.Ta[b]>=d.gc[0]||d.Fa[b]>>8>=d.fb[0]||(d.Fa[b]&255)>=d.aa[0]){d.yb[b]|=1024;d.U|=49152;break}c=(d.Ta[b]*d.fb[0]+(d.Fa[b]>>8))*
|
||||
d.aa[0]+(d.Fa[b]&255);e=(d.cb&63)<<16|d.xb;f=65536-d.zb&65535;ac(a,d.ra[b],c,e,f);return;case 57:if(d.Ta[b]>=d.gc[0]||d.Fa[b]>>8>=d.fb[0]||(d.Fa[b]&255)>=d.aa[0])d.yb[b]|=1024,d.U|=49152;else{c=(d.Ta[b]*d.fb[0]+(d.Fa[b]>>8))*d.aa[0]+(d.Fa[b]&255);e=(d.cb&63)<<16|d.xb;f=65536-d.zb&65535;a.cc(d.ra[b],c,e,f);return}}J(a.b,3,5,172,function(){d.U=d.U&65534|128;d.ta[b]|=128;return!!(d.U&64)})}
|
||||
l.cd=function(a,b,d,c,e){var f=this.O;f.zb=65536-e&65535;f.xb=c&65535;f.U=f.U&-769|c>>8&768;f.cb=c>>16&63;e=~~(d/f.aa[0]);c=~~(e/f.fb[0]);f.Fa[b.Oa]=e%f.fb[0]<<8|d%f.aa[0];f.ec[b.Oa]=f.Ta[b.Oa]=c;f.nb|=1<<b.Oa;d>=b.Wc-1&&(f.ta[b.Oa]|=1024);switch(a){case 1:f.Ea|=512;f.U|=49152;break;case 2:f.Ea|=2048,f.U|=49152}J(this.b,20,5,172,function(){f.ta[b.Oa]|=128;f.U=f.U&65534|128;return!!(f.U&64)})};l.Tc=function(){this.u.K|=128;this.u.K&64&&J(this.b,0,6,64)};
|
||||
function ec(a,b,d,c,e,f){var g=~~((f+d.Ya-1)/d.Ya),h=new XMLHttpRequest;2048>g&&c+2048<d.Wc&&(g=2048);h.open("GET",d.url,!0);h.setRequestHeader("Range","bytes="+(c*d.Ya<<1)+"-"+(((c+g)*d.Ya<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,q,p;m=h.response;if(h.status&&206!=h.status||!m)d.bc(1,d,c,e,f);else{m=new Uint8Array(m);n=c;for(p=0;p<m.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],q=0;q<d.Ya;q++)d.cache[n][q]=p<m.length?
|
||||
m[p]&255|m[p+1]<<8&65280:0,p+=2;else p+=d.Ya<<1;n++}g(d,c,e,f)}}};h.send(null)}function K(a,b,d,c,e){if(d&1){if(!e)return L(a.b,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?e&&(c=b&65280|c&255):c=b;return c}l.cc=function(a,b,d,c){for(var e;0<c;){if("undefined"===typeof a.cache[b]){ec(this,this.cc,a,b,d,c);return}for(e=0;e<a.Ya&&0<c;e++){if(0>M(this.b,a.Vc?fc(this.b,d):d,a.cache[b][e])){a.bc(2,a,b,d,c);return}d+=2;--c}b++}a.bc(0,a,b,d,c)};
|
||||
function ac(a,b,d,c,e){for(var f,g;0<e;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],f=0;f<b.Ya;f++)b.cache[d][f]=0;for(f=0;f<b.Ya&&0<e;f++){g=a.b.ka(b.Vc?fc(a.b,c):c);if(0>g){b.bc(2,b,d,c,e);return}b.cache[d][f]=g;c+=2;--e}d++}b.bc(0,b,d,c,e)}l.reset=function(){this.w.sb=this.w.sb&-120|20;this.g.Ma=0;this.g.xa=128;this.u.K=0;this.G.T=128;this.J.K=128;cc(this)};
|
||||
l.Hc=function(a,b,d){var c,e,f=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=f.Sa&65280:(a&1&&(b<<=8),f.Sa=b|255,c=0);break;case 4194298:if(0>b)c=f.dc;else{a&1&&(b<<=8);if(c=b&65024){e=c>>9;do c+=34;while(e>>=1)}f.dc=c;f.Ra=2}break;case 4194294:if(70!==f.jb)return L(f,4,222);0>b?c=f.M:c=f.M=0;break;case 4194292:if(70!==f.jb)return L(f,4,224);c=1;break;case 4194290:if(70!==f.jb)return L(f,4,226);c=0;break;case 4194288:if(70!==f.jb)return L(f,4,228);c=61183;break;case 4194296:0<=
|
||||
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==f.jb)return L(f,4,232);e=a-4194272>>1;0>b?c=f.jc[e]:(c=K(this,f.jc[e],a,b,d),0<=c&&(f.jc[e]=c));break;case 4194254:return a&1?f.N>>14&1?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.ua[3]=b),c=f.ua[3]):f.N>>14&0?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.ua[1]=b),c=f.ua[1]),c;case 4194252:case 4194250:case 4194248:return e=a&7,f.N&2048?(0<=b&&(f.f[e]=b),c=f.f[e]):(0<=b&&(f.bb[e]=
|
||||
function dc(a,b){var d=a.O,c,e,f;d.U&=-16513;d.Ea&=-2049;d.ta[b]&=-1153;J(a.b,-1,0,172);"undefined"===typeof d.ra[b]&&(d.ra[b]={cache:[],postProcess:a.cd,drive:b,blocksize:256,mapped:0,maxblock:d.hc[0]*d.fb[0]*d.aa[0],url:"rp"+b+".dsk"});switch(d.U&63){case 5:d.fc[b]=d.Ta[b];d.U|=32896;d.ta[b]|=32896;d.nb|=1<<b;break;case 9:cc(a);break;case 19:d.ta[b]|=64;break;case 49:if(d.Ta[b]>=d.hc[0]||d.Fa[b]>>8>=d.fb[0]||(d.Fa[b]&255)>=d.aa[0]){d.yb[b]|=1024;d.U|=49152;break}c=(d.Ta[b]*d.fb[0]+(d.Fa[b]>>8))*
|
||||
d.aa[0]+(d.Fa[b]&255);e=(d.cb&63)<<16|d.xb;f=65536-d.zb&65535;ac(a,d.ra[b],c,e,f);return;case 57:if(d.Ta[b]>=d.hc[0]||d.Fa[b]>>8>=d.fb[0]||(d.Fa[b]&255)>=d.aa[0])d.yb[b]|=1024,d.U|=49152;else{c=(d.Ta[b]*d.fb[0]+(d.Fa[b]>>8))*d.aa[0]+(d.Fa[b]&255);e=(d.cb&63)<<16|d.xb;f=65536-d.zb&65535;a.dc(d.ra[b],c,e,f);return}}J(a.b,3,5,172,function(){d.U=d.U&65534|128;d.ta[b]|=128;return!!(d.U&64)})}
|
||||
l.cd=function(a,b,d,c,e){var f=this.O;f.zb=65536-e&65535;f.xb=c&65535;f.U=f.U&-769|c>>8&768;f.cb=c>>16&63;e=~~(d/f.aa[0]);c=~~(e/f.fb[0]);f.Fa[b.Oa]=e%f.fb[0]<<8|d%f.aa[0];f.fc[b.Oa]=f.Ta[b.Oa]=c;f.nb|=1<<b.Oa;d>=b.Wc-1&&(f.ta[b.Oa]|=1024);switch(a){case 1:f.Ea|=512;f.U|=49152;break;case 2:f.Ea|=2048,f.U|=49152}J(this.b,20,5,172,function(){f.ta[b.Oa]|=128;f.U=f.U&65534|128;return!!(f.U&64)})};l.Tc=function(){this.u.K|=128;this.u.K&64&&J(this.b,0,6,64)};
|
||||
function ec(a,b,d,c,e,f){var g=~~((f+d.Ya-1)/d.Ya),h=new XMLHttpRequest;2048>g&&c+2048<d.Wc&&(g=2048);h.open("GET",d.url,!0);h.setRequestHeader("Range","bytes="+(c*d.Ya<<1)+"-"+(((c+g)*d.Ya<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,n,q,p;m=h.response;if(h.status&&206!=h.status||!m)d.cc(1,d,c,e,f);else{m=new Uint8Array(m);n=c;for(p=0;p<m.length;){if("undefined"===typeof d.cache[n])for(d.cache[n]=[],q=0;q<d.Ya;q++)d.cache[n][q]=p<m.length?
|
||||
m[p]&255|m[p+1]<<8&65280:0,p+=2;else p+=d.Ya<<1;n++}g(d,c,e,f)}}};h.send(null)}function K(a,b,d,c,e){if(d&1){if(!e)return L(a.b,4,122);c=0<=c?c<<8&65280|b&255:b}else 0<=c?e&&(c=b&65280|c&255):c=b;return c}l.dc=function(a,b,d,c){for(var e;0<c;){if("undefined"===typeof a.cache[b]){ec(this,this.dc,a,b,d,c);return}for(e=0;e<a.Ya&&0<c;e++){if(0>M(this.b,a.Vc?fc(this.b,d):d,a.cache[b][e])){a.cc(2,a,b,d,c);return}d+=2;--c}b++}a.cc(0,a,b,d,c)};
|
||||
function ac(a,b,d,c,e){for(var f,g;0<e;){if("undefined"===typeof b.cache[d])for(b.cache[d]=[],f=0;f<b.Ya;f++)b.cache[d][f]=0;for(f=0;f<b.Ya&&0<e;f++){g=a.b.ka(b.Vc?fc(a.b,c):c);if(0>g){b.cc(2,b,d,c,e);return}b.cache[d][f]=g;c+=2;--e}d++}b.cc(0,b,d,c,e)}l.reset=function(){this.w.sb=this.w.sb&-120|20;this.g.Ma=0;this.g.xa=128;this.u.K=0;this.G.T=128;this.J.K=128;cc(this)};
|
||||
l.Gc=function(a,b,d){var c,e,f=this.b;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?c=f.Sa&65280:(a&1&&(b<<=8),f.Sa=b|255,c=0);break;case 4194298:if(0>b)c=f.ec;else{a&1&&(b<<=8);if(c=b&65024){e=c>>9;do c+=34;while(e>>=1)}f.ec=c;f.Ra=2}break;case 4194294:if(70!==f.jb)return L(f,4,222);0>b?c=f.M:c=f.M=0;break;case 4194292:if(70!==f.jb)return L(f,4,224);c=1;break;case 4194290:if(70!==f.jb)return L(f,4,226);c=0;break;case 4194288:if(70!==f.jb)return L(f,4,228);c=61183;break;case 4194296:0<=
|
||||
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==f.jb)return L(f,4,232);e=a-4194272>>1;0>b?c=f.kc[e]:(c=K(this,f.kc[e],a,b,d),0<=c&&(f.kc[e]=c));break;case 4194254:return a&1?f.N>>14&1?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.ua[3]=b),c=f.ua[3]):f.N>>14&0?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.ua[1]=b),c=f.ua[1]),c;case 4194252:case 4194250:case 4194248:return e=a&7,f.N&2048?(0<=b&&(f.f[e]=b),c=f.f[e]):(0<=b&&(f.bb[e]=
|
||||
b),c=f.bb[e]),c;case 4194246:return a&1?(0<=b&&(f.f[7]=b),c=f.f[7]):f.N>>14&0?(0<=b&&(f.f[6]=b),c=f.f[6]):(0<=b&&(f.ua[0]=b),c=f.ua[0]),c;case 4194244:case 4194242:case 4194240:return e=a&7,f.N&2048?(0<=b&&(f.bb[e]=b),c=f.bb[e]):(0<=b&&(f.f[e]=b),c=f.f[e]),c;default:return f.M|=16,L(f,4,124)}break;case 4194176:e=a>>1&31;c=K(this,f.ma[3][e],a,b,d);0<=c&&(f.ma[3][e]=c,f.ma[3][e&15]&=65295);break;case 4194112:var g=this.g;e=this.u;switch(a&-2){case 4194174:c=K(this,f.Eb,a,b,d);0<=c&&(f.Eb=c);break;case 4194172:c=
|
||||
f.Ga;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:f.ea=f.ea&62337|f.Pb<<5|f.ac<<1;0>b?c=f.ea:(c=K(this,f.ea,a,b,d),0<=c&&(f.ea=c&=62337,f.Pb=c>>5&3,f.ac=c>>1&15,c&257?(e=2,f.Ua&16&&(e=1),f.tb=c&1?tb|E:E):(f.tb=0,e=4),this.w.sb=this.w.sb&-8|e));break;case 4194168:0>b?c=this.w.kd&65535:(c=K(this,this.w.data,a,b,d),0<=c&&(this.w.data=c));break;case 4194166:0<=b&&(b&127&&(g.Mc=0),g.xa&=-129,J(f,100,4,52,function(){g.xa|=128;return!!(g.xa&64)}));c=0;break;case 4194164:break;case 4194162:c=0;0>b&&
|
||||
(g.Ma&=-129,0<g.lc.length&&(c=g.lc.shift(),0<g.lc.length&&setTimeout(function(){g.Ma|=128;g.Ma&64&&J(f,40,4,48)},50)));break;case 4194160:0>b?c=g.Ma:(c=K(this,g.Ma,a,b,d),0<=c&&(g.Ma=g.Ma&128|c&-129));break;case 4194150:0>b?(c=e.K,e.K&=-129):(c=K(this,e.K,a,b,d),0<=c&&(c&64&&!e.Ob&&(setInterval(this.Tc.bind(this),25),e.Ob=1),e.K=c&-129));break;default:return f.M|=16,L(f,4,126)}break;case 4194048:e=this.G;switch(a&-2){case 4194048:c=K(this,e.Vb,a,b,d);0<=c&&(e.Vb=c);break;case 4194050:c=K(this,e.oa,
|
||||
a,b,d);0<=c&&(e.oa=c);break;case 4194052:c=K(this,e.T,a,b,d);0<=b&&0<=c&&(e.T=c&-36993|e.T&36992,e.T&1&&$b(this));break;case 4194054:c=K(this,e.Wb,a,b,d);0<=c&&(e.Wb=c);break;case 4194056:c=K(this,e.Ub,a,b,d);0<=c&&(e.Ub=c);break;case 4194058:c=K(this,e.va,a,b,d);0<=c&&(e.va=c);break;case 4194060:break;case 4194062:c=K(this,e.Ac,a,b,d);0<=c&&(e.Ac=c);break;default:return f.M|=16,L(f,4,128)}break;case 4193728:var h=this.O;e=h.Ea&7;switch(a&-2){case 4193728:c=K(this,h.U,a,b,d);0<=b&&0<=c&&(h.cb=h.cb&
|
||||
f.Ga;c&65280&&(c=(c<<8|c>>8)&65535);break;case 4194170:f.ea=f.ea&62337|f.Ob<<5|f.bc<<1;0>b?c=f.ea:(c=K(this,f.ea,a,b,d),0<=c&&(f.ea=c&=62337,f.Ob=c>>5&3,f.bc=c>>1&15,c&257?(e=2,f.Ua&16&&(e=1),f.tb=c&1?tb|E:E):(f.tb=0,e=4),this.w.sb=this.w.sb&-8|e));break;case 4194168:0>b?c=this.w.kd&65535:(c=K(this,this.w.data,a,b,d),0<=c&&(this.w.data=c));break;case 4194166:0<=b&&(b&127&&(g.Lc=0),g.xa&=-129,J(f,100,4,52,function(){g.xa|=128;return!!(g.xa&64)}));c=0;break;case 4194164:break;case 4194162:c=0;0>b&&
|
||||
(g.Ma&=-129,0<g.lc.length&&(c=g.lc.shift(),0<g.lc.length&&setTimeout(function(){g.Ma|=128;g.Ma&64&&J(f,40,4,48)},50)));break;case 4194160:0>b?c=g.Ma:(c=K(this,g.Ma,a,b,d),0<=c&&(g.Ma=g.Ma&128|c&-129));break;case 4194150:0>b?(c=e.K,e.K&=-129):(c=K(this,e.K,a,b,d),0<=c&&(c&64&&!e.Nb&&(setInterval(this.Tc.bind(this),25),e.Nb=1),e.K=c&-129));break;default:return f.M|=16,L(f,4,126)}break;case 4194048:e=this.G;switch(a&-2){case 4194048:c=K(this,e.Vb,a,b,d);0<=c&&(e.Vb=c);break;case 4194050:c=K(this,e.oa,
|
||||
a,b,d);0<=c&&(e.oa=c);break;case 4194052:c=K(this,e.T,a,b,d);0<=b&&0<=c&&(e.T=c&-36993|e.T&36992,e.T&1&&$b(this));break;case 4194054:c=K(this,e.Wb,a,b,d);0<=c&&(e.Wb=c);break;case 4194056:c=K(this,e.Ub,a,b,d);0<=c&&(e.Ub=c);break;case 4194058:c=K(this,e.va,a,b,d);0<=c&&(e.va=c);break;case 4194060:break;case 4194062:c=K(this,e.zc,a,b,d);0<=c&&(e.zc=c);break;default:return f.M|=16,L(f,4,128)}break;case 4193728:var h=this.O;e=h.Ea&7;switch(a&-2){case 4193728:c=K(this,h.U,a,b,d);0<=b&&0<=c&&(h.cb=h.cb&
|
||||
60|c>>8&3,h.U=c&17279|h.U&34944|2048,c&1&&h.U&128?dc(this,e):192==(c&192)&&J(f,0,5,172));break;case 4193730:c=K(this,h.zb,a,b,d);0<=c&&(h.zb=c);break;case 4193732:c=K(this,h.xb,a,b,d);0<=c&&(h.xb=c&65534);break;case 4193734:c=K(this,h.Fa[e],a,b,d);0<=c&&(h.Fa[e]=c&7967);break;case 4193736:c=K(this,h.Ea,a,b,d);0<=c&&(h.Ea=c&63|h.Ea&65472,c&128&&cc(this));break;case 4193738:c=h.ta[e];break;case 4193740:c=h.yb[e];break;case 4193742:c=K(this,h.nb,a,b,d);0<=c&&(h.nb=c&255);break;case 4193744:c=h.hd[e];
|
||||
break;case 4193746:c=K(this,h.Bc,a,b,d);0<=c&&(h.Bc=c);break;case 4193748:c=K(this,h.Cc[e],a,b,d);0<=c&&(h.Cc[e]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=h.jd[e];break;case 4193754:c=K(this,h.Dc[e],a,b,d);0<=c&&(h.Dc[e]=c);break;case 4193756:c=K(this,h.Ta[e],a,b,d);0<=c&&(h.Ta[e]=c&511);break;case 4193758:h.ec[e]=h.Ta[e];c=h.ec[e];break;case 4193760:c=h.fd[e];break;case 4193762:c=h.gd[e];break;case 4193764:c=h.dd[e];break;case 4193766:c=h.ed[e];break;case 4193768:c=K(this,h.cb,a,b,d);
|
||||
break;case 4193746:c=K(this,h.Ac,a,b,d);0<=c&&(h.Ac=c);break;case 4193748:c=K(this,h.Bc[e],a,b,d);0<=c&&(h.Bc[e]=c&1023);break;case 4193750:c=8210;break;case 4193752:c=h.jd[e];break;case 4193754:c=K(this,h.Cc[e],a,b,d);0<=c&&(h.Cc[e]=c);break;case 4193756:c=K(this,h.Ta[e],a,b,d);0<=c&&(h.Ta[e]=c&511);break;case 4193758:h.fc[e]=h.Ta[e];c=h.fc[e];break;case 4193760:c=h.fd[e];break;case 4193762:c=h.gd[e];break;case 4193764:c=h.dd[e];break;case 4193766:c=h.ed[e];break;case 4193768:c=K(this,h.cb,a,b,d);
|
||||
0<=c&&(h.cb=c&63,h.U=h.U&-769|(c&3)<<8);break;case 4193770:c=K(this,h.nc,a,b,d);0<=c&&(h.nc=c);break;default:return f.M|=16,L(f,4,132)}break;case 4192512:e=this.J;switch(a&-2){case 4192512:c=K(this,e.K,a,b,d);0<=b&&0<=c&&(e.Xa=e.Xa&60|c>>4&3,e.K=e.K&-1023|c&1022,e.K&128||bc(this));break;case 4192514:c=K(this,e.Jb,a,b,d);0<=c&&(e.Jb=c&65534);break;case 4192516:c=K(this,e.fa,a,b,d);0<=c&&(e.fa=c);break;case 4192518:c=K(this,e.ab,a,b,d);0<=c&&(e.ab=c);break;case 4192520:c=K(this,e.Xa,a,b,d);0<=c&&(e.Xa=
|
||||
c&63,e.K=e.K&-49|(e.Xa&3)<<4);break;default:return f.M|=16,L(f,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?c=f.Ua:(c=K(this,f.Ua,a,b,d),0<=c&&(70!==f.jb&&(c&=-49),f.Ua=c,f.lb[0]=c&4?15:7,f.lb[1]=c&2?15:7,f.lb[3]=c&1?15:7,f.tb&&(e=2,f.Ua&16&&(e=1),this.w.sb=this.w.sb&-8|e)));break;default:return f.M|=16,L(f,4,136)}break;case 4191424:e=a>>1&31;c=K(this,f.ma[0][e],a,b,d);0<=c&&(f.ma[0][e]=c,f.ma[0][e&15]&=65295);break;case 4191360:e=a>>1&31;c=K(this,f.ma[1][e],a,b,d);0<=c&&(f.ma[1][e]=c,
|
||||
f.ma[1][e&15]&=65295);break;case 4190400:case 4190336:if(70!==f.jb)return L(f,4,234);e=a>>2&31;c=f.Xb[e];a&2&&(c>>=16);c&=65535;0<=b&&(c=K(this,c,a,b,d),0<=c&&(f.Xb[e]=a&2?c<<16|f.Xb[e]&65535:f.Xb[e]&4294901760|c&65534));break;case 4188672:case 4188736:case 4188800:case 4188864:case 4188928:case 4188992:case 4189056:case 4189120:if(0>b)c=Wb[a>>1&255];else return f.M|=16,L(f,4,138);break;default:return f.M|=16,L(f,4,142)}d&&0<=c&&(a&1?c>>=8:c&=255);"undefined"===typeof c&&console.log("panic(76)");
|
||||
return c};var gc={},Xb=(gc[65534]=[null,null,Vb.prototype.Zc,Vb.prototype.md],gc[65396]=[null,null,Vb.prototype.$c,Vb.prototype.nd],gc);Oa(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Vb(c);bb(c,d)}});var hc;if(sb){var ic=new ArrayBuffer(2);(new DataView(ic)).setUint16(0,256,!0);hc=256===(new Uint16Array(ic))[0]}else hc=!1;var jc=hc;
|
||||
return c};var gc={},Xb=(gc[65534]=[null,null,Kb.prototype.Zc,Kb.prototype.md],gc[65396]=[null,null,Kb.prototype.$c,Kb.prototype.nd],gc);Oa(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Kb(c);bb(c,d)}});var hc;if(sb){var ic=new ArrayBuffer(2);(new DataView(ic)).setUint16(0,256,!0);hc=256===(new Uint16Array(ic))[0]}else hc=!1;var jc=hc;
|
||||
function I(a,b,d,c,e){this.id=kc+=2;this.b=null;this.A=a;this.Zb=b;this.size=d||0;this.type=c||lc;this.H=c==mc;this.controller=null;zb(this);this.Za=this.Nc=!1;if(d)if(e)this.controller=e,this.b=null,nc(this,e.Gb);else if(sb)this.G=new ArrayBuffer(d),this.J=new DataView(this.G,0,d),this.g=new Uint8Array(this.G,0,d),this.R=new Uint16Array(this.G,0,d>>1),this.b=new Int32Array(this.G,0,d>>2),nc(this,jc?oc:pc);else{this.b=Array(d>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;nc(this,qc)}else nc(this)}
|
||||
var lc=0,mc=2,Fb=4,Hb=["NONE","RAM","ROM","VID","H/W"],kc=0;
|
||||
I.prototype={constructor:I,parent:null,Ob:function(a){this.A=a},save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(sb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.b=a;return this.Za=!0}return!1},hb:function(a,b){b?this.w++||rc(this,sc,!1):this.P++||tc(this,sc,!1)},W:function(){this.I&&cb(this.I,
|
||||
I.prototype={constructor:I,parent:null,Nb:function(a){this.A=a},save:function(){var a,b;if(this.controller)a=null;else if(sb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(sb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.b=a;return this.Za=!0}return!1},hb:function(a,b){b?this.w++||rc(this,sc,!1):this.P++||tc(this,sc,!1)},W:function(){this.I&&cb(this.I,
|
||||
129)&&this.I.message("attempt to read invalid block %"+r(this.A),!0);return 255},u:function(a,b){this.I&&cb(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.A),!0)},X:function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8},O:function(a,b,d){this.Bb(a++,b&255,d++);this.Bb(a,b>>8,d)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var d=this.b[b]>>a;return 24>a?d&65535:d&255|(this.b[b+1]&255)<<8},Ca:function(a,b){var d=a>>
|
||||
2;a=(a&3)<<3;this.b[d]=this.b[d]&~(255<<a)|b<<a;this.Za=!0},Fb:function(a,b){var d=a>>2;a=(a&3)<<3;24>a?this.b[d]=this.b[d]&~(65535<<a)|b<<a:(this.b[d]=this.b[d]&16777215|b<<24,d++,this.b[d]=this.b[d]&-256|b>>8);this.Za=!0},$:function(a,b){if(this.I&&null!=this.A){var d=this.I;uc(d,this.A+a,1,d.Y)&&d.pa(!0)}return this.Tb(a,b)},ha:function(a,b){if(this.I&&null!=this.A){var d=this.I;uc(d,this.A+a,2,d.Y)&&d.pa(!0)}return this.mc(a,b)},za:function(a,b,d){if(this.I&&null!=this.A){var c=this.I;uc(c,this.A+
|
||||
2;a=(a&3)<<3;this.b[d]=this.b[d]&~(255<<a)|b<<a;this.Za=!0},Fb:function(a,b){var d=a>>2;a=(a&3)<<3;24>a?this.b[d]=this.b[d]&~(65535<<a)|b<<a:(this.b[d]=this.b[d]&16777215|b<<24,d++,this.b[d]=this.b[d]&-256|b>>8);this.Za=!0},$:function(a,b){if(this.I&&null!=this.A){var d=this.I;uc(d,this.A+a,1,d.Y)&&d.pa(!0)}return this.Sb(a,b)},ha:function(a,b){if(this.I&&null!=this.A){var d=this.I;uc(d,this.A+a,2,d.Y)&&d.pa(!0)}return this.mc(a,b)},za:function(a,b,d){if(this.I&&null!=this.A){var c=this.I;uc(c,this.A+
|
||||
a,1,c.J)&&c.pa(!0)}this.H?this.u(a,b,d):this.Cb(a,b,d)},Ia:function(a,b,d){if(this.I&&null!=this.A){var c=this.I;uc(c,this.A+a,2,c.J)&&c.pa(!0)}this.H?this.u(a,b,d):this.qc(a,b,d)},Y:function(a){return this.g[a]},ba:function(a){return this.g[a]},da:function(a){return this.J.getUint16(a,!0)},ia:function(a){return a&1?this.g[a]|this.g[a+1]<<8:this.R[a>>1]},ya:function(a,b){this.g[a]=b;this.Za=!0},Aa:function(a,b){this.g[a]=b;this.Za=!0},Ha:function(a,b){this.J.setUint16(a,b,!0);this.Za=!0},Va:function(a,
|
||||
b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.R[a>>1]=b;this.Za=!0}};function zb(a,b,d){a.I=b;a.P=a.w=0;d&&((a.P=d.P)&&tc(a,sc,!1),(a.w=d.w)&&rc(a,sc,!1))}function vc(a,b){b?--a.w||(a.Bb=a.H?a.u:a.Cb,a.Fc=a.H?a.O:a.qc):--a.P||(a.wb=a.Tb,a.zc=a.mc)}function rc(a,b,d){d&&a.w||(a.Bb=!a.H&&b[1]||a.u,a.Fc=!a.H&&b[3]||a.O);if(d||void 0===d)a.Cb=b[1]||a.u,a.qc=b[3]||a.O}function tc(a,b,d){d&&a.P||(a.wb=b[0]||a.W,a.zc=b[2]||a.X);if(d||void 0===d)a.Tb=b[0]||a.W,a.mc=b[2]||a.X}
|
||||
b){a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.R[a>>1]=b;this.Za=!0}};function zb(a,b,d){a.I=b;a.P=a.w=0;d&&((a.P=d.P)&&tc(a,sc,!1),(a.w=d.w)&&rc(a,sc,!1))}function vc(a,b){b?--a.w||(a.Bb=a.H?a.u:a.Cb,a.Ec=a.H?a.O:a.qc):--a.P||(a.wb=a.Sb,a.Tb=a.mc)}function rc(a,b,d){d&&a.w||(a.Bb=!a.H&&b[1]||a.u,a.Ec=!a.H&&b[3]||a.O);if(d||void 0===d)a.Cb=b[1]||a.u,a.qc=b[3]||a.O}function tc(a,b,d){d&&a.P||(a.wb=b[0]||a.W,a.Tb=b[2]||a.X);if(d||void 0===d)a.Sb=b[0]||a.W,a.mc=b[2]||a.X}
|
||||
function nc(a,b){b||(b=wc);tc(a,b,void 0);rc(a,b,void 0)}var wc=[],qc=[I.prototype.ca,I.prototype.Ca,I.prototype.qa,I.prototype.Fb],sc=[I.prototype.$,I.prototype.za,I.prototype.ha,I.prototype.Ia];if(sb)var pc=[I.prototype.Y,I.prototype.ya,I.prototype.da,I.prototype.Ha],oc=[I.prototype.ba,I.prototype.Aa,I.prototype.ia,I.prototype.Va];
|
||||
function xc(a,b){u.call(this,"CPU",a,xc,1);var d=a.multiplier||1;this.Ha=a.cycles||b;this.mb=d;this.Ca=Math.round(this.Ha/1E4)/100;this.kb=this.Ca*this.mb;this.j.la=!1;this.j.pc=!1;this.j.Hb=a.autoStart;this.j.wc=!1;this.j.rb=!1;this.Qb=this.ba=0;this.Rb=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.ya=[];this.Kb=this.ob.bind(this);D(this)}w(xc);var yc=["power","reset"];l=xc.prototype;
|
||||
l.$a=function(a,b,d,c){this.w=a;this.H=b;this.I=c;for(b=0;b<yc.length;b++)(d=this.P[yc[b]])&&this.w.wa(null,yc[b],d);this.ha=null;a=zc(a,"autoStart");null!=a&&(this.j.Hb="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Qa=function(a,b){if(!b){if(a&&this.restore){Oc(this);if(!this.restore(a))return!1;Pc(this)}else this.reset();this.I?this.I.Ob():this.i("No debugger detected")}N(this);return!0};
|
||||
l.Pa=function(a){return a?this.save():!0};l.Hb=function(){return this.j.Hb||!this.I&&void 0===this.P.run?(this.ob(!0),!0):!1};l.yc=function(){return 0};function Pc(a){void 0===a.Rb&&(a.Rb=0);void 0===a.ub&&(a.ub=-1);void 0===a.vb&&(a.vb=-1);a.j.rb=0<=a.Rb&&0<a.ub;a.j.rb&&(a.Qb=0,a.ba=a.Rb-a.$)}function Qc(a,b){if(a.j.rb){var d=!1;a.Qb=a.Qb+a.yc()|0;a.ba-=b;0>=a.ba&&(a.ba+=a.ub,d=!0);0<=a.vb&&a.vb<=Rc(a)&&(a.ub=a.vb=-1,Pc(a),a.pa(),d=!0);d&&a.i(Rc(a)+" cycles: checksum="+r(a.Qb))}}
|
||||
function xc(a,b){u.call(this,"CPU",a,xc,1);var d=a.multiplier||1;this.Ha=a.cycles||b;this.mb=d;this.Ca=Math.round(this.Ha/1E4)/100;this.kb=this.Ca*this.mb;this.j.la=!1;this.j.pc=!1;this.j.Hb=a.autoStart;this.j.wc=!1;this.j.rb=!1;this.Pb=this.ba=0;this.Qb=a.csStart;this.ub=a.csInterval;this.vb=a.csStop;this.ya=[];this.Kb=this.ob.bind(this);D(this)}w(xc);var yc=["power","reset"];l=xc.prototype;
|
||||
l.$a=function(a,b,d,c){this.w=a;this.H=b;this.I=c;for(b=0;b<yc.length;b++)(d=this.P[yc[b]])&&this.w.wa(null,yc[b],d);this.ha=null;a=zc(a,"autoStart");null!=a&&(this.j.Hb="true"==a?!0:"false"==a?!1:!!a);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Qa=function(a,b){if(!b){if(a&&this.restore){Oc(this);if(!this.restore(a))return!1;Pc(this)}else this.reset();this.I?this.I.Nb():this.i("No debugger detected")}N(this);return!0};
|
||||
l.Pa=function(a){return a?this.save():!0};l.Hb=function(){return this.j.Hb||!this.I&&void 0===this.P.run?(this.ob(!0),!0):!1};l.yc=function(){return 0};function Pc(a){void 0===a.Qb&&(a.Qb=0);void 0===a.ub&&(a.ub=-1);void 0===a.vb&&(a.vb=-1);a.j.rb=0<=a.Qb&&0<a.ub;a.j.rb&&(a.Pb=0,a.ba=a.Qb-a.$)}function Qc(a,b){if(a.j.rb){var d=!1;a.Pb=a.Pb+a.yc()|0;a.ba-=b;0>=a.ba&&(a.ba+=a.ub,d=!0);0<=a.vb&&a.vb<=Rc(a)&&(a.ub=a.vb=-1,Pc(a),a.pa(),d=!0);d&&a.i(Rc(a)+" cycles: checksum="+r(a.Pb))}}
|
||||
function Sc(a,b,d,c){if(a.P[b]){void 0===d&&(rb(a,"Value for "+b+" is invalid"),a.pa());var e=a.I&&a.I.za||8;d=!a.j.la||a.j.wc?8==e?ca(d,c):r(d,c):"--------".substr(0,c||4);a.P[b].textContent!=d&&(a.P[b].textContent=d)}}
|
||||
l.wa=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.P[b]=d;a=!0;break;case "run":this.P[b]=d;d.onclick=function(){var a;if(a=c.w)if(a=c.w,a.j.ga)a=!0;else{var b=null,d,h=$a(a.id);for(d=0;d<h.length&&(b=h[d],b===a||b.j.ready);d++);if(d==h.length)for(d=0;d<h.length&&(b=h[d],b===a||b.j.ga);d++);d==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.$b?" (waiting for notification)":""))+".");a=!1}a&&(c.j.la?c.pa():c.ob())};
|
||||
l.wa=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.P[b]=d;a=!0;break;case "run":this.P[b]=d;d.onclick=function(){var a;if(a=c.w)if(a=c.w,a.j.ga)a=!0;else{var b=null,d,h=$a(a.id);for(d=0;d<h.length&&(b=h[d],b===a||b.j.ready);d++);if(d==h.length)for(d=0;d<h.length&&(b=h[d],b===a||b.j.ga);d++);d==h.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.ac?" (waiting for notification)":""))+".");a=!1}a&&(c.j.la?c.pa():c.ob())};
|
||||
a=!0;break;case "speed":this.P[b]=d;a=!0;break;case "setSpeed":this.P[b]=d,d.onclick=function(){Tc(c,c.mb<<1,!0)},d.textContent=this.kb.toFixed(2)+"Mhz",a=!0}return a};function Uc(a,b,d){a.$+=b;d&&(a.Y=a.b=0)}function Vc(a,b){var d=1;b&&1<a.mb&&a.W&&(d=a.W/a.Ca);a.Db=Math.round(1E3/30);a.Aa=Math.floor(a.Ha/30*d);b||(a.ca=a.Aa);a.Ia=0}function Rc(a){return a.$+a.R+a.Y-a.b}function Oc(a){a.W=0;a.Ib=0;a.$=a.R=a.Y=a.b=0;Pc(a);Tc(a,1)}
|
||||
function Tc(a,b,d){var c=!1;if(void 0!==b){.8>a.W/a.kb?b=1:c=!0;a.mb=b;b=a.Ca*a.mb;if(a.kb!=b){a.kb=b;b=a.kb.toFixed(2)+"Mhz";var e=a.P.setSpeed;e&&(e.textContent=b);a.i("target speed: "+b)}d&&a.w&&a.w.Yb()}Uc(a,a.R);a.R=0;a.O=ra();a.X=0;Vc(a);return c}function Wc(a){a.Y-=a.b;a.b=0}
|
||||
l.ob=function(a){if(db(this,!0)){if(!this.j.la){Tc(this);this.w&&this.w.start(this.O,Rc(this));this.j.la=!0;this.j.pc=!0;this.ha&&this.ha.start();var b=this.P.run;b&&(b.textContent="Halt");this.w&&(this.w.Ba(!0),a&&this.w.Yb(!0))}this.Ia>=this.Ha&&Vc(this,!0);this.ia=0;this.za=ra();this.X&&(a=this.za-this.X,a>this.Db&&(this.O+=a,this.O>this.za&&(this.O=this.za)));try{do{for(var d,c=this.j.rb?1:this.Aa,e=this.ya.length-1;0<=e;e--){var f=this.ya[e];0>f[0]||c>f[0]&&(c=f[0])}d=c;try{this.Ab(d)}catch(m){if("number"!=
|
||||
typeof m)throw m;}var g=this.Y-this.b;a=g;for(var h=this.ya.length-1;0<=h;h--){var k=this.ya[h];0>k[0]||(k[0]-=a,0>=k[0]&&(k[0]=-1,k[1]()))}this.ia+=g;this.R+=g;Uc(this,0,!0);Qc(this,g);this.ca-=g;if(0>=this.ca){this.ca+=this.Aa;15<=++this.Ib&&(this.w&&this.w.Ba(),this.Ib=0);break}}while(this.j.la)}catch(m){this.pa();N(this);this.w&&this.w.stop(ra(),Rc(this));db(this,!1);rb(this,m.stack||m.message);return}d=setTimeout;c=this.Kb;this.X=ra();e=this.Db;this.ia&&(e=Math.round(e*this.ia/this.Aa));e-=this.X-
|
||||
this.za;if(f=this.X-this.O)this.W=Math.round(this.R/(10*f))/100,864E5<=f&&(this.$=0,Tc(this));if(0>e||this.W<this.kb)-1E3>e&&(this.O-=e),e=0;this.Ia+=this.ia;this.X+=e;d(c,e)}else N(this),this.w&&this.w.stop(ra(),Rc(this))};l.Ab=function(){return 0};l.pa=function(a){pb(this,!0);Wc(this);Uc(this,this.R);this.R=0;if(this.j.la){this.j.la=!1;this.ha&&this.ha.stop();var b=this.P.run;b&&(b.textContent="Run")}this.j.complete=a};function N(a,b){a.w&&a.w.Ba(b)}
|
||||
function Xc(a){this.Xc=+a.model||1170;this.kc=a.resetAddr||0;xc.call(this,a,1E6);this.Va=0;this.decode=Yc.bind(this);this.D=65536;this.C=32768;this.F=65535;this.B=32768;this.f=[0,0,0,0,0,0,0,this.kc];this.bb=[0,0,0,0,0,0];this.ua=[0,0,0,0];this.Sa=255;this.ac=this.Pb=this.tb=this.G=this.Ua=this.Eb=this.Ga=this.ea=this.M=this.dc=0;this.lb=[7,7,7,7];this.ma=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Xb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.jc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.g=-1;this.V=0;this.jb=70;this.da=-1;this.u=[];this.qa=0;this.Ra=2;Zc(this);this.j.complete=this.j.Lc=!1}w(Xc,xc);l=Xc.prototype;
|
||||
l.reset=function(){this.j.la&&this.pa();$c(this);Oc(this);this.j.error=!1;this.parent.reset.call(this)};function $c(a){a.Sa=255;a.M=0;a.u=[];a.dc=0;a.ea=a.Ga=a.Eb=a.Ua=a.tb=0;a.lb[0]=a.lb[1]=a.lb[3]=7;a.Pb=0;Zc(a)}function Zc(a){a.tb?(a.J=65536,a.L=a.Rc,a.Lb=a.na):(a.J=0,a.L=a.Qc,a.Lb=a.ka)}l.yc=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.pb,this.$,this.mb]);a.set(2,Jb(this.H));return a.data()};
|
||||
this.za;if(f=this.X-this.O)this.W=Math.round(this.R/(10*f))/100,864E5<=f&&(this.$=0,Tc(this));if(0>e||this.W<this.kb)-1E3>e&&(this.O-=e),e=0;this.Ia+=this.ia;this.X+=e;d(c,e)}else N(this),this.w&&this.w.stop(ra(),Rc(this))};l.Ab=function(){return 0};l.pa=function(a){eb(this,!0);Wc(this);Uc(this,this.R);this.R=0;if(this.j.la){this.j.la=!1;this.ha&&this.ha.stop();var b=this.P.run;b&&(b.textContent="Run")}this.j.complete=a};function N(a,b){a.w&&a.w.Ba(b)}
|
||||
function Xc(a){this.Xc=+a.model||1170;this.$b=a.resetAddr||0;xc.call(this,a,1E6);this.Va=0;this.decode=Yc.bind(this);this.D=65536;this.C=32768;this.F=65535;this.B=32768;this.f=[0,0,0,0,0,0,0,this.$b];this.bb=[0,0,0,0,0,0];this.ua=[0,0,0,0];this.Sa=255;this.bc=this.Ob=this.tb=this.G=this.Ua=this.Eb=this.Ga=this.ea=this.M=this.ec=0;this.lb=[7,7,7,7];this.ma=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.Xb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.kc=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.g=-1;this.V=0;this.jb=70;this.da=-1;this.u=[];this.qa=0;this.Ra=2;Zc(this);this.j.complete=this.j.Kc=!1}w(Xc,xc);l=Xc.prototype;
|
||||
l.reset=function(){this.j.la&&this.pa();$c(this);Oc(this);this.j.error=!1;this.parent.reset.call(this)};function $c(a){a.Sa=255;a.M=0;a.u=[];a.ec=0;a.ea=a.Ga=a.Eb=a.Ua=a.tb=0;a.lb[0]=a.lb[1]=a.lb[3]=7;a.Ob=0;Zc(a)}function Zc(a){a.tb?(a.J=65536,a.L=a.Rc,a.Tb=a.na):(a.J=0,a.L=a.Qc,a.Tb=a.ka)}l.yc=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.pb,this.$,this.mb]);a.set(2,Jb(this.H));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.pb=b[0];this.$=b[1];Tc(this,b[3]);a:{b=this.H;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],e=a[d+1];if(e&&e.length<b.R){for(var f=0,g=Array(b.R),h=0;h<e.length-1;)for(var k=e[h++],m=e[h++];k--;)g[f++]=m;e=g}f=b.S[c];if(!f||!f.restore(e)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
|
||||
l.wa=function(a,b,d){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.P[b]=d;this.Va++;a=!0;break;default:a=this.parent.wa.call(this,a,b,d)}return a};
|
||||
l.Ba=function(a){if(this.Va&&(a||!this.j.la||this.j.wc)){for(a=0;a<this.f.length;a++)Sc(this,"R"+a,this.f[a]);a=Yb(this);Sc(this,"PS",a);Sc(this,"NF",a&8?1:0,1);Sc(this,"ZF",a&4?1:0,1);Sc(this,"VF",a&2?1:0,1);Sc(this,"CF",a&1?1:0,1)}if(a=this.P.speed)a.textContent=this.j.la&&this.W?this.W.toFixed(2)+"Mhz":"Stopped"};
|
||||
|
|
@ -85,14 +85,14 @@ function J(a,b,d,c,e){for(var f=a.u.length;0<f--;)if(a.u[f].ld===c){0<f&&(a.u[f-
|
|||
function Zb(a,b){a.B=b<<12;a.F=~b&4;a.C=b<<14;a.D=b<<16;if((b^a.N)&2048)for(var d=a.bb.length;0<=--d;){var c=a.f[d];a.f[d]=a.bb[d];a.bb[d]=c}a.G=b>>14&3;d=a.N>>14&3;a.G!=d&&(a.ua[d]=a.f[6],a.f[6]=a.ua[a.G]);a.Ra=2;a.N=b}function ad(a,b){a.V&128||(a.B=a.F=a.D=b,a.C=0)}function bd(a,b){a.V&128||(a.B=a.F=b,a.C=0)}function cd(a,b,d,c){a.V&128||(a.B=a.F=a.D=b,a.C=(d^c)&(c^b))}
|
||||
function L(a,b,d){var c,e,f=0;0>a.da?a.da=Yb(a):a.G||(b=4,f=1);a.ea&57344||(a.Ga=63222,a.Eb=b);a.G=0;0<=(c=a.na(b|65536))&&0<=(e=a.na(b+2&65535|65536))&&(Zb(a,e&53247|a.da>>2&12288),f&&(a.M|=4,a.f[6]=4),0<=dd(a,a.da)&&0<=dd(a,a.f[7])&&(a.f[7]=c));a.V&=-113;a.da=-1;throw b|d<<8;}function fc(a,b){var d=b>>13&31;31>d?a.Ua&32&&(b=a.Xb[d]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function ed(a,b,d){var c,e,f,g=0;if(d&a.tb){c=b>>13&a.lb[a.G];e=a.ma[a.G][c];f=(a.ma[a.G][c+16]<<6)+(b&8191)&4194303;a.Ua&16?3932160<=f&&4186112>f&&(f=fc(a,f&262143)):(f&=262143,253952<=f&&(f|=4186112));3932160>f&&(3915776<=f&&(a.M|=32,L(a,4,24)),f&1&&!(d&1)&&(a.M|=64,L(a,4,26)));switch(e&7){case 1:g=4096;case 2:e|=128;d&E&&(g=8192);break;case 4:g=4096;case 5:d&E&&(g=4096);case 6:e|=d&E?192:128;break;default:g=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&
|
||||
8128)&&(g|=16384));a.ma[a.G][c]=e;if(4194170!==f||a.G)a.Pb=a.G,a.ac=c;g&&(g&57344&&(0<=a.da&&(g|=128),a.ea&57344||(a.ea=a.ea|g|a.Pb<<5|a.ac<<1),L(a,168,28)),a.ea&61440||!(4191360>f||4194239<f)||(a.ea|=4096,a.ea&512&&(a.V|=32)))}else f=b&65535,57344<=f?f|=4186112:f&1&&!(d&1)&&(a.M|=64,L(a,4,22));return f}l.ka=function(a){return 4194304<=a?this.f[a-4194304]:0<=a?this.H.La(a):a};l.na=function(a){return this.ka(ed(this,a,tb))};
|
||||
function M(a,b,d){d&=65535;return 4194304<=b?a.f[b-4194304]=d:0<=b?(a.H.oc(b,d),d):b}function P(a,b){return 4194304<=b?a.f[b-4194304]&255:0<=b?a.H.Nb(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.f[b-4194304]=a.f[b-4194304]&65280|d:0<=b?(a.H.fc(b,d),d):b}function fd(a){var b=a.na(a.f[6]|65536);0<=b&&(a.f[6]=a.f[6]+2&65535);return b}
|
||||
8128)&&(g|=16384));a.ma[a.G][c]=e;if(4194170!==f||a.G)a.Ob=a.G,a.bc=c;g&&(g&57344&&(0<=a.da&&(g|=128),a.ea&57344||(a.ea=a.ea|g|a.Ob<<5|a.bc<<1),L(a,168,28)),a.ea&61440||!(4191360>f||4194239<f)||(a.ea|=4096,a.ea&512&&(a.V|=32)))}else f=b&65535,57344<=f?f|=4186112:f&1&&!(d&1)&&(a.M|=64,L(a,4,22));return f}l.ka=function(a){return 4194304<=a?this.f[a-4194304]:0<=a?this.H.La(a):a};l.na=function(a){return this.ka(ed(this,a,tb))};
|
||||
function M(a,b,d){d&=65535;return 4194304<=b?a.f[b-4194304]=d:0<=b?(a.H.oc(b,d),d):b}function P(a,b){return 4194304<=b?a.f[b-4194304]&255:0<=b?a.H.Mb(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.f[b-4194304]=a.f[b-4194304]&65280|d:0<=b?(a.H.gc(b,d),d):b}function fd(a){var b=a.na(a.f[6]|65536);0<=b&&(a.f[6]=a.f[6]+2&65535);return b}
|
||||
function dd(a,b){var d,c;a.f[6]=c=a.f[6]-2&65535;a.ea&57344||(a.Ga=a.Ga<<8|246);!a.G&&c<=a.Sa&&4<c&&(c<=a.Sa-32?(a.M|=4,a.f[6]=4,L(a,4,32)):(a.M|=8,a.V|=4));return 0<=(d=ed(a,c|65536,E))?M(a,d,b):d}
|
||||
function gd(a,b,d){var c,e,f=b&7;switch(b>>3&7){case 0:L(a,4,34);break;case 1:return 6===f&&!a.G&&d&E&&(a.f[6]<=a.Sa||65534<=a.f[6])&&(a.f[6]<=a.Sa-32||65534<=a.f[6]?(a.M|=4,a.f[6]=4,L(a,4,36)):(a.M|=8,a.V|=64)),7===f?a.f[f]:a.f[f]|a.J;case 2:e=2;c=a.f[f];7!==f&&(c|=a.J,6>f&&d&1&&(e=1));break;case 3:e=2;c=a.f[f];7!==f&&(c|=a.J);if(0>(c=a.na(c)))return c;c|=a.J;break;case 4:e=-2;6>f&&d&1&&(e=-1);c=a.f[f]+e&65535;7!==f&&(c|=a.J);break;case 5:e=-2;c=a.f[f]-2&65535;7!==f&&(c|=a.J);if(0>(c=a.na(c)))return c;
|
||||
c|=a.J;break;case 6:if(0>(c=a.na(a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[f]&65535;return c|a.J;case 7:if(0>(c=a.na(a.f[7])))return c;a.f[7]=a.f[7]+2&65535;c=c+a.f[f]&65535;return 0>(c=a.na(c|65536))?c:c|a.J}a.f[f]=a.f[f]+e&65535;!a.J||a.ea&57344||(a.Ga=a.Ga<<8|e<<3&248|f);6===f&&!a.G&&d&E&&0>=e&&(a.f[6]<=a.Sa||65534<=a.f[6])&&(a.f[6]<=a.Sa-32?(a.M|=4,a.f[6]=4,L(a,4,38)):(a.M|=8,a.V|=64));return c}l.Qc=function(a,b){return gd(this,a,b)};l.Rc=function(a,b){return ed(this,gd(this,a,b),b)};
|
||||
function S(a,b){return b&56?a.Lb(gd(a,b,tb)):a.f[b&7]}function hd(a,b){return b&56?P(a,a.L(b,ub)):a.f[b&7]&255}function id(a,b,d,c){b&56?(b=a.L(b,F),M(a,b,c.call(a,d,a.ka(b)))):(b&=7,a.f[b]=c.call(a,d,a.f[b])&65535)}function jd(a,b,d,c){b&56?(b=a.L(b,G),Q(a,b,c.call(a,d,P(a,b)))):(b&=7,a.f[b]=a.f[b]&65280|c.call(a,d,a.f[b])&255)}function kd(a,b,d){b&56?M(a,a.L(b,E),d):a.f[b&7]=d&65535;return d}
|
||||
function S(a,b){return b&56?a.Tb(gd(a,b,tb)):a.f[b&7]}function hd(a,b){return b&56?P(a,a.L(b,ub)):a.f[b&7]&255}function id(a,b,d,c){b&56?(b=a.L(b,F),M(a,b,c.call(a,d,a.ka(b)))):(b&=7,a.f[b]=c.call(a,d,a.f[b])&65535)}function jd(a,b,d,c){b&56?(b=a.L(b,G),Q(a,b,c.call(a,d,P(a,b)))):(b&=7,a.f[b]=a.f[b]&65280|c.call(a,d,a.f[b])&255)}function kd(a,b,d){b&56?M(a,a.L(b,E),d):a.f[b&7]=d&65535;return d}
|
||||
function ld(a,b,d,c){b&56?Q(a,a.L(b,vb),d):(b&=7,a.f[b]=d?c&1?d<<24>>24&65535:a.f[b]&-256|d&255:a.f[b]&-256);return d}function T(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||
l.Ab=function(a){this.j.complete=!0;var b=this.j.Lc=this.I&&md(this.I),d=a?this.j.pc?0:1:-1;this.j.pc=!1;this.Y=this.b=a;this.pb&256?(Wc(this),a=!1):a=!0;if(a){do{if(b){if(nd(this.I,this.f[7],d)){this.pa();break}d=1}var c,e,f,g;this.V&112&&(this.V&32?L(this,168,52):this.V&64?L(this,4,54):this.V&16&&L(this,12,56),this.V&=-113);if(this.Ra)if(1===this.Ra)this.Ra=2;else{this.Ra=0;c=-1;e=this.dc&224;if(0<(a=this.u.length))for(;0<a--;){if(0<this.u[a].Ja){this.u[a].Ja--;this.Ra=2;break}if(this.u[a].uc){if(!this.u[a].uc()){this.u.splice(a,
|
||||
l.Ab=function(a){this.j.complete=!0;var b=this.j.Kc=this.I&&md(this.I),d=a?this.j.pc?0:1:-1;this.j.pc=!1;this.Y=this.b=a;this.pb&256?(Wc(this),a=!1):a=!0;if(a){do{if(b){if(nd(this.I,this.f[7],d)){this.pa();break}d=1}var c,e,f,g;this.V&112&&(this.V&32?L(this,168,52):this.V&64?L(this,4,54):this.V&16&&L(this,12,56),this.V&=-113);if(this.Ra)if(1===this.Ra)this.Ra=2;else{this.Ra=0;c=-1;e=this.ec&224;if(0<(a=this.u.length))for(;0<a--;){if(0<this.u[a].Ja){this.u[a].Ja--;this.Ra=2;break}if(this.u[a].uc){if(!this.u[a].uc()){this.u.splice(a,
|
||||
1);c--;continue}this.u[a].uc=null}this.u[a].Yc>e&&(e=this.u[a].Yc,c=a)}e>(this.N&224)&&(0>c?L(this,160,42):(L(this,this.u[c].ld,44),this.u.splice(c,1)))}this.ea&57344||(this.Ga=0,this.Eb=this.f[7]);this.V=this.N&16;this.g=a=this.na(this.f[7]);0<=a&&(this.f[7]=this.f[7]+2&65535);this.decode(a);if(0>this.g)switch(a&61440){case 4096:break;case 8192:break;case 12288:break;case 16384:break;case 20480:break;case 24576:break;case 36864:break;case 40960:break;case 45056:break;case 49152:break;case 53248:break;
|
||||
case 57344:break;default:switch(a&65024){case 2048:0<=(f=gd(this,a,0))&&(g=a>>6&7,0<=dd(this,this.f[g])&&(this.f[g]=this.f[7],this.f[7]=f&65535));break;case 28672:0<=(c=S(this,a))&&(g=a>>6&7,c&32768&&(c|=-65536),e=this.f[g],e&32768&&(e|=-65536),a=~~(c*e),this.f[g]=a>>16&65535,this.f[g|1]=a&65535,this.B=a>>16,this.F=this.B|a,this.D=this.C=0,-32768>a||32767<a)&&(this.D=65536);break;case 29184:0<=(c=S(this,a))&&(c?(g=a>>6&7,e=this.f[g]<<16|this.f[g|1],this.D=this.C=0,c&32768&&(c|=-65536),a=~~(e/c),-32768<=
|
||||
a&&32767>=a?(this.f[g]=a&65535,this.f[g|1]=e-a*c&65535,this.F=a>>16|a,this.B=a>>16):(this.C=32768,this.F=a>>15|a,this.B=e>>16,-1===c&&65534===this.f[g]&&(this.f[g]=this.f[g|1]=1))):(this.F=this.B=0,this.C=32768,this.D=65536));break;case 29696:0<=(c=S(this,a))&&(g=a>>6&7,a=this.f[g],a&32768&&(a|=4294901760),this.D=this.C=0,c&=63,c&32?(c=64-c,16<c&&(c=16),this.D=a<<17-c,a>>=c):c&&(16<c?(this.C=a,a=0):(this.D=a<<=c,(e=a>>15&65535)&&65535!==e&&(this.C=32768))),this.f[g]=a&65535,this.B=this.F=a);break;
|
||||
|
|
@ -120,7 +120,7 @@ U,U],Nd=[zd,function(){this.D=65536;--this.b},function(){this.C=32768;--this.b},
|
|||
X,X,X,Ad,Ad],Fd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(a){Od[a>>6&3].call(this,a)},function(a){Pd[a>>6&3].call(this,a)},function(a){Qd[a>>6&3].call(this,a)},function(a){Rd[a>>6&3].call(this,a)},X,X],Hd=[function(a){ad(this,
|
||||
kd(this,a,0));--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Id=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Jd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Kd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],
|
||||
Od=[function(a){ad(this,ld(this,a,0));--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Pd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Qd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b}],Rd=[function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=-1;--this.b},function(){this.g=
|
||||
-1;--this.b}];function Sd(a){u.call(this,"ROM",a,Sd);this.g=null;this.J=a.addr;this.w=a.size;this.O=a.writable;this.u=a.alias;this.G=a.file;this.R=da(this.G);if(this.G){a=this.G;var b=ia(this.R);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var d=this;wa(a,null,!0,function(a,b,f){re(d,a,b,f)})}}w(Sd);Sd.prototype.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;se(this)};
|
||||
-1;--this.b}];function Sd(a){u.call(this,"ROM",a,Sd);this.g=null;this.J=a.addr;this.w=a.size;this.O=a.writable;this.u=a.alias;this.G=a.file;this.R=da(this.G);if(this.G){a=this.G;var b=ia(this.R);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var d=this;ta(a,null,!0,function(a,b,f){re(d,a,b,f)})}}w(Sd);Sd.prototype.$a=function(a,b,d,c){this.H=b;this.b=d;this.I=c;se(this)};
|
||||
Sd.prototype.Qa=function(){if(this.Na){if(this.I){var a=this.I,b=this.id,d=this.J,c=this.w,e=this.Na,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],q=qa(n,k,a.vc);0>q&&n.splice(-(q+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.O.push({pd:b,A:d,Uc:c,Na:e,sc:f})}delete this.Na}return!0};Sd.prototype.Pa=function(){return!0};
|
||||
function re(a,b,d,c){if(c)a.sa("Unable to load system ROM (error "+c+": "+b+")");else{Za(a.tc,b,d);var e;if("["==d.charAt(0)||"{"==d.charAt(0))try{var f,g,h=eval("("+d+")");if(f=h.bytes)a.g=f;else if(f=h.words)for(a.g=Array(2*f.length),g=e=0;e<f.length;e++)a.g[g++]=f[e]&255,a.g[g++]=f[e]>>8&255;else if(f=h.data)for(a.g=Array(4*f.length),g=e=0;e<f.length;e++)a.g[g++]=f[e]&255,a.g[g++]=f[e]>>8&255,a.g[g++]=f[e]>>16&255,a.g[g++]=f[e]>>24&255;else a.g=h;a.Na=h.symbols;if(!a.g.length){t("Empty ROM: "+
|
||||
b);return}if(1==a.g.length){t(a.g[0]);return}}catch(k){a.sa("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.g=Array(b.length),e=0;e<b.length;e++)a.g[e]=ba(b[e],16);se(a)}}
|
||||
|
|
@ -140,77 +140,77 @@ var Je={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output
|
|||
Le={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,
|
||||
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]}};l=Ee.prototype;
|
||||
l.$a=function(a,b,d,c){this.H=b;this.b=d;this.w=a;(a=zc(a,"messages"))&&He(this,a);this.Lb=Le;Me(this,function(a){a:{var b=c.H.S,d=a[0],e=a=0,k=b.length;if(d){a=c.L(Ne(c,d));if(-1===a){c.i("invalid address: "+d);break a}e=a>>>c.H.Z;k=1}c.i("blockid physical blockaddr used size type");c.i("-------- --------- ---------- ------ ------ ----");for(var d=-1,m=0;k--;){var n=b[e];n.type==d?m++||c.i("..."):(d=n.type,m=Hb[d],n&&c.i(r(n.id,8)+" %"+r(e<<c.H.Z,8)+" %%"+r(n.A,8)+" "+r(n.Zb,
|
||||
l.$a=function(a,b,d,c){this.H=b;this.b=d;this.w=a;(a=zc(a,"messages"))&&He(this,a);this.$b=Le;Me(this,function(a){a:{var b=c.H.S,d=a[0],e=a=0,k=b.length;if(d){a=c.L(Ne(c,d));if(-1===a){c.i("invalid address: "+d);break a}e=a>>>c.H.Z;k=1}c.i("blockid physical blockaddr used size type");c.i("-------- --------- ---------- ------ ------ ----");for(var d=-1,m=0;k--;){var n=b[e];n.type==d?m++||c.i("..."):(d=n.type,m=Hb[d],n&&c.i(r(n.id,8)+" %"+r(e<<c.H.Z,8)+" %%"+r(n.A,8)+" "+r(n.Zb,
|
||||
4,!0)+" "+r(n.size,4,!0)+" "+m),d!=lc&&(d=-1),m=0);a+=c.H.Da;e++}}});D(this)};
|
||||
l.wa=function(a,b,d){var c=this;switch(b){case "debugInput":return this.ya=this.P[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",Ie(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.G<c.u.length-1&&(b=c.u[++c.G])):40==a.keyCode&&(0<c.G?b=c.u[--c.G]:(b="",c.G=-1)),null!=b){var e=b.length;d.value=b;d.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.P[b]=d,Ea(d,function(){if(c.ya){var a=c.ya.value;
|
||||
c.ya.value="";Ie(c,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=d,Ea(d,function(a){var b=!1;pb(c,!0)||(db(c,!0),b=c.Ab(a?1:0),db(c,!1));return b}),!0}return!1};l.Yb=function(){this.ya&&this.ya.focus()};l.L=function(a){a=a&&a.A;null==a&&(a=-1);return a};l.Nb=function(a,b){var d=255,c=this.L(a,!1,1);-1!==c&&(d=this.H,d=d.S[(c&d.H)>>>d.Z].Tb(c&d.g,c),b&&Oe(a,b));return d};l.La=function(a,b){var d=65535,c=this.L(a,!1,2);-1!==c&&(d=Ib(this.H,c),b&&Oe(a,b));return d};
|
||||
l.fc=function(a,b,d){var c=this.L(a,!0,1);if(-1!==c){var e=this.H;e.S[(c&e.H)>>>e.Z].Cb(c&e.g,b&255,c);d&&Oe(a,d);N(this.b,!0)}};l.oc=function(a,b,d){var c=this.L(a,!0,2);if(-1!==c){var e=this.H,f=c&e.g,g=(c&e.H)>>>e.Z;f!=e.g?e.S[g].qc(f,b&65535,c):(e.S[g++].Cb(f,b&255,c),e.S[g&e.w].Cb(0,b>>8&255,c+1));d&&Oe(a,d);N(this.b,!0)}};function Z(a){return{A:a,Ka:!1}}function Pe(a){return[a.A,a.Ka]}function Qe(a){return{A:a[0],Ka:a[1]}}
|
||||
function Ne(a,b,d){var c;d=(d?a.X:a.Db).A;if(void 0!==b){c=b=Ae(a,b);var e;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.O.length;d++){var f=a.O[d].Na[c];if(void 0!==f){c=f.o;void 0!==c&&(e=Z(c));break}}if(c=e)return c;d=ze(a,b,void 0)}null!=d&&(c=Z(d));return c}function Re(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Jc=xe(a,b.Ec=d[2]))}function Oe(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function He(a,b){a.I=a;a.ja=a.Kc=536870912;a.Ca=null;a.Ha=[];b=xe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var d in H){var c;a:if(c=void 0,Array.prototype.indexOf)c=b.indexOf(d,c);else{c=c||0;0>c&&(c+=b.length);0>c&&(c=0);for(var e=b.length;c<e;c++)if(c in b&&b[c]===d)break a;c=-1}0<=c&&(a.ja|=H[d],a.i(d+" messages enabled"))}}function Me(a,b){for(var d in H)if(64==H[d]){a.Va[d]=b;break}}
|
||||
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.f[7]).A));this.ja&1073741824?this.Ha.push(a):this.Ca&&a==this.Ca||(this.Ca=a,this.ja&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.i(a),this.b&&(a=this.b,Wc(a),a.ca=0,N(a)))};l.Ob=function(){this.i("Type ? for help with PDP11 Debugger commands");this.Ba();if(this.pb){var a=this.pb;this.pb=null;Ie(this,a)}};
|
||||
c.ya.value="";Ie(c,a,!0);return!0}return!1}),!0;case "step":return this.P[b]=d,Ea(d,function(a){var b=!1;eb(c,!0)||(db(c,!0),b=c.Ab(a?1:0),db(c,!1));return b}),!0}return!1};l.Yb=function(){this.ya&&this.ya.focus()};l.L=function(a){a=a&&a.A;null==a&&(a=-1);return a};l.Mb=function(a,b){var d=255,c=this.L(a,!1,1);-1!==c&&(d=this.H,d=d.S[(c&d.H)>>>d.Z].Sb(c&d.g,c),b&&Oe(a,b));return d};l.La=function(a,b){var d=65535,c=this.L(a,!1,2);-1!==c&&(d=Ib(this.H,c),b&&Oe(a,b));return d};
|
||||
l.gc=function(a,b,d){var c=this.L(a,!0,1);if(-1!==c){var e=this.H;e.S[(c&e.H)>>>e.Z].Cb(c&e.g,b&255,c);d&&Oe(a,d);N(this.b,!0)}};l.oc=function(a,b,d){var c=this.L(a,!0,2);if(-1!==c){var e=this.H,f=c&e.g,g=(c&e.H)>>>e.Z;f!=e.g?e.S[g].qc(f,b&65535,c):(e.S[g++].Cb(f,b&255,c),e.S[g&e.w].Cb(0,b>>8&255,c+1));d&&Oe(a,d);N(this.b,!0)}};function Z(a){return{A:a,Ka:!1}}function Pe(a){return[a.A,a.Ka]}function Qe(a){return{A:a[0],Ka:a[1]}}
|
||||
function Ne(a,b,d){var c;d=(d?a.X:a.Db).A;if(void 0!==b){c=b=Ae(a,b);var e;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.O.length;d++){var f=a.O[d].Na[c];if(void 0!==f){c=f.o;void 0!==c&&(e=Z(c));break}}if(c=e)return c;d=ze(a,b,void 0)}null!=d&&(c=Z(d));return c}function Re(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Ic=xe(a,b.Dc=d[2]))}function Oe(a,b){null!=a.A&&(a.A+=b||1)}
|
||||
function He(a,b){a.I=a;a.ja=a.Jc=536870912;a.Ca=null;a.Ha=[];b=xe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var d in H){var c;a:if(c=void 0,Array.prototype.indexOf)c=b.indexOf(d,c);else{c=c||0;0>c&&(c+=b.length);0>c&&(c=0);for(var e=b.length;c<e;c++)if(c in b&&b[c]===d)break a;c=-1}0<=c&&(a.ja|=H[d],a.i(d+" messages enabled"))}}function Me(a,b){for(var d in H)if(64==H[d]){a.Va[d]=b;break}}
|
||||
l.message=function(a,b){b&&(a+=" at "+Y(this,Z(this.b.f[7]).A));this.ja&1073741824?this.Ha.push(a):this.Ca&&a==this.Ca||(this.Ca=a,this.ja&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.i(a),this.b&&(a=this.b,Wc(a),a.ca=0,N(a)))};l.Nb=function(){this.i("Type ? for help with PDP11 Debugger commands");this.Ba();if(this.pb){var a=this.pb;this.pb=null;Ie(this,a)}};
|
||||
function Ge(a){var b;if(md(a)){if(!a.W||!a.W.length){a.W=Array(1E3);for(b=0;b<a.W.length;b++)a.W[b]=Z();a.qa=0;a.i("instruction history buffer allocated")}if(!a.ia||!a.ia.length)for(a.ia=Array(256),b=0;b<a.ia.length;b++)a.ia[b]=[b,0]}else a.W&&a.W.length&&a.i("instruction history buffer freed"),a.qa=0,a.W=[],a.ia=[]}l.ob=function(a){if(!Se(this))return!1;this.b.ob(a);return!0};
|
||||
l.Ab=function(a,b,d){if(!Se(this))return!1;this.R=0;a||md(this)&&nd(this,this.b.f[7],0);try{var c=this.b.Ab(a);0<c&&(this.R+=c,Uc(this.b,c,!0),Qc(this.b,c),this.$++)}catch(e){"number"!=typeof e&&(this.R=0,rb(this.b,e.stack||e.message))}!1!==d&&N(this.b);this.Ba(b||!1);return 0<this.R};l.pa=function(a){this.b&&this.b.pa(a)};l.Ba=function(a){void 0===a&&(a=!0);this.X=Z(this.b.f[7]);a&&1!=this.da?Te(this):Ue(this)};
|
||||
function Se(a){var b;if(b=a.b&&qb(a.b))b=a.b,b.j.ga?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!pb(a.b)?(a=a.b,a.j.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Qa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Pa=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ge(this);this.$=this.Ia=0;this.Ca=null;this.R=0;this.X=Z(this.b.f[7]);this.j.la=!1;Ve(this);a||this.Ba()};
|
||||
l.save=function(){var a=new O(this);a.set(0,Pe(this.X));a.set(1,Pe(this.ba));a.set(2,[this.u,this.ca,this.ja]);a.set(3,this.O);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.X=Qe(a[b++]),this.ba=Qe(a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.ca=a[b][1],this.ja|=a[b][2]);a[3]&&(this.O=a[3]);return!0};l.start=function(a,b){this.da||this.i("running");this.j.la=!0;this.kc=a;this.Oc=b};
|
||||
l.stop=function(a,b){if(this.j.la){this.j.la=!1;this.R=b-this.Oc;if(!this.da){b="stopped";if(this.R){a-=this.kc;var d=0<a?Math.round(1E3*this.R/a):0;b+=" (";md(this)&&(b+=this.$+" opcodes, ",this.Ia-=this.$,this.$=0);b+=this.R+" cycles, "+a+" ms, "+d+" hz)"}else cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}this.Ba(!0);this.Yb();Ve(this,this.b.f[7])}};function md(a){return 1<a.g.length||!!a.Aa}
|
||||
function Se(a){var b;if(b=a.b&&qb(a.b))b=a.b,b.j.ga?b=!0:(b.i(b.toString()+" not powered"),b=!1);b&&!eb(a.b)?(a=a.b,a.j.error?(a.i(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Qa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Pa=function(a,b){b&&this.i(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ge(this);this.$=this.Ia=0;this.Ca=null;this.R=0;this.X=Z(this.b.f[7]);this.j.la=!1;Ve(this);a||this.Ba()};
|
||||
l.save=function(){var a=new O(this);a.set(0,Pe(this.X));a.set(1,Pe(this.ba));a.set(2,[this.u,this.ca,this.ja]);a.set(3,this.O);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.X=Qe(a[b++]),this.ba=Qe(a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.ca=a[b][1],this.ja|=a[b][2]);a[3]&&(this.O=a[3]);return!0};l.start=function(a,b){this.da||this.i("running");this.j.la=!0;this.Mc=a;this.Oc=b};
|
||||
l.stop=function(a,b){if(this.j.la){this.j.la=!1;this.R=b-this.Oc;if(!this.da){b="stopped";if(this.R){a-=this.Mc;var d=0<a?Math.round(1E3*this.R/a):0;b+=" (";md(this)&&(b+=this.$+" opcodes, ",this.Ia-=this.$,this.$=0);b+=this.R+" cycles, "+a+" ms, "+d+" hz)"}else cb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.i(b)}this.Ba(!0);this.Yb();Ve(this,this.b.f[7])}};function md(a){return 1<a.g.length||!!a.Aa}
|
||||
function nd(a,b,d){var c=a.b;if(0<d&&(a.Aa&&!--a.Aa||uc(a,b,1,a.g)))return!0;0<=d&&a.ia.length&&(a.$++,null!=Ib(a.H,b)&&(b=a.W[a.qa],b.A=c.f[7],b.Ka=!1,++a.qa==a.W.length&&(a.qa=0)));return!1}function Fe(a){var b,d;a.g=["bp"];if(a.Y)for(b=1;b<a.Y.length;b++){d=a.Y[b];var c=a.H;d=a.L(d);vc(c.S[d>>>c.Z],!1)}a.Y=["br"];if(a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.H,d=a.L(d),vc(c.S[d>>>c.Z],!0);a.J=["bw"];a.Ib=0}
|
||||
l.hb=function(a,b,d){var c=!0;d||We(this,a,b,!1,!0);if(a!=this.g){var e=this.L(b);if(-1===e)this.i("invalid address: "+Y(this,b.A)),c=!1;else{var f=this.H;f.S[e>>>f.Z].hb(e&f.g,a==this.J)}}c&&(a.push(b),d?b.Ka=!0:(Xe(this,a,a.length-1,"set"),Ge(this)));return c};function We(a,b,d,c,e){var f=!1;d=a.L(d);for(var g=1;g<b.length;g++){var h=b[g];if(d==a.L(h)&&(!c||h.Ka)){f=!0;h.Ka||e||Xe(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(c=a.H,vc(c.S[d>>>c.Z],b==a.J));h.Ka||Ge(a);break}}return f}
|
||||
function Ye(a,b){for(var d=1;d<b.length;d++)Xe(a,b,d);return b.length-1}function Xe(a,b,d,c){d=b[d];a.i(b[0]+" "+Y(a,d.A)+(c?" "+c:d.Ec?' "'+d.Ec+'"':""))}function Ve(a,b){if(void 0!==b)uc(a,b,1,a.g,!0),a.da=0;else for(b=1;b<a.g.length;b++){var d=a.g[b];if(d.Ka){if(!We(a,a.g,d,!0))break;b=0}}}
|
||||
function uc(a,b,d,c,e){var f=!1;if(!a.Ib++)for(var g=1;!f&&g<c.length;g++){var h=c[g];if(!e||h.Ka)for(var k=a.L(h),m=0;m<d;m++)if(b+m==k){var n,f=!0;h.Ka&&(We(a,c,h,!0),e=!0);if(n=h.Jc){for(var f=!1,q=0;q<n.length;q++)if(!Ze(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var p=q+1;p<n.length&&n[p].indexOf("else");p++)q++;if(p==n.length){f=!0;break}}a.b.j.la||(f=!0)}if(f){e||Xe(a,c,g,"hit");break}}}a.Ib--;return f}
|
||||
function $e(a,b,d,c){var e=Z(b.A),f=a.La(b,2),g,h;for(h in a.Lb)if(g=a.Lb[h][f&h])break;g||(g=[0]);h="";for(var k=Ke[g[0]],m=g.length-1,n=1;n<=m;n++){var q=g[n];if(void 0!==q){var p;p=a;var z=q,q=b,x="",A=z&61440;if(4096==A)q=q.A+((f&255)<<24>>23)&65535,x=Y(p,q);else if(8192==A)q=q.A-((f&63)<<1)&65535,x=Y(p,q);else if(12288==A)x=Y(p,f&7,2);else if(24576==A)x=Y(p,f&63);else if(A=f&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=af(z);break;case 8:x="@"+af(z);break;case 16:7>z?x="("+af(z)+
|
||||
function Ye(a,b){for(var d=1;d<b.length;d++)Xe(a,b,d);return b.length-1}function Xe(a,b,d,c){d=b[d];a.i(b[0]+" "+Y(a,d.A)+(c?" "+c:d.Dc?' "'+d.Dc+'"':""))}function Ve(a,b){if(void 0!==b)uc(a,b,1,a.g,!0),a.da=0;else for(b=1;b<a.g.length;b++){var d=a.g[b];if(d.Ka){if(!We(a,a.g,d,!0))break;b=0}}}
|
||||
function uc(a,b,d,c,e){var f=!1;if(!a.Ib++)for(var g=1;!f&&g<c.length;g++){var h=c[g];if(!e||h.Ka)for(var k=a.L(h),m=0;m<d;m++)if(b+m==k){var n,f=!0;h.Ka&&(We(a,c,h,!0),e=!0);if(n=h.Ic){for(var f=!1,q=0;q<n.length;q++)if(!Ze(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var p=q+1;p<n.length&&n[p].indexOf("else");p++)q++;if(p==n.length){f=!0;break}}a.b.j.la||(f=!0)}if(f){e||Xe(a,c,g,"hit");break}}}a.Ib--;return f}
|
||||
function $e(a,b,d,c){var e=Z(b.A),f=a.La(b,2),g,h;for(h in a.$b)if(g=a.$b[h][f&h])break;g||(g=[0]);h="";for(var k=Ke[g[0]],m=g.length-1,n=1;n<=m;n++){var q=g[n];if(void 0!==q){var p;p=a;var z=q,q=b,x="",A=z&61440;if(4096==A)q=q.A+((f&255)<<24>>23)&65535,x=Y(p,q);else if(8192==A)q=q.A-((f&63)<<1)&65535,x=Y(p,q);else if(12288==A)x=Y(p,f&7,2);else if(24576==A)x=Y(p,f&63);else if(A=f&z,z&4032&&(A>>=6,z>>=6),z&63)switch(z=A&7,A&56){case 0:x=af(z);break;case 8:x="@"+af(z);break;case 16:7>z?x="("+af(z)+
|
||||
")+":(A=p.La(q,2),x="#"+Y(p,A));break;case 24:7>z?x="@("+af(z)+")+":(A=p.La(q,2),x="@#"+Y(p,A));break;case 32:x="-("+af(z)+")";break;case 40:x="@-("+af(z)+")";break;case 48:A=p.La(q,2);x=Y(p,A)+"("+af(z)+")";7==z&&(x=[x,Y(p,A+q.A&65535)]);break;case 56:A=p.La(q,2),x="@"+Y(p,A)+"("+af(z)+")",7==z&&(x=[x,Y(p,A+q.A&65535)])}p=x;if(!p||!p.length){h="INVALID";break}"string"!=typeof p&&(d||(d=p[1]),p=p[0]);0<h.length&&(h+=",");h+=p||"???"}}f="";g=Y(a,e.A)+":";if(-1!==e.A&&-1!==b.A){do if(f+=" "+Y(a,a.La(e,
|
||||
2)),null==e.A)break;while(e.A!=b.A)}g+=na(f,24);g+=na(k,5);h&&(g+=" "+h);d&&(g=na(g,60)+";"+d,g=a.b.j.rb?g+("cycles="+Rc(a.b).toString()+" cs="+r(a.b.Qb)):g+(null!=c?"="+c.toString():""));return g}function bf(a,b){switch(b){case "N":a=a.b.B&32768?8:0;break;case "Z":a=a.b.F&65535?0:4;break;case "V":a=a.b.C&32768?2:0;break;case "C":a=a.b.D&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function af(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||
2)),null==e.A)break;while(e.A!=b.A)}g+=na(f,24);g+=na(k,5);h&&(g+=" "+h);d&&(g=na(g,60)+";"+d,g=a.b.j.rb?g+("cycles="+Rc(a.b).toString()+" cs="+r(a.b.Pb)):g+(null!=c?"="+c.toString():""));return g}function bf(a,b){switch(b){case "N":a=a.b.B&32768?8:0;break;case "Z":a=a.b.F&65535?0:4;break;case "V":a=a.b.C&32768?2:0;break;case "C":a=a.b.D&65536?1:0;break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function af(a){return 6>a?"R"+a:6==a?"SP":"PC"}
|
||||
function cf(a,b){var d="",c=a.b;8>b?(d=af(b),d+="="+Y(a,c.f[b])):13>b?d="A"+(b-8)+"="+Y(a,c.bb[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+Y(a,c.ua[b-16]):20==b&&(d="PS="+Y(a,Yb(c)));d&&(d+=" ");return d}function df(a){var b,d="";for(b=0;6>b;b++)d+=cf(a,b);d=d+"\n"+(cf(a,6)+cf(a,7)+cf(a,20));return d+=bf(a,"T")+bf(a,"N")+bf(a,"Z")+bf(a,"V")+bf(a,"C")}l.vc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function ef(a,b,d){var c=[],e=a.L(b)>>>0;for(b=0;b<a.O.length;b++){var f=a.O[b],g=f.A>>>0,h=f.Uc;if(e>=g&&e<g+h){e=qa(f.sc,[e-g],a.vc);0<=e?ff(a,b,e,c):d&&(e=~e,ff(a,b,e-1,c),ff(a,b,e,c));break}}return c}function ff(a,b,d,c){var e={},f=a.O[b].sc,g=0,h=null;0<=d&&d<f.length&&(g=f[d][0],h=f[d][1]);h&&(e=a.O[b].Na[h],h="."==h.charAt(0)?null:e.l||h);c.push(h);c.push(g);c.push(e.a);c.push(e.c)}
|
||||
function gf(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return De(a)||a.i("no variables"),!0;if(!d[2])return De(a,d[1]);if(!d[3])return delete a.ha[d[1]],!0;b=ze(a,d[3]);return void 0!==b?(a.ha[d[1]]=b,!0):!1}a.i("invalid assignment:"+b);return!1}
|
||||
function hf(a,b,d){var c=null;if(b=Ne(a,b,!0)){a.L(b);var e=ef(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.A-e[1])&&(g=" + "+r(f,4,!0)),f=e[0]+" ("+Y(a,e[1])+")"+g,d&&a.i(f),c=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.A)&&(g=" - "+r(f,4,!0)),f=e[4]+" ("+Y(a,e[5])+")"+g,d&&a.i(f),c||(c=f))}else d&&a.i("no symbols")}return c}
|
||||
function Te(a,b){var d;if(b&&"?"==b[1])a.i("register commands:"),a.i("\tr\tdump registers"),a.i("\trx [#]\tset flag or register x to [#]");else{var c=a.b;null==d&&(d=!0);if(b&&1<b.length){var e=b[1],f=e.indexOf("=");if(0<f)b=e.substr(f+1),e=e.substr(0,f);else if(2<b.length)b=b[2];else{a.i("missing value for "+b[1]);return}var f=!1,g=ze(a,b);if(void 0!==g)switch(f=!0,e.toUpperCase()){case "PC":c.f[7]=g;a.X=Z(c.f[7]);break;case "NF":c.B=g?32768:0;break;case "ZF":c.F=g?0:1;break;case "VF":c.C=g?32768:
|
||||
0;break;case "CF":c.D=g?65536:0;break;default:a.i("unknown register: "+e);return}if(!f){a.i("invalid value: "+b);return}N(c);a.i("updated registers:")}a.i(df(a));d&&(a.X=Z(c.f[7]),Ue(a,Y(a,a.X.A)))}}function jf(a,b){b=oa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.i(d[2]):ze(a,b,!0)}function kf(a,b,d){var c="t"!=b;d=Be(a,d,null,!0)||1;var e=1==d?0:1;"tc"==b&&(e=d,d=1);Da(d,function(){return db(a,!0)&&a.Ab(e,c,!1)},function(){N(a.b);db(a,!1)})}
|
||||
function Ue(a,b,d,c){if(b=Ne(a,b,!0)){void 0===c&&(c=1);var e=256;if(void 0!==d){c=Ne(a,d,!0);if(!c||c.A<b.A)return;e=c.A-b.A;if(256<e){a.i("range too large");return}c=-1}d=0;for(var f;0<e&&c--;){f=pb(a,!1)||a.da?a.R:null;var g=null!=f?"cycles":null,h=ef(a,b),k=b.A;if(h[0]&&c&&(!d&&c||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=$e(a,b,g,f);a.i(f);a.X=b;e-=b.A-k;d++}}}
|
||||
function Ue(a,b,d,c){if(b=Ne(a,b,!0)){void 0===c&&(c=1);var e=256;if(void 0!==d){c=Ne(a,d,!0);if(!c||c.A<b.A)return;e=c.A-b.A;if(256<e){a.i("range too large");return}c=-1}d=0;for(var f;0<e&&c--;){f=eb(a,!1)||a.da?a.R:null;var g=null!=f?"cycles":null,h=ef(a,b),k=b.A;if(h[0]&&c&&(!d&&c||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.i(m)}h[3]&&(g=h[3],f=null);f=$e(a,b,g,f);a.i(f);a.X=b;e-=b.A-k;d++}}}
|
||||
function Ze(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.i(">> "+b):(a.ca&&(a.i("ended assemble at "+Y(a,a.ba.A)),a.X=a.ba,a.ca=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Ca=null;if(qb(a)&&0<b.length){a.ca&&(b="a "+Y(a,a.ba.A)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var g=f[0],h=g.charAt(0),k=1;k<g.length;k++){var m=g.charAt(k);if("?"==h||"r"==h||"a">m||"z"<m){f[0]=g.substr(k);f.unshift(g.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Ne(a,f[1],!0);
|
||||
if(n)if(a.ba=n,void 0===f[2])a.i("begin assemble at "+Y(a,n.A)),a.ca=!0,N(a.b);else{var q;a.i("not supported yet");q=[];if(q.length){for(var p=0;p<q.length;p++)a.fc(n,q[p],1);a.i($e(a,a.ba))}}break;case "b":a:{var z=f[0],x=f[1],A=b;if("?"==x)a.i("breakpoint commands:"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
else{var ta=z.charAt(1);if("l"==ta){var Ac;Ac=0+Ye(a,a.g);Ac+=Ye(a,a.Y);(Ac+=Ye(a,a.J))||a.i("no breakpoints")}else if("n"==ta)a.Aa=Be(a,x),a.i("break after "+a.Aa+" instruction(s)");else if(void 0===x)a.i("missing breakpoint address");else{var R=Z();if("*"!=x&&(R=Ne(a,x,!0),!R))break a;"c"==ta?null==R.A?(Fe(a),a.i("all breakpoints cleared")):We(a,a.g,R)||We(a,a.Y,R)||We(a,a.J,R)||a.i("breakpoint missing: "+Y(a,R.A)):null!=R.A&&(Re(a,R,A),"p"==ta?a.hb(a.g,R):"r"==ta?a.hb(a.Y,R):"w"==ta?a.hb(a.J,R):
|
||||
a.i("unknown breakpoint command: "+ta))}}}break;case "c":a.ib&&(a.ib.value="");break;case "d":a:{var Fa,Ga=f[0],ea=f[1],ua=f[2],Df=f[3];if("?"==ea){var Ha="";for(Fa in H)a.Va[Fa]&&(Ha&&(Ha+=","),Ha+=Fa);Ha+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Ha.length&&a.i("dump extension commands:\n\t"+
|
||||
Ha)}else if("state"==ea){var Td=lf(a.w,!0);"console"==ua?console.log(Td):(a.ib&&(a.ib.value=""),a.i(Td))}else if("symbols"==ea)for(var Bc=0;Bc<a.O.length;Bc++){var Cc=a.O[Bc],Ia;for(Ia in Cc.Na)if("."!=Ia.charAt(0)){var Ud=Cc.Na[Ia].o;if(void 0!==Ud){var Vd=Cc.Na[Ia].l;Vd&&(Ia=Vd);a.i(Y(a,Ud)+" "+Ia)}}}else{if("d"==Ga){for(Fa in H)if(f[1]==Fa){var Wd=a.Va[Fa];Wd?(f.shift(),f.shift(),Wd(f)):a.i("no dump registered for "+ea);break a}ea||(Ga=a.Sc||"db")}else a.Sc=Ga;if("dh"==Ga){var Xd=ea,Yd=ua,Zd="",
|
||||
$d=0,aa=a.qa,fa=a.W;if(fa.length){var W=+Xd||a.Kb,eb=+Yd||10;isNaN(W)?W=eb:Zd="more ";W>fa.length&&(a.i("note: only "+fa.length+" available"),W=fa.length);aa-=W;0>aa&&(null==fa[fa.length-1].A?(W=aa+W,aa=0):aa+=fa.length);var Dc=[];"call"==Yd&&(eb=1E5,Dc=["CALL"]);for(void 0!==Xd&&a.i(W+" instructions earlier:");0<eb&&aa!=a.qa;){var ae=fa[aa++];if(null==ae.A)break;var fb=Z(ae.A),Ef=W--,be=$e(a,fb,"history",Ef);(!Dc.length||0<=be.indexOf(Dc[0]))&&a.i(be);fb.ic&&(aa+=fb.ic,eb-=fb.ic,W-=fb.ic);aa>=fa.length&&
|
||||
(aa=0);a.Kb=W;$d++;eb--}}$d||(a.i("no "+Zd+"history available"),a.Kb=void 0)}else{var Kb=Ne(a,ea);if(Kb){var Lb=0;ua&&("l"==ua.charAt(0)&&(ua=ua.substr(1)||Df),Lb=Be(a,ua)>>>0,65536<Lb&&(Lb=65536));for(var gb="",Mb="dd"==Ga?4:"dw"==Ga?2:1,Nb=Mb*Lb||128,Ff=Nb+15>>4||1;Ff--&&0<Nb;){var Ob=0,Ec=0,hb,Fc="",ce="",ea=Y(a,Kb.A);for(hb=16;0<hb&&0<Nb;hb--){var Pb=a.Nb(Kb,1),Ob=Ob|Pb<<(Ec++<<3);Ec==Mb&&(Fc+=r(Ob,2*Mb),Fc+=1==Mb?9==hb?"-":" ":" ",Ob=Ec=0);ce+=32<=Pb&&128>Pb?String.fromCharCode(Pb):".";Nb--}gb&&
|
||||
(gb+="\n");gb+=ea+" "+Fc+(hb?"":" "+ce)}gb&&a.i(gb);a.Db=Kb}}}}break;case "e":if("else"==f[0])break;var Qb=1,de=255,ee=a.Nb,fe=a.fc;"ew"==f[0]&&(Qb=2,de=65535,ee=a.La,fe=a.oc);var ge=Qb<<1,he=f[1];if(null==he)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var Rb=Ne(a,he);if(Rb)for(var Sb=2;Sb<f.length;Sb++){var ib=ze(a,f[Sb]);if(void 0===ib){a.i("unrecognized value: "+f[Sb]);break}ib&~de&&a.i("warning: "+r(ib)+" exceeds "+
|
||||
Qb+"-byte value");var Gf=ee.call(a,Rb);a.i("changing "+Y(a,Rb.A)+" from "+r(Gf,ge,!0)+" to "+r(ib,ge,!0));fe.call(a,Rb,ib,Qb)}}break;case "g":a:{var ie=f[1],Hf=b;if(void 0!==ie){var Gc=Ne(a,ie,!0);if(!Gc)break a;Re(a,Gc,Hf);a.hb(a.g,Gc,!0)}a.ob(!0)||d||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Hc;if(a.j.la)Hc="halting",a.pa();else{if(pb(a,!0))break a;Hc="already halted"}d||a.i(Hc)}break;case "i":if("if"==f[0]){var Ic;var jb=b.substr(2),jb=oa(jb);ze(a,jb)?(d||a.i("true: "+
|
||||
jb),Ic=!0):(d||a.i("false: "+jb),Ic=!1);Ic||(c=!1)}break;case "k":var If=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Jc=0,je=Z(),kb=Z(a.b.f[6]);for(a.i("stack trace for "+Y(a,kb.A));10>Jc;){for(var va=null,Jf=256;65536>kb.A>>>0;){je.A=a.La(kb,2);if(null==kb.A||!Jf--)break;for(var Kf=a,Tb=je,ke=null,lb=Tb.A,le=lb,Kc=1;6>=Kc&&lb;Kc++){if(2<Kc){Tb.A=lb;var Ub=$e(Kf,Tb);if(0<=Ub.indexOf("JSR")){var me=Ub.indexOf(" ");if(lb+
|
||||
(Ub.indexOf(" ",me+1)-me-1)/2==le){ke=Ub;break}}}lb--}Tb.A=le;if(va=ke)break}if(!va||null==va)break;var ne=null;if("ks"==If){var oe=va.match(/[0-9A-F]+$/);oe&&(ne=hf(a,oe[0]))}va=na(va,50)+" ;"+(ne||"stack="+Y(a,kb.A));a.i(va);Jc++}Jc||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&hf(a,f[1],!0);break;case "m":a:{var ga,ha=null,C=f[1];"?"==C&&(C=void 0);if(void 0!==C){var pa=0;if("all"==C)pa=1878917119,C=null;else if("on"==C)ha=!0,C=null;else if("off"==C)ha=!1,C=null;else{"keys"==C&&
|
||||
(C="key");"kbd"==C&&(C="keyboard");for(ga in H)if(C==ga){pa=H[ga];ha=!!(a.ja&pa);break}if(!pa){a.i("unknown message category: "+C);break a}}if(pa)if("on"==f[2])a.ja|=pa,ha=!0;else if("off"==f[2]&&(a.ja&=~pa,ha=!1,1073741824==pa)){for(var Lc=0;Lc<a.Ha.length;Lc++)a.i(a.Ha[Lc]);a.Ha=[]}}var Lf=0,mb="";for(ga in H)if(!C||C==ga){var Mf=!!(a.ja&H[ga]);if(null===ha||ha==Mf)mb&&(mb+=","),++Lf%10||(mb+="\n\t"),"key"==ga&&(ga="keys"),mb+=ga}void 0===C&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.i((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));Ge(a)}break;case "p":if("print"==f[0]){jf(a,b.substr(5));break}var Nf="pr"==f[0]?1:0;if(a.da)a.i("step in progress");else{var pe=Z(a.b.f[7]);a.Nb(pe);a.da?(a.hb(a.g,pe,!0),a.ob()||(a.w&&a.w.Yb(),a.da=0)):kf(a,Nf?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}Te(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==nb)a.za=nb;else{a.i("invalid base: "+nb);
|
||||
break}}a.i("default base: "+a.za);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.b.ub=ob;break;case "start":a.b.Rb=ob;break;case "stop":a.b.vb=ob;break;default:a.i("unknown cs option");break a}void 0!==ob&&Pc(a.b);a.i("checksums "+(a.b.j.rb?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(Tc(a.b,+f[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.mb+"x)");break;case "?":a.i("debugger options:");
|
||||
if(n)if(a.ba=n,void 0===f[2])a.i("begin assemble at "+Y(a,n.A)),a.ca=!0,N(a.b);else{var q;a.i("not supported yet");q=[];if(q.length){for(var p=0;p<q.length;p++)a.gc(n,q[p],1);a.i($e(a,a.ba))}}break;case "b":a:{var z=f[0],x=f[1],A=b;if("?"==x)a.i("breakpoint commands:"),a.i("\tbp [a]\tset exec breakpoint at addr [a]"),a.i("\tbr [a]\tset read breakpoint at addr [a]"),a.i("\tbw [a]\tset write breakpoint at addr [a]"),a.i("\tbc [a]\tclear breakpoint at addr [a]"),a.i("\tbl\tlist all breakpoints"),a.i("\tbn [n]\tbreak after [n] instruction(s)");
|
||||
else{var ua=z.charAt(1);if("l"==ua){var Ac;Ac=0+Ye(a,a.g);Ac+=Ye(a,a.Y);(Ac+=Ye(a,a.J))||a.i("no breakpoints")}else if("n"==ua)a.Aa=Be(a,x),a.i("break after "+a.Aa+" instruction(s)");else if(void 0===x)a.i("missing breakpoint address");else{var R=Z();if("*"!=x&&(R=Ne(a,x,!0),!R))break a;"c"==ua?null==R.A?(Fe(a),a.i("all breakpoints cleared")):We(a,a.g,R)||We(a,a.Y,R)||We(a,a.J,R)||a.i("breakpoint missing: "+Y(a,R.A)):null!=R.A&&(Re(a,R,A),"p"==ua?a.hb(a.g,R):"r"==ua?a.hb(a.Y,R):"w"==ua?a.hb(a.J,R):
|
||||
a.i("unknown breakpoint command: "+ua))}}}break;case "c":a.ib&&(a.ib.value="");break;case "d":a:{var Ga,Ha=f[0],ea=f[1],va=f[2],Df=f[3];if("?"==ea){var Ia="";for(Ga in H)a.Va[Ga]&&(Ia&&(Ia+=","),Ia+=Ga);Ia+=",state,symbols";a.i("dump memory commands:");a.i("\tdb [a] [#] dump # bytes at address a");a.i("\tdw [a] [#] dump # words at address a");a.i("\tdd [a] [#] dump # dwords at address a");a.i("\tdh [#] [#] dump # instructions from history");Ia.length&&a.i("dump extension commands:\n\t"+
|
||||
Ia)}else if("state"==ea){var Td=lf(a.w,!0);"console"==va?console.log(Td):(a.ib&&(a.ib.value=""),a.i(Td))}else if("symbols"==ea)for(var Bc=0;Bc<a.O.length;Bc++){var Cc=a.O[Bc],Ja;for(Ja in Cc.Na)if("."!=Ja.charAt(0)){var Ud=Cc.Na[Ja].o;if(void 0!==Ud){var Vd=Cc.Na[Ja].l;Vd&&(Ja=Vd);a.i(Y(a,Ud)+" "+Ja)}}}else{if("d"==Ha){for(Ga in H)if(f[1]==Ga){var Wd=a.Va[Ga];Wd?(f.shift(),f.shift(),Wd(f)):a.i("no dump registered for "+ea);break a}ea||(Ha=a.Sc||"db")}else a.Sc=Ha;if("dh"==Ha){var Xd=ea,Yd=va,Zd="",
|
||||
$d=0,aa=a.qa,fa=a.W;if(fa.length){var W=+Xd||a.Kb,fb=+Yd||10;isNaN(W)?W=fb:Zd="more ";W>fa.length&&(a.i("note: only "+fa.length+" available"),W=fa.length);aa-=W;0>aa&&(null==fa[fa.length-1].A?(W=aa+W,aa=0):aa+=fa.length);var Dc=[];"call"==Yd&&(fb=1E5,Dc=["CALL"]);for(void 0!==Xd&&a.i(W+" instructions earlier:");0<fb&&aa!=a.qa;){var ae=fa[aa++];if(null==ae.A)break;var gb=Z(ae.A),Ef=W--,be=$e(a,gb,"history",Ef);(!Dc.length||0<=be.indexOf(Dc[0]))&&a.i(be);gb.jc&&(aa+=gb.jc,fb-=gb.jc,W-=gb.jc);aa>=fa.length&&
|
||||
(aa=0);a.Kb=W;$d++;fb--}}$d||(a.i("no "+Zd+"history available"),a.Kb=void 0)}else{var Lb=Ne(a,ea);if(Lb){var Mb=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Df),Mb=Be(a,va)>>>0,65536<Mb&&(Mb=65536));for(var hb="",Nb="dd"==Ha?4:"dw"==Ha?2:1,Ob=Nb*Mb||128,Ff=Ob+15>>4||1;Ff--&&0<Ob;){var Pb=0,Ec=0,ib,Fc="",ce="",ea=Y(a,Lb.A);for(ib=16;0<ib&&0<Ob;ib--){var Qb=a.Mb(Lb,1),Pb=Pb|Qb<<(Ec++<<3);Ec==Nb&&(Fc+=r(Pb,2*Nb),Fc+=1==Nb?9==ib?"-":" ":" ",Pb=Ec=0);ce+=32<=Qb&&128>Qb?String.fromCharCode(Qb):".";Ob--}hb&&
|
||||
(hb+="\n");hb+=ea+" "+Fc+(ib?"":" "+ce)}hb&&a.i(hb);a.Db=Lb}}}}break;case "e":if("else"==f[0])break;var Rb=1,de=255,ee=a.Mb,fe=a.gc;"ew"==f[0]&&(Rb=2,de=65535,ee=a.La,fe=a.oc);var ge=Rb<<1,he=f[1];if(null==he)a.i("edit memory commands:"),a.i("\teb [a] [...] edit bytes at address a"),a.i("\tew [a] [...] edit words at address a");else{var Sb=Ne(a,he);if(Sb)for(var Tb=2;Tb<f.length;Tb++){var jb=ze(a,f[Tb]);if(void 0===jb){a.i("unrecognized value: "+f[Tb]);break}jb&~de&&a.i("warning: "+r(jb)+" exceeds "+
|
||||
Rb+"-byte value");var Gf=ee.call(a,Sb);a.i("changing "+Y(a,Sb.A)+" from "+r(Gf,ge,!0)+" to "+r(jb,ge,!0));fe.call(a,Sb,jb,Rb)}}break;case "g":a:{var ie=f[1],Hf=b;if(void 0!==ie){var Gc=Ne(a,ie,!0);if(!Gc)break a;Re(a,Gc,Hf);a.hb(a.g,Gc,!0)}a.ob(!0)||d||a.i("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Hc;if(a.j.la)Hc="halting",a.pa();else{if(eb(a,!0))break a;Hc="already halted"}d||a.i(Hc)}break;case "i":if("if"==f[0]){var Ic;var kb=b.substr(2),kb=oa(kb);ze(a,kb)?(d||a.i("true: "+
|
||||
kb),Ic=!0):(d||a.i("false: "+kb),Ic=!1);Ic||(c=!1)}break;case "k":var If=f[0];if("?"==f[1])a.i("stack trace commands:"),a.i("\tk\tshow frame addresses"),a.i("\tks\tshow symbol information");else{var Jc=0,je=Z(),lb=Z(a.b.f[6]);for(a.i("stack trace for "+Y(a,lb.A));10>Jc;){for(var wa=null,Jf=256;65536>lb.A>>>0;){je.A=a.La(lb,2);if(null==lb.A||!Jf--)break;for(var Kf=a,Ub=je,ke=null,mb=Ub.A,le=mb,Kc=1;6>=Kc&&mb;Kc++){if(2<Kc){Ub.A=mb;var Vb=$e(Kf,Ub);if(0<=Vb.indexOf("JSR")){var me=Vb.indexOf(" ");if(mb+
|
||||
(Vb.indexOf(" ",me+1)-me-1)/2==le){ke=Vb;break}}}mb--}Ub.A=le;if(wa=ke)break}if(!wa||null==wa)break;var ne=null;if("ks"==If){var oe=wa.match(/[0-9A-F]+$/);oe&&(ne=hf(a,oe[0]))}wa=na(wa,50)+" ;"+(ne||"stack="+Y(a,lb.A));a.i(wa);Jc++}Jc||a.i("no return addresses found")}break;case "l":"ln"==f[0]&&hf(a,f[1],!0);break;case "m":a:{var ga,ha=null,C=f[1];"?"==C&&(C=void 0);if(void 0!==C){var pa=0;if("all"==C)pa=1878917119,C=null;else if("on"==C)ha=!0,C=null;else if("off"==C)ha=!1,C=null;else{"keys"==C&&
|
||||
(C="key");"kbd"==C&&(C="keyboard");for(ga in H)if(C==ga){pa=H[ga];ha=!!(a.ja&pa);break}if(!pa){a.i("unknown message category: "+C);break a}}if(pa)if("on"==f[2])a.ja|=pa,ha=!0;else if("off"==f[2]&&(a.ja&=~pa,ha=!1,1073741824==pa)){for(var Lc=0;Lc<a.Ha.length;Lc++)a.i(a.Ha[Lc]);a.Ha=[]}}var Lf=0,nb="";for(ga in H)if(!C||C==ga){var Mf=!!(a.ja&H[ga]);if(null===ha||ha==Mf)nb&&(nb+=","),++Lf%10||(nb+="\n\t"),"key"==ga&&(ga="keys"),nb+=ga}void 0===C&&a.i("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.i((null!==ha?ha?"messages on: ":"messages off: ":"message categories:\n\t")+(nb||"none"));Ge(a)}break;case "p":if("print"==f[0]){jf(a,b.substr(5));break}var Nf="pr"==f[0]?1:0;if(a.da)a.i("step in progress");else{var pe=Z(a.b.f[7]);a.Mb(pe);a.da?(a.hb(a.g,pe,!0),a.ob()||(a.w&&a.w.Yb(),a.da=0)):kf(a,Nf?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}Te(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var ob=+f[2];if(8==ob||10==ob||16==ob)a.za=ob;else{a.i("invalid base: "+ob);
|
||||
break}}a.i("default base: "+a.za);break;case "cs":var pb;void 0!==f[3]&&(pb=+f[3]);switch(f[2]){case "int":a.b.ub=pb;break;case "start":a.b.Qb=pb;break;case "stop":a.b.vb=pb;break;default:a.i("unknown cs option");break a}void 0!==pb&&Pc(a.b);a.i("checksums "+(a.b.j.rb?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(Tc(a.b,+f[2])||a.i("warning: using 1x multiplier, previous target not reached"));a.i("target speed: "+(a.b.kb.toFixed(2)+"Mhz")+" ("+a.b.mb+"x)");break;case "?":a.i("debugger options:");
|
||||
a.i("\tbase #\t\tset default base to #");a.i("\tcs int #\tset checksum cycle interval to #");a.i("\tcs start #\tset checksum cycle start count to #");a.i("\tcs stop #\tset checksum cycle stop count to #");a.i("\tsp #\t\tset speed multiplier to #");break;default:f[1]&&a.i("unknown option: "+f[1])}break;case "t":kf(a,f[0],f[1]);break;case "u":Ue(a,f[1],f[2],8);break;case "v":if("var"==f[0]){gf(a,b.substr(3))||(c=!1);break}a.i("PDP11js version 1.30.0 ("+a.b.Xc+",RELEASE"+(sb?",TYPEDARRAYS":",LONGARRAYS")+
|
||||
")");a.i(window?window.navigator.userAgent:"");break;case "?":if(f[1]){jf(a,b.substr(1));break}var Mc="commands:",Nc;for(Nc in Je)Mc+="\n"+na(Nc,9)+Je[Nc];md(a)||(Mc+="\nnote: history disabled if no exec breakpoints");a.i(Mc);break;default:a.i("unknown command: "+b),c=!1}}}catch(qe){a.i("debugger error: "+(qe.stack||qe.message)),c=!1}return c}function Ie(a,b,d){b=xe(a,b,d);for(var c in b)if(!Ze(a,b[+c]))return!1;return!0}
|
||||
Oa(function(){for(var a=B(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=y(d),c=new Ee(c);bb(c,d)}});
|
||||
function mf(a,b,d){u.call(this,"Computer",a,mf,67108864);this.j.ga=!1;nf(this,b);this.Y=zc(this,"autoPower",a);this.u=0;this.ha=a.busWidth||a.buswidth;this.g=of;this.W=null;this.O=this.ca=!1;this.url=zc(this,"url")||"";(Math.random()+.1).toString(36);this.w=pf(this);if(this.b=ab("CPU",this.id)){this.I=ab("Debugger",this.id);this.H=new yb({id:this.tc+".bus",busWidth:this.ha},this.b,this.I);var c,e=$a(this.id);if((this.G=ab("Panel",this.id))&&this.G.ib)for(b=0;b<e.length;b++)c=e[b],c.sa=this.G.sa,c.i=
|
||||
this.G.i,c.ib=this.G.ib;this.i("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.i("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)c=e[b],c.$a&&c.$a(this,this.H,this.b,this.I);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.R=c:this.g=parseInt(c,10));var f;if(a=zc(this,"state")||(f=!0,a.state))b=this.$=a,f||(this.O=!0,this.g=of),this.g&&
|
||||
(this.X=new O(this,"1.30.0"),qf(this.X)?b=null:delete this.X);!b&&this.g&&(b=rf(this))&&(this.O=!0);if(b){var g=this;wa(b,null,!0,function(a,b,c){c?(g.R=null,g.O=!1,g.sa("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(g.W=b,g.ca=!0);D(g)})}else D(this);this.P.power||(this.Y=!0);!d&&this.Y&&sf(this,this.Sb)}else t("Unable to find CPU component")}w(mf);var of=0;
|
||||
(this.X=new O(this,"1.30.0"),qf(this.X)?b=null:delete this.X);!b&&this.g&&(b=rf(this))&&(this.O=!0);if(b){var g=this;ta(b,null,!0,function(a,b,c){c?(g.R=null,g.O=!1,g.sa("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):(g.W=b,g.ca=!0);D(g)})}else D(this);this.P.power||(this.Y=!0);!d&&this.Y&&sf(this,this.Rb)}else t("Unable to find CPU component")}w(mf);var of=0;
|
||||
function nf(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 zc(a,b,d){var c=b.toLowerCase(),c=Ta[b]||Ta[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 sf(a,b,d){for(var c=$a(a.id),e=0;e<=c.length;e++){var f=e<c.length?c[e]:a;if(!qb(f)){qb(f,function(){sf(a,b,d)});return}}b.call(a,d)}
|
||||
function tf(a,b){var d=new O(a,"1.30.0","validate");if(qf(d)&&uf(d)){var c=d.get("timestamp"),e=b?b.get("timestamp"):"unknown";c!=e&&(a.sa("Machine state may be out-of-date\n("+c+" vs. "+e+")\nCheck your browser's local storage limits"),b||d.clear())}}l=mf.prototype;
|
||||
l.Sb=function(a){void 0===a&&(a=this.g||(this.W?1:of));if(!this.u){this.u++;var b=!1,d=!1;this.ba=!1;var c=this.X||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>of){if(qf(c,this.W)){this.J=new O(this,"1.30.0","failsafe");qf(this.J)&&(vf(this,c),a=2,wf(this.J));this.J.set("timestamp",sa());xf(this.J);var e=this.g&&!this.O;if(1==a||xa("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=uf(c)){var f=c.get("code"),g=c.get("data");f&&("ok"==f?qf(c,g):("error"==
|
||||
l.Rb=function(a){void 0===a&&(a=this.g||(this.W?1:of));if(!this.u){this.u++;var b=!1,d=!1;this.ba=!1;var c=this.X||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>of){if(qf(c,this.W)){this.J=new O(this,"1.30.0","failsafe");qf(this.J)&&(vf(this,c),a=2,wf(this.J));this.J.set("timestamp",sa());xf(this.J);var e=this.g&&!this.O;if(1==a||xa("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=uf(c)){var f=c.get("code"),g=c.get("data");f&&("ok"==f?qf(c,g):("error"==
|
||||
f&&"no machine state"!=g?(this.sa("Error: "+g),"unable to verify user"==g&&(Ba("user",""),this.w=null)):this.i(f+": "+g),wf(c),qf(c)?(d=uf(c),e=!0):d=!1))}e&&tf(this,d?c:null)}else 2==a&&c.clear()}else tf(this);delete this.W;delete this.X}e=$a(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(d=yf(this,g,c,b,d));b=[c,a,d];-1!=a?sf(this,this.xc,b):this.xc(b)}};
|
||||
function yf(a,b,d,c,e){if(!b.j.ga){b.j.ga=!0;if(b.Qa){var f=null;e&&((f=d.get(b.id))||(f=d.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Qa(f,c)&&f&&(t("Unable to restore state for "+b.type),a.$&&!a.ca?(d.clear(),a.g=of,window&&window.location.reload()):a.ba=!0,b.Qa(null),e=!1)}if(!c&&b.rc)for(a=b.rc.split("|"),d=0;d<a.length;d++)b.status(a[d])}return e}
|
||||
l.xc=function(a){var b=a[0],d=0>a[1];a=a[2];this.ia=!0;this.j.ga=!0;var c=this.P.power;c&&(c.textContent="Shutdown");this.b&&(yf(this,this.b,b,d,a),this.b.Hb());this.ba&&(vf(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.u=0};
|
||||
function vf(a,b){if(xa("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.w||"";b=b.toString();var c={app:"PDP11js",ver:"1.30.0"};c.url=a.url;c.user=d;c.type="bug";c.data=b;wa("http://www.pcjs.org/api/v1/report",c,!0)}}
|
||||
function vf(a,b){if(xa("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.w||"";b=b.toString();var c={app:"PDP11js",ver:"1.30.0"};c.url=a.url;c.user=d;c.type="bug";c.data=b;ta("http://www.pcjs.org/api/v1/report",c,!0)}}
|
||||
function lf(a,b,d){var c,e="none";if(a.u)return null;a.u--;var f=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=sa();g.set("timestamp",h);f.set("timestamp",h);f.set("version","1.30.0");f.set("url",window?window.location.href:null);f.set("browser",window?window.navigator.userAgent:"");a.b&&a.b.Pa&&(d&&a.b.pa(),c=a.b.Pa(b,d),"object"===typeof c&&f.set(a.b.id,c),d&&(a.b.j.ga=!1,!1===c&&(e=null)));for(var h=$a(a.id),k=0;k<h.length;k++){var m=h[k];m.j.ga&&(m.Pa&&(c=m.Pa(b,d),"object"===typeof c&&f.set(m.id,
|
||||
c)),d&&(m.j.ga=!1,!1===c&&(e=null)))}e&&(d?(h=c=!1,b?(a.w&&zf(a,a.w,f.toString()),xf(g)&&xf(f)||(e=null,c=h=!0)):a.g&&(c=!0,h=3==a.g),c&&f.clear(h)):e=f.toString());d&&(a.j.ga=!1,b=a.P.power)&&(b.textContent="Power");a.u=0;return e}
|
||||
l.reset=function(){this.H&&this.H.reset&&(this.I&&cb(this,0)&&this.I.message("Resetting "+this.H.type,void 0),this.H.reset());for(var a=$a(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.H&&d.reset&&(this.I&&cb(this,0)&&this.I.message("Resetting "+d.type,void 0),d.reset())}};l.start=function(a,b){for(var d=$a(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||
l.stop=function(a,b){for(var d=$a(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
l.wa=function(a,b,d){var c=this;switch(b){case "power":return this.P[b]=d,d.onclick=function(){c.u||(c.j.ga?lf(c,!1,!0):sf(c,c.Sb))},!0;case "reset":return this.P[b]=d,d.onclick=function(){if(c.j.ga&&!c.u)if(c.g&&!c.R){var a=xa("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lf(c,a,!0);!a&&c.$?window&&window.location.reload():c.Sb(of)}else c.reset(),c.b&&c.b.Hb()},!0;case "save":if(ja())d.parentNode.removeChild(d);else return this.P[b]=
|
||||
l.wa=function(a,b,d){var c=this;switch(b){case "power":return this.P[b]=d,d.onclick=function(){c.u||(c.j.ga?lf(c,!1,!0):sf(c,c.Rb))},!0;case "reset":return this.P[b]=d,d.onclick=function(){if(c.j.ga&&!c.u)if(c.g&&!c.R){var a=xa("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lf(c,a,!0);!a&&c.$?window&&window.location.reload():c.Rb(of)}else c.reset(),c.b&&c.b.Hb()},!0;case "save":if(ja())d.parentNode.removeChild(d);else return this.P[b]=
|
||||
d,d.onclick=function(){var a=pf(c,!0);if(a){var b=!!(c.g&&!c.R||c.$),d=lf(c,b);b?zf(c,a,d):c.sa("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function pf(a,b){var d=a.w;d||((d=Aa("user"),void 0!==d)?!d&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),d=b)&&((d=Af(a,d))||a.sa("The user ID is invalid.")):b&&a.sa("Browser local storage is not available"));return d}
|
||||
function Af(a,b){a.w=null;b=wa(ka()+"/api/v1/user?req=verify&user="+b);var d=b[1];if(!b[0]&&d)try{b=eval("("+d+")"),b.code&&"ok"==b.code&&(Ba("user",b.data),a.w=b.data)}catch(c){t(c.message+" ("+d+")")}return a.w}function rf(a){var b=null;a.w&&(b=ka()+"/api/v1/user?req=load&user="+a.w+"&state="+Bf(a,"1.30.0"));return b}
|
||||
function zf(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Bf(a,"1.30.0");c.data=d;b=wa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.sa("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.sa(d),Ba("user",""),a.w=null)}}l.Yb=function(){};
|
||||
l.Ba=function(a){this.b&&this.b.Ba(a);this.G&&this.G.Ba(a)};Oa(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=y(d),d=B(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],g=y(f),g=new mf(g,c,!0);bb(g,f);g.Y&&sf(g,g.Sb)}});Ja.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=ab("Computer",d.id))&&d.ia&&!d.j.ga&&d.Sb(-1)}});
|
||||
Ja.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=ab("Computer",d.id))&&d.j.ga&&lf(d,!(!d.g||d.R),!0)}});function O(a,b,d){this.id=a.id;this.key=Bf(a,b,d);this.I=a.I;wf(this,a.Pc)}function Bf(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}
|
||||
function Af(a,b){a.w=null;b=ta(ka()+"/api/v1/user?req=verify&user="+b);var d=b[1];if(!b[0]&&d)try{b=eval("("+d+")"),b.code&&"ok"==b.code&&(Ba("user",b.data),a.w=b.data)}catch(c){t(c.message+" ("+d+")")}return a.w}function rf(a){var b=null;a.w&&(b=ka()+"/api/v1/user?req=load&user="+a.w+"&state="+Bf(a,"1.30.0"));return b}
|
||||
function zf(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=Bf(a,"1.30.0");c.data=d;b=ta(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.sa("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.sa(d),Ba("user",""),a.w=null)}}l.Yb=function(){};
|
||||
l.Ba=function(a){this.b&&this.b.Ba(a);this.G&&this.G.Ba(a)};Oa(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=y(d),d=B(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],g=y(f),g=new mf(g,c,!0);bb(g,f);g.Y&&sf(g,g.Rb)}});Fa.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=ab("Computer",d.id))&&d.ia&&!d.j.ga&&d.Rb(-1)}});
|
||||
Fa.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var d=y(a[b]);(d=ab("Computer",d.id))&&d.j.ga&&lf(d,!(!d.g||d.R),!0)}});function O(a,b,d){this.id=a.id;this.key=Bf(a,b,d);this.I=a.I;wf(this,a.Pc)}function Bf(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}
|
||||
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(d){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){wf(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(e){}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(e){}b.splice(d,
|
||||
1);d=0}}};function wf(a,b){a[a.id]={};b&&a.set("parms",b);a.b=!1}function xf(a){var b=!0;if(za()){var d=JSON.stringify(a[a.id]);Ba(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function uf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function qf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:za()&&(b=Aa(a.key))?(a[a.id]=b,a.b=!0):!1}var Cf=0;
|
||||
function Of(a,b,d,c,e,f){e("Loading "+a+"...");wa(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Pf(h,a,b,d,c,e,f)})}
|
||||
function Of(a,b,d,c,e,f){e("Loading "+a+"...");ta(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),f(h,null)):Pf(h,a,b,d,c,e,f)})}
|
||||
function Pf(a,b,d,c,e,f,g){function h(a,f){if(f)g(f,null);else{d&&(Za(d,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),c?"}"==c.slice(-1)?(c=c.slice(0,-1),1<c.length&&(c+=",")):c='{state:"'+c+'",':c="{",c+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+d+"$2"+(c?" parms='"+c+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?Qf(a,f,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Qf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=c[2];b("Loading "+e+"...");wa(e,null,!0,function(f,g,h){if(h||!g)d(a,"unable to resolve XML reference: "+c[0]+" ("+h+")");else{if(f=c[3])if(h=g.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{d(a,"missing <"+c[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
function Qf(a,b,d){var c;if(c=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=c[2];b("Loading "+e+"...");ta(e,null,!0,function(f,g,h){if(h||!g)d(a,"unable to resolve XML reference: "+c[0]+" ("+h+")");else{if(f=c[3])if(h=g.match(new RegExp("<"+c[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{d(a,"missing <"+c[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(c[0],g);Qf(a,b,d)}})}else d(a,null)}
|
||||
function Rf(a,b,d,c){function e(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ma(a))}function f(a){e("Error: "+a);k&&(--Cf||Qa(!0));k=!1}var g,h,k=!0;Cf++;Ya[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=m:q.appendChild(document.createTextNode(m));n.appendChild(q)}d||
|
||||
(d="/versions/pdp11/1.30.0/components.xsl");m=function(c,h){h?Of(d,null,null,!1,e,function(c,k){k?(Za(a,d,c),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Cf||Qa(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(c=new XSLTProcessor,c.importStylesheet(k),(k=c.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Cf||Qa(!0)):f("invalid machine element: "+
|
||||
|
|
|
|||
|
|
@ -1,156 +1,156 @@
|
|||
(function(){var l;
|
||||
function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&f&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var e,d=a;((f=b)&&10!=f?16==f?d.match(/^[0-9a-f]+$/i):8==f?d.match(/^[0-7]+$/):2==
|
||||
f&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function n(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
||||
function da(){var a=ea();return-1!==a.indexOf("pcjs.org",a.length-8)}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}var ha=Date.now||function(){return+new Date};function ia(){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())}
|
||||
f&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function ba(a,b){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""+c}function n(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}
|
||||
function ca(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function da(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ea(){var a=fa();return-1!==a.indexOf("pcjs.org",a.length-8)}var ga={"&":"&","<":"<",">":">",'"':""","'":"'"};function ha(a){return a.replace(/[&<>"']/g,function(a){return ga[a]})}var ia=Date.now||function(){return+new Date};
|
||||
function ja(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function p(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function r(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 ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function 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.Kb=b.comment;this.ic=b;b=this.id.indexOf(".");0>b?this.yb=this.id:(this.Lb=this.id.substr(0,b),this.yb=this.id.substr(b+1));this[a]=c;this.j={ready:!1,bb:!1,Cb:!1,M:!1,error:!1};this.qb=null;this.j.error=!1;this.C={};this.K=null;w.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}
|
||||
function x(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={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},w=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function fa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function r(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function ma(){if(null==la){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}la=a}return la}function na(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function oa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pa(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:[]},qa=!1,ra=!1,sa=!0;function ta(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 ua(a){if(sa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function va(a){!sa&&a?(sa=!0,qa&&wa("init"),ra&&wa("show")):sa=a}function wa(a){t[a]&&ua(t[a])}ta("onload",function(){qa=!0;ua(t.init)});ta("onpageshow",function(){ra=!0;ua(t.show)});ta(pa("Opera")||pa("iOS")?"onunload":"onbeforeunload",function(){ua(t.exit)});
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Lb=b.comment;this.gc=b;b=this.id.indexOf(".");0>b?this.zb=this.id:(this.Mb=this.id.substr(0,b),this.zb=this.id.substr(b+1));this[a]=c;this.j={ready:!1,bb:!1,Db:!1,M:!1,error:!1};this.qb=null;this.j.error=!1;this.C={};this.K=null;w.push(this)}var xa=void 0,ya={};
|
||||
if(window){xa||(xa=window.location.search.substr(1));for(var za,Aa=/\+/g,Ba=/([^&=]+)=?([^&]*)/g;za=Ba.exec(xa);)ya[decodeURIComponent(za[1].replace(Aa," "))]=decodeURIComponent(za[2].replace(Aa," "))}function Ca(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 x(a,b){b||(b=v);a.prototype=Ca(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Da=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Da={},w=[];function Ea(a,b,c){Da[a]&&b&&(Da[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Fa(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<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function A(a,b){b=B(b.parentNode,"pdp11-control");for(var c=0;c<b.length;c++)for(var d=b[c].childNodes,f=0;f<d.length;f++){var e=d[f];if(1===e.nodeType){var g=e.getAttribute("class");if(g)for(var h=g.split(" "),k=0;k<h.length;k++)switch(g=h[k],g){case "pdp11-binding":(g=z(e))&&g.binding&&a.fa(g.type,g.binding,e,g.value),k=h.length}}}}
|
||||
function B(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},fa:function(a,b,c){switch(b){case "clear":return this.C[b]||(this.C[b]=c,c.onclick=function(a){return function(){a.C.print&&(a.C.print.value="")}}(this)),!0;case "print":return this.C[b]||(this.Db=this.C[b]=c,c.value="",this.$=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.L=function(a){this.$(a,this.yb)}),!0;default:return!1}},log:function(){},$:function(){},status:function(a){this.$(this.yb+": "+a)},L:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},za:function(){return this.j.M=!0},ya:function(a,b){b&&(this.j.M=!1);return!0}};function Fa(a,b){if(a.j.Cb)return a.j.bb&&(a.j.bb=!1),a.j.Cb=!1;if(a.j.error)return a.$(a.toString()+" error"),!1;a.j.bb=b;return a.j.bb}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.qb;a.qb=null;b&&b()}}
|
||||
function Ga(a,b){b&&(a.j.ready?b():a.qb=b);return a.j.ready}var Ha="undefined"!==typeof ArrayBuffer,Ia=2,D=4,E=6,Ia=0|Ia,Ja=1|Ia,D=0|D,Ka=1|D,E=0|E,F=1|E;function La(a){v.call(this,"Panel",a,La)}x(La);l=La.prototype;l.fa=function(a,b,c,d){return this.B&&this.B.fa(a,b,c,d)||this.a&&this.a.fa(a,b,c,d)?!0:this.parent.fa.call(this,a,b,c,d)};l.La=function(a,b,c,d){this.B=a;this.A=b;this.a=c;this.K=d};l.za=function(a,b){b||Ma();return!0};l.ya=function(){return!0};l.Pa=function(){};
|
||||
function Ma(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=z(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}}e=null}e||(a=!0,e=new La(f));A(e,d);a&&C(e)}}u(Ma);
|
||||
function Na(a,b,c){v.call(this,"Bus",a,Na);this.a=b;this.K=c;this.v=a.busWidth||16;this.o=Math.pow(2,this.v);this.i=this.o-1|0;this.f=(this.v>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.B=this.g>>2;this.h=this.g-1;this.l=this.o/this.g|0;this.H=this.l-1;this.ta=[];this.A=null;this.cb=this.O;a=new G;Oa(a,this.K);this.c=Array(this.l);for(b=0;b<this.l;b++)this.c[b]=a;this.Za=Array(4);this.Za[0]=Pa;this.Za[1]=Qa;this.Za[2]=Ra;this.Za[3]=Sa;Ta(this,this.o-8192,8192,Ua,this);
|
||||
Ta(this,57344,8192,Ua,this);C(this)}x(Na);function Pa(a,b){var c=this.controller,d=c.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=c.ta[a&-2],d[2]))return d[2](b&-2)>>8;return c.cb(b,-1,1)}
|
||||
function Qa(a,b,c){var d=this.controller,f=d.ta[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.ta[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.cb(c,b,1)}function Ra(a,b){var c=this.controller;if(a=c.ta[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}return c.cb(b,-1,0)}
|
||||
function Sa(a,b,c){var d=this.controller;if(a=d.ta[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.cb(c,b,0)}Na.prototype.reset=function(){this.A&&this.A()};Na.prototype.O=function(){return 0};Na.prototype.za=function(a,b){b||this.reset();return!0};
|
||||
function Ta(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.c.length;){var k=a.c[h],m=h*a.g,q=a.g-(e-m);q>g&&(q=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Sa)return k.wb+=k.Sa-e,k.Sa=e,!0;if(e>=k.Sa+k.wb){q=k.size-(e-m);q>g&&(q=g);k.wb=e-k.Sa+q;e=m+a.g;g-=q;h++;continue}}return Va(1,e,g)}e=new G(e,q,a.g,d,f);Oa(e,a.K,k);a.c[h++]=e;e=m+a.g;g-=q}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Wa[d]+" at "+n(b,8,!0)),!0):Va(2,b,c)}
|
||||
function Xa(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.c[d];if(f.wa||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],q=g+1;q<f.length&&f[q]===m;)q++;k[h++]=q-g;k[h++]=m;g=q}k.length<f.length&&(f=k)}c[e]=f}}return c}function Va(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
|
||||
function H(a){v.call(this,"Device",a,H);this.c={Gb:[],ia:0,X:128,c:127,ec:0};this.f={data:0,Fc:0,Ta:20,Ac:0};this.g={Fb:0,m:0};this.h={ib:2496,S:0,w:128,jb:0,hb:0,W:0,Vb:0,T:[],Ja:[406,406,406,406],G:[12,12,12,12]};this.i={m:129,ab:0,J:0,xa:0,ua:0,Ba:0,T:[],G:[40,40,40,40],Ja:[1024,1024,512,512],cc:[157,157,29,29]};this.l={a:[8210,8208,8210,8226],G:[22,22,22,50],Ia:[19,19,19,32],xb:[815,411,815,630],T:[],D:2176,Xa:0,Va:0,ea:[0,0,0,0,0,0,0,0],da:0,U:[4544,4544,4544,4544,4544,4544,4544,4544],Wa:[0,
|
||||
0,0,0,0,0,0,0],Oa:0,yc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],zc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],na:[0,0,0,0,0,0,0,0],vb:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],xc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],Aa:0,Hb:0}}x(H);
|
||||
var Ya=[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,
|
||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},fa:function(a,b,c){switch(b){case "clear":return this.C[b]||(this.C[b]=c,c.onclick=function(a){return function(){a.C.print&&(a.C.print.value="")}}(this)),!0;case "print":return this.C[b]||(this.Eb=this.C[b]=c,c.value="",this.N=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.L=function(a){this.N(a,this.zb)}),!0;default:return!1}},log:function(){},N:function(){},status:function(a){this.N(this.zb+": "+a)},L:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},za:function(){return this.j.M=!0},ya:function(a,b){b&&(this.j.M=!1);return!0}};function Ga(a,b){if(a.j.Db)return a.j.bb&&(a.j.bb=!1),a.j.Db=!1;if(a.j.error)return a.N(a.toString()+" error"),!1;a.j.bb=b;return a.j.bb}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.qb;a.qb=null;b&&b()}}
|
||||
function Ha(a,b){b&&(a.j.ready?b():a.qb=b);return a.j.ready}var Ia="undefined"!==typeof ArrayBuffer,Ja=2,D=4,E=6,Ja=0|Ja,Ka=1|Ja,D=0|D,La=1|D,E=0|E,F=1|E;function Ma(a){v.call(this,"Panel",a,Ma)}x(Ma);l=Ma.prototype;l.fa=function(a,b,c,d){return this.B&&this.B.fa(a,b,c,d)||this.a&&this.a.fa(a,b,c,d)?!0:this.parent.fa.call(this,a,b,c,d)};l.La=function(a,b,c,d){this.B=a;this.A=b;this.a=c;this.K=d};l.za=function(a,b){b||Na();return!0};l.ya=function(){return!0};l.Pa=function(){};
|
||||
function Na(){for(var a=!1,b=B(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=z(d),e;a:{e=f.id;if(void 0!==e){var g;for(g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}}e=null}e||(a=!0,e=new Ma(f));A(e,d);a&&C(e)}}u(Na);
|
||||
function Oa(a,b,c){v.call(this,"Bus",a,Oa);this.a=b;this.K=c;this.v=a.busWidth||16;this.o=Math.pow(2,this.v);this.i=this.o-1|0;this.f=(this.v>>1)+2;10>this.f&&(this.f=10);15<this.f&&(this.f=15);this.g=1<<this.f;this.B=this.g>>2;this.h=this.g-1;this.l=this.o/this.g|0;this.H=this.l-1;this.ta=[];this.A=null;this.cb=this.P;a=new G;Pa(a,this.K);this.c=Array(this.l);for(b=0;b<this.l;b++)this.c[b]=a;this.Za=Array(4);this.Za[0]=Qa;this.Za[1]=Ra;this.Za[2]=Sa;this.Za[3]=Ta;Ua(this,this.o-8192,8192,Va,this);
|
||||
Ua(this,57344,8192,Va,this);C(this)}x(Oa);function Qa(a,b){var c=this.controller,d=c.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=c.ta[a&-2],d[2]))return d[2](b&-2)>>8;c.N("warning: unconverted read access to byte @"+ba(b));return c.cb(b,-1,1)}
|
||||
function Ra(a,b,c){var d=this.controller,f=d.ta[a];if(f){if(f[1]){f[1](b,c);return}if(f[3]){a=f[2]?f[2](c):0;if(c&1)f[3](a&255|b<<8,c&-2);else f[3](a&-256|b,c);return}}else if(c&1&&(f=d.ta[a&-2],f[3])){c&=-2;a=f[2]?f[2](c):0;f[3](a&255|b<<8,c);return}d.N("warning: unconverted write access to byte @"+ba(c));d.cb(c,b,1)}
|
||||
function Sa(a,b){var c=this.controller;if(a=c.ta[a]){if(a[2])return a[2](b);if(a[0])return a[0](b)|a[0](b+1)<<8}c.N("warning: unconverted read access to word @"+ba(b));return c.cb(b,-1,0)}function Ta(a,b,c){var d=this.controller;if(a=d.ta[a]){if(a[3]){a[3](b,c);return}if(a[1]){a[1](b&255,c);a[1](b>>8,c+1);return}}d.N("warning: unconverted write access to word @"+ba(c));d.cb(c,b,0)}Oa.prototype.reset=function(){this.A&&this.A()};Oa.prototype.P=function(){return 0};
|
||||
Oa.prototype.za=function(a,b){b||this.reset();return!0};function Ua(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.f;0<g&&h<a.c.length;){var k=a.c[h],m=h*a.g,q=a.g-(e-m);q>g&&(q=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.Sa)return k.xb+=k.Sa-e,k.Sa=e,!0;if(e>=k.Sa+k.xb){q=k.size-(e-m);q>g&&(q=g);k.xb=e-k.Sa+q;e=m+a.g;g-=q;h++;continue}}return Wa(1,e,g)}e=new G(e,q,a.g,d,f);Pa(e,a.K,k);a.c[h++]=e;e=m+a.g;g-=q}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Xa[d]+" at "+n(b,8,!0)),!0):Wa(2,b,c)}
|
||||
function Ya(a){for(var b=0,c=[],d=0;d<a.l;d++){var f=a.c[d];if(f.wa||f.fc){c[b++]=d;var e=b++;if(f=f.save()){for(var g=0,h=0,k=[];g<f.length;){for(var m=f[g],q=g+1;q<f.length&&f[q]===m;)q++;k[h++]=q-g;k[h++]=m;g=q}k.length<f.length&&(f=k)}c[e]=f}}return c}function Wa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}
|
||||
function H(a){v.call(this,"Device",a,H);this.c={Hb:[],ia:0,Y:128,c:127,ec:0};this.f={data:0,Ec:0,Ta:20,zc:0};this.g={Gb:0,m:0};this.h={ib:2496,T:0,w:128,jb:0,hb:0,X:0,Vb:0,U:[],Ja:[406,406,406,406],G:[12,12,12,12]};this.i={m:129,ab:0,J:0,xa:0,ua:0,Ba:0,U:[],G:[40,40,40,40],Ja:[1024,1024,512,512],cc:[157,157,29,29]};this.l={a:[8210,8208,8210,8226],G:[22,22,22,50],Ia:[19,19,19,32],yb:[815,411,815,630],U:[],D:2176,Xa:0,Va:0,ea:[0,0,0,0,0,0,0,0],da:0,V:[4544,4544,4544,4544,4544,4544,4544,4544],Wa:[0,
|
||||
0,0,0,0,0,0,0],Oa:0,xc:[0,0,0,0,0,0,0,0],Wb:0,Xb:[0,0,0,0,0,0,0,0],f:[0,0,0,0,0,0,0,0],yc:[1,2,3,4,5,6,7,8],Yb:[0,0,0,0,0,0,0,0],na:[0,0,0,0,0,0,0,0],wb:[0,0,0,0,0,0,0,0],vc:[0,0,0,0,0,0,0,0],wc:[0,0,0,0,0,0,0,0],tc:[0,0,0,0,0,0,0,0],uc:[0,0,0,0,0,0,0,0],Aa:0,Ib:0}}x(H);
|
||||
var Za=[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,
|
||||
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];l=H.prototype;
|
||||
l.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;a=Za;for(var f in a){var e=a[f];c=b;d=+f;for(var g=e[0]?e[0].bind(this):null,h=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,m=+f;m<=d;m+=2){var q=m&8191;void 0!==c.ta[q]?r("I/O address already registered: "+n(m,8,!0)):c.ta[q]=[g,h,k,e,!1]}}f=this.bc.bind(this);b.A=this.reset.bind(this);b.cb=f;C(this)};l.oc=function(){return $a(this.a)};l.Cc=function(a){ab(this.a,a&-1809|$a(this.a)&1808);this.a.F|=128};l.qc=function(){return this.c.X};
|
||||
l.Ec=function(a){var b=this;128==(this.c.X&192)&&a&64&&I(this.a,8,4,52,function(){b.c.X|=128;return!!(b.c.X&64)});this.c.X=this.c.X&128|a&-129};
|
||||
function bb(a){var b=a.h,c,d,f,e=b.W>>13&7;"undefined"===typeof b.T[e]&&(b.T[e]={cache:[],postProcess:a.rc,drive:e,blocksize:256,mapped:0,maxblock:b.Ja[e]*b.G[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.ib=2496;b.S=0;b.w=128;b.W=0;break;case 1:if((b.W>>4&511)>=b.Ja[e]){b.S|=32832;b.w|=49152;break}if((b.W&15)>=b.G[e]){b.S|=32800;b.w|=49152;break}c=(b.W>>4&511)*b.G[e]+(b.W&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;cb(a,b.T[e],c,d,f);return;case 2:if((b.W>>4&511)>=b.Ja[e])b.S|=32832,
|
||||
b.w|=49152;else if((b.W&15)>=b.G[e])b.S|=32800,b.w|=49152;else{c=(b.W>>4&511)*b.G[e]+(b.W&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;a.tb(b.T[e],c,d,f);return}}b.ib=e<<13|b.ib&8176|b.W%9&15;I(a.a,20,5,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}l.rc=function(a,b,c,d,f){var e=this.h;e.hb=d&65535;e.w=e.w&-49|d>>12&48;e.jb=65536-f&65535;switch(a){case 1:e.S|=33024;e.w|=49152;break;case 2:e.S|=33792,e.w|=49152}I(this.a,20,5,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
|
||||
function db(a){var b=a.i,c,d,f,e=b.m>>8&3;b.m&=-2;"undefined"===typeof b.T[e]&&(b.T[e]={cache:[],postProcess:a.sc,drive:e,blocksize:128,mapped:1,maxblock:b.Ja[e]*b.G[e],url:"rl"+e+".dsk"});switch(b.m>>1&7){case 2:b.xa&8&&(b.m&=63);b.xa=b.cc[e]|b.Ba&64;break;case 3:1==(b.J&3)&&(b.Ba=b.J&4?b.Ba+(b.J&65408)&65408|b.J<<2&64:b.Ba-(b.J&65408)&65408|b.J<<2&64,b.J=b.Ba);break;case 4:b.xa=b.Ba;break;case 5:if(b.J>>6>=b.Ja[e]){b.m|=37888;break}if((b.J&63)>=b.G[e]){b.m|=37888;break}c=(b.J>>6)*b.G[e]+(b.J&63);
|
||||
d=(b.ua&63)<<16|b.ab;f=65536-b.xa&65535;cb(a,b.T[e],c,d,f);return;case 6:if(b.J>>6>=b.Ja[e])b.m|=37888;else if((b.J&63)>=b.G[e])b.m|=37888;else{c=(b.J>>6)*b.G[e]+(b.J&63);d=(b.ua&63)<<16|b.ab;f=65536-b.xa&65535;a.tb(b.T[e],c,d,f);return}}I(a.a,20,5,112,function(){b.m|=129;return!!(b.m&64)})}
|
||||
l.sc=function(a,b,c,d,f){var e=this.i;e.ab=d&65535;e.m=e.m&-49|d>>12&48;e.ua=d>>16&63;e.J=~~(c/e.G[b.ka])<<6|c%e.G[b.ka];e.Ba=e.J;e.xa=65536-f&65535;switch(a){case 1:e.m|=33792;break;case 2:e.m|=40960}I(this.a,20,5,112,function(){e.m|=129;return!!(e.m&64)})};function eb(a){a=a.l;a.D=2176;a.da=0;a.U=[4544,4544,4544,4544,4544,4544,4544,4544];a.Wa=[0,0,0,0,0,0,0,0];a.Oa=a.Xa=a.Va=a.Aa=a.Hb=0}
|
||||
function fb(a,b){var c=a.l,d,f,e;c.D&=-16513;c.da&=-2049;c.U[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.T[b]&&(c.T[b]={cache:[],postProcess:a.tc,drive:b,blocksize:256,mapped:0,maxblock:c.xb[0]*c.Ia[0]*c.G[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.vb[b]=c.na[b];c.D|=32896;c.U[b]|=32896;c.Oa|=1<<b;break;case 9:eb(a);break;case 19:c.U[b]|=64;break;case 49:if(c.na[b]>=c.xb[0]||c.ea[b]>>8>=c.Ia[0]||(c.ea[b]&255)>=c.G[0]){c.Wa[b]|=1024;c.D|=49152;break}d=(c.na[b]*c.Ia[0]+(c.ea[b]>>8))*c.G[0]+
|
||||
(c.ea[b]&255);f=(c.Aa&63)<<16|c.Va;e=65536-c.Xa&65535;cb(a,c.T[b],d,f,e);return;case 57:if(c.na[b]>=c.xb[0]||c.ea[b]>>8>=c.Ia[0]||(c.ea[b]&255)>=c.G[0])c.Wa[b]|=1024,c.D|=49152;else{d=(c.na[b]*c.Ia[0]+(c.ea[b]>>8))*c.G[0]+(c.ea[b]&255);f=(c.Aa&63)<<16|c.Va;e=65536-c.Xa&65535;a.tb(c.T[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.U[b]|=128;return!!(c.D&64)})}
|
||||
l.tc=function(a,b,c,d,f){var e=this.l;e.Xa=65536-f&65535;e.Va=d&65535;e.D=e.D&-769|d>>8&768;e.Aa=d>>16&63;f=~~(c/e.G[0]);d=~~(f/e.Ia[0]);e.ea[b.ka]=f%e.Ia[0]<<8|c%e.G[0];e.vb[b.ka]=e.na[b.ka]=d;e.Oa|=1<<b.ka;c>=b.mc-1&&(e.U[b.ka]|=1024);switch(a){case 1:e.da|=512;e.D|=49152;break;case 2:e.da|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.U[b.ka]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};l.kc=function(){this.g.m|=128;this.g.m&64&&I(this.a,0,6,64)};
|
||||
function gb(a,b,c,d,f,e){var g=~~((e+c.va-1)/c.va),h=new XMLHttpRequest;2048>g&&d+2048<c.mc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.va<<1)+"-"+(((d+g)*c.va<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,q,L,N;m=h.response;if(h.status&&206!=h.status||!m)c.sb(1,c,d,f,e);else{m=new Uint8Array(m);q=d;for(N=0;N<m.length;){if("undefined"===typeof c.cache[q])for(c.cache[q]=[],L=0;L<c.va;L++)c.cache[q][L]=N<m.length?
|
||||
m[N]&255|m[N+1]<<8&65280:0,N+=2;else N+=c.va<<1;q++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){if(c&1){if(!f)return K(a.a,4,122);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}l.tb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){gb(this,this.tb,a,b,c,d);return}for(f=0;f<a.va&&0<d;f++){if(0>M(this.a,a.lc?hb(this.a,c):c,a.cache[b][f])){a.sb(2,a,b,c,d);return}c+=2;--d}b++}a.sb(0,a,b,c,d)};
|
||||
function cb(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.va;e++)b.cache[c][e]=0;for(e=0;e<b.va&&0<f;e++){g=a.a.N(b.lc?hb(a.a,d):d);if(0>g){b.sb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.sb(0,b,c,d,f)}l.reset=function(){this.f.Ta=this.f.Ta&-120|20;this.c.ia=0;this.c.X=128;this.g.m=0;this.h.w=128;this.i.m=128;eb(this)};
|
||||
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ma&65280:(a&1&&(b<<=8),e.ma=b|255,d=0);break;case 4194298:if(0>b)d=e.ub;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.ub=d;e.la=2}break;case 4194294:if(70!==e.Ka)return K(e,4,222);0>b?d=e.s:d=e.s=0;break;case 4194292:if(70!==e.Ka)return K(e,4,224);d=1;break;case 4194290:if(70!==e.Ka)return K(e,4,226);d=0;break;case 4194288:if(70!==e.Ka)return K(e,4,228);d=61183;break;case 4194296:0<=
|
||||
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ka)return K(e,4,232);f=a-4194272>>1;0>b?d=e.Eb[f]:(d=J(this,e.Eb[f],a,b,c),0<=d&&(e.Eb[f]=d));break;case 4194254:return a&1?e.u>>14&1?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[3]=b),d=e.aa[3]):e.u>>14&0?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[1]=b),d=e.aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.u&2048?(0<=b&&(e.b[f]=b),d=e.b[f]):(0<=b&&(e.Na[f]=
|
||||
b),d=e.Na[f]),d;case 4194246:return a&1?(0<=b&&(e.b[7]=b),d=e.b[7]):e.u>>14&0?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[0]=b),d=e.aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.u&2048?(0<=b&&(e.Na[f]=b),d=e.Na[f]):(0<=b&&(e.b[f]=b),d=e.b[f]),d;default:return e.s|=16,K(e,4,124)}break;case 4194176:f=a>>1&31;d=J(this,e.P[3][f],a,b,c);0<=d&&(e.P[3][f]=d,e.P[3][f&15]&=65295);break;case 4194112:var g=this.c;f=this.g;switch(a&-2){case 4194174:d=J(this,e.Ya,a,b,c);0<=d&&(e.Ya=d);break;case 4194172:d=
|
||||
e.ga;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.I=e.I&62337|e.eb<<5|e.rb<<1;0>b?d=e.I:(d=J(this,e.I,a,b,c),0<=d&&(e.I=d&=62337,e.eb=d>>5&3,e.rb=d>>1&15,d&257?(f=2,e.sa&16&&(f=1),e.Ua=d&1?Ia|D:D):(e.Ua=0,f=4),this.f.Ta=this.f.Ta&-8|f));break;case 4194168:0>b?d=this.f.Ac&65535:(d=J(this,this.f.data,a,b,c),0<=d&&(this.f.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.X&=-129,I(e,100,4,52,function(){g.X|=128;return!!(g.X&64)}));d=0;break;case 4194164:break;case 4194162:d=0;0>b&&(g.ia&=-129,
|
||||
0<g.Gb.length&&(d=g.Gb.shift(),0<g.Gb.length&&setTimeout(function(){g.ia|=128;g.ia&64&&I(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ia:(d=J(this,g.ia,a,b,c),0<=d&&(g.ia=g.ia&128|d&-129));break;case 4194150:0>b?(d=f.m,f.m&=-129):(d=J(this,f.m,a,b,c),0<=d&&(d&64&&!f.Fb&&(setInterval(this.kc.bind(this),25),f.Fb=1),f.m=d&-129));break;default:return e.s|=16,K(e,4,126)}break;case 4194048:f=this.h;switch(a&-2){case 4194048:d=J(this,f.ib,a,b,c);0<=d&&(f.ib=d);break;case 4194050:d=J(this,f.S,a,b,c);0<=d&&
|
||||
(f.S=d);break;case 4194052:d=J(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&bb(this));break;case 4194054:d=J(this,f.jb,a,b,c);0<=d&&(f.jb=d);break;case 4194056:d=J(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194058:d=J(this,f.W,a,b,c);0<=d&&(f.W=d);break;case 4194060:break;case 4194062:d=J(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.s|=16,K(e,4,128)}break;case 4193728:var h=this.l;f=h.da&7;switch(a&-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.Aa=h.Aa&60|d>>8&3,h.D=
|
||||
d&17279|h.D&34944|2048,d&1&&h.D&128?fb(this,f):192==(d&192)&&I(e,0,5,172));break;case 4193730:d=J(this,h.Xa,a,b,c);0<=d&&(h.Xa=d);break;case 4193732:d=J(this,h.Va,a,b,c);0<=d&&(h.Va=d&65534);break;case 4193734:d=J(this,h.ea[f],a,b,c);0<=d&&(h.ea[f]=d&7967);break;case 4193736:d=J(this,h.da,a,b,c);0<=d&&(h.da=d&63|h.da&65472,d&128&&eb(this));break;case 4193738:d=h.U[f];break;case 4193740:d=h.Wa[f];break;case 4193742:d=J(this,h.Oa,a,b,c);0<=d&&(h.Oa=d&255);break;case 4193744:d=h.yc[f];break;case 4193746:d=
|
||||
J(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=J(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.zc[f];break;case 4193754:d=J(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=J(this,h.na[f],a,b,c);0<=d&&(h.na[f]=d&511);break;case 4193758:h.vb[f]=h.na[f];d=h.vb[f];break;case 4193760:d=h.wc[f];break;case 4193762:d=h.xc[f];break;case 4193764:d=h.uc[f];break;case 4193766:d=h.vc[f];break;case 4193768:d=J(this,h.Aa,a,b,c);0<=d&&(h.Aa=d&63,h.D=
|
||||
h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Hb,a,b,c);0<=d&&(h.Hb=d);break;default:return e.s|=16,K(e,4,132)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=J(this,f.m,a,b,c);0<=b&&0<=d&&(f.ua=f.ua&60|d>>4&3,f.m=f.m&-1023|d&1022,f.m&128||db(this));break;case 4192514:d=J(this,f.ab,a,b,c);0<=d&&(f.ab=d&65534);break;case 4192516:d=J(this,f.J,a,b,c);0<=d&&(f.J=d);break;case 4192518:d=J(this,f.xa,a,b,c);0<=d&&(f.xa=d);break;case 4192520:d=J(this,f.ua,a,b,c);0<=d&&(f.ua=d&63,f.m=f.m&-49|(f.ua&
|
||||
3)<<4);break;default:return e.s|=16,K(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.sa:(d=J(this,e.sa,a,b,c),0<=d&&(70!==e.Ka&&(d&=-49),e.sa=d,e.Ma[0]=d&4?15:7,e.Ma[1]=d&2?15:7,e.Ma[3]=d&1?15:7,e.Ua&&(f=2,e.sa&16&&(f=1),this.f.Ta=this.f.Ta&-8|f)));break;default:return e.s|=16,K(e,4,136)}break;case 4191424:f=a>>1&31;d=J(this,e.P[0][f],a,b,c);0<=d&&(e.P[0][f]=d,e.P[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.P[1][f],a,b,c);0<=d&&(e.P[1][f]=d,e.P[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==
|
||||
e.Ka)return K(e,4,234);f=a>>2&31;d=e.kb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=J(this,d,a,b,c),0<=d&&(e.kb[f]=a&2?d<<16|e.kb[f]&65535:e.kb[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=Ya[a>>1&255];else return e.s|=16,K(e,4,138);break;default:return e.s|=16,K(e,4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};
|
||||
var ib={},Za=(ib[65534]=[null,null,H.prototype.oc,H.prototype.Cc],ib[65396]=[null,null,H.prototype.qc,H.prototype.Ec],ib);u(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new H(d);A(d,c)}});var jb;if(Ha){var kb=new ArrayBuffer(2);(new DataView(kb)).setUint16(0,256,!0);jb=256===(new Uint16Array(kb))[0]}else jb=!1;var lb=jb;
|
||||
function G(a,b,c,d,f){this.id=mb+=2;this.a=null;this.Sa=a;this.wb=b;this.size=c||0;this.type=d||nb;this.h=d==ob;this.controller=null;Oa(this);this.wa=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,pb(this,f.Za);else if(Ha)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.c=new Uint8Array(this.f,0,c),this.o=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),pb(this,lb?qb:rb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;pb(this,sb)}else pb(this)}
|
||||
var nb=0,ob=2,Ua=4,Wa=["NONE","RAM","ROM","VID","H/W"],mb=0;
|
||||
G.prototype={constructor:G,parent:null,Fb:function(a){this.Sa=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.a;return a},restore:function(a){if(this.controller)return!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.a=a;return this.wa=!0}return!1},C:function(){return 255},v:function(){},A:function(a,b){return this.gb(a++,b++)|this.gb(a,b)<<
|
||||
8},B:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Z:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},Ea:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.wa=!0},Ra:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.wa=!0},O:function(a,b){return this.V(a,
|
||||
b)},ca:function(a,b){return this.oa(a,b)},Ca:function(a,b,c){this.h||this.ac(a,b,c)},Ga:function(a,b,c){this.h||this.Ha(a,b,c)},H:function(a){return this.c[a]},Y:function(a){return this.c[a]},ba:function(a){return this.g.getUint16(a,!0)},pa:function(a){return a&1?this.c[a]|this.c[a+1]<<8:this.o[a>>1]},ra:function(a,b){this.c[a]=b;this.wa=!0},Da:function(a,b){this.c[a]=b;this.wa=!0},Fa:function(a,b){this.g.setUint16(a,b,!0);this.wa=!0},Qa:function(a,b){a&1?(this.c[a]=b,this.c[a+1]=b>>8):this.o[a>>
|
||||
1]=b;this.wa=!0}};function Oa(a,b,c){a.K=b;a.i=a.l=0;c&&((a.i=c.i)&&tb(a,ub,!1),(a.l=c.l)&&vb(a,ub,!1))}function vb(a,b,c){c&&a.l||(a.lb=!a.h&&b[1]||a.v,a.Dc=!a.h&&b[3]||a.B);if(c||void 0===c)a.ac=b[1]||a.v,a.Ha=b[3]||a.B}function tb(a,b,c){c&&a.i||(a.gb=b[0]||a.C,a.pc=b[2]||a.A);if(c||void 0===c)a.V=b[0]||a.C,a.oa=b[2]||a.A}function pb(a,b){b||(b=wb);tb(a,b,void 0);vb(a,b,void 0)}
|
||||
var wb=[],sb=[G.prototype.Z,G.prototype.Ea,G.prototype.qa,G.prototype.Ra],ub=[G.prototype.O,G.prototype.Ca,G.prototype.ca,G.prototype.Ga];if(Ha)var rb=[G.prototype.H,G.prototype.ra,G.prototype.ba,G.prototype.Fa],qb=[G.prototype.Y,G.prototype.Da,G.prototype.pa,G.prototype.Qa];
|
||||
function xb(a,b){v.call(this,"CPU",a,xb);var c=a.multiplier||1;this.Ab=a.cycles||b;this.qa=c;this.zb=Math.round(this.Ab/1E4)/100;this.oa=this.zb*this.qa;this.j.ja=!1;this.j.Zb=!1;this.j.$a=a.autoStart;this.j.Pb=!1;this.j.pb=!1;this.mb=this.pa=0;this.nb=a.csStart;this.Da=a.csInterval;this.Ea=a.csStop;this.Qa=[];this.Sb=this.Ib.bind(this);C(this)}x(xb);var yb=["power","reset"];l=xb.prototype;
|
||||
l.La=function(a,b,c,d){this.B=a;this.A=b;this.K=d;for(b=0;b<yb.length;b++)(c=this.C[yb[b]])&&this.B.fa(null,yb[b],c);this.Ca=null;a=zb(a,"autoStart");null!=a&&(this.j.$a="true"==a?!0:"false"==a?!1:!!a);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.za=function(a,b){if(!b){if(a&&this.restore){Ab(this);if(!this.restore(a))return!1;Bb(this)}else this.reset();this.$("No debugger detected")}Cb(this);return!0};l.ya=function(a){return a?this.save():!0};
|
||||
l.$a=function(){return this.j.$a||void 0===this.C.run?(this.Ib(),!0):!1};l.Ub=function(){return 0};function Bb(a){void 0===a.nb&&(a.nb=0);void 0===a.Da&&(a.Da=-1);void 0===a.Ea&&(a.Ea=-1);a.j.pb=0<=a.nb&&0<a.Da;a.j.pb&&(a.mb=0,a.pa=a.nb-a.ca)}
|
||||
function Db(a,b,c,d){if(a.C[b]){void 0===c&&(a.j.error=!0,a.L("Value for "+b+" is invalid"),Eb(a));var f=a.K&&a.K.c||8;if(!a.j.ja||a.j.Pb)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.C[b].textContent!=d&&(a.C[b].textContent=d)}}
|
||||
l.fa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.C[b]=c;a=!0;break;case "run":this.C[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.j.M)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.M);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.qb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ja?Eb(d):d.Ib())};a=!0;
|
||||
break;case "speed":this.C[b]=c;a=!0;break;case "setSpeed":this.C[b]=c,c.onclick=function(){Fb(d,d.qa<<1)},c.textContent=this.oa.toFixed(2)+"Mhz",a=!0}return a};function Gb(a,b,c){a.ca+=b;c&&(a.ba=a.a=0)}function Hb(a,b){var c=1;b&&1<a.qa&&a.Y&&(c=a.Y/a.zb);a.Ob=Math.round(1E3/30);a.ob=Math.floor(a.Ab/30*c);b||(a.Fa=a.ob);a.Bb=0}function Ib(a){return a.ca+a.V+a.ba-a.a}function Ab(a){a.Y=0;a.Rb=0;a.ca=a.V=a.ba=a.a=0;Bb(a);Fb(a,1)}
|
||||
function Fb(a,b){if(void 0!==b&&(.8>a.Y/a.oa&&(b=1),a.qa=b,b=a.zb*a.qa,a.oa!=b)){a.oa=b;b=a.oa.toFixed(2)+"Mhz";var c=a.C.setSpeed;c&&(c.textContent=b);a.$("target speed: "+b)}Gb(a,a.V);a.V=0;a.O=ha();a.Z=0;Hb(a)}function Jb(a){a.ba-=a.a;a.a=0}
|
||||
l.Ib=function(){if(Fa(this,!0)){if(!this.j.ja){Fb(this);this.B&&this.B.start(this.O,Ib(this));this.j.ja=!0;this.j.Zb=!0;this.Ca&&this.Ca.start();var a=this.C.run;a&&(a.textContent="Halt");this.B&&this.B.Pa(!0)}this.Bb>=this.Ab&&Hb(this,!0);this.Ga=0;this.Ra=ha();this.Z&&(a=this.Ra-this.Z,a>this.Ob&&(this.O+=a,this.O>this.Ra&&(this.O=this.Ra)));try{do{for(var b,c=this.j.pb?1:this.ob,d=this.Qa.length-1;0<=d;d--){var f=this.Qa[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.ba-this.a,a=e,g=this.Qa.length-1;0<=g;g--){var h=this.Qa[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.V+=e;Gb(this,0,!0);a=e;if(this.j.pb){var k=!1;this.mb=this.mb+this.Ub()|0;this.pa-=a;0>=this.pa&&(this.pa+=this.Da,k=!0);0<=this.Ea&&this.Ea<=Ib(this)&&(this.Da=this.Ea=-1,Bb(this),Eb(this),k=!0);k&&this.$(Ib(this)+" cycles: checksum="+n(this.mb))}this.Fa-=e;if(0>=this.Fa){this.Fa+=this.ob;15<=++this.Rb&&(this.B&&this.B.Pa(),this.Rb=0);break}}while(this.j.ja)}catch(m){Eb(this);
|
||||
Cb(this);this.B&&this.B.stop(ha(),Ib(this));Fa(this,!1);b=m.stack||m.message;this.j.error=!0;this.L(b);return}b=setTimeout;c=this.Sb;this.Z=ha();d=this.Ob;this.Ga&&(d=Math.round(d*this.Ga/this.ob));d-=this.Z-this.Ra;if(f=this.Z-this.O)this.Y=Math.round(this.V/(10*f))/100,864E5<=f&&(this.ca=0,Fb(this));if(0>d||this.Y<this.oa)-1E3>d&&(this.O-=d),d=0;this.Bb+=this.Ga;this.Z+=d;b(c,d)}else Cb(this),this.B&&this.B.stop(ha(),Ib(this))};l.$b=function(){return 0};
|
||||
function Eb(a){a.j.bb&&(a.j.Cb=!0);Jb(a);Gb(a,a.V);a.V=0;if(a.j.ja){a.j.ja=!1;a.Ca&&a.Ca.stop();var b=a.C.run;b&&(b.textContent="Run")}a.j.complete=void 0}function Cb(a){a.B&&a.B.Pa(void 0)}
|
||||
function Kb(a){this.jc=a.resetAddr||0;xb.call(this,a,1E6);this.Jb=0;this.decode=Lb.bind(this);this.g=65536;this.f=32768;this.h=65535;this.c=32768;this.b=[0,0,0,0,0,0,0,this.jc];this.Na=[0,0,0,0,0,0];this.aa=[0,0,0,0];this.ma=255;this.rb=this.eb=this.Ua=this.v=this.sa=this.Ya=this.ga=this.I=this.s=this.ub=0;this.Ma=[7,7,7,7];this.P=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.kb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Eb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.i=-1;this.F=0;this.Ka=70;this.ra=-1;this.o=[];this.Ha=0;this.la=2;Mb(this);this.j.complete=this.j.dc=!1}x(Kb,xb);l=Kb.prototype;
|
||||
l.reset=function(){this.j.ja&&Eb(this);Nb(this);Ab(this);this.j.error=!1;this.parent.reset.call(this)};function Nb(a){a.ma=255;a.s=0;a.o=[];a.ub=0;a.I=a.ga=a.Ya=a.sa=a.Ua=0;a.Ma[0]=a.Ma[1]=a.Ma[3]=7;a.eb=0;Mb(a)}function Mb(a){a.Ua?(a.H=65536,a.l=a.hc,a.Tb=a.R):(a.H=0,a.l=a.gc,a.Tb=a.N)}l.Ub=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.Mb,this.ca,this.qa]);a.set(2,Xa(this.A));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.Mb=b[0];this.ca=b[1];Fb(this,b[3]);a:{b=this.A;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.B){for(var e=0,g=Array(b.B),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.c[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.fa=function(a,b,c){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.C[b]=c;this.Jb++;a=!0;break;default:a=this.parent.fa.call(this,a,b,c)}return a};
|
||||
l.Pa=function(a){if(this.Jb&&(a||!this.j.ja||this.j.Pb)){for(a=0;a<this.b.length;a++)Db(this,"R"+a,this.b[a]);a=$a(this);Db(this,"PS",a);Db(this,"NF",a&8?1:0,1);Db(this,"ZF",a&4?1:0,1);Db(this,"VF",a&2?1:0,1);Db(this,"CF",a&1?1:0,1)}if(a=this.C.speed)a.textContent=this.j.ja&&this.Y?this.Y.toFixed(2)+"Mhz":"Stopped"};
|
||||
function I(a,b,c,d,f){for(var e=a.o.length;0<e--;)if(a.o[e].Bc===d){0<e&&(a.o[e-1].ha+=a.o[e].ha);a.o.splice(e,1);break}if(0<=b){2===a.Ha&&(b=0,a.Ha=0,setTimeout(a.Sb,0));for(e=a.o.length;0<e--;){if(a.o[e].ha>b){a.o[e].ha-=b;break}b-=a.o[e].ha}a.o.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.la=2}function $a(a){return a.u=a.u&63728|(a.c&32768?8:0)|(a.h&65535?0:4)|(a.f&32768?2:0)|(a.g&65536?1:0)}
|
||||
function ab(a,b){a.c=b<<12;a.h=~b&4;a.f=b<<14;a.g=b<<16;if((b^a.u)&2048)for(var c=a.Na.length;0<=--c;){var d=a.b[c];a.b[c]=a.Na[c];a.Na[c]=d}a.v=b>>14&3;c=a.u>>14&3;a.v!=c&&(a.aa[c]=a.b[6],a.b[6]=a.aa[a.v]);a.la=2;a.u=b}function Ob(a,b){a.F&128||(a.c=a.h=a.g=b,a.f=0)}function P(a,b){a.F&128||(a.c=a.h=b,a.f=0)}function Pb(a,b,c,d){a.F&128||(a.c=a.h=a.g=b,a.f=(c^d)&(d^b))}
|
||||
function K(a,b,c){var d,f,e=0;0>a.ra?a.ra=$a(a):a.v||(b=4,e=1);a.I&57344||(a.ga=63222,a.Ya=b);a.v=0;0<=(d=a.R(b|65536))&&0<=(f=a.R(b+2&65535|65536))&&(ab(a,f&53247|a.ra>>2&12288),e&&(a.s|=4,a.b[6]=4),0<=Q(a,a.ra)&&0<=Q(a,a.b[7])&&(a.b[7]=d));a.F&=-113;a.ra=-1;throw b|c<<8;}function hb(a,b){var c=b>>13&31;31>c?a.sa&32&&(b=a.kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Qb(a,b,c){var d,f,e,g=0;if(c&a.Ua){d=b>>13&a.Ma[a.v];f=a.P[a.v][d];e=(a.P[a.v][d+16]<<6)+(b&8191)&4194303;a.sa&16?3932160<=e&&4186112>e&&(e=hb(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.s|=32,K(a,4,24)),e&1&&!(c&1)&&(a.s|=64,K(a,4,26)));switch(f&7){case 1:g=4096;case 2:f|=128;c&D&&(g=8192);break;case 4:g=4096;case 5:c&D&&(g=4096);case 6:f|=c&D?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&
|
||||
(g|=16384));a.P[a.v][d]=f;if(4194170!==e||a.v)a.eb=a.v,a.rb=d;g&&(g&57344&&(0<=a.ra&&(g|=128),a.I&57344||(a.I=a.I|g|a.eb<<5|a.rb<<1),K(a,168,28)),a.I&61440||!(4191360>e||4194239<e)||(a.I|=4096,a.I&512&&(a.F|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.s|=64,K(a,4,22));return e}l.N=function(a){if(4194304<=a)a=this.b[a-4194304];else if(0<=a){var b=this.A,c=a&b.h,d=(a&b.i)>>>b.f;a=c!=b.h?b.c[d].pc(c,a):b.c[d++].gb(c,a)|b.c[d&b.H].gb(0,a+1)<<8}return a};
|
||||
l.R=function(a){return this.N(Qb(this,a,Ia))};function M(a,b,c){c&=65535;if(4194304<=b)return a.b[b-4194304]=c;if(0<=b){a=a.A;var d=c,f=b&a.h,e=(b&a.i)>>>a.f;f!=a.h?a.c[e].Dc(f,d&65535,b):(a.c[e++].lb(f,d&255,b),a.c[e&a.H].lb(0,d>>8&255,b+1));return c}return b}function R(a,b){4194304<=b?b=a.b[b-4194304]&255:0<=b&&(a=a.A,b=a.c[(b&a.i)>>>a.f].gb(b&a.h,b));return b}function S(a,b,c){c&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|c:0<=b?(a=a.A,a.c[(b&a.i)>>>a.f].lb(b&a.h,c&255,b),c):b}
|
||||
function Rb(a){var b=a.R(a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function Q(a,b){var c,d;a.b[6]=d=a.b[6]-2&65535;a.I&57344||(a.ga=a.ga<<8|246);!a.v&&d<=a.ma&&4<d&&(d<=a.ma-32?(a.s|=4,a.b[6]=4,K(a,4,32)):(a.s|=8,a.F|=4));return 0<=(c=Qb(a,d|65536,D))?M(a,c,b):c}
|
||||
function T(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:K(a,4,34);break;case 1:return 6===e&&!a.v&&c&D&&(a.b[6]<=a.ma||65534<=a.b[6])&&(a.b[6]<=a.ma-32||65534<=a.b[6]?(a.s|=4,a.b[6]=4,K(a,4,36)):(a.s|=8,a.F|=64)),7===e?a.b[e]:a.b[e]|a.H;case 2:f=2;d=a.b[e];7!==e&&(d|=a.H,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.b[e];7!==e&&(d|=a.H);if(0>(d=a.R(d)))return d;d|=a.H;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.b[e]+f&65535;7!==e&&(d|=a.H);break;case 5:f=-2;d=a.b[e]-2&65535;7!==e&&(d|=a.H);if(0>(d=a.R(d)))return d;
|
||||
d|=a.H;break;case 6:if(0>(d=a.R(a.b[7])))return d;a.b[7]=a.b[7]+2&65535;d=d+a.b[e]&65535;return d|a.H;case 7:if(0>(d=a.R(a.b[7])))return d;a.b[7]=a.b[7]+2&65535;d=d+a.b[e]&65535;return 0>(d=a.R(d|65536))?d:d|a.H}a.b[e]=a.b[e]+f&65535;!a.H||a.I&57344||(a.ga=a.ga<<8|f<<3&248|e);6===e&&!a.v&&c&D&&0>=f&&(a.b[6]<=a.ma||65534<=a.b[6])&&(a.b[6]<=a.ma-32?(a.s|=4,a.b[6]=4,K(a,4,38)):(a.s|=8,a.F|=64));return d}l.gc=function(a,b){return T(this,a,b)};l.hc=function(a,b){return Qb(this,T(this,a,b),b)};
|
||||
function U(a,b){return b&56?a.Tb(T(a,b,Ia)):a.b[b&7]}function V(a,b){return b&56?R(a,a.l(b,Ja)):a.b[b&7]&255}function Sb(a,b,c,d){b&56?(b=a.l(b,E),M(a,b,d.call(a,c,a.N(b)))):(b&=7,a.b[b]=d.call(a,c,a.b[b])&65535)}function Tb(a,b,c,d){b&56?(b=a.l(b,F),S(a,b,d.call(a,c,R(a,b)))):(b&=7,a.b[b]=a.b[b]&65280|d.call(a,c,a.b[b])&255)}function Ub(a,b,c){b&56?M(a,a.l(b,D),c):a.b[b&7]=c&65535;return c}
|
||||
function Vb(a,b,c,d){b&56?S(a,a.l(b,Ka),c):(b&=7,a.b[b]=c?d&1?c<<24>>24&65535:a.b[b]&-256|c&255:a.b[b]&-256);return c}function W(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||
l.$b=function(a){this.j.complete=!0;this.j.dc=!1;this.j.Zb=!1;this.ba=this.a=a;this.Mb&256?(Jb(this),a=!1):a=!0;if(a){do{var b,c,d,f;this.F&112&&(this.F&32?K(this,168,52):this.F&64?K(this,4,54):this.F&16&&K(this,12,56),this.F&=-113);if(this.la)if(1===this.la)this.la=2;else{this.la=0;b=-1;c=this.ub&224;if(0<(a=this.o.length))for(;0<a--;){if(0<this.o[a].ha){this.o[a].ha--;this.la=2;break}if(this.o[a].Nb){if(!this.o[a].Nb()){this.o.splice(a,1);b--;continue}this.o[a].Nb=null}this.o[a].nc>c&&(c=this.o[a].nc,
|
||||
b=a)}c>(this.u&224)&&(0>b?K(this,160,42):(K(this,this.o[b].Bc,44),this.o.splice(b,1)))}this.I&57344||(this.ga=0,this.Ya=this.b[7]);this.F=this.u&16;this.i=a=this.R(this.b[7]);0<=a&&(this.b[7]=this.b[7]+2&65535);this.decode(a);if(0>this.i)switch(a&61440){case 4096:break;case 8192:break;case 12288:break;case 16384:break;case 20480:break;case 24576:break;case 36864:break;case 40960:break;case 45056:break;case 49152:break;case 53248:break;case 57344:break;default:switch(a&65024){case 2048:0<=(d=T(this,
|
||||
l.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;a=$a;for(var f in a){var e=a[f];c=b;d=+f;for(var g=e[0]?e[0].bind(this):null,h=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,m=+f;m<=d;m+=2){var q=m&8191;void 0!==c.ta[q]?r("I/O address already registered: "+n(m,8,!0)):c.ta[q]=[g,h,k,e,!1]}}f=this.bc.bind(this);b.A=this.reset.bind(this);b.cb=f;C(this)};l.oc=function(){return ab(this.a)};l.Bc=function(a){bb(this.a,a&-1809|ab(this.a)&1808);this.a.F|=128};l.pc=function(){return this.c.Y};
|
||||
l.Dc=function(a){var b=this;128==(this.c.Y&192)&&a&64&&I(this.a,8,4,52,function(){b.c.Y|=128;return!!(b.c.Y&64)});this.c.Y=this.c.Y&128|a&-129};
|
||||
function cb(a){var b=a.h,c,d,f,e=b.X>>13&7;"undefined"===typeof b.U[e]&&(b.U[e]={cache:[],postProcess:a.qc,drive:e,blocksize:256,mapped:0,maxblock:b.Ja[e]*b.G[e],url:"rk"+e+".dsk"});b.w&=-129;switch(b.w>>1&7){case 0:b.ib=2496;b.T=0;b.w=128;b.X=0;break;case 1:if((b.X>>4&511)>=b.Ja[e]){b.T|=32832;b.w|=49152;break}if((b.X&15)>=b.G[e]){b.T|=32800;b.w|=49152;break}c=(b.X>>4&511)*b.G[e]+(b.X&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;db(a,b.U[e],c,d,f);return;case 2:if((b.X>>4&511)>=b.Ja[e])b.T|=32832,
|
||||
b.w|=49152;else if((b.X&15)>=b.G[e])b.T|=32800,b.w|=49152;else{c=(b.X>>4&511)*b.G[e]+(b.X&15);d=(b.w&48)<<12|b.hb;f=65536-b.jb&65535;a.tb(b.U[e],c,d,f);return}}b.ib=e<<13|b.ib&8176|b.X%9&15;I(a.a,20,5,144,function(){b.w=b.w&65534|128;return!!(b.w&64)})}l.qc=function(a,b,c,d,f){var e=this.h;e.hb=d&65535;e.w=e.w&-49|d>>12&48;e.jb=65536-f&65535;switch(a){case 1:e.T|=33024;e.w|=49152;break;case 2:e.T|=33792,e.w|=49152}I(this.a,20,5,144,function(){e.w=e.w&65534|128;return!!(e.w&64)})};
|
||||
function eb(a){var b=a.i,c,d,f,e=b.m>>8&3;b.m&=-2;"undefined"===typeof b.U[e]&&(b.U[e]={cache:[],postProcess:a.rc,drive:e,blocksize:128,mapped:1,maxblock:b.Ja[e]*b.G[e],url:"rl"+e+".dsk"});switch(b.m>>1&7){case 2:b.xa&8&&(b.m&=63);b.xa=b.cc[e]|b.Ba&64;break;case 3:1==(b.J&3)&&(b.Ba=b.J&4?b.Ba+(b.J&65408)&65408|b.J<<2&64:b.Ba-(b.J&65408)&65408|b.J<<2&64,b.J=b.Ba);break;case 4:b.xa=b.Ba;break;case 5:if(b.J>>6>=b.Ja[e]){b.m|=37888;break}if((b.J&63)>=b.G[e]){b.m|=37888;break}c=(b.J>>6)*b.G[e]+(b.J&63);
|
||||
d=(b.ua&63)<<16|b.ab;f=65536-b.xa&65535;db(a,b.U[e],c,d,f);return;case 6:if(b.J>>6>=b.Ja[e])b.m|=37888;else if((b.J&63)>=b.G[e])b.m|=37888;else{c=(b.J>>6)*b.G[e]+(b.J&63);d=(b.ua&63)<<16|b.ab;f=65536-b.xa&65535;a.tb(b.U[e],c,d,f);return}}I(a.a,20,5,112,function(){b.m|=129;return!!(b.m&64)})}
|
||||
l.rc=function(a,b,c,d,f){var e=this.i;e.ab=d&65535;e.m=e.m&-49|d>>12&48;e.ua=d>>16&63;e.J=~~(c/e.G[b.ka])<<6|c%e.G[b.ka];e.Ba=e.J;e.xa=65536-f&65535;switch(a){case 1:e.m|=33792;break;case 2:e.m|=40960}I(this.a,20,5,112,function(){e.m|=129;return!!(e.m&64)})};function fb(a){a=a.l;a.D=2176;a.da=0;a.V=[4544,4544,4544,4544,4544,4544,4544,4544];a.Wa=[0,0,0,0,0,0,0,0];a.Oa=a.Xa=a.Va=a.Aa=a.Ib=0}
|
||||
function gb(a,b){var c=a.l,d,f,e;c.D&=-16513;c.da&=-2049;c.V[b]&=-1153;I(a.a,-1,0,172);"undefined"===typeof c.U[b]&&(c.U[b]={cache:[],postProcess:a.sc,drive:b,blocksize:256,mapped:0,maxblock:c.yb[0]*c.Ia[0]*c.G[0],url:"rp"+b+".dsk"});switch(c.D&63){case 5:c.wb[b]=c.na[b];c.D|=32896;c.V[b]|=32896;c.Oa|=1<<b;break;case 9:fb(a);break;case 19:c.V[b]|=64;break;case 49:if(c.na[b]>=c.yb[0]||c.ea[b]>>8>=c.Ia[0]||(c.ea[b]&255)>=c.G[0]){c.Wa[b]|=1024;c.D|=49152;break}d=(c.na[b]*c.Ia[0]+(c.ea[b]>>8))*c.G[0]+
|
||||
(c.ea[b]&255);f=(c.Aa&63)<<16|c.Va;e=65536-c.Xa&65535;db(a,c.U[b],d,f,e);return;case 57:if(c.na[b]>=c.yb[0]||c.ea[b]>>8>=c.Ia[0]||(c.ea[b]&255)>=c.G[0])c.Wa[b]|=1024,c.D|=49152;else{d=(c.na[b]*c.Ia[0]+(c.ea[b]>>8))*c.G[0]+(c.ea[b]&255);f=(c.Aa&63)<<16|c.Va;e=65536-c.Xa&65535;a.tb(c.U[b],d,f,e);return}}I(a.a,3,5,172,function(){c.D=c.D&65534|128;c.V[b]|=128;return!!(c.D&64)})}
|
||||
l.sc=function(a,b,c,d,f){var e=this.l;e.Xa=65536-f&65535;e.Va=d&65535;e.D=e.D&-769|d>>8&768;e.Aa=d>>16&63;f=~~(c/e.G[0]);d=~~(f/e.Ia[0]);e.ea[b.ka]=f%e.Ia[0]<<8|c%e.G[0];e.wb[b.ka]=e.na[b.ka]=d;e.Oa|=1<<b.ka;c>=b.mc-1&&(e.V[b.ka]|=1024);switch(a){case 1:e.da|=512;e.D|=49152;break;case 2:e.da|=2048,e.D|=49152}I(this.a,20,5,172,function(){e.V[b.ka]|=128;e.D=e.D&65534|128;return!!(e.D&64)})};l.kc=function(){this.g.m|=128;this.g.m&64&&I(this.a,0,6,64)};
|
||||
function hb(a,b,c,d,f,e){var g=~~((e+c.va-1)/c.va),h=new XMLHttpRequest;2048>g&&d+2048<c.mc&&(g=2048);h.open("GET",c.url,!0);h.setRequestHeader("Range","bytes="+(d*c.va<<1)+"-"+(((d+g)*c.va<<1)-1));h.responseType="arraybuffer";h.onreadystatechange=function(){if(4==h.readyState){var g=b.bind(a),m,q,L,N;m=h.response;if(h.status&&206!=h.status||!m)c.sb(1,c,d,f,e);else{m=new Uint8Array(m);q=d;for(N=0;N<m.length;){if("undefined"===typeof c.cache[q])for(c.cache[q]=[],L=0;L<c.va;L++)c.cache[q][L]=N<m.length?
|
||||
m[N]&255|m[N+1]<<8&65280:0,N+=2;else N+=c.va<<1;q++}g(c,d,f,e)}}};h.send(null)}function J(a,b,c,d,f){if(c&1){if(!f)return K(a.a,4,122);d=0<=d?d<<8&65280|b&255:b}else 0<=d?f&&(d=b&65280|d&255):d=b;return d}l.tb=function(a,b,c,d){for(var f;0<d;){if("undefined"===typeof a.cache[b]){hb(this,this.tb,a,b,c,d);return}for(f=0;f<a.va&&0<d;f++){if(0>M(this.a,a.lc?ib(this.a,c):c,a.cache[b][f])){a.sb(2,a,b,c,d);return}c+=2;--d}b++}a.sb(0,a,b,c,d)};
|
||||
function db(a,b,c,d,f){for(var e,g;0<f;){if("undefined"===typeof b.cache[c])for(b.cache[c]=[],e=0;e<b.va;e++)b.cache[c][e]=0;for(e=0;e<b.va&&0<f;e++){g=a.a.O(b.lc?ib(a.a,d):d);if(0>g){b.sb(2,b,c,d,f);return}b.cache[c][e]=g;d+=2;--f}c++}b.sb(0,b,c,d,f)}l.reset=function(){this.f.Ta=this.f.Ta&-120|20;this.c.ia=0;this.c.Y=128;this.g.m=0;this.h.w=128;this.i.m=128;fb(this)};
|
||||
l.bc=function(a,b,c){var d,f,e=this.a;switch(a&-64){case 4194240:switch(a&-2){case 4194300:0>b?d=e.ma&65280:(a&1&&(b<<=8),e.ma=b|255,d=0);break;case 4194298:if(0>b)d=e.vb;else{a&1&&(b<<=8);if(d=b&65024){f=d>>9;do d+=34;while(f>>=1)}e.vb=d;e.la=2}break;case 4194294:if(70!==e.Ka)return K(e,4,222);0>b?d=e.s:d=e.s=0;break;case 4194292:if(70!==e.Ka)return K(e,4,224);d=1;break;case 4194290:if(70!==e.Ka)return K(e,4,226);d=0;break;case 4194288:if(70!==e.Ka)return K(e,4,228);d=61183;break;case 4194296:0<=
|
||||
b&&!(a&1)&&(b&=255);case 4194286:case 4194284:case 4194282:case 4194280:case 4194278:case 4194276:case 4194274:case 4194272:if(70!==e.Ka)return K(e,4,232);f=a-4194272>>1;0>b?d=e.Fb[f]:(d=J(this,e.Fb[f],a,b,c),0<=d&&(e.Fb[f]=d));break;case 4194254:return a&1?e.u>>14&1?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[3]=b),d=e.aa[3]):e.u>>14&0?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[1]=b),d=e.aa[1]),d;case 4194252:case 4194250:case 4194248:return f=a&7,e.u&2048?(0<=b&&(e.b[f]=b),d=e.b[f]):(0<=b&&(e.Na[f]=
|
||||
b),d=e.Na[f]),d;case 4194246:return a&1?(0<=b&&(e.b[7]=b),d=e.b[7]):e.u>>14&0?(0<=b&&(e.b[6]=b),d=e.b[6]):(0<=b&&(e.aa[0]=b),d=e.aa[0]),d;case 4194244:case 4194242:case 4194240:return f=a&7,e.u&2048?(0<=b&&(e.Na[f]=b),d=e.Na[f]):(0<=b&&(e.b[f]=b),d=e.b[f]),d;default:return e.s|=16,K(e,4,124)}break;case 4194176:f=a>>1&31;d=J(this,e.R[3][f],a,b,c);0<=d&&(e.R[3][f]=d,e.R[3][f&15]&=65295);break;case 4194112:var g=this.c;f=this.g;switch(a&-2){case 4194174:d=J(this,e.Ya,a,b,c);0<=d&&(e.Ya=d);break;case 4194172:d=
|
||||
e.ga;d&65280&&(d=(d<<8|d>>8)&65535);break;case 4194170:e.I=e.I&62337|e.eb<<5|e.rb<<1;0>b?d=e.I:(d=J(this,e.I,a,b,c),0<=d&&(e.I=d&=62337,e.eb=d>>5&3,e.rb=d>>1&15,d&257?(f=2,e.sa&16&&(f=1),e.Ua=d&1?Ja|D:D):(e.Ua=0,f=4),this.f.Ta=this.f.Ta&-8|f));break;case 4194168:0>b?d=this.f.zc&65535:(d=J(this,this.f.data,a,b,c),0<=d&&(this.f.data=d));break;case 4194166:0<=b&&(b&127&&(g.ec=0),g.Y&=-129,I(e,100,4,52,function(){g.Y|=128;return!!(g.Y&64)}));d=0;break;case 4194164:break;case 4194162:d=0;0>b&&(g.ia&=-129,
|
||||
0<g.Hb.length&&(d=g.Hb.shift(),0<g.Hb.length&&setTimeout(function(){g.ia|=128;g.ia&64&&I(e,40,4,48)},50)));break;case 4194160:0>b?d=g.ia:(d=J(this,g.ia,a,b,c),0<=d&&(g.ia=g.ia&128|d&-129));break;case 4194150:0>b?(d=f.m,f.m&=-129):(d=J(this,f.m,a,b,c),0<=d&&(d&64&&!f.Gb&&(setInterval(this.kc.bind(this),25),f.Gb=1),f.m=d&-129));break;default:return e.s|=16,K(e,4,126)}break;case 4194048:f=this.h;switch(a&-2){case 4194048:d=J(this,f.ib,a,b,c);0<=d&&(f.ib=d);break;case 4194050:d=J(this,f.T,a,b,c);0<=d&&
|
||||
(f.T=d);break;case 4194052:d=J(this,f.w,a,b,c);0<=b&&0<=d&&(f.w=d&-36993|f.w&36992,f.w&1&&cb(this));break;case 4194054:d=J(this,f.jb,a,b,c);0<=d&&(f.jb=d);break;case 4194056:d=J(this,f.hb,a,b,c);0<=d&&(f.hb=d);break;case 4194058:d=J(this,f.X,a,b,c);0<=d&&(f.X=d);break;case 4194060:break;case 4194062:d=J(this,f.Vb,a,b,c);0<=d&&(f.Vb=d);break;default:return e.s|=16,K(e,4,128)}break;case 4193728:var h=this.l;f=h.da&7;switch(a&-2){case 4193728:d=J(this,h.D,a,b,c);0<=b&&0<=d&&(h.Aa=h.Aa&60|d>>8&3,h.D=
|
||||
d&17279|h.D&34944|2048,d&1&&h.D&128?gb(this,f):192==(d&192)&&I(e,0,5,172));break;case 4193730:d=J(this,h.Xa,a,b,c);0<=d&&(h.Xa=d);break;case 4193732:d=J(this,h.Va,a,b,c);0<=d&&(h.Va=d&65534);break;case 4193734:d=J(this,h.ea[f],a,b,c);0<=d&&(h.ea[f]=d&7967);break;case 4193736:d=J(this,h.da,a,b,c);0<=d&&(h.da=d&63|h.da&65472,d&128&&fb(this));break;case 4193738:d=h.V[f];break;case 4193740:d=h.Wa[f];break;case 4193742:d=J(this,h.Oa,a,b,c);0<=d&&(h.Oa=d&255);break;case 4193744:d=h.xc[f];break;case 4193746:d=
|
||||
J(this,h.Wb,a,b,c);0<=d&&(h.Wb=d);break;case 4193748:d=J(this,h.Xb[f],a,b,c);0<=d&&(h.Xb[f]=d&1023);break;case 4193750:d=8210;break;case 4193752:d=h.yc[f];break;case 4193754:d=J(this,h.Yb[f],a,b,c);0<=d&&(h.Yb[f]=d);break;case 4193756:d=J(this,h.na[f],a,b,c);0<=d&&(h.na[f]=d&511);break;case 4193758:h.wb[f]=h.na[f];d=h.wb[f];break;case 4193760:d=h.vc[f];break;case 4193762:d=h.wc[f];break;case 4193764:d=h.tc[f];break;case 4193766:d=h.uc[f];break;case 4193768:d=J(this,h.Aa,a,b,c);0<=d&&(h.Aa=d&63,h.D=
|
||||
h.D&-769|(d&3)<<8);break;case 4193770:d=J(this,h.Ib,a,b,c);0<=d&&(h.Ib=d);break;default:return e.s|=16,K(e,4,132)}break;case 4192512:f=this.i;switch(a&-2){case 4192512:d=J(this,f.m,a,b,c);0<=b&&0<=d&&(f.ua=f.ua&60|d>>4&3,f.m=f.m&-1023|d&1022,f.m&128||eb(this));break;case 4192514:d=J(this,f.ab,a,b,c);0<=d&&(f.ab=d&65534);break;case 4192516:d=J(this,f.J,a,b,c);0<=d&&(f.J=d);break;case 4192518:d=J(this,f.xa,a,b,c);0<=d&&(f.xa=d);break;case 4192520:d=J(this,f.ua,a,b,c);0<=d&&(f.ua=d&63,f.m=f.m&-49|(f.ua&
|
||||
3)<<4);break;default:return e.s|=16,K(e,4,134)}break;case 4191552:switch(a&-2){case 4191566:0>b?d=e.sa:(d=J(this,e.sa,a,b,c),0<=d&&(70!==e.Ka&&(d&=-49),e.sa=d,e.Ma[0]=d&4?15:7,e.Ma[1]=d&2?15:7,e.Ma[3]=d&1?15:7,e.Ua&&(f=2,e.sa&16&&(f=1),this.f.Ta=this.f.Ta&-8|f)));break;default:return e.s|=16,K(e,4,136)}break;case 4191424:f=a>>1&31;d=J(this,e.R[0][f],a,b,c);0<=d&&(e.R[0][f]=d,e.R[0][f&15]&=65295);break;case 4191360:f=a>>1&31;d=J(this,e.R[1][f],a,b,c);0<=d&&(e.R[1][f]=d,e.R[1][f&15]&=65295);break;case 4190400:case 4190336:if(70!==
|
||||
e.Ka)return K(e,4,234);f=a>>2&31;d=e.kb[f];a&2&&(d>>=16);d&=65535;0<=b&&(d=J(this,d,a,b,c),0<=d&&(e.kb[f]=a&2?d<<16|e.kb[f]&65535:e.kb[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=Za[a>>1&255];else return e.s|=16,K(e,4,138);break;default:return e.s|=16,K(e,4,142)}c&&0<=d&&(a&1?d>>=8:d&=255);"undefined"===typeof d&&console.log("panic(76)");return d};
|
||||
var jb={},$a=(jb[65534]=[null,null,H.prototype.oc,H.prototype.Bc],jb[65396]=[null,null,H.prototype.pc,H.prototype.Dc],jb);u(function(){for(var a=B(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new H(d);A(d,c)}});var kb;if(Ia){var lb=new ArrayBuffer(2);(new DataView(lb)).setUint16(0,256,!0);kb=256===(new Uint16Array(lb))[0]}else kb=!1;var mb=kb;
|
||||
function G(a,b,c,d,f){this.id=nb+=2;this.a=null;this.Sa=a;this.xb=b;this.size=c||0;this.type=d||ob;this.h=d==pb;this.controller=null;Pa(this);this.wa=this.fc=!1;if(c)if(f)this.controller=f,this.a=null,qb(this,f.Za);else if(Ia)this.f=new ArrayBuffer(c),this.g=new DataView(this.f,0,c),this.c=new Uint8Array(this.f,0,c),this.o=new Uint16Array(this.f,0,c>>1),this.a=new Int32Array(this.f,0,c>>2),qb(this,mb?rb:sb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;qb(this,tb)}else qb(this)}
|
||||
var ob=0,pb=2,Va=4,Xa=["NONE","RAM","ROM","VID","H/W"],nb=0;
|
||||
G.prototype={constructor:G,parent:null,Gb:function(a){this.Sa=a},save:function(){var a,b;if(this.controller)a=null;else if(Ia)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.g.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Ia)for(b=0;b<a.length;b++)this.g.setInt32(b<<2,a[b],!0);else this.a=a;return this.wa=!0}return!1},C:function(){return 255},v:function(){},A:function(a,b){return this.gb(a++,b++)|this.gb(a,b)<<
|
||||
8},B:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},$:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},qa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},Ea:function(a,b){var c=a>>2;a=(a&3)<<3;this.a[c]=this.a[c]&~(255<<a)|b<<a;this.wa=!0},Ra:function(a,b){var c=a>>2;a=(a&3)<<3;24>a?this.a[c]=this.a[c]&~(65535<<a)|b<<a:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.wa=!0},P:function(a,b){return this.W(a,
|
||||
b)},ca:function(a,b){return this.oa(a,b)},Ca:function(a,b,c){this.h||this.ac(a,b,c)},Ga:function(a,b,c){this.h||this.Ha(a,b,c)},H:function(a){return this.c[a]},Z:function(a){return this.c[a]},ba:function(a){return this.g.getUint16(a,!0)},pa:function(a){return a&1?this.c[a]|this.c[a+1]<<8:this.o[a>>1]},ra:function(a,b){this.c[a]=b;this.wa=!0},Da:function(a,b){this.c[a]=b;this.wa=!0},Fa:function(a,b){this.g.setUint16(a,b,!0);this.wa=!0},Qa:function(a,b){a&1?(this.c[a]=b,this.c[a+1]=b>>8):this.o[a>>
|
||||
1]=b;this.wa=!0}};function Pa(a,b,c){a.K=b;a.i=a.l=0;c&&((a.i=c.i)&&ub(a,vb,!1),(a.l=c.l)&&wb(a,vb,!1))}function wb(a,b,c){c&&a.l||(a.lb=!a.h&&b[1]||a.v,a.Cc=!a.h&&b[3]||a.B);if(c||void 0===c)a.ac=b[1]||a.v,a.Ha=b[3]||a.B}function ub(a,b,c){c&&a.i||(a.gb=b[0]||a.C,a.ub=b[2]||a.A);if(c||void 0===c)a.W=b[0]||a.C,a.oa=b[2]||a.A}function qb(a,b){b||(b=xb);ub(a,b,void 0);wb(a,b,void 0)}
|
||||
var xb=[],tb=[G.prototype.$,G.prototype.Ea,G.prototype.qa,G.prototype.Ra],vb=[G.prototype.P,G.prototype.Ca,G.prototype.ca,G.prototype.Ga];if(Ia)var sb=[G.prototype.H,G.prototype.ra,G.prototype.ba,G.prototype.Fa],rb=[G.prototype.Z,G.prototype.Da,G.prototype.pa,G.prototype.Qa];
|
||||
function yb(a,b){v.call(this,"CPU",a,yb);var c=a.multiplier||1;this.Bb=a.cycles||b;this.qa=c;this.Ab=Math.round(this.Bb/1E4)/100;this.oa=this.Ab*this.qa;this.j.ja=!1;this.j.Zb=!1;this.j.$a=a.autoStart;this.j.Qb=!1;this.j.pb=!1;this.mb=this.pa=0;this.nb=a.csStart;this.Da=a.csInterval;this.Ea=a.csStop;this.Qa=[];this.Tb=this.Jb.bind(this);C(this)}x(yb);var zb=["power","reset"];l=yb.prototype;
|
||||
l.La=function(a,b,c,d){this.B=a;this.A=b;this.K=d;for(b=0;b<zb.length;b++)(c=this.C[zb[b]])&&this.B.fa(null,zb[b],c);this.Ca=null;a=Ab(a,"autoStart");null!=a&&(this.j.$a="true"==a?!0:"false"==a?!1:!!a);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.za=function(a,b){if(!b){if(a&&this.restore){Bb(this);if(!this.restore(a))return!1;Cb(this)}else this.reset();this.N("No debugger detected")}Db(this);return!0};l.ya=function(a){return a?this.save():!0};
|
||||
l.$a=function(){return this.j.$a||void 0===this.C.run?(this.Jb(),!0):!1};l.Ub=function(){return 0};function Cb(a){void 0===a.nb&&(a.nb=0);void 0===a.Da&&(a.Da=-1);void 0===a.Ea&&(a.Ea=-1);a.j.pb=0<=a.nb&&0<a.Da;a.j.pb&&(a.mb=0,a.pa=a.nb-a.ca)}function Eb(a,b,c,d){if(a.C[b]){void 0===c&&(a.j.error=!0,a.L("Value for "+b+" is invalid"),Fb(a));var f=a.K&&a.K.c||8;c=!a.j.ja||a.j.Qb?8==f?ba(c,d):n(c,d):"--------".substr(0,d||4);a.C[b].textContent!=c&&(a.C[b].textContent=c)}}
|
||||
l.fa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.C[b]=c;a=!0;break;case "run":this.C[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.j.M)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.M);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.qb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.ja?Fb(d):d.Jb())};a=!0;
|
||||
break;case "speed":this.C[b]=c;a=!0;break;case "setSpeed":this.C[b]=c,c.onclick=function(){Gb(d,d.qa<<1)},c.textContent=this.oa.toFixed(2)+"Mhz",a=!0}return a};function Hb(a,b,c){a.ca+=b;c&&(a.ba=a.a=0)}function Ib(a,b){var c=1;b&&1<a.qa&&a.Z&&(c=a.Z/a.Ab);a.Pb=Math.round(1E3/30);a.ob=Math.floor(a.Bb/30*c);b||(a.Fa=a.ob);a.Cb=0}function Jb(a){return a.ca+a.W+a.ba-a.a}function Bb(a){a.Z=0;a.Sb=0;a.ca=a.W=a.ba=a.a=0;Cb(a);Gb(a,1)}
|
||||
function Gb(a,b){if(void 0!==b&&(.8>a.Z/a.oa&&(b=1),a.qa=b,b=a.Ab*a.qa,a.oa!=b)){a.oa=b;b=a.oa.toFixed(2)+"Mhz";var c=a.C.setSpeed;c&&(c.textContent=b);a.N("target speed: "+b)}Hb(a,a.W);a.W=0;a.P=ia();a.$=0;Ib(a)}function Kb(a){a.ba-=a.a;a.a=0}
|
||||
l.Jb=function(){if(Ga(this,!0)){if(!this.j.ja){Gb(this);this.B&&this.B.start(this.P,Jb(this));this.j.ja=!0;this.j.Zb=!0;this.Ca&&this.Ca.start();var a=this.C.run;a&&(a.textContent="Halt");this.B&&this.B.Pa(!0)}this.Cb>=this.Bb&&Ib(this,!0);this.Ga=0;this.Ra=ia();this.$&&(a=this.Ra-this.$,a>this.Pb&&(this.P+=a,this.P>this.Ra&&(this.P=this.Ra)));try{do{for(var b,c=this.j.pb?1:this.ob,d=this.Qa.length-1;0<=d;d--){var f=this.Qa[d];0>f[0]||c>f[0]&&(c=f[0])}b=c;try{this.$b(b)}catch(m){if("number"!=typeof m)throw m;
|
||||
}for(var e=this.ba-this.a,a=e,g=this.Qa.length-1;0<=g;g--){var h=this.Qa[g];0>h[0]||(h[0]-=a,0>=h[0]&&(h[0]=-1,h[1]()))}this.Ga+=e;this.W+=e;Hb(this,0,!0);a=e;if(this.j.pb){var k=!1;this.mb=this.mb+this.Ub()|0;this.pa-=a;0>=this.pa&&(this.pa+=this.Da,k=!0);0<=this.Ea&&this.Ea<=Jb(this)&&(this.Da=this.Ea=-1,Cb(this),Fb(this),k=!0);k&&this.N(Jb(this)+" cycles: checksum="+n(this.mb))}this.Fa-=e;if(0>=this.Fa){this.Fa+=this.ob;15<=++this.Sb&&(this.B&&this.B.Pa(),this.Sb=0);break}}while(this.j.ja)}catch(m){Fb(this);
|
||||
Db(this);this.B&&this.B.stop(ia(),Jb(this));Ga(this,!1);b=m.stack||m.message;this.j.error=!0;this.L(b);return}b=setTimeout;c=this.Tb;this.$=ia();d=this.Pb;this.Ga&&(d=Math.round(d*this.Ga/this.ob));d-=this.$-this.Ra;if(f=this.$-this.P)this.Z=Math.round(this.W/(10*f))/100,864E5<=f&&(this.ca=0,Gb(this));if(0>d||this.Z<this.oa)-1E3>d&&(this.P-=d),d=0;this.Cb+=this.Ga;this.$+=d;b(c,d)}else Db(this),this.B&&this.B.stop(ia(),Jb(this))};l.$b=function(){return 0};
|
||||
function Fb(a){a.j.bb&&(a.j.Db=!0);Kb(a);Hb(a,a.W);a.W=0;if(a.j.ja){a.j.ja=!1;a.Ca&&a.Ca.stop();var b=a.C.run;b&&(b.textContent="Run")}a.j.complete=void 0}function Db(a){a.B&&a.B.Pa(void 0)}
|
||||
function Lb(a){this.jc=a.resetAddr||0;yb.call(this,a,1E6);this.Kb=0;this.decode=Mb.bind(this);this.g=65536;this.f=32768;this.h=65535;this.c=32768;this.b=[0,0,0,0,0,0,0,this.jc];this.Na=[0,0,0,0,0,0];this.aa=[0,0,0,0];this.ma=255;this.rb=this.eb=this.Ua=this.v=this.sa=this.Ya=this.ga=this.I=this.s=this.vb=0;this.Ma=[7,7,7,7];this.R=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,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.kb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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.Fb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.i=-1;this.F=0;this.Ka=70;this.ra=-1;this.o=[];this.Ha=0;this.la=2;Nb(this);this.j.complete=this.j.dc=!1}x(Lb,yb);l=Lb.prototype;
|
||||
l.reset=function(){this.j.ja&&Fb(this);Ob(this);Bb(this);this.j.error=!1;this.parent.reset.call(this)};function Ob(a){a.ma=255;a.s=0;a.o=[];a.vb=0;a.I=a.ga=a.Ya=a.sa=a.Ua=0;a.Ma[0]=a.Ma[1]=a.Ma[3]=7;a.eb=0;Nb(a)}function Nb(a){a.Ua?(a.H=65536,a.l=a.ic,a.ub=a.S):(a.H=0,a.l=a.hc,a.ub=a.O)}l.Ub=function(){return 0};l.save=function(){var a=new O(this);a.set(0,[]);a.set(1,[this.Nb,this.ca,this.qa]);a.set(2,Ya(this.A));return a.data()};
|
||||
l.restore=function(a){var b=a[1];this.Nb=b[0];this.ca=b[1];Gb(this,b[3]);a:{b=this.A;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.B){for(var e=0,g=Array(b.B),h=0;h<f.length-1;)for(var k=f[h++],m=f[h++];k--;)g[e++]=m;f=g}e=b.c[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
l.fa=function(a,b,c){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.C[b]=c;this.Kb++;a=!0;break;default:a=this.parent.fa.call(this,a,b,c)}return a};
|
||||
l.Pa=function(a){if(this.Kb&&(a||!this.j.ja||this.j.Qb)){for(a=0;a<this.b.length;a++)Eb(this,"R"+a,this.b[a]);a=ab(this);Eb(this,"PS",a);Eb(this,"NF",a&8?1:0,1);Eb(this,"ZF",a&4?1:0,1);Eb(this,"VF",a&2?1:0,1);Eb(this,"CF",a&1?1:0,1)}if(a=this.C.speed)a.textContent=this.j.ja&&this.Z?this.Z.toFixed(2)+"Mhz":"Stopped"};
|
||||
function I(a,b,c,d,f){for(var e=a.o.length;0<e--;)if(a.o[e].Ac===d){0<e&&(a.o[e-1].ha+=a.o[e].ha);a.o.splice(e,1);break}if(0<=b){2===a.Ha&&(b=0,a.Ha=0,setTimeout(a.Tb,0));for(e=a.o.length;0<e--;){if(a.o[e].ha>b){a.o[e].ha-=b;break}b-=a.o[e].ha}a.o.splice(e+1,0,{delay:b,priority:c<<5&224,vector:d,callback:f})}a.la=2}function ab(a){return a.u=a.u&63728|(a.c&32768?8:0)|(a.h&65535?0:4)|(a.f&32768?2:0)|(a.g&65536?1:0)}
|
||||
function bb(a,b){a.c=b<<12;a.h=~b&4;a.f=b<<14;a.g=b<<16;if((b^a.u)&2048)for(var c=a.Na.length;0<=--c;){var d=a.b[c];a.b[c]=a.Na[c];a.Na[c]=d}a.v=b>>14&3;c=a.u>>14&3;a.v!=c&&(a.aa[c]=a.b[6],a.b[6]=a.aa[a.v]);a.la=2;a.u=b}function Pb(a,b){a.F&128||(a.c=a.h=a.g=b,a.f=0)}function P(a,b){a.F&128||(a.c=a.h=b,a.f=0)}function Qb(a,b,c,d){a.F&128||(a.c=a.h=a.g=b,a.f=(c^d)&(d^b))}
|
||||
function K(a,b,c){var d,f,e=0;0>a.ra?a.ra=ab(a):a.v||(b=4,e=1);a.I&57344||(a.ga=63222,a.Ya=b);a.v=0;0<=(d=a.S(b|65536))&&0<=(f=a.S(b+2&65535|65536))&&(bb(a,f&53247|a.ra>>2&12288),e&&(a.s|=4,a.b[6]=4),0<=Q(a,a.ra)&&0<=Q(a,a.b[7])&&(a.b[7]=d));a.F&=-113;a.ra=-1;throw b|c<<8;}function ib(a,b){var c=b>>13&31;31>c?a.sa&32&&(b=a.kb[c]+(b&8190)&4194302,3932160<=b&&4186112>b&&console.log("panic(898)")):b|=4186112;return b}
|
||||
function Rb(a,b,c){var d,f,e,g=0;if(c&a.Ua){d=b>>13&a.Ma[a.v];f=a.R[a.v][d];e=(a.R[a.v][d+16]<<6)+(b&8191)&4194303;a.sa&16?3932160<=e&&4186112>e&&(e=ib(a,e&262143)):(e&=262143,253952<=e&&(e|=4186112));3932160>e&&(3915776<=e&&(a.s|=32,K(a,4,24)),e&1&&!(c&1)&&(a.s|=64,K(a,4,26)));switch(f&7){case 1:g=4096;case 2:f|=128;c&D&&(g=8192);break;case 4:g=4096;case 5:c&D&&(g=4096);case 6:f|=c&D?192:128;break;default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&
|
||||
(g|=16384));a.R[a.v][d]=f;if(4194170!==e||a.v)a.eb=a.v,a.rb=d;g&&(g&57344&&(0<=a.ra&&(g|=128),a.I&57344||(a.I=a.I|g|a.eb<<5|a.rb<<1),K(a,168,28)),a.I&61440||!(4191360>e||4194239<e)||(a.I|=4096,a.I&512&&(a.F|=32)))}else e=b&65535,57344<=e?e|=4186112:e&1&&!(c&1)&&(a.s|=64,K(a,4,22));return e}l.O=function(a){if(4194304<=a)a=this.b[a-4194304];else if(0<=a){var b=this.A,c=a&b.h,d=(a&b.i)>>>b.f;a=c!=b.h?b.c[d].ub(c,a):b.c[d++].gb(c,a)|b.c[d&b.H].gb(0,a+1)<<8}return a};
|
||||
l.S=function(a){return this.O(Rb(this,a,Ja))};function M(a,b,c){c&=65535;if(4194304<=b)return a.b[b-4194304]=c;if(0<=b){a=a.A;var d=c,f=b&a.h,e=(b&a.i)>>>a.f;f!=a.h?a.c[e].Cc(f,d&65535,b):(a.c[e++].lb(f,d&255,b),a.c[e&a.H].lb(0,d>>8&255,b+1));return c}return b}function R(a,b){4194304<=b?b=a.b[b-4194304]&255:0<=b&&(a=a.A,b=a.c[(b&a.i)>>>a.f].gb(b&a.h,b));return b}function S(a,b,c){c&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|c:0<=b?(a=a.A,a.c[(b&a.i)>>>a.f].lb(b&a.h,c&255,b),c):b}
|
||||
function Sb(a){var b=a.S(a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}function Q(a,b){var c,d;a.b[6]=d=a.b[6]-2&65535;a.I&57344||(a.ga=a.ga<<8|246);!a.v&&d<=a.ma&&4<d&&(d<=a.ma-32?(a.s|=4,a.b[6]=4,K(a,4,32)):(a.s|=8,a.F|=4));return 0<=(c=Rb(a,d|65536,D))?M(a,c,b):c}
|
||||
function T(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:K(a,4,34);break;case 1:return 6===e&&!a.v&&c&D&&(a.b[6]<=a.ma||65534<=a.b[6])&&(a.b[6]<=a.ma-32||65534<=a.b[6]?(a.s|=4,a.b[6]=4,K(a,4,36)):(a.s|=8,a.F|=64)),7===e?a.b[e]:a.b[e]|a.H;case 2:f=2;d=a.b[e];7!==e&&(d|=a.H,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.b[e];7!==e&&(d|=a.H);if(0>(d=a.S(d)))return d;d|=a.H;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.b[e]+f&65535;7!==e&&(d|=a.H);break;case 5:f=-2;d=a.b[e]-2&65535;7!==e&&(d|=a.H);if(0>(d=a.S(d)))return d;
|
||||
d|=a.H;break;case 6:if(0>(d=a.S(a.b[7])))return d;a.b[7]=a.b[7]+2&65535;d=d+a.b[e]&65535;return d|a.H;case 7:if(0>(d=a.S(a.b[7])))return d;a.b[7]=a.b[7]+2&65535;d=d+a.b[e]&65535;return 0>(d=a.S(d|65536))?d:d|a.H}a.b[e]=a.b[e]+f&65535;!a.H||a.I&57344||(a.ga=a.ga<<8|f<<3&248|e);6===e&&!a.v&&c&D&&0>=f&&(a.b[6]<=a.ma||65534<=a.b[6])&&(a.b[6]<=a.ma-32?(a.s|=4,a.b[6]=4,K(a,4,38)):(a.s|=8,a.F|=64));return d}l.hc=function(a,b){return T(this,a,b)};l.ic=function(a,b){return Rb(this,T(this,a,b),b)};
|
||||
function U(a,b){return b&56?a.ub(T(a,b,Ja)):a.b[b&7]}function V(a,b){return b&56?R(a,a.l(b,Ka)):a.b[b&7]&255}function Tb(a,b,c,d){b&56?(b=a.l(b,E),M(a,b,d.call(a,c,a.O(b)))):(b&=7,a.b[b]=d.call(a,c,a.b[b])&65535)}function Ub(a,b,c,d){b&56?(b=a.l(b,F),S(a,b,d.call(a,c,R(a,b)))):(b&=7,a.b[b]=a.b[b]&65280|d.call(a,c,a.b[b])&255)}function Vb(a,b,c){b&56?M(a,a.l(b,D),c):a.b[b&7]=c&65535;return c}
|
||||
function Wb(a,b,c,d){b&56?S(a,a.l(b,La),c):(b&=7,a.b[b]=c?d&1?c<<24>>24&65535:a.b[b]&-256|c&255:a.b[b]&-256);return c}function W(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
|
||||
l.$b=function(a){this.j.complete=!0;this.j.dc=!1;this.j.Zb=!1;this.ba=this.a=a;this.Nb&256?(Kb(this),a=!1):a=!0;if(a){do{var b,c,d,f;this.F&112&&(this.F&32?K(this,168,52):this.F&64?K(this,4,54):this.F&16&&K(this,12,56),this.F&=-113);if(this.la)if(1===this.la)this.la=2;else{this.la=0;b=-1;c=this.vb&224;if(0<(a=this.o.length))for(;0<a--;){if(0<this.o[a].ha){this.o[a].ha--;this.la=2;break}if(this.o[a].Ob){if(!this.o[a].Ob()){this.o.splice(a,1);b--;continue}this.o[a].Ob=null}this.o[a].nc>c&&(c=this.o[a].nc,
|
||||
b=a)}c>(this.u&224)&&(0>b?K(this,160,42):(K(this,this.o[b].Ac,44),this.o.splice(b,1)))}this.I&57344||(this.ga=0,this.Ya=this.b[7]);this.F=this.u&16;this.i=a=this.S(this.b[7]);0<=a&&(this.b[7]=this.b[7]+2&65535);this.decode(a);if(0>this.i)switch(a&61440){case 4096:break;case 8192:break;case 12288:break;case 16384:break;case 20480:break;case 24576:break;case 36864:break;case 40960:break;case 45056:break;case 49152:break;case 53248:break;case 57344:break;default:switch(a&65024){case 2048:0<=(d=T(this,
|
||||
a,0))&&(f=a>>6&7,0<=Q(this,this.b[f])&&(this.b[f]=this.b[7],this.b[7]=d&65535));break;case 28672:0<=(b=U(this,a))&&(f=a>>6&7,b&32768&&(b|=-65536),c=this.b[f],c&32768&&(c|=-65536),a=~~(b*c),this.b[f]=a>>16&65535,this.b[f|1]=a&65535,this.c=a>>16,this.h=this.c|a,this.g=this.f=0,-32768>a||32767<a)&&(this.g=65536);break;case 29184:0<=(b=U(this,a))&&(b?(f=a>>6&7,c=this.b[f]<<16|this.b[f|1],this.g=this.f=0,b&32768&&(b|=-65536),a=~~(c/b),-32768<=a&&32767>=a?(this.b[f]=a&65535,this.b[f|1]=c-a*b&65535,this.h=
|
||||
a>>16|a,this.c=a>>16):(this.f=32768,this.h=a>>15|a,this.c=c>>16,-1===b&&65534===this.b[f]&&(this.b[f]=this.b[f|1]=1))):(this.h=this.c=0,this.f=32768,this.g=65536));break;case 29696:0<=(b=U(this,a))&&(f=a>>6&7,a=this.b[f],a&32768&&(a|=4294901760),this.g=this.f=0,b&=63,b&32?(b=64-b,16<b&&(b=16),this.g=a<<17-b,a>>=b):b&&(16<b?(this.f=a,a=0):(this.g=a<<=b,(c=a>>15&65535)&&65535!==c&&(this.f=32768))),this.b[f]=a&65535,this.c=this.h=a);break;case 30208:if(0<=(b=U(this,a))){f=a>>6&7;c=this.b[f]<<16|this.b[f|
|
||||
1];this.g=this.f=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.f=32768)}else a=c;this.b[f]=a>>16&65535;this.b[f|1]=a&65535;this.c=a>>16;this.h=a>>16|a}break;case 30720:a&56?0<=(c=this.N(b=this.l(a,E)))&&(c^=this.b[a>>6&7],0<=M(this,b,c)&&(this.c=this.h=c,this.f=0)):(this.c=this.h=c=this.b[a&7]^=this.b[a>>6&7],this.f=0);break;case 32256:f=
|
||||
1];this.g=this.f=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.f=32768)}else a=c;this.b[f]=a>>16&65535;this.b[f|1]=a&65535;this.c=a>>16;this.h=a>>16|a}break;case 30720:a&56?0<=(c=this.O(b=this.l(a,E)))&&(c^=this.b[a>>6&7],0<=M(this,b,c)&&(this.c=this.h=c,this.f=0)):(this.c=this.h=c=this.b[a&7]^=this.b[a>>6&7],this.f=0);break;case 32256:f=
|
||||
a>>6&7;if(this.b[f]=this.b[f]-1&65535)this.b[7]=this.b[7]-((a&63)<<1)&65535;break;default:switch(a&65280){case 256:this.b[7]=W(this.b[7],a);break;case 512:this.h&65535&&(this.b[7]=W(this.b[7],a));break;case 768:this.h&65535||(this.b[7]=W(this.b[7],a));break;case 1024:(this.c&32768)===(this.f&32768)&&(this.b[7]=W(this.b[7],a));break;case 1280:(this.c&32768)!==(this.f&32768)&&(this.b[7]=W(this.b[7],a));break;case 1536:this.h&65535&&(this.c&32768)===(this.f&32768)&&(this.b[7]=W(this.b[7],a));break;case 1792:this.h&
|
||||
65535&&(this.c&32768)===(this.f&32768)||(this.b[7]=W(this.b[7],a));break;case 32768:this.c&32768||(this.b[7]=W(this.b[7],a));break;case 33280:!(this.g&65536)&&this.h&65535&&(this.b[7]=W(this.b[7],a));break;case 33024:this.c&32768&&(this.b[7]=W(this.b[7],a));break;case 33536:if(this.g&65536||!(this.h&65535))this.b[7]=W(this.b[7],a);break;case 33792:this.f&32768||(this.b[7]=W(this.b[7],a));break;case 34048:this.f&32768&&(this.b[7]=W(this.b[7],a));break;case 34304:this.g&65536||(this.b[7]=W(this.b[7],
|
||||
a));break;case 34560:this.g&65536&&(this.b[7]=W(this.b[7],a));break;case 34816:K(this,24,2);break;case 35072:K(this,28,4);break;default:switch(a&65472){case 64:0<=(d=T(this,a,0))&&(this.b[7]=d&65535);break;case 192:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=c<<8|c>>8,0<=M(this,b,a)&&(this.c=this.h=c&65280,this.f=this.g=0)):(f=a&7,c=this.b[f],this.b[f]=(c<<8|c>>8)&65535,this.c=this.h=c&65280,this.f=this.g=0);break;case 2560:break;case 2624:0<=(c=this.N(b=this.l(a,E)))&&(a=~c,0<=M(this,b,a)&&(this.c=this.h=
|
||||
a,this.g=65536,this.f=0));break;case 2688:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=c+1,0<=M(this,b,a)&&(this.c=this.h=a,this.f=a&(a^c))):(f=a&7,c=this.b[f],a=c+1,this.b[f]=a&65535,this.c=this.h=a,this.f=a&(a^c));break;case 2752:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=c-1,0<=M(this,b,a)&&(this.c=this.h=a,this.f=(a^c)&c)):(f=a&7,c=this.b[f],a=c-1,this.b[f]=a&65535,this.c=this.h=a,this.f=(a^c)&c);break;case 2816:0<=(c=this.N(b=this.l(a,E)))&&(a=-c,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a&c));break;
|
||||
case 2880:0<=(c=this.N(b=this.l(a,E)))&&(a=c+(this.g>>16&1),0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a&(a^c)));break;case 2944:0<=(c=this.N(b=this.l(a,E)))&&(a=c-(this.g>>16&1),0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=(a^c)&c));break;case 3008:0<=(c=U(this,a))&&(this.c=this.h=c,this.g=this.f=0);break;case 3072:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=(this.g&65536|c)>>1,0<=M(this,b,a)&&(this.g=c<<16,this.c=this.h=a,this.f=a^this.g>>1)):(f=a&7,c=this.b[f],a=(this.g&65536|c)>>1,this.b[f]=a&
|
||||
65535,this.g=c<<16,this.c=this.h=a,this.f=a^this.g>>1);break;case 3136:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=c<<1|this.g>>16&1,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a^c)):(f=a&7,c=this.b[f],a=c<<1|this.g>>16&1,this.b[f]=a&65535,this.g=this.c=this.h=a,this.f=a^c);break;case 3200:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=c&32768|c>>1,0<=M(this,b,a)&&(this.g=c<<16,this.c=this.h=a,this.f=this.c^this.g>>1)):(f=a&7,c=this.b[f],a=c&32768|c>>1,this.b[f]=a&65535,this.g=c<<16,this.c=this.h=a,this.f=this.c^
|
||||
this.g>>1);break;case 3264:a&56?0<=(c=this.N(b=this.l(a,E)))&&(a=c<<1,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a^c)):(f=a&7,c=this.b[f],a=c<<1,this.b[f]=a&65535,this.g=this.c=this.h=a,this.f=a^c);break;case 3328:d=this.b[7]+((a&63)<<1)&65535;0<=(b=this.R(d|65536))&&(this.b[7]=this.b[5],this.b[5]=b,this.b[6]=d+2&65535);break;case 3392:a&56?0<=(d=T(this,a,0))&&(61440!==(this.u&61440)&&(d&=65535),this.v=this.u>>12&3,0<=(b=this.R(d))&&(this.v=this.u>>14&3,0<=Q(this,b)&&(this.c=this.h=b,this.f=0))):
|
||||
(f=a&7,b=6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]:this.aa[this.u>>12&3],0<=Q(this,b)&&(this.c=this.h=b,this.f=0));break;case 3456:0<=(c=Rb(this))&&((this.I&57344||(this.ga=22),a&56)?0<=(d=T(this,a,0))&&(d&=65535,this.v=this.u>>12&3,0<=(b=Qb(this,d,D))&&(this.v=this.u>>14&3,0<=M(this,b,c)&&(this.c=this.h=c,this.f=0))):(f=a&7,6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]=c:this.aa[this.u>>12&3]=c,this.c=this.h=c,this.f=0));break;case 3520:0<=(b=this.l(a,D))&&(a=-(this.c>>15&1),0<=M(this,
|
||||
a));break;case 34560:this.g&65536&&(this.b[7]=W(this.b[7],a));break;case 34816:K(this,24,2);break;case 35072:K(this,28,4);break;default:switch(a&65472){case 64:0<=(d=T(this,a,0))&&(this.b[7]=d&65535);break;case 192:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=c<<8|c>>8,0<=M(this,b,a)&&(this.c=this.h=c&65280,this.f=this.g=0)):(f=a&7,c=this.b[f],this.b[f]=(c<<8|c>>8)&65535,this.c=this.h=c&65280,this.f=this.g=0);break;case 2560:break;case 2624:0<=(c=this.O(b=this.l(a,E)))&&(a=~c,0<=M(this,b,a)&&(this.c=this.h=
|
||||
a,this.g=65536,this.f=0));break;case 2688:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=c+1,0<=M(this,b,a)&&(this.c=this.h=a,this.f=a&(a^c))):(f=a&7,c=this.b[f],a=c+1,this.b[f]=a&65535,this.c=this.h=a,this.f=a&(a^c));break;case 2752:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=c-1,0<=M(this,b,a)&&(this.c=this.h=a,this.f=(a^c)&c)):(f=a&7,c=this.b[f],a=c-1,this.b[f]=a&65535,this.c=this.h=a,this.f=(a^c)&c);break;case 2816:0<=(c=this.O(b=this.l(a,E)))&&(a=-c,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a&c));break;
|
||||
case 2880:0<=(c=this.O(b=this.l(a,E)))&&(a=c+(this.g>>16&1),0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a&(a^c)));break;case 2944:0<=(c=this.O(b=this.l(a,E)))&&(a=c-(this.g>>16&1),0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=(a^c)&c));break;case 3008:0<=(c=U(this,a))&&(this.c=this.h=c,this.g=this.f=0);break;case 3072:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=(this.g&65536|c)>>1,0<=M(this,b,a)&&(this.g=c<<16,this.c=this.h=a,this.f=a^this.g>>1)):(f=a&7,c=this.b[f],a=(this.g&65536|c)>>1,this.b[f]=a&
|
||||
65535,this.g=c<<16,this.c=this.h=a,this.f=a^this.g>>1);break;case 3136:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=c<<1|this.g>>16&1,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a^c)):(f=a&7,c=this.b[f],a=c<<1|this.g>>16&1,this.b[f]=a&65535,this.g=this.c=this.h=a,this.f=a^c);break;case 3200:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=c&32768|c>>1,0<=M(this,b,a)&&(this.g=c<<16,this.c=this.h=a,this.f=this.c^this.g>>1)):(f=a&7,c=this.b[f],a=c&32768|c>>1,this.b[f]=a&65535,this.g=c<<16,this.c=this.h=a,this.f=this.c^
|
||||
this.g>>1);break;case 3264:a&56?0<=(c=this.O(b=this.l(a,E)))&&(a=c<<1,0<=M(this,b,a)&&(this.g=this.c=this.h=a,this.f=a^c)):(f=a&7,c=this.b[f],a=c<<1,this.b[f]=a&65535,this.g=this.c=this.h=a,this.f=a^c);break;case 3328:d=this.b[7]+((a&63)<<1)&65535;0<=(b=this.S(d|65536))&&(this.b[7]=this.b[5],this.b[5]=b,this.b[6]=d+2&65535);break;case 3392:a&56?0<=(d=T(this,a,0))&&(61440!==(this.u&61440)&&(d&=65535),this.v=this.u>>12&3,0<=(b=this.S(d))&&(this.v=this.u>>14&3,0<=Q(this,b)&&(this.c=this.h=b,this.f=0))):
|
||||
(f=a&7,b=6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]:this.aa[this.u>>12&3],0<=Q(this,b)&&(this.c=this.h=b,this.f=0));break;case 3456:0<=(c=Sb(this))&&((this.I&57344||(this.ga=22),a&56)?0<=(d=T(this,a,0))&&(d&=65535,this.v=this.u>>12&3,0<=(b=Rb(this,d,D))&&(this.v=this.u>>14&3,0<=M(this,b,c)&&(this.c=this.h=c,this.f=0))):(f=a&7,6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]=c:this.aa[this.u>>12&3]=c,this.c=this.h=c,this.f=0));break;case 3520:0<=(b=this.l(a,D))&&(a=-(this.c>>15&1),0<=M(this,
|
||||
b,a)&&(this.h=a,this.f=0));break;case 35328:break;case 35392:0<=(c=R(this,b=this.l(a,F)))&&(a=~c,0<=S(this,b,a)&&(this.c=this.h=a<<8,this.g=65536,this.f=0));break;case 35456:0<=(c=R(this,b=this.l(a,F)))&&(a=c+1,0<=S(this,b,a)&&(this.c=this.h=a<<8,this.f=(a&(a^c))<<8));break;case 35520:0<=(c=R(this,b=this.l(a,F)))&&(a=c-1,0<=S(this,b,a)&&(this.c=this.h=a<<8,this.f=((a^c)&c)<<8));break;case 35584:0<=(c=R(this,b=this.l(a,F)))&&(a=-c,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a&c)<<8));break;
|
||||
case 35648:0<=(c=R(this,b=this.l(a,F)))&&(a=c+(this.g>>16&1),0<=S(this,b,a)&&(this.c=this.h=this.g=a<<8,this.f=(a&(a^c))<<8));break;case 35712:0<=(c=R(this,b=this.l(a,F)))&&(a=c-(this.g>>16&1),0<=S(this,b,a)&&(this.c=this.h=this.g=a<<8,this.f=((a^c)&c)<<8));break;case 35776:0<=(c=V(this,a))&&(this.c=this.h=c<<8,this.g=this.f=0);break;case 35840:0<=(c=R(this,b=this.l(a,F)))&&(a=((this.g&65536)>>8|c)>>1,0<=S(this,b,a)&&(this.g=c<<16,this.c=this.h=a<<8,this.f=this.c^this.g>>1));break;case 35904:0<=(c=
|
||||
R(this,b=this.l(a,F)))&&(a=c<<1|this.g>>16&1,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a^c)<<8));break;case 35968:0<=(c=R(this,b=this.l(a,F)))&&(a=c&128|c>>1,0<=S(this,b,a)&&(this.g=c<<16,this.c=this.h=a<<8,this.f=this.c^this.g>>1));break;case 36032:0<=(c=R(this,b=this.l(a,F)))&&(a=c<<1,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a^c)<<8));break;case 36160:a&56?0<=(d=T(this,a,0))&&(this.v=this.u>>12&3,0<=(b=this.R(d|65536))&&(this.v=this.u>>14&3,0<=Q(this,b)&&(this.c=this.h=b,this.f=
|
||||
0))):(f=a&7,b=6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]:this.aa[this.u>>12&3],0<=Q(this,b)&&(this.c=this.h=b,this.f=0));break;case 36224:0<=(c=Rb(this))&&((this.I&57344||(this.ga=22),a&56)?0<=(d=T(this,a,0))&&(this.v=this.u>>12&3,0<=(b=Qb(this,d|65536,D))&&(this.v=this.u>>14&3,0<=M(this,b,c)&&(this.c=this.h=c,this.f=0))):(f=a&7,6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]=c:this.aa[this.u>>12&3]=c,this.c=this.h=c,this.f=0));break;default:switch(a&65528){case 128:0<=(b=Rb(this))&&
|
||||
(f=a&7,this.b[7]=this.b[f],this.b[f]=b);break;case 152:this.u&49152||(this.u=this.u&63519|(a&7)<<5,this.la=1);break;case 160:case 168:break;case 176:case 184:break;default:switch(a){case 0:49152&this.u?(this.s|=128,K(this,4,46)):(this.Ha=3,Jb(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:b=0;if(0<(a=this.o.length))for(;0<a--;)b+=this.o[a].ha,this.o[a].ha=0;0===b&&0===this.Ha&&(this.Ha=2,Jb(this));break;case 3:K(this,12,6);break;case 4:K(this,16,8);break;case 5:break;case 2:case 6:b=
|
||||
this.b[6];0<=(d=this.R(b|65536))&&(b=b+2&65535,0<=(c=this.R(b|65536))&&(this.b[6]=b+2&65535,c&=63743,this.u&49152&&(c=c&63519|this.u&63712),this.b[7]=d,ab(this,c),this.F&=-17,2===a&&(this.F|=this.u&16)));break;default:K(this,8,48)}}}}}}}while(0<this.a)}return this.j.complete?this.ba-this.a:void 0===this.j.complete?0:-1};u(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Kb(d);A(d,c)}});
|
||||
function Wb(a,b){var c=a+b;this.F&128||(this.c=this.h=this.g=c,this.f=(a^c)&(b^c));return c&65535}function Xb(a,b){a=~a&b;P(this,a);return a}function Yb(a,b){a=~a&b;P(this,a<<8);return a}function Zb(a,b){a|=b;P(this,a);return a}function $b(a,b){a|=b;P(this,a<<8);return a}function ac(a,b){var c=b-a;Pb(this,c,a,b);return c&65535}function bc(){this.i=-1;--this.a}function cc(){this.i=-1;--this.a}function X(a){a&1&&(this.g=0);a&2&&(this.f=0);a&4&&(this.h=1);a&8&&(this.c=0);--this.a}
|
||||
function dc(){this.i=-1;--this.a}function ec(){this.i=-1;--this.a}function fc(){this.i=-1;--this.a}function gc(){--this.a}function Y(a){a&1&&(this.g=65536);a&2&&(this.f=32768);a&4&&(this.h=0);a&8&&(this.c=32768);--this.a}function hc(){this.i=-1;--this.a}function ic(){this.i=-1;--this.a}function Z(){K(this,8,48)}function Lb(a){jc[a>>12].call(this,a)}
|
||||
var jc=[function(a){kc[a>>8&15].call(this,a)},function(a){P(this,Ub(this,a,U(this,a>>6)));--this.a},function(a){var b=U(this,a>>6);a=U(this,a);Pb(this,b-a,a,b);--this.a},function(a){P(this,U(this,a>>6)&U(this,a));--this.a},function(a){Sb(this,a,U(this,a>>6),Xb);--this.a},function(a){Sb(this,a,U(this,a>>6),Zb);--this.a},function(a){Sb(this,a,U(this,a>>6),Wb);--this.a},function(a){lc[a>>8&15].call(this,a)},function(a){mc[a>>8&15].call(this,a)},function(a){var b=V(this,a>>6);P(this,Vb(this,a,b,1)<<8);
|
||||
--this.a},function(a){var b=V(this,a>>6)<<8;a=V(this,a)<<8;Pb(this,b-a,a,b);--this.a},function(a){P(this,(V(this,a>>6)&V(this,a))<<8);--this.a},function(a){Tb(this,a,V(this,a>>6),Yb);--this.a},function(a){Tb(this,a,V(this,a>>6),$b);--this.a},function(a){Sb(this,a,U(this,a>>6),ac);--this.a},Z],kc=[function(a){nc[a>>4&15].call(this,a)},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=
|
||||
-1;--this.a},function(){this.i=-1;--this.a},ec,ec,function(a){oc[a>>6&3].call(this,a)},function(a){pc[a>>6&3].call(this,a)},function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},Z,Z],nc=[function(a){sc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,Z,Z,function(a){tc[a&15].call(this,a)},function(a){uc[a&15].call(this,a)},Z,Z,Z,Z],tc=[gc,function(){this.g=0;--this.a},function(){this.f=0;--this.a},X,function(){this.h=1;--this.a},X,X,X,function(){this.c=0;--this.a},X,X,X,X,X,X,X],uc=[gc,function(){this.g=
|
||||
65536;--this.a},function(){this.f=32768;--this.a},Y,function(){this.h=0;--this.a},Y,Y,Y,function(){this.c=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],sc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.u&49152||(Nb(this),this.A.reset());--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},Z,Z,Z,Z,Z,Z,Z,Z],lc=[fc,fc,dc,dc,bc,bc,cc,cc,ic,ic,Z,Z,Z,Z,hc,hc],mc=[function(){this.i=
|
||||
-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(a){vc[a>>6&3].call(this,a)},function(a){wc[a>>6&3].call(this,a)},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},Z,Z],oc=[function(a){Ob(this,Ub(this,a,0));--this.a},function(){this.i=
|
||||
-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],pc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],qc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],rc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],vc=[function(a){Ob(this,Vb(this,a,0));
|
||||
--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],wc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],xc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],yc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}];
|
||||
function zc(a){v.call(this,"ROM",a,zc);this.c=null;this.l=a.addr;this.f=a.size;this.o=a.writable;this.g=a.alias;this.h=a.file;this.v=ba(this.h);if(this.h){a=this.h;var b=ca(this.v);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Ac(c,a,b,e)})}}x(zc);zc.prototype.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;Bc(this)};zc.prototype.za=function(){this.i&&(this.K&&this.K.a(this.id,this.l,this.f,this.i),delete this.i);return!0};
|
||||
zc.prototype.ya=function(){return!0};
|
||||
function Ac(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Lb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.c=e;else if(e=h.words)for(a.c=Array(2*e.length),g=f=0;f<e.length;f++)a.c[g++]=e[f]&255,a.c[g++]=e[f]>>8&255;else if(e=h.data)for(a.c=Array(4*e.length),g=f=0;f<e.length;f++)a.c[g++]=e[f]&255,a.c[g++]=e[f]>>8&255,a.c[g++]=e[f]>>16&255,a.c[g++]=e[f]>>24&255;else a.c=h;a.i=h.symbols;if(!a.c.length){r("Empty ROM: "+b);
|
||||
return}if(1==a.c.length){r(a.c[0]);return}}catch(k){a.L("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.c=Array(b.length),f=0;f<b.length;f++)a.c[f]=aa(b[f]);Bc(a)}}
|
||||
function Bc(a){if(!Ga(a))if(!a.h)C(a);else if(a.c&&a.A){a.f||(a.f=a.c.length);if(a.c.length!=a.f){var b="ROM size ("+n(a.c.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.j.error=!0;a.L(b)}else{b=a.l;if(Ta(a.A,b,a.f,a.o?1:ob)){var c;for(c=0;c<a.c.length;c++){var d=a.A,f=b+c;d.c[(f&d.i)>>>d.f].ac(f&d.h,a.c[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.A,g=e.f,h=[],k=e.l>>>f.f;0<g&&
|
||||
k<f.c.length;)h.push(f.c[k++]),g-=f.g;f=e.A;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.c.length;){k=h[g++];if(!k)break;f.c[d++]=k;e-=f.g}}delete a.c}}C(a)}}u(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zc(d);A(d,c)}});function Cc(a){v.call(this,"RAM",a,Cc);this.g=a.addr;this.f=a.size;this.c=!1}x(Cc);l=Cc.prototype;l.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;C(this)};l.za=function(a,b){b||this.reset();return!0};l.ya=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.c&&this.f&&Ta(this.A,this.g,this.f,1)&&(this.c=!0);this.c||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Cc(d);A(d,c)}});function Dc(a){v.call(this,"Keyboard",a,Dc);C(this)}x(Dc);Dc.prototype.fa=function(){return!1};Dc.prototype.La=function(a,b,c,d){this.B=a;this.a=c;this.K=d;this.Ca=null};
|
||||
u(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Dc(d);A(d,c)}});
|
||||
function Ec(a,b,c){v.call(this,"Computer",a,Ec);this.j.M=!1;Fc(this,b);this.H=zb(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.c=Gc;this.v=null;this.l=this.Y=!1;this.url=zb(this,"url")||"";(Math.random()+.1).toString(36);this.f=Hc(this);if(this.a=Ea("CPU",this.id)){this.K=Ea("Debugger",this.id);this.A=new Na({id:this.Lb+".bus",busWidth:this.ba},this.a,this.K);var d,f=y(this.id);if((this.h=Ea("Panel",this.id))&&this.h.Db)for(b=0;b<f.length;b++)d=f[b],d.L=this.h.L,d.$=this.h.$,d.Db=
|
||||
this.h.Db;this.$("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.$("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.La&&d.La(this,this.A,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.c=parseInt(d,10));var e;if(a=zb(this,"state")||(e=!0,a.state))b=this.O=a,e||(this.l=!0,this.c=Gc),this.c&&(this.B=
|
||||
new O(this,"1.30.0"),Ic(this.B)?b=null:delete this.B);!b&&this.c&&(b=Jc(this))&&(this.l=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.l=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.v=b,g.Y=!0);C(g)})}else C(this);this.C.power||(this.H=!0);!c&&this.H&&Kc(this,this.fb)}else r("Unable to find CPU component")}x(Ec);var Gc=0;
|
||||
function Fc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.Z=b}function zb(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 Kc(a,b,c){for(var d=y(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Kc(a,b,c)});return}}b.call(a,c)}
|
||||
function Lc(a,b){var c=new O(a,"1.30.0","validate");if(Ic(c)&&Mc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Ec.prototype;
|
||||
l.fb=function(a){void 0===a&&(a=this.c||(this.v?1:Gc));if(!this.g){this.g++;var b=!1,c=!1;this.V=!1;var d=this.B||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Gc){if(Ic(d,this.v)){this.i=new O(this,"1.30.0","failsafe");Ic(this.i)&&(Nc(this,d),a=2,Oc(this.i));this.i.set("timestamp",ia());Pc(this.i);var f=this.c&&!this.l;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Mc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Ic(d,g):("error"==
|
||||
e&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(na("user",""),this.f=null)):this.$(e+": "+g),Oc(d),Ic(d)?(c=Mc(d),f=!0):c=!1))}f&&Lc(this,c?d:null)}else 2==a&&d.clear()}else Lc(this);delete this.v;delete this.B}f=y(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Qc(this,g,d,b,c));b=[d,a,c];-1!=a?Kc(this,this.Qb,b):this.Qb(b)}};
|
||||
function Qc(a,b,c,d,f){if(!b.j.M){b.j.M=!0;if(b.za){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.za(e,d)&&e&&(r("Unable to restore state for "+b.type),a.O&&!a.Y?(c.clear(),a.c=Gc,window&&window.location.reload()):a.V=!0,b.za(null),f=!1)}if(!d&&b.Kb)for(a=b.Kb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Qb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.j.M=!0;var d=this.C.power;d&&(d.textContent="Shutdown");this.a&&(Qc(this,this.a,b,c,a),this.a.$a());this.V&&(Nc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0};
|
||||
function Nc(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||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Rc(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=ia();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ya&&(c&&Eb(a.a),d=a.a.ya(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.j.M=!1,!1===d&&(f=null)));for(var h=y(a.id),k=0;k<h.length;k++){var m=h[k];m.j.M&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.j.M=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Sc(a,a.f,e.toString()),Pc(g)&&Pc(e)||(f=null,d=h=!0)):a.c&&(d=!0,h=3==a.c),d&&e.clear(h)):f=e.toString());c&&(a.j.M=!1,b=a.C.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.A&&this.A.reset&&this.A.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
R(this,b=this.l(a,F)))&&(a=c<<1|this.g>>16&1,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a^c)<<8));break;case 35968:0<=(c=R(this,b=this.l(a,F)))&&(a=c&128|c>>1,0<=S(this,b,a)&&(this.g=c<<16,this.c=this.h=a<<8,this.f=this.c^this.g>>1));break;case 36032:0<=(c=R(this,b=this.l(a,F)))&&(a=c<<1,0<=S(this,b,a)&&(this.g=this.c=this.h=a<<8,this.f=(a^c)<<8));break;case 36160:a&56?0<=(d=T(this,a,0))&&(this.v=this.u>>12&3,0<=(b=this.S(d|65536))&&(this.v=this.u>>14&3,0<=Q(this,b)&&(this.c=this.h=b,this.f=
|
||||
0))):(f=a&7,b=6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]:this.aa[this.u>>12&3],0<=Q(this,b)&&(this.c=this.h=b,this.f=0));break;case 36224:0<=(c=Sb(this))&&((this.I&57344||(this.ga=22),a&56)?0<=(d=T(this,a,0))&&(this.v=this.u>>12&3,0<=(b=Rb(this,d|65536,D))&&(this.v=this.u>>14&3,0<=M(this,b,c)&&(this.c=this.h=c,this.f=0))):(f=a&7,6!==f||(this.u>>2&12288)===(this.u&12288)?this.b[f]=c:this.aa[this.u>>12&3]=c,this.c=this.h=c,this.f=0));break;default:switch(a&65528){case 128:0<=(b=Sb(this))&&
|
||||
(f=a&7,this.b[7]=this.b[f],this.b[f]=b);break;case 152:this.u&49152||(this.u=this.u&63519|(a&7)<<5,this.la=1);break;case 160:case 168:break;case 176:case 184:break;default:switch(a){case 0:49152&this.u?(this.s|=128,K(this,4,46)):(this.Ha=3,Kb(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:b=0;if(0<(a=this.o.length))for(;0<a--;)b+=this.o[a].ha,this.o[a].ha=0;0===b&&0===this.Ha&&(this.Ha=2,Kb(this));break;case 3:K(this,12,6);break;case 4:K(this,16,8);break;case 5:break;case 2:case 6:b=
|
||||
this.b[6];0<=(d=this.S(b|65536))&&(b=b+2&65535,0<=(c=this.S(b|65536))&&(this.b[6]=b+2&65535,c&=63743,this.u&49152&&(c=c&63519|this.u&63712),this.b[7]=d,bb(this,c),this.F&=-17,2===a&&(this.F|=this.u&16)));break;default:K(this,8,48)}}}}}}}while(0<this.a)}return this.j.complete?this.ba-this.a:void 0===this.j.complete?0:-1};u(function(){for(var a=B(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Lb(d);A(d,c)}});
|
||||
function Xb(a,b){var c=a+b;this.F&128||(this.c=this.h=this.g=c,this.f=(a^c)&(b^c));return c&65535}function Yb(a,b){a=~a&b;P(this,a);return a}function Zb(a,b){a=~a&b;P(this,a<<8);return a}function $b(a,b){a|=b;P(this,a);return a}function ac(a,b){a|=b;P(this,a<<8);return a}function bc(a,b){var c=b-a;Qb(this,c,a,b);return c&65535}function cc(){this.i=-1;--this.a}function dc(){this.i=-1;--this.a}function X(a){a&1&&(this.g=0);a&2&&(this.f=0);a&4&&(this.h=1);a&8&&(this.c=0);--this.a}
|
||||
function ec(){this.i=-1;--this.a}function fc(){this.i=-1;--this.a}function gc(){this.i=-1;--this.a}function hc(){--this.a}function Y(a){a&1&&(this.g=65536);a&2&&(this.f=32768);a&4&&(this.h=0);a&8&&(this.c=32768);--this.a}function ic(){this.i=-1;--this.a}function jc(){this.i=-1;--this.a}function Z(){K(this,8,48)}function Mb(a){kc[a>>12].call(this,a)}
|
||||
var kc=[function(a){lc[a>>8&15].call(this,a)},function(a){P(this,Vb(this,a,U(this,a>>6)));--this.a},function(a){var b=U(this,a>>6);a=U(this,a);Qb(this,b-a,a,b);--this.a},function(a){P(this,U(this,a>>6)&U(this,a));--this.a},function(a){Tb(this,a,U(this,a>>6),Yb);--this.a},function(a){Tb(this,a,U(this,a>>6),$b);--this.a},function(a){Tb(this,a,U(this,a>>6),Xb);--this.a},function(a){mc[a>>8&15].call(this,a)},function(a){nc[a>>8&15].call(this,a)},function(a){var b=V(this,a>>6);P(this,Wb(this,a,b,1)<<8);
|
||||
--this.a},function(a){var b=V(this,a>>6)<<8;a=V(this,a)<<8;Qb(this,b-a,a,b);--this.a},function(a){P(this,(V(this,a>>6)&V(this,a))<<8);--this.a},function(a){Ub(this,a,V(this,a>>6),Zb);--this.a},function(a){Ub(this,a,V(this,a>>6),ac);--this.a},function(a){Tb(this,a,U(this,a>>6),bc);--this.a},Z],lc=[function(a){oc[a>>4&15].call(this,a)},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=
|
||||
-1;--this.a},function(){this.i=-1;--this.a},fc,fc,function(a){pc[a>>6&3].call(this,a)},function(a){qc[a>>6&3].call(this,a)},function(a){rc[a>>6&3].call(this,a)},function(a){sc[a>>6&3].call(this,a)},Z,Z],oc=[function(a){tc[a&15].call(this,a)},Z,Z,Z,Z,Z,Z,Z,Z,Z,function(a){uc[a&15].call(this,a)},function(a){vc[a&15].call(this,a)},Z,Z,Z,Z],uc=[hc,function(){this.g=0;--this.a},function(){this.f=0;--this.a},X,function(){this.h=1;--this.a},X,X,X,function(){this.c=0;--this.a},X,X,X,X,X,X,X],vc=[hc,function(){this.g=
|
||||
65536;--this.a},function(){this.f=32768;--this.a},Y,function(){this.h=0;--this.a},Y,Y,Y,function(){this.c=32768;--this.a},Y,Y,Y,Y,Y,Y,Y],tc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.u&49152||(Ob(this),this.A.reset());--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},Z,Z,Z,Z,Z,Z,Z,Z],mc=[gc,gc,ec,ec,cc,cc,dc,dc,jc,jc,Z,Z,Z,Z,ic,ic],nc=[function(){this.i=
|
||||
-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(a){wc[a>>6&3].call(this,a)},function(a){xc[a>>6&3].call(this,a)},function(a){yc[a>>6&3].call(this,a)},function(a){zc[a>>6&3].call(this,a)},Z,Z],pc=[function(a){Pb(this,Vb(this,a,0));--this.a},function(){this.i=
|
||||
-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],qc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],rc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],sc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],wc=[function(a){Pb(this,Wb(this,a,0));
|
||||
--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],xc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],yc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}],zc=[function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a},function(){this.i=-1;--this.a}];
|
||||
function Ac(a){v.call(this,"ROM",a,Ac);this.c=null;this.l=a.addr;this.f=a.size;this.o=a.writable;this.g=a.alias;this.h=a.file;this.v=ca(this.h);if(this.h){a=this.h;var b=da(this.v);"json"!=b&&"hex"!=b&&(a=fa()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){Bc(c,a,b,e)})}}x(Ac);Ac.prototype.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;Cc(this)};Ac.prototype.za=function(){this.i&&(this.K&&this.K.a(this.id,this.l,this.f,this.i),delete this.i);return!0};
|
||||
Ac.prototype.ya=function(){return!0};
|
||||
function Bc(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ea(a.Mb,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.c=e;else if(e=h.words)for(a.c=Array(2*e.length),g=f=0;f<e.length;f++)a.c[g++]=e[f]&255,a.c[g++]=e[f]>>8&255;else if(e=h.data)for(a.c=Array(4*e.length),g=f=0;f<e.length;f++)a.c[g++]=e[f]&255,a.c[g++]=e[f]>>8&255,a.c[g++]=e[f]>>16&255,a.c[g++]=e[f]>>24&255;else a.c=h;a.i=h.symbols;if(!a.c.length){r("Empty ROM: "+b);
|
||||
return}if(1==a.c.length){r(a.c[0]);return}}catch(k){a.L("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.c=Array(b.length),f=0;f<b.length;f++)a.c[f]=aa(b[f]);Cc(a)}}
|
||||
function Cc(a){if(!Ha(a))if(!a.h)C(a);else if(a.c&&a.A){a.f||(a.f=a.c.length);if(a.c.length!=a.f){var b="ROM size ("+n(a.c.length,8,!0)+") does not match specified size ("+n(a.f,8,!0)+")";a.j.error=!0;a.L(b)}else{b=a.l;if(Ua(a.A,b,a.f,a.o?1:pb)){var c;for(c=0;c<a.c.length;c++){var d=a.A,f=b+c;d.c[(f&d.i)>>>d.f].ac(f&d.h,a.c[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.A,g=e.f,h=[],k=e.l>>>f.f;0<g&&
|
||||
k<f.c.length;)h.push(f.c[k++]),g-=f.g;f=e.A;e=e.f;g=0;for(d>>>=f.f;0<e&&d<f.c.length;){k=h[g++];if(!k)break;f.c[d++]=k;e-=f.g}}delete a.c}}C(a)}}u(function(){for(var a=B(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ac(d);A(d,c)}});function Dc(a){v.call(this,"RAM",a,Dc);this.g=a.addr;this.f=a.size;this.c=!1}x(Dc);l=Dc.prototype;l.La=function(a,b,c,d){this.A=b;this.a=c;this.K=d;C(this)};l.za=function(a,b){b||this.reset();return!0};l.ya=function(a){return a?this.save():!0};
|
||||
l.reset=function(){!this.c&&this.f&&Ua(this.A,this.g,this.f,1)&&(this.c=!0);this.c||r("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};u(function(){for(var a=B(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Dc(d);A(d,c)}});function Ec(a){v.call(this,"Keyboard",a,Ec);C(this)}x(Ec);Ec.prototype.fa=function(){return!1};Ec.prototype.La=function(a,b,c,d){this.B=a;this.a=c;this.K=d;this.Ca=null};
|
||||
u(function(){for(var a=B(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ec(d);A(d,c)}});
|
||||
function Fc(a,b,c){v.call(this,"Computer",a,Fc);this.j.M=!1;Gc(this,b);this.H=Ab(this,"autoPower",a);this.g=0;this.ba=a.busWidth||a.buswidth;this.c=Hc;this.v=null;this.l=this.Z=!1;this.url=Ab(this,"url")||"";(Math.random()+.1).toString(36);this.f=Ic(this);if(this.a=Fa("CPU",this.id)){this.K=Fa("Debugger",this.id);this.A=new Oa({id:this.Mb+".bus",busWidth:this.ba},this.a,this.K);var d,f=y(this.id);if((this.h=Fa("Panel",this.id))&&this.h.Eb)for(b=0;b<f.length;b++)d=f[b],d.L=this.h.L,d.N=this.h.N,d.Eb=
|
||||
this.h.Eb;this.N("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.N("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.La&&d.La(this,this.A,this.a,this.K);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.o=d:this.c=parseInt(d,10));var e;if(a=Ab(this,"state")||(e=!0,a.state))b=this.P=a,e||(this.l=!0,this.c=Hc),this.c&&(this.B=
|
||||
new O(this,"1.30.0"),Jc(this.B)?b=null:delete this.B);!b&&this.c&&(b=Kc(this))&&(this.l=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.l=!1,g.L("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.v=b,g.Z=!0);C(g)})}else C(this);this.C.power||(this.H=!0);!c&&this.H&&Lc(this,this.fb)}else r("Unable to find CPU component")}x(Fc);var Hc=0;
|
||||
function Gc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.$=b}function Ab(a,b,c){var d=b.toLowerCase(),d=ya[b]||ya[d];void 0===d&&a.$&&(d=a.$[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Lc(a,b,c){for(var d=y(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ha(e)){Ha(e,function(){Lc(a,b,c)});return}}b.call(a,c)}
|
||||
function Mc(a,b){var c=new O(a,"1.30.0","validate");if(Jc(c)&&Nc(c)){var d=c.get("timestamp"),f=b?b.get("timestamp"):"unknown";d!=f&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Fc.prototype;
|
||||
l.fb=function(a){void 0===a&&(a=this.c||(this.v?1:Hc));if(!this.g){this.g++;var b=!1,c=!1;this.W=!1;var d=this.B||new O(this,"1.30.0");if(-1==a)b=!0;else if(a>Hc){if(Jc(d,this.v)){this.i=new O(this,"1.30.0","failsafe");Jc(this.i)&&(Oc(this,d),a=2,Pc(this.i));this.i.set("timestamp",ja());Qc(this.i);var f=this.c&&!this.l;if(1==a||ka("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Nc(d)){var e=d.get("code"),g=d.get("data");e&&("ok"==e?Jc(d,g):("error"==
|
||||
e&&"no machine state"!=g?(this.L("Error: "+g),"unable to verify user"==g&&(oa("user",""),this.f=null)):this.N(e+": "+g),Pc(d),Jc(d)?(c=Nc(d),f=!0):c=!1))}f&&Mc(this,c?d:null)}else 2==a&&d.clear()}else Mc(this);delete this.v;delete this.B}f=y(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Rc(this,g,d,b,c));b=[d,a,c];-1!=a?Lc(this,this.Rb,b):this.Rb(b)}};
|
||||
function Rc(a,b,c,d,f){if(!b.j.M){b.j.M=!0;if(b.za){var e=null;f&&((e=c.get(b.id))||(e=c.get(b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.za(e,d)&&e&&(r("Unable to restore state for "+b.type),a.P&&!a.Z?(c.clear(),a.c=Hc,window&&window.location.reload()):a.W=!0,b.za(null),f=!1)}if(!d&&b.Lb)for(a=b.Lb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||
l.Rb=function(a){var b=a[0],c=0>a[1];a=a[2];this.ca=!0;this.j.M=!0;var d=this.C.power;d&&(d.textContent="Shutdown");this.a&&(Rc(this,this.a,b,c,a),this.a.$a());this.W&&(Oc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0};
|
||||
function Oc(a,b){if(ka("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||"";b=b.toString();var d={app:"PDP11js",ver:"1.30.0"};d.url=a.url;d.user=c;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Sc(a,b,c){var d,f="none";if(a.g)return null;a.g--;var e=new O(a,"1.30.0"),g=new O(a,"1.30.0","validate"),h=ja();g.set("timestamp",h);e.set("timestamp",h);e.set("version","1.30.0");e.set("url",window?window.location.href:null);e.set("browser",window?window.navigator.userAgent:"");a.a&&a.a.ya&&(c&&Fb(a.a),d=a.a.ya(b,c),"object"===typeof d&&e.set(a.a.id,d),c&&(a.a.j.M=!1,!1===d&&(f=null)));for(var h=y(a.id),k=0;k<h.length;k++){var m=h[k];m.j.M&&(m.ya&&(d=m.ya(b,c),"object"===typeof d&&e.set(m.id,
|
||||
d)),c&&(m.j.M=!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.f&&Tc(a,a.f,e.toString()),Qc(g)&&Qc(e)||(f=null,d=h=!0)):a.c&&(d=!0,h=3==a.c),d&&e.clear(h)):f=e.toString());c&&(a.j.M=!1,b=a.C.power)&&(b.textContent="Power");a.g=0;return f}l.reset=function(){this.A&&this.A.reset&&this.A.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&c.reset()}};l.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||
l.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "power":return this.C[b]=c,c.onclick=function(){d.g||(d.j.M?Rc(d,!1,!0):Kc(d,d.fb))},!0;case "reset":return this.C[b]=c,c.onclick=function(){if(d.j.M&&!d.g)if(d.c&&!d.o){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rc(d,a,!0);!a&&d.O?window&&window.location.reload():d.fb(Gc)}else d.reset(),d.a&&d.a.$a()},!0;case "save":if(da())c.parentNode.removeChild(c);else return this.C[b]=
|
||||
c,c.onclick=function(){var a=Hc(d,!0);if(a){var b=!!(d.c&&!d.o||d.O),c=Rc(d,b);b?Sc(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Hc(a,b){var c=a.f;c||((c=ma("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Tc(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
|
||||
function Tc(a,b){a.f=null;b=p(ea()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(na("user",b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function Jc(a){var b=null;a.f&&(b=ea()+"/api/v1/user?req=load&user="+a.f+"&state="+Uc(a,"1.30.0"));return b}
|
||||
function Sc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Uc(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.L("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.L(c),na("user",""),a.f=null)}}
|
||||
l.Pa=function(a){this.a&&this.a.Pa(a);this.h&&this.h.Pa(a)};u(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=z(e),g=new Ec(g,d,!0);A(g,e);g.H&&Kc(g,g.fb)}});t.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.ca&&!c.j.M&&c.fb(-1)}});
|
||||
t.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.j.M&&Rc(c,!(!c.c||c.o),!0)}});function O(a,b,c){this.id=a.id;this.key=Uc(a,b,c);this.K=a.K;Oc(this,a.ic)}function Uc(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}
|
||||
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Oc(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 Oc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Pc(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Mc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function Ic(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}var Vc=0;
|
||||
function Wc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Xc(h,a,b,c,d,f,e)})}
|
||||
function Xc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Da(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){e=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Yc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Yc(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,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Yc(a,b,c)}})}else c(a,null)}
|
||||
function Zc(a,b,c,d){function f(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Vc||ua(!0));k=!1}var g,h,k=!0;Vc++;Ca[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],L=document.createElement("style");L.type="text/css";L.styleSheet?L.styleSheet.cssText=m:L.appendChild(document.createTextNode(m));q.appendChild(L)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Wc(c,null,null,!1,f,function(d,k){k?(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Vc||ua(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Vc||ua(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Wc(b,a,d,!0,f,m):Xc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(N){e(N.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return Zc(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();
|
||||
l.fa=function(a,b,c){var d=this;switch(b){case "power":return this.C[b]=c,c.onclick=function(){d.g||(d.j.M?Sc(d,!1,!0):Lc(d,d.fb))},!0;case "reset":return this.C[b]=c,c.onclick=function(){if(d.j.M&&!d.g)if(d.c&&!d.o){var a=ka("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sc(d,a,!0);!a&&d.P?window&&window.location.reload():d.fb(Hc)}else d.reset(),d.a&&d.a.$a()},!0;case "save":if(ea())c.parentNode.removeChild(c);else return this.C[b]=
|
||||
c,c.onclick=function(){var a=Ic(d,!0);if(a){var b=!!(d.c&&!d.o||d.P),c=Sc(d,b);b?Tc(d,a,c):d.L("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Ic(a,b){var c=a.f;c||((c=na("user"),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Uc(a,c))||a.L("The user ID is invalid.")):b&&a.L("Browser local storage is not available"));return c}
|
||||
function Uc(a,b){a.f=null;b=p(fa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(oa("user",b.data),a.f=b.data)}catch(d){r(d.message+" ("+c+")")}return a.f}function Kc(a){var b=null;a.f&&(b=fa()+"/api/v1/user?req=load&user="+a.f+"&state="+Vc(a,"1.30.0"));return b}
|
||||
function Tc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Vc(a,"1.30.0");d.data=c;b=p(fa()+"/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.L("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.L(c),oa("user",""),a.f=null)}}
|
||||
l.Pa=function(a){this.a&&this.a.Pa(a);this.h&&this.h.Pa(a)};u(function(){for(var a=B(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=z(e),g=new Fc(g,d,!0);A(g,e);g.H&&Lc(g,g.fb)}});t.show.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Fa("Computer",c.id))&&c.ca&&!c.j.M&&c.fb(-1)}});
|
||||
t.exit.push(function(){for(var a=B(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Fa("Computer",c.id))&&c.j.M&&Sc(c,!(!c.c||c.o),!0)}});function O(a,b,c){this.id=a.id;this.key=Vc(a,b,c);this.K=a.K;Pc(this,a.gc)}function Vc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
O.prototype={constructor:O,set:function(a,b){try{this[this.id][a]=b}catch(c){}},get:function(a){return this[this.id][a]||null},value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Pc(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 Pc(a,b){a[a.id]={};b&&a.set("parms",b);a.a=!1}function Qc(a){var b=!0;if(ma()){var c=JSON.stringify(a[a.id]);oa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Nc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function Jc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ma()&&(b=na(a.key))?(a[a.id]=b,a.a=!0):!1}var Wc=0;
|
||||
function Xc(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Yc(h,a,b,c,d,f,e)})}
|
||||
function Yc(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{c&&(Ea(c,b,a),(e=b)&&0>e.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(e=window.location.pathname+e),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+e+'"}',"object"==typeof resources&&(e=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(e?' url="'+e+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));e=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(e=new window.ActiveXObject("Microsoft.XMLDOM"),e.async=!1,e.loadXML(a)):e=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){e=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,e)}}a?f?Zc(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function Zc(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,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,q=/( [a-z]+=)(['"])(.*?)\2/g;m=q.exec(e);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Zc(a,b,c)}})}else c(a,null)}
|
||||
function $c(a,b,c,d){function f(a){if(void 0===h){var b=g&&B(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ha(a))}function e(a){f("Error: "+a);k&&(--Wc||va(!0));k=!1}var g,h,k=!0;Wc++;Da[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],L=document.createElement("style");L.type="text/css";L.styleSheet?L.styleSheet.cssText=m:L.appendChild(document.createTextNode(m));q.appendChild(L)}c||
|
||||
(c="/versions/pdp11/1.30.0/components.xsl");m=function(d,h){h?Xc(c,null,null,!1,f,function(d,k){k?(Ea(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(k=h.transformNode(k))?(g.outerHTML=k,--Wc||va(!0)):e("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(k),(k=d.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(k,g),--Wc||va(!0)):e("invalid machine element: "+
|
||||
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser")):e(d)}):e(d)};"<"!=b.charAt(0)?Xc(b,a,d,!0,f,m):Yc(b,null,a,d,!1,f,m)}else e("missing machine element: "+a)}catch(N){e(N.message)}return k}window.embedPDP11=function(a,b,c,d){va(!1);return $c(a,b,c,d)};window.enableEvents=va;window.sendEvent=wa;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue