The 8080 CPU goes through the Bus interfaces for all memory accesses now. The PCjs CPU maintained its own copy of Bus memory structures and interfaces, partly for improved performance but also because some CPUs can turn on address translation (ie, paging), making separate interfaces a necessity. However, PC8080 has much lower performance requirements and no address translation requirements, so we should revert to the original Bus interfaces.
This commit is contained in:
parent
cba3fca260
commit
a56f1cfde1
6 changed files with 376 additions and 434 deletions
|
|
@ -135,7 +135,7 @@ function Bus(parmsBus, cpu, dbg)
|
||||||
* [0]: registered function to call for every I/O access
|
* [0]: registered function to call for every I/O access
|
||||||
*
|
*
|
||||||
* The registered function is called with the port address, and if the access was triggered by the CPU,
|
* The registered function is called with the port address, and if the access was triggered by the CPU,
|
||||||
* the linear instruction pointer (LIP) at the point of access.
|
* the instruction pointer (IP) at the point of access.
|
||||||
*
|
*
|
||||||
* WARNING: Unlike the (old) read and write memory notification functions, these support only one
|
* WARNING: Unlike the (old) read and write memory notification functions, these support only one
|
||||||
* pair of input/output functions per port. A more sophisticated architecture could support a list
|
* pair of input/output functions per port. A more sophisticated architecture could support a list
|
||||||
|
|
@ -225,7 +225,6 @@ Bus.prototype.initMemory = function()
|
||||||
for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
|
for (var iBlock = 0; iBlock < this.nBlockTotal; iBlock++) {
|
||||||
this.aMemBlocks[iBlock] = block;
|
this.aMemBlocks[iBlock] = block;
|
||||||
}
|
}
|
||||||
this.cpu.initMemory(this.aMemBlocks, this.nBlockShift, this.nBusMask);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -492,8 +491,6 @@ Bus.prototype.setMemoryBlocks = function(addr, size, aBlocks, type)
|
||||||
/**
|
/**
|
||||||
* getByte(addr)
|
* getByte(addr)
|
||||||
*
|
*
|
||||||
* For physical addresses only; for linear addresses, use cpu.getByte().
|
|
||||||
*
|
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} addr is a physical address
|
* @param {number} addr is a physical address
|
||||||
* @return {number} byte (8-bit) value at that address
|
* @return {number} byte (8-bit) value at that address
|
||||||
|
|
@ -520,8 +517,6 @@ Bus.prototype.getByteDirect = function(addr)
|
||||||
/**
|
/**
|
||||||
* getShort(addr)
|
* getShort(addr)
|
||||||
*
|
*
|
||||||
* For physical addresses only; for linear addresses, use cpu.getShort().
|
|
||||||
*
|
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} addr is a physical address
|
* @param {number} addr is a physical address
|
||||||
* @return {number} word (16-bit) value at that address
|
* @return {number} word (16-bit) value at that address
|
||||||
|
|
@ -558,8 +553,6 @@ Bus.prototype.getShortDirect = function(addr)
|
||||||
/**
|
/**
|
||||||
* setByte(addr, b)
|
* setByte(addr, b)
|
||||||
*
|
*
|
||||||
* For physical addresses only; for linear addresses, use cpu.setByte().
|
|
||||||
*
|
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} addr is a physical address
|
* @param {number} addr is a physical address
|
||||||
* @param {number} b is the byte (8-bit) value to write (we truncate it to 8 bits to be safe)
|
* @param {number} b is the byte (8-bit) value to write (we truncate it to 8 bits to be safe)
|
||||||
|
|
@ -587,8 +580,6 @@ Bus.prototype.setByteDirect = function(addr, b)
|
||||||
/**
|
/**
|
||||||
* setShort(addr, w)
|
* setShort(addr, w)
|
||||||
*
|
*
|
||||||
* For physical addresses only; for linear addresses, use cpu.setShort().
|
|
||||||
*
|
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} addr is a physical address
|
* @param {number} addr is a physical address
|
||||||
* @param {number} w is the word (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)
|
||||||
|
|
@ -627,6 +618,36 @@ Bus.prototype.setShortDirect = function(addr, w)
|
||||||
this.aMemBlocks[iBlock & this.nBlockMask].writeByteDirect(0, (w >> 8) & 0xff, addr + 1);
|
this.aMemBlocks[iBlock & this.nBlockMask].writeByteDirect(0, (w >> 8) & 0xff, addr + 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* addMemBreak(addr, fWrite)
|
||||||
|
*
|
||||||
|
* @this {Bus}
|
||||||
|
* @param {number} addr
|
||||||
|
* @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint
|
||||||
|
*/
|
||||||
|
Bus.prototype.addMemBreak = function(addr, fWrite)
|
||||||
|
{
|
||||||
|
if (DEBUGGER) {
|
||||||
|
var iBlock = addr >>> this.nBlockShift;
|
||||||
|
this.aMemBlocks[iBlock].addBreakpoint(addr & this.nBlockLimit, fWrite);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* removeMemBreak(addr, fWrite)
|
||||||
|
*
|
||||||
|
* @this {Bus}
|
||||||
|
* @param {number} addr
|
||||||
|
* @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint
|
||||||
|
*/
|
||||||
|
Bus.prototype.removeMemBreak = function(addr, fWrite)
|
||||||
|
{
|
||||||
|
if (DEBUGGER) {
|
||||||
|
var iBlock = addr >>> this.nBlockShift;
|
||||||
|
this.aMemBlocks[iBlock].removeBreakpoint(addr & this.nBlockLimit, fWrite);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* saveMemory(fAll)
|
* saveMemory(fAll)
|
||||||
*
|
*
|
||||||
|
|
@ -745,7 +766,7 @@ Bus.prototype.addPortInputBreak = function(port)
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} start port address
|
* @param {number} start port address
|
||||||
* @param {number} end port address
|
* @param {number} end port address
|
||||||
* @param {function(number,number)} fn is called with the port and LIP values at the time of the input
|
* @param {function(number,number)} fn is called with the port and IP values at the time of the input
|
||||||
*/
|
*/
|
||||||
Bus.prototype.addPortInputNotify = function(start, end, fn)
|
Bus.prototype.addPortInputNotify = function(start, end, fn)
|
||||||
{
|
{
|
||||||
|
|
@ -794,18 +815,18 @@ Bus.prototype.addPortInputWidth = function(port, size)
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* checkPortInputNotify(port, size, addrLIP)
|
* checkPortInputNotify(port, size, addrIP)
|
||||||
*
|
*
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} port
|
* @param {number} port
|
||||||
* @param {number} size (1, 2 or 4)
|
* @param {number} size (1, 2 or 4)
|
||||||
* @param {number} [addrLIP] is the LIP value at the time of the input
|
* @param {number} [addrIP] is the IP value at the time of the input
|
||||||
* @return {number} simulated port data
|
* @return {number} simulated port data
|
||||||
*
|
*
|
||||||
* NOTE: It seems that parts of the ROM BIOS (like the RS-232 probes around F000:E5D7 in the 5150 BIOS)
|
* NOTE: It seems that parts of the ROM BIOS (like the RS-232 probes around F000:E5D7 in the 5150 BIOS)
|
||||||
* assume that ports for non-existent hardware return 0xff rather than 0x00, hence my new default (0xff) below.
|
* assume that ports for non-existent hardware return 0xff rather than 0x00, hence my new default (0xff) below.
|
||||||
*/
|
*/
|
||||||
Bus.prototype.checkPortInputNotify = function(port, size, addrLIP)
|
Bus.prototype.checkPortInputNotify = function(port, size, addrIP)
|
||||||
{
|
{
|
||||||
var data = 0, shift = 0;
|
var data = 0, shift = 0;
|
||||||
|
|
||||||
|
|
@ -827,7 +848,7 @@ Bus.prototype.checkPortInputNotify = function(port, size, addrLIP)
|
||||||
|
|
||||||
if (aNotify !== undefined) {
|
if (aNotify !== undefined) {
|
||||||
if (aNotify[0]) {
|
if (aNotify[0]) {
|
||||||
dataPort = aNotify[0](port, addrLIP);
|
dataPort = aNotify[0](port, addrIP);
|
||||||
if (dataPort === undefined) {
|
if (dataPort === undefined) {
|
||||||
dataPort = maskPort;
|
dataPort = maskPort;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -840,7 +861,7 @@ Bus.prototype.checkPortInputNotify = function(port, size, addrLIP)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (DEBUGGER && this.dbg) {
|
if (DEBUGGER && this.dbg) {
|
||||||
this.dbg.messageIO(this, port, null, addrLIP);
|
this.dbg.messageIO(this, port, null, addrIP);
|
||||||
if (this.fPortInputBreakAll) this.dbg.checkPortInput(port, size, dataPort);
|
if (this.fPortInputBreakAll) this.dbg.checkPortInput(port, size, dataPort);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -902,7 +923,7 @@ Bus.prototype.addPortOutputBreak = function(port)
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} start port address
|
* @param {number} start port address
|
||||||
* @param {number} end port address
|
* @param {number} end port address
|
||||||
* @param {function(number,number)} fn is called with the port and LIP values at the time of the output
|
* @param {function(number,number)} fn is called with the port and IP values at the time of the output
|
||||||
*/
|
*/
|
||||||
Bus.prototype.addPortOutputNotify = function(start, end, fn)
|
Bus.prototype.addPortOutputNotify = function(start, end, fn)
|
||||||
{
|
{
|
||||||
|
|
@ -951,15 +972,15 @@ Bus.prototype.addPortOutputWidth = function(port, size)
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* checkPortOutputNotify(port, size, data, addrLIP)
|
* checkPortOutputNotify(port, size, data, addrIP)
|
||||||
*
|
*
|
||||||
* @this {Bus}
|
* @this {Bus}
|
||||||
* @param {number} port
|
* @param {number} port
|
||||||
* @param {number} size
|
* @param {number} size
|
||||||
* @param {number} data
|
* @param {number} data
|
||||||
* @param {number} [addrLIP] is the LIP value at the time of the output
|
* @param {number} [addrIP] is the IP value at the time of the output
|
||||||
*/
|
*/
|
||||||
Bus.prototype.checkPortOutputNotify = function(port, size, data, addrLIP)
|
Bus.prototype.checkPortOutputNotify = function(port, size, data, addrIP)
|
||||||
{
|
{
|
||||||
var shift = 0;
|
var shift = 0;
|
||||||
|
|
||||||
|
|
@ -981,7 +1002,7 @@ Bus.prototype.checkPortOutputNotify = function(port, size, data, addrLIP)
|
||||||
|
|
||||||
if (aNotify !== undefined) {
|
if (aNotify !== undefined) {
|
||||||
if (aNotify[0]) {
|
if (aNotify[0]) {
|
||||||
aNotify[0](port, dataPort, addrLIP);
|
aNotify[0](port, dataPort, addrIP);
|
||||||
}
|
}
|
||||||
if (DEBUGGER && this.dbg && this.fPortOutputBreakAll != aNotify[1]) {
|
if (DEBUGGER && this.dbg && this.fPortOutputBreakAll != aNotify[1]) {
|
||||||
this.dbg.checkPortOutput(port, size, dataPort);
|
this.dbg.checkPortOutput(port, size, dataPort);
|
||||||
|
|
@ -989,7 +1010,7 @@ Bus.prototype.checkPortOutputNotify = function(port, size, data, addrLIP)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (DEBUGGER && this.dbg) {
|
if (DEBUGGER && this.dbg) {
|
||||||
this.dbg.messageIO(this, port, dataPort, addrLIP);
|
this.dbg.messageIO(this, port, dataPort, addrIP);
|
||||||
if (this.fPortOutputBreakAll) this.dbg.checkPortOutput(port, size, dataPort);
|
if (this.fPortOutputBreakAll) this.dbg.checkPortOutput(port, size, dataPort);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,14 +92,6 @@ function CPUSim(parmsCPU)
|
||||||
*/
|
*/
|
||||||
this.cLiveRegs = 0;
|
this.cLiveRegs = 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* We're just declaring aBusBlocks and associated Bus parameters here; they'll be initialized by initMemory()
|
|
||||||
* when the Bus is initialized.
|
|
||||||
*/
|
|
||||||
this.aBusBlocks = [];
|
|
||||||
this.nBusMask = 0;
|
|
||||||
this.nBlockShift = this.nBlockSize = this.nBlockLimit = this.nBlockTotal = this.nBlockMask = 0;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Array of halt handlers, if any (see addHaltCheck)
|
* Array of halt handlers, if any (see addHaltCheck)
|
||||||
*/
|
*/
|
||||||
|
|
@ -115,27 +107,6 @@ function CPUSim(parmsCPU)
|
||||||
|
|
||||||
Component.subclass(CPUSim, CPU);
|
Component.subclass(CPUSim, CPU);
|
||||||
|
|
||||||
/**
|
|
||||||
* initMemory(aBusBlocks, nBlockShift, nBusMask)
|
|
||||||
*
|
|
||||||
* Notification from Bus.initMemory(), giving us direct access to the entire memory space.
|
|
||||||
*
|
|
||||||
* @this {CPUSim}
|
|
||||||
* @param {Array} aBusBlocks
|
|
||||||
* @param {number} nBlockShift
|
|
||||||
* @param {number} nBusMask
|
|
||||||
*/
|
|
||||||
CPUSim.prototype.initMemory = function(aBusBlocks, nBlockShift, nBusMask)
|
|
||||||
{
|
|
||||||
this.aBusBlocks = aBusBlocks;
|
|
||||||
this.nBlockShift = nBlockShift;
|
|
||||||
this.nBlockSize = 1 << this.nBlockShift;
|
|
||||||
this.nBlockLimit = this.nBlockSize - 1;
|
|
||||||
this.nBlockTotal = aBusBlocks.length;
|
|
||||||
this.nBlockMask = this.nBlockTotal - 1;
|
|
||||||
this.nBusMask = nBusMask;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* addHaltCheck(fn)
|
* addHaltCheck(fn)
|
||||||
*
|
*
|
||||||
|
|
@ -149,36 +120,6 @@ CPUSim.prototype.addHaltCheck = function(fn)
|
||||||
this.afnHalt.push(fn);
|
this.afnHalt.push(fn);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* addMemBreak(addr, fWrite)
|
|
||||||
*
|
|
||||||
* @this {CPUSim}
|
|
||||||
* @param {number} addr
|
|
||||||
* @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint
|
|
||||||
*/
|
|
||||||
CPUSim.prototype.addMemBreak = function(addr, fWrite)
|
|
||||||
{
|
|
||||||
if (DEBUGGER) {
|
|
||||||
var iBlock = addr >>> this.nBlockShift;
|
|
||||||
this.aBusBlocks[iBlock].addBreakpoint(addr & this.nBlockLimit, fWrite);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* removeMemBreak(addr, fWrite)
|
|
||||||
*
|
|
||||||
* @this {CPUSim}
|
|
||||||
* @param {number} addr
|
|
||||||
* @param {boolean} fWrite is true for a memory write breakpoint, false for a memory read breakpoint
|
|
||||||
*/
|
|
||||||
CPUSim.prototype.removeMemBreak = function(addr, fWrite)
|
|
||||||
{
|
|
||||||
if (DEBUGGER) {
|
|
||||||
var iBlock = addr >>> this.nBlockShift;
|
|
||||||
this.aBusBlocks[iBlock].removeBreakpoint(addr & this.nBlockLimit, fWrite);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* initProcessor()
|
* initProcessor()
|
||||||
*
|
*
|
||||||
|
|
@ -889,7 +830,7 @@ CPUSim.prototype.xorByte = function(src)
|
||||||
*/
|
*/
|
||||||
CPUSim.prototype.getByte = function(addr)
|
CPUSim.prototype.getByte = function(addr)
|
||||||
{
|
{
|
||||||
return this.aBusBlocks[(addr & this.nBusMask) >>> this.nBlockShift].readByte(addr & this.nBlockLimit, addr);
|
return this.bus.getByte(addr);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -901,14 +842,7 @@ CPUSim.prototype.getByte = function(addr)
|
||||||
*/
|
*/
|
||||||
CPUSim.prototype.getWord = function(addr)
|
CPUSim.prototype.getWord = function(addr)
|
||||||
{
|
{
|
||||||
var off = addr & this.nBlockLimit;
|
return this.bus.getShort(addr);
|
||||||
var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
|
|
||||||
if (off < this.nBlockLimit) {
|
|
||||||
return this.aBusBlocks[iBlock].readShort(off, addr);
|
|
||||||
}
|
|
||||||
var w = this.aBusBlocks[iBlock].readByte(off, addr);
|
|
||||||
w |= this.aBusBlocks[(iBlock + 1) & this.nBlockMask].readByte(0, addr + 1) << 8;
|
|
||||||
return w;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -920,7 +854,7 @@ CPUSim.prototype.getWord = function(addr)
|
||||||
*/
|
*/
|
||||||
CPUSim.prototype.setByte = function(addr, b)
|
CPUSim.prototype.setByte = function(addr, b)
|
||||||
{
|
{
|
||||||
this.aBusBlocks[(addr & this.nBusMask) >>> this.nBlockShift].writeByte(addr & this.nBlockLimit, b & 0xff, addr);
|
this.bus.setByte(addr, b);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -932,14 +866,7 @@ CPUSim.prototype.setByte = function(addr, b)
|
||||||
*/
|
*/
|
||||||
CPUSim.prototype.setWord = function(addr, w)
|
CPUSim.prototype.setWord = function(addr, w)
|
||||||
{
|
{
|
||||||
var off = addr & this.nBlockLimit;
|
this.bus.setShort(addr, w);
|
||||||
var iBlock = (addr & this.nBusMask) >>> this.nBlockShift;
|
|
||||||
if (off < this.nBlockLimit) {
|
|
||||||
this.aBusBlocks[iBlock].writeShort(off, w & 0xffff, addr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.aBusBlocks[iBlock++].writeByte(off, w & 0xff, addr);
|
|
||||||
this.aBusBlocks[iBlock & this.nBlockMask].writeByte(0, (w >> 8) & 0xff, addr + 1);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1114,14 +1114,13 @@ if (DEBUGGER) {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dumpBlocks(aBlocks, sAddr, fLinear)
|
* dumpBlocks(aBlocks, sAddr)
|
||||||
*
|
*
|
||||||
* @this {Debugger}
|
* @this {Debugger}
|
||||||
* @param {Array} aBlocks
|
* @param {Array} aBlocks
|
||||||
* @param {string} [sAddr] (optional block address)
|
* @param {string} [sAddr] (optional block address)
|
||||||
* @param {boolean} [fLinear] (true if linear, physical otherwise)
|
|
||||||
*/
|
*/
|
||||||
Debugger.prototype.dumpBlocks = function(aBlocks, sAddr, fLinear)
|
Debugger.prototype.dumpBlocks = function(aBlocks, sAddr)
|
||||||
{
|
{
|
||||||
var addr = 0, i = 0, n = aBlocks.length;
|
var addr = 0, i = 0, n = aBlocks.length;
|
||||||
|
|
||||||
|
|
@ -1131,11 +1130,11 @@ if (DEBUGGER) {
|
||||||
this.println("invalid address: " + sAddr);
|
this.println("invalid address: " + sAddr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
i = addr >>> this.cpu.nBlockShift;
|
i = addr >>> this.bus.nBlockShift;
|
||||||
n = 1;
|
n = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.println("blockid " + (fLinear? "linear " : "physical") + " blockaddr used size type");
|
this.println("blockid physical blockaddr used size type");
|
||||||
this.println("-------- --------- ---------- ------ ------ ----");
|
this.println("-------- --------- ---------- ------ ------ ----");
|
||||||
|
|
||||||
var typePrev = -1, cPrev = 0;
|
var typePrev = -1, cPrev = 0;
|
||||||
|
|
@ -1147,12 +1146,12 @@ if (DEBUGGER) {
|
||||||
typePrev = block.type;
|
typePrev = block.type;
|
||||||
var sType = Memory.TYPE.NAMES[typePrev];
|
var sType = Memory.TYPE.NAMES[typePrev];
|
||||||
if (block) {
|
if (block) {
|
||||||
this.println(str.toHex(block.id) + " %" + str.toHex(i << this.cpu.nBlockShift) + " %%" + str.toHex(block.addr) + " " + str.toHexWord(block.used) + " " + str.toHexWord(block.size) + " " + sType);
|
this.println(str.toHex(block.id) + " %" + str.toHex(i << this.bus.nBlockShift) + " %%" + str.toHex(block.addr) + " " + str.toHexWord(block.used) + " " + str.toHexWord(block.size) + " " + sType);
|
||||||
}
|
}
|
||||||
if (typePrev != Memory.TYPE.NONE) typePrev = -1;
|
if (typePrev != Memory.TYPE.NONE) typePrev = -1;
|
||||||
cPrev = 0;
|
cPrev = 0;
|
||||||
}
|
}
|
||||||
addr += this.cpu.nBlockSize;
|
addr += this.bus.nBlockSize;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -1167,20 +1166,7 @@ if (DEBUGGER) {
|
||||||
*/
|
*/
|
||||||
Debugger.prototype.dumpBus = function(asArgs)
|
Debugger.prototype.dumpBus = function(asArgs)
|
||||||
{
|
{
|
||||||
this.dumpBlocks(this.cpu.aBusBlocks, asArgs[0]);
|
this.dumpBlocks(this.bus.aMemBlocks, asArgs[0]);
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* dumpMem(asArgs)
|
|
||||||
*
|
|
||||||
* Dumps page allocations.
|
|
||||||
*
|
|
||||||
* @this {Debugger}
|
|
||||||
* @param {Array.<string>} asArgs (asArgs[0] is an optional block address)
|
|
||||||
*/
|
|
||||||
Debugger.prototype.dumpMem = function(asArgs)
|
|
||||||
{
|
|
||||||
this.dumpBlocks(this.cpu.aMemBlocks, asArgs[0], this.cpu.aMemBlocks !== this.cpu.aBusBlocks);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -2122,14 +2108,14 @@ if (DEBUGGER) {
|
||||||
if (this.aBreakRead !== undefined) {
|
if (this.aBreakRead !== undefined) {
|
||||||
for (i = 1; i < this.aBreakRead.length; i++) {
|
for (i = 1; i < this.aBreakRead.length; i++) {
|
||||||
dbgAddr = this.aBreakRead[i];
|
dbgAddr = this.aBreakRead[i];
|
||||||
this.cpu.removeMemBreak(this.getAddr(dbgAddr), false);
|
this.bus.removeMemBreak(this.getAddr(dbgAddr), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.aBreakRead = ["br"];
|
this.aBreakRead = ["br"];
|
||||||
if (this.aBreakWrite !== undefined) {
|
if (this.aBreakWrite !== undefined) {
|
||||||
for (i = 1; i < this.aBreakWrite.length; i++) {
|
for (i = 1; i < this.aBreakWrite.length; i++) {
|
||||||
dbgAddr = this.aBreakWrite[i];
|
dbgAddr = this.aBreakWrite[i];
|
||||||
this.cpu.removeMemBreak(this.getAddr(dbgAddr), true);
|
this.bus.removeMemBreak(this.getAddr(dbgAddr), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.aBreakWrite = ["bw"];
|
this.aBreakWrite = ["bw"];
|
||||||
|
|
@ -2192,7 +2178,7 @@ if (DEBUGGER) {
|
||||||
this.println("invalid address: " + this.toHexAddr(dbgAddr));
|
this.println("invalid address: " + this.toHexAddr(dbgAddr));
|
||||||
fSuccess = false;
|
fSuccess = false;
|
||||||
} else {
|
} else {
|
||||||
this.cpu.addMemBreak(addr, aBreak == this.aBreakWrite);
|
this.bus.addMemBreak(addr, aBreak == this.aBreakWrite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2238,7 +2224,7 @@ if (DEBUGGER) {
|
||||||
}
|
}
|
||||||
aBreak.splice(i, 1);
|
aBreak.splice(i, 1);
|
||||||
if (aBreak != this.aBreakExec) {
|
if (aBreak != this.aBreakExec) {
|
||||||
this.cpu.removeMemBreak(addr, aBreak == this.aBreakWrite);
|
this.bus.removeMemBreak(addr, aBreak == this.aBreakWrite);
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* We'll mirror the logic in addBreakpoint() and leave the history buffer alone if this
|
* We'll mirror the logic in addBreakpoint() and leave the history buffer alone if this
|
||||||
|
|
@ -2275,8 +2261,6 @@ if (DEBUGGER) {
|
||||||
/**
|
/**
|
||||||
* printBreakpoint(aBreak, i, sAction)
|
* printBreakpoint(aBreak, i, sAction)
|
||||||
*
|
*
|
||||||
* TODO: We may need to start printing linear addresses also (if any), because segmented address can be ambiguous.
|
|
||||||
*
|
|
||||||
* @this {Debugger}
|
* @this {Debugger}
|
||||||
* @param {Array} aBreak
|
* @param {Array} aBreak
|
||||||
* @param {number} i
|
* @param {number} i
|
||||||
|
|
|
||||||
|
|
@ -56,14 +56,24 @@ if (NODE) {
|
||||||
* bufferCols: the width of a single frame buffer row, in pixels (eg, 256)
|
* bufferCols: the width of a single frame buffer row, in pixels (eg, 256)
|
||||||
* bufferRows: the number of frame buffer rows (eg, 224)
|
* bufferRows: the number of frame buffer rows (eg, 224)
|
||||||
* bufferBits: the number of bits per pixel (default is 1 if omitted)
|
* bufferBits: the number of bits per pixel (default is 1 if omitted)
|
||||||
* interruptRate: normally the same as (or some multiple of) the refreshRate (eg, 120)
|
* interruptRate: normally the same as (or some multiple of) refreshRate (eg, 120)
|
||||||
* refreshRate: how many times updateScreen() should be called per second (eg, 60)
|
* refreshRate: how many times updateScreen() should be performed per second (eg, 60)
|
||||||
*
|
*
|
||||||
* We record all the above values now, but we defer creation of the frame buffer until our initBus()
|
* We record all the above values now, but we defer creation of the frame buffer until our initBus()
|
||||||
* handler is called. At that point, we will also compute the extent of the frame buffer, determine the
|
* handler is called. At that point, we will also compute the extent of the frame buffer, determine the
|
||||||
* appropriate "cell" size (ie, the number of pixels that updateScreen() will fetch and process at once),
|
* appropriate "cell" size (ie, the number of pixels that updateScreen() will fetch and process at once),
|
||||||
* and allocate our cell cache.
|
* and allocate our cell cache.
|
||||||
*
|
*
|
||||||
|
* Why interruptRate in addition to refreshRate? A higher interrupt rate is required for Space Invaders,
|
||||||
|
* because even though the CRT refreshes at 60Hz, the CRT controller interrupts the CPU *twice* per
|
||||||
|
* refresh (once after the top half of the screen has been redrawn, and again after the bottom half has
|
||||||
|
* been redrawn), so we need an interrupt rate of 120Hz. We pass the higher rate on to the CPU, so that
|
||||||
|
* it will call updateScreen() more frequently, but we limit our screen updates to every *other* call.
|
||||||
|
*
|
||||||
|
* TODO: Consider alternatives to screenRotation; it's expedient, but I'm not sure how efficient it is,
|
||||||
|
* and it might be nice (especially for debugging) if we created our own rotated image buffer which we could
|
||||||
|
* then blast directly to the screen canvas.
|
||||||
|
*
|
||||||
* @constructor
|
* @constructor
|
||||||
* @extends Component
|
* @extends Component
|
||||||
* @param {Object} parmsVideo
|
* @param {Object} parmsVideo
|
||||||
|
|
|
||||||
|
|
@ -1,206 +1,206 @@
|
||||||
(function(){var m;function aa(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
|
(function(){var m;function aa(a,b){var c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
|
||||||
function q(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function r(a){return"0x"+q(a,4)}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function da(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
function q(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function r(a){return"0x"+q(a,4)}function ca(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function da(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
||||||
function ea(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(a,b){return(a+" ").slice(0,b)}function ia(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
|
function ea(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&","<":"<",">":">",'"':""","'":"'"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}function ha(a,b){return(a+" ").slice(0,b)}function ia(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
|
||||||
function ja(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ka=Date.now||function(){return+new Date};function la(){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 ja(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var h=d+e>>1,g;g=c(b,a[h]);0<g?d=h+1:(e=h,f=!g)}return f?d:~d}var ka=Date.now||function(){return+new Date};function la(){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 ma(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
|
function ma(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
|
||||||
function na(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
function na(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||||
typeof b){var l="",k;for(k in b)b.hasOwnProperty(k)&&(l&&(l+="&"),l+=k+"="+encodeURIComponent(b[k]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
typeof b){var l="",k;for(k in b)b.hasOwnProperty(k)&&(l&&(l+="&"),l+=k+"="+encodeURIComponent(b[k]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function oa(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||||
function pa(){return window?window.navigator.userAgent:""}function t(a){window&&window.alert(a)}function qa(a){var b=!1;window&&(b=window.confirm(a));return b}var ra=null;function sa(){if(null==ra){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}ra=a}return ra}
|
function pa(){return window?window.navigator.userAgent:""}function t(a){window&&window.alert(a)}function qa(a){var b=!1;window&&(b=window.confirm(a));return b}var ra=null;function sa(){if(null==ra){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}ra=a}return ra}
|
||||||
function ta(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function ua(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=pa();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 Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
function ta(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Aa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ba(a){if(window){var b=pa();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 Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||||
function Da(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ea={init:[],show:[],exit:[]},Fa=!1,Ga=!0;function Ia(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ja(a){Ea.init.push(a)}
|
function Da(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ea={init:[],show:[],exit:[]},Fa=!1,Ha=!0;function Ia(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ja(a){Ea.init.push(a)}
|
||||||
function Ka(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Pa(a){!Ga&&a?(Ga=!0,Fa&&Qa("init")):Ga=a}function Qa(a){Ea[a]&&Ka(Ea[a])}Ia("onload",function(){Fa=!0;Ka(Ea.init)});Ia("onpageshow",function(){Ka(Ea.show)});Ia(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Ka(Ea.exit)});
|
function Oa(a){if(Ha)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Pa(a){!Ha&&a?(Ha=!0,Fa&&Qa("init")):Ha=a}function Qa(a){Ea[a]&&Oa(Ea[a])}Ia("onload",function(){Fa=!0;Oa(Ea.init)});Ia("onpageshow",function(){Oa(Ea.show)});Ia(Ba("Opera")||Ba("iOS")?"onunload":"onbeforeunload",function(){Oa(Ea.exit)});
|
||||||
function v(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Db=b.comment;this.Rb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Hb=this.id.substr(0,b),this.ab=this.id.substr(b+1)):this.ab=this.id;this[a]=c;this.A={Qa:!1,Na:!1,tb:!1,ha:!1,Pa:!1};this.ob=null;this.A.Pa=!1;this.U={};this.F=null;this.ga=d||0;y.push(this)}var Ra=void 0,Sa={};
|
function v(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Eb=b.comment;this.Sb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Ib=this.id.substr(0,b),this.cb=this.id.substr(b+1)):this.cb=this.id;this[a]=c;this.A={Ra:!1,Oa:!1,vb:!1,ia:!1,Qa:!1};this.pb=null;this.A.Qa=!1;this.V={};this.F=null;this.ha=d||0;y.push(this)}var Ra=void 0,Sa={};
|
||||||
if(window){Ra||(Ra=window.location.search.substr(1));for(var Ta,Ua=/\+/g,Va=/([^&=]+)=?([^&]*)/g;Ta=Va.exec(Ra);)Sa[decodeURIComponent(Ta[1].replace(Ua," "))]=decodeURIComponent(Ta[2].replace(Ua," "))}function Wa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
if(window){Ra||(Ra=window.location.search.substr(1));for(var Ta,Ua=/\+/g,Va=/([^&=]+)=?([^&]*)/g;Ta=Va.exec(Ra);)Sa[decodeURIComponent(Ta[1].replace(Ua," "))]=decodeURIComponent(Ta[2].replace(Ua," "))}function Wa(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 z(a,b){b||(b=v);a.prototype=Wa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var y=[],Xa={};function Ya(a,b,c){Xa[a]&&b&&(Xa[a][b]=c)}function Za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
function z(a,b){b||(b=v);a.prototype=Wa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var y=[],Xa={};function Ya(a,b,c){Xa[a]&&b&&(Xa[a][b]=c)}function Za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<y.length;b++){var d=y[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||||
function $a(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
function bb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<y.length;d++)if(c)c==y[d]&&(c=null);else if(!(a!=y[d].type||b&&y[d].id.indexOf(b)))return y[d]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||||
function ab(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=B(h))&&g.binding&&a.qa(g.type,g.binding,h,g.value),k=l.length}}}}
|
function cb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=B(h))&&g.binding&&a.qa(g.type,g.binding,h,g.value),k=l.length}}}}
|
||||||
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},qa:function(a,b,c){switch(b){case "clear":return this.U[b]||(this.U[b]=c,c.onclick=function(a){return function(){a.U.print&&(a.U.print.value="")}}(this)),!0;case "print":return this.U[b]||(this.sa=this.U[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},qa:function(a,b,c){switch(b){case "clear":return this.V[b]||(this.V[b]=c,c.onclick=function(a){return function(){a.V.print&&(a.V.print.value="")}}(this)),!0;case "print":return this.V[b]||(this.ta=this.V[b]=c,c.value="",this.g=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.oa=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.ab+": "+a)},oa:function(a,b){b||t(a)},ya:function(){return this.A.ha=!0},xa:function(a,b){b&&(this.A.ha=!1);return!0}};function db(a,b,c,d,e,f){var h=!0;a.F&&(!0===h?h=0:null==h&&(h=a.ga),eb(a.F,a,b,c,d,e,f,h))}function fb(a,b){if(a.F){a===a.F?b|=0:b=b||a.ga;var c=a.F.ga&b;return!!b&&c===b||!!(c&a.F.Xb)}return!1}
|
this.oa=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},oa:function(a,b){b||t(a)},za:function(){return this.A.ia=!0},ya:function(a,b){b&&(this.A.ia=!1);return!0}};function db(a,b,c,d,e,f){var h=!0;a.F&&(!0===h?h=0:null==h&&(h=a.ha),eb(a.F,a,b,c,d,e,f,h))}function fb(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.Xb)}return!1}
|
||||||
function gb(a,b){if(a.A.tb)return a.A.Na&&(a.A.Na=!1),a.A.tb=!1;if(a.A.Pa)return a.g(a.toString()+" error"),!1;a.A.Na=b;return a.A.Na}function hb(a,b){a.A.Na&&(b?a.A.tb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Na}function E(a){if(!a.A.Pa&&(a.A.Qa=!0,a.A.Qa)){var b=a.ob;a.ob=null;b&&b()}}function ib(a,b){b&&(a.A.Qa?b():a.ob=b);return a.A.Qa}function jb(a,b){a.A.Pa=!0;a.oa(b)}
|
function gb(a,b){if(a.A.vb)return a.A.Oa&&(a.A.Oa=!1),a.A.vb=!1;if(a.A.Qa)return a.g(a.toString()+" error"),!1;a.A.Oa=b;return a.A.Oa}function hb(a,b){a.A.Oa&&(b?a.A.vb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Oa}function E(a){if(!a.A.Qa&&(a.A.Ra=!0,a.A.Ra)){var b=a.pb;a.pb=null;b&&b()}}function ib(a,b){b&&(a.A.Ra?b():a.pb=b);return a.A.Ra}function jb(a,b){a.A.Qa=!0;a.oa(b)}
|
||||||
var kb="undefined"!==typeof ArrayBuffer,lb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
var kb="undefined"!==typeof ArrayBuffer,lb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function mb(a){v.call(this,"Panel",a,mb)}z(mb);m=mb.prototype;m.qa=function(a,b,c,d){return this.w&&this.w.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.u&&this.u.qa(a,b,c,d)||this.F&&this.F.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};m.Ba=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.u=nb(a,"Keyboard")};m.ya=function(a,b){b||ob();return!0};m.xa=function(){return!0};m.ta=function(){};
|
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function mb(a){v.call(this,"Panel",a,mb)}z(mb);m=mb.prototype;m.qa=function(a,b,c,d){return this.w&&this.w.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.u&&this.u.qa(a,b,c,d)||this.F&&this.F.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};m.Da=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.u=nb(a,"Keyboard")};m.za=function(a,b){b||ob();return!0};m.ya=function(){return!0};m.va=function(){};
|
||||||
function ob(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<y.length;h++)if(y[h].id===f){f=y[h];break a}f=null}f||(a=!0,f=new mb(e));ab(f,d);a&&E(f)}}Ja(ob);
|
function ob(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=B(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<y.length;h++)if(y[h].id===f){f=y[h];break a}f=null}f||(a=!0,f=new mb(e));cb(f,d);a&&E(f)}}Ja(ob);
|
||||||
function pb(a,b,c){v.call(this,"Bus",a,pb);this.b=b;this.F=c;this.M=a.busWidth||16;this.X=Math.pow(2,this.M);this.G=this.X-1|0;this.aa=16>=this.M?10:20>=this.M?12:24>=this.M?14:15;this.la=1<<this.aa;this.Z=this.la>>2;this.D=this.la-1;this.K=this.X/this.la|0;this.V=this.K-1;this.w=[];this.u=[];this.H=this.J=!1;this.ba=[];this.ca=[];a=new F;qb(a,this.F);this.B=Array(this.K);for(b=0;b<this.K;b++)this.B[b]=a;a=this.b;b=this.B;c=this.aa;var d=this.G;a.na=b;a.aa=c;a.la=1<<a.aa;a.G=a.la-1;a.Z=b.length;a.X=
|
function pb(a,b,c){v.call(this,"Bus",a,pb);this.b=b;this.F=c;this.J=a.busWidth||16;this.X=Math.pow(2,this.J);this.D=this.X-1|0;this.ea=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.ua=1<<this.ea;this.Y=this.ua>>2;this.B=this.ua-1;this.M=this.X/this.ua|0;this.K=this.M-1;this.w=[];this.u=[];this.G=this.I=!1;this.aa=[];this.ba=[];a=new F;qb(a,this.F);this.T=Array(this.M);for(b=0;b<this.M;b++)this.T[b]=a;E(this)}z(pb);m=pb.prototype;m.reset=function(){};m.za=function(a,b){b||this.reset();return!0};
|
||||||
a.Z-1;a.K=d;E(this)}z(pb);pb.prototype.reset=function(){};pb.prototype.ya=function(a,b){b||this.reset();return!0};function rb(a,b,c,d){for(var e=b>>>a.aa;0<c&&e<a.B.length;){var f=a.B[e],h=e*a.la,g=a.la-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.C)return f.kb+=f.C-b,f.C=b,!0;if(b>=f.C+f.kb){g=f.size-(b-h);g>c&&(g=c);f.kb=b-f.C+g;b=h+a.la;c-=g;e++;continue}}return sb(1,b,c)}b=new F(b,g,a.la,d);qb(b,a.F,f);a.B[e++]=b;b=h+a.la;c-=g}return 0>=c?!0:sb(2,b,c)}
|
function rb(a,b,c,d){for(var e=b>>>a.ea;0<c&&e<a.T.length;){var f=a.T[e],h=e*a.ua,g=a.ua-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.C)return f.mb+=f.C-b,f.C=b,!0;if(b>=f.C+f.mb){g=f.size-(b-h);g>c&&(g=c);f.mb=b-f.C+g;b=h+a.ua;c-=g;e++;continue}}return sb(1,b,c)}b=new F(b,g,a.ua,d);qb(b,a.F,f);a.T[e++]=b;b=h+a.ua;c-=g}return 0>=c?!0:sb(2,b,c)}m.W=function(a){return this.T[(a&this.D)>>>this.ea].Za(a&this.B,a)};function tb(a,b){return a.T[(b&a.D)>>>a.ea].kb(b&a.B,b)}
|
||||||
pb.prototype.W=function(a){return this.B[(a&this.G)>>>this.aa].Ka(a&this.D,a)};function tb(a,b){return a.B[(b&a.G)>>>a.aa].ib(b&a.D,b)}function ub(a,b){var c=b&a.D,d=(b&a.G)>>>a.aa;return c!=a.D?a.B[d].yb(c,b):a.B[d++].ib(c,b)|a.B[d&a.V].ib(0,b+1)<<8}function vb(a,b,c){a.B[(b&a.G)>>>a.aa].lb(b&a.D,c&255,b)}function wb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}
|
m.Ca=function(a){var b=a&this.B,c=(a&this.D)>>>this.ea;return b!=this.B?this.T[c].Tb(b,a):this.T[c++].Za(b,a)|this.T[c&this.K].Za(0,a+1)<<8};function ub(a,b){var c=b&a.B,d=(b&a.D)>>>a.ea;return c!=a.B?a.T[d].Ab(c,b):a.T[d++].kb(c,b)|a.T[d&a.K].kb(0,b+1)<<8}m.fa=function(a,b){this.T[(a&this.D)>>>this.ea].ab(a&this.B,b&255,a)};function vb(a,b,c){a.T[(b&a.D)>>>a.ea].nb(b&a.B,c&255,b)}
|
||||||
function xb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.ba[b]||1,l=1==g?255:2==g?65535:-1,k=l;void 0!==h?(h[0]&&(k=h[0](b,c),void 0===k?k=l:k&=l),a.F&&a.H!=h[1]&&Gb(a.F,b,k)):a.F&&(eb(a.F,a,b,null,c),a.H&&Gb(a.F,b,k));e|=k<<f;f+=g<<3;b+=g;d-=g}return e}function Hb(a,b){if(void 0===b)return a.J=!a.J,a.J;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
|
m.sb=function(a,b){var c=a&this.B,d=(a&this.D)>>>this.ea;c!=this.B?this.T[d].Vb(c,b&65535,a):(this.T[d++].ab(c,b&255,a),this.T[d&this.K].ab(0,b>>8&255,a+1))};function Eb(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}
|
||||||
function Ib(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.u[b],g=a.ca[b]||1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h){if(h[0])h[0](b,l,d);a.F&&a.J!=h[1]&&Jb(a.F,b,l)}else a.F&&(eb(a.F,a,b,l,d),a.J&&Jb(a.F,b,l));f+=g<<3;b+=g;e-=g}}function sb(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Kb;if(kb){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 Fb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.aa[b]||1,l=1==g?255:2==g?65535:-1,k=l;void 0!==h?(h[0]&&(k=h[0](b,c),void 0===k?k=l:k&=l),a.F&&a.G!=h[1]&&Gb(a.F,b,k)):a.F&&(eb(a.F,a,b,null,c),a.G&&Gb(a.F,b,k));e|=k<<f;f+=g<<3;b+=g;d-=g}return e}function Hb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
|
||||||
function F(a,b,c,d){this.id=Nb+=2;this.b=null;this.C=a;this.kb=b;this.size=c||0;this.type=d||Ob;this.w=d==Pb;qb(this);this.va=this.Jb=!1;if(c)if(kb)this.G=new ArrayBuffer(c),this.H=new DataView(this.G,0,c),this.B=new Uint8Array(this.G,0,c),this.K=new Uint16Array(this.G,0,c>>1),this.b=new Int32Array(this.G,0,c>>2),Qb(this,Mb?Rb:Sb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Qb(this,Tb)}else Qb(this)}var Ob=0,Pb=2,Ub=["NONE","RAM","ROM","VIDEO","H/W"],Nb=0;
|
function Ib(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.u[b],g=a.ba[b]||1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h){if(h[0])h[0](b,l,d);a.F&&a.I!=h[1]&&Jb(a.F,b,l)}else a.F&&(eb(a.F,a,b,l,d),a.I&&Jb(a.F,b,l));f+=g<<3;b+=g;e-=g}}function sb(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Kb;if(kb){var Lb=new ArrayBuffer(2);(new DataView(Lb)).setUint16(0,256,!0);Kb=256===(new Uint16Array(Lb))[0]}else Kb=!1;var Mb=Kb;
|
||||||
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(kb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(kb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.va=!0}return!1},Fa:function(a,b){b?0===this.u++&&Vb(this,Wb,!1):0===this.U++&&Xb(this,Wb,!1)},M:function(){this.F&&fb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.C),!0);
|
function F(a,b,c,d){this.id=Nb+=2;this.b=null;this.C=a;this.mb=b;this.size=c||0;this.type=d||Ob;this.w=d==Pb;qb(this);this.wa=this.Kb=!1;if(c)if(kb)this.G=new ArrayBuffer(c),this.I=new DataView(this.G,0,c),this.B=new Uint8Array(this.G,0,c),this.K=new Uint16Array(this.G,0,c>>1),this.b=new Int32Array(this.G,0,c>>2),Qb(this,Mb?Rb:Sb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Qb(this,Tb)}else Qb(this)}var Ob=0,Pb=2,Ub=["NONE","RAM","ROM","VIDEO","H/W"],Nb=0;
|
||||||
return 255},D:function(a,b){this.F&&fb(this.F,129)&&this.F.message("attempt to write "+r(b)+" to invalid block %"+q(this.C),!0)},V:function(a,b){return this.Ka(a++,b++)|this.Ka(a,b)<<8},J:function(a,b,c){this.Za(a++,b&255,c++);this.Za(a,b>>8,c)},ca:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Da:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.va=!0},ab:function(a,
|
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(kb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.I.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(kb)for(b=0;b<a.length;b++)this.I.setInt32(b<<2,a[b],!0);else this.b=a;return this.wa=!0}return!1},Ha:function(a,b){b?0===this.u++&&Vb(this,Wb,!1):0===this.V++&&Xb(this,Wb,!1)},M:function(){this.F&&fb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.C),!0);
|
||||||
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.va=!0},Z:function(a,b){if(this.F&&null!=this.C){var c=this.F;Yb(c,this.C+a,1,c.ba)&&c.ea(!0)}return this.ib(a,b)},ja:function(a,b){if(this.F&&null!=this.C){var c=this.F;Yb(c,this.C+a,2,c.ba)&&c.ea(!0)}return this.yb(a,b)},Aa:function(a,b,c){if(this.F&&null!=this.C){var d=this.F;Yb(d,this.C+a,1,d.H)&&d.ea(!0)}this.w?this.D(a,b,c):this.lb(a,b,c)},Ma:function(a,
|
return 255},D:function(a,b){this.F&&fb(this.F,129)&&this.F.message("attempt to write "+r(b)+" to invalid block %"+q(this.C),!0)},X:function(a,b){return this.Za(a++,b++)|this.Za(a,b)<<8},J:function(a,b,c){this.ab(a++,b&255,c++);this.ab(a,b>>8,c)},ga:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Fa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.wa=!0},cb:function(a,
|
||||||
b,c){if(this.F&&null!=this.C){var d=this.F;Yb(d,this.C+a,2,d.H)&&d.ea(!0)}this.w?this.D(a,b,c):this.zb(a,b,c)},X:function(a){return this.B[a]},ba:function(a){return this.B[a]},fa:function(a){return this.H.getUint16(a,!0)},ma:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},ua:function(a,b){this.B[a]=b;this.va=!0},Ca:function(a,b){this.B[a]=b;this.va=!0},Ea:function(a,b){this.H.setUint16(a,b,!0);this.va=!0},$a:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.va=!0}};
|
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.wa=!0},aa:function(a,b){if(this.F&&null!=this.C){var c=this.F;Yb(c,this.C+a,1,c.ba)&&c.da(!0)}return this.kb(a,b)},ma:function(a,b){if(this.F&&null!=this.C){var c=this.F;Yb(c,this.C+a,2,c.ba)&&c.da(!0)}return this.Ab(a,b)},Ba:function(a,b,c){if(this.F&&null!=this.C){var d=this.F;Yb(d,this.C+a,1,d.I)&&d.da(!0)}this.w?this.D(a,b,c):this.nb(a,b,c)},Na:function(a,
|
||||||
function qb(a,b,c){a.F=b;a.U=a.u=0;c&&((a.U=c.U)&&Xb(a,Wb,!1),(a.u=c.u)&&Vb(a,Wb,!1))}function Zb(a,b){b?0===--a.u&&(a.Za=a.w?a.D:a.lb,a.Ub=a.w?a.J:a.zb):0===--a.U&&(a.Ka=a.ib,a.Sb=a.yb)}function Vb(a,b,c){c&&a.u||(a.Za=!a.w&&b[2]||a.D,a.Ub=!a.w&&b[3]||a.J);if(c||void 0===c)a.lb=b[2]||a.D,a.zb=b[3]||a.J}function Xb(a,b,c){c&&a.U||(a.Ka=b[0]||a.M,a.Sb=b[1]||a.V);if(c||void 0===c)a.ib=b[0]||a.M,a.yb=b[1]||a.V}function Qb(a,b){b||(b=$b);Xb(a,b,void 0);Vb(a,b,void 0)}
|
b,c){if(this.F&&null!=this.C){var d=this.F;Yb(d,this.C+a,2,d.I)&&d.da(!0)}this.w?this.D(a,b,c):this.Bb(a,b,c)},Y:function(a){return this.B[a]},ba:function(a){return this.B[a]},la:function(a){return this.I.getUint16(a,!0)},na:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},sa:function(a,b){this.B[a]=b;this.wa=!0},Ea:function(a,b){this.B[a]=b;this.wa=!0},Ga:function(a,b){this.I.setUint16(a,b,!0);this.wa=!0},bb:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.wa=!0}};
|
||||||
var $b=[],Tb=[F.prototype.ca,F.prototype.ra,F.prototype.Da,F.prototype.ab],Wb=[F.prototype.Z,F.prototype.ja,F.prototype.Aa,F.prototype.Ma];if(kb)var Sb=[F.prototype.X,F.prototype.fa,F.prototype.ua,F.prototype.Ea],Rb=[F.prototype.ba,F.prototype.ma,F.prototype.Ca,F.prototype.$a];
|
function qb(a,b,c){a.F=b;a.V=a.u=0;c&&((a.V=c.V)&&Xb(a,Wb,!1),(a.u=c.u)&&Vb(a,Wb,!1))}function Zb(a,b){b?0===--a.u&&(a.ab=a.w?a.D:a.nb,a.Vb=a.w?a.J:a.Bb):0===--a.V&&(a.Za=a.kb,a.Tb=a.Ab)}function Vb(a,b,c){c&&a.u||(a.ab=!a.w&&b[2]||a.D,a.Vb=!a.w&&b[3]||a.J);if(c||void 0===c)a.nb=b[2]||a.D,a.Bb=b[3]||a.J}function Xb(a,b,c){c&&a.V||(a.Za=b[0]||a.M,a.Tb=b[1]||a.X);if(c||void 0===c)a.kb=b[0]||a.M,a.Ab=b[1]||a.X}function Qb(a,b){b||(b=$b);Xb(a,b,void 0);Vb(a,b,void 0)}
|
||||||
function ac(a,b){v.call(this,"CPU",a,ac,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Xa=c;this.i.qb=0;this.i.Ja=d;this.i.vb=Math.round(this.i.Xa/1E4)/100;this.i.Ha=this.i.vb*this.i.Ja;this.A.ka=!1;this.A.ub=!1;this.A.Ib=a.autoStart;this.A.Kb=!1;this.A.Oa=!1;this.i.bb=this.i.Ua=0;this.i.cb=a.csStart;this.i.Ta=a.csInterval;this.i.Va=a.csStop;this.ja=this.La.bind(this);E(this)}z(ac);var bc=["power","reset"];m=ac.prototype;
|
var $b=[],Tb=[F.prototype.ga,F.prototype.ra,F.prototype.Fa,F.prototype.cb],Wb=[F.prototype.aa,F.prototype.ma,F.prototype.Ba,F.prototype.Na];if(kb)var Sb=[F.prototype.Y,F.prototype.la,F.prototype.sa,F.prototype.Ga],Rb=[F.prototype.ba,F.prototype.na,F.prototype.Ea,F.prototype.bb];
|
||||||
m.Ba=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<bc.length;b++)(c=this.U[bc[b]])&&this.w.qa(null,bc[b],c);this.Aa=(b=nb(a,"Video"))&&Math.max(b.Aa,b.Zb)||60;this.V=nb(a,"ChipSet");a=cc(a,"autoStart");null!=a&&(this.A.Ib="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){this.i.qb=0};m.save=function(){return null};m.restore=function(){return!1};
|
function ac(a,b){v.call(this,"CPU",a,ac,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Ya=c;this.i.rb=0;this.i.La=d;this.i.xb=Math.round(this.i.Ya/1E4)/100;this.i.Ja=this.i.xb*this.i.La;this.A.ka=!1;this.A.wb=!1;this.A.Jb=a.autoStart;this.A.Lb=!1;this.A.Pa=!1;this.i.eb=this.i.Va=0;this.i.fb=a.csStart;this.i.Ua=a.csInterval;this.i.Wa=a.csStop;this.aa=this.Ma.bind(this);E(this)}z(ac);var bc=["power","reset"];m=ac.prototype;
|
||||||
m.ya=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.F){var c=this.F;c.g("Type ? for help with PC8080 Debugger commands");c.ta();if(c.rb){var d=c.rb;c.rb=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};m.xa=function(a){return a?this.save():!0};function sc(a){(a.A.Ib||!a.F&&void 0===a.U.run)&&a.La(!0)}m.Nb=function(){return 0};
|
m.Da=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<bc.length;b++)(c=this.V[bc[b]])&&this.w.qa(null,bc[b],c);this.Ba=(b=nb(a,"Video"))&&Math.max(b.Ba,b.Zb)||60;this.K=nb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.A.Jb="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){this.i.rb=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||||
function pc(a){void 0===a.i.cb&&(a.i.cb=0);void 0===a.i.Ta&&(a.i.Ta=-1);void 0===a.i.Va&&(a.i.Va=-1);a.A.Oa=0<=a.i.cb&&0<a.i.Ta;a.A.Oa&&(a.i.bb=0,a.i.Ua=a.i.cb-a.J)}function tc(a,b){if(a.A.Oa){var c=!1;a.i.bb=a.i.bb+a.Nb()|0;a.i.Ua-=b;0>=a.i.Ua&&(a.i.Ua+=a.i.Ta,c=!0);0<=a.i.Va&&a.i.Va<=uc(a)&&(a.i.Ta=a.i.Va=-1,pc(a),a.ea(),c=!0);c&&a.g(uc(a)+" cycles: checksum="+q(a.i.bb))}}
|
m.za=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.F){var c=this.F;c.g("Type ? for help with PC8080 Debugger commands");c.va();if(c.tb){var d=c.tb;c.tb=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};m.ya=function(a){return a?this.save():!0};function sc(a){(a.A.Jb||!a.F&&void 0===a.V.run)&&a.Ma(!0)}m.Ob=function(){return 0};
|
||||||
m.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.U[b]=c;a=!0;break;case "run":this.U[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.A.ha)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.Qa);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.ha);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.Qa?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.A.ka?d.ea(!0):d.La(!0))};a=
|
function pc(a){void 0===a.i.fb&&(a.i.fb=0);void 0===a.i.Ua&&(a.i.Ua=-1);void 0===a.i.Wa&&(a.i.Wa=-1);a.A.Pa=0<=a.i.fb&&0<a.i.Ua;a.A.Pa&&(a.i.eb=0,a.i.Va=a.i.fb-a.I)}function tc(a,b){if(a.A.Pa){var c=!1;a.i.eb=a.i.eb+a.Ob()|0;a.i.Va-=b;0>=a.i.Va&&(a.i.Va+=a.i.Ua,c=!0);0<=a.i.Wa&&a.i.Wa<=uc(a)&&(a.i.Ua=a.i.Wa=-1,pc(a),a.da(),c=!0);c&&a.g(uc(a)+" cycles: checksum="+q(a.i.eb))}}
|
||||||
!0;break;case "speed":this.U[b]=c;a=!0;break;case "setSpeed":this.U[b]=c,c.onclick=function(){vc(d,d.i.Ja<<1,!0)},c.textContent=this.i.Ha.toFixed(2)+"Mhz",a=!0}return a};function wc(a,b,c){a.J+=b;c&&(a.D=a.b=0)}
|
m.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.V[b]=c;a=!0;break;case "run":this.V[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.A.ia)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.Ra);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.ia);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.Ra?"powered yet":"ready yet"+(b.pb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.ka?d.da(!0):d.Ma(!0))};a=
|
||||||
function xc(a,b){var c=30;c<a.Aa&&(c=a.Aa);2>c&&(c=2);var d=1;b&&1<a.i.Ja&&a.i.Ga&&(d=a.i.Ga/a.i.vb);a.i.Ob=Math.round(1E3/30);a.i.hc=Math.floor(a.i.Xa/c*d);a.i.wb=Math.floor(a.i.Xa/30*d);a.i.Qb=Math.floor(a.i.Xa/a.Aa*d);a.i.Pb=Math.floor(a.i.Xa/2*d);b||(a.i.Wa=a.i.wb,a.i.fb=a.i.Qb,a.i.eb=a.i.Pb);a.i.xb=0}function uc(a){return a.J+a.H+a.D-a.b}function oc(a){a.i.Ga=0;a.J=a.H=a.D=a.b=0;pc(a);vc(a,1)}
|
!0;break;case "speed":this.V[b]=c;a=!0;break;case "setSpeed":this.V[b]=c,c.onclick=function(){vc(d,d.i.La<<1,!0)},c.textContent=this.i.Ja.toFixed(2)+"Mhz",a=!0}return a};function wc(a,b,c){a.I+=b;c&&(a.D=a.b=0)}
|
||||||
function vc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ga/a.i.Ha?b=1:d=!0;a.i.Ja=b;b=a.i.vb*a.i.Ja;if(a.i.Ha!=b){a.i.Ha=b;b=a.i.Ha.toFixed(2)+"Mhz";var e=a.U.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.jb()}wc(a,a.H);a.H=0;a.i.Sa=ka();a.i.Ia=0;xc(a);return d}
|
function xc(a,b){var c=30;c<a.Ba&&(c=a.Ba);2>c&&(c=2);var d=1;b&&1<a.i.La&&a.i.Ia&&(d=a.i.Ia/a.i.xb);a.i.Pb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.Ya/c*d);a.i.yb=Math.floor(a.i.Ya/30*d);a.i.Rb=Math.floor(a.i.Ya/a.Ba*d);a.i.Qb=Math.floor(a.i.Ya/2*d);b||(a.i.Xa=a.i.yb,a.i.hb=a.i.Rb,a.i.gb=a.i.Qb);a.i.zb=0}function uc(a){return a.I+a.G+a.D-a.b}function oc(a){a.i.Ia=0;a.I=a.G=a.D=a.b=0;pc(a);vc(a,1)}
|
||||||
m.La=function(a){if(gb(this,!0)){if(!this.A.ka){vc(this);this.w&&this.w.start(this.i.Sa,uc(this));this.A.ka=!0;this.A.ub=!0;this.V&&this.V.start();var b=this.U.run;b&&(b.textContent="Halt");this.w&&(this.w.ta(!0),a&&this.w.jb(!0))}this.i.xb>=this.i.Xa&&xc(this,!0);this.i.gb=0;this.i.pb=ka();this.i.Ia&&(a=this.i.pb-this.i.Ia,a>this.i.Ob&&(this.i.Sa+=a,this.i.Sa>this.i.pb&&(this.i.Sa=this.i.pb)));try{do{var c=this.A.Oa?1:this.i.hc;try{this.Ya(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.D-
|
function vc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ia/a.i.Ja?b=1:d=!0;a.i.La=b;b=a.i.xb*a.i.La;if(a.i.Ja!=b){a.i.Ja=b;b=a.i.Ja.toFixed(2)+"Mhz";var e=a.V.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.lb()}wc(a,a.G);a.G=0;a.i.Ta=ka();a.i.Ka=0;xc(a);return d}
|
||||||
this.b;this.H+=d;this.i.gb+=d;wc(this,0,!0);tc(this,d);this.i.fb-=d;0>=this.i.fb&&(this.i.fb+=this.i.Qb,this.w&&yc(this.w,this.i.qb++),this.i.qb>this.Aa&&(this.i.qb=0));this.i.eb-=d;0>=this.i.eb&&(this.i.eb+=this.i.Pb,this.w&&this.w.ta());this.i.Wa-=d;if(0>=this.i.Wa){this.i.Wa+=this.i.wb;break}}while(this.A.ka)}catch(e){this.ea();rc(this);this.w&&this.w.stop(ka(),uc(this));gb(this,!1);jb(this,e.stack||e.message);return}c=setTimeout;d=this.ja;this.i.Ia=ka();a=this.i.Ob;this.i.gb&&(a=Math.round(a*
|
m.Ma=function(a){if(gb(this,!0)){if(!this.A.ka){vc(this);this.w&&this.w.start(this.i.Ta,uc(this));this.A.ka=!0;this.A.wb=!0;this.K&&this.K.start();var b=this.V.run;b&&(b.textContent="Halt");this.w&&(this.w.va(!0),a&&this.w.lb(!0))}this.i.zb>=this.i.Ya&&xc(this,!0);this.i.ib=0;this.i.qb=ka();this.i.Ka&&(a=this.i.qb-this.i.Ka,a>this.i.Pb&&(this.i.Ta+=a,this.i.Ta>this.i.qb&&(this.i.Ta=this.i.qb)));try{do{var c=this.A.Pa?1:this.i.hc;try{this.$a(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.D-
|
||||||
this.i.gb/this.i.wb));a-=this.i.Ia-this.i.pb;if(b=this.i.Ia-this.i.Sa)this.i.Ga=Math.round(this.H/(10*b))/100,864E5<=b&&(this.J=0,vc(this));if(0>a||this.i.Ga<this.i.Ha)a=0;this.i.xb+=this.i.gb;this.i.Ia+=a;c(d,a)}else rc(this),this.w&&this.w.stop(ka(),uc(this))};m.Ya=function(){return 0};m.ea=function(a){hb(this,!0);this.D-=this.b;this.b=0;wc(this,this.H);this.H=0;if(this.A.ka){this.A.ka=!1;this.V&&this.V.stop();var b=this.U.run;b&&(b.textContent="Run")}this.A.nb=a};
|
this.b;this.G+=d;this.i.ib+=d;wc(this,0,!0);tc(this,d);this.i.hb-=d;0>=this.i.hb&&(this.i.hb+=this.i.Rb,this.w&&yc(this.w,this.i.rb++),this.i.rb>this.Ba&&(this.i.rb=0));this.i.gb-=d;0>=this.i.gb&&(this.i.gb+=this.i.Qb,this.w&&this.w.va());this.i.Xa-=d;if(0>=this.i.Xa){this.i.Xa+=this.i.yb;break}}while(this.A.ka)}catch(e){this.da();rc(this);this.w&&this.w.stop(ka(),uc(this));gb(this,!1);jb(this,e.stack||e.message);return}c=setTimeout;d=this.aa;this.i.Ka=ka();a=this.i.Pb;this.i.ib&&(a=Math.round(a*
|
||||||
function rc(a,b){a.w&&(yc(a.w,-1),a.w.ta(b))}function zc(a){this.Ra=a.model||8080;ac.call(this,a,1E6);this.ba=Ac;oc(this);this.A.nb=this.A.Yb=!1;this.fa=0;this.na=[];this.aa=this.la=this.G=this.Z=this.X=this.K=0;this.M=[];this.ca=0;Bc(this)}z(zc,ac);function Cc(a,b){a.M.push(b)}m=zc.prototype;m.reset=function(){this.A.ka&&this.ea();Bc(this);oc(this);this.A.Pa=!1;this.parent.reset.call(this)};function Bc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.T=0;a.da=0;H(a,a.ca);Dc(a,0);a.u=0}
|
this.i.ib/this.i.yb));a-=this.i.Ka-this.i.qb;if(b=this.i.Ka-this.i.Ta)this.i.Ia=Math.round(this.G/(10*b))/100,864E5<=b&&(this.I=0,vc(this));if(0>a||this.i.Ia<this.i.Ja)a=0;this.i.zb+=this.i.ib;this.i.Ka+=a;c(d,a)}else rc(this),this.w&&this.w.stop(ka(),uc(this))};m.$a=function(){return 0};m.da=function(a){hb(this,!0);this.D-=this.b;this.b=0;wc(this,this.G);this.G=0;if(this.A.ka){this.A.ka=!1;this.K&&this.K.stop();var b=this.V.run;b&&(b.textContent="Run")}this.A.ob=a};
|
||||||
function Ec(a,b){a.ca=b;H(a,b)}m.Nb=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.T|0;return a=a+this.da+this.L+Fc(this)|0};
|
function rc(a,b){a.w&&(yc(a.w,-1),a.w.va(b))}function zc(a){this.Sa=a.model||8080;ac.call(this,a,1E6);this.M=Ac;oc(this);this.A.ob=this.A.Yb=!1;this.Y=0;this.J=[];this.X=0;Bc(this)}z(zc,ac);function Cc(a,b){a.J.push(b)}m=zc.prototype;m.reset=function(){this.A.ka&&this.da();Bc(this);oc(this);this.A.Qa=!1;this.parent.reset.call(this)};function Bc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.U=0;a.ca=0;H(a,a.X);Dc(a,0);a.u=0}function Ec(a,b){a.X=b;H(a,b)}
|
||||||
m.save=function(){var a=new Gc(this);I(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.T,this.da,this.L,Fc(this)]);I(a,1,[this.u,this.J,this.i.Ja]);for(var b=this.B,c=0,d=[],e=0;e<b.K;e++){var f=b.B[e];if(f.va||f.Jb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;k[l++]=p-g;k[l++]=n;g=p}if(k.length<f.length){f=k;break a}}d[h]=f}}I(a,2,d);return a.data()};
|
m.Ob=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.U|0;return a=a+this.ca+this.L+Fc(this)|0};
|
||||||
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.T=b[6];this.da=b[7]&65535;H(this,b[8]);Dc(this,b[9]);b=a[1];this.u=b[0];this.J=b[1];vc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.Z){for(var f=0,h=Array(b.Z),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.B[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
m.save=function(){var a=new I(this);J(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.U,this.ca,this.L,Fc(this)]);J(a,1,[this.u,this.I,this.i.La]);for(var b=this.B,c=0,d=[],e=0;e<b.M;e++){var f=b.T[e];if(f.wa||f.Kb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;k[l++]=p-g;k[l++]=n;g=p}if(k.length<f.length){f=k;break a}}d[h]=f}}J(a,2,d);return a.data()};
|
||||||
m.qa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.U[b]=c;this.fa++;d=!0;break;default:d=this.parent.qa.call(this,a,b,c)}return d};function Hc(a){return a.N<<8|a.O}function Ic(a,b){a.N=b>>8&255;a.O=b&255}function Jc(a){return a.P<<8|a.R}function Kc(a,b){a.P=b>>8&255;a.R=b&255}function J(a){return a.S<<8|a.T}
|
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.U=b[6];this.ca=b[7]&65535;H(this,b[8]);Dc(this,b[9]);b=a[1];this.u=b[0];this.I=b[1];vc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.Y){for(var f=0,h=Array(b.Y),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.T[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
function Lc(a,b){a.S=b>>8&255;a.T=b&255}function H(a,b){a.L=b&65535}function Mc(a){return a.I&256?1:0}function Nc(a){return lb[a.Y&255]?4:0}function Oc(a){return(a.Y^a.ia)&16?16:0}function Pc(a){return a.I&255?0:64}function Qc(a){return a.Y&128?128:0}function Fc(a){return a.pa&-214|Qc(a)|Pc(a)|Oc(a)|Nc(a)|Mc(a)}function Dc(a,b){a.I=a.Y=a.ia=0;b&1&&(a.I|=256);b&4||(a.Y|=1);b&16&&(a.ia|=16);b&64||(a.I|=255);b&128&&(a.Y^=192);a.pa=a.pa&-513|b&512|2}
|
m.qa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.V[b]=c;this.Y++;d=!0;break;default:d=this.parent.qa.call(this,a,b,c)}return d};function Gc(a){return a.N<<8|a.O}function Hc(a,b){a.N=b>>8&255;a.O=b&255}function Ic(a){return a.P<<8|a.R}function Jc(a,b){a.P=b>>8&255;a.R=b&255}function K(a){return a.S<<8|a.U}
|
||||||
function Rc(a,b){a.ia=a.j^b;return a.Y=(a.I=a.j+b)&255}function Sc(a,b){a.ia=a.j^b;return a.Y=(a.I=a.j+b+(a.I&256?1:0))&255}function Tc(a,b){a.I=a.Y=a.ia=a.j&b;(a.j|b)&8&&(a.ia^=16);return a.I}function kd(a,b){a.ia=b^255;b=a.Y=b+255&255;a.I=a.I&-256|b;return b}function ld(a,b){a.ia=b;b=a.Y=b+1&255;a.I=a.I&-256|b;return b}function md(a,b){return a.Y=a.I=a.ia=a.j|b}function K(a,b){b^=255;a.ia=a.j^b;return a.Y=(a.I=a.j+b+1^256)&255}
|
function Kc(a,b){a.S=b>>8&255;a.U=b&255}function H(a,b){a.L=b&65535}function Lc(a){return a.H&256?1:0}function Mc(a){return lb[a.Z&255]?4:0}function Nc(a){return(a.Z^a.ja)&16?16:0}function Oc(a){return a.H&255?0:64}function Pc(a){return a.Z&128?128:0}function Fc(a){return a.pa&-214|Pc(a)|Oc(a)|Nc(a)|Mc(a)|Lc(a)}function Dc(a,b){a.H=a.Z=a.ja=0;b&1&&(a.H|=256);b&4||(a.Z|=1);b&16&&(a.ja|=16);b&64||(a.H|=255);b&128&&(a.Z^=192);a.pa=a.pa&-513|b&512|2}
|
||||||
function nd(a,b){b^=255;a.ia=a.j^b;return a.Y=(a.I=a.j+b+(a.I&256?0:1)^256)&255}function od(a,b){return a.Y=a.I=a.ia=a.j^b}m.W=function(a){return this.na[(a&this.K)>>>this.aa].Ka(a&this.G,a)};function pd(a,b){var c=b&a.G,d=(b&a.K)>>>a.aa;if(c<a.G)return a.na[d].Sb(c,b);c=a.na[d].Ka(c,b);return c|=a.na[d+1&a.X].Ka(0,b+1)<<8}function L(a,b,c){a.na[(b&a.K)>>>a.aa].Za(b&a.G,c&255,b)}
|
function Qc(a,b){a.ja=a.j^b;return a.Z=(a.H=a.j+b)&255}function Rc(a,b){a.ja=a.j^b;return a.Z=(a.H=a.j+b+(a.H&256?1:0))&255}function id(a,b){a.H=a.Z=a.ja=a.j&b;(a.j|b)&8&&(a.ja^=16);return a.H}function jd(a,b){a.ja=b^255;b=a.Z=b+255&255;a.H=a.H&-256|b;return b}function kd(a,b){a.ja=b;b=a.Z=b+1&255;a.H=a.H&-256|b;return b}function ld(a,b){return a.Z=a.H=a.ja=a.j|b}function L(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.H=a.j+b+1^256)&255}
|
||||||
function qd(a,b,c){var d=b&a.G,e=(b&a.K)>>>a.aa;d<a.G?a.na[e].Ub(d,c&65535,b):(a.na[e++].Za(d,c&255,b),a.na[e&a.X].Za(0,c>>8&255,b+1))}function M(a){var b=a.W(a.L);H(a,a.L+1);return b}function N(a){var b=pd(a,a.L);H(a,a.L+2);return b}function O(a){var b=pd(a,a.da);a.da=a.da+2&65535;return b}function P(a,b){a.da=a.da-2&65535;qd(a,a.da,b)}
|
function md(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.H=a.j+b+(a.H&256?0:1)^256)&255}function nd(a,b){return a.Z=a.H=a.ja=a.j^b}m.W=function(a){return this.B.W(a)};m.fa=function(a,b){this.B.fa(a,b)};function M(a){var b=a.W(a.L);H(a,a.L+1);return b}function N(a){var b=a.B.Ca(a.L);H(a,a.L+2);return b}function O(a){var b=a.B.Ca(a.ca);a.ca=a.ca+2&65535;return b}function P(a,b){a.ca=a.ca-2&65535;a.B.sb(a.ca,b)}
|
||||||
function Q(a,b,c,d){d=d||2;a.U[b]&&(void 0===c&&(jb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.A.ka||a.A.Kb?q(c,d):"--------".substr(0,d),a.U[b].textContent!=c&&(a.U[b].textContent=c))}
|
function Q(a,b,c,d){d=d||2;a.V[b]&&(void 0===c&&(jb(a,"Value for "+b+" is invalid"),a.da()),c=!a.A.ka||a.A.Lb?q(c,d):"--------".substr(0,d),a.V[b].textContent!=c&&(a.V[b].textContent=c))}
|
||||||
m.ta=function(a){this.fa&&(a||!this.A.ka||this.A.Kb)&&(Q(this,"A",this.j),Q(this,"B",this.N),Q(this,"C",this.O),Q(this,"BC",Hc(this),4),Q(this,"D",this.P),Q(this,"E",this.R),Q(this,"DE",Jc(this),4),Q(this,"H",this.S),Q(this,"L",this.T),Q(this,"HL",J(this),4),Q(this,"SP",this.da,4),Q(this,"PC",this.L,4),a=Fc(this),Q(this,"PS",a,4),Q(this,"SF",a&128?1:0,1),Q(this,"ZF",a&64?1:0,1),Q(this,"AF",a&16?1:0,1),Q(this,"PF",a&4?1:0,1),Q(this,"CF",a&1?1:0,1));if(a=this.U.speed)a.textContent=this.A.ka&&this.i.Ga?
|
m.va=function(a){this.Y&&(a||!this.A.ka||this.A.Lb)&&(Q(this,"A",this.j),Q(this,"B",this.N),Q(this,"C",this.O),Q(this,"BC",Gc(this),4),Q(this,"D",this.P),Q(this,"E",this.R),Q(this,"DE",Ic(this),4),Q(this,"H",this.S),Q(this,"L",this.U),Q(this,"HL",K(this),4),Q(this,"SP",this.ca,4),Q(this,"PC",this.L,4),a=Fc(this),Q(this,"PS",a,4),Q(this,"SF",a&128?1:0,1),Q(this,"ZF",a&64?1:0,1),Q(this,"AF",a&16?1:0,1),Q(this,"PF",a&4?1:0,1),Q(this,"CF",a&1?1:0,1));if(a=this.V.speed)a.textContent=this.A.ka&&this.i.Ia?
|
||||||
this.i.Ga.toFixed(2)+"Mhz":"Stopped"};
|
this.i.Ia.toFixed(2)+"Mhz":"Stopped"};
|
||||||
m.Ya=function(a){this.A.nb=!0;var b=this.A.Yb=this.F&&rd(this.F),c=a?this.A.ub?0:1:-1;this.A.ub=!1;this.D=this.b=a;do{if(this.u){var d;this.u&8&&this.pa&512?(d=199|(this.u&7)<<3,this.u&=-16,this.pa&=-513,this.ba[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.u&16){this.b=0;break}}if(b){if(sd(this.F,this.L,c)){this.ea();break}c=1}this.ba[M(this)].call(this)}while(0<this.b);return this.A.nb?this.D-this.b:void 0===this.A.nb?0:-1};
|
m.$a=function(a){this.A.ob=!0;var b=this.A.Yb=this.F&&od(this.F),c=a?this.A.wb?0:1:-1;this.A.wb=!1;this.D=this.b=a;do{if(this.u){var d;this.u&8&&this.pa&512?(d=199|(this.u&7)<<3,this.u&=-16,this.pa&=-513,this.M[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.u&16){this.b=0;break}}if(b){if(pd(this.F,this.L,c)){this.da();break}c=1}this.M[M(this)].call(this)}while(0<this.b);return this.A.ob?this.D-this.b:void 0===this.A.ob?0:-1};
|
||||||
Ja(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new zc(d);ab(d,c)}});function td(){this.b-=4}function ud(){H(this,N(this));this.b-=10}function vd(){H(this,O(this));this.b-=10}function wd(){var a=N(this);P(this,this.L);H(this,a);this.b-=17}
|
Ja(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new zc(d);cb(d,c)}});function qd(){this.b-=4}function rd(){H(this,N(this));this.b-=10}function sd(){H(this,O(this));this.b-=10}function td(){var a=N(this);P(this,this.L);H(this,a);this.b-=17}
|
||||||
var Ac=[td,function(){Ic(this,N(this));this.b-=10},function(){L(this,Hc(this),this.j);this.b-=7},function(){Ic(this,Hc(this)+1);this.b-=5},function(){this.N=ld(this,this.N);this.b-=5},function(){this.N=kd(this,this.N);this.b-=5},function(){this.N=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.I=this.I&255|a&256;this.b-=4},td,function(){var a;Lc(this,a=J(this)+Hc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Hc(this));this.b-=7},function(){Ic(this,Hc(this)-
|
var Ac=[qd,function(){Hc(this,N(this));this.b-=10},function(){this.fa(Gc(this),this.j);this.b-=7},function(){Hc(this,Gc(this)+1);this.b-=5},function(){this.N=kd(this,this.N);this.b-=5},function(){this.N=jd(this,this.N);this.b-=5},function(){this.N=M(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.H=this.H&255|a&256;this.b-=4},qd,function(){var a;Kc(this,a=K(this)+Gc(this));this.H=this.H&255|a>>8&256;this.b-=10},function(){this.j=this.W(Gc(this));this.b-=7},function(){Hc(this,Gc(this)-
|
||||||
1);this.b-=5},function(){this.O=ld(this,this.O);this.b-=5},function(){this.O=kd(this,this.O);this.b-=5},function(){this.O=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.I=this.I&255|a;this.b-=4},td,function(){Kc(this,N(this));this.b-=10},function(){L(this,Jc(this),this.j);this.b-=7},function(){Kc(this,Jc(this)+1);this.b-=5},function(){this.P=ld(this,this.P);this.b-=5},function(){this.P=kd(this,this.P);this.b-=5},function(){this.P=M(this);this.b-=7},function(){var a=this.j<<
|
1);this.b-=5},function(){this.O=kd(this,this.O);this.b-=5},function(){this.O=jd(this,this.O);this.b-=5},function(){this.O=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.H=this.H&255|a;this.b-=4},qd,function(){Jc(this,N(this));this.b-=10},function(){this.fa(Ic(this),this.j);this.b-=7},function(){Jc(this,Ic(this)+1);this.b-=5},function(){this.P=kd(this,this.P);this.b-=5},function(){this.P=jd(this,this.P);this.b-=5},function(){this.P=M(this);this.b-=7},function(){var a=this.j<<
|
||||||
1;this.j=a&255|this.I>>8;this.I=this.I&255|a&256;this.b-=4},td,function(){var a;Lc(this,a=J(this)+Jc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Jc(this));this.b-=7},function(){Kc(this,Jc(this)-1);this.b-=5},function(){this.R=ld(this,this.R);this.b-=5},function(){this.R=kd(this,this.R);this.b-=5},function(){this.R=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.I&256|this.j)>>1;this.I=this.I&255|a;this.b-=4},td,function(){Lc(this,N(this));this.b-=10},function(){qd(this,
|
1;this.j=a&255|this.H>>8;this.H=this.H&255|a&256;this.b-=4},qd,function(){var a;Kc(this,a=K(this)+Ic(this));this.H=this.H&255|a>>8&256;this.b-=10},function(){this.j=this.W(Ic(this));this.b-=7},function(){Jc(this,Ic(this)-1);this.b-=5},function(){this.R=kd(this,this.R);this.b-=5},function(){this.R=jd(this,this.R);this.b-=5},function(){this.R=M(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.H&256|this.j)>>1;this.H=this.H&255|a;this.b-=4},qd,function(){Kc(this,N(this));this.b-=10},function(){var a=
|
||||||
N(this),J(this));this.b-=16},function(){Lc(this,J(this)+1);this.b-=5},function(){this.S=ld(this,this.S);this.b-=5},function(){this.S=kd(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=0,b=Mc(this);if(Oc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Rc(this,a);this.I=b?this.I|256:this.I&-257;this.b-=4},td,function(){var a;Lc(this,a=J(this)+J(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){Lc(this,pd(this,N(this)));this.b-=16},function(){Lc(this,
|
N(this);this.B.sb(a,K(this));this.b-=16},function(){Kc(this,K(this)+1);this.b-=5},function(){this.S=kd(this,this.S);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=M(this);this.b-=7},function(){var a=0,b=Lc(this);if(Nc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Qc(this,a);this.H=b?this.H|256:this.H&-257;this.b-=4},qd,function(){var a;Kc(this,a=K(this)+K(this));this.H=this.H&255|a>>8&256;this.b-=10},function(){var a;a=N(this);a=this.B.Ca(a);Kc(this,a);this.b-=
|
||||||
J(this)-1);this.b-=5},function(){this.T=ld(this,this.T);this.b-=5},function(){this.T=kd(this,this.T);this.b-=5},function(){this.T=M(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},td,function(){this.da=N(this)&65535;this.b-=10},function(){L(this,N(this),this.j);this.b-=13},function(){this.da=this.da+1&65535;this.b-=5},function(){var a=J(this);L(this,a,ld(this,this.W(a)));this.b-=10},function(){var a=J(this);L(this,a,kd(this,this.W(a)));this.b-=10},function(){L(this,J(this),M(this));this.b-=
|
16},function(){Kc(this,K(this)-1);this.b-=5},function(){this.U=kd(this,this.U);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=M(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},qd,function(){this.ca=N(this)&65535;this.b-=10},function(){this.fa(N(this),this.j);this.b-=13},function(){this.ca=this.ca+1&65535;this.b-=5},function(){var a=K(this);this.fa(a,kd(this,this.W(a)));this.b-=10},function(){var a=K(this);this.fa(a,jd(this,this.W(a)));this.b-=10},function(){this.fa(K(this),
|
||||||
10},function(){this.I|=256;this.b-=4},td,function(){var a;Lc(this,a=J(this)+this.da);this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(N(this));this.b-=13},function(){this.da=this.da-1&65535;this.b-=5},function(){this.j=ld(this,this.j);this.b-=5},function(){this.j=kd(this,this.j);this.b-=5},function(){this.j=M(this);this.b-=7},function(){this.I=Mc(this)?this.I&-257:this.I|256;this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.N=
|
M(this));this.b-=10},function(){this.H|=256;this.b-=4},qd,function(){var a;Kc(this,a=K(this)+this.ca);this.H=this.H&255|a>>8&256;this.b-=10},function(){this.j=this.W(N(this));this.b-=13},function(){this.ca=this.ca-1&65535;this.b-=5},function(){this.j=kd(this,this.j);this.b-=5},function(){this.j=jd(this,this.j);this.b-=5},function(){this.j=M(this);this.b-=7},function(){this.H=Lc(this)?this.H&-257:this.H|256;this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;
|
||||||
this.R;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.T;this.b-=5},function(){this.N=this.W(J(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.T;this.b-=5},function(){this.O=this.W(J(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P=
|
this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.U;this.b-=5},function(){this.N=this.W(K(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.U;this.b-=5},function(){this.O=this.W(K(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=
|
||||||
this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.T;this.b-=5},function(){this.P=this.W(J(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.T;this.b-=5},function(){this.R=this.W(J(this));this.b-=7},function(){this.R=this.j;
|
this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.U;this.b-=5},function(){this.P=this.W(K(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.U;this.b-=5},function(){this.R=this.W(K(this));
|
||||||
this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.W(J(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.T=this.N;this.b-=5},function(){this.T=this.O;this.b-=5},function(){this.T=this.P;this.b-=5},function(){this.T=this.R;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=
|
this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.W(K(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.U=this.N;this.b-=5},function(){this.U=this.O;this.b-=5},function(){this.U=this.P;this.b-=5},function(){this.U=this.R;this.b-=5},function(){this.U=this.S;this.b-=
|
||||||
this.W(J(this));this.b-=7},function(){this.T=this.j;this.b-=5},function(){L(this,J(this),this.N);this.b-=7},function(){L(this,J(this),this.O);this.b-=7},function(){L(this,J(this),this.P);this.b-=7},function(){L(this,J(this),this.R);this.b-=7},function(){L(this,J(this),this.S);this.b-=7},function(){L(this,J(this),this.T);this.b-=7},function(){var a=this.L-1;if(this.M.length)for(var b=0;b<this.M.length;b++)if(this.M[b](a))return;this.u|=16;this.b-=7;this.F&&fb(this,-2147483648)?(H(this,a),this.F.ea()):
|
5},function(){this.b-=5},function(){this.U=this.W(K(this));this.b-=7},function(){this.U=this.j;this.b-=5},function(){this.fa(K(this),this.N);this.b-=7},function(){this.fa(K(this),this.O);this.b-=7},function(){this.fa(K(this),this.P);this.b-=7},function(){this.fa(K(this),this.R);this.b-=7},function(){this.fa(K(this),this.S);this.b-=7},function(){this.fa(K(this),this.U);this.b-=7},function(){var a=this.L-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.u|=16;this.b-=7;
|
||||||
this.pa&512||(this.F&&H(this,a),this.ea())},function(){L(this,J(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.T;this.b-=5},function(){this.j=this.W(J(this));this.b-=7},function(){this.b-=5},function(){this.j=Rc(this,this.N);this.b-=4},function(){this.j=Rc(this,this.O);this.b-=4},function(){this.j=Rc(this,this.P);this.b-=
|
this.F&&fb(this,-2147483648)?(H(this,a),this.F.da()):this.pa&512||(this.F&&H(this,a),this.da())},function(){this.fa(K(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.U;this.b-=5},function(){this.j=this.W(K(this));this.b-=7},function(){this.b-=5},function(){this.j=Qc(this,this.N);this.b-=4},function(){this.j=Qc(this,this.O);
|
||||||
4},function(){this.j=Rc(this,this.R);this.b-=4},function(){this.j=Rc(this,this.S);this.b-=4},function(){this.j=Rc(this,this.T);this.b-=4},function(){this.j=Rc(this,this.W(J(this)));this.b-=7},function(){this.j=Rc(this,this.j);this.b-=4},function(){this.j=Sc(this,this.N);this.b-=4},function(){this.j=Sc(this,this.O);this.b-=4},function(){this.j=Sc(this,this.P);this.b-=4},function(){this.j=Sc(this,this.R);this.b-=4},function(){this.j=Sc(this,this.S);this.b-=4},function(){this.j=Sc(this,this.T);this.b-=
|
this.b-=4},function(){this.j=Qc(this,this.P);this.b-=4},function(){this.j=Qc(this,this.R);this.b-=4},function(){this.j=Qc(this,this.S);this.b-=4},function(){this.j=Qc(this,this.U);this.b-=4},function(){this.j=Qc(this,this.W(K(this)));this.b-=7},function(){this.j=Qc(this,this.j);this.b-=4},function(){this.j=Rc(this,this.N);this.b-=4},function(){this.j=Rc(this,this.O);this.b-=4},function(){this.j=Rc(this,this.P);this.b-=4},function(){this.j=Rc(this,this.R);this.b-=4},function(){this.j=Rc(this,this.S);
|
||||||
4},function(){this.j=Sc(this,this.W(J(this)));this.b-=7},function(){this.j=Sc(this,this.j);this.b-=4},function(){this.j=K(this,this.N);this.b-=4},function(){this.j=K(this,this.O);this.b-=4},function(){this.j=K(this,this.P);this.b-=4},function(){this.j=K(this,this.R);this.b-=4},function(){this.j=K(this,this.S);this.b-=4},function(){this.j=K(this,this.T);this.b-=4},function(){this.j=K(this,this.W(J(this)));this.b-=7},function(){this.j=K(this,this.j);this.b-=4},function(){this.j=nd(this,this.N);this.b-=
|
this.b-=4},function(){this.j=Rc(this,this.U);this.b-=4},function(){this.j=Rc(this,this.W(K(this)));this.b-=7},function(){this.j=Rc(this,this.j);this.b-=4},function(){this.j=L(this,this.N);this.b-=4},function(){this.j=L(this,this.O);this.b-=4},function(){this.j=L(this,this.P);this.b-=4},function(){this.j=L(this,this.R);this.b-=4},function(){this.j=L(this,this.S);this.b-=4},function(){this.j=L(this,this.U);this.b-=4},function(){this.j=L(this,this.W(K(this)));this.b-=7},function(){this.j=L(this,this.j);
|
||||||
4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.T);this.b-=4},function(){this.j=nd(this,this.W(J(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){this.j=Tc(this,this.N);this.b-=4},function(){this.j=Tc(this,this.O);this.b-=4},function(){this.j=Tc(this,this.P);this.b-=4},function(){this.j=Tc(this,this.R);this.b-=
|
this.b-=4},function(){this.j=md(this,this.N);this.b-=4},function(){this.j=md(this,this.O);this.b-=4},function(){this.j=md(this,this.P);this.b-=4},function(){this.j=md(this,this.R);this.b-=4},function(){this.j=md(this,this.S);this.b-=4},function(){this.j=md(this,this.U);this.b-=4},function(){this.j=md(this,this.W(K(this)));this.b-=7},function(){this.j=md(this,this.j);this.b-=4},function(){this.j=id(this,this.N);this.b-=4},function(){this.j=id(this,this.O);this.b-=4},function(){this.j=id(this,this.P);
|
||||||
4},function(){this.j=Tc(this,this.S);this.b-=4},function(){this.j=Tc(this,this.T);this.b-=4},function(){this.j=Tc(this,this.W(J(this)));this.b-=7},function(){this.j=Tc(this,this.j);this.b-=4},function(){this.j=od(this,this.N);this.b-=4},function(){this.j=od(this,this.O);this.b-=4},function(){this.j=od(this,this.P);this.b-=4},function(){this.j=od(this,this.R);this.b-=4},function(){this.j=od(this,this.S);this.b-=4},function(){this.j=od(this,this.T);this.b-=4},function(){this.j=od(this,this.W(J(this)));
|
this.b-=4},function(){this.j=id(this,this.R);this.b-=4},function(){this.j=id(this,this.S);this.b-=4},function(){this.j=id(this,this.U);this.b-=4},function(){this.j=id(this,this.W(K(this)));this.b-=7},function(){this.j=id(this,this.j);this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.U);
|
||||||
this.b-=7},function(){this.j=od(this,this.j);this.b-=4},function(){this.j=md(this,this.N);this.b-=4},function(){this.j=md(this,this.O);this.b-=4},function(){this.j=md(this,this.P);this.b-=4},function(){this.j=md(this,this.R);this.b-=4},function(){this.j=md(this,this.S);this.b-=4},function(){this.j=md(this,this.T);this.b-=4},function(){this.j=md(this,this.W(J(this)));this.b-=7},function(){this.j=md(this,this.j);this.b-=4},function(){K(this,this.N);this.b-=4},function(){K(this,this.O);this.b-=4},function(){K(this,
|
this.b-=4},function(){this.j=nd(this,this.W(K(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){this.j=ld(this,this.N);this.b-=4},function(){this.j=ld(this,this.O);this.b-=4},function(){this.j=ld(this,this.P);this.b-=4},function(){this.j=ld(this,this.R);this.b-=4},function(){this.j=ld(this,this.S);this.b-=4},function(){this.j=ld(this,this.U);this.b-=4},function(){this.j=ld(this,this.W(K(this)));this.b-=7},function(){this.j=ld(this,this.j);this.b-=4},function(){L(this,this.N);
|
||||||
this.P);this.b-=4},function(){K(this,this.R);this.b-=4},function(){K(this,this.S);this.b-=4},function(){K(this,this.T);this.b-=4},function(){K(this,this.W(J(this)));this.b-=7},function(){K(this,this.j);this.b-=4},function(){Pc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){Ic(this,O(this));this.b-=10},function(){var a=N(this);Pc(this)||H(this,a);this.b-=10},ud,function(){var a=N(this);Pc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},function(){P(this,Hc(this));this.b-=11},function(){this.j=
|
this.b-=4},function(){L(this,this.O);this.b-=4},function(){L(this,this.P);this.b-=4},function(){L(this,this.R);this.b-=4},function(){L(this,this.S);this.b-=4},function(){L(this,this.U);this.b-=4},function(){L(this,this.W(K(this)));this.b-=7},function(){L(this,this.j);this.b-=4},function(){Oc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){Hc(this,O(this));this.b-=10},function(){var a=N(this);Oc(this)||H(this,a);this.b-=10},rd,function(){var a=N(this);Oc(this)||(P(this,this.L),H(this,a),this.b-=
|
||||||
Rc(this,M(this));this.b-=7},function(){P(this,this.L);H(this,0);this.b-=11},function(){Pc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},vd,function(){var a=N(this);Pc(this)&&H(this,a);this.b-=10},ud,function(){var a=N(this);Pc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},wd,function(){this.j=Sc(this,M(this));this.b-=7},function(){P(this,this.L);H(this,8);this.b-=11},function(){Mc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){Kc(this,O(this));this.b-=10},function(){var a=N(this);
|
6);this.b-=11},function(){P(this,Gc(this));this.b-=11},function(){this.j=Qc(this,M(this));this.b-=7},function(){P(this,this.L);H(this,0);this.b-=11},function(){Oc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},sd,function(){var a=N(this);Oc(this)&&H(this,a);this.b-=10},rd,function(){var a=N(this);Oc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},td,function(){this.j=Rc(this,M(this));this.b-=7},function(){P(this,this.L);H(this,8);this.b-=11},function(){Lc(this)||(H(this,O(this)),this.b-=6);
|
||||||
Mc(this)||H(this,a);this.b-=10},function(){var a=M(this);Ib(this.B,a,this.j,this.L+-2&65535);this.b-=10},function(){var a=N(this);Mc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},function(){P(this,Jc(this));this.b-=11},function(){this.j=K(this,M(this));this.b-=7},function(){P(this,this.L);H(this,16);this.b-=11},function(){Mc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},vd,function(){var a=N(this);Mc(this)&&H(this,a);this.b-=10},function(){var a=M(this);this.j=xb(this.B,a,this.L+-2&65535)&
|
this.b-=5},function(){Jc(this,O(this));this.b-=10},function(){var a=N(this);Lc(this)||H(this,a);this.b-=10},function(){var a=M(this);Ib(this.B,a,this.j,this.L+-2&65535);this.b-=10},function(){var a=N(this);Lc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},function(){P(this,Ic(this));this.b-=11},function(){this.j=L(this,M(this));this.b-=7},function(){P(this,this.L);H(this,16);this.b-=11},function(){Lc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},sd,function(){var a=N(this);Lc(this)&&H(this,
|
||||||
255;this.b-=10},function(){var a=N(this);Mc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},wd,function(){this.j=nd(this,M(this));this.b-=7},function(){P(this,this.L);H(this,24);this.b-=11},function(){Nc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){Lc(this,O(this));this.b-=10},function(){var a=N(this);Nc(this)||H(this,a);this.b-=10},function(){var a=O(this);P(this,J(this));Lc(this,a);this.b-=18},function(){var a=N(this);Nc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},
|
a);this.b-=10},function(){var a=M(this);this.j=Fb(this.B,a,this.L+-2&65535)&255;this.b-=10},function(){var a=N(this);Lc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},td,function(){this.j=md(this,M(this));this.b-=7},function(){P(this,this.L);H(this,24);this.b-=11},function(){Mc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){Kc(this,O(this));this.b-=10},function(){var a=N(this);Mc(this)||H(this,a);this.b-=10},function(){var a=O(this);P(this,K(this));Kc(this,a);this.b-=18},function(){var a=
|
||||||
function(){P(this,J(this));this.b-=11},function(){this.j=Tc(this,M(this));this.b-=7},function(){P(this,this.L);H(this,32);this.b-=11},function(){Nc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},function(){H(this,J(this));this.b-=5},function(){var a=N(this);Nc(this)&&H(this,a);this.b-=10},function(){var a=J(this);Lc(this,Jc(this));Kc(this,a);this.b-=5},function(){var a=N(this);Nc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},wd,function(){this.j=od(this,M(this));this.b-=7},function(){P(this,
|
N(this);Mc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},function(){P(this,K(this));this.b-=11},function(){this.j=id(this,M(this));this.b-=7},function(){P(this,this.L);H(this,32);this.b-=11},function(){Mc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},function(){H(this,K(this));this.b-=5},function(){var a=N(this);Mc(this)&&H(this,a);this.b-=10},function(){var a=K(this);Kc(this,Ic(this));Jc(this,a);this.b-=5},function(){var a=N(this);Mc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=
|
||||||
this.L);H(this,40);this.b-=11},function(){Qc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Dc(this,a);this.j=a>>8;this.b-=10},function(){var a=N(this);Qc(this)||H(this,a);this.b-=10},function(){this.pa&=-513;this.b-=4},function(){var a=N(this);Qc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},function(){P(this,Fc(this)&255|this.j<<8);this.b-=11},function(){this.j=md(this,M(this));this.b-=7},function(){P(this,this.L);H(this,48);this.b-=11},function(){Qc(this)&&(H(this,
|
11},td,function(){this.j=nd(this,M(this));this.b-=7},function(){P(this,this.L);H(this,40);this.b-=11},function(){Pc(this)||(H(this,O(this)),this.b-=6);this.b-=5},function(){var a=O(this);Dc(this,a);this.j=a>>8;this.b-=10},function(){var a=N(this);Pc(this)||H(this,a);this.b-=10},function(){this.pa&=-513;this.b-=4},function(){var a=N(this);Pc(this)||(P(this,this.L),H(this,a),this.b-=6);this.b-=11},function(){P(this,Fc(this)&255|this.j<<8);this.b-=11},function(){this.j=ld(this,M(this));this.b-=7},function(){P(this,
|
||||||
O(this)),this.b-=6);this.b-=5},function(){this.da=J(this)&65535;this.b-=5},function(){var a=N(this);Qc(this)&&H(this,a);this.b-=10},function(){this.pa|=512;this.b-=4},function(){var a=N(this);Qc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},wd,function(){K(this,M(this));this.b-=7},function(){P(this,this.L);H(this,56);this.b-=11}];
|
this.L);H(this,48);this.b-=11},function(){Pc(this)&&(H(this,O(this)),this.b-=6);this.b-=5},function(){this.ca=K(this)&65535;this.b-=5},function(){var a=N(this);Pc(this)&&H(this,a);this.b-=10},function(){this.pa|=512;this.b-=4},function(){var a=N(this);Pc(this)&&(P(this,this.L),H(this,a),this.b-=6);this.b-=11},td,function(){L(this,M(this));this.b-=7},function(){P(this,this.L);H(this,56);this.b-=11}];
|
||||||
function R(a){v.call(this,"ChipSet",a,R,32768);var b=a.model;b&&!xd[b]&&t("Unrecognized ChipSet model: "+b);this.Ra=xd[b]||yd;a.sound&&(this.V=null,window&&(this.V=window.AudioContext||window.webkitAudioContext),this.V&&new this.V);E(this)}z(R);var yd=1978.1,xd={SI1978:yd};m=R.prototype;m.qa=function(){return!1};
|
function T(a){v.call(this,"ChipSet",a,T,32768);var b=a.model;b&&!ud[b]&&t("Unrecognized ChipSet model: "+b);this.Sa=ud[b]||vd;a.sound&&(this.X=null,window&&(this.X=window.AudioContext||window.webkitAudioContext),this.X&&new this.X);E(this)}z(T);var vd=1978.1,ud={SI1978:vd};m=T.prototype;m.qa=function(){return!1};
|
||||||
m.Ba=function(a,b,c,d){this.B=b;this.b=c;this.F=d;this.w=a;if(this.Ra==yd){var e;a=zd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.w[g]?t("Input port "+r(g)+" already registered"):c.w[g]=[h,!1]}var l;e=Ad;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.u[d]?t("Output port "+r(d)+" already registered"):f.u[d]=[c,!1]}};
|
m.Da=function(a,b,c,d){this.B=b;this.b=c;this.F=d;this.w=a;if(this.Sa==vd){var e;a=wd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.w[g]?t("Input port "+r(g)+" already registered"):c.w[g]=[h,!1]}var l;e=xd;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.u[d]?t("Output port "+r(d)+" already registered"):f.u[d]=[c,!1]}};
|
||||||
m.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.xa=function(a){return a?this.save():!0};m.reset=function(){this.G=this.H=this.D=this.u=this.M=this.K=this.J=0};m.save=function(){var a=new Gc(this);this.Ra==yd&&I(a,0,[this.J,this.K,this.M,this.u,this.D,this.G,this.H]);return a.data()};m.restore=function(a){a=a[0];this.Ra==yd&&(this.J=a[0],this.K=a[1],this.M=a[2],this.u=a[3],this.D=a[4],this.G=a[5],this.H=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
m.za=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ya=function(a){return a?this.save():!0};m.reset=function(){this.G=this.I=this.D=this.u=this.M=this.K=this.J=0};m.save=function(){var a=new I(this);this.Sa==vd&&J(a,0,[this.J,this.K,this.M,this.u,this.D,this.G,this.I]);return a.data()};m.restore=function(a){a=a[0];this.Sa==vd&&(this.J=a[0],this.K=a[1],this.M=a[2],this.u=a[3],this.D=a[4],this.G=a[5],this.I=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
||||||
m.bc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.K;db(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.M;db(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.u>>8-this.D&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.D=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.G=b};
|
m.bc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.K;db(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.M;db(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.u>>8-this.D&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.D=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.G=b};
|
||||||
m.jc=function(a,b,c){db(this,a,b,c,"SHIFT.DATA",null);this.u=b<<8|this.u>>8};m.lc=function(a,b,c){db(this,a,b,c,"SOUND2",null);this.H=b};m.mc=function(a,b,c){db(this,a,b,c,"WATCHDOG",null)};var zd={0:R.prototype.bc,1:R.prototype.cc,2:R.prototype.dc,3:R.prototype.ac},Ad={2:R.prototype.ic,3:R.prototype.kc,4:R.prototype.jc,5:R.prototype.lc,6:R.prototype.mc};Ja(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new R(d);ab(d,c)}});
|
m.jc=function(a,b,c){db(this,a,b,c,"SHIFT.DATA",null);this.u=b<<8|this.u>>8};m.lc=function(a,b,c){db(this,a,b,c,"SOUND2",null);this.I=b};m.mc=function(a,b,c){db(this,a,b,c,"WATCHDOG",null)};var wd={0:T.prototype.bc,1:T.prototype.cc,2:T.prototype.dc,3:T.prototype.ac},xd={2:T.prototype.ic,3:T.prototype.kc,4:T.prototype.jc,5:T.prototype.lc,6:T.prototype.mc};Ja(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new T(d);cb(d,c)}});
|
||||||
function Bd(a){v.call(this,"ROM",a,Bd);this.w=null;this.H=a.addr;this.u=a.size;this.J=a.writable;this.D=a.alias;this.G=a.file;this.K=ba(this.G);if(this.G){a=this.G;var b=da(this.K);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Cd(c,a,b,f)})}}z(Bd);var Dd=[0,5];Bd.prototype.Ba=function(a,b,c,d){this.B=b;this.b=c;this.F=d;Ed(this)};
|
function yd(a){v.call(this,"ROM",a,yd);this.w=null;this.I=a.addr;this.u=a.size;this.J=a.writable;this.D=a.alias;this.G=a.file;this.K=ca(this.G);if(this.G){a=this.G;var b=da(this.K);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){zd(c,a,b,f)})}}z(yd);var Ad=[0,5];yd.prototype.Da=function(a,b,c,d){this.B=b;this.b=c;this.F=d;Bd(this)};
|
||||||
Bd.prototype.ya=function(){if(this.za){if(this.F){var a=this.F,b=this.id,c=this.H,d=this.u,e=this.za,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var l=g.o,k=g.a;if(void 0!==l){var n=f,l=[l>>>0,h],p=ja(n,l,a.Eb);0>p&&n.splice(-(p+1),0,l)}k&&(g.a=k.replace(/''/g,'"'))}a.J.push({nc:b,C:c,gc:d,za:e,Bb:f})}delete this.za}return!0};Bd.prototype.xa=function(){return!0};
|
yd.prototype.za=function(){if(this.Aa){if(this.F){var a=this.F,b=this.id,c=this.I,d=this.u,e=this.Aa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var l=g.o,k=g.a;if(void 0!==l){var n=f,l=[l>>>0,h],p=ja(n,l,a.Fb);0>p&&n.splice(-(p+1),0,l)}k&&(g.a=k.replace(/''/g,'"'))}a.J.push({nc:b,C:c,gc:d,Aa:e,Cb:f})}delete this.Aa}return!0};yd.prototype.ya=function(){return!0};
|
||||||
function Cd(a,b,c,d){if(d)a.oa("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.za=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.oa("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
function zd(a,b,c,d){if(d)a.oa("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Ib,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Aa=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.oa("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||||
" ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=aa(b[e],16);Ed(a)}}
|
" ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=aa(b[e],16);Bd(a)}}
|
||||||
function Ed(a){if(!ib(a))if(!a.G)E(a);else if(a.w&&a.B){a.u||(a.u=a.w.length);if(a.w.length!=a.u)jb(a,"ROM size (0x"+q(a.w.length)+") does not match specified size ("+("0x"+q(a.u))+")");else if(Fd(a,a.H)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.u,g=[],l=d.H>>>f.aa;0<h&&l<f.B.length;)g.push(f.B[l++]),h-=f.la;f=d.B;d=d.u;h=0;for(e>>>=f.aa;0<d&&e<f.B.length;){l=g[h++];if(!l)break;f.B[e++]=l;d-=f.la}}delete a.w}E(a)}}
|
function Bd(a){if(!ib(a))if(!a.G)E(a);else if(a.w&&a.B){a.u||(a.u=a.w.length);if(a.w.length!=a.u)jb(a,"ROM size (0x"+q(a.w.length)+") does not match specified size ("+("0x"+q(a.u))+")");else if(Cd(a,a.I)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.u,g=[],l=d.I>>>f.ea;0<h&&l<f.T.length;)g.push(f.T[l++]),h-=f.ua;f=d.B;d=d.u;h=0;for(e>>>=f.ea;0<d&&e<f.T.length;){l=g[h++];if(!l)break;f.T[e++]=l;d-=f.ua}}delete a.w}E(a)}}
|
||||||
function Fd(a,b){if(rb(a.B,b,a.u,a.J?1:Pb)){var c;for(c=0;c<a.w.length;c++)vb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Dd.length;c++)vb(a.B,Dd[c],118);Cc(a.b,function(a){return function(b){if(0<=Dd.indexOf(b)){var c=!1,h=a.b,g=a.F;if(5==b)switch(c=!0,h.O){case 2:Gd(a,String.fromCharCode(h.R));break;case 9:for(var l=Jc(h),k="",n=255;n--;){var p=a.b.W(l++);if(36==p)break;k+=String.fromCharCode(p)}Gd(a,k);break;default:c=!1}c?vd.call(h):g&&(a.g("\nCP/M vector "+r(b)),H(h,b),g.ea());b=!0}else b=!1;return b}}(a));
|
function Cd(a,b){if(rb(a.B,b,a.u,a.J?1:Pb)){var c;for(c=0;c<a.w.length;c++)vb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Ad.length;c++)vb(a.B,Ad[c],118);Cc(a.b,function(a){return function(b){if(0<=Ad.indexOf(b)){var c=!1,h=a.b,g=a.F;if(5==b)switch(c=!0,h.O){case 2:Dd(a,String.fromCharCode(h.R));break;case 9:for(var l=Ic(h),k="",n=255;n--;){var p=a.b.W(l++);if(36==p)break;k+=String.fromCharCode(p)}Dd(a,k);break;default:c=!1}c?sd.call(h):g&&(a.g("\nCP/M vector "+r(b)),H(h,b),g.da());b=!0}else b=!1;return b}}(a));
|
||||||
Ec(a.b,b)}return!0}return!1}function Gd(a,b){b=b.replace(/\r/g,"");a.sa&&(a.sa.value+=b,a.sa.scrollTop=a.sa.scrollHeight)}Ja(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Bd(d);ab(d,c)}});function Hd(a){v.call(this,"RAM",a,Hd);this.D=a.addr;this.u=a.size;this.w=!1}z(Hd);m=Hd.prototype;m.Ba=function(a,b,c,d){this.B=b;this.b=c;this.F=d;E(this)};m.ya=function(a,b){b||this.reset();return!0};m.xa=function(a){return a?this.save():!0};
|
Ec(a.b,b)}return!0}return!1}function Dd(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}Ja(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new yd(d);cb(d,c)}});function Ed(a){v.call(this,"RAM",a,Ed);this.D=a.addr;this.u=a.size;this.w=!1}z(Ed);m=Ed.prototype;m.Da=function(a,b,c,d){this.B=b;this.b=c;this.F=d;E(this)};m.za=function(a,b){b||this.reset();return!0};m.ya=function(a){return a?this.save():!0};
|
||||||
m.reset=function(){!this.w&&this.u&&rb(this.B,this.D,this.u,1)&&(this.w=!0,this.status(Math.floor(this.u/1024)+"Kb allocated"));this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Hd(d);ab(d,c)}});function Id(a){v.call(this,"Keyboard",a,Id,65536);E(this)}z(Id);
|
m.reset=function(){!this.w&&this.u&&rb(this.B,this.D,this.u,1)&&(this.w=!0,this.status(Math.floor(this.u/1024)+"Kb allocated"));this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Ed(d);cb(d,c)}});function Fd(a){v.call(this,"Keyboard",a,Fd,65536);E(this)}z(Fd);
|
||||||
Ja(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Id(d);ab(d,c)}});
|
Ja(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Fd(d);cb(d,c)}});
|
||||||
function Jd(a,b,c){v.call(this,"Video",a,Jd,262144);this.ma=a.screenWidth;this.ra=a.screenHeight;this.K=a.bufferAddr;this.u=a.bufferCols;this.D=a.bufferRows;this.Z=a.bufferBits||1;this.Zb=a.interruptRate;this.Aa=a.refreshRate||60;this.V=c;this.fa=[[0,0,0,255],[255,255,255,255]];this.X=this.V.createImageData(this.u,this.D);this.H=document.createElement("canvas");this.H.width=this.u;this.H.height=this.D;this.ja=this.H.getContext("2d")}z(Jd);
|
function Gd(a,b,c){v.call(this,"Video",a,Gd,262144);this.Y=a.screenWidth;this.K=a.screenHeight;this.X=a.bufferAddr;this.u=a.bufferCols;this.D=a.bufferRows;this.ga=a.bufferBits||1;this.Zb=a.interruptRate;this.Ba=a.refreshRate||60;this.G=c;this.na=a.screenRotation;90==this.na&&(this.G.translate(0,this.K),this.G.rotate(-this.na*Math.PI/180),this.G.scale(this.K/this.Y,this.Y/this.K));this.ra=[[0,0,0,255],[255,255,255,255]];this.ba=this.G.createImageData(this.u,this.D);this.J=document.createElement("canvas");
|
||||||
Jd.prototype.Ba=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.J=(this.u*this.Z>>3)*this.D;rb(this.B,this.K,this.J,3)&&(this.ba=this.J>>1,this.ca=16/this.Z|0,this.M=!1,void 0===this.G||this.G.length!=this.ba)&&(this.G=Array(this.ba));E(this)};
|
this.J.width=this.u;this.J.height=this.D;this.sa=this.J.getContext("2d")}z(Gd);Gd.prototype.Da=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.M=(this.u*this.ga>>3)*this.D;rb(this.B,this.X,this.M,3)&&(this.la=this.M>>1,this.ma=16/this.ga|0,this.aa=!1,void 0===this.I||this.I.length!=this.la)&&(this.I=Array(this.la));E(this)};
|
||||||
Ja(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=B(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=pa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
Ja(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=B(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=pa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
||||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Sa.aspect);f&&.3<=f&&3.33>=f&&(Ia("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ba("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e=e.getContext("2d");d=new Jd(d,0,e);ab(d,c)}});
|
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Sa.aspect);f&&.3<=f&&3.33>=f&&(Ia("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Ba("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e=e.getContext("2d");d=new Gd(d,0,e);cb(d,c)}});
|
||||||
function Kd(a){v.call(this,"Debugger",a,Kd);this.Z=Ld;this.fa=this.Ma=this.M=0;this.X=U();this.Fb=U();this.G=-1;this.D=[];this.ma=!1;this.ja=U();this.J=[];this.ra={};this.u=this.ba=this.H=[];Md(this);this.Da=0;Nd(this);this.$a=[];Od(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return qc(b,a)}):void 0===global.$&&(global.$=function(a){return qc(b,a)})}z(Kd);
|
function Hd(a){v.call(this,"Debugger",a,Hd);this.aa=Id;this.la=this.Na=this.M=0;this.Y=U();this.Gb=U();this.G=-1;this.D=[];this.na=!1;this.ma=U();this.J=[];this.ra={};this.u=this.ba=this.I=[];Jd(this);this.Fa=0;Kd(this);this.bb=[];Ld(this,a.messages);this.tb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return qc(b,a)}):void 0===global.$&&(global.$=function(a){return qc(b,a)})}z(Hd);
|
||||||
var Pd={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Ld=8080,Qd="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
|
var Md={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Id=8080,Nd="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
|
||||||
Rd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Sd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Td=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
|
Od="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Pd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Qd=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
|
||||||
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
|
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
|
||||||
[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,
|
[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,
|
||||||
785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],
|
785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],
|
||||||
[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],
|
[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],
|
||||||
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
|
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
|
||||||
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
|
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
|
||||||
18193,33],[65,128]],Ud={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Kd.prototype;
|
18193,33],[65,128]],Rd={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Hd.prototype;
|
||||||
m.Ba=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=cc(a,"messages"))&&Od(this,a);this.Cb=Td;Vd(this,function(a){a:{var b=d.b.na,c=a[0],g=a=0,l=b.length;if(c){a=V(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.b.aa;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,k=0;l--;){var n=b[g];n.type==c?k++||d.g("..."):(c=n.type,k=Ub[c],n&&d.g(q(n.id)+" %"+q(g<<d.b.aa)+" %%"+q(n.C)+" "+r(n.kb)+" "+
|
m.Da=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=nc(a,"messages"))&&Ld(this,a);this.Db=Qd;Sd(this,function(a){a:{var b=d.B.T,c=a[0],g=a=0,l=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ea;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,k=0;l--;){var n=b[g];n.type==c?k++||d.g("..."):(c=n.type,k=Ub[c],n&&d.g(q(n.id)+" %"+q(g<<d.B.ea)+" %%"+q(n.C)+" "+r(n.mb)+" "+r(n.size)+
|
||||||
r(n.size)+" "+k),c!=Ob&&(c=-1),k=0);a+=d.b.la;g++}}});E(this)};
|
" "+k),c!=Ob&&(c=-1),k=0);a+=d.B.ua;g++}}});E(this)};
|
||||||
m.qa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ca=this.U[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.G<d.D.length-1&&(b=d.D[++d.G]):40==a.keyCode&&(0<d.G?b=d.D[--d.G]:(b="",d.G=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.U[b]=c,Da(c,function(){if(d.Ca){var a=d.Ca.value;d.Ca.value=
|
m.qa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ea=this.V[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.G<d.D.length-1&&(b=d.D[++d.G]):40==a.keyCode&&(0<d.G?b=d.D[--d.G]:(b="",d.G=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.V[b]=c,Da(c,function(){if(d.Ea){var a=d.Ea.value;d.Ea.value=
|
||||||
"";qc(d,a,!0);return!0}return!1}),!0;case "step":return this.U[b]=c,Da(c,function(a){var b=!1;hb(d,!0)||(gb(d,!0),b=d.Ya(a?1:0),gb(d,!1));return b}),!0}return!1};m.jb=function(){this.Ca&&this.Ca.focus()};function V(a){a=a&&a.C;null==a&&(a=-1);return a}m.W=function(a,b){var c=255,d=V(a);-1!==d&&(c=tb(this.B,d),b&&Wd(a,b));return c};m.mb=function(a,b){var c=65535,d=V(a);-1!==d&&(c=ub(this.B,d),b&&Wd(a,b));return c};m.Ab=function(a,b,c){var d=V(a);-1!==d&&(vb(this.B,d,b),c&&Wd(a,c),rc(this.b,!0))};
|
"";qc(d,a,!0);return!0}return!1}),!0;case "step":return this.V[b]=c,Da(c,function(a){var b=!1;hb(d,!0)||(gb(d,!0),b=d.$a(a?1:0),gb(d,!1));return b}),!0}return!1};m.lb=function(){this.Ea&&this.Ea.focus()};function X(a){a=a&&a.C;null==a&&(a=-1);return a}m.W=function(a,b){var c=255,d=X(a);-1!==d&&(c=tb(this.B,d),b&&Td(a,b));return c};m.Ca=function(a,b){var c=65535,d=X(a);-1!==d&&(c=ub(this.B,d),b&&Td(a,b));return c};m.fa=function(a,b,c){var d=X(a);-1!==d&&(vb(this.B,d,b),c&&Td(a,c),rc(this.b,!0))};
|
||||||
m.Vb=function(a,b,c){var d=V(a);if(-1!==d){var e=this.B,f=d&e.D,h=(d&e.G)>>>e.aa;f!=e.D?e.B[h].zb(f,b&65535,d):(e.B[h++].lb(f,b&255,d),e.B[h&e.V].lb(0,b>>8&255,d+1));c&&Wd(a,c);rc(this.b,!0)}};function U(a){return{C:a,wa:!1}}function Xd(a){return[a.C,a.wa]}function Yd(a){return{C:a[0],wa:a[1]}}
|
m.sb=function(a,b,c){var d=X(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.D)>>>e.ea;f!=e.B?e.T[h].Bb(f,b&65535,d):(e.T[h++].nb(f,b&255,d),e.T[h&e.K].nb(0,b>>8&255,d+1));c&&Td(a,c);rc(this.b,!0)}};function U(a){return{C:a,xa:!1}}function Ud(a){return[a.C,a.xa]}function Vd(a){return{C:a[0],xa:a[1]}}
|
||||||
function Y(a,b,c){var d;c=(c?a.X:a.Fb).C;if(void 0!==b){d=b=Zd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].za[d];if(void 0!==f){d=f.o;void 0!==d&&(e=U(d));break}}if(d=e)return d;c=$d(a,b,void 0)}null!=c&&(d=U(c));return d}function ae(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Wb=be(a,b.Tb=c[2]))}function Wd(a,b){null!=a.C&&(a.C+=b||1)}function Z(a){return q(a,4)}
|
function Y(a,b,c){var d;c=(c?a.Y:a.Gb).C;if(void 0!==b){d=b=Wd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Aa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=U(d));break}}if(d=e)return d;c=Xd(a,b,void 0)}null!=c&&(d=U(c));return d}function Yd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Wb=Zd(a,b.Ub=c[2]))}function Td(a,b){null!=a.C&&(a.C+=b||1)}function Z(a){return q(a,4)}
|
||||||
function ce(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.W(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Od(a,b){a.F=a;a.ga=a.Xb=1073741824;a.Ea=null;var c=be(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Ud)0<=ma(c,d)&&(a.ga|=Ud[d],a.g(d+" messages enabled"))}function Vd(a,b){for(var c in Ud)if(64==Ud[c]){a.$a[c]=b;break}}
|
function $d(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.W(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ld(a,b){a.F=a;a.ha=a.Xb=1073741824;a.Ga=null;var c=Zd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Rd)0<=ma(c,d)&&(a.ha|=Rd[d],a.g(d+" messages enabled"))}function Sd(a,b){for(var c in Rd)if(64==Rd[c]){a.bb[c]=b;break}}
|
||||||
function de(a,b){var c;a=a.toUpperCase();null==b?c=ma(Sd,a):(c=ma(Sd,a.substr(b,3)),0>c&&(c=ma(Sd,a.substr(b,2))));return c}function ee(a,b){var c=0,d=fe(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"}
|
function ae(a,b){var c;a=a.toUpperCase();null==b?c=ma(Pd,a):(c=ma(Pd,a.substr(b,3)),0>c&&(c=ma(Pd,a.substr(b,2))));return c}function be(a,b){var c=0,d=ce(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"}
|
||||||
function fe(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Hc(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Jc(d);break;case 4:c=d.S;break;case 5:c=d.T;break;case 10:c=J(d);break;case 6:c=d.W(J(d));break;case 11:c=d.da;break;case 12:c=d.L;break;case 13:c=d.j<<8|Fc(d)&255}}return c}
|
function ce(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Gc(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Ic(d);break;case 4:c=d.S;break;case 5:c=d.U;break;case 10:c=K(d);break;case 6:c=d.W(K(d));break;case 11:c=d.ca;break;case 12:c=d.L;break;case 13:c=d.j<<8|Fc(d)&255}}return c}
|
||||||
function ge(a,b){b=Zd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=de(b,c+1),0<=e&&(b=b.substr(0,c)+ee(a,e)+b.substr(c+1+Sd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Y(a,e))?(d=e+' "'+ce(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Y(a,e))?(Wd(d),d=e+' "'+
|
function de(a,b){b=Wd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=ae(b,c+1),0<=e&&(b=b.substr(0,c)+be(a,e)+b.substr(c+1+Pd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Y(a,e))?(d=e+' "'+$d(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Y(a,e))?(Td(d),d=e+' "'+
|
||||||
ce(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(U(this.b.L).C));if(!this.Ea||a!=this.Ea)if(this.Ea=a,this.ga&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Wa=0;c.D-=c.b;c.b=0;rc(c)}};function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ga&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
|
$d(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(U(this.b.L).C));if(!this.Ga||a!=this.Ga)if(this.Ga=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Xa=0;c.D-=c.b;c.b=0;rc(c)}};function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ha&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
|
||||||
function Nd(a){var b;if(rd(a)){if(!a.V||!a.V.length){a.V=Array(1E3);for(b=0;b<a.V.length;b++)a.V[b]=U();a.ua=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.V&&a.V.length&&a.g("instruction history buffer freed"),a.ua=0,a.V=[],a.K=[]}m.La=function(a){if(!he(this))return!1;this.b.La(a);return!0};
|
function Kd(a){var b;if(od(a)){if(!a.X||!a.X.length){a.X=Array(1E3);for(b=0;b<a.X.length;b++)a.X[b]=U();a.sa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.X&&a.X.length&&a.g("instruction history buffer freed"),a.sa=0,a.X=[],a.K=[]}m.Ma=function(a){if(!ee(this))return!1;this.b.Ma(a);return!0};
|
||||||
m.Ya=function(a,b,c){if(!he(this))return!1;this.M=0;a||rd(this)&&sd(this,this.b.L,0);try{var d=this.b.Ya(a);0<d&&(this.M+=d,wc(this.b,d,!0),tc(this.b,d),this.fa++)}catch(e){"number"!=typeof e&&(this.M=0,jb(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.ta(b||!1);return 0<this.M};m.ea=function(a){this.b&&this.b.ea(a)};m.ta=function(a){void 0===a&&(a=!0);this.X=U(this.b.L);a&&1!=this.ca?ie(this):je(this)};
|
m.$a=function(a,b,c){if(!ee(this))return!1;this.M=0;a||od(this)&&pd(this,this.b.L,0);try{var d=this.b.$a(a);0<d&&(this.M+=d,wc(this.b,d,!0),tc(this.b,d),this.la++)}catch(e){"number"!=typeof e&&(this.M=0,jb(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.va(b||!1);return 0<this.M};m.da=function(a){this.b&&this.b.da(a)};m.va=function(a){void 0===a&&(a=!0);this.Y=U(this.b.L);a&&1!=this.ga?fe(this):ge(this)};
|
||||||
function he(a){var b;if(b=a.b&&ib(a.b))b=a.b,b.A.ha?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!hb(a.b)?(a=a.b,a.A.Pa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.ya=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.xa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Nd(this);this.fa=this.Ma=0;this.Ea=null;this.M=0;this.X=U(this.b.L);this.A.ka=!1;ke(this);a||this.ta()};
|
function ee(a){var b;if(b=a.b&&ib(a.b))b=a.b,b.A.ia?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!hb(a.b)?(a=a.b,a.A.Qa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.za=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.ya=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Kd(this);this.la=this.Na=0;this.Ga=null;this.M=0;this.Y=U(this.b.L);this.A.ka=!1;he(this);a||this.va()};
|
||||||
m.save=function(){var a=new Gc(this);I(a,0,Xd(this.X));I(a,1,Xd(this.ja));I(a,2,[this.D,this.ma,this.ga]);I(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.X=Yd(a[b++]),this.ja=Yd(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.ma=a[b][1],this.ga|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ca||this.g("running");this.A.ka=!0;this.$b=a;this.ec=b};
|
m.save=function(){var a=new I(this);J(a,0,Ud(this.Y));J(a,1,Ud(this.ma));J(a,2,[this.D,this.na,this.ha]);J(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Vd(a[b++]),this.ma=Vd(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.na=a[b][1],this.ha|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ga||this.g("running");this.A.ka=!0;this.$b=a;this.ec=b};
|
||||||
m.stop=function(a,b){if(this.A.ka){this.A.ka=!1;this.M=b-this.ec;if(!this.ca){var c="stopped";if(this.M){var d=a-this.$b,e=0<d?Math.round(1E3*this.M/d):0,c=c+" (";rd(this)&&(c+=this.fa+" opcodes, ",this.Ma-=this.fa,this.fa=0);c+=this.M+" cycles, "+d+" ms, "+e+" hz)"}else fb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.ta(!0);this.jb();ke(this,this.b.L)}};function rd(a){return 1<a.u.length||!!a.Da}
|
m.stop=function(a,b){if(this.A.ka){this.A.ka=!1;this.M=b-this.ec;if(!this.ga){var c="stopped";if(this.M){var d=a-this.$b,e=0<d?Math.round(1E3*this.M/d):0,c=c+" (";od(this)&&(c+=this.la+" opcodes, ",this.Na-=this.la,this.la=0);c+=this.M+" cycles, "+d+" ms, "+e+" hz)"}else fb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.va(!0);this.lb();he(this,this.b.L)}};function od(a){return 1<a.u.length||!!a.Fa}
|
||||||
function sd(a,b,c){var d=a.b;if(0<c&&(a.Da&&!--a.Da||Yb(a,b,1,a.u)))return!0;0<=c&&a.K.length&&(a.fa++,b=tb(a.B,b),null!=b&&(a.K[b][1]++,b=a.V[a.ua],b.C=d.L,b.wa=!1,++a.ua==a.V.length&&(a.ua=0)));return!1}function Gb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.ea(!0)}function Jb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.ea(!0)}
|
function pd(a,b,c){var d=a.b;if(0<c&&(a.Fa&&!--a.Fa||Yb(a,b,1,a.u)))return!0;0<=c&&a.K.length&&(a.la++,b=tb(a.B,b),null!=b&&(a.K[b][1]++,b=a.X[a.sa],b.C=d.L,b.xa=!1,++a.sa==a.X.length&&(a.sa=0)));return!1}function Gb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.da(!0)}function Jb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.da(!0)}
|
||||||
function Md(a){var b,c;a.u=["bp"];if(void 0!==a.ba)for(b=1;b<a.ba.length;b++){c=a.ba[b];var d=a.b;Zb(d.na[V(c)>>>d.aa],!1)}a.ba=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.b,Zb(d.na[V(c)>>>d.aa],!0);a.H=["bw"];a.Lb=0}m.Fa=function(a,b,c){var d=!0;c||le(this,a,b,!1,!0);if(a!=this.u){var e=V(b);if(-1===e)this.g("invalid address: "+Z(b.C)),d=!1;else{var f=this.b;f.na[e>>>f.aa].Fa(e&f.G,a==this.H)}}d&&(a.push(b),c?b.wa=!0:(me(this,a,a.length-1,"set"),Nd(this)));return d};
|
function Jd(a){var b,c;a.u=["bp"];if(void 0!==a.ba)for(b=1;b<a.ba.length;b++){c=a.ba[b];var d=a.B;Zb(d.T[X(c)>>>d.ea],!1)}a.ba=["br"];if(void 0!==a.I)for(b=1;b<a.I.length;b++)c=a.I[b],d=a.B,Zb(d.T[X(c)>>>d.ea],!0);a.I=["bw"];a.Mb=0}m.Ha=function(a,b,c){var d=!0;c||ie(this,a,b,!1,!0);if(a!=this.u){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.C)),d=!1;else{var f=this.B;f.T[e>>>f.ea].Ha(e&f.B,a==this.I)}}d&&(a.push(b),c?b.xa=!0:(je(this,a,a.length-1,"set"),Kd(this)));return d};
|
||||||
function le(a,b,c,d,e){var f=!1;c=V(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==V(g)&&(!d||g.wa)){f=!0;g.wa||e||me(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(d=a.b,Zb(d.na[c>>>d.aa],b==a.H));g.wa||Nd(a);break}}return f}function ne(a,b){for(var c=1;c<b.length;c++)me(a,b,c);return b.length-1}function me(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.C)+(d?" "+d:c.Tb?' "'+c.Tb+'"':""))}
|
function ie(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==X(g)&&(!d||g.xa)){f=!0;g.xa||e||je(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(d=a.B,Zb(d.T[c>>>d.ea],b==a.I));g.xa||Kd(a);break}}return f}function ke(a,b){for(var c=1;c<b.length;c++)je(a,b,c);return b.length-1}function je(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.C)+(d?" "+d:c.Ub?' "'+c.Ub+'"':""))}
|
||||||
function ke(a,b){if(void 0!==b)Yb(a,b,1,a.u,!0),a.ca=0;else for(var c=1;c<a.u.length;c++){var d=a.u[c];if(d.wa){if(!le(a,a.u,d,!0))break;c=0}}}
|
function he(a,b){if(void 0!==b)Yb(a,b,1,a.u,!0),a.ga=0;else for(var c=1;c<a.u.length;c++){var d=a.u[c];if(d.xa){if(!ie(a,a.u,d,!0))break;c=0}}}
|
||||||
function Yb(a,b,c,d,e){var f=!1;if(!a.Lb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.wa)for(var l=V(g),k=0;k<c;k++)if(b+k==l){var n,f=!0;g.wa&&(le(a,d,g,!0),e=!0);if(n=g.Wb){for(var f=!1,p=0;p<n.length;p++)if(!oe(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var w=p+1;w<n.length&&n[w].indexOf("else");w++)p++;if(w==n.length){f=!0;break}}a.b.A.ka||(f=!0)}if(f){e||me(a,d,h,"hit");break}}}a.Lb--;return f}
|
function Yb(a,b,c,d,e){var f=!1;if(!a.Mb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.xa)for(var l=X(g),k=0;k<c;k++)if(b+k==l){var n,f=!0;g.xa&&(ie(a,d,g,!0),e=!0);if(n=g.Wb){for(var f=!1,p=0;p<n.length;p++)if(!le(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var w=p+1;w<n.length&&n[w].indexOf("else");w++)p++;if(w==n.length){f=!0;break}}a.b.A.ka||(f=!0)}if(f){e||je(a,d,h,"hit");break}}}a.Mb--;return f}
|
||||||
function pe(a,b,c,d){for(var e=U(b.C),f=a.W(b,1),h=a.Cb[f],g="",l=(8086!=a.Z?Qd:Rd)[h[0]],k=h.length-1,n=0,p,w=1;w<=k;w++){var A="";p=h[w];if(void 0!==p&&!(p&16384&&a.Z==Ld)){var u=p&240;if(u){var ca=p&15;ca?n=ca:p|=n;p&61440||(p|=1==w?8192:4096);if(u&32)a:{var A=a,u=p,ca=b,C=" ";switch(u&15){case 1:C=q(A.W(ca,1),2);break;case 2:C=q(A.W(ca,1)<<24>>24,4);break;case 3:C=q(A.mb(ca,2),4);break;default:A="imm("+r(u)+")";break a}8086==A.Z&&u&64?C="["+C+"]":u&16||(C=(A.Z==Ld?"$":"0x")+C);A=C}else u&16?(A=
|
function me(a,b,c,d){for(var e=U(b.C),f=a.W(b,1),h=a.Db[f],g="",l=(8086!=a.aa?Nd:Od)[h[0]],k=h.length-1,n=0,p,w=1;w<=k;w++){var A="";p=h[w];if(void 0!==p&&!(p&16384&&a.aa==Id)){var u=p&240;if(u){var ba=p&15;ba?n=ba:p|=n;p&61440||(p|=1==w?8192:4096);if(u&32)a:{var A=a,u=p,ba=b,C=" ";switch(u&15){case 1:C=q(A.W(ba,1),2);break;case 2:C=q(A.W(ba,1)<<24>>24,4);break;case 3:C=q(A.Ca(ba,2),4);break;default:A="imm("+r(u)+")";break a}8086==A.aa&&u&64?C="["+C+"]":u&16||(C=(A.aa==Id?"$":"0x")+C);A=C}else u&
|
||||||
(p&3840)>>8,u=Sd[A],8086==a.Z&&p&64&&(6==A&&(u="HL"),u="["+u+"]"),A=u):u&128&&(A=(f>>3&7).toString());if(!A||!A.length){g="INVALID";break}0<g.length&&(g+=",");g+=A||"???"}}}f="";h=Z(e.C)+" ";if(-1!==e.C&&-1!==b.C){do if(f+=q(a.W(e,1),2),null==e.C)break;while(e.C!=b.C)}h+=ha(f,10);h=h+(p&32768?"*":" ")+ha(l,7);g&&(h+=" "+g);c&&(h=ha(h,40)+";"+c,h=a.b.A.Oa?h+("cycles="+uc(a.b).toString()+" cs="+q(a.b.i.bb)):h+(null!=d?"="+d.toString():""));return h}
|
16?(A=(p&3840)>>8,u=Pd[A],8086==a.aa&&p&64&&(6==A&&(u="HL"),u="["+u+"]"),A=u):u&128&&(A=(f>>3&7).toString());if(!A||!A.length){g="INVALID";break}0<g.length&&(g+=",");g+=A||"???"}}}f="";h=Z(e.C)+" ";if(-1!==e.C&&-1!==b.C){do if(f+=q(a.W(e,1),2),null==e.C)break;while(e.C!=b.C)}h+=ha(f,10);h=h+(p&32768?"*":" ")+ha(l,7);g&&(h+=" "+g);c&&(h=ha(h,40)+";"+c,h=a.b.A.Pa?h+("cycles="+uc(a.b).toString()+" cs="+q(a.b.i.eb)):h+(null!=d?"="+d.toString():""));return h}
|
||||||
function Oe(a,b){var c;switch(b){case "I":c=a.b.pa&512;break;case "S":c=Qc(a.b);break;case "Z":c=Pc(a.b);break;case "A":c=Oc(a.b);break;case "P":c=Nc(a.b);break;case "C":c=Mc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Pe(a,b){return Sd[b]+"="+ee(a,b)+" "}function Qe(a){return Pe(a,7)+Pe(a,8)+Pe(a,9)+Pe(a,10)+Pe(a,11)+Oe(a,"I")+Oe(a,"S")+Oe(a,"Z")+Oe(a,"A")+Oe(a,"P")+Oe(a,"C")}
|
function Le(a,b){var c;switch(b){case "I":c=a.b.pa&512;break;case "S":c=Pc(a.b);break;case "Z":c=Oc(a.b);break;case "A":c=Nc(a.b);break;case "P":c=Mc(a.b);break;case "C":c=Lc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Me(a,b){return Pd[b]+"="+be(a,b)+" "}function Ne(a){return Me(a,7)+Me(a,8)+Me(a,9)+Me(a,10)+Me(a,11)+Le(a,"I")+Le(a,"S")+Le(a,"Z")+Le(a,"A")+Le(a,"P")+Le(a,"C")}
|
||||||
var Re={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
var Oe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||||
function Se(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
function Pe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||||
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||||
function $d(a,b,c){var d;if(b){b=Zd(a,b);for(var e=0,f=!1,h=b,g=[],l=[],k=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<k.length;){var n=k[e++],p=n.length,n=ia(n);if(!n){f=!0;break}n=Te(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==k.length)break;var n=k[e++],w=n.length;l.length&&Re[n]<Re[l[l.length-1]]&&Se(g,l,1);l.push(n);b=b.substr(p+w)}Se(g,l)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Ue(a,null,
|
function Xd(a,b,c){var d;if(b){b=Wd(a,b);for(var e=0,f=!1,h=b,g=[],l=[],k=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<k.length;){var n=k[e++],p=n.length,n=ia(n);if(!n){f=!0;break}n=Qe(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==k.length)break;var n=k[e++],w=n.length;l.length&&Oe[n]<Oe[l[l.length-1]]&&Pe(g,l,1);l.push(n);b=b.substr(p+w)}Pe(g,l)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Re(a,null,
|
||||||
d))}return d}function Zd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=$d(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=Y(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.mb(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.fa-a.Ma}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
d))}return d}function Wd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Xd(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=Y(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Ca(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.la-a.Na}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
||||||
function Te(a,b,c,d){var e;void 0!==b?(e=de(b),0<=e?e=fe(a,e):(e=a.ra[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
function Qe(a,b,c,d){var e;void 0!==b?(e=ae(b),0<=e?e=ce(a,e):(e=a.ra[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||||
function Ue(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var l=d&255,k=8,n="";void 0===k?k=32:32<k&&(k=32);if(null==l||isNaN(l))for(;0<k--;)n="?"+n;else for(;0<k--;)n=(l&1?"1":"0")+n,l>>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Ve(a,b){if(b)return Ue(a,b,a.ra[b]);var c=0;for(b in a.ra)Ue(a,b,a.ra[b]),c++;return 0<c}Kd.prototype.Eb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
function Re(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var l=d&255,k=8,n="";void 0===k?k=32:32<k&&(k=32);if(null==l||isNaN(l))for(;0<k--;)n="?"+n;else for(;0<k--;)n=(l&1?"1":"0")+n,l>>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Se(a,b){if(b)return Re(a,b,a.ra[b]);var c=0;for(b in a.ra)Re(a,b,a.ra[b]),c++;return 0<c}Hd.prototype.Fb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||||
function We(a,b,c){var d=[],e=V(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.C>>>0,g=f.gc;if(e>=h&&e<h+g){e=ja(f.Bb,[e-h],a.Eb);0<=e?Xe(a,b,e,d):c&&(e=~e,Xe(a,b,e-1,d),Xe(a,b,e,d));break}}return d}function Xe(a,b,c,d){var e={},f=a.J[b].Bb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].za[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
|
function Te(a,b,c){var d=[],e=X(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.C>>>0,g=f.gc;if(e>=h&&e<h+g){e=ja(f.Cb,[e-h],a.Fb);0<=e?Ue(a,b,e,d):c&&(e=~e,Ue(a,b,e-1,d),Ue(a,b,e,d));break}}return d}function Ue(a,b,c,d){var e={},f=a.J[b].Cb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Aa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
|
||||||
function Ye(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.Z?Qd:Rd;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Cb[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
|
function Ve(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.aa?Nd:Od;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Db[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
|
||||||
function Ze(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.g("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.ra[c[1]],!0;var d=$d(a,c[3]);return void 0!==d?(a.ra[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
function We(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Se(a)||a.g("no variables"),!0;if(!c[2])return Se(a,c[1]);if(!c[3])return delete a.ra[c[1]],!0;var d=Xd(a,c[3]);return void 0!==d?(a.ra[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||||
function $e(a,b,c){var d=null;if(b=Y(a,b,!0)){var e=We(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.C-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.C)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
function Xe(a,b,c){var d=null;if(b=Y(a,b,!0)){var e=Te(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.C-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.C)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||||
function af(a,b){switch(b[1]){case "8080":a.Z=Ld;break;case "8086":a.Z=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Ta=c;break;case "start":a.b.i.cb=c;break;case "stop":a.b.i.Va=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.A.Oa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(vc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Ha.toFixed(2)+"Mhz")+" ("+
|
function Ye(a,b){switch(b[1]){case "8080":a.aa=Id;break;case "8086":a.aa=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Ua=c;break;case "start":a.b.i.fb=c;break;case "stop":a.b.i.Wa=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.A.Pa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(vc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Ja.toFixed(2)+"Mhz")+" ("+
|
||||||
a.b.i.Ja+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.Z+"-style mnemonics enabled")}
|
a.b.i.La+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.aa+"-style mnemonics enabled")}
|
||||||
function ie(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=$d(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P=
|
function fe(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Xd(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P=
|
||||||
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.T=g&255;break;case "SP":d.da=g&65535;break;case "PC":H(d,g);a.X=U(d.L);break;case "PS":Dc(d,g);break;case "C":d.I=g?d.I|256:d.I&255;break;case "P":g?Nc(d)||(d.Y^=1):Nc(d)&&(d.Y^=1);break;case "A":d.ia=g?~d.Y&16|d.ia&-17:d.Y&16|d.ia&-17;break;case "Z":d.I=g?d.I&-256:d.I|255;break;case "S":g?Qc(d)||(d.Y^=192):Qc(d)&&(d.Y^=192);break;case "I":d.pa=g?d.pa|512:d.pa&-513;break;default:a.g("unknown register: "+
|
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.U=g&255;break;case "SP":d.ca=g&65535;break;case "PC":H(d,g);a.Y=U(d.L);break;case "PS":Dc(d,g);break;case "C":d.H=g?d.H|256:d.H&255;break;case "P":g?Mc(d)||(d.Z^=1):Mc(d)&&(d.Z^=1);break;case "A":d.ja=g?~d.Z&16|d.ja&-17:d.Z&16|d.ja&-17;break;case "Z":d.H=g?d.H&-256:d.H|255;break;case "S":g?Pc(d)||(d.Z^=192):Pc(d)&&(d.Z^=192);break;case "I":d.pa=g?d.pa|512:d.pa&-513;break;default:a.g("unknown register: "+
|
||||||
e);return}if(!h){a.g("invalid value: "+f);return}rc(d);a.g("updated registers:")}a.g(Qe(a));c&&(a.X=U(d.L),je(a,Z(a.X.C)))}}function bf(a,b){b=ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ge(a,c[2])):$d(a,b,!0)}function cf(a,b,c){var d="t"!=b;c=Te(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return gb(a,!0)&&a.Ya(e,d,!1)},function(){rc(a.b);gb(a,!1)})}
|
e);return}if(!h){a.g("invalid value: "+f);return}rc(d);a.g("updated registers:")}a.g(Ne(a));c&&(a.Y=U(d.L),ge(a,Z(a.Y.C)))}}function Ze(a,b){b=ia(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(de(a,c[2])):Xd(a,b,!0)}function $e(a,b,c){var d="t"!=b;c=Qe(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return gb(a,!0)&&a.$a(e,d,!1)},function(){rc(a.b);gb(a,!1)})}
|
||||||
function je(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=hb(a,!1)||a.ca?a.M:null;var h=null!=f?"cycles":null,g=We(a,b),l=b.C;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var k=g[0]+":";g[2]&&(k+=" "+g[2]);a.g(k)}g[3]&&(h=g[3],f=null);f=pe(a,b,h,f);a.g(f);a.X=b;e-=b.C-l;c++}}}
|
function ge(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=hb(a,!1)||a.ga?a.M:null;var h=null!=f?"cycles":null,g=Te(a,b),l=b.C;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var k=g[0]+":";g[2]&&(k+=" "+g[2]);a.g(k)}g[3]&&(h=g[3],f=null);f=me(a,b,h,f);a.g(f);a.Y=b;e-=b.C-l;c++}}}
|
||||||
function be(a,b,c,d){if(c)if(b){0>a.G&&a.D.length&&(a.G=0);if(0>a.G||b!=a.D[a.G])a.D.splice(0,0,b),a.G=0;a.G--}else a.ma?b="end":b=a.D[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ia(b.substring(c,f))),c=f+1}}return a}
|
function Zd(a,b,c,d){if(c)if(b){0>a.G&&a.D.length&&(a.G=0);if(0>a.G||b!=a.D[a.G])a.D.splice(0,0,b),a.G=0;a.G--}else a.na?b="end":b=a.D[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ia(b.substring(c,f))),c=f+1}}return a}
|
||||||
function oe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ma&&(a.g("ended assemble at "+Z(a.ja.C)),a.X=a.ja,a.ma=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Ea=null;if(ib(a)&&0<b.length){a.ma&&(b="a "+Z(a.ja.C)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),l=1;l<h.length;l++){var k=h.charAt(l);if("?"==g||"r"==g||"a">k||"z"<k){f[0]=h.substr(l);f.unshift(h.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var n=Y(a,f[1],!0);if(n)if(a.ja=
|
function le(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.na&&(a.g("ended assemble at "+Z(a.ma.C)),a.Y=a.ma,a.na=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Ga=null;if(ib(a)&&0<b.length){a.na&&(b="a "+Z(a.ma.C)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),l=1;l<h.length;l++){var k=h.charAt(l);if("?"==g||"r"==g||"a">k||"z"<k){f[0]=h.substr(l);f.unshift(h.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var n=Y(a,f[1],!0);if(n)if(a.ma=
|
||||||
n,void 0===f[2])a.g("begin assemble at "+Z(n.C)),a.ma=!0,rc(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var w=0;w<p.length;w++)a.Ab(n,p[w],1);a.g(pe(a,a.ja))}}break;case "b":a:{var A=f[0],u=f[1],ca=b;if("?"==u)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
|
n,void 0===f[2])a.g("begin assemble at "+Z(n.C)),a.na=!0,rc(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var w=0;w<p.length;w++)a.fa(n,p[w],1);a.g(me(a,a.ma))}}break;case "b":a:{var A=f[0],u=f[1],ba=b;if("?"==u)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
|
||||||
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var C=A.charAt(1);if("l"==C){var va=0,va=va+ne(a,a.u),va=va+ne(a,a.ba);(va+=ne(a,a.H))||a.g("no breakpoints")}else if("n"==C)a.Da=Te(a,u),a.g("break after "+a.Da+" instruction(s)");else if(void 0===u)a.g("missing breakpoint address");else{var x=U();if("*"!=u&&(x=Y(a,u,!0),!x))break a;u=r(x.C);"c"==C?null==x.C?(Md(a),a.g("all breakpoints cleared")):le(a,a.u,x)||le(a,
|
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var C=A.charAt(1);if("l"==C){var ua=0,ua=ua+ke(a,a.u),ua=ua+ke(a,a.ba);(ua+=ke(a,a.I))||a.g("no breakpoints")}else if("n"==C)a.Fa=Qe(a,u),a.g("break after "+a.Fa+" instruction(s)");else if(void 0===u)a.g("missing breakpoint address");else{var x=U();if("*"!=u&&(x=Y(a,u,!0),!x))break a;u=r(x.C);"c"==C?null==x.C?(Jd(a),a.g("all breakpoints cleared")):ie(a,a.u,x)||ie(a,
|
||||||
a.ba,x)||le(a,a.H,x)||a.g("breakpoint missing: "+Z(x.C)):"i"==C?a.g("breakpoint "+(wb(a.B,x.C)?"enabled":"cleared")+": port "+u+" (input)"):"o"==C?a.g("breakpoint "+(Hb(a.B,x.C)?"enabled":"cleared")+": port "+u+" (output)"):null!=x.C&&(ae(a,x,ca),"p"==C?a.Fa(a.u,x):"r"==C?a.Fa(a.ba,x):"w"==C?a.Fa(a.H,x):a.g("unknown breakpoint command: "+C))}}}break;case "c":a.sa&&(a.sa.value="");break;case "d":a:{var W,S=f[0],wa=f[1],La=f[2],zf=f[3];if("?"==wa){var xa="";for(W in Ud)a.$a[W]&&(xa&&(xa+=","),xa+=W);
|
a.ba,x)||ie(a,a.I,x)||a.g("breakpoint missing: "+Z(x.C)):"i"==C?a.g("breakpoint "+(Eb(a.B,x.C)?"enabled":"cleared")+": port "+u+" (input)"):"o"==C?a.g("breakpoint "+(Hb(a.B,x.C)?"enabled":"cleared")+": port "+u+" (output)"):null!=x.C&&(Yd(a,x,ba),"p"==C?a.Ha(a.u,x):"r"==C?a.Ha(a.ba,x):"w"==C?a.Ha(a.I,x):a.g("unknown breakpoint command: "+C))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var V,R=f[0],va=f[1],Ka=f[2],wf=f[3];if("?"==va){var wa="";for(V in Rd)a.bb[V]&&(wa&&(wa+=","),wa+=V);
|
||||||
xa+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");xa.length&&a.g("dump extension commands:\n\t"+xa)}else if("state"==wa){var qe=df(a.w,!0);"console"==La?console.log(qe):(a.sa&&(a.sa.value=""),a.g(qe))}else if("symbols"==wa)for(var Uc=0;Uc<a.J.length;Uc++){var Vc=a.J[Uc],bb;for(bb in Vc.za)if("."!=
|
wa+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");wa.length&&a.g("dump extension commands:\n\t"+wa)}else if("state"==va){var ne=af(a.w,!0);"console"==Ka?console.log(ne):(a.ta&&(a.ta.value=""),a.g(ne))}else if("symbols"==va)for(var Sc=0;Sc<a.J.length;Sc++){var Tc=a.J[Sc],$a;for($a in Tc.Aa)if("."!=
|
||||||
bb.charAt(0)){var re=Vc.za[bb].o;if(void 0!==re){var se=Vc.za[bb].l;se&&(bb=se);a.g(Z(re)+" "+bb)}}}else{if("d"==S){for(W in Ud)if(f[1]==W){var te=a.$a[W];te?(f.shift(),f.shift(),te(f)):a.g("no dump registered for "+wa);break a}wa||(S=a.fc||"db")}else a.fc=S;if("dh"==S){var ue=wa,ve=La,we="",xe=0,T=a.ua,ya=a.V;if(ya.length){var X=+ue||a.Mb,cb=+ve||10;isNaN(X)?X=cb:we="more ";X>ya.length&&(a.g("note: only "+ya.length+" available"),X=ya.length);T-=X;0>T&&(null==ya[ya.length-1].C?(X=T+X,T=0):T+=ya.length);
|
$a.charAt(0)){var oe=Tc.Aa[$a].o;if(void 0!==oe){var pe=Tc.Aa[$a].l;pe&&($a=pe);a.g(Z(oe)+" "+$a)}}}else{if("d"==R){for(V in Rd)if(f[1]==V){var qe=a.bb[V];qe?(f.shift(),f.shift(),qe(f)):a.g("no dump registered for "+va);break a}va||(R=a.fc||"db")}else a.fc=R;if("dh"==R){var re=va,se=Ka,te="",ue=0,S=a.sa,xa=a.X;if(xa.length){var W=+re||a.Nb,ab=+se||10;isNaN(W)?W=ab:te="more ";W>xa.length&&(a.g("note: only "+xa.length+" available"),W=xa.length);S-=W;0>S&&(null==xa[xa.length-1].C?(W=S+W,S=0):S+=xa.length);
|
||||||
var Wc=[];"call"==ve&&(cb=1E5,Wc=["CALL"]);for(void 0!==ue&&a.g(X+" instructions earlier:");0<cb&&T!=a.ua;){var ye=ya[T++];if(null==ye.C)break;var yb=U(ye.C),Af=X--,ze=pe(a,yb,"history",Af);(!Wc.length||0<=ze.indexOf(Wc[0]))&&a.g(ze);yb.sb&&(T+=yb.sb,cb-=yb.sb,X-=yb.sb);T>=ya.length&&(T=0);a.Mb=X;xe++;cb--}}xe||(a.g("no "+we+"history available"),a.Mb=void 0)}else{var dc=Y(a,wa);if(dc){var ec=0;La&&("l"==La.charAt(0)&&(La=La.substr(1)||zf),ec=Te(a,La)>>>0,65536<ec&&(ec=65536));for(var Ma="",fc="dd"==
|
var Uc=[];"call"==se&&(ab=1E5,Uc=["CALL"]);for(void 0!==re&&a.g(W+" instructions earlier:");0<ab&&S!=a.sa;){var ve=xa[S++];if(null==ve.C)break;var wb=U(ve.C),xf=W--,we=me(a,wb,"history",xf);(!Uc.length||0<=we.indexOf(Uc[0]))&&a.g(we);wb.ub&&(S+=wb.ub,ab-=wb.ub,W-=wb.ub);S>=xa.length&&(S=0);a.Nb=W;ue++;ab--}}ue||(a.g("no "+te+"history available"),a.Nb=void 0)}else{var cc=Y(a,va);if(cc){var dc=0;Ka&&("l"==Ka.charAt(0)&&(Ka=Ka.substr(1)||wf),dc=Qe(a,Ka)>>>0,65536<dc&&(dc=65536));for(var La="",ec="dd"==
|
||||||
S?4:"dw"==S?2:1,gc=fc*ec||128,Bf=gc+15>>4||1;Bf--&&0<gc;){var hc=0,Xc=0,zb,Ab="",Yc="",wa=Z(dc.C);for(zb=16;0<zb&&0<gc;zb--){var ic=a.W(dc,1),hc=hc|ic<<(Xc++<<3);Xc==fc&&(Ab+=q(hc,2*fc),Ab+=1==fc?9==zb?"-":" ":" ",hc=Xc=0);Yc+=32<=ic&&128>ic?String.fromCharCode(ic):".";gc--}Ma&&(Ma+="\n");Ma+=wa+" "+Ab+(0==zb?" "+Yc:"")}Ma&&a.g(Ma);a.Fb=dc}}}}break;case "e":if("else"==f[0])break;var jc=1,Ae=255,Be=a.W,Ce=a.Ab;"ew"==f[0]&&(jc=2,Ae=65535,Be=a.mb,Ce=a.Vb);var De=jc<<1,Ee=f[1];if(null==Ee)a.g("edit memory commands:"),
|
R?4:"dw"==R?2:1,fc=ec*dc||128,yf=fc+15>>4||1;yf--&&0<fc;){var gc=0,Vc=0,xb,yb="",Wc="",va=Z(cc.C);for(xb=16;0<xb&&0<fc;xb--){var hc=a.W(cc,1),gc=gc|hc<<(Vc++<<3);Vc==ec&&(yb+=q(gc,2*ec),yb+=1==ec?9==xb?"-":" ":" ",gc=Vc=0);Wc+=32<=hc&&128>hc?String.fromCharCode(hc):".";fc--}La&&(La+="\n");La+=va+" "+yb+(0==xb?" "+Wc:"")}La&&a.g(La);a.Gb=cc}}}}break;case "e":if("else"==f[0])break;var ic=1,xe=255,ye=a.W,ze=a.fa;"ew"==f[0]&&(ic=2,xe=65535,ye=a.Ca,ze=a.sb);var Ae=ic<<1,Be=f[1];if(null==Be)a.g("edit memory commands:"),
|
||||||
a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var kc=Y(a,Ee);if(kc)for(var lc=2;lc<f.length;lc++){var Bb=$d(a,f[lc]);if(void 0===Bb){a.g("unrecognized value: "+f[lc]);break}Bb&~Ae&&a.g("warning: "+q(Bb)+" exceeds "+jc+"-byte value");var Cf=Be.call(a,kc);a.g("changing "+Z(kc.C)+" from 0x"+q(Cf,De)+" to 0x"+q(Bb,De));Ce.call(a,kc,Bb,jc)}}break;case "f":Ye(a,f[1]);break;case "g":a:{var Fe=f[1],Df=b;if(void 0!==Fe){var Zc=Y(a,Fe,!0);if(!Zc)break a;
|
a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var jc=Y(a,Be);if(jc)for(var kc=2;kc<f.length;kc++){var zb=Xd(a,f[kc]);if(void 0===zb){a.g("unrecognized value: "+f[kc]);break}zb&~xe&&a.g("warning: "+q(zb)+" exceeds "+ic+"-byte value");var zf=ye.call(a,jc);a.g("changing "+Z(jc.C)+" from 0x"+q(zf,Ae)+" to 0x"+q(zb,Ae));ze.call(a,jc,zb,ic)}}break;case "f":Ve(a,f[1]);break;case "g":a:{var Ce=f[1],Af=b;if(void 0!==Ce){var Xc=Y(a,Ce,!0);if(!Xc)break a;
|
||||||
ae(a,Zc,Df);a.Fa(a.u,Zc,!0)}a.La(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var $c;if(a.A.ka)$c="halting",a.ea();else{if(hb(a,!0))break a;$c="already halted"}c||a.g($c)}break;case "i":if("if"==f[0]){var ad;var Cb=b.substr(2),Cb=ia(Cb);$d(a,Cb)?(c||a.g("true: "+Cb),ad=!0):(c||a.g("false: "+Cb),ad=!1);ad||(d=!1);break}var bd=f[1];if(bd&&"?"!=bd){var cd=Te(a,bd);if(void 0!==cd){var Ef=xb(a.B,cd);a.g(r(cd)+": "+("0x"+q(Ef,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),
|
Yd(a,Xc,Af);a.Ha(a.u,Xc,!0)}a.Ma(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Yc;if(a.A.ka)Yc="halting",a.da();else{if(hb(a,!0))break a;Yc="already halted"}c||a.g(Yc)}break;case "i":if("if"==f[0]){var Zc;var Ab=b.substr(2),Ab=ia(Ab);Xd(a,Ab)?(c||a.g("true: "+Ab),Zc=!0):(c||a.g("false: "+Ab),Zc=!1);Zc||(d=!1);break}var $c=f[1];if($c&&"?"!=$c){var ad=Qe(a,$c);if(void 0!==ad){var Bf=Fb(a.B,ad);a.g(r(ad)+": "+("0x"+q(Bf,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),
|
||||||
a.g("warning: port accesses can affect hardware state");break;case "k":var Ff=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var dd=0,Ge=U(),Db=U(a.b.da);for(a.g("stack trace for "+Z(Db.C));10>dd;){for(var Na=null,Gf=256;65536>Db.C>>>0;){Ge.C=a.mb(Db,2);if(null==Db.C||!Gf--)break;for(var Hf=a,mc=Ge,He=null,Eb=mc.C,Ie=Eb,ed=1;6>=ed&&Eb;ed++){if(2<ed){mc.C=Eb;var nc=pe(Hf,mc);if(0<=nc.indexOf("CALL")){var Je=nc.indexOf(" ");
|
a.g("warning: port accesses can affect hardware state");break;case "k":var Cf=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var bd=0,De=U(),Bb=U(a.b.ca);for(a.g("stack trace for "+Z(Bb.C));10>bd;){for(var Ma=null,Df=256;65536>Bb.C>>>0;){De.C=a.Ca(Bb,2);if(null==Bb.C||!Df--)break;for(var Ef=a,lc=De,Ee=null,Cb=lc.C,Fe=Cb,cd=1;6>=cd&&Cb;cd++){if(2<cd){lc.C=Cb;var mc=me(Ef,lc);if(0<=mc.indexOf("CALL")){var Ge=mc.indexOf(" ");
|
||||||
if(Eb+(nc.indexOf(" ",Je+1)-Je-1)/2==Ie){He=nc;break}}}Eb--}mc.C=Ie;if(Na=He)break}if(!Na||null==Na)break;var Ke=null;if("ks"==Ff){var Le=Na.match(/[0-9A-F]+$/);Le&&(Ke=$e(a,Le[0]))}Na=ha(Na,50)+" ;"+(Ke||"stack="+Z(Db.C));a.g(Na);dd++}dd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){$e(a,f[1],!0);break}break;case "m":a:{var za,Aa=null,G=f[1];"?"==G&&(G=void 0);if(void 0!==G){var Oa=0;if("all"==G)Oa=1610481663,G=null;else if("on"==G)Aa=!0,G=null;else if("off"==G)Aa=!1,G=null;else{"keys"==
|
if(Cb+(mc.indexOf(" ",Ge+1)-Ge-1)/2==Fe){Ee=mc;break}}}Cb--}lc.C=Fe;if(Ma=Ee)break}if(!Ma||null==Ma)break;var He=null;if("ks"==Cf){var Ie=Ma.match(/[0-9A-F]+$/);Ie&&(He=Xe(a,Ie[0]))}Ma=ha(Ma,50)+" ;"+(He||"stack="+Z(Bb.C));a.g(Ma);bd++}bd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Xe(a,f[1],!0);break}break;case "m":a:{var ya,za=null,G=f[1];"?"==G&&(G=void 0);if(void 0!==G){var Na=0;if("all"==G)Na=1610481663,G=null;else if("on"==G)za=!0,G=null;else if("off"==G)za=!1,G=null;else{"keys"==
|
||||||
G&&(G="key");"kbd"==G&&(G="keyboard");for(za in Ud)if(G==za){Oa=Ud[za];Aa=!!(a.ga&Oa);break}if(!Oa){a.g("unknown message category: "+G);break a}}Oa&&("on"==f[2]?(a.ga|=Oa,Aa=!0):"off"==f[2]&&(a.ga&=~Oa,Aa=!1))}var If=0,Ha="";for(za in Ud)if(!G||G==za){var Jf=!!(a.ga&Ud[za]);if(null===Aa||Aa==Jf)Ha&&(Ha+=","),++If%10||(Ha+="\n\t"),"key"==za&&(za="keys"),Ha+=za}void 0===G&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Aa?Aa?"messages on: ":"messages off: ":"message categories:\n\t")+
|
G&&(G="key");"kbd"==G&&(G="keyboard");for(ya in Rd)if(G==ya){Na=Rd[ya];za=!!(a.ha&Na);break}if(!Na){a.g("unknown message category: "+G);break a}}Na&&("on"==f[2]?(a.ha|=Na,za=!0):"off"==f[2]&&(a.ha&=~Na,za=!1))}var Ff=0,Ga="";for(ya in Rd)if(!G||G==ya){var Gf=!!(a.ha&Rd[ya]);if(null===za||za==Gf)Ga&&(Ga+=","),++Ff%10||(Ga+="\n\t"),"key"==ya&&(ya="keys"),Ga+=ya}void 0===G&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==za?za?"messages on: ":"messages off: ":"message categories:\n\t")+
|
||||||
(Ha||"none"));Nd(a)}break;case "o":var fd=f[1],Kf=f[2];if(fd&&"?"!=fd){var gd=Te(a,fd,"port #"),hd=Te(a,Kf);void 0!==gd&&void 0!==hd&&(Ib(a.B,gd,hd),a.g(r(gd)+": "+("0x"+q(hd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){bf(a,b.substr(5));break}var Me="pr"==f[0]?1:0,Lf=1+Me;if(a.ca)a.g("step in progress");else{var id=U(a.b.L);switch(a.W(id)){case 205:a.ca=Lf,Wd(id,3)}a.ca?(a.Fa(a.u,
|
(Ga||"none"));Kd(a)}break;case "o":var dd=f[1],Hf=f[2];if(dd&&"?"!=dd){var ed=Qe(a,dd,"port #"),fd=Qe(a,Hf);void 0!==ed&&void 0!==fd&&(Ib(a.B,ed,fd),a.g(r(ed)+": "+("0x"+q(fd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){Ze(a,b.substr(5));break}var Je="pr"==f[0]?1:0,If=1+Je;if(a.ga)a.g("step in progress");else{var gd=U(a.b.L);switch(a.W(gd)){case 205:a.ga=If,Td(gd,3)}a.ga?(a.Ha(a.u,
|
||||||
id,!0),a.La()||(a.w&&a.w.jb(),a.ca=0)):cf(a,Me?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}ie(a,f);break;case "s":af(a,f);break;case "t":cf(a,f[0],f[1]);break;case "u":je(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Ze(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.22.0 ("+a.b.Ra+",RELEASE"+(kb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){bf(a,b.substr(1));break}var Fb="commands:",jd;for(jd in Pd)Fb+="\n"+ha(jd,7)+Pd[jd];rd(a)||(Fb+="\nnote: frequency/history disabled if no exec breakpoints");
|
gd,!0),a.Ma()||(a.w&&a.w.lb(),a.ga=0)):$e(a,Je?"tr":"t")}break;case "r":if("reset"==b){a.w&&a.w.reset();break}fe(a,f);break;case "s":Ye(a,f);break;case "t":$e(a,f[0],f[1]);break;case "u":ge(a,f[1],f[2],8);break;case "v":if("var"==f[0]){We(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.22.0 ("+a.b.Sa+",RELEASE"+(kb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){Ze(a,b.substr(1));break}var Db="commands:",hd;for(hd in Md)Db+="\n"+ha(hd,7)+Md[hd];od(a)||(Db+="\nnote: frequency/history disabled if no exec breakpoints");
|
||||||
a.g(Fb);break;default:a.g("unknown command: "+b),d=!1}}}catch(Ne){a.g("debugger error: "+(Ne.stack||Ne.message)),d=!1}return d}function qc(a,b,c){b=be(a,b,c);for(var d in b)if(!oe(a,b[d]))return!1;return!0}Ja(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Kd(d);ab(d,c)}});function Gc(a,b,c){this.id=a.id;this.key=ef(a,b,c);this.F=a.F;ff(this,a.Rb)}
|
a.g(Db);break;default:a.g("unknown command: "+b),d=!1}}}catch(Ke){a.g("debugger error: "+(Ke.stack||Ke.message)),d=!1}return d}function qc(a,b,c){b=Zd(a,b,c);for(var d in b)if(!le(a,b[d]))return!1;return!0}Ja(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=B(c),d=new Hd(d);cb(d,c)}});function I(a,b,c){this.id=a.id;this.key=bf(a,b,c);this.F=a.F;cf(this,a.Sb)}
|
||||||
function ef(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}
|
function bf(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}
|
||||||
Gc.prototype={constructor:Gc,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){ff(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
I.prototype={constructor:I,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){cf(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
||||||
function ff(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function gf(a){var b=!0;if(sa()){var c=JSON.stringify(a[a.id]);ua(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function hf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function jf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:sa()&&(b=ta(a.key))?(a[a.id]=b,a.b=!0):!1}function kf(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
function cf(a,b){a[a.id]={};b&&J(a,"parms",b);a.b=!1}function df(a){var b=!0;if(sa()){var c=JSON.stringify(a[a.id]);Aa(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ef(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function ff(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:sa()&&(b=ta(a.key))?(a[a.id]=b,a.b=!0):!1}function gf(a,b){return a[a.id][b]||null}function J(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||||
function lf(a,b,c){v.call(this,"Computer",a,lf,67108864);this.A.ha=!1;mf(this,b);this.ba=cc(this,"autoPower",a);this.D=0;this.ra=a.busWidth||a.buswidth;this.w=nf;this.V=null;this.J=this.ma=!1;this.ua=cc(this,"url")||"";(Math.random()+.1).toString(36);this.u=of(this);if(this.b=$a("CPU",this.id)){this.F=$a("Debugger",this.id);this.Z=[];for(b=null;b=nb(this,"Video",b);)this.Z.push(b);this.B=new pb({id:this.Hb+".bus",busWidth:this.ra},this.b,this.F);var d,e=Za(this.id);if((this.G=$a("Panel",this.id))&&
|
function hf(a,b,c){v.call(this,"Computer",a,hf,67108864);this.A.ia=!1;jf(this,b);this.ba=nc(this,"autoPower",a);this.D=0;this.ra=a.busWidth||a.buswidth;this.w=kf;this.X=null;this.J=this.na=!1;this.sa=nc(this,"url")||"";(Math.random()+.1).toString(36);this.u=lf(this);if(this.b=bb("CPU",this.id)){this.F=bb("Debugger",this.id);this.aa=[];for(b=null;b=nb(this,"Video",b);)this.aa.push(b);this.B=new pb({id:this.Ib+".bus",busWidth:this.ra},this.b,this.F);var d,e=Za(this.id);if((this.G=bb("Panel",this.id))&&
|
||||||
this.G.sa)for(b=0;b<e.length;b++)d=e[b],d.oa=this.G.oa,d.g=this.G.g,d.sa=this.G.sa;for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.B,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.M=d:this.w=parseInt(d,10));var f;if(a=cc(this,"state")||(f=!0,a.state))b=this.ca=a,f||(this.J=!0,this.w=nf),this.w&&(this.X=new Gc(this,pf),jf(this.X)?b=null:delete this.X);!b&&this.w&&(b=qf(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.M=null,h.J=!1,h.oa("Unable to load machine state from server (error "+
|
this.G.ta)for(b=0;b<e.length;b++)d=e[b],d.oa=this.G.oa,d.g=this.G.g,d.ta=this.G.ta;for(b=0;b<e.length;b++)d=e[b],d.Da&&d.Da(this,this.B,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.M=d:this.w=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.ga=a,f||(this.J=!0,this.w=kf),this.w&&(this.Y=new I(this,mf),ff(this.Y)?b=null:delete this.Y);!b&&this.w&&(b=nf(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.M=null,h.J=!1,h.oa("Unable to load machine state from server (error "+
|
||||||
c+(b?": "+ia(b):"")+")")):(h.V=b,h.ma=!0);E(h)})}else E(this);this.U.power||(this.ba=!0);!c&&this.ba&&rf(this,this.hb)}else t("Unable to find CPU component")}z(lf);var pf="1.22.0",nf=0;function mf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
|
c+(b?": "+ia(b):"")+")")):(h.X=b,h.na=!0);E(h)})}else E(this);this.V.power||(this.ba=!0);!c&&this.ba&&of(this,this.jb)}else t("Unable to find CPU component")}z(hf);var mf="1.22.0",kf=0;function jf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
|
||||||
function cc(a,b,c){var d=b.toLowerCase(),d=Sa[b]||Sa[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function rf(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ib(f)){ib(f,function(){rf(a,b,c)});return}}b.call(a,c)}
|
function nc(a,b,c){var d=b.toLowerCase(),d=Sa[b]||Sa[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function of(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ib(f)){ib(f,function(){of(a,b,c)});return}}b.call(a,c)}
|
||||||
function sf(a,b){var c=new Gc(a,pf,"validate");if(jf(c)&&hf(c)){var d=kf(c,"timestamp"),e=b?kf(b,"timestamp"):"unknown";d!=e&&(a.oa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=lf.prototype;
|
function pf(a,b){var c=new I(a,mf,"validate");if(ff(c)&&ef(c)){var d=gf(c,"timestamp"),e=b?gf(b,"timestamp"):"unknown";d!=e&&(a.oa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=hf.prototype;
|
||||||
m.hb=function(a){void 0===a&&(a=this.w||(this.V?1:nf));if(!this.D){this.D++;var b=!1,c=!1;this.ja=!1;var d=this.X||new Gc(this,pf);if(-1==a)b=!0;else if(a>nf){if(jf(d,this.V)){this.H=new Gc(this,pf,"failsafe");jf(this.H)&&(tf(this,d),a=2,ff(this.H));I(this.H,"timestamp",la());gf(this.H);var e=this.w&&!this.J;if(1==a||qa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=hf(d)){var f=kf(d,"code"),h=kf(d,"data");f&&("ok"==f?jf(d,h):("error"==f&&"no machine state"!=
|
m.jb=function(a){void 0===a&&(a=this.w||(this.X?1:kf));if(!this.D){this.D++;var b=!1,c=!1;this.ma=!1;var d=this.Y||new I(this,mf);if(-1==a)b=!0;else if(a>kf){if(ff(d,this.X)){this.I=new I(this,mf,"failsafe");ff(this.I)&&(qf(this,d),a=2,cf(this.I));J(this.I,"timestamp",la());df(this.I);var e=this.w&&!this.J;if(1==a||qa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ef(d)){var f=gf(d,"code"),h=gf(d,"data");f&&("ok"==f?ff(d,h):("error"==f&&"no machine state"!=
|
||||||
h?(this.oa("Error: "+h),"unable to verify user"==h&&(ua("user",""),this.u=null)):this.g(f+": "+h),ff(d),jf(d)?(c=hf(d),e=!0):c=!1))}e&&sf(this,c?d:null)}else 2==a&&d.clear()}else sf(this);delete this.V;delete this.X}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=uf(this,h,d,b,c));b=[d,a,c];-1!=a?rf(this,this.Gb,b):this.Gb(b)}};
|
h?(this.oa("Error: "+h),"unable to verify user"==h&&(Aa("user",""),this.u=null)):this.g(f+": "+h),cf(d),ff(d)?(c=ef(d),e=!0):c=!1))}e&&pf(this,c?d:null)}else 2==a&&d.clear()}else pf(this);delete this.X;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=rf(this,h,d,b,c));b=[d,a,c];-1!=a?of(this,this.Hb,b):this.Hb(b)}};
|
||||||
function uf(a,b,c,d,e){if(!b.A.ha){b.A.ha=!0;if(b.ya){var f=null;e&&((f=kf(c,b.id))||(f=kf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ya(f,d)&&f&&(t("Unable to restore state for "+b.type),a.ca&&!a.ma?(c.clear(),a.w=nf,window&&window.location.reload()):a.ja=!0,b.ya(null),e=!1)}if(!d&&b.Db)for(a=b.Db.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
function rf(a,b,c,d,e){if(!b.A.ia){b.A.ia=!0;if(b.za){var f=null;e&&((f=gf(c,b.id))||(f=gf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.za(f,d)&&f&&(t("Unable to restore state for "+b.type),a.ga&&!a.na?(c.clear(),a.w=kf,window&&window.location.reload()):a.ma=!0,b.za(null),e=!1)}if(!d&&b.Eb)for(a=b.Eb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||||
m.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.A.ha=!0;var d=this.U.power;d&&(d.textContent="Shutdown");this.fa||(this.g("PC8080 v"+pf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.fa=!0);this.b&&(uf(this,this.b,b,c,a),sc(this.b));this.ja&&(tf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.D=0};
|
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.A.ia=!0;var d=this.V.power;d&&(d.textContent="Shutdown");this.la||(this.g("PC8080 v"+mf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.la=!0);this.b&&(rf(this,this.b,b,c,a),sc(this.b));this.ma&&(qf(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.D=0};
|
||||||
function tf(a,b){if(qa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.ua,d=a.u||"",e=b.toString(),f={app:"PC8080"};f.ver=pf;f.url=c;f.user=d;f.type="bug";f.data=e;na("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function qf(a,b){if(qa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.sa,d=a.u||"",e=b.toString(),f={app:"PC8080"};f.ver=mf;f.url=c;f.user=d;f.type="bug";f.data=e;na("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function df(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Gc(a,pf),h=new Gc(a,pf,"validate"),g=la();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.22.0");I(f,"url",window?window.location.href:null);I(f,"browser",pa());a.b&&a.b.xa&&(c&&a.b.ea(),d=a.b.xa(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.A.ha=!1,!1===d&&(e=null)));for(var g=Za(a.id),l=0;l<g.length;l++){var k=g[l];k.A.ha&&(k.xa&&(d=k.xa(b,c),"object"===typeof d&&I(f,k.id,d)),c&&(k.A.ha=!1,!1===d&&(e=null)))}e&&(c?(g=
|
function af(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new I(a,mf),h=new I(a,mf,"validate"),g=la();J(h,"timestamp",g);J(f,"timestamp",g);J(f,"version","1.22.0");J(f,"url",window?window.location.href:null);J(f,"browser",pa());a.b&&a.b.ya&&(c&&a.b.da(),d=a.b.ya(b,c),"object"===typeof d&&J(f,a.b.id,d),c&&(a.b.A.ia=!1,!1===d&&(e=null)));for(var g=Za(a.id),l=0;l<g.length;l++){var k=g[l];k.A.ia&&(k.ya&&(d=k.ya(b,c),"object"===typeof d&&J(f,k.id,d)),c&&(k.A.ia=!1,!1===d&&(e=null)))}e&&(c?(g=d=
|
||||||
d=!1,b?(a.u&&vf(a,a.u,f.toString()),gf(h)&&gf(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.A.ha=!1,b=a.U.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(this.F&&fb(this,0)&&this.F.message("Resetting "+this.B.type,void 0),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(this.F&&fb(this,0)&&this.F.message("Resetting "+c.type,void 0),c.reset())}};
|
!1,b?(a.u&&sf(a,a.u,f.toString()),df(h)&&df(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.A.ia=!1,b=a.V.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(this.F&&fb(this,0)&&this.F.message("Resetting "+this.B.type,void 0),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(this.F&&fb(this,0)&&this.F.message("Resetting "+c.type,void 0),c.reset())}};
|
||||||
m.start=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
m.start=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||||
m.qa=function(a,b,c){var d=this;switch(b){case "power":return this.U[b]=c,c.onclick=function(){d.D||(d.A.ha?df(d,!1,!0):rf(d,d.hb))},!0;case "reset":return this.U[b]=c,c.onclick=function(){if(d.A.ha&&!d.D)if(d.w&&!d.M){var a=qa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");df(d,a,!0);!a&&d.ca?window&&window.location.reload():d.hb(nf)}else d.reset(),d.b&&sc(d.b)},!0;case "save":if(ea(oa(),"pcjs.org")){c.parentNode.removeChild(c);
|
m.qa=function(a,b,c){var d=this;switch(b){case "power":return this.V[b]=c,c.onclick=function(){d.D||(d.A.ia?af(d,!1,!0):of(d,d.jb))},!0;case "reset":return this.V[b]=c,c.onclick=function(){if(d.A.ia&&!d.D)if(d.w&&!d.M){var a=qa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");af(d,a,!0);!a&&d.ga?window&&window.location.reload():d.jb(kf)}else d.reset(),d.b&&sc(d.b)},!0;case "save":if(ea(oa(),"pcjs.org")){c.parentNode.removeChild(c);
|
||||||
break}this.U[b]=c;c.onclick=function(){var a=of(d,!0);if(a){var b=!!(d.w&&!d.M||d.ca),c=df(d,b);b?vf(d,a,c):d.oa("Resume disabled, machine state not saved")}};return!0}return!1};
|
break}this.V[b]=c;c.onclick=function(){var a=lf(d,!0);if(a){var b=!!(d.w&&!d.M||d.ga),c=af(d,b);b?sf(d,a,c):d.oa("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function of(a,b){var c=a.u;c||(c=ta("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=wf(a,c))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return c}
|
function lf(a,b){var c=a.u;c||(c=ta("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=tf(a,c))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return c}
|
||||||
function wf(a,b){a.u=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ua("user",c.data),a.u=c.data)}catch(e){t(e.message+" ("+d+")")}return a.u}function qf(a){var b=null;a.u&&(b=oa()+"/api/v1/user?req=load&user="+a.u+"&state="+ef(a,pf));return b}
|
function tf(a,b){a.u=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Aa("user",c.data),a.u=c.data)}catch(e){t(e.message+" ("+d+")")}return a.u}function nf(a){var b=null;a.u&&(b=oa()+"/api/v1/user?req=load&user="+a.u+"&state="+bf(a,mf));return b}
|
||||||
function vf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ef(a,pf);d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.oa("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.oa(c),ua("user",""),a.u=null)}}
|
function sf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=bf(a,mf);d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.oa("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.oa(c),Aa("user",""),a.u=null)}}
|
||||||
function nb(a,b,c){a=Za(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.jb=function(){};m.ta=function(a){this.b&&this.b.ta(a);this.G&&this.G.ta(a)};
|
function nb(a,b,c){a=Za(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.lb=function(){};m.va=function(a){this.b&&this.b.va(a);this.G&&this.G.va(a)};
|
||||||
function yc(a,b){for(var c=0;c<a.Z.length;c++)a:{var d=a.Z[c];if(0<=b){if(b&1){d=d.b;d.u=d.u&-8|10;break a}var e=d.b;e.u=e.u&-8|9;if(e=d.M){for(var e=d.B,f=d.J,h=!0,g=d.K>>>e.aa;0<f&&g<e.B.length;)e.B[g].va&&(e.B[g].va=h=!1,e.B[g].Jb=!0),f-=e.la,g++;e=h}if(e)break a}for(var e=d.K,f=e+d.J,h=0,g=d.fa,l=0,k=0,n=d.u,p=0,w=d.D,A=0;e<f;){var u=ub(d.B,e);if(d.M&&u===d.G[h])l+=d.ca;else{d.G[h]=u;var u=u>>8|(u&255)<<8,ca=65536,C=16;l<n&&(n=l);for(var va=0;va<d.ca;va++){var x=(u&(ca>>=1))>>--C,W=d.X,S=l++,
|
function yc(a,b){for(var c=0;c<a.aa.length;c++)a:{var d=a.aa[c];if(0<=b){if(b&1){d=d.b;d.u=d.u&-8|10;break a}var e=d.b;e.u=e.u&-8|9;if(e=d.aa){for(var e=d.B,f=d.M,h=!0,g=d.X>>>e.ea;0<f&&g<e.T.length;)e.T[g].wa&&(e.T[g].wa=h=!1,e.T[g].Kb=!0),f-=e.ua,g++;e=h}if(e)break a}for(var e=d.X,f=e+d.M,h=0,g=d.ra,l=0,k=0,n=d.u,p=0,w=d.D,A=0;e<f;){var u=ub(d.B,e);if(d.aa&&u===d.I[h])l+=d.ma;else{d.I[h]=u;var u=u>>8|(u&255)<<8,ba=65536,C=16;l<n&&(n=l);for(var ua=0;ua<d.ma;ua++){var x=(u&(ba>>=1))>>--C,V=d.ba,R=
|
||||||
x=g[x],S=(S+k*W.width)*x.length;W.data[S]=x[0];W.data[S+1]=x[1];W.data[S+2]=x[2];W.data[S+3]=x[3]}l>p&&(p=l);k<w&&(w=k);k>=A&&(A=k+1)}e+=2;h++;if(l>=d.u&&(l=0,k++,k>d.D))break}d.M=!0;n<d.u&&(d.ja.putImageData(d.X,0,0,n,w,p-n,A-w),d.V.drawImage(d.H,0,0,d.u,d.D,0,0,d.ma,d.ra))}}Ja(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=B(f),h=new lf(h,d,!0);ab(h,f);h.ba&&rf(h,h.hb)}});
|
l++,x=g[x],R=(R+k*V.width)*x.length;V.data[R]=x[0];V.data[R+1]=x[1];V.data[R+2]=x[2];V.data[R+3]=x[3]}l>p&&(p=l);k<w&&(w=k);k>=A&&(A=k+1)}e+=2;h++;if(l>=d.u&&(l=0,k++,k>d.D))break}d.aa=!0;n<d.u&&(d.sa.putImageData(d.ba,0,0,n,w,p-n,A-w),d.G.drawImage(d.J,0,0,d.u,d.D,0,0,d.Y,d.K))}}Ja(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=B(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=B(f),h=new hf(h,d,!0);cb(h,f);h.ba&&of(h,h.jb)}});
|
||||||
Ea.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=$a("Computer",c.id))&&c.fa&&!c.A.ha&&c.hb(-1)}});Ea.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=$a("Computer",c.id))&&c.A.ha&&df(c,!(!c.w||c.M),!0)}});var xf=0;function yf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Mf(g,a,b,c,d,e,f)})}
|
Ea.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=bb("Computer",c.id))&&c.la&&!c.A.ia&&c.jb(-1)}});Ea.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=B(a[b]);(c=bb("Computer",c.id))&&c.A.ia&&af(c,!(!c.w||c.M),!0)}});var uf=0;function vf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Jf(g,a,b,c,d,e,f)})}
|
||||||
function Mf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
function Jf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Nf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Kf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
function Nf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,n=/( [a-z]+=)(['"])(.*?)\2/g;k=n.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
function Kf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,n=/( [a-z]+=)(['"])(.*?)\2/g;k=n.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(d[0],h);Nf(a,b,c)}})}else c(a,null)}
|
"");a=a.replace(d[0],h);Kf(a,b,c)}})}else c(a,null)}
|
||||||
function Of(a,b,c,d){function e(a){if(void 0===g){var b=h&&D(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--xf||Pa(!0));l=!1}var h,g,l=!0;xf++;Xa[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=k:p.appendChild(document.createTextNode(k));n.appendChild(p)}c||
|
function Lf(a,b,c,d){function e(a){if(void 0===g){var b=h&&D(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--uf||Pa(!0));l=!1}var h,g,l=!0;uf++;Xa[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],p=document.createElement("style");p.type="text/css";p.styleSheet?p.styleSheet.cssText=k:p.appendChild(document.createTextNode(k));n.appendChild(p)}c||
|
||||||
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?yf(c,null,null,!1,e,function(d,l){if(l)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--xf||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--xf||Pa(!0)):f("invalid machine element: "+
|
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?vf(c,null,null,!1,e,function(d,l){if(l)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--uf||Pa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--uf||Pa(!0)):f("invalid machine element: "+
|
||||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?yf(b,a,d,!0,e,k):Mf(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPC8080=function(a,b,c,d){Pa(!1);return Of(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?vf(b,a,d,!0,e,k):Jf(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(w){f(w.message)}return l}window.embedPC8080=function(a,b,c,d){Pa(!1);return Lf(a,b,c,d)};window.enableEvents=Pa;window.sendEvent=Qa;
|
||||||
function Pf(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){Qf(b,d)}):Qf(null,d)}else t("Error ("+c+") requesting "+a)}
|
function Mf(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){Nf(b,d)}):Nf(null,d)}else t("Error ("+c+") requesting "+a)}
|
||||||
function Qf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],l={},k;for(k in g){var n=g[k],p=da(k);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[k]);){var w=d[2];w&&(g[w]||(n=n.replace(d[0],"")))}d=k=ba(k)}else"xsl"==p&&(e=k=ba(k));l[k]=n}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
function Nf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],l={},k;for(k in g){var n=g[k],p=da(k);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[k]);){var w=d[2];w&&(g[w]||(n=n.replace(d[0],"")))}d=k=ca(k)}else"xsl"==p&&(e=k=ca(k));l[k]=n}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||||
"©"),k=h,g=null,l="data:application/javascript,",l=Ba("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
"©"),k=h,g=null,l="data:application/javascript,",l=Ba("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
||||||
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
|
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
|
||||||
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=df(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Rb:h}))return!0;na(b,null,!0,function(c,d,e){Pf(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
|
window.savePC=function(a,b,c){var d=bb("Computer",a),e=bb("Debugger",a);if(d){var f=af(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Sb:h}))return!0;na(b,null,!0,function(c,d,e){Mf(c,d,e,[a,ca(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
|
||||||
|
|
|
||||||
|
|
@ -1,129 +1,129 @@
|
||||||
(function(){var m;function aa(a){var b=16,c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
|
(function(){var m;function aa(a){var b=16,c;if(a){b||(b=16);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
|
||||||
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
||||||
function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&","<":"<",">":">",'"':""","'":"'"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var ga=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())}
|
function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&","<":"<",">":">",'"':""","'":"'"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[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())}
|
||||||
function p(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
function p(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||||
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||||
function q(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var ma=null;function na(){if(null==ma){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}ma=a}return ma}function oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
function q(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var ma=null;function na(){if(null==ma){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}ma=a}return ma}function oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||||
function pa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function qa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var ta={init:[],show:[],exit:[]},ua=!1,va=!0;function wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function xa(a){ta.init.push(a)}
|
function pa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function sa(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:[]},ta=!1,ua=!0;function va(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function wa(a){t.init.push(a)}
|
||||||
function ya(a){if(va)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function za(a){!va&&a?(va=!0,ua&&Aa("init")):va=a}function Aa(a){ta[a]&&ya(ta[a])}wa("onload",function(){ua=!0;ya(ta.init)});wa("onpageshow",function(){ya(ta.show)});wa(qa("Opera")||qa("iOS")?"onunload":"onbeforeunload",function(){ya(ta.exit)});
|
function xa(a){if(ua)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function ya(a){!ua&&a?(ua=!0,ta&&za("init")):ua=a}function za(a){t[a]&&xa(t[a])}va("onload",function(){ta=!0;xa(t.init)});va("onpageshow",function(){xa(t.show)});va(sa("Opera")||sa("iOS")?"onunload":"onbeforeunload",function(){xa(t.exit)});
|
||||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Sa=b.comment;this.eb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Ua=this.id.substr(0,b),this.Ta=this.id.substr(b+1)):this.Ta=this.id;this[a]=c;this.g={ia:!1,qa:!1,Ia:!1,K:!1,ba:!1};this.Ba=null;this.g.ba=!1;this.A={};this.I=null;u.push(this)}var Ba=void 0,Ca={};
|
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.ya=b.comment;this.Ya=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Oa=this.id.substr(0,b),this.za=this.id.substr(b+1)):this.za=this.id;this[a]=c;this.h={ea:!1,la:!1,Ia:!1,J:!1,Y:!1};this.Ca=null;this.h.Y=!1;this.B={};this.H=null;v.push(this)}var Aa=void 0,Ba={};
|
||||||
if(window){Ba||(Ba=window.location.search.substr(1));for(var Da,Ea=/\+/g,Ha=/([^&=]+)=?([^&]*)/g;Da=Ha.exec(Ba);)Ca[decodeURIComponent(Da[1].replace(Ea," "))]=decodeURIComponent(Da[2].replace(Ea," "))}function Ia(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
if(window){Aa||(Aa=window.location.search.substr(1));for(var Ca,Da=/\+/g,Ga=/([^&=]+)=?([^&]*)/g;Ca=Ga.exec(Aa);)Ba[decodeURIComponent(Ca[1].replace(Da," "))]=decodeURIComponent(Ca[2].replace(Da," "))}function Ha(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 v(a,b){b||(b=t);a.prototype=Ia(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var u=[],Ja={};function Ka(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
function w(a,b){b||(b=u);a.prototype=Ha(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var v=[],Ia={};function Ja(a,b,c){Ia[a]&&b&&(Ia[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||||
function La(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<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
function Ka(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
||||||
function Ma(a,b){for(var c=z(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.P(g.type,g.binding,h,g.value),l=k.length}}}}
|
function La(a,b){for(var c=B(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=z(h))&&g.binding&&a.P(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||||
function z(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
function B(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
t.prototype={constructor:t,parent:null,toString:function(){return this.name?this.name:this.id||this.type},P:function(a,b,c){switch(b){case "clear":return this.A[b]||(this.A[b]=c,c.onclick=function(a){return function(){a.A.print&&(a.A.print.value="")}}(this)),!0;case "print":return this.A[b]||(this.Z=this.A[b]=c,c.value="",this.O=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),
|
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},P:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.X=this.B[b]=c,c.value="",this.O=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,b,c){this.O(a,"notice",c)}),!0;default:return!1}},log:function(){},O:function(){},status:function(a){this.O(this.Ta+": "+a)},L:function(a,b){b||q(a)},X:function(){return this.g.K=!0},W:function(a,b){b&&(this.g.K=!1);return!0}};function Na(a,b){if(a.g.Ia)return a.g.qa&&(a.g.qa=!1),a.g.Ia=!1;if(a.g.ba)return a.O(a.toString()+" error"),!1;a.g.qa=b;return a.g.qa}function B(a){if(!a.g.ba&&(a.g.ia=!0,a.g.ia)){var b=a.Ba;a.Ba=null;b&&b()}}
|
this.K=function(a,b,c){this.O(a,"notice",c)}),!0;default:return!1}},log:function(){},O:function(){},status:function(a){this.O(this.za+": "+a)},K:function(a,b){b||q(a)},V:function(){return this.h.J=!0},U:function(a,b){b&&(this.h.J=!1);return!0}};function Ma(a,b){if(a.h.Ia)return a.h.la&&(a.h.la=!1),a.h.Ia=!1;if(a.h.Y)return a.O(a.toString()+" error"),!1;a.h.la=b;return a.h.la}function C(a){if(!a.h.Y&&(a.h.ea=!0,a.h.ea)){var b=a.Ca;a.Ca=null;b&&b()}}
|
||||||
function Oa(a,b){b&&(a.g.ia?b():a.Ba=b);return a.g.ia}
|
function Na(a,b){b&&(a.h.ea?b():a.Ca=b);return a.h.ea}
|
||||||
var Pa="undefined"!==typeof ArrayBuffer,Qa=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
var Oa="undefined"!==typeof ArrayBuffer,Pa=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ra(a){t.call(this,"Panel",a,Ra)}v(Ra);m=Ra.prototype;m.P=function(a,b,c,d){return this.v&&this.v.P(a,b,c,d)||this.a&&this.a.P(a,b,c,d)||this.b&&this.b.P(a,b,c,d)?!0:this.parent.P.call(this,a,b,c,d)};m.ca=function(a,b,c,d){this.v=a;this.w=b;this.a=c;this.I=d;this.b=Sa(a,"Keyboard")};m.X=function(a,b){b||Ta();return!0};m.W=function(){return!0};m.fa=function(){};
|
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Qa(a){u.call(this,"Panel",a,Qa)}w(Qa);m=Qa.prototype;m.P=function(a,b,c,d){return this.u&&this.u.P(a,b,c,d)||this.a&&this.a.P(a,b,c,d)||this.b&&this.b.P(a,b,c,d)?!0:this.parent.P.call(this,a,b,c,d)};m.Z=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.b=Ra(a,"Keyboard")};m.V=function(a,b){b||Sa();return!0};m.U=function(){return!0};m.ba=function(){};
|
||||||
function Ta(){for(var a=!1,b=z(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<u.length;h++)if(u[h].id===f){f=u[h];break a}f=null}f||(a=!0,f=new Ra(e));Ma(f,d);a&&B(f)}}xa(Ta);
|
function Sa(){for(var a=!1,b=B(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===f){f=v[h];break a}f=null}f||(a=!0,f=new Qa(e));La(f,d);a&&C(f)}}wa(Sa);
|
||||||
function Ua(a,b,c){t.call(this,"Bus",a,Ua);this.a=b;this.I=c;this.i=a.busWidth||16;this.m=Math.pow(2,this.i);this.h=this.m-1|0;this.C=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.H=1<<this.C;this.w=this.H>>2;this.c=this.H-1;this.f=this.m/this.H|0;this.v=this.f-1;this.j=[];this.l=[];this.o=[];this.B=[];a=new C;Va(a,this.I);this.b=Array(this.f);for(b=0;b<this.f;b++)this.b[b]=a;a=this.a;b=this.b;c=this.C;var d=this.h;a.M=b;a.C=c;a.H=1<<a.C;a.T=a.H-1;a.Oa=b.length;a.Ha=a.Oa-1;a.$=d;B(this)}v(Ua);
|
function Ta(a,b,c){u.call(this,"Bus",a,Ta);this.a=b;this.H=c;this.j=a.busWidth||16;this.s=Math.pow(2,this.j);this.i=this.s-1|0;this.c=16>=this.j?10:20>=this.j?12:24>=this.j?14:15;this.f=1<<this.c;this.A=this.f>>2;this.g=this.f-1;this.l=this.s/this.f|0;this.u=this.l-1;this.o=[];this.m=[];this.C=[];this.D=[];a=new D;Ua(a,this.H);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;C(this)}w(Ta);Ta.prototype.reset=function(){};Ta.prototype.V=function(a,b){b||this.reset();return!0};
|
||||||
Ua.prototype.reset=function(){};Ua.prototype.X=function(a,b){b||this.reset();return!0};function Wa(a,b,c,d){for(var e=b>>>a.C;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.H,g=a.H-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.pa)return f.Ga+=f.pa-b,f.pa=b,!0;if(b>=f.pa+f.Ga){g=f.size-(b-h);g>c&&(g=c);f.Ga=b-f.pa+g;b=h+a.H;c-=g;e++;continue}}return Xa(1,b,c)}b=new C(b,g,a.H,d);Va(b,a.I,f);a.b[e++]=b;b=h+a.H;c-=g}return 0>=c?!0:Xa(2,b,c)}
|
function Va(a,b,c,d){for(var e=b>>>a.c;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.f,g=a.f-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.ka)return f.Ha+=f.ka-b,f.ka=b,!0;if(b>=f.ka+f.Ha){g=f.size-(b-h);g>c&&(g=c);f.Ha=b-f.ka+g;b=h+a.f;c-=g;e++;continue}}return Wa(1,b,c)}b=new D(b,g,a.f,d);Ua(b,a.H,f);a.b[e++]=b;b=h+a.f;c-=g}return 0>=c?!0:Wa(2,b,c)}Ta.prototype.F=function(a){return this.b[(a&this.i)>>>this.c].ta(a&this.g,a)};
|
||||||
Ua.prototype.F=function(a){return this.b[(a&this.h)>>>this.C].oa(a&this.c,a)};function Ya(a,b,c){a.b[(b&a.h)>>>a.C].hb(b&a.c,c&255,b)}function Xa(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Za;if(Pa){var $a=new ArrayBuffer(2);(new DataView($a)).setUint16(0,256,!0);Za=256===(new Uint16Array($a))[0]}else Za=!1;var ab=Za;
|
function Xa(a,b){var c=b&a.g,d=(b&a.i)>>>a.c;return c!=a.g?a.b[d].pb(c,b):a.b[d++].ta(c,b)|a.b[d&a.u].ta(0,b+1)<<8}Ta.prototype.M=function(a,b){this.b[(a&this.i)>>>this.c].ua(a&this.g,b&255,a)};function Ya(a,b,c){a.b[(b&a.i)>>>a.c].ab(b&a.g,c&255,b)}function Za(a,b,c){var d=b&a.g,e=(b&a.i)>>>a.c;d!=a.g?a.b[e].qb(d,c&65535,b):(a.b[e++].ua(d,c&255,b),a.b[e&a.u].ua(0,c>>8&255,b+1))}function Wa(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var $a;
|
||||||
function C(a,b,c,d){this.id=bb+=2;this.a=null;this.pa=a;this.Ga=b;this.size=c||0;this.type=d||cb;this.h=d==db;Va(this);this.R=this.Xa=!1;if(c)if(Pa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),eb(this,ab?fb:gb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;eb(this,hb)}else eb(this)}var cb=0,db=2,bb=0;
|
if(Oa){var ab=new ArrayBuffer(2);(new DataView(ab)).setUint16(0,256,!0);$a=256===(new Uint16Array(ab))[0]}else $a=!1;var bb=$a;
|
||||||
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Pa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Pa)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.R=!0}return!1},m:function(){return 255},w:function(){},A:function(a,b){return this.oa(a++,b++)|this.oa(a,b)<<8},v:function(a,b,c){this.ya(a++,b&255,c++);this.ya(a,b>>8,c)},D:function(a){return this.a[a>>
|
function D(a,b,c,d){this.id=cb+=2;this.a=null;this.ka=a;this.Ha=b;this.size=c||0;this.type=d||db;this.g=d==eb;Ua(this);this.S=this.Ra=!1;if(c)if(Oa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),fb(this,bb?gb:hb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;fb(this,ib)}else fb(this)}var db=0,eb=2,cb=0;
|
||||||
2]>>>((a&3)<<3)&255},M: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},V:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.R=!0},ha:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.R=!0},B:function(a,b){return this.Ma(a,b)},H:function(a,b){return this.fb(a,b)},T:function(a,b,c){this.h||this.hb(a,b,c)},$:function(a,b,
|
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(Oa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Oa)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.S=!0}return!1},o:function(){return 255},B:function(){},m:function(a,b){return this.ta(a++,b++)|this.ta(a,b)<<8},u:function(a,b,c){this.ua(a++,b&255,c++);this.ua(a,b>>8,c)},D:function(a){return this.a[a>>
|
||||||
c){this.h||this.aa(a,b,c)},o:function(a){return this.b[a]},C:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},J:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},N:function(a,b){this.b[a]=b;this.R=!0},U:function(a,b){this.b[a]=b;this.R=!0},Y:function(a,b){this.f.setUint16(a,b,!0);this.R=!0},ga:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.R=!0}};function Va(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&ib(a,jb,!1),(a.j=c.j)&&kb(a,jb,!1))}
|
2]>>>((a&3)<<3)&255},N: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},da:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.S=!0},za:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.S=!0},A:function(a,b){return this.Ma(a,b)},I:function(a,b){return this.Za(a,b)},R:function(a,b,c){this.g||this.ab(a,b,c)},wa:function(a,
|
||||||
function kb(a,b,c){c&&a.j||(a.ya=!a.h&&b[2]||a.w,a.wb=!a.h&&b[3]||a.v);if(c||void 0===c)a.hb=b[2]||a.w,a.aa=b[3]||a.v}function ib(a,b,c){c&&a.i||(a.oa=b[0]||a.m,a.vb=b[1]||a.A);if(c||void 0===c)a.Ma=b[0]||a.m,a.fb=b[1]||a.A}function eb(a,b){b||(b=lb);ib(a,b,void 0);kb(a,b,void 0)}var lb=[],hb=[C.prototype.D,C.prototype.M,C.prototype.V,C.prototype.ha],jb=[C.prototype.B,C.prototype.H,C.prototype.T,C.prototype.$];
|
b,c){this.g||this.xa(a,b,c)},s:function(a){return this.b[a]},C:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},W:function(a,b){this.b[a]=b;this.S=!0},ca:function(a,b){this.b[a]=b;this.S=!0},va:function(a,b){this.f.setUint16(a,b,!0);this.S=!0},ya:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.S=!0}};function Ua(a,b,c){a.H=b;a.i=a.j=0;c&&((a.i=c.i)&&jb(a,kb,!1),(a.j=c.j)&&lb(a,kb,!1))}
|
||||||
if(Pa)var gb=[C.prototype.o,C.prototype.G,C.prototype.N,C.prototype.Y],fb=[C.prototype.C,C.prototype.J,C.prototype.U,C.prototype.ga];
|
function lb(a,b,c){c&&a.j||(a.ua=!a.g&&b[2]||a.B,a.qb=!a.g&&b[3]||a.u);if(c||void 0===c)a.ab=b[2]||a.B,a.xa=b[3]||a.u}function jb(a,b,c){c&&a.i||(a.ta=b[0]||a.o,a.pb=b[1]||a.m);if(c||void 0===c)a.Ma=b[0]||a.o,a.Za=b[1]||a.m}function fb(a,b){b||(b=mb);jb(a,b,void 0);lb(a,b,void 0)}var mb=[],ib=[D.prototype.D,D.prototype.N,D.prototype.da,D.prototype.za],kb=[D.prototype.A,D.prototype.I,D.prototype.R,D.prototype.wa];
|
||||||
function mb(a,b){t.call(this,"CPU",a,mb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.na=c;this.c.Fa=0;this.c.ma=d;this.c.Ja=Math.round(this.c.na/1E4)/100;this.c.ja=this.c.Ja*this.c.ma;this.g.S=!1;this.g.Za=!1;this.g.Wa=a.autoStart;this.g.Ya=!1;this.g.za=!1;this.c.Da=this.c.la=0;this.c.Ea=a.csStart;this.c.ra=a.csInterval;this.c.sa=a.csStop;this.ib=this.Na.bind(this);B(this)}v(mb);var nb=["power","reset"];m=mb.prototype;
|
if(Oa)var hb=[D.prototype.s,D.prototype.G,D.prototype.W,D.prototype.va],gb=[D.prototype.C,D.prototype.L,D.prototype.ca,D.prototype.ya];
|
||||||
m.ca=function(a,b,c,d){this.v=a;this.w=b;this.I=d;for(b=0;b<nb.length;b++)(c=this.A[nb[b]])&&this.v.P(null,nb[b],c);this.Y=(b=Sa(a,"Video"))&&Math.max(b.Y,b.jb)||60;this.ha=Sa(a,"ChipSet");a=ob(a,"autoStart");null!=a&&(this.g.Wa="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.c.Fa=0};m.save=function(){return null};m.restore=function(){return!1};
|
function nb(a,b){u.call(this,"CPU",a,nb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.ja=c;this.c.Ga=0;this.c.ia=d;this.c.Ja=Math.round(this.c.ja/1E4)/100;this.c.fa=this.c.Ja*this.c.ia;this.h.T=!1;this.h.Ta=!1;this.h.Qa=a.autoStart;this.h.Sa=!1;this.h.Aa=!1;this.c.Ea=this.c.ha=0;this.c.Fa=a.csStart;this.c.ma=a.csInterval;this.c.na=a.csStop;this.cb=this.Na.bind(this);C(this)}w(nb);var ob=["power","reset"];m=nb.prototype;
|
||||||
m.X=function(a,b){if(!b){if(a&&this.restore){pb(this);if(!this.restore(a))return!1;qb(this)}else this.reset();this.O("No debugger detected")}rb(this);return!0};m.W=function(a){return a?this.save():!0};function sb(a){(a.g.Wa||void 0===a.A.run)&&a.Na()}m.$a=function(){return 0};function qb(a){void 0===a.c.Ea&&(a.c.Ea=0);void 0===a.c.ra&&(a.c.ra=-1);void 0===a.c.sa&&(a.c.sa=-1);a.g.za=0<=a.c.Ea&&0<a.c.ra;a.g.za&&(a.c.Da=0,a.c.la=a.c.Ea-a.V)}
|
m.Z=function(a,b,c,d){this.u=a;this.o=b;this.H=d;for(b=0;b<ob.length;b++)(c=this.B[ob[b]])&&this.u.P(null,ob[b],c);this.W=(b=Ra(a,"Video"))&&Math.max(b.W,b.bb)||60;this.da=Ra(a,"ChipSet");a=pb(a,"autoStart");null!=a&&(this.h.Qa="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){this.c.Ga=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||||
m.P=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.g.K)a=!0;else{var b=null,c,g=w(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.g.ia);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.g.K);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.g.ia?"powered yet":"ready yet"+(b.Ba?" (waiting for notification)":""))+".");a=!1}a&&(d.g.S?tb(d,!0):d.Na())};a=!0;break;
|
m.V=function(a,b){if(!b){if(a&&this.restore){qb(this);if(!this.restore(a))return!1;rb(this)}else this.reset();this.O("No debugger detected")}sb(this);return!0};m.U=function(a){return a?this.save():!0};function tb(a){(a.h.Qa||void 0===a.B.run)&&a.Na()}m.Ua=function(){return 0};function rb(a){void 0===a.c.Fa&&(a.c.Fa=0);void 0===a.c.ma&&(a.c.ma=-1);void 0===a.c.na&&(a.c.na=-1);a.h.Aa=0<=a.c.Fa&&0<a.c.ma;a.h.Aa&&(a.c.Ea=0,a.c.ha=a.c.Fa-a.N)}
|
||||||
case "speed":this.A[b]=c;a=!0;break;case "setSpeed":this.A[b]=c,c.onclick=function(){ub(d,d.c.ma<<1)},c.textContent=this.c.ja.toFixed(2)+"Mhz",a=!0}return a};function vb(a,b,c){a.V+=b;c&&(a.U=a.a=0)}
|
m.P=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.J)a=!0;else{var b=null,c,g=y(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ea);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.J);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ea?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.h.T?ub(d,!0):d.Na())};a=!0;break;
|
||||||
function xb(a,b){var c=30;c<a.Y&&(c=a.Y);2>c&&(c=2);var d=1;b&&1<a.c.ma&&a.c.da&&(d=a.c.da/a.c.Ja);a.c.ab=Math.round(1E3/30);a.c.pb=Math.floor(a.c.na/c*d);a.c.Ka=Math.floor(a.c.na/30*d);a.c.cb=Math.floor(a.c.na/a.Y*d);a.c.bb=Math.floor(a.c.na/2*d);b||(a.c.va=a.c.Ka,a.c.ua=a.c.cb,a.c.ta=a.c.bb);a.c.La=0}function yb(a){return a.V+a.N+a.U-a.a}function pb(a){a.c.da=0;a.V=a.N=a.U=a.a=0;qb(a);ub(a,1)}
|
case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){wb(d,d.c.ia<<1)},c.textContent=this.c.fa.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.N+=b;c&&(a.L=a.a=0)}
|
||||||
function ub(a,b){if(void 0!==b){.8>a.c.da/a.c.ja&&(b=1);a.c.ma=b;var c=a.c.Ja*a.c.ma;if(a.c.ja!=c){a.c.ja=c;var c=a.c.ja.toFixed(2)+"Mhz",d=a.A.setSpeed;d&&(d.textContent=c);a.O("target speed: "+c)}}vb(a,a.N);a.N=0;a.c.ka=ga();a.c.ea=0;xb(a)}
|
function yb(a,b){var c=30;c<a.W&&(c=a.W);2>c&&(c=2);var d=1;b&&1<a.c.ia&&a.c.$&&(d=a.c.$/a.c.Ja);a.c.Va=Math.round(1E3/30);a.c.jb=Math.floor(a.c.ja/c*d);a.c.Ka=Math.floor(a.c.ja/30*d);a.c.Xa=Math.floor(a.c.ja/a.W*d);a.c.Wa=Math.floor(a.c.ja/2*d);b||(a.c.qa=a.c.Ka,a.c.pa=a.c.Xa,a.c.oa=a.c.Wa);a.c.La=0}function zb(a){return a.N+a.I+a.L-a.a}function qb(a){a.c.$=0;a.N=a.I=a.L=a.a=0;rb(a);wb(a,1)}
|
||||||
m.Na=function(){if(Na(this,!0)){if(!this.g.S){ub(this);this.v&&this.v.start(this.c.ka,yb(this));this.g.S=!0;this.g.Za=!0;this.ha&&this.ha.start();var a=this.A.run;a&&(a.textContent="Halt");this.v&&this.v.fa(!0)}this.c.La>=this.c.na&&xb(this,!0);this.c.wa=0;this.c.Ca=ga();this.c.ea&&(a=this.c.Ca-this.c.ea,a>this.c.ab&&(this.c.ka+=a,this.c.ka>this.c.Ca&&(this.c.ka=this.c.Ca)));try{do{var b=this.g.za?1:this.c.pb;try{this.gb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.U-this.a;this.N+=c;this.c.wa+=
|
function wb(a,b){if(void 0!==b){.8>a.c.$/a.c.fa&&(b=1);a.c.ia=b;var c=a.c.Ja*a.c.ia;if(a.c.fa!=c){a.c.fa=c;var c=a.c.fa.toFixed(2)+"Mhz",d=a.B.setSpeed;d&&(d.textContent=c);a.O("target speed: "+c)}}xb(a,a.I);a.I=0;a.c.ga=ha();a.c.aa=0;yb(a)}
|
||||||
c;vb(this,0,!0);a=c;if(this.g.za){var d=!1;this.c.Da=this.c.Da+this.$a()|0;this.c.la-=a;0>=this.c.la&&(this.c.la+=this.c.ra,d=!0);0<=this.c.sa&&this.c.sa<=yb(this)&&(this.c.ra=this.c.sa=-1,qb(this),tb(this),d=!0);d&&this.O(yb(this)+" cycles: checksum="+n(this.c.Da))}this.c.ua-=c;0>=this.c.ua&&(this.c.ua+=this.c.cb,this.v&&zb(this.v,this.c.Fa++),this.c.Fa>this.Y&&(this.c.Fa=0));this.c.ta-=c;0>=this.c.ta&&(this.c.ta+=this.c.bb,this.v&&this.v.fa());this.c.va-=c;if(0>=this.c.va){this.c.va+=this.c.Ka;
|
m.Na=function(){if(Ma(this,!0)){if(!this.h.T){wb(this);this.u&&this.u.start(this.c.ga,zb(this));this.h.T=!0;this.h.Ta=!0;this.da&&this.da.start();var a=this.B.run;a&&(a.textContent="Halt");this.u&&this.u.ba(!0)}this.c.La>=this.c.ja&&yb(this,!0);this.c.ra=0;this.c.Da=ha();this.c.aa&&(a=this.c.Da-this.c.aa,a>this.c.Va&&(this.c.ga+=a,this.c.ga>this.c.Da&&(this.c.ga=this.c.Da)));try{do{var b=this.h.Aa?1:this.c.jb;try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.L-this.a;this.I+=c;this.c.ra+=
|
||||||
break}}while(this.g.S)}catch(e){tb(this);rb(this);this.v&&this.v.stop(ga(),yb(this));Na(this,!1);b=e.stack||e.message;this.g.ba=!0;this.L(b);return}b=setTimeout;c=this.ib;this.c.ea=ga();a=this.c.ab;this.c.wa&&(a=Math.round(a*this.c.wa/this.c.Ka));a-=this.c.ea-this.c.Ca;if(d=this.c.ea-this.c.ka)this.c.da=Math.round(this.N/(10*d))/100,864E5<=d&&(this.V=0,ub(this));if(0>a||this.c.da<this.c.ja)a=0;this.c.La+=this.c.wa;this.c.ea+=a;b(c,a)}else rb(this),this.v&&this.v.stop(ga(),yb(this))};m.gb=function(){return 0};
|
c;xb(this,0,!0);a=c;if(this.h.Aa){var d=!1;this.c.Ea=this.c.Ea+this.Ua()|0;this.c.ha-=a;0>=this.c.ha&&(this.c.ha+=this.c.ma,d=!0);0<=this.c.na&&this.c.na<=zb(this)&&(this.c.ma=this.c.na=-1,rb(this),ub(this),d=!0);d&&this.O(zb(this)+" cycles: checksum="+n(this.c.Ea))}this.c.pa-=c;0>=this.c.pa&&(this.c.pa+=this.c.Xa,this.u&&Ab(this.u,this.c.Ga++),this.c.Ga>this.W&&(this.c.Ga=0));this.c.oa-=c;0>=this.c.oa&&(this.c.oa+=this.c.Wa,this.u&&this.u.ba());this.c.qa-=c;if(0>=this.c.qa){this.c.qa+=this.c.Ka;
|
||||||
function tb(a,b){a.g.qa&&(a.g.Ia=!0);a.U-=a.a;a.a=0;vb(a,a.N);a.N=0;if(a.g.S){a.g.S=!1;a.ha&&a.ha.stop();var c=a.A.run;c&&(c.textContent="Run")}a.g.Aa=b}function rb(a){a.v&&(zb(a.v,-1),a.v.fa(void 0))}function Ab(a){this.aa=a.model||8080;mb.call(this,a,1E6);this.Pa=Bb;pb(this);this.g.Aa=this.g.kb=!1;this.Ra=0;this.M=[];this.C=this.H=this.T=this.Oa=this.Ha=this.$=0;this.ga=[];this.Qa=0;Cb(this)}v(Ab,mb);function Db(a,b){a.ga.push(b)}m=Ab.prototype;
|
break}}while(this.h.T)}catch(e){ub(this);sb(this);this.u&&this.u.stop(ha(),zb(this));Ma(this,!1);b=e.stack||e.message;this.h.Y=!0;this.K(b);return}b=setTimeout;c=this.cb;this.c.aa=ha();a=this.c.Va;this.c.ra&&(a=Math.round(a*this.c.ra/this.c.Ka));a-=this.c.aa-this.c.Da;if(d=this.c.aa-this.c.ga)this.c.$=Math.round(this.I/(10*d))/100,864E5<=d&&(this.N=0,wb(this));if(0>a||this.c.$<this.c.fa)a=0;this.c.La+=this.c.ra;this.c.aa+=a;b(c,a)}else sb(this),this.u&&this.u.stop(ha(),zb(this))};m.$a=function(){return 0};
|
||||||
m.reset=function(){this.g.S&&tb(this);Cb(this);pb(this);this.g.ba=!1;this.parent.reset.call(this)};function Cb(a){a.b=0;a.h=0;a.s=0;a.i=0;a.u=0;a.j=0;a.l=0;a.B=0;D(a,a.Qa);Eb(a,0);a.G=0}function Fb(a,b){a.Qa=b;D(a,b)}m.$a=function(){var a=this.b+this.h+this.s+this.i+this.u+this.j+this.l|0;return a=a+this.B+this.m+Gb(this)|0};
|
function ub(a,b){a.h.la&&(a.h.Ia=!0);a.L-=a.a;a.a=0;xb(a,a.I);a.I=0;if(a.h.T){a.h.T=!1;a.da&&a.da.stop();var c=a.B.run;c&&(c.textContent="Run")}a.h.Ba=b}function sb(a){a.u&&(Ab(a.u,-1),a.u.ba(void 0))}function Bb(a){this.R=a.model||8080;nb.call(this,a,1E6);this.va=Cb;qb(this);this.h.Ba=this.h.eb=!1;this.xa=0;this.ca=[];this.wa=0;Db(this)}w(Bb,nb);function Eb(a,b){a.ca.push(b)}m=Bb.prototype;m.reset=function(){this.h.T&&ub(this);Db(this);qb(this);this.h.Y=!1;this.parent.reset.call(this)};
|
||||||
m.save=function(){var a=new E(this);F(a,0,[this.b,this.h,this.s,this.i,this.u,this.j,this.l,this.B,this.m,Gb(this)]);F(a,1,[this.G,this.V,this.c.ma]);for(var b=this.w,c=0,d=[],e=0;e<b.f;e++){var f=b.b[e];if(f.R||f.Xa){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var x=f[g],r=g+1;r<f.length&&f[r]===x;)r++;l[k++]=r-g;l[k++]=x;g=r}if(l.length<f.length){f=l;break a}}d[h]=f}}F(a,2,d);return a.data()};
|
function Db(a){a.b=0;a.g=0;a.v=0;a.i=0;a.w=0;a.j=0;a.l=0;a.A=0;E(a,a.wa);Fb(a,0);a.D=0}function Gb(a,b){a.wa=b;E(a,b)}m.Ua=function(){var a=this.b+this.g+this.v+this.i+this.w+this.j+this.l|0;return a=a+this.A+this.m+Hb(this)|0};
|
||||||
m.restore=function(a){var b=a[0];this.b=b[0];this.h=b[1];this.s=b[2];this.i=b[3];this.u=b[4];this.j=b[5];this.l=b[6];this.B=b[7]&65535;D(this,b[8]);Eb(this,b[9]);b=a[1];this.G=b[0];this.V=b[1];ub(this,b[3]);a:{b=this.w;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.w){for(var f=0,h=Array(b.w),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
m.save=function(){var a=new F(this);G(a,0,[this.b,this.g,this.v,this.i,this.w,this.j,this.l,this.A,this.m,Hb(this)]);G(a,1,[this.D,this.N,this.c.ia]);for(var b=this.o,c=0,d=[],e=0;e<b.l;e++){var f=b.b[e];if(f.S||f.Ra){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var x=f[g],r=g+1;r<f.length&&f[r]===x;)r++;l[k++]=r-g;l[k++]=x;g=r}if(l.length<f.length){f=l;break a}}d[h]=f}}G(a,2,d);return a.data()};
|
||||||
m.P=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.A[b]=c;this.Ra++;d=!0;break;default:d=this.parent.P.call(this,a,b,c)}return d};function Hb(a){return a.h<<8|a.s}function Ib(a,b){a.h=b>>8&255;a.s=b&255}function G(a){return a.i<<8|a.u}function Jb(a,b){a.i=b>>8&255;a.u=b&255}function H(a){return a.j<<8|a.l}
|
m.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.v=b[2];this.i=b[3];this.w=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;E(this,b[8]);Fb(this,b[9]);b=a[1];this.D=b[0];this.N=b[1];wb(this,b[3]);a:{b=this.o;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,h=Array(b.A),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
function I(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.m=b&65535}function J(a){return a.f&256?1:0}function Kb(a){return Qa[a.o&255]?4:0}function Gb(a){return a.J&-214|(a.o&128?128:0)|(a.f&255?0:64)|((a.o^a.D)&16?16:0)|Kb(a)|J(a)}function Eb(a,b){a.f=a.o=a.D=0;b&1&&(a.f|=256);b&4||(a.o|=1);b&16&&(a.D|=16);b&64||(a.f|=255);b&128&&(a.o^=192);a.J=a.J&-513|b&512|2}function K(a,b){a.D=a.b^b;return a.o=(a.f=a.b+b)&255}function L(a,b){a.D=a.b^b;return a.o=(a.f=a.b+b+(a.f&256?1:0))&255}
|
m.P=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.B[b]=c;this.xa++;d=!0;break;default:d=this.parent.P.call(this,a,b,c)}return d};function Ib(a){return a.g<<8|a.v}function Jb(a,b){a.g=b>>8&255;a.v=b&255}function H(a){return a.i<<8|a.w}function Kb(a,b){a.i=b>>8&255;a.w=b&255}function I(a){return a.j<<8|a.l}
|
||||||
function M(a,b){a.f=a.o=a.D=a.b&b;(a.b|b)&8&&(a.D^=16);return a.f}function Lb(a,b){a.D=b^255;b=a.o=b+255&255;a.f=a.f&-256|b;return b}function Mb(a,b){a.D=b;b=a.o=b+1&255;a.f=a.f&-256|b;return b}function N(a,b){return a.o=a.f=a.D=a.b|b}function O(a,b){b^=255;a.D=a.b^b;return a.o=(a.f=a.b+b+1^256)&255}function P(a,b){b^=255;a.D=a.b^b;return a.o=(a.f=a.b+b+(a.f&256?0:1)^256)&255}function Q(a,b){return a.o=a.f=a.D=a.b^b}m.F=function(a){return this.M[(a&this.$)>>>this.C].oa(a&this.T,a)};
|
function J(a,b){a.j=b>>8&255;a.l=b&255}function E(a,b){a.m=b&65535}function K(a){return a.f&256?1:0}function Lb(a){return Pa[a.s&255]?4:0}function Hb(a){return a.G&-214|(a.s&128?128:0)|(a.f&255?0:64)|((a.s^a.C)&16?16:0)|Lb(a)|K(a)}function Fb(a,b){a.f=a.s=a.C=0;b&1&&(a.f|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.f|=255);b&128&&(a.s^=192);a.G=a.G&-513|b&512|2}function L(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b)&255}function M(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?1:0))&255}
|
||||||
function Nb(a,b){var c=b&a.T,d=(b&a.$)>>>a.C;if(c<a.T)return a.M[d].vb(c,b);c=a.M[d].oa(c,b);return c|=a.M[d+1&a.Ha].oa(0,b+1)<<8}function R(a,b,c){a.M[(b&a.$)>>>a.C].ya(b&a.T,c&255,b)}function Ob(a,b,c){var d=b&a.T,e=(b&a.$)>>>a.C;d<a.T?a.M[e].wb(d,c&65535,b):(a.M[e++].ya(d,c&255,b),a.M[e&a.Ha].ya(0,c>>8&255,b+1))}function S(a){var b=a.F(a.m);D(a,a.m+1);return b}function T(a){var b=Nb(a,a.m);D(a,a.m+2);return b}function U(a){var b=Nb(a,a.B);a.B=a.B+2&65535;return b}
|
function N(a,b){a.f=a.s=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.f}function Mb(a,b){a.C=b^255;b=a.s=b+255&255;a.f=a.f&-256|b;return b}function Nb(a,b){a.C=b;b=a.s=b+1&255;a.f=a.f&-256|b;return b}function O(a,b){return a.s=a.f=a.C=a.b|b}function P(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+1^256)&255}function Q(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?0:1)^256)&255}function R(a,b){return a.s=a.f=a.C=a.b^b}m.F=function(a){return this.o.F(a)};m.M=function(a,b){this.o.M(a,b)};
|
||||||
function V(a,b){a.B=a.B-2&65535;Ob(a,a.B,b)}function W(a,b,c,d){d=d||2;a.A[b]&&(void 0===c&&(a.g.ba=!0,a.L("Value for "+b+" is invalid"),tb(a)),c=!a.g.S||a.g.Ya?n(c,d):"--------".substr(0,d),a.A[b].textContent!=c&&(a.A[b].textContent=c))}
|
function S(a){var b=a.F(a.m);E(a,a.m+1);return b}function T(a){var b=Xa(a.o,a.m);E(a,a.m+2);return b}function U(a){var b=Xa(a.o,a.A);a.A=a.A+2&65535;return b}function V(a,b){a.A=a.A-2&65535;Za(a.o,a.A,b)}function W(a,b,c,d){d=d||2;a.B[b]&&(void 0===c&&(a.h.Y=!0,a.K("Value for "+b+" is invalid"),ub(a)),c=!a.h.T||a.h.Sa?n(c,d):"--------".substr(0,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
|
||||||
m.fa=function(a){this.Ra&&(a||!this.g.S||this.g.Ya)&&(W(this,"A",this.b),W(this,"B",this.h),W(this,"C",this.s),W(this,"BC",Hb(this),4),W(this,"D",this.i),W(this,"E",this.u),W(this,"DE",G(this),4),W(this,"H",this.j),W(this,"L",this.l),W(this,"HL",H(this),4),W(this,"SP",this.B,4),W(this,"PC",this.m,4),a=Gb(this),W(this,"PS",a,4),W(this,"SF",a&128?1:0,1),W(this,"ZF",a&64?1:0,1),W(this,"AF",a&16?1:0,1),W(this,"PF",a&4?1:0,1),W(this,"CF",a&1?1:0,1));if(a=this.A.speed)a.textContent=this.g.S&&this.c.da?
|
m.ba=function(a){this.xa&&(a||!this.h.T||this.h.Sa)&&(W(this,"A",this.b),W(this,"B",this.g),W(this,"C",this.v),W(this,"BC",Ib(this),4),W(this,"D",this.i),W(this,"E",this.w),W(this,"DE",H(this),4),W(this,"H",this.j),W(this,"L",this.l),W(this,"HL",I(this),4),W(this,"SP",this.A,4),W(this,"PC",this.m,4),a=Hb(this),W(this,"PS",a,4),W(this,"SF",a&128?1:0,1),W(this,"ZF",a&64?1:0,1),W(this,"AF",a&16?1:0,1),W(this,"PF",a&4?1:0,1),W(this,"CF",a&1?1:0,1));if(a=this.B.speed)a.textContent=this.h.T&&this.c.$?this.c.$.toFixed(2)+
|
||||||
this.c.da.toFixed(2)+"Mhz":"Stopped"};m.gb=function(a){this.g.Aa=!0;this.g.kb=!1;this.g.Za=!1;this.U=this.a=a;do{if(a=this.G)this.G&8&&this.J&512?(a=199|(this.G&7)<<3,this.G&=-16,this.J&=-513,this.Pa[a].call(this),a=!0):a=!1,a=!a;if(a&&this.G&16){this.a=0;break}this.Pa[S(this)].call(this)}while(0<this.a);return this.g.Aa?this.U-this.a:void 0===this.g.Aa?0:-1};xa(function(){for(var a=z(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ab(d);Ma(d,c)}});function Pb(){this.a-=4}
|
"Mhz":"Stopped"};m.$a=function(a){this.h.Ba=!0;this.h.eb=!1;this.h.Ta=!1;this.L=this.a=a;do{if(a=this.D)this.D&8&&this.G&512?(a=199|(this.D&7)<<3,this.D&=-16,this.G&=-513,this.va[a].call(this),a=!0):a=!1,a=!a;if(a&&this.D&16){this.a=0;break}this.va[S(this)].call(this)}while(0<this.a);return this.h.Ba?this.L-this.a:void 0===this.h.Ba?0:-1};wa(function(){for(var a=B(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Bb(d);La(d,c)}});function Ob(){this.a-=4}
|
||||||
function Qb(){D(this,T(this));this.a-=10}function Rb(){D(this,U(this));this.a-=10}function Sb(){var a=T(this);V(this,this.m);D(this,a);this.a-=17}
|
function Pb(){E(this,T(this));this.a-=10}function Qb(){E(this,U(this));this.a-=10}function Rb(){var a=T(this);V(this,this.m);E(this,a);this.a-=17}
|
||||||
var Bb=[Pb,function(){Ib(this,T(this));this.a-=10},function(){R(this,Hb(this),this.b);this.a-=7},function(){Ib(this,Hb(this)+1);this.a-=5},function(){this.h=Mb(this,this.h);this.a-=5},function(){this.h=Lb(this,this.h);this.a-=5},function(){this.h=S(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Pb,function(){var a;I(this,a=H(this)+Hb(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(Hb(this));this.a-=7},function(){Ib(this,Hb(this)-
|
var Cb=[Ob,function(){Jb(this,T(this));this.a-=10},function(){this.M(Ib(this),this.b);this.a-=7},function(){Jb(this,Ib(this)+1);this.a-=5},function(){this.g=Nb(this,this.g);this.a-=5},function(){this.g=Mb(this,this.g);this.a-=5},function(){this.g=S(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+Ib(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(Ib(this));this.a-=7},function(){Jb(this,Ib(this)-
|
||||||
1);this.a-=5},function(){this.s=Mb(this,this.s);this.a-=5},function(){this.s=Lb(this,this.s);this.a-=5},function(){this.s=S(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;this.f=this.f&255|a;this.a-=4},Pb,function(){Jb(this,T(this));this.a-=10},function(){R(this,G(this),this.b);this.a-=7},function(){Jb(this,G(this)+1);this.a-=5},function(){this.i=Mb(this,this.i);this.a-=5},function(){this.i=Lb(this,this.i);this.a-=5},function(){this.i=S(this);this.a-=7},function(){var a=this.b<<
|
1);this.a-=5},function(){this.v=Nb(this,this.v);this.a-=5},function(){this.v=Mb(this,this.v);this.a-=5},function(){this.v=S(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ob,function(){Kb(this,T(this));this.a-=10},function(){this.M(H(this),this.b);this.a-=7},function(){Kb(this,H(this)+1);this.a-=5},function(){this.i=Nb(this,this.i);this.a-=5},function(){this.i=Mb(this,this.i);this.a-=5},function(){this.i=S(this);this.a-=7},function(){var a=this.b<<
|
||||||
1;this.b=a&255|this.f>>8;this.f=this.f&255|a&256;this.a-=4},Pb,function(){var a;I(this,a=H(this)+G(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(G(this));this.a-=7},function(){Jb(this,G(this)-1);this.a-=5},function(){this.u=Mb(this,this.u);this.a-=5},function(){this.u=Lb(this,this.u);this.a-=5},function(){this.u=S(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(this.f&256|this.b)>>1;this.f=this.f&255|a;this.a-=4},Pb,function(){I(this,T(this));this.a-=10},function(){Ob(this,
|
1;this.b=a&255|this.f>>8;this.f=this.f&255|a&256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+H(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(H(this));this.a-=7},function(){Kb(this,H(this)-1);this.a-=5},function(){this.w=Nb(this,this.w);this.a-=5},function(){this.w=Mb(this,this.w);this.a-=5},function(){this.w=S(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(this.f&256|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ob,function(){J(this,T(this));this.a-=10},function(){var a=
|
||||||
T(this),H(this));this.a-=16},function(){I(this,H(this)+1);this.a-=5},function(){this.j=Mb(this,this.j);this.a-=5},function(){this.j=Lb(this,this.j);this.a-=5},function(){this.j=S(this);this.a-=7},function(){var a=0,b=J(this);if((this.o^this.D)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=K(this,a);this.f=b?this.f|256:this.f&-257;this.a-=4},Pb,function(){var a;I(this,a=H(this)+H(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){I(this,Nb(this,T(this)));this.a-=16},function(){I(this,
|
T(this);Za(this.o,a,I(this));this.a-=16},function(){J(this,I(this)+1);this.a-=5},function(){this.j=Nb(this,this.j);this.a-=5},function(){this.j=Mb(this,this.j);this.a-=5},function(){this.j=S(this);this.a-=7},function(){var a=0,b=K(this);if((this.s^this.C)&16||9<(this.b&15))a|=6;if(b||154<=this.b)a|=96,b=1;this.b=L(this,a);this.f=b?this.f|256:this.f&-257;this.a-=4},Ob,function(){var a;J(this,a=I(this)+I(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){var a;a=T(this);a=Xa(this.o,a);J(this,
|
||||||
H(this)-1);this.a-=5},function(){this.l=Mb(this,this.l);this.a-=5},function(){this.l=Lb(this,this.l);this.a-=5},function(){this.l=S(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Pb,function(){this.B=T(this)&65535;this.a-=10},function(){R(this,T(this),this.b);this.a-=13},function(){this.B=this.B+1&65535;this.a-=5},function(){var a=H(this);R(this,a,Mb(this,this.F(a)));this.a-=10},function(){var a=H(this);R(this,a,Lb(this,this.F(a)));this.a-=10},function(){R(this,H(this),S(this));this.a-=
|
a);this.a-=16},function(){J(this,I(this)-1);this.a-=5},function(){this.l=Nb(this,this.l);this.a-=5},function(){this.l=Mb(this,this.l);this.a-=5},function(){this.l=S(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Ob,function(){this.A=T(this)&65535;this.a-=10},function(){this.M(T(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=I(this);this.M(a,Nb(this,this.F(a)));this.a-=10},function(){var a=I(this);this.M(a,Mb(this,this.F(a)));this.a-=10},function(){this.M(I(this),
|
||||||
10},function(){this.f|=256;this.a-=4},Pb,function(){var a;I(this,a=H(this)+this.B);this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(T(this));this.a-=13},function(){this.B=this.B-1&65535;this.a-=5},function(){this.b=Mb(this,this.b);this.a-=5},function(){this.b=Lb(this,this.b);this.a-=5},function(){this.b=S(this);this.a-=7},function(){this.f=J(this)?this.f&-257:this.f|256;this.a-=4},function(){this.a-=5},function(){this.h=this.s;this.a-=5},function(){this.h=this.i;this.a-=5},function(){this.h=
|
S(this));this.a-=10},function(){this.f|=256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+this.A);this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(T(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=Nb(this,this.b);this.a-=5},function(){this.b=Mb(this,this.b);this.a-=5},function(){this.b=S(this);this.a-=7},function(){this.f=K(this)?this.f&-257:this.f|256;this.a-=4},function(){this.a-=5},function(){this.g=this.v;this.a-=5},function(){this.g=this.i;this.a-=
|
||||||
this.u;this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=this.F(H(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.s=this.h;this.a-=5},function(){this.a-=5},function(){this.s=this.i;this.a-=5},function(){this.s=this.u;this.a-=5},function(){this.s=this.j;this.a-=5},function(){this.s=this.l;this.a-=5},function(){this.s=this.F(H(this));this.a-=7},function(){this.s=this.b;this.a-=5},function(){this.i=this.h;this.a-=5},function(){this.i=
|
5},function(){this.g=this.w;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=this.l;this.a-=5},function(){this.g=this.F(I(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.v=this.g;this.a-=5},function(){this.a-=5},function(){this.v=this.i;this.a-=5},function(){this.v=this.w;this.a-=5},function(){this.v=this.j;this.a-=5},function(){this.v=this.l;this.a-=5},function(){this.v=this.F(I(this));this.a-=7},function(){this.v=this.b;this.a-=5},function(){this.i=this.g;this.a-=
|
||||||
this.s;this.a-=5},function(){this.a-=5},function(){this.i=this.u;this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.F(H(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.u=this.h;this.a-=5},function(){this.u=this.s;this.a-=5},function(){this.u=this.i;this.a-=5},function(){this.a-=5},function(){this.u=this.j;this.a-=5},function(){this.u=this.l;this.a-=5},function(){this.u=this.F(H(this));this.a-=7},function(){this.u=this.b;
|
5},function(){this.i=this.v;this.a-=5},function(){this.a-=5},function(){this.i=this.w;this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.F(I(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.w=this.g;this.a-=5},function(){this.w=this.v;this.a-=5},function(){this.w=this.i;this.a-=5},function(){this.a-=5},function(){this.w=this.j;this.a-=5},function(){this.w=this.l;this.a-=5},function(){this.w=this.F(I(this));this.a-=7},function(){this.w=
|
||||||
this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.s;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.j=this.u;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=this.F(H(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.s;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.l=this.u;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=
|
this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=this.v;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.j=this.w;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=this.F(I(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.v;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.l=this.w;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},
|
||||||
this.F(H(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){R(this,H(this),this.h);this.a-=7},function(){R(this,H(this),this.s);this.a-=7},function(){R(this,H(this),this.i);this.a-=7},function(){R(this,H(this),this.u);this.a-=7},function(){R(this,H(this),this.j);this.a-=7},function(){R(this,H(this),this.l);this.a-=7},function(){var a=this.m-1;if(this.ga.length)for(var b=0;b<this.ga.length;b++)if(this.ga[b](a))return;this.G|=16;this.a-=7;this.J&512||tb(this)},function(){R(this,H(this),
|
function(){this.l=this.F(I(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.M(I(this),this.g);this.a-=7},function(){this.M(I(this),this.v);this.a-=7},function(){this.M(I(this),this.i);this.a-=7},function(){this.M(I(this),this.w);this.a-=7},function(){this.M(I(this),this.j);this.a-=7},function(){this.M(I(this),this.l);this.a-=7},function(){var a=this.m-1;if(this.ca.length)for(var b=0;b<this.ca.length;b++)if(this.ca[b](a))return;this.D|=16;this.a-=7;this.G&512||ub(this)},function(){this.M(I(this),
|
||||||
this.b);this.a-=7},function(){this.b=this.h;this.a-=5},function(){this.b=this.s;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.u;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=this.F(H(this));this.a-=7},function(){this.a-=5},function(){this.b=K(this,this.h);this.a-=4},function(){this.b=K(this,this.s);this.a-=4},function(){this.b=K(this,this.i);this.a-=4},function(){this.b=K(this,this.u);this.a-=4},function(){this.b=K(this,
|
this.b);this.a-=7},function(){this.b=this.g;this.a-=5},function(){this.b=this.v;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.w;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=this.F(I(this));this.a-=7},function(){this.a-=5},function(){this.b=L(this,this.g);this.a-=4},function(){this.b=L(this,this.v);this.a-=4},function(){this.b=L(this,this.i);this.a-=4},function(){this.b=L(this,this.w);this.a-=4},function(){this.b=L(this,
|
||||||
this.j);this.a-=4},function(){this.b=K(this,this.l);this.a-=4},function(){this.b=K(this,this.F(H(this)));this.a-=7},function(){this.b=K(this,this.b);this.a-=4},function(){this.b=L(this,this.h);this.a-=4},function(){this.b=L(this,this.s);this.a-=4},function(){this.b=L(this,this.i);this.a-=4},function(){this.b=L(this,this.u);this.a-=4},function(){this.b=L(this,this.j);this.a-=4},function(){this.b=L(this,this.l);this.a-=4},function(){this.b=L(this,this.F(H(this)));this.a-=7},function(){this.b=L(this,
|
this.j);this.a-=4},function(){this.b=L(this,this.l);this.a-=4},function(){this.b=L(this,this.F(I(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.v);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.w);this.a-=4},function(){this.b=M(this,this.j);this.a-=4},function(){this.b=M(this,this.l);this.a-=4},function(){this.b=M(this,this.F(I(this)));this.a-=7},function(){this.b=M(this,
|
||||||
this.b);this.a-=4},function(){this.b=O(this,this.h);this.a-=4},function(){this.b=O(this,this.s);this.a-=4},function(){this.b=O(this,this.i);this.a-=4},function(){this.b=O(this,this.u);this.a-=4},function(){this.b=O(this,this.j);this.a-=4},function(){this.b=O(this,this.l);this.a-=4},function(){this.b=O(this,this.F(H(this)));this.a-=7},function(){this.b=O(this,this.b);this.a-=4},function(){this.b=P(this,this.h);this.a-=4},function(){this.b=P(this,this.s);this.a-=4},function(){this.b=P(this,this.i);
|
this.b);this.a-=4},function(){this.b=P(this,this.g);this.a-=4},function(){this.b=P(this,this.v);this.a-=4},function(){this.b=P(this,this.i);this.a-=4},function(){this.b=P(this,this.w);this.a-=4},function(){this.b=P(this,this.j);this.a-=4},function(){this.b=P(this,this.l);this.a-=4},function(){this.b=P(this,this.F(I(this)));this.a-=7},function(){this.b=P(this,this.b);this.a-=4},function(){this.b=Q(this,this.g);this.a-=4},function(){this.b=Q(this,this.v);this.a-=4},function(){this.b=Q(this,this.i);
|
||||||
this.a-=4},function(){this.b=P(this,this.u);this.a-=4},function(){this.b=P(this,this.j);this.a-=4},function(){this.b=P(this,this.l);this.a-=4},function(){this.b=P(this,this.F(H(this)));this.a-=7},function(){this.b=P(this,this.b);this.a-=4},function(){this.b=M(this,this.h);this.a-=4},function(){this.b=M(this,this.s);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.u);this.a-=4},function(){this.b=M(this,this.j);this.a-=4},function(){this.b=M(this,this.l);this.a-=
|
this.a-=4},function(){this.b=Q(this,this.w);this.a-=4},function(){this.b=Q(this,this.j);this.a-=4},function(){this.b=Q(this,this.l);this.a-=4},function(){this.b=Q(this,this.F(I(this)));this.a-=7},function(){this.b=Q(this,this.b);this.a-=4},function(){this.b=N(this,this.g);this.a-=4},function(){this.b=N(this,this.v);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.w);this.a-=4},function(){this.b=N(this,this.j);this.a-=4},function(){this.b=N(this,this.l);this.a-=
|
||||||
4},function(){this.b=M(this,this.F(H(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=Q(this,this.h);this.a-=4},function(){this.b=Q(this,this.s);this.a-=4},function(){this.b=Q(this,this.i);this.a-=4},function(){this.b=Q(this,this.u);this.a-=4},function(){this.b=Q(this,this.j);this.a-=4},function(){this.b=Q(this,this.l);this.a-=4},function(){this.b=Q(this,this.F(H(this)));this.a-=7},function(){this.b=Q(this,this.b);this.a-=4},function(){this.b=N(this,this.h);this.a-=
|
4},function(){this.b=N(this,this.F(I(this)));this.a-=7},function(){this.b=N(this,this.b);this.a-=4},function(){this.b=R(this,this.g);this.a-=4},function(){this.b=R(this,this.v);this.a-=4},function(){this.b=R(this,this.i);this.a-=4},function(){this.b=R(this,this.w);this.a-=4},function(){this.b=R(this,this.j);this.a-=4},function(){this.b=R(this,this.l);this.a-=4},function(){this.b=R(this,this.F(I(this)));this.a-=7},function(){this.b=R(this,this.b);this.a-=4},function(){this.b=O(this,this.g);this.a-=
|
||||||
4},function(){this.b=N(this,this.s);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.u);this.a-=4},function(){this.b=N(this,this.j);this.a-=4},function(){this.b=N(this,this.l);this.a-=4},function(){this.b=N(this,this.F(H(this)));this.a-=7},function(){this.b=N(this,this.b);this.a-=4},function(){O(this,this.h);this.a-=4},function(){O(this,this.s);this.a-=4},function(){O(this,this.i);this.a-=4},function(){O(this,this.u);this.a-=4},function(){O(this,this.j);this.a-=
|
4},function(){this.b=O(this,this.v);this.a-=4},function(){this.b=O(this,this.i);this.a-=4},function(){this.b=O(this,this.w);this.a-=4},function(){this.b=O(this,this.j);this.a-=4},function(){this.b=O(this,this.l);this.a-=4},function(){this.b=O(this,this.F(I(this)));this.a-=7},function(){this.b=O(this,this.b);this.a-=4},function(){P(this,this.g);this.a-=4},function(){P(this,this.v);this.a-=4},function(){P(this,this.i);this.a-=4},function(){P(this,this.w);this.a-=4},function(){P(this,this.j);this.a-=
|
||||||
4},function(){O(this,this.l);this.a-=4},function(){O(this,this.F(H(this)));this.a-=7},function(){O(this,this.b);this.a-=4},function(){this.f&255&&(D(this,U(this)),this.a-=6);this.a-=5},function(){Ib(this,U(this));this.a-=10},function(){var a=T(this);this.f&255&&D(this,a);this.a-=10},Qb,function(){var a=T(this);this.f&255&&(V(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){V(this,Hb(this));this.a-=11},function(){this.b=K(this,S(this));this.a-=7},function(){V(this,this.m);D(this,0);this.a-=
|
4},function(){P(this,this.l);this.a-=4},function(){P(this,this.F(I(this)));this.a-=7},function(){P(this,this.b);this.a-=4},function(){this.f&255&&(E(this,U(this)),this.a-=6);this.a-=5},function(){Jb(this,U(this));this.a-=10},function(){var a=T(this);this.f&255&&E(this,a);this.a-=10},Pb,function(){var a=T(this);this.f&255&&(V(this,this.m),E(this,a),this.a-=6);this.a-=11},function(){V(this,Ib(this));this.a-=11},function(){this.b=L(this,S(this));this.a-=7},function(){V(this,this.m);E(this,0);this.a-=
|
||||||
11},function(){this.f&255||(D(this,U(this)),this.a-=6);this.a-=5},Rb,function(){var a=T(this);this.f&255||D(this,a);this.a-=10},Qb,function(){var a=T(this);this.f&255||(V(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){this.b=L(this,S(this));this.a-=7},function(){V(this,this.m);D(this,8);this.a-=11},function(){J(this)||(D(this,U(this)),this.a-=6);this.a-=5},function(){Jb(this,U(this));this.a-=10},function(){var a=T(this);J(this)||D(this,a);this.a-=10},function(){for(var a=S(this),b=this.w,
|
11},function(){this.f&255||(E(this,U(this)),this.a-=6);this.a-=5},Qb,function(){var a=T(this);this.f&255||E(this,a);this.a-=10},Pb,function(){var a=T(this);this.f&255||(V(this,this.m),E(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=M(this,S(this));this.a-=7},function(){V(this,this.m);E(this,8);this.a-=11},function(){K(this)||(E(this,U(this)),this.a-=6);this.a-=5},function(){Kb(this,U(this));this.a-=10},function(){var a=T(this);K(this)||E(this,a);this.a-=10},function(){for(var a=S(this),b=this.o,
|
||||||
c=this.b,d=this.m+-2&65535,e=1,f=0;0<e;){var h=b.l[a],g=b.B[a]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h&&h[0])h[0](a,k,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=T(this);J(this)||(V(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){V(this,G(this));this.a-=11},function(){this.b=O(this,S(this));this.a-=7},function(){V(this,this.m);D(this,16);this.a-=11},function(){J(this)&&(D(this,U(this)),this.a-=6);this.a-=5},Rb,function(){var a=T(this);J(this)&&D(this,a);this.a-=10},function(){for(var a=
|
c=this.b,d=this.m+-2&65535,e=1,f=0;0<e;){var h=b.m[a],g=b.D[a]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h&&h[0])h[0](a,k,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=T(this);K(this)||(V(this,this.m),E(this,a),this.a-=6);this.a-=11},function(){V(this,H(this));this.a-=11},function(){this.b=P(this,S(this));this.a-=7},function(){V(this,this.m);E(this,16);this.a-=11},function(){K(this)&&(E(this,U(this)),this.a-=6);this.a-=5},Qb,function(){var a=T(this);K(this)&&E(this,a);this.a-=10},function(){for(var a=
|
||||||
S(this),b=this.w,c=this.m+-2&65535,d=1,e=0,f=0;0<d;){var h=b.j[a],g=b.o[a]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h&&h[0]&&(l=h[0](a,c),void 0===l?l=k:l&=k);e|=l<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=T(this);J(this)&&(V(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){this.b=P(this,S(this));this.a-=7},function(){V(this,this.m);D(this,24);this.a-=11},function(){Kb(this)||(D(this,U(this)),this.a-=6);this.a-=5},function(){I(this,U(this));this.a-=10},function(){var a=
|
S(this),b=this.o,c=this.m+-2&65535,d=1,e=0,f=0;0<d;){var h=b.o[a],g=b.C[a]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h&&h[0]&&(l=h[0](a,c),void 0===l?l=k:l&=k);e|=l<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=T(this);K(this)&&(V(this,this.m),E(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=Q(this,S(this));this.a-=7},function(){V(this,this.m);E(this,24);this.a-=11},function(){Lb(this)||(E(this,U(this)),this.a-=6);this.a-=5},function(){J(this,U(this));this.a-=10},function(){var a=
|
||||||
T(this);Kb(this)||D(this,a);this.a-=10},function(){var a=U(this);V(this,H(this));I(this,a);this.a-=18},function(){var a=T(this);Kb(this)||(V(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){V(this,H(this));this.a-=11},function(){this.b=M(this,S(this));this.a-=7},function(){V(this,this.m);D(this,32);this.a-=11},function(){Kb(this)&&(D(this,U(this)),this.a-=6);this.a-=5},function(){D(this,H(this));this.a-=5},function(){var a=T(this);Kb(this)&&D(this,a);this.a-=10},function(){var a=H(this);I(this,
|
T(this);Lb(this)||E(this,a);this.a-=10},function(){var a=U(this);V(this,I(this));J(this,a);this.a-=18},function(){var a=T(this);Lb(this)||(V(this,this.m),E(this,a),this.a-=6);this.a-=11},function(){V(this,I(this));this.a-=11},function(){this.b=N(this,S(this));this.a-=7},function(){V(this,this.m);E(this,32);this.a-=11},function(){Lb(this)&&(E(this,U(this)),this.a-=6);this.a-=5},function(){E(this,I(this));this.a-=5},function(){var a=T(this);Lb(this)&&E(this,a);this.a-=10},function(){var a=I(this);J(this,
|
||||||
G(this));Jb(this,a);this.a-=5},function(){var a=T(this);Kb(this)&&(V(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){this.b=Q(this,S(this));this.a-=7},function(){V(this,this.m);D(this,40);this.a-=11},function(){this.o&128||(D(this,U(this)),this.a-=6);this.a-=5},function(){var a=U(this);Eb(this,a);this.b=a>>8;this.a-=10},function(){var a=T(this);this.o&128||D(this,a);this.a-=10},function(){this.J&=-513;this.a-=4},function(){var a=T(this);this.o&128||(V(this,this.m),D(this,a),this.a-=6);
|
H(this));Kb(this,a);this.a-=5},function(){var a=T(this);Lb(this)&&(V(this,this.m),E(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=R(this,S(this));this.a-=7},function(){V(this,this.m);E(this,40);this.a-=11},function(){this.s&128||(E(this,U(this)),this.a-=6);this.a-=5},function(){var a=U(this);Fb(this,a);this.b=a>>8;this.a-=10},function(){var a=T(this);this.s&128||E(this,a);this.a-=10},function(){this.G&=-513;this.a-=4},function(){var a=T(this);this.s&128||(V(this,this.m),E(this,a),this.a-=6);
|
||||||
this.a-=11},function(){V(this,Gb(this)&255|this.b<<8);this.a-=11},function(){this.b=N(this,S(this));this.a-=7},function(){V(this,this.m);D(this,48);this.a-=11},function(){this.o&128&&(D(this,U(this)),this.a-=6);this.a-=5},function(){this.B=H(this)&65535;this.a-=5},function(){var a=T(this);this.o&128&&D(this,a);this.a-=10},function(){this.J|=512;this.a-=4},function(){var a=T(this);this.o&128&&(V(this,this.m),D(this,a),this.a-=6);this.a-=11},Sb,function(){O(this,S(this));this.a-=7},function(){V(this,
|
this.a-=11},function(){V(this,Hb(this)&255|this.b<<8);this.a-=11},function(){this.b=O(this,S(this));this.a-=7},function(){V(this,this.m);E(this,48);this.a-=11},function(){this.s&128&&(E(this,U(this)),this.a-=6);this.a-=5},function(){this.A=I(this)&65535;this.a-=5},function(){var a=T(this);this.s&128&&E(this,a);this.a-=10},function(){this.G|=512;this.a-=4},function(){var a=T(this);this.s&128&&(V(this,this.m),E(this,a),this.a-=6);this.a-=11},Rb,function(){P(this,S(this));this.a-=7},function(){V(this,
|
||||||
this.m);D(this,56);this.a-=11}];function X(a){t.call(this,"ChipSet",a,X);var b=a.model;b&&!Tb[b]&&q("Unrecognized ChipSet model: "+b);this.aa=Tb[b]||Ub;a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}v(X);var Ub=1978.1,Tb={SI1978:Ub};m=X.prototype;m.P=function(){return!1};
|
this.m);E(this,56);this.a-=11}];function X(a){u.call(this,"ChipSet",a,X);var b=a.model;b&&!Sb[b]&&q("Unrecognized ChipSet model: "+b);this.R=Sb[b]||Tb;a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);C(this)}w(X);var Tb=1978.1,Sb={SI1978:Tb};m=X.prototype;m.P=function(){return!1};
|
||||||
m.ca=function(a,b,c,d){this.w=b;this.a=c;this.I=d;this.v=a;if(this.aa==Ub){var e;a=Vb;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.j[g]?q("Input port 0x"+n(g,4)+" already registered"):c.j[g]=[h,!1]}var k;e=Wb;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.l[d]?q("Output port 0x"+n(d,4)+" already registered"):f.l[d]=[c,!1]}};
|
m.Z=function(a,b,c,d){this.o=b;this.a=c;this.H=d;this.u=a;if(this.R==Tb){var e;a=Ub;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.o[g]?q("Input port 0x"+n(g,4)+" already registered"):c.o[g]=[h,!1]}var k;e=Vb;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.m[d]?q("Output port 0x"+n(d,4)+" already registered"):f.m[d]=[c,!1]}};
|
||||||
m.X=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.W=function(a){return a?this.save():!0};m.reset=function(){this.f=this.h=this.c=this.b=this.l=this.j=this.i=0};m.save=function(){var a=new E(this);this.aa==Ub&&F(a,0,[this.i,this.j,this.l,this.b,this.c,this.f,this.h]);return a.data()};m.restore=function(a){a=a[0];this.aa==Ub&&(this.i=a[0],this.j=a[1],this.l=a[2],this.b=a[3],this.c=a[4],this.f=a[5],this.h=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
m.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.U=function(a){return a?this.save():!0};m.reset=function(){this.f=this.g=this.c=this.b=this.l=this.j=this.i=0};m.save=function(){var a=new F(this);this.R==Tb&&G(a,0,[this.i,this.j,this.l,this.b,this.c,this.f,this.g]);return a.data()};m.restore=function(a){a=a[0];this.R==Tb&&(this.i=a[0],this.j=a[1],this.l=a[2],this.b=a[3],this.c=a[4],this.f=a[5],this.g=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
||||||
m.mb=function(){return this.i};m.nb=function(){return this.j};m.ob=function(){return this.l};m.lb=function(){return this.b>>8-this.c&255};m.qb=function(a,b){this.c=b};m.sb=function(a,b){this.f=b};m.rb=function(a,b){this.b=b<<8|this.b>>8};m.tb=function(a,b){this.h=b};m.ub=function(){};var Vb={0:X.prototype.mb,1:X.prototype.nb,2:X.prototype.ob,3:X.prototype.lb},Wb={2:X.prototype.qb,3:X.prototype.sb,4:X.prototype.rb,5:X.prototype.tb,6:X.prototype.ub};
|
m.gb=function(){return this.i};m.hb=function(){return this.j};m.ib=function(){return this.l};m.fb=function(){return this.b>>8-this.c&255};m.kb=function(a,b){this.c=b};m.mb=function(a,b){this.f=b};m.lb=function(a,b){this.b=b<<8|this.b>>8};m.nb=function(a,b){this.g=b};m.ob=function(){};var Ub={0:X.prototype.gb,1:X.prototype.hb,2:X.prototype.ib,3:X.prototype.fb},Vb={2:X.prototype.kb,3:X.prototype.mb,4:X.prototype.lb,5:X.prototype.nb,6:X.prototype.ob};
|
||||||
xa(function(){for(var a=z(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new X(d);Ma(d,c)}});function Xb(a){t.call(this,"ROM",a,Xb);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.h=a.file;this.m=ba(this.h);if(this.h){a=this.h;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Yb(c,a,b,f)})}}v(Xb);var Zb=[0,5];
|
wa(function(){for(var a=B(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new X(d);La(d,c)}});function Wb(a){u.call(this,"ROM",a,Wb);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ba(this.g);if(this.g){a=this.g;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Xb(c,a,b,f)})}}w(Wb);var Yb=[0,5];
|
||||||
Xb.prototype.ca=function(a,b,c,d){this.w=b;this.a=c;this.I=d;$b(this)};Xb.prototype.X=function(){this.i&&(this.I&&this.I.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Xb.prototype.W=function(){return!0};
|
Wb.prototype.Z=function(a,b,c,d){this.o=b;this.a=c;this.H=d;Zb(this)};Wb.prototype.V=function(){this.i&&(this.H&&this.H.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Wb.prototype.U=function(){return!0};
|
||||||
function Yb(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ka(a.Ua,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(g){a.L("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
function Xb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ja(a.Oa,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(g){a.K("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||||
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);$b(a)}}
|
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);Zb(a)}}
|
||||||
function $b(a){if(!Oa(a))if(!a.h)B(a);else if(a.b&&a.w){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.g.ba=!0;a.L(b)}else if(ac(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.w,h=d.c,g=[],k=d.j>>>f.C;0<h&&k<f.b.length;)g.push(f.b[k++]),h-=f.H;f=d.w;d=d.c;h=0;for(e>>>=f.C;0<d&&e<f.b.length;){k=g[h++];if(!k)break;f.b[e++]=k;d-=f.H}}delete a.b}B(a)}}
|
function Zb(a){if(!Na(a))if(!a.g)C(a);else if(a.b&&a.o){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.Y=!0;a.K(b)}else if($b(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.o,h=d.c,g=[],k=d.j>>>f.c;0<h&&k<f.b.length;)g.push(f.b[k++]),h-=f.f;f=d.o;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){k=g[h++];if(!k)break;f.b[e++]=k;d-=f.f}}delete a.b}C(a)}}
|
||||||
function ac(a,b){if(Wa(a.w,b,a.c,a.l?1:db)){var c;for(c=0;c<a.b.length;c++)Ya(a.w,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Zb.length;c++)Ya(a.w,Zb[c],118);Db(a.a,function(a){return function(b){if(0<=Zb.indexOf(b)){var c=!1,h=a.a,g=a.I;if(5==b)switch(c=!0,h.s){case 2:bc(a,String.fromCharCode(h.u));break;case 9:for(var k=G(h),l="",x=255;x--;){var r=a.a.F(k++);if(36==r)break;l+=String.fromCharCode(r)}bc(a,l);break;default:c=!1}c?Rb.call(h):g&&(a.O("\nCP/M vector 0x"+n(b,4)),D(h,b),tb(g));b=!0}else b=!1;
|
function $b(a,b){if(Va(a.o,b,a.c,a.l?1:eb)){var c;for(c=0;c<a.b.length;c++)Ya(a.o,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Yb.length;c++)Ya(a.o,Yb[c],118);Eb(a.a,function(a){return function(b){if(0<=Yb.indexOf(b)){var c=!1,h=a.a,g=a.H;if(5==b)switch(c=!0,h.v){case 2:ac(a,String.fromCharCode(h.w));break;case 9:for(var k=H(h),l="",x=255;x--;){var r=a.a.F(k++);if(36==r)break;l+=String.fromCharCode(r)}ac(a,l);break;default:c=!1}c?Qb.call(h):g&&(a.O("\nCP/M vector 0x"+n(b,4)),E(h,b),ub(g));b=!0}else b=!1;
|
||||||
return b}}(a));Fb(a.a,b)}return!0}return!1}function bc(a,b){b=b.replace(/\r/g,"");a.Z&&(a.Z.value+=b,a.Z.scrollTop=a.Z.scrollHeight)}xa(function(){for(var a=z(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Xb(d);Ma(d,c)}});function cc(a){t.call(this,"RAM",a,cc);this.f=a.addr;this.c=a.size;this.b=!1}v(cc);m=cc.prototype;m.ca=function(a,b,c,d){this.w=b;this.a=c;this.I=d;B(this)};m.X=function(a,b){b||this.reset();return!0};m.W=function(a){return a?this.save():!0};
|
return b}}(a));Gb(a.a,b)}return!0}return!1}function ac(a,b){b=b.replace(/\r/g,"");a.X&&(a.X.value+=b,a.X.scrollTop=a.X.scrollHeight)}wa(function(){for(var a=B(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Wb(d);La(d,c)}});function bc(a){u.call(this,"RAM",a,bc);this.f=a.addr;this.c=a.size;this.b=!1}w(bc);m=bc.prototype;m.Z=function(a,b,c,d){this.o=b;this.a=c;this.H=d;C(this)};m.V=function(a,b){b||this.reset();return!0};m.U=function(a){return a?this.save():!0};
|
||||||
m.reset=function(){!this.b&&this.c&&Wa(this.w,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};xa(function(){for(var a=z(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new cc(d);Ma(d,c)}});function dc(a){t.call(this,"Keyboard",a,dc);B(this)}v(dc);
|
m.reset=function(){!this.b&&this.c&&Va(this.o,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};wa(function(){for(var a=B(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new bc(d);La(d,c)}});function cc(a){u.call(this,"Keyboard",a,cc);C(this)}w(cc);
|
||||||
xa(function(){for(var a=z(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new dc(d);Ma(d,c)}});
|
wa(function(){for(var a=B(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new cc(d);La(d,c)}});
|
||||||
function ec(a,b,c){t.call(this,"Video",a,ec);this.J=a.screenWidth;this.M=a.screenHeight;this.j=a.bufferAddr;this.b=a.bufferCols;this.c=a.bufferRows;this.B=a.bufferBits||1;this.jb=a.interruptRate;this.Y=a.refreshRate||60;this.m=c;this.G=[[0,0,0,255],[255,255,255,255]];this.o=this.m.createImageData(this.b,this.c);this.h=document.createElement("canvas");this.h.width=this.b;this.h.height=this.c;this.H=this.h.getContext("2d")}v(ec);
|
function dc(a,b,c){u.call(this,"Video",a,dc);this.s=a.screenWidth;this.j=a.screenHeight;this.m=a.bufferAddr;this.b=a.bufferCols;this.c=a.bufferRows;this.D=a.bufferBits||1;this.bb=a.interruptRate;this.W=a.refreshRate||60;this.f=c;this.L=a.screenRotation;90==this.L&&(this.f.translate(0,this.j),this.f.rotate(-this.L*Math.PI/180),this.f.scale(this.j/this.s,this.s/this.j));this.N=[[0,0,0,255],[255,255,255,255]];this.C=this.f.createImageData(this.b,this.c);this.i=document.createElement("canvas");this.i.width=
|
||||||
ec.prototype.ca=function(a,b,c,d){this.v=a;this.w=b;this.a=c;this.I=d;this.i=(this.b*this.B>>3)*this.c;Wa(this.w,this.j,this.i,3)&&(this.C=this.i>>1,this.D=16/this.B|0,this.l=!1,void 0===this.f||this.f.length!=this.C)&&(this.f=Array(this.C));B(this)};
|
this.b;this.i.height=this.c;this.R=this.i.getContext("2d")}w(dc);dc.prototype.Z=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.l=(this.b*this.D>>3)*this.c;Va(this.o,this.m,this.l,3)&&(this.G=this.l>>1,this.I=16/this.D|0,this.A=!1,void 0===this.g||this.g.length!=this.G)&&(this.g=Array(this.G));C(this)};
|
||||||
xa(function(){for(var a=z(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
wa(function(){for(var a=B(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
||||||
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ca.aspect);f&&.3<=f&&3.33>=f&&(wa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");qa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e=e.getContext("2d");d=new ec(d,0,e);Ma(d,c)}});
|
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ba.aspect);f&&.3<=f&&3.33>=f&&(va("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");sa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e=e.getContext("2d");d=new dc(d,0,e);La(d,c)}});
|
||||||
function E(a,b,c){this.id=a.id;this.key=fc(a,b,c);this.I=a.I;gc(this,a.eb)}function fc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
function F(a,b,c){this.id=a.id;this.key=ec(a,b,c);this.H=a.H;fc(this,a.Ya)}function ec(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}
|
||||||
E.prototype={constructor:E,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){gc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
F.prototype={constructor:F,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){fc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
||||||
function gc(a,b){a[a.id]={};b&&F(a,"parms",b);a.a=!1}function hc(a){var b=!0;if(na()){var c=JSON.stringify(a[a.id]);pa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ic(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function jc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:na()&&(b=oa(a.key))?(a[a.id]=b,a.a=!0):!1}function kc(a,b){return a[a.id][b]||null}function F(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
function fc(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function gc(a){var b=!0;if(na()){var c=JSON.stringify(a[a.id]);pa(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function hc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function ic(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:na()&&(b=oa(a.key))?(a[a.id]=b,a.a=!0):!1}function jc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||||
function lc(a,b,c){t.call(this,"Computer",a,lc);this.g.K=!1;mc(this,b);this.C=ob(this,"autoPower",a);this.f=0;this.M=a.busWidth||a.buswidth;this.b=nc;this.v=null;this.j=this.J=!1;this.N=ob(this,"url")||"";(Math.random()+.1).toString(36);this.c=oc(this);if(this.a=La("CPU",this.id)){this.I=La("Debugger",this.id);this.B=[];for(b=null;b=Sa(this,"Video",b);)this.B.push(b);this.w=new Ua({id:this.Ua+".bus",busWidth:this.M},this.a,this.I);var d,e=w(this.id);if((this.h=La("Panel",this.id))&&this.h.Z)for(b=
|
function kc(a,b,c){u.call(this,"Computer",a,kc);this.h.J=!1;lc(this,b);this.C=pb(this,"autoPower",a);this.f=0;this.N=a.busWidth||a.buswidth;this.b=mc;this.u=null;this.j=this.L=!1;this.R=pb(this,"url")||"";(Math.random()+.1).toString(36);this.c=nc(this);if(this.a=Ka("CPU",this.id)){this.H=Ka("Debugger",this.id);this.A=[];for(b=null;b=Ra(this,"Video",b);)this.A.push(b);this.o=new Ta({id:this.Oa+".bus",busWidth:this.N},this.a,this.H);var d,e=y(this.id);if((this.g=Ka("Panel",this.id))&&this.g.X)for(b=
|
||||||
0;b<e.length;b++)d=e[b],d.L=this.h.L,d.O=this.h.O,d.Z=this.h.Z;for(b=0;b<e.length;b++)d=e[b],d.ca&&d.ca(this,this.w,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=ob(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.j=!0,this.b=nc),this.b&&(this.o=new E(this,Y),jc(this.o)?b=null:delete this.o);!b&&this.b&&(b=pc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.L("Unable to load machine state from server (error "+
|
0;b<e.length;b++)d=e[b],d.K=this.g.K,d.O=this.g.O,d.X=this.g.X;for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.o,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=pb(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.j=!0,this.b=mc),this.b&&(this.s=new F(this,Z),ic(this.s)?b=null:delete this.s);!b&&this.b&&(b=oc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.K("Unable to load machine state from server (error "+
|
||||||
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.v=b,h.J=!0);B(h)})}else B(this);this.A.power||(this.C=!0);!c&&this.C&&qc(this,this.xa)}else q("Unable to find CPU component")}v(lc);var Y="1.22.0",nc=0;function mc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.l=b}
|
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.L=!0);C(h)})}else C(this);this.B.power||(this.C=!0);!c&&this.C&&pc(this,this.sa)}else q("Unable to find CPU component")}w(kc);var Z="1.22.0",mc=0;function lc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.l=b}
|
||||||
function ob(a,b,c){var d=b.toLowerCase(),d=Ca[b]||Ca[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function qc(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Oa(f)){Oa(f,function(){qc(a,b,c)});return}}b.call(a,c)}
|
function pb(a,b,c){var d=b.toLowerCase(),d=Ba[b]||Ba[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Na(f)){Na(f,function(){pc(a,b,c)});return}}b.call(a,c)}
|
||||||
function rc(a,b){var c=new E(a,Y,"validate");if(jc(c)&&ic(c)){var d=kc(c,"timestamp"),e=b?kc(b,"timestamp"):"unknown";d!=e&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=lc.prototype;
|
function qc(a,b){var c=new F(a,Z,"validate");if(ic(c)&&hc(c)){var d=jc(c,"timestamp"),e=b?jc(b,"timestamp"):"unknown";d!=e&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=kc.prototype;
|
||||||
m.xa=function(a){void 0===a&&(a=this.b||(this.v?1:nc));if(!this.f){this.f++;var b=!1,c=!1;this.H=!1;var d=this.o||new E(this,Y);if(-1==a)b=!0;else if(a>nc){if(jc(d,this.v)){this.i=new E(this,Y,"failsafe");jc(this.i)&&(sc(this,d),a=2,gc(this.i));F(this.i,"timestamp",ia());hc(this.i);var e=this.b&&!this.j;if(1==a||ka("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ic(d)){var f=kc(d,"code"),h=kc(d,"data");f&&("ok"==f?jc(d,h):("error"==f&&"no machine state"!=
|
m.sa=function(a){void 0===a&&(a=this.b||(this.u?1:mc));if(!this.f){this.f++;var b=!1,c=!1;this.I=!1;var d=this.s||new F(this,Z);if(-1==a)b=!0;else if(a>mc){if(ic(d,this.u)){this.i=new F(this,Z,"failsafe");ic(this.i)&&(rc(this,d),a=2,fc(this.i));G(this.i,"timestamp",ia());gc(this.i);var e=this.b&&!this.j;if(1==a||ka("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=hc(d)){var f=jc(d,"code"),h=jc(d,"data");f&&("ok"==f?ic(d,h):("error"==f&&"no machine state"!=
|
||||||
h?(this.L("Error: "+h),"unable to verify user"==h&&(pa("user",""),this.c=null)):this.O(f+": "+h),gc(d),jc(d)?(c=ic(d),e=!0):c=!1))}e&&rc(this,c?d:null)}else 2==a&&d.clear()}else rc(this);delete this.v;delete this.o}e=w(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=tc(this,h,d,b,c));b=[d,a,c];-1!=a?qc(this,this.Va,b):this.Va(b)}};
|
h?(this.K("Error: "+h),"unable to verify user"==h&&(pa("user",""),this.c=null)):this.O(f+": "+h),fc(d),ic(d)?(c=hc(d),e=!0):c=!1))}e&&qc(this,c?d:null)}else 2==a&&d.clear()}else qc(this);delete this.u;delete this.s}e=y(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=sc(this,h,d,b,c));b=[d,a,c];-1!=a?pc(this,this.Pa,b):this.Pa(b)}};
|
||||||
function tc(a,b,c,d,e){if(!b.g.K){b.g.K=!0;if(b.X){var f=null;e&&((f=kc(c,b.id))||(f=kc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.X(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.J?(c.clear(),a.b=nc,window&&window.location.reload()):a.H=!0,b.X(null),e=!1)}if(!d&&b.Sa)for(a=b.Sa.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
function sc(a,b,c,d,e){if(!b.h.J){b.h.J=!0;if(b.V){var f=null;e&&((f=jc(c,b.id))||(f=jc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.V(f,d)&&f&&(q("Unable to restore state for "+b.type),a.D&&!a.L?(c.clear(),a.b=mc,window&&window.location.reload()):a.I=!0,b.V(null),e=!1)}if(!d&&b.ya)for(a=b.ya.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||||
m.Va=function(a){var b=a[0],c=0>a[1];a=a[2];this.g.K=!0;var d=this.A.power;d&&(d.textContent="Shutdown");this.G||(this.O("PC8080 v"+Y+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.G=!0);this.a&&(tc(this,this.a,b,c,a),sb(this.a));this.H&&(sc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
m.Pa=function(a){var b=a[0],c=0>a[1];a=a[2];this.h.J=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.G||(this.O("PC8080 v"+Z+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.G=!0);this.a&&(sc(this,this.a,b,c,a),tb(this.a));this.I&&(rc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||||
function sc(a,b){if(ka("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.N,d=a.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Y;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function rc(a,b){if(ka("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.R,d=a.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Z;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function uc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new E(a,Y),h=new E(a,Y,"validate"),g=ia();F(h,"timestamp",g);F(f,"timestamp",g);F(f,"version","1.22.0");F(f,"url",window?window.location.href:null);F(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.W&&(c&&tb(a.a),d=a.a.W(b,c),"object"===typeof d&&F(f,a.a.id,d),c&&(a.a.g.K=!1,!1===d&&(e=null)));for(var g=w(a.id),k=0;k<g.length;k++){var l=g[k];l.g.K&&(l.W&&(d=l.W(b,c),"object"===typeof d&&F(f,l.id,d)),c&&(l.g.K=!1,!1===d&&(e=
|
function tc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,Z),h=new F(a,Z,"validate"),g=ia();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.22.0");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.U&&(c&&ub(a.a),d=a.a.U(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.h.J=!1,!1===d&&(e=null)));for(var g=y(a.id),k=0;k<g.length;k++){var l=g[k];l.h.J&&(l.U&&(d=l.U(b,c),"object"===typeof d&&G(f,l.id,d)),c&&(l.h.J=!1,!1===d&&(e=
|
||||||
null)))}e&&(c?(g=d=!1,b?(a.c&&vc(a,a.c,f.toString()),hc(h)&&hc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.g.K=!1,b=a.A.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.w&&this.w.reset&&this.w.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.w&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
null)))}e&&(c?(g=d=!1,b?(a.c&&uc(a,a.c,f.toString()),gc(h)&&gc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.J=!1,b=a.B.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.o&&this.o.reset&&this.o.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||||
m.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
m.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||||
m.P=function(a,b,c){var d=this;switch(b){case "power":return this.A[b]=c,c.onclick=function(){d.f||(d.g.K?uc(d,!1,!0):qc(d,d.xa))},!0;case "reset":return this.A[b]=c,c.onclick=function(){if(d.g.K&&!d.f)if(d.b&&!d.m){var a=ka("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");uc(d,a,!0);!a&&d.D?window&&window.location.reload():d.xa(nc)}else d.reset(),d.a&&sb(d.a)},!0;case "save":if(da(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.A[b]=
|
m.P=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.f||(d.h.J?tc(d,!1,!0):pc(d,d.sa))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.J&&!d.f)if(d.b&&!d.m){var a=ka("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");tc(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(mc)}else d.reset(),d.a&&tb(d.a)},!0;case "save":if(da(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.B[b]=
|
||||||
c;c.onclick=function(){var a=oc(d,!0);if(a){var b=!!(d.b&&!d.m||d.D),c=uc(d,b);b?vc(d,a,c):d.L("Resume disabled, machine state not saved")}};return!0}return!1};
|
c;c.onclick=function(){var a=nc(d,!0);if(a){var b=!!(d.b&&!d.m||d.D),c=tc(d,b);b?uc(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function oc(a,b){var c=a.c;c||(c=oa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=wc(a,c))||a.L("The user ID is invalid."))):b&&a.L("Browser local storage is not available"));return c}
|
function nc(a,b){var c=a.c;c||(c=oa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=vc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
||||||
function wc(a,b){a.c=null;var c=p(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(pa("user",c.data),a.c=c.data)}catch(e){q(e.message+" ("+d+")")}return a.c}function pc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+fc(a,Y));return b}
|
function vc(a,b){a.c=null;var c=p(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(pa("user",c.data),a.c=c.data)}catch(e){q(e.message+" ("+d+")")}return a.c}function oc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+ec(a,Z));return b}
|
||||||
function vc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=fc(a,Y);d.data=c;b=p(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.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),pa("user",""),a.c=null)}}
|
function uc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ec(a,Z);d.data=c;b=p(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),pa("user",""),a.c=null)}}
|
||||||
function Sa(a,b,c){a=w(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.fa=function(a){this.a&&this.a.fa(a);this.h&&this.h.fa(a)};
|
function Ra(a,b,c){a=y(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.ba=function(a){this.a&&this.a.ba(a);this.g&&this.g.ba(a)};
|
||||||
function zb(a,b){for(var c=0;c<a.B.length;c++)a:{var d=a.B[c];if(0<=b){if(b&1){d=d.a;d.G=d.G&-8|10;break a}var e=d.a;e.G=e.G&-8|9;if(e=d.l){for(var e=d.w,f=d.i,h=!0,g=d.j>>>e.C;0<f&&g<e.b.length;)e.b[g].R&&(e.b[g].R=h=!1,e.b[g].Xa=!0),f-=e.H,g++;e=h}if(e)break a}for(var e=d.j,f=e+d.i,h=0,g=d.G,k=0,l=0,x=d.b,r=0,Z=d.c,wb=0;e<f;){var A;A=d.w;var ha=e,Fa=ha&A.c,ra=(ha&A.h)>>>A.C;A=Fa!=A.c?A.b[ra].fb(Fa,ha):A.b[ra++].Ma(Fa,ha)|A.b[ra&A.v].Ma(0,ha+1)<<8;if(d.l&&A===d.f[h])k+=d.D;else{d.f[h]=A;A=A>>8|(A&
|
function Ab(a,b){for(var c=0;c<a.A.length;c++)a:{var d=a.A[c];if(0<=b){if(b&1){d=d.a;d.D=d.D&-8|10;break a}var e=d.a;e.D=e.D&-8|9;if(e=d.A){for(var e=d.o,f=d.l,h=!0,g=d.m>>>e.c;0<f&&g<e.b.length;)e.b[g].S&&(e.b[g].S=h=!1,e.b[g].Ra=!0),f-=e.f,g++;e=h}if(e)break a}for(var e=d.m,f=e+d.l,h=0,g=d.N,k=0,l=0,x=d.b,r=0,Y=d.c,vb=0;e<f;){var A;A=d.o;var ga=e,Ea=ga&A.g,qa=(ga&A.i)>>>A.c;A=Ea!=A.g?A.b[qa].Za(Ea,ga):A.b[qa++].Ma(Ea,ga)|A.b[qa&A.u].Ma(0,ga+1)<<8;if(d.A&&A===d.g[h])k+=d.I;else{d.g[h]=A;A=A>>8|(A&
|
||||||
255)<<8;ha=65536;Fa=16;k<x&&(x=k);for(ra=0;ra<d.D;ra++){var la=(A&(ha>>=1))>>--Fa,Ga=d.o,sa=k++,la=g[la],sa=(sa+l*Ga.width)*la.length;Ga.data[sa]=la[0];Ga.data[sa+1]=la[1];Ga.data[sa+2]=la[2];Ga.data[sa+3]=la[3]}k>r&&(r=k);l<Z&&(Z=l);l>=wb&&(wb=l+1)}e+=2;h++;if(k>=d.b&&(k=0,l++,l>d.c))break}d.l=!0;x<d.b&&(d.H.putImageData(d.o,0,0,x,Z,r-x,wb-Z),d.m.drawImage(d.h,0,0,d.b,d.c,0,0,d.J,d.M))}}
|
255)<<8;ga=65536;Ea=16;k<x&&(x=k);for(qa=0;qa<d.I;qa++){var la=(A&(ga>>=1))>>--Ea,Fa=d.C,ra=k++,la=g[la],ra=(ra+l*Fa.width)*la.length;Fa.data[ra]=la[0];Fa.data[ra+1]=la[1];Fa.data[ra+2]=la[2];Fa.data[ra+3]=la[3]}k>r&&(r=k);l<Y&&(Y=l);l>=vb&&(vb=l+1)}e+=2;h++;if(k>=d.b&&(k=0,l++,l>d.c))break}d.A=!0;x<d.b&&(d.R.putImageData(d.C,0,0,x,Y,r-x,vb-Y),d.f.drawImage(d.i,0,0,d.b,d.c,0,0,d.s,d.j))}}
|
||||||
xa(function(){for(var a=z(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=z(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new lc(h,d,!0);Ma(h,f);h.C&&qc(h,h.xa)}});ta.show.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=La("Computer",c.id))&&c.G&&!c.g.K&&c.xa(-1)}});
|
wa(function(){for(var a=B(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=B(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new kc(h,d,!0);La(h,f);h.C&&pc(h,h.sa)}});t.show.push(function(){for(var a=B(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ka("Computer",c.id))&&c.G&&!c.h.J&&c.sa(-1)}});
|
||||||
ta.exit.push(function(){for(var a=z(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=La("Computer",c.id))&&c.g.K&&uc(c,!(!c.b||c.m),!0)}});var xc=0;function yc(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):zc(g,a,b,c,d,e,f)})}
|
t.exit.push(function(){for(var a=B(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ka("Computer",c.id))&&c.h.J&&tc(c,!(!c.b||c.m),!0)}});var wc=0;function xc(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):yc(g,a,b,c,d,e,f)})}
|
||||||
function zc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ka(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
function yc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ja(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){g=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Ac(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){g=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?zc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
function Ac(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,x=/( [a-z]+=)(['"])(.*?)\2/g;l=x.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
function zc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,x=/( [a-z]+=)(['"])(.*?)\2/g;l=x.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(d[0],h);Ac(a,b,c)}})}else c(a,null)}
|
"");a=a.replace(d[0],h);zc(a,b,c)}})}else c(a,null)}
|
||||||
function Bc(a,b,c,d){function e(a){if(void 0===g){var b=h&&z(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--xc||za(!0));k=!1}var h,g,k=!0;xc++;Ja[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var x=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=l:r.appendChild(document.createTextNode(l));x.appendChild(r)}c||
|
function Ac(a,b,c,d){function e(a){if(void 0===g){var b=h&&B(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--wc||ya(!0));k=!1}var h,g,k=!0;wc++;Ia[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var x=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=l:r.appendChild(document.createTextNode(l));x.appendChild(r)}c||
|
||||||
(c="/versions/pc8080/1.22.0/components.xsl");l=function(d,g){g?yc(c,null,null,!1,e,function(d,l){if(l)if(Ka(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--xc||za(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--xc||za(!0)):f("invalid machine element: "+
|
(c="/versions/pc8080/1.22.0/components.xsl");l=function(d,g){g?xc(c,null,null,!1,e,function(d,l){if(l)if(Ja(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--wc||ya(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--wc||ya(!0)):f("invalid machine element: "+
|
||||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?yc(b,a,d,!0,e,l):zc(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(Z){f(Z.message)}return k}window.embedPC8080=function(a,b,c,d){za(!1);return Bc(a,b,c,d)};window.enableEvents=za;window.sendEvent=Aa;
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?xc(b,a,d,!0,e,l):yc(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(Y){f(Y.message)}return k}window.embedPC8080=function(a,b,c,d){ya(!1);return Ac(a,b,c,d)};window.enableEvents=ya;window.sendEvent=za;
|
||||||
function Cc(a,b,c,d){if(!c&&b){d.push(b);a=Ja[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){Dc(b,d)}):Dc(null,d)}else q("Error ("+c+") requesting "+a)}
|
function Bc(a,b,c,d){if(!c&&b){d.push(b);a=Ia[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){Cc(b,d)}):Cc(null,d)}else q("Error ("+c+") requesting "+a)}
|
||||||
function Dc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ja[f],k={},l;for(l in g){var x=g[l],r=ca(l);if("xml"==r){for(r=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=r.exec(g[l]);){var Z=d[2];Z&&(g[Z]||(x=x.replace(d[0],"")))}d=l=ba(l)}else"xsl"==r&&(e=l=ba(l));k[l]=x}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
function Cc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ia[f],k={},l;for(l in g){var x=g[l],r=ca(l);if("xml"==r){for(r=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=r.exec(g[l]);){var Y=d[2];Y&&(g[Y]||(x=x.replace(d[0],"")))}d=l=ba(l)}else"xsl"==r&&(e=l=ba(l));k[l]=x}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||||
"©"),l=h,g=null,k="data:application/javascript,",k=qa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
"©"),l=h,g=null,k="data:application/javascript,",k=sa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
||||||
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",q(c)):q("Missing XML/XSL resources")}
|
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",q(c)):q("Missing XML/XSL resources")}
|
||||||
window.savePC=function(a,b,c){var d=La("Computer",a),e=La("Debugger",a);if(d){var f=uc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,eb:h}))return!0;p(b,null,!0,function(c,d,e){Cc(c,d,e,[a,ba(b,!0),h,f])});return!0}q("Unable to identify machine '"+a+"'");return!1};})();
|
window.savePC=function(a,b,c){var d=Ka("Computer",a),e=Ka("Debugger",a);if(d){var f=tc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ya:h}))return!0;p(b,null,!0,function(c,d,e){Bc(c,d,e,[a,ba(b,!0),h,f])});return!0}q("Unable to identify machine '"+a+"'");return!1};})();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue