More 8080 opcodes
This commit is contained in:
parent
425f565b11
commit
4173aaca31
4 changed files with 458 additions and 237 deletions
|
|
@ -121,9 +121,9 @@ CPUDef.opMVIB = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opRLC = function()
|
CPUDef.opRLC = function()
|
||||||
{
|
{
|
||||||
var b = this.regA << 1;
|
var carry = this.regA << 1;
|
||||||
this.regA = (b & 0xff) | (b >> 8);
|
this.regA = (carry & 0xff) | (carry >> 8);
|
||||||
this.resultZeroCarry = (this.resultZeroCarry & 0xff) | (b & 0x100);
|
this.resultZeroCarry = (this.resultZeroCarry & 0xff) | (carry & 0x100);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -151,6 +151,223 @@ CPUDef.opLDAXB = function()
|
||||||
this.nStepCycles -= 7;
|
this.nStepCycles -= 7;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x0B (DCX B)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opDCXB = function()
|
||||||
|
{
|
||||||
|
this.setBC(this.getBC() - 1);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x0C (INR C)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opINRC = function()
|
||||||
|
{
|
||||||
|
this.regC = this.incByte(this.regC);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x0D (DCR C)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opDCRC = function()
|
||||||
|
{
|
||||||
|
this.regC = this.decByte(this.regC);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x0E (MVI C,d8)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opMVIC = function()
|
||||||
|
{
|
||||||
|
this.regC = this.getPCByte();
|
||||||
|
this.nStepCycles -= 7;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x0F (RRC)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opRRC = function()
|
||||||
|
{
|
||||||
|
var carry = (this.regA << 8) & 0x100;
|
||||||
|
this.regA = (carry | this.regA) >> 1;
|
||||||
|
this.resultZeroCarry = (this.resultZeroCarry & 0xff) | carry;
|
||||||
|
this.nStepCycles -= 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x11 (LXI D,d16)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opLXID = function()
|
||||||
|
{
|
||||||
|
this.setDE(this.getPCWord());
|
||||||
|
this.nStepCycles -= 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x12 (STAX D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opSTAXD = function()
|
||||||
|
{
|
||||||
|
this.setByte(this.getDE(), this.regA);
|
||||||
|
this.nStepCycles -= 7;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x13 (INX D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opINXD = function()
|
||||||
|
{
|
||||||
|
this.setDE(this.getDE() + 1);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x14 (INR D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opINRD = function()
|
||||||
|
{
|
||||||
|
this.regD = this.incByte(this.regD);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x15 (DCR D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opDCRD = function()
|
||||||
|
{
|
||||||
|
this.regD = this.decByte(this.regD);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x16 (MVI D,d8)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opMVID = function()
|
||||||
|
{
|
||||||
|
this.regD = this.getPCByte();
|
||||||
|
this.nStepCycles -= 7;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x17 (RAL)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opRAL = function()
|
||||||
|
{
|
||||||
|
var carry = this.regA << 1;
|
||||||
|
this.regA = (carry & 0xff) | (this.resultZeroCarry >> 8);
|
||||||
|
this.resultZeroCarry = (this.resultZeroCarry & 0xff) | (carry & 0x100);
|
||||||
|
this.nStepCycles -= 4;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x19 (DAD D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opDADD = function()
|
||||||
|
{
|
||||||
|
var w;
|
||||||
|
this.setHL(w = this.getHL() + this.getDE());
|
||||||
|
this.resultZeroCarry = (this.resultZeroCarry & 0xff) | ((w >> 8) & 0x100);
|
||||||
|
this.nStepCycles -= 10;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x1A (LDAX D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opLDAXD = function()
|
||||||
|
{
|
||||||
|
this.regA = this.getByte(this.getDE());
|
||||||
|
this.nStepCycles -= 7;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x1B (DCX D)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opDCXD = function()
|
||||||
|
{
|
||||||
|
this.setDE(this.getDE() - 1);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x1C (INR E)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opINRE = function()
|
||||||
|
{
|
||||||
|
this.regE = this.incByte(this.regE);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x1D (DCR E)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opDCRE = function()
|
||||||
|
{
|
||||||
|
this.regE = this.decByte(this.regE);
|
||||||
|
this.nStepCycles -= 5;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x1E (MVI E,d8)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opMVIE = function()
|
||||||
|
{
|
||||||
|
this.regE = this.getPCByte();
|
||||||
|
this.nStepCycles -= 7;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* op=0x1F (RAR)
|
||||||
|
*
|
||||||
|
* @this {CPUSim}
|
||||||
|
*/
|
||||||
|
CPUDef.opRAR = function()
|
||||||
|
{
|
||||||
|
var carry = (this.regA << 8) & 0x100;
|
||||||
|
this.regA = ((this.resultZeroCarry & 0x100) | this.regA) >> 1;
|
||||||
|
this.resultZeroCarry = (this.resultZeroCarry & 0xff) | carry;
|
||||||
|
this.nStepCycles -= 4;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* opTBD()
|
* opTBD()
|
||||||
*
|
*
|
||||||
|
|
@ -173,12 +390,12 @@ CPUDef.opTBD = function()
|
||||||
CPUDef.aOps = [
|
CPUDef.aOps = [
|
||||||
/* 0x00-0x03 */ CPUDef.opNOP, CPUDef.opLXIB, CPUDef.opSTAXB, CPUDef.opINXB,
|
/* 0x00-0x03 */ CPUDef.opNOP, CPUDef.opLXIB, CPUDef.opSTAXB, CPUDef.opINXB,
|
||||||
/* 0x04-0x07 */ CPUDef.opINRB, CPUDef.opDCRB, CPUDef.opMVIB, CPUDef.opRLC,
|
/* 0x04-0x07 */ CPUDef.opINRB, CPUDef.opDCRB, CPUDef.opMVIB, CPUDef.opRLC,
|
||||||
/* 0x08-0x0B */ CPUDef.opNOP, CPUDef.opDADB, CPUDef.opLDAXB, CPUDef.opTBD,
|
/* 0x08-0x0B */ CPUDef.opNOP, CPUDef.opDADB, CPUDef.opLDAXB, CPUDef.opDCXB,
|
||||||
/* 0x0C-0x0F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x0C-0x0F */ CPUDef.opINRC, CPUDef.opDCRC, CPUDef.opMVIC, CPUDef.opRRC,
|
||||||
/* 0x10-0x13 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x10-0x13 */ CPUDef.opNOP, CPUDef.opLXID, CPUDef.opSTAXD, CPUDef.opINXD,
|
||||||
/* 0x14-0x17 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x14-0x17 */ CPUDef.opINRD, CPUDef.opDCRD, CPUDef.opMVID, CPUDef.opRAL,
|
||||||
/* 0x18-0x1B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x18-0x1B */ CPUDef.opNOP, CPUDef.opDADD, CPUDef.opLDAXD, CPUDef.opDCXD,
|
||||||
/* 0x1C-0x1F */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x1C-0x1F */ CPUDef.opINRE, CPUDef.opDCRE, CPUDef.opMVIE, CPUDef.opRAR,
|
||||||
/* 0x20-0x23 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x20-0x23 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
||||||
/* 0x24-0x27 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x24-0x27 */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
||||||
/* 0x28-0x2B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
/* 0x28-0x2B */ CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD, CPUDef.opTBD,
|
||||||
|
|
|
||||||
|
|
@ -345,12 +345,11 @@ CPUSim.prototype.setBinding = function(sHTMLType, sBinding, control, sValue)
|
||||||
case "SP":
|
case "SP":
|
||||||
case "PC":
|
case "PC":
|
||||||
case "F":
|
case "F":
|
||||||
case "CF":
|
|
||||||
case "PF":
|
|
||||||
case "AF":
|
|
||||||
case "ZF":
|
|
||||||
case "SF":
|
case "SF":
|
||||||
case "VF":
|
case "ZF":
|
||||||
|
case "AF":
|
||||||
|
case "PF":
|
||||||
|
case "CF":
|
||||||
this.bindings[sBinding] = control;
|
this.bindings[sBinding] = control;
|
||||||
this.cLiveRegs++;
|
this.cLiveRegs++;
|
||||||
fBound = true;
|
fBound = true;
|
||||||
|
|
@ -915,11 +914,11 @@ CPUSim.prototype.updateStatus = function(fForce)
|
||||||
this.updateReg("PC", this.getPC(), 4);
|
this.updateReg("PC", this.getPC(), 4);
|
||||||
var regPS = this.getPS();
|
var regPS = this.getPS();
|
||||||
this.updateReg("F", regPS, 2);
|
this.updateReg("F", regPS, 2);
|
||||||
this.updateReg("S", (regPS & CPUDef.PS.SF), 1);
|
this.updateReg("SF", (regPS & CPUDef.PS.SF), 1);
|
||||||
this.updateReg("Z", (regPS & CPUDef.PS.ZF), 1);
|
this.updateReg("ZF", (regPS & CPUDef.PS.ZF), 1);
|
||||||
this.updateReg("A", (regPS & CPUDef.PS.AF), 1);
|
this.updateReg("AF", (regPS & CPUDef.PS.AF), 1);
|
||||||
this.updateReg("P", (regPS & CPUDef.PS.PF), 1);
|
this.updateReg("PF", (regPS & CPUDef.PS.PF), 1);
|
||||||
this.updateReg("C", (regPS & CPUDef.PS.CF), 1);
|
this.updateReg("CF", (regPS & CPUDef.PS.CF), 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var controlSpeed = this.bindings["speed"];
|
var controlSpeed = this.bindings["speed"];
|
||||||
|
|
|
||||||
|
|
@ -9,158 +9,160 @@ function ya(){return window?window.navigator.userAgent:""}function v(a){window&&
|
||||||
function Ha(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ia(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ja(a){if(window){var b=ya();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 Ka(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
function Ha(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function Ia(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ja(a){if(window){var b=ya();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 Ka(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||||
function La(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 Ma={init:[],show:[],exit:[]},Na=!1,Oa=!0;function Pa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Qa(a){Ma.init.push(a)}
|
function La(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 Ma={init:[],show:[],exit:[]},Na=!1,Oa=!0;function Pa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Qa(a){Ma.init.push(a)}
|
||||||
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Sa(a){!Oa&&a?(Oa=!0,Na&&Ta("init")):Oa=a}function Ta(a){Ma[a]&&Ra(Ma[a])}Pa("onload",function(){Na=!0;Ra(Ma.init)});Pa("onpageshow",function(){Ra(Ma.show)});Pa(Ja("Opera")||Ja("iOS")?"onunload":"onbeforeunload",function(){Ra(Ma.exit)});
|
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Sa(a){!Oa&&a?(Oa=!0,Na&&Ta("init")):Oa=a}function Ta(a){Ma[a]&&Ra(Ma[a])}Pa("onload",function(){Na=!0;Ra(Ma.init)});Pa("onpageshow",function(){Ra(Ma.show)});Pa(Ja("Opera")||Ja("iOS")?"onunload":"onbeforeunload",function(){Ra(Ma.exit)});
|
||||||
function x(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.vb=b.comment;this.Kb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.zb=this.id.substr(0,b),this.Wa=this.id.substr(b+1)):this.Wa=this.id;this[a]=c;this.j={Ka:!1,Ha:!1,ob:!1,W:!1,Ja:!1};this.kb=null;this.j.Ja=!1;this.G={};this.B=null;this.Y=d||0;y.push(this)}var Ua=void 0,Va={};
|
function x(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.vb=b.comment;this.Kb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.zb=this.id.substr(0,b),this.Wa=this.id.substr(b+1)):this.Wa=this.id;this[a]=c;this.j={Ka:!1,Ha:!1,ob:!1,W:!1,Ja:!1};this.lb=null;this.j.Ja=!1;this.G={};this.B=null;this.Y=d||0;y.push(this)}var Ua=void 0,Va={};
|
||||||
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function ib(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){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||||
function z(a,b){b||(b=x);a.prototype=ib(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var y=[],jb={};function kb(a,b,c){jb[a]&&b&&(jb[a][b]=c)}function C(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=x);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var y=[],$a={};function ab(a,b,c){$a[a]&&b&&($a[a][b]=c)}function C(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 lb(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 E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
function lb(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 E(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
|
||||||
function mb(a,b){for(var c=F(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var k=e[f];if(1===k.nodeType){var h=k.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case "pc8080-binding":(h=E(k))&&h.binding&&a.ea(h.type,h.binding,k,h.value),m=l.length}}}}
|
function mb(a,b){for(var c=F(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var k=e[f];if(1===k.nodeType){var h=k.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case "pc8080-binding":(h=E(k))&&h.binding&&a.ha(h.type,h.binding,k,h.value),m=l.length}}}}
|
||||||
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
function F(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ea:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.xa=this.G[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),
|
x.prototype={constructor:x,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ha:function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.ya=this.G[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.ba=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Wa+": "+a)},ba:function(a,b){b||v(a)},pa:function(){return this.j.W=!0},oa:function(a,b){b&&(this.j.W=!1);return!0}};function nb(a,b,c){a.B&&(!0===c||ob(a,c|0))&&a.B.message(b,void 0)}function ob(a,b){if(a.B){a===a.B?b|=0:b=b||a.Y;var c=a.B.Y&b;return!!b&&c===b||!!(c&a.B.Rb)}return!1}
|
this.da=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.Wa+": "+a)},da:function(a,b){b||v(a)},sa:function(){return this.j.W=!0},ra:function(a,b){b&&(this.j.W=!1);return!0}};function nb(a,b,c){a.B&&(!0===c||ob(a,c|0))&&a.B.message(b,void 0)}function ob(a,b){if(a.B){a===a.B?b|=0:b=b||a.Y;var c=a.B.Y&b;return!!b&&c===b||!!(c&a.B.Rb)}return!1}
|
||||||
function pb(a,b){if(a.j.ob)return a.j.Ha&&(a.j.Ha=!1),a.j.ob=!1;if(a.j.Ja)return a.g(a.toString()+" error"),!1;a.j.Ha=b;return a.j.Ha}function qb(a,b){a.j.Ha&&(b?a.j.ob=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.Ha}function G(a){if(!a.j.Ja&&(a.j.Ka=!0,a.j.Ka)){var b=a.kb;a.kb=null;b&&b()}}function rb(a,b){b&&(a.j.Ka?b():a.kb=b);return a.j.Ka}function sb(a,b){a.j.Ja=!0;a.ba(b)}
|
function pb(a,b){if(a.j.ob)return a.j.Ha&&(a.j.Ha=!1),a.j.ob=!1;if(a.j.Ja)return a.g(a.toString()+" error"),!1;a.j.Ha=b;return a.j.Ha}function qb(a,b){a.j.Ha&&(b?a.j.ob=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.Ha}function G(a){if(!a.j.Ja&&(a.j.Ka=!0,a.j.Ka)){var b=a.lb;a.lb=null;b&&b()}}function rb(a,b){b&&(a.j.Ka?b():a.lb=b);return a.j.Ka}function sb(a,b){a.j.Ja=!0;a.da(b)}
|
||||||
var tb="undefined"!==typeof ArrayBuffer,ub=[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 tb="undefined"!==typeof ArrayBuffer,ub=[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 vb(a){x.call(this,"Panel",a,vb)}z(vb);g=vb.prototype;g.ea=function(a,b,c,d){return this.s&&this.s.ea(a,b,c,d)||this.b&&this.b.ea(a,b,c,d)||this.w&&this.w.ea(a,b,c,d)||this.B&&this.B.ea(a,b,c,d)?!0:this.parent.ea.call(this,a,b,c,d)};g.La=function(a,b,c,d){this.s=a;this.A=b;this.b=c;this.B=d;this.w=wb(a,"Keyboard")};g.pa=function(a,b){b||xb();return!0};g.oa=function(){return!0};g.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 vb(a){x.call(this,"Panel",a,vb)}z(vb);g=vb.prototype;g.ha=function(a,b,c,d){return this.s&&this.s.ha(a,b,c,d)||this.b&&this.b.ha(a,b,c,d)||this.w&&this.w.ha(a,b,c,d)||this.B&&this.B.ha(a,b,c,d)?!0:this.parent.ha.call(this,a,b,c,d)};g.La=function(a,b,c,d){this.s=a;this.A=b;this.b=c;this.B=d;this.w=wb(a,"Keyboard")};g.sa=function(a,b){b||xb();return!0};g.ra=function(){return!0};g.ka=function(){};
|
||||||
function xb(){for(var a=!1,b=F(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=E(d),f;a:{f=e.id;if(void 0!==f)for(var k=void 0,k=0;k<y.length;k++)if(y[k].id===f){f=y[k];break a}f=null}f||(a=!0,f=new vb(e));mb(f,d);a&&G(f)}}Qa(xb);
|
function xb(){for(var a=!1,b=F(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=E(d),f;a:{f=e.id;if(void 0!==f)for(var k=void 0,k=0;k<y.length;k++)if(y[k].id===f){f=y[k];break a}f=null}f||(a=!0,f=new vb(e));mb(f,d);a&&G(f)}}Qa(xb);
|
||||||
function yb(a,b,c){x.call(this,"Bus",a,yb);this.b=b;this.B=c;this.J=a.buswidth||16;this.M=Math.pow(2,this.J);this.w=this.M-1|0;this.P=20>=this.J?12:24>=this.J?14:15;this.Z=1<<this.P;this.R=this.Z>>2;this.s=this.Z-1;this.I=this.M/this.Z|0;this.L=this.I-1;this.C=[];this.D=[];this.F=this.H=!1;this.S=[];this.V=[];a=new H;zb(a,this.B);this.A=Array(this.I);for(b=0;b<this.I;b++)this.A[b]=a;a=this.b;b=this.A;c=this.P;var d=this.w;a.ga=b;a.P=c;a.Z=1<<a.P;a.I=a.Z-1;a.S=b.length;a.R=a.S-1;a.L=d;G(this)}z(yb);
|
function yb(a,b,c){x.call(this,"Bus",a,yb);this.b=b;this.B=c;this.K=a.buswidth||16;this.N=Math.pow(2,this.K);this.w=this.N-1|0;this.P=20>=this.K?12:24>=this.K?14:15;this.Z=1<<this.P;this.R=this.Z>>2;this.s=this.Z-1;this.J=this.N/this.Z|0;this.L=this.J-1;this.C=[];this.D=[];this.F=this.H=!1;this.T=[];this.V=[];a=new H;zb(a,this.B);this.A=Array(this.J);for(b=0;b<this.J;b++)this.A[b]=a;a=this.b;b=this.A;c=this.P;var d=this.w;a.ia=b;a.P=c;a.Z=1<<a.P;a.H=a.Z-1;a.T=b.length;a.R=a.T-1;a.K=d;G(this)}z(yb);
|
||||||
yb.prototype.reset=function(){};yb.prototype.pa=function(a,b){b||this.reset();return!0};function Ab(a,b,c,d){for(var e=b>>>a.P;0<c&&e<a.A.length;){var f=a.A[e],k=e*a.Z,h=c>a.Z?a.Z:c;if(f&&f.size){if(f.type==d){if(b+c<=f.u)return f.gb+=f.u-b,f.u=b,!0;if(b>=f.u+f.gb){h=f.size-(b-k);h>c&&(h=c);f.gb=b-f.u+h;c-=h;b=k+a.Z;continue}}return Bb(1,b,c)}f=a.A[e];b=new H(b,h,a.Z,d);zb(b,a.B,f);a.A[e++]=b;b=k+a.Z;c-=h}return 0>=c?!0:Bb(2,b,c)}function Cb(a,b){return a.A[(b&a.w)>>>a.P].eb(b&a.s,b)}
|
yb.prototype.reset=function(){};yb.prototype.sa=function(a,b){b||this.reset();return!0};function Ab(a,b,c,d){for(var e=b>>>a.P;0<c&&e<a.A.length;){var f=a.A[e],k=e*a.Z,h=c>a.Z?a.Z:c;if(f&&f.size){if(f.type==d){if(b+c<=f.u)return f.gb+=f.u-b,f.u=b,!0;if(b>=f.u+f.gb){h=f.size-(b-k);h>c&&(h=c);f.gb=b-f.u+h;c-=h;b=k+a.Z;continue}}return Bb(1,b,c)}f=a.A[e];b=new H(b,h,a.Z,d);zb(b,a.B,f);a.A[e++]=b;b=k+a.Z;c-=h}return 0>=c?!0:Bb(2,b,c)}function Cb(a,b){return a.A[(b&a.w)>>>a.P].eb(b&a.s,b)}
|
||||||
function Db(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}function Qb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.D[b]&&(a.D[b]=[null,!1]);a.D[b][1]=!a.D[b][1];return a.D[b][1]}function Bb(a,b,c){v("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Rb;if(tb){var Sb=new ArrayBuffer(2);(new DataView(Sb)).setUint16(0,256,!0);Rb=256===(new Uint16Array(Sb))[0]}else Rb=!1;var Tb=Rb;
|
function Db(a,b){if(void 0===b)return a.F=!a.F,a.F;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}function Eb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.D[b]&&(a.D[b]=[null,!1]);a.D[b][1]=!a.D[b][1];return a.D[b][1]}function Bb(a,b,c){v("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Fb;if(tb){var Gb=new ArrayBuffer(2);(new DataView(Gb)).setUint16(0,256,!0);Fb=256===(new Uint16Array(Gb))[0]}else Fb=!1;var Hb=Fb;
|
||||||
function H(a,b,c,d){this.id=Ub+=2;this.b=null;this.u=a;this.gb=b;this.size=c||0;this.type=d||Vb;this.F=d==Wb;zb(this);this.sa=this.Ub=!1;if(c)if(tb)this.C=new ArrayBuffer(c),this.D=new DataView(this.C,0,c),this.G=new Uint8Array(this.C,0,c),this.H=new Uint16Array(this.C,0,c>>1),this.b=new Int32Array(this.C,0,c>>2),Xb(this,Tb?Yb:Zb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Xb(this,$b)}else Xb(this)}var Vb=0,Wb=2,ac=["NONE","RAM","ROM","VIDEO","H/W"],Ub=0;
|
function H(a,b,c,d){this.id=Ib+=2;this.b=null;this.u=a;this.gb=b;this.size=c||0;this.type=d||Jb;this.F=d==Wb;zb(this);this.ua=this.Ub=!1;if(c)if(tb)this.C=new ArrayBuffer(c),this.D=new DataView(this.C,0,c),this.G=new Uint8Array(this.C,0,c),this.H=new Uint16Array(this.C,0,c>>1),this.b=new Int32Array(this.C,0,c>>2),Xb(this,Hb?Yb:Zb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Xb(this,$b)}else Xb(this)}var Jb=0,Wb=2,ac=["NONE","RAM","ROM","VIDEO","H/W"],Ib=0;
|
||||||
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.sa=!0}return!1},wa:function(a,b){b?0===this.s++&&bc(this,cc,!1):0===this.A++&&dc(this,cc,!1)},I:function(){this.B&&ob(this.B,129)&&this.B.message("attempt to read invalid block %"+n(this.u),!0);
|
H.prototype={constructor:H,parent:null,save:function(){var a,b;if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.ua=!0}return!1},xa:function(a,b){b?0===this.s++&&bc(this,cc,!1):0===this.A++&&dc(this,cc,!1)},J:function(){this.B&&ob(this.B,129)&&this.B.message("attempt to read invalid block %"+n(this.u),!0);
|
||||||
return 255},w:function(a,b){this.B&&ob(this.B,129)&&this.B.message("attempt to write "+q(b)+" to invalid block %"+n(this.u),!0)},J:function(a,b){return this.Sa(a++,b++)|this.Sa(a,b)<<8},Wa:function(a,b,c){this.mb(a++,b&255,c++);this.mb(a,b>>8,c)},S:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ia: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},va:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.sa=!0},ib:function(a,
|
return 255},w:function(a,b){this.B&&ob(this.B,129)&&this.B.message("attempt to write "+q(b)+" to invalid block %"+n(this.u),!0)},K:function(a,b){return this.Sa(a++,b++)|this.Sa(a,b)<<8},Wa:function(a,b,c){this.hb(a++,b&255,c++);this.hb(a,b>>8,c)},T:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ma: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},wa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.ua=!0},jb:function(a,
|
||||||
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.sa=!0},M:function(a,b){if(this.B&&null!=this.u){var c=this.B;ec(c,this.u+a,1,c.R)&&c.U(!0)}return this.eb(a,b)},aa:function(a,b){if(this.B&&null!=this.u){var c=this.B;ec(c,this.u+a,2,c.R)&&c.U(!0)}return this.tb(a,b)},ma:function(a,b,c){if(this.B&&null!=this.u){var d=this.B;ec(d,this.u+a,1,d.F)&&d.U(!0)}this.F?this.w(a,b,c):this.Ua(a,b,c)},Va:function(a,b,
|
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.ua=!0},N:function(a,b){if(this.B&&null!=this.u){var c=this.B;ec(c,this.u+a,1,c.R)&&c.U(!0)}return this.eb(a,b)},ca:function(a,b){if(this.B&&null!=this.u){var c=this.B;ec(c,this.u+a,2,c.R)&&c.U(!0)}return this.tb(a,b)},pa:function(a,b,c){if(this.B&&null!=this.u){var d=this.B;ec(d,this.u+a,1,d.F)&&d.U(!0)}this.F?this.w(a,b,c):this.Ua(a,b,c)},Va:function(a,b,
|
||||||
c){if(this.B&&null!=this.u){var d=this.B;ec(d,this.u+a,2,d.F)&&d.U(!0)}this.F?this.w(a,b,c):this.Ob(a,b,c)},L:function(a){return this.G[a]},R:function(a){return this.G[a]},V:function(a){return this.D.getUint16(a,!0)},ca:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.H[a>>1]},ja:function(a,b){this.G[a]=b;this.sa=!0},ua:function(a,b){this.G[a]=b;this.sa=!0},Ga:function(a,b){this.D.setUint16(a,b,!0);this.sa=!0},Xa:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.H[a>>1]=b;this.sa=!0}};
|
c){if(this.B&&null!=this.u){var d=this.B;ec(d,this.u+a,2,d.F)&&d.U(!0)}this.F?this.w(a,b,c):this.Ob(a,b,c)},L:function(a){return this.G[a]},R:function(a){return this.G[a]},V:function(a){return this.D.getUint16(a,!0)},ga:function(a){return a&1?this.G[a]|this.G[a+1]<<8:this.H[a>>1]},na:function(a,b){this.G[a]=b;this.ua=!0},va:function(a,b){this.G[a]=b;this.ua=!0},Ga:function(a,b){this.D.setUint16(a,b,!0);this.ua=!0},Xa:function(a,b){a&1?(this.G[a]=b,this.G[a+1]=b>>8):this.H[a>>1]=b;this.ua=!0}};
|
||||||
function zb(a,b,c){a.B=b;a.A=a.s=0;c&&((a.A=c.A)&&dc(a,cc,!1),(a.s=c.s)&&bc(a,cc,!1))}function fc(a,b){b?0===--a.s&&(a.mb=a.F?a.w:a.Ua):0===--a.A&&(a.Sa=a.eb,a.Lb=a.tb)}function bc(a,b,c){c&&a.s||(a.mb=!a.F&&b[2]||a.w);if(c||void 0===c)a.Ua=b[2]||a.w,a.Ob=b[3]||a.Wa}function dc(a,b,c){c&&a.A||(a.Sa=b[0]||a.I,a.Lb=b[1]||a.J);if(c||void 0===c)a.eb=b[0]||a.I,a.tb=b[1]||a.J}function Xb(a,b){b||(b=gc);dc(a,b,void 0);bc(a,b,void 0)}
|
function zb(a,b,c){a.B=b;a.A=a.s=0;c&&((a.A=c.A)&&dc(a,cc,!1),(a.s=c.s)&&bc(a,cc,!1))}function fc(a,b){b?0===--a.s&&(a.hb=a.F?a.w:a.Ua):0===--a.A&&(a.Sa=a.eb,a.Lb=a.tb)}function bc(a,b,c){c&&a.s||(a.hb=!a.F&&b[2]||a.w);if(c||void 0===c)a.Ua=b[2]||a.w,a.Ob=b[3]||a.Wa}function dc(a,b,c){c&&a.A||(a.Sa=b[0]||a.J,a.Lb=b[1]||a.K);if(c||void 0===c)a.eb=b[0]||a.J,a.tb=b[1]||a.K}function Xb(a,b){b||(b=gc);dc(a,b,void 0);bc(a,b,void 0)}
|
||||||
var gc=[],$b=[H.prototype.S,H.prototype.ia,H.prototype.va,H.prototype.ib],cc=[H.prototype.M,H.prototype.aa,H.prototype.ma,H.prototype.Va];if(tb)var Zb=[H.prototype.L,H.prototype.V,H.prototype.ja,H.prototype.Ga],Yb=[H.prototype.R,H.prototype.ca,H.prototype.ua,H.prototype.Xa];
|
var gc=[],$b=[H.prototype.T,H.prototype.ma,H.prototype.wa,H.prototype.jb],cc=[H.prototype.N,H.prototype.ca,H.prototype.pa,H.prototype.Va];if(tb)var Zb=[H.prototype.L,H.prototype.V,H.prototype.na,H.prototype.Ga],Yb=[H.prototype.R,H.prototype.ga,H.prototype.va,H.prototype.Xa];
|
||||||
function hc(a,b){x.call(this,"CPU",a,hc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Ra=c;this.i.Ba=d;this.i.qb=Math.round(this.i.Ra/1E4)/100;this.i.za=this.i.qb*this.i.Ba;this.j.X=!1;this.j.pb=!1;this.j.Db=a.autoStart;this.j.Eb=!1;this.j.Ia=!1;this.i.Ya=this.i.Oa=0;this.i.Za=a.csStart;this.i.Na=a.csInterval;this.i.Pa=a.csStop;this.ca=this.Fa.bind(this);G(this)}z(hc);var ic=["power","reset"];g=hc.prototype;
|
function hc(a,b){x.call(this,"CPU",a,hc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Ra=c;this.i.Ca=d;this.i.qb=Math.round(this.i.Ra/1E4)/100;this.i.Aa=this.i.qb*this.i.Ca;this.j.X=!1;this.j.pb=!1;this.j.Db=a.autoStart;this.j.Eb=!1;this.j.Ia=!1;this.i.Ya=this.i.Oa=0;this.i.Za=a.csStart;this.i.Na=a.csInterval;this.i.Pa=a.csStop;this.ga=this.Fa.bind(this);G(this)}z(hc);var ic=["power","reset"];g=hc.prototype;
|
||||||
g.La=function(a,b,c,d){this.s=a;this.A=b;this.B=d;for(b=0;b<ic.length;b++)(c=this.G[ic[b]])&&this.s.ea(null,ic[b],c);wb(a,"FPU");this.w=wb(a,"ChipSet");a=jc(a,"autoStart");null!=a&&(this.j.Db="true"==a?!0:"false"==a?!1:!!a);G(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1};
|
g.La=function(a,b,c,d){this.s=a;this.A=b;this.B=d;for(b=0;b<ic.length;b++)(c=this.G[ic[b]])&&this.s.ha(null,ic[b],c);wb(a,"FPU");this.w=wb(a,"ChipSet");a=jc(a,"autoStart");null!=a&&(this.j.Db="true"==a?!0:"false"==a?!1:!!a);G(this)};g.reset=function(){};g.save=function(){return null};g.restore=function(){return!1};
|
||||||
g.pa=function(a,b){if(!b){if(a&&this.restore){kc(this);if(!this.restore(a))return!1;lc(this)}else this.reset();if(this.B){var c=this.B;c.g("Type ? for help with PC8080 Debugger commands");c.fa();if(c.Xa){var d=c.Xa;c.Xa=null;mc(c,d)}}else this.g("No debugger detected")}I(this);return!0};g.oa=function(a){return a?this.save():!0};function nc(a){(a.j.Db||!a.B&&void 0===a.G.run)&&a.Fa(!0)}g.Fb=function(){return 0};
|
g.sa=function(a,b){if(!b){if(a&&this.restore){kc(this);if(!this.restore(a))return!1;lc(this)}else this.reset();if(this.B){var c=this.B;c.g("Type ? for help with PC8080 Debugger commands");c.ka();if(c.Xa){var d=c.Xa;c.Xa=null;mc(c,d)}}else this.g("No debugger detected")}I(this);return!0};g.ra=function(a){return a?this.save():!0};function nc(a){(a.j.Db||!a.B&&void 0===a.G.run)&&a.Fa(!0)}g.Fb=function(){return 0};
|
||||||
function lc(a){void 0===a.i.Za&&(a.i.Za=0);void 0===a.i.Na&&(a.i.Na=-1);void 0===a.i.Pa&&(a.i.Pa=-1);a.j.Ia=0<=a.i.Za&&0<a.i.Na;a.j.Ia&&(a.i.Ya=0,a.i.Oa=a.i.Za-a.H)}function oc(a,b){if(a.j.Ia){var c=!1;a.i.Ya=a.i.Ya+a.Fb()|0;a.i.Oa-=b;0>=a.i.Oa&&(a.i.Oa+=a.i.Na,c=!0);0<=a.i.Pa&&a.i.Pa<=pc(a)&&(a.i.Na=a.i.Pa=-1,lc(a),a.U(),c=!0);c&&a.g(pc(a)+" cycles: checksum="+n(a.i.Ya))}}
|
function lc(a){void 0===a.i.Za&&(a.i.Za=0);void 0===a.i.Na&&(a.i.Na=-1);void 0===a.i.Pa&&(a.i.Pa=-1);a.j.Ia=0<=a.i.Za&&0<a.i.Na;a.j.Ia&&(a.i.Ya=0,a.i.Oa=a.i.Za-a.J)}function oc(a,b){if(a.j.Ia){var c=!1;a.i.Ya=a.i.Ya+a.Fb()|0;a.i.Oa-=b;0>=a.i.Oa&&(a.i.Oa+=a.i.Na,c=!0);0<=a.i.Pa&&a.i.Pa<=pc(a)&&(a.i.Na=a.i.Pa=-1,lc(a),a.U(),c=!0);c&&a.g(pc(a)+" cycles: checksum="+n(a.i.Ya))}}
|
||||||
g.ea=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.G[b]=c;a=!0;break;case "run":this.G[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.j.W)a=!0;else{var b=null,c,h=C(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.Ka);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.W);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.Ka?"powered yet":"ready yet"+(b.kb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.X?d.U(!0):d.Fa(!0))};a=!0;break;
|
g.ha=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.G[b]=c;a=!0;break;case "run":this.G[b]=c;c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.j.W)a=!0;else{var b=null,c,h=C(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.Ka);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.W);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.Ka?"powered yet":"ready yet"+(b.lb?" (waiting for notification)":""))+".");a=!1}a&&(d.j.X?d.U(!0):d.Fa(!0))};a=!0;break;
|
||||||
case "speed":this.G[b]=c;a=!0;break;case "setSpeed":this.G[b]=c,c.onclick=function(){qc(d,d.i.Ba<<1,!0)},c.textContent=this.i.za.toFixed(2)+"Mhz",a=!0}return a};function Qc(a,b,c){a.H+=b;c&&(a.D=a.b=0)}
|
case "speed":this.G[b]=c;a=!0;break;case "setSpeed":this.G[b]=c,c.onclick=function(){qc(d,d.i.Ca<<1,!0)},c.textContent=this.i.Aa.toFixed(2)+"Mhz",a=!0}return a};function rc(a,b,c){a.J+=b;c&&(a.D=a.b=0)}
|
||||||
function Rc(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.i.Ba&&a.i.ya&&(d=a.i.ya/a.i.qb);a.i.Hb=Math.round(1E3/30);a.i.Yb=Math.floor(a.i.Ra/c*d);a.i.rb=Math.floor(a.i.Ra/30*d);a.i.Jb=Math.floor(a.i.Ra/60*d);a.i.Ib=Math.floor(a.i.Ra/2*d);b||(a.i.Qa=a.i.rb,a.i.ab=a.i.Jb,a.i.$a=a.i.Ib);a.i.sb=0}function pc(a){return a.H+a.F+a.D-a.b}function kc(a){a.i.ya=0;a.H=a.F=a.D=a.b=0;lc(a);qc(a,1)}
|
function sc(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.i.Ca&&a.i.za&&(d=a.i.za/a.i.qb);a.i.Hb=Math.round(1E3/30);a.i.Yb=Math.floor(a.i.Ra/c*d);a.i.rb=Math.floor(a.i.Ra/30*d);a.i.Jb=Math.floor(a.i.Ra/60*d);a.i.Ib=Math.floor(a.i.Ra/2*d);b||(a.i.Qa=a.i.rb,a.i.ab=a.i.Jb,a.i.$a=a.i.Ib);a.i.sb=0}function pc(a){return a.J+a.F+a.D-a.b}function kc(a){a.i.za=0;a.J=a.F=a.D=a.b=0;lc(a);qc(a,1)}
|
||||||
function qc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.ya/a.i.za?b=1:d=!0;a.i.Ba=b;b=a.i.qb*a.i.Ba;if(a.i.za!=b){a.i.za=b;b=a.i.za.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.s&&a.s.fb()}Qc(a,a.F);a.F=0;a.i.Ma=ua();a.i.Aa=0;Rc(a);return d}
|
function qc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.za/a.i.Aa?b=1:d=!0;a.i.Ca=b;b=a.i.qb*a.i.Ca;if(a.i.Aa!=b){a.i.Aa=b;b=a.i.Aa.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.s&&a.s.fb()}rc(a,a.F);a.F=0;a.i.Ma=ua();a.i.Ba=0;sc(a);return d}
|
||||||
g.Fa=function(a){if(pb(this,!0)){if(!this.j.X){qc(this);this.s&&this.s.start(this.i.Ma,pc(this));this.j.X=!0;this.j.pb=!0;this.w&&this.w.Zb();var b=this.G.run;b&&(b.textContent="Halt");this.s&&(this.s.fa(!0),a&&this.s.fb(!0))}this.i.sb>=this.i.Ra&&Rc(this,!0);this.i.bb=0;this.i.lb=ua();this.i.Aa&&(a=this.i.lb-this.i.Aa,a>this.i.Hb&&(this.i.Ma+=a,this.i.Ma>this.i.lb&&(this.i.Ma=this.i.lb)));try{do{var c=this.j.Ia?1:this.i.Yb;this.w&&(this.w.Nb(),c=this.w.ac(0,c),c=this.w.$b(c));try{this.Ta(c)}catch(e){if("number"!=
|
g.Fa=function(a){if(pb(this,!0)){if(!this.j.X){qc(this);this.s&&this.s.start(this.i.Ma,pc(this));this.j.X=!0;this.j.pb=!0;this.w&&this.w.Zb();var b=this.G.run;b&&(b.textContent="Halt");this.s&&(this.s.ka(!0),a&&this.s.fb(!0))}this.i.sb>=this.i.Ra&&sc(this,!0);this.i.bb=0;this.i.mb=ua();this.i.Ba&&(a=this.i.mb-this.i.Ba,a>this.i.Hb&&(this.i.Ma+=a,this.i.Ma>this.i.mb&&(this.i.Ma=this.i.mb)));try{do{var c=this.j.Ia?1:this.i.Yb;this.w&&(this.w.Nb(),c=this.w.ac(0,c),c=this.w.$b(c));try{this.Ta(c)}catch(e){if("number"!=
|
||||||
typeof e)throw e;}var d=this.D-this.b;this.F+=d;this.i.bb+=d;Qc(this,0,!0);oc(this,d);this.i.ab-=d;0>=this.i.ab&&(this.i.ab+=this.i.Jb);this.i.$a-=d;0>=this.i.$a&&(this.i.$a+=this.i.Ib,this.s&&this.s.fa());this.i.Qa-=d;if(0>=this.i.Qa){this.i.Qa+=this.i.rb;break}}while(this.j.X)}catch(e){this.U();I(this);this.s&&this.s.stop(ua(),pc(this));pb(this,!1);sb(this,e.stack||e.message);return}c=setTimeout;d=this.ca;this.i.Aa=ua();a=this.i.Hb;this.i.bb&&(a=Math.round(a*this.i.bb/this.i.rb));a-=this.i.Aa-this.i.lb;
|
typeof e)throw e;}var d=this.D-this.b;this.F+=d;this.i.bb+=d;rc(this,0,!0);oc(this,d);this.i.ab-=d;0>=this.i.ab&&(this.i.ab+=this.i.Jb);this.i.$a-=d;0>=this.i.$a&&(this.i.$a+=this.i.Ib,this.s&&this.s.ka());this.i.Qa-=d;if(0>=this.i.Qa){this.i.Qa+=this.i.rb;break}}while(this.j.X)}catch(e){this.U();I(this);this.s&&this.s.stop(ua(),pc(this));pb(this,!1);sb(this,e.stack||e.message);return}c=setTimeout;d=this.ga;this.i.Ba=ua();a=this.i.Hb;this.i.bb&&(a=Math.round(a*this.i.bb/this.i.rb));a-=this.i.Ba-this.i.mb;
|
||||||
if(b=this.i.Aa-this.i.Ma)this.i.ya=Math.round(this.F/(10*b))/100,864E5<=b&&(this.H=0,this.w&&this.w.Nb(!0),qc(this));if(0>a||this.i.ya<this.i.za)a=0;this.i.sb+=this.i.bb;this.i.Aa+=a;c(d,a)}else I(this),this.s&&this.s.stop(ua(),pc(this))};g.Ta=function(){return 0};g.U=function(a){qb(this,!0);this.D-=this.b;this.b=0;Qc(this,this.F);this.F=0;if(this.j.X){this.j.X=!1;this.w&&this.w.Zb();var b=this.G.run;b&&(b.textContent="Run")}this.j.jb=a};function I(a,b){a.s&&a.s.fa(b)}
|
if(b=this.i.Ba-this.i.Ma)this.i.za=Math.round(this.F/(10*b))/100,864E5<=b&&(this.J=0,this.w&&this.w.Nb(!0),qc(this));if(0>a||this.i.za<this.i.Aa)a=0;this.i.sb+=this.i.bb;this.i.Ba+=a;c(d,a)}else I(this),this.s&&this.s.stop(ua(),pc(this))};g.Ta=function(){return 0};g.U=function(a){qb(this,!0);this.D-=this.b;this.b=0;rc(this,this.F);this.F=0;if(this.j.X){this.j.X=!1;this.w&&this.w.Zb();var b=this.G.run;b&&(b.textContent="Run")}this.j.kb=a};function I(a,b){a.s&&a.s.ka(b)}
|
||||||
function Sc(a){this.Gb=a.model||8080;hc.call(this,a,1E6);this.aa=Tc;kc(this);this.j.jb=this.j.Tb=!1;this.V=0;this.ga=[];this.P=this.Z=this.I=this.S=this.R=this.L=0;Uc(this)}z(Sc,hc);g=Sc.prototype;g.reset=function(){this.j.X&&this.U();Uc(this);kc(this);this.j.Ja=!1};function Uc(a){a.ha=0;a.T=0;a.da=0;a.ta=0;a.Ca=0;a.la=0;a.qa=0;a.Ea=0;a.N=0;Vc(a,0);a.M=0}g.Fb=function(){var a=this.ha+this.T+this.da+this.ta+this.Ca+this.la+this.qa|0;return a=a+this.Ea+this.N+Wc(this)|0};
|
function tc(a){this.Gb=a.model||8080;hc.call(this,a,1E6);this.ca=uc;kc(this);this.j.kb=this.j.Tb=!1;this.V=0;this.ia=[];this.P=this.Z=this.H=this.T=this.R=this.K=0;vc(this)}z(tc,hc);g=tc.prototype;g.reset=function(){this.j.X&&this.U();vc(this);kc(this);this.j.Ja=!1};function vc(a){a.S=0;a.aa=0;a.ea=0;a.ba=0;a.fa=0;a.ja=0;a.la=0;a.Ea=0;a.O=0;wc(a,0);a.N=0}g.Fb=function(){var a=this.S+this.aa+this.ea+this.ba+this.fa+this.ja+this.la|0;return a=a+this.Ea+this.O+xc(this)|0};
|
||||||
g.save=function(){var a=new J(this);M(a,0,[this.ha,this.T,this.da,this.ta,this.Ca,this.la,this.qa,this.Ea,this.N,Wc(this)]);M(a,1,[this.J,this.M,this.H,this.i.Ba]);for(var b=this.A,c=0,d=[],e=0;e<b.I;e++){var f=b.A[e];if(f.sa||f.Ub){d[c++]=e;var k=c++;a:if(f=f.save()){for(var h=0,l=0,m=[];h<f.length;){for(var p=f[h],r=h+1;r<f.length&&f[r]===p;)r++;m[l++]=r-h;m[l++]=p;h=r}if(m.length<f.length){f=m;break a}}d[k]=f}}M(a,2,d);return a.data()};
|
g.save=function(){var a=new J(this);M(a,0,[this.S,this.aa,this.ea,this.ba,this.fa,this.ja,this.la,this.Ea,this.O,xc(this)]);M(a,1,[this.L,this.N,this.J,this.i.Ca]);for(var b=this.A,c=0,d=[],e=0;e<b.J;e++){var f=b.A[e];if(f.ua||f.Ub){d[c++]=e;var k=c++;a:if(f=f.save()){for(var h=0,l=0,m=[];h<f.length;){for(var p=f[h],r=h+1;r<f.length&&f[r]===p;)r++;m[l++]=r-h;m[l++]=p;h=r}if(m.length<f.length){f=m;break a}}d[k]=f}}M(a,2,d);return a.data()};
|
||||||
g.restore=function(a){var b=a[0];this.ha=b[0];this.T=b[1];this.da=b[2];this.ta=b[3];this.Ca=b[4];this.la=b[5];this.qa=b[6];this.Ea=b[7]&65535;this.N=b[8]&65535;Vc(this,b[9]);b=a[1];this.J=b[0];this.M=b[1];this.H=b[2];qc(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.R){for(var f=0,k=Array(b.R),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)k[f++]=m;e=k}f=b.A[d];if(!f||!f.restore(e)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
g.restore=function(a){var b=a[0];this.S=b[0];this.aa=b[1];this.ea=b[2];this.ba=b[3];this.fa=b[4];this.ja=b[5];this.la=b[6];this.Ea=b[7]&65535;this.O=b[8]&65535;wc(this,b[9]);b=a[1];this.L=b[0];this.N=b[1];this.J=b[2];qc(this,b[3]);a:{b=this.A;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.R){for(var f=0,k=Array(b.R),h=0;h<e.length-1;)for(var l=e[h++],m=e[h++];l--;)k[f++]=m;e=k}f=b.A[d];if(!f||!f.restore(e)){v("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
g.ea=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "D":case "E":case "H":case "L":case "SP":case "PC":case "F":case "CF":case "PF":case "AF":case "ZF":case "SF":case "VF":this.G[b]=c;this.V++;d=!0;break;default:d=this.parent.ea.call(this,a,b,c)}return d};function Wc(a){return a.Da&-214|(a.K&128?128:0)|(a.O&255?0:64)|((a.K^a.C)&16?16:0)|(ub[a.K&255]?4:0)|(a.O&256?1:0)}
|
g.ha=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "D":case "E":case "H":case "L":case "SP":case "PC":case "F":case "SF":case "ZF":case "AF":case "PF":case "CF":this.G[b]=c;this.V++;d=!0;break;default:d=this.parent.ha.call(this,a,b,c)}return d};function yc(a){return a.aa<<8|a.ea}function zc(a,b){a.aa=b>>8&255;a.ea=b&255}function Zc(a){return a.ba<<8|a.fa}function $c(a,b){a.ba=b>>8&255;a.fa=b&255}
|
||||||
function Vc(a,b){a.O=a.K=a.C=0;b&1&&(a.O|=256);b&4||(a.K|=1);b&16&&(a.C|=16);b&64||(a.O|=255);b&128&&(a.K^=192);a.Da=a.Da&-513|b&512|2}function Xc(a,b){return a.ga[(b&a.L)>>>a.P].Sa(b&a.I,b)}function Yc(a){var b=Xc(a,a.N);a.N=a.N+1&65535;return b}function N(a,b,c,d){d=d||2;a.G[b]&&(void 0===c&&(sb(a,"Value for "+b+" is invalid"),a.U()),c=!a.j.X||a.j.Eb?n(c,d):"--------".substr(0,d),a.G[b].textContent!=c&&(a.G[b].textContent=c))}
|
function xc(a){return a.Da&-214|(a.M&128?128:0)|(a.I&255?0:64)|((a.M^a.C)&16?16:0)|(ub[a.M&255]?4:0)|(a.I&256?1:0)}function wc(a,b){a.I=a.M=a.C=0;b&1&&(a.I|=256);b&4||(a.M|=1);b&16&&(a.C|=16);b&64||(a.I|=255);b&128&&(a.M^=192);a.Da=a.Da&-513|b&512|2}function ad(a,b){a.C=b;b=(a.M=b+1)&255;a.I=a.I&-256|b;return b}function bd(a,b){a.C=b;b=(a.M=b-1)&255;a.I=a.I&-256|b;return b}function cd(a,b){return a.ia[(b&a.K)>>>a.P].Sa(b&a.H,b)}function dd(a){var b=cd(a,a.O);a.O=a.O+1&65535;return b}
|
||||||
g.fa=function(a){this.V&&(a||!this.j.X||this.j.Eb)&&(N(this,"A",this.ha),N(this,"B",this.T),N(this,"C",this.da),N(this,"D",this.ta),N(this,"E",this.Ca),N(this,"H",this.la),N(this,"L",this.qa),N(this,"SP",this.Ea,4),N(this,"PC",this.N,4),a=Wc(this),N(this,"F",a,2),N(this,"S",a&128,1),N(this,"Z",a&64,1),N(this,"A",a&16,1),N(this,"P",a&4,1),N(this,"C",a&1,1));if(a=this.G.speed)a.textContent=this.j.X&&this.i.ya?this.i.ya.toFixed(2)+"Mhz":"Stopped"};
|
function ed(a){var b;b=a.O;var c=b&a.H,d=(b&a.K)>>>a.P;c<a.H?b=a.ia[d].Lb(c,b):(c=a.ia[d].Sa(c,b),b=c|=a.ia[d+1&a.R].Sa(0,b+1)<<8);a.O=a.O+2&65535;return b}function N(a,b,c,d){d=d||2;a.G[b]&&(void 0===c&&(sb(a,"Value for "+b+" is invalid"),a.U()),c=!a.j.X||a.j.Eb?n(c,d):"--------".substr(0,d),a.G[b].textContent!=c&&(a.G[b].textContent=c))}
|
||||||
g.Ta=function(a){this.j.jb=!0;var b=this.j.Tb=this.B&&Zc(this.B),c=a?this.j.pb?0:1:-1;this.j.pb=!1;this.D=this.b=a;this.w&&!a&&this.w.Nb();a||(this.J|=4);do{if(this.M&&this.M&4){this.J=this.b=0;break}if(b){if($c(this.B,this.N,c)){this.U();break}c=1}this.J=0;this.aa[Yc(this)].call(this)}while(0<this.b);return this.j.jb?this.D-this.b:void 0===this.j.jb?0:-1};Qa(function(){for(var a=F(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new Sc(d);mb(d,c)}});function ad(){this.b-=4}
|
g.ka=function(a){this.V&&(a||!this.j.X||this.j.Eb)&&(N(this,"A",this.S),N(this,"B",this.aa),N(this,"C",this.ea),N(this,"D",this.ba),N(this,"E",this.fa),N(this,"H",this.ja),N(this,"L",this.la),N(this,"SP",this.Ea,4),N(this,"PC",this.O,4),a=xc(this),N(this,"F",a,2),N(this,"SF",a&128,1),N(this,"ZF",a&64,1),N(this,"AF",a&16,1),N(this,"PF",a&4,1),N(this,"CF",a&1,1));if(a=this.G.speed)a.textContent=this.j.X&&this.i.za?this.i.za.toFixed(2)+"Mhz":"Stopped"};
|
||||||
function O(){this.N=this.N-1&65535;nb(this,"unimplemented opcode",!0);this.U()}
|
g.Ta=function(a){this.j.kb=!0;var b=this.j.Tb=this.B&&fd(this.B),c=a?this.j.pb?0:1:-1;this.j.pb=!1;this.D=this.b=a;this.w&&!a&&this.w.Nb();a||(this.L|=4);do{if(this.N&&this.N&4){this.L=this.b=0;break}if(b){if(gd(this.B,this.O,c)){this.U();break}c=1}this.L=0;this.ca[dd(this)].call(this)}while(0<this.b);return this.j.kb?this.D-this.b:void 0===this.j.kb?0:-1};Qa(function(){for(var a=F(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new tc(d);mb(d,c)}});function hd(){this.b-=4}
|
||||||
var Tc=[ad,function(){var a;a=this.N;var b=a&this.I,c=(a&this.L)>>>this.P;b<this.I?a=this.ga[c].Lb(b,a):(b=this.ga[c].Sa(b,a),a=b|=this.ga[c+1&this.R].Sa(0,a+1)<<8);this.N=this.N+2&65535;this.T=a>>8&255;this.da=a&255;this.b-=10},function(){var a=this.T<<8|this.da;this.ga[(a&this.L)>>>this.P].mb(a&this.I,this.ha&255,a);this.b-=7},function(){var a=(this.T<<8|this.da)+1;this.T=a>>8&255;this.da=a&255;this.b-=5},function(){var a=this.T;this.C=a;a=(this.K=a+1)&255;this.O=this.O&-256|a;this.T=a;this.b-=
|
function O(){this.O=this.O-1&65535;nb(this,"unimplemented opcode",!0);this.U()}
|
||||||
5},function(){var a=this.T;this.C=a;a=(this.K=a-1)&255;this.O=this.O&-256|a;this.T=a;this.b-=5},function(){this.T=Yc(this);this.b-=7},function(){var a=this.ha<<1;this.ha=a&255|a>>8;this.O=this.O&255|a&256;this.b-=4},ad,function(){var a,b=a=(this.la<<8|this.qa)+(this.T<<8|this.da);this.la=b>>8&255;this.qa=b&255;this.O=this.O&255|a>>8&256;this.b-=10},function(){this.ha=Xc(this,this.T<<8|this.da);this.b-=7},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,
|
var uc=[hd,function(){zc(this,ed(this));this.b-=10},function(){var a=yc(this);this.ia[(a&this.K)>>>this.P].hb(a&this.H,this.S&255,a);this.b-=7},function(){zc(this,yc(this)+1);this.b-=5},function(){this.aa=ad(this,this.aa);this.b-=5},function(){this.aa=bd(this,this.aa);this.b-=5},function(){this.aa=dd(this);this.b-=7},function(){var a=this.S<<1;this.S=a&255|a>>8;this.I=this.I&255|a&256;this.b-=4},hd,function(){var a,b=a=(this.ja<<8|this.la)+yc(this);this.ja=b>>8&255;this.la=b&255;this.I=this.I&255|
|
||||||
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
|
a>>8&256;this.b-=10},function(){this.S=cd(this,yc(this));this.b-=7},function(){zc(this,yc(this)-1);this.b-=5},function(){this.ea=ad(this,this.ea);this.b-=5},function(){this.ea=bd(this,this.ea);this.b-=5},function(){this.ea=dd(this);this.b-=7},function(){var a=this.S<<8&256;this.S=(a|this.S)>>1;this.I=this.I&255|a;this.b-=4},hd,function(){$c(this,ed(this));this.b-=10},function(){var a=Zc(this);this.ia[(a&this.K)>>>this.P].hb(a&this.H,this.S&255,a);this.b-=7},function(){$c(this,Zc(this)+1);this.b-=
|
||||||
function bd(a){x.call(this,"ROM",a,bd);this.s=null;this.F=a.addr;this.w=a.size;this.C=a.alias;this.D=a.file;this.H=ea(this.D);if(this.D){a=this.D;var b=fa(this.H);"json"!=b&&"hex"!=b&&(a=xa()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;u(a,null,!0,function(a,b,f){cd(c,a,b,f)})}}z(bd);bd.prototype.La=function(a,b,c,d){this.A=b;this.b=c;this.B=d;dd(this)};
|
5},function(){this.ba=ad(this,this.ba);this.b-=5},function(){this.ba=bd(this,this.ba);this.b-=5},function(){this.ba=dd(this);this.b-=7},function(){var a=this.S<<1;this.S=a&255|this.I>>8;this.I=this.I&255|a&256;this.b-=4},hd,function(){var a,b=a=(this.ja<<8|this.la)+Zc(this);this.ja=b>>8&255;this.la=b&255;this.I=this.I&255|a>>8&256;this.b-=10},function(){this.S=cd(this,Zc(this));this.b-=7},function(){$c(this,Zc(this)-1);this.b-=5},function(){this.fa=ad(this,this.fa);this.b-=5},function(){this.fa=bd(this,
|
||||||
bd.prototype.pa=function(){if(this.na){if(this.B){var a=this.B,b=this.id,c=this.F,d=this.w,e=this.na,f=[],k;for(k in e){var h=e[k];"number"==typeof h&&(e[k]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var p=f,l=[l>>>0,k],r=ta(p,l,a.wb);0>r&&p.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({bc:b,u:c,Xb:d,na:e,xb:f})}delete this.na}return!0};bd.prototype.oa=function(){return!0};
|
this.fa);this.b-=5},function(){this.fa=dd(this);this.b-=7},function(){var a=this.S<<8&256;this.S=(this.I&256|this.S)>>1;this.I=this.I&255|a;this.b-=4},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,
|
||||||
function cd(a,b,c,d){if(d)a.ba("Unable to load system ROM (error "+d+": "+b+")");else{kb(a.zb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,k=e.data;if(f)a.s=f;else if(k)for(a.s=Array(4*k.length),d=c=0;c<k.length;c++)a.s[d++]=k[c]&255,a.s[d++]=k[c]>>8&255,a.s[d++]=k[c]>>16&255,a.s[d++]=k[c]>>24&255;else a.s=e;a.na=e.symbols;if(!a.s.length){v("Empty ROM: "+b);return}if(1==a.s.length){v(a.s[0]);return}}catch(h){a.ba("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];function id(a){x.call(this,"ROM",a,id);this.s=null;this.F=a.addr;this.w=a.size;this.C=a.alias;this.D=a.file;this.H=ea(this.D);if(this.D){a=this.D;var b=fa(this.H);"json"!=b&&"hex"!=b&&(a=xa()+"/api/v1/dump?file="+this.D+"&format=bytes&decimal=true");var c=this;u(a,null,!0,function(a,b,f){jd(c,a,b,f)})}}z(id);id.prototype.La=function(a,b,c,d){this.A=b;this.b=c;this.B=d;kd(this)};
|
||||||
" ").replace(/ +$/,"").split(" "),a.s=Array(b.length),e=0;e<b.length;e++)a.s[e]=da(b[e],16);dd(a)}}
|
id.prototype.sa=function(){if(this.qa){if(this.B){var a=this.B,b=this.id,c=this.F,d=this.w,e=this.qa,f=[],k;for(k in e){var h=e[k];"number"==typeof h&&(e[k]=h={o:h});var l=h.o,m=h.a;if(void 0!==l){var p=f,l=[l>>>0,k],r=ta(p,l,a.wb);0>r&&p.splice(-(r+1),0,l)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({bc:b,u:c,Xb:d,qa:e,xb:f})}delete this.qa}return!0};id.prototype.ra=function(){return!0};
|
||||||
function dd(a){if(!rb(a))if(!a.D)G(a);else if(a.s&&a.A){if(a.s.length!=a.w)sb(a,"ROM size (0x"+n(a.s.length)+") does not match specified size ("+("0x"+n(a.w))+")");else{var b;b=a.F;if(Ab(a.A,b,a.w,Wb)){for(var c=0;c<a.s.length;c++){var d=a.A,e=b+c;d.A[(e&d.w)>>>d.P].Ua(e&d.s,a.s[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(c=0;c<b.length;c++){for(var f=a,d=b[c],e=f.A,k=f.w,h=[],l=f.F>>>e.P;0<k&&l<e.A.length;)h.push(e.A[l++]),k-=e.Z;e=f.A;
|
function jd(a,b,c,d){if(d)a.da("Unable to load system ROM (error "+d+": "+b+")");else{ab(a.zb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,k=e.data;if(f)a.s=f;else if(k)for(a.s=Array(4*k.length),d=c=0;c<k.length;c++)a.s[d++]=k[c]&255,a.s[d++]=k[c]>>8&255,a.s[d++]=k[c]>>16&255,a.s[d++]=k[c]>>24&255;else a.s=e;a.qa=e.symbols;if(!a.s.length){v("Empty ROM: "+b);return}if(1==a.s.length){v(a.s[0]);return}}catch(h){a.da("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||||
f=f.w;k=0;for(d>>>=e.P;0<f&&d<e.A.length;){l=h[k++];if(!l)break;e.A[d++]=l;f-=e.Z}}delete a.s}}G(a)}}Qa(function(){for(var a=F(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new bd(d);mb(d,c)}});function ed(a){x.call(this,"RAM",a,ed);this.C=a.addr;this.w=a.size;this.s=!1}z(ed);g=ed.prototype;g.La=function(a,b,c,d){this.A=b;this.b=c;this.B=d;G(this)};g.pa=function(a,b){b||this.reset();return!0};g.oa=function(a){return a?this.save():!0};
|
" ").replace(/ +$/,"").split(" "),a.s=Array(b.length),e=0;e<b.length;e++)a.s[e]=da(b[e],16);kd(a)}}
|
||||||
g.reset=function(){!this.s&&this.w&&Ab(this.A,this.C,this.w,1)&&(this.s=!0,this.status(Math.floor(this.w/1024)+"Kb allocated"));this.s||v("No RAM allocated")};g.save=function(){return null};g.restore=function(){return!0};Qa(function(){for(var a=F(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new ed(d);mb(d,c)}});function fd(a){x.call(this,"Keyboard",a,fd,65536);G(this)}z(fd);
|
function kd(a){if(!rb(a))if(!a.D)G(a);else if(a.s&&a.A){if(a.s.length!=a.w)sb(a,"ROM size (0x"+n(a.s.length)+") does not match specified size ("+("0x"+n(a.w))+")");else{var b;b=a.F;if(Ab(a.A,b,a.w,Wb)){for(var c=0;c<a.s.length;c++){var d=a.A,e=b+c;d.A[(e&d.w)>>>d.P].Ua(e&d.s,a.s[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.C?b.push(a.C):null!=a.C&&a.C.length&&(b=a.C);for(c=0;c<b.length;c++){for(var f=a,d=b[c],e=f.A,k=f.w,h=[],l=f.F>>>e.P;0<k&&l<e.A.length;)h.push(e.A[l++]),k-=e.Z;e=f.A;
|
||||||
Qa(function(){for(var a=F(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new fd(d);mb(d,c)}});function gd(a){x.call(this,"Video",a,gd,262144);G(this)}z(gd);
|
f=f.w;k=0;for(d>>>=e.P;0<f&&d<e.A.length;){l=h[k++];if(!l)break;e.A[d++]=l;f-=e.Z}}delete a.s}}G(a)}}Qa(function(){for(var a=F(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new id(d);mb(d,c)}});function ld(a){x.call(this,"RAM",a,ld);this.C=a.addr;this.w=a.size;this.s=!1}z(ld);g=ld.prototype;g.La=function(a,b,c,d){this.A=b;this.b=c;this.B=d;G(this)};g.sa=function(a,b){b||this.reset();return!0};g.ra=function(a){return a?this.save():!0};
|
||||||
|
g.reset=function(){!this.s&&this.w&&Ab(this.A,this.C,this.w,1)&&(this.s=!0,this.status(Math.floor(this.w/1024)+"Kb allocated"));this.s||v("No RAM allocated")};g.save=function(){return null};g.restore=function(){return!0};Qa(function(){for(var a=F(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new ld(d);mb(d,c)}});function md(a){x.call(this,"Keyboard",a,md,65536);G(this)}z(md);
|
||||||
|
Qa(function(){for(var a=F(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new md(d);mb(d,c)}});function nd(a){x.call(this,"Video",a,nd,262144);G(this)}z(nd);
|
||||||
Qa(function(){for(var a=F(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=E(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<=ya().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
Qa(function(){for(var a=F(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=E(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<=ya().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||Va.aspect);f&&.3<=f&&3.33>=f&&(Pa("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");Ja("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new gd(d);mb(d,c)}});
|
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(Pa("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");Ja("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new nd(d);mb(d,c)}});
|
||||||
function hd(a){x.call(this,"Debugger",a,hd);this.V=this.Ga=this.J=0;this.M=P();this.yb=P();this.D=-1;this.C=[];this.ia=!1;this.aa=P();this.H=[];this.ca={};this.w=this.R=this.F=[];id(this);this.ua=0;jd(this);this.Va=[];kd(this,a.messages);this.Xa=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return mc(b,a)}):void 0===global.$&&(global.$=function(a){return mc(b,a)})}z(hd);
|
function od(a){x.call(this,"Debugger",a,od);this.V=this.Ga=this.K=0;this.N=P();this.yb=P();this.D=-1;this.C=[];this.ma=!1;this.ca=P();this.H=[];this.ga={};this.w=this.R=this.F=[];pd(this);this.va=0;qd(this);this.Va=[];rd(this,a.messages);this.Xa=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return mc(b,a)}):void 0===global.$&&(global.$=function(a){return mc(b,a)})}z(od);
|
||||||
var ld={"?":"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","t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},md="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 sd={"?":"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","t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},td="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(" "),
|
||||||
nd="B C D E H L M A F BC DE HL PSW SP PC".split(" "),od=[[45],[42,2323,32],[71,2387],[29,2323],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,6419],[40,2387],[23,2323],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2579,32],[71,2643],[29,2579],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,6675],[40,2643],[23,2579],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2835,32],[68,99],[29,2835],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,6931],[41,99],[23,2835],[28,1297],[22,1297],[44,
|
ud="B C D E H L M A F BC DE HL PSW SP PC".split(" "),vd=[[45],[42,2323,32],[71,2387],[29,2323],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,6419],[40,2387],[23,2323],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2579,32],[71,2643],[29,2579],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,6675],[40,2643],[23,2579],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2835,32],[68,99],[29,2835],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,6931],[41,99],[23,2835],[28,1297],[22,1297],[44,
|
||||||
1297,32],[16],[45,32768],[42,3347,32],[70,97],[29,3347],[28,1553],[22,1553],[44,1553,32],[72],[45,32768],[21,7443],[39,97],[23,3347],[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,1553],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1553],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1553],[43,529,1809],[43,785,17],[43,785,
|
1297,32],[16],[45,32768],[42,3347,32],[70,97],[29,3347],[28,1553],[22,1553],[44,1553,32],[72],[45,32768],[21,7443],[39,97],[23,3347],[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,1553],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1553],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1553],[43,529,1809],[43,785,17],[43,785,
|
||||||
273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1553],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1553],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1553],[43,1297,1809],[43,1553,17],[43,1553,273],[43,1553,529],[43,1553,785],[43,1553,1041],[43,1553,1297],[43,1553,1553],[43,1553,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],
|
273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,785,1553],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1553],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1553],[43,1297,1809],[43,1553,17],[43,1553,273],[43,1553,529],[43,1553,785],[43,1553,1041],[43,1553,1297],[43,1553,1553],[43,1553,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],
|
||||||
[43,1809,1297],[43,1809,1553],[43,1809,1809],[3,17],[3,273],[3,529],[3,785],[3,1041],[3,1297],[3,1553],[3,1809],[2,17],[2,273],[2,529],[2,785],[2,1041],[2,1297],[2,1553],[2,1809],[73,17],[73,273],[73,529],[73,785],[73,1041],[73,1297],[73,1553],[73,1809],[66,17],[66,273],[66,529],[66,785],[66,1041],[66,1297],[66,1553],[66,1809],[5,17],[5,273],[5,529],[5,785],[5,1041],[5,1297],[5,1553],[5,1809],[76,17],[76,273],[76,529],[76,785],[76,1041],[76,1297],[76,1553],[76,1809],[46,17],[46,273],[46,529],[46,
|
[43,1809,1297],[43,1809,1553],[43,1809,1809],[3,17],[3,273],[3,529],[3,785],[3,1041],[3,1297],[3,1553],[3,1809],[2,17],[2,273],[2,529],[2,785],[2,1041],[2,1297],[2,1553],[2,1809],[73,17],[73,273],[73,529],[73,785],[73,1041],[73,1297],[73,1553],[73,1809],[66,17],[66,273],[66,529],[66,785],[66,1041],[66,1297],[66,1553],[66,1809],[5,17],[5,273],[5,529],[5,785],[5,1041],[5,1297],[5,1553],[5,1809],[76,17],[76,273],[76,529],[76,785],[76,1041],[76,1297],[76,1553],[76,1809],[46,17],[46,273],[46,529],[46,
|
||||||
785],[46,1041],[46,1297],[46,1553],[46,1809],[18,17],[18,273],[18,529],[18,785],[18,1041],[18,1297],[18,1553],[18,1809],[58],[50,2323],[34,35],[30,35],[11,35],[51,2323],[4,33],[65],[62],[54],[38,35],[30,32803],[15,35],[7,35],[1,33],[65],[57],[50,2579],[33,35],[48,33],[10,35],[51,2579],[74,33],[65],[55],[54,32768],[31,35],[27,33],[8,35],[7,32803],[67,33],[65],[61],[50,2835],[37,35],[78],[14,35],[51,2835],[6,33],[65],[60],[49],[36,35],[75],[13,35],[7,32803],[77,33],[65],[59],[50,3091],[35,35],[24],
|
785],[46,1041],[46,1297],[46,1553],[46,1809],[18,17],[18,273],[18,529],[18,785],[18,1041],[18,1297],[18,1553],[18,1809],[58],[50,2323],[34,35],[30,35],[11,35],[51,2323],[4,33],[65],[62],[54],[38,35],[30,32803],[15,35],[7,35],[1,33],[65],[57],[50,2579],[33,35],[48,33],[10,35],[51,2579],[74,33],[65],[55],[54,32768],[31,35],[27,33],[8,35],[7,32803],[67,33],[65],[61],[50,2835],[37,35],[78],[14,35],[51,2835],[6,33],[65],[60],[49],[36,35],[75],[13,35],[7,32803],[77,33],[65],[59],[50,3091],[35,35],[24],
|
||||||
[12,35],[51,3091],[47,33],[65],[56],[69],[32,35],[25],[9,35],[7,32803],[19,33],[65]],Q={cpu:1,bus:64,mem:128,port:256,timer:2048,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};g=hd.prototype;
|
[12,35],[51,3091],[47,33],[65],[56],[69],[32,35],[25],[9,35],[7,32803],[19,33],[65]],Q={cpu:1,bus:64,mem:128,port:256,timer:2048,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};g=od.prototype;
|
||||||
g.La=function(a,b,c,d){this.A=b;this.b=c;this.s=a;(a=jc(a,"messages"))&&kd(this,a);this.ib=od;pd(this,function(a){a:{var b=d.b.ga,c=a[0],h=a=0,l=b.length;if(c){a=T(U(d,c));if(-1===a){d.g("invalid address: "+c);break a}h=a>>>d.b.P;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var p=b[h];p.type==c?m++||d.g("..."):(c=p.type,m=ac[c],p&&d.g(n(p.id)+" %"+n(h<<d.b.P)+" %%"+n(p.u)+" "+q(p.gb)+" "+q(p.size)+
|
g.La=function(a,b,c,d){this.A=b;this.b=c;this.s=a;(a=jc(a,"messages"))&&rd(this,a);this.jb=vd;wd(this,function(a){a:{var b=d.b.ia,c=a[0],h=a=0,l=b.length;if(c){a=T(U(d,c));if(-1===a){d.g("invalid address: "+c);break a}h=a>>>d.b.P;l=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;l--;){var p=b[h];p.type==c?m++||d.g("..."):(c=p.type,m=ac[c],p&&d.g(n(p.id)+" %"+n(h<<d.b.P)+" %%"+n(p.u)+" "+q(p.gb)+" "+q(p.size)+
|
||||||
" "+m),c!=Vb&&(c=-1),m=0);a+=d.b.Z;h++}}});G(this)};
|
" "+m),c!=Jb&&(c=-1),m=0);a+=d.b.Z;h++}}});G(this)};
|
||||||
g.ea=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ma=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",mc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.D<d.C.length-1&&(b=d.C[++d.D]):40==a.keyCode&&(0<d.D?b=d.C[--d.D]:(b="",d.D=-1)),null!=b){var k=b.length;c.value=b;c.setSelectionRange(k,k)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,La(c,function(){if(d.ma){var a=d.ma.value;d.ma.value=
|
g.ha=function(a,b,c){var d=this;switch(b){case "debugInput":return this.pa=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",mc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.D<d.C.length-1&&(b=d.C[++d.D]):40==a.keyCode&&(0<d.D?b=d.C[--d.D]:(b="",d.D=-1)),null!=b){var k=b.length;c.value=b;c.setSelectionRange(k,k)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,La(c,function(){if(d.pa){var a=d.pa.value;d.pa.value=
|
||||||
"";mc(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,La(c,function(a){var b=!1;qb(d,!0)||(pb(d,!0),b=d.Ta(a?1:0),pb(d,!1));return b}),!0}return!1};g.fb=function(){this.ma&&this.ma.focus()};function T(a){a=a&&a.u;null==a&&(a=-1);return a}g.ra=function(a,b){var c=255,d=T(a);-1!==d&&(c=Cb(this.A,d),b&&qd(a,b));return c};g.hb=function(a,b){var c=65535,d=T(a);if(-1!==d){var c=this.A,e=d&c.s,f=(d&c.w)>>>c.P,c=e!=c.s?c.A[f].tb(e,d):c.A[f++].eb(e,d)|c.A[f&c.L].eb(0,d+1)<<8;b&&qd(a,b)}return c};
|
"";mc(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,La(c,function(a){var b=!1;qb(d,!0)||(pb(d,!0),b=d.Ta(a?1:0),pb(d,!1));return b}),!0}return!1};g.fb=function(){this.pa&&this.pa.focus()};function T(a){a=a&&a.u;null==a&&(a=-1);return a}g.ta=function(a,b){var c=255,d=T(a);-1!==d&&(c=Cb(this.A,d),b&&xd(a,b));return c};g.ib=function(a,b){var c=65535,d=T(a);if(-1!==d){var c=this.A,e=d&c.s,f=(d&c.w)>>>c.P,c=e!=c.s?c.A[f].tb(e,d):c.A[f++].eb(e,d)|c.A[f&c.L].eb(0,d+1)<<8;b&&xd(a,b)}return c};
|
||||||
g.ub=function(a,b,c){var d=T(a);if(-1!==d){var e=this.A;e.A[(d&e.w)>>>e.P].Ua(d&e.s,b&255,d);c&&qd(a,c);I(this.b,!0)}};g.Pb=function(a,b,c){var d=T(a);if(-1!==d){var e=this.A,f=d&e.s,k=(d&e.w)>>>e.P;f!=e.s?e.A[k].Ob(f,b&65535,d):(e.A[k++].Ua(f,b&255,d),e.A[k&e.L].Ua(0,b>>8&255,d+1));c&&qd(a,c);I(this.b,!0)}};function P(a){return{u:a||0,ka:!1}}function rd(a){return[a.u,a.ka]}function sd(a){return{u:a[0],ka:a[1]}}
|
g.ub=function(a,b,c){var d=T(a);if(-1!==d){var e=this.A;e.A[(d&e.w)>>>e.P].Ua(d&e.s,b&255,d);c&&xd(a,c);I(this.b,!0)}};g.Pb=function(a,b,c){var d=T(a);if(-1!==d){var e=this.A,f=d&e.s,k=(d&e.w)>>>e.P;f!=e.s?e.A[k].Ob(f,b&65535,d):(e.A[k++].Ua(f,b&255,d),e.A[k&e.L].Ua(0,b>>8&255,d+1));c&&xd(a,c);I(this.b,!0)}};function P(a){return{u:a||0,oa:!1}}function yd(a){return[a.u,a.oa]}function zd(a){return{u:a[0],oa:a[1]}}
|
||||||
function U(a,b,c){var d;c=(c?a.M:a.yb).u;if(void 0!==b){d=b=td(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var f=a.H[c].na[d];if(void 0!==f){d=f.o;void 0!==d&&(e=P(d));break}}if(d=e)return d;c=ud(a,b,void 0)}null!=c&&(d=P(c));return d}function vd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Qb=wd(a,b.Mb=c[2]))}function qd(a,b){null!=a.u&&(a.u+=b||1)}
|
function U(a,b,c){var d;c=(c?a.N:a.yb).u;if(void 0!==b){d=b=Ad(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var f=a.H[c].qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=P(d));break}}if(d=e)return d;c=Bd(a,b,void 0)}null!=c&&(d=P(c));return d}function Cd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Qb=Dd(a,b.Mb=c[2]))}function xd(a,b){null!=a.u&&(a.u+=b||1)}
|
||||||
function xd(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.ra(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function kd(a,b){a.B=a;a.Y=a.Rb=1073741824;a.va=null;var c=wd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Q)0<=wa(c,d)&&(a.Y|=Q[d],a.g(d+" messages enabled"))}function pd(a,b){for(var c in Q)if(64==Q[c]){a.Va[c]=b;break}}
|
function Ed(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.ta(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function rd(a,b){a.B=a;a.Y=a.Rb=1073741824;a.wa=null;var c=Dd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Q)0<=wa(c,d)&&(a.Y|=Q[d],a.g(d+" messages enabled"))}function wd(a,b){for(var c in Q)if(64==Q[c]){a.Va[c]=b;break}}
|
||||||
function yd(a,b){var c;a=a.toUpperCase();null==b?c=wa(nd,a):(c=wa(nd,a.substr(b,3)),0>c&&(c=wa(nd,a.substr(b,2))));return c}function zd(a,b){var c=0,d=Ad(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 8:c=2;break;case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"}
|
function Fd(a,b){var c;a=a.toUpperCase();null==b?c=wa(ud,a):(c=wa(ud,a.substr(b,3)),0>c&&(c=wa(ud,a.substr(b,2))));return c}function Gd(a,b){var c=0,d=Hd(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 8:c=2;break;case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?n(d,c):"??"}
|
||||||
function Ad(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.ha;break;case 8:c=Wc(d)&255;break;case 0:c=d.T;break;case 1:c=d.da;break;case 9:c=d.T<<8|d.da;break;case 2:c=d.ta;break;case 3:c=d.Ca;break;case 10:c=d.ta<<8|d.Ca;break;case 4:c=d.la;break;case 5:c=d.qa;break;case 11:c=d.la<<8|d.qa;break;case 12:c=d.ha<<8|Wc(d)&255;break;case 13:c=d.Ea;break;case 14:c=d.N}}return c}
|
function Hd(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.S;break;case 8:c=xc(d)&255;break;case 0:c=d.aa;break;case 1:c=d.ea;break;case 9:c=d.aa<<8|d.ea;break;case 2:c=d.ba;break;case 3:c=d.fa;break;case 10:c=d.ba<<8|d.fa;break;case 4:c=d.ja;break;case 5:c=d.la;break;case 11:c=d.ja<<8|d.la;break;case 12:c=d.S<<8|xc(d)&255;break;case 13:c=d.Ea;break;case 14:c=d.O}}return c}
|
||||||
function Bd(a,b){b=td(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=yd(b,c+1),0<=e&&(b=b.substr(0,c)+zd(a,e)+b.substr(c+1+nd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=da(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=U(a,e))?(d=e+' "'+xd(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=U(a,e))?(qd(d),d=e+' "'+
|
function Id(a,b){b=Ad(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=Fd(b,c+1),0<=e&&(b=b.substr(0,c)+Gd(a,e)+b.substr(c+1+ud[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=da(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=U(a,e))?(d=e+' "'+Ed(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=U(a,e))?(xd(d),d=e+' "'+
|
||||||
xd(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}g.message=function(a,b){b&&(a+=" at "+n(P(this.b.N).u,4));if(!this.va||a!=this.va)if(this.va=a,this.Y&-2147483648&&(this.U(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Qa=0;c.D-=c.b;c.b=0;I(c)}};function Cd(a,b,c,d){a.message(b.Wa+"."+(null!=d?"outPort":"inPort")+"("+q(c)+",unknown"+(null!=d?",0x"+n(d,2):"")+")")}
|
Ed(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}g.message=function(a,b){b&&(a+=" at "+n(P(this.b.O).u,4));if(!this.wa||a!=this.wa)if(this.wa=a,this.Y&-2147483648&&(this.U(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Qa=0;c.D-=c.b;c.b=0;I(c)}};function Jd(a,b,c,d){a.message(b.Wa+"."+(null!=d?"outPort":"inPort")+"("+q(c)+",unknown"+(null!=d?",0x"+n(d,2):"")+")")}
|
||||||
function jd(a){var b;if(Zc(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=P();a.ja=0;a.g("instruction history buffer allocated")}if(!a.I||!a.I.length)for(a.I=Array(256),b=0;b<a.I.length;b++)a.I[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.ja=0,a.L=[],a.I=[]}g.Fa=function(a){if(!Dd(this))return!1;this.b.Fa(a);return!0};
|
function qd(a){var b;if(fd(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=P();a.na=0;a.g("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.na=0,a.L=[],a.J=[]}g.Fa=function(a){if(!Kd(this))return!1;this.b.Fa(a);return!0};
|
||||||
g.Ta=function(a,b,c){if(!Dd(this))return!1;this.J=0;a||Zc(this)&&$c(this,this.b.N,0);try{var d=this.b.Ta(a);0<d&&(this.J+=d,Qc(this.b,d,!0),oc(this.b,d),this.V++)}catch(e){"number"!=typeof e&&(this.J=0,sb(this.b,e.stack||e.message))}!1!==c&&I(this.b);this.fa(b||!1);return 0<this.J};g.U=function(a){this.b&&this.b.U(a)};g.fa=function(a){void 0===a&&(a=!0);this.M=P(this.b.N);a&&1!=this.S?Ed(this):Fd(this)};
|
g.Ta=function(a,b,c){if(!Kd(this))return!1;this.K=0;a||fd(this)&&gd(this,this.b.O,0);try{var d=this.b.Ta(a);0<d&&(this.K+=d,rc(this.b,d,!0),oc(this.b,d),this.V++)}catch(e){"number"!=typeof e&&(this.K=0,sb(this.b,e.stack||e.message))}!1!==c&&I(this.b);this.ka(b||!1);return 0<this.K};g.U=function(a){this.b&&this.b.U(a)};g.ka=function(a){void 0===a&&(a=!0);this.N=P(this.b.O);a&&1!=this.T?Ld(this):Md(this)};
|
||||||
function Dd(a){var b;if(b=a.b&&rb(a.b))b=a.b,b.j.W?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.b)?(a=a.b,a.j.Ja?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}g.pa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};g.oa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};g.reset=function(a){jd(this);this.V=this.Ga=0;this.va=null;this.J=0;this.M=P(this.b.N);this.j.X=!1;Gd(this);a||this.fa()};
|
function Kd(a){var b;if(b=a.b&&rb(a.b))b=a.b,b.j.W?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.b)?(a=a.b,a.j.Ja?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}g.sa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};g.ra=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};g.reset=function(a){qd(this);this.V=this.Ga=0;this.wa=null;this.K=0;this.N=P(this.b.O);this.j.X=!1;Nd(this);a||this.ka()};
|
||||||
g.save=function(){var a=new J(this);M(a,0,rd(this.M));M(a,1,rd(this.aa));M(a,2,[this.C,this.ia,this.Y]);M(a,3,this.H);return a.data()};g.restore=function(a){var b=0;void 0!==a[2]&&(this.M=sd(a[b++]),this.aa=sd(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.ia=a[b][1],this.Y|=a[b][2]);a[3]&&(this.H=a[3]);return!0};g.start=function(a,b){this.S||this.g("running");this.j.X=!0;this.Sb=a;this.Vb=b};
|
g.save=function(){var a=new J(this);M(a,0,yd(this.N));M(a,1,yd(this.ca));M(a,2,[this.C,this.ma,this.Y]);M(a,3,this.H);return a.data()};g.restore=function(a){var b=0;void 0!==a[2]&&(this.N=zd(a[b++]),this.ca=zd(a[b++]),this.C=a[b][0],"string"==typeof this.C&&(this.C=[this.C]),this.ma=a[b][1],this.Y|=a[b][2]);a[3]&&(this.H=a[3]);return!0};g.start=function(a,b){this.T||this.g("running");this.j.X=!0;this.Sb=a;this.Vb=b};
|
||||||
g.stop=function(a,b){if(this.j.X){this.j.X=!1;this.J=b-this.Vb;if(!this.S){var c="stopped";if(this.J){var d=a-this.Sb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Zc(this)&&(c+=this.V+" opcodes, ",this.Ga-=this.V,this.V=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else ob(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.fa(!0);this.fb();Gd(this,this.b.N)}};function Zc(a){return 1<a.w.length||!!a.ua}
|
g.stop=function(a,b){if(this.j.X){this.j.X=!1;this.K=b-this.Vb;if(!this.T){var c="stopped";if(this.K){var d=a-this.Sb,e=0<d?Math.round(1E3*this.K/d):0,c=c+" (";fd(this)&&(c+=this.V+" opcodes, ",this.Ga-=this.V,this.V=0);c+=this.K+" cycles, "+d+" ms, "+e+" hz)"}else ob(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.ka(!0);this.fb();Nd(this,this.b.O)}};function fd(a){return 1<a.w.length||!!a.va}
|
||||||
function $c(a,b,c){var d=a.b;if(0<c&&(a.ua&&!--a.ua||ec(a,b,1,a.w)))return!0;0<=c&&a.I.length&&(a.V++,b=Cb(a.A,b),null!=b&&(a.I[b][1]++,b=a.L[a.ja],b.u=d.N,b.ka=!1,++a.ja==a.L.length&&(a.ja=0)));return!1}function Hd(a,b,c){a.g("break on input from port "+q(b)+": "+n(c));a.U(!0)}function Id(a,b,c){a.g("break on output to port "+q(b)+": "+n(c));a.U(!0)}
|
function gd(a,b,c){var d=a.b;if(0<c&&(a.va&&!--a.va||ec(a,b,1,a.w)))return!0;0<=c&&a.J.length&&(a.V++,b=Cb(a.A,b),null!=b&&(a.J[b][1]++,b=a.L[a.na],b.u=d.O,b.oa=!1,++a.na==a.L.length&&(a.na=0)));return!1}function Od(a,b,c){a.g("break on input from port "+q(b)+": "+n(c));a.U(!0)}function Pd(a,b,c){a.g("break on output to port "+q(b)+": "+n(c));a.U(!0)}
|
||||||
function id(a){var b,c;a.w=["bp"];if(void 0!==a.R)for(b=1;b<a.R.length;b++){c=a.R[b];var d=a.b;fc(d.ga[T(c)>>>d.P],!1)}a.R=["br"];if(void 0!==a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.b,fc(d.ga[T(c)>>>d.P],!0);a.F=["bw"];a.Ab=0}g.wa=function(a,b,c){var d=!0;c||Jd(this,a,b,!1,!0);if(a!=this.w){var e=T(b);if(-1===e)this.g("invalid address: "+n(b.u,4)),d=!1;else{var f=this.b;f.ga[e>>>f.P].wa(e&f.I,a==this.F)}}d&&(a.push(b),c?b.ka=!0:(Kd(this,a,a.length-1,"set"),jd(this)));return d};
|
function pd(a){var b,c;a.w=["bp"];if(void 0!==a.R)for(b=1;b<a.R.length;b++){c=a.R[b];var d=a.b;fc(d.ia[T(c)>>>d.P],!1)}a.R=["br"];if(void 0!==a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=a.b,fc(d.ia[T(c)>>>d.P],!0);a.F=["bw"];a.Ab=0}g.xa=function(a,b,c){var d=!0;c||Qd(this,a,b,!1,!0);if(a!=this.w){var e=T(b);if(-1===e)this.g("invalid address: "+n(b.u,4)),d=!1;else{var f=this.b;f.ia[e>>>f.P].xa(e&f.H,a==this.F)}}d&&(a.push(b),c?b.oa=!0:(Rd(this,a,a.length-1,"set"),qd(this)));return d};
|
||||||
function Jd(a,b,c,d,e){var f=!1;c=T(c);for(var k=1;k<b.length;k++){var h=b[k];if(c==T(h)&&(!d||h.ka)){f=!0;h.ka||e||Kd(a,b,k,"cleared");b.splice(k,1);b!=a.w&&(d=a.b,fc(d.ga[c>>>d.P],b==a.F));h.ka||jd(a);break}}return f}function Ld(a,b){for(var c=1;c<b.length;c++)Kd(a,b,c);return b.length-1}function Kd(a,b,c,d){c=b[c];a.g(b[0]+" "+n(c.u,4)+(d?" "+d:c.Mb?' "'+c.Mb+'"':""))}
|
function Qd(a,b,c,d,e){var f=!1;c=T(c);for(var k=1;k<b.length;k++){var h=b[k];if(c==T(h)&&(!d||h.oa)){f=!0;h.oa||e||Rd(a,b,k,"cleared");b.splice(k,1);b!=a.w&&(d=a.b,fc(d.ia[c>>>d.P],b==a.F));h.oa||qd(a);break}}return f}function Sd(a,b){for(var c=1;c<b.length;c++)Rd(a,b,c);return b.length-1}function Rd(a,b,c,d){c=b[c];a.g(b[0]+" "+n(c.u,4)+(d?" "+d:c.Mb?' "'+c.Mb+'"':""))}
|
||||||
function Gd(a,b){if(void 0!==b)ec(a,b,1,a.w,!0),a.S=0;else for(var c=1;c<a.w.length;c++){var d=a.w[c];if(d.ka){if(!Jd(a,a.w,d,!0))break;c=0}}}
|
function Nd(a,b){if(void 0!==b)ec(a,b,1,a.w,!0),a.T=0;else for(var c=1;c<a.w.length;c++){var d=a.w[c];if(d.oa){if(!Qd(a,a.w,d,!0))break;c=0}}}
|
||||||
function ec(a,b,c,d,e){var f=!1;if(!a.Ab++)for(var k=1;!f&&k<d.length;k++){var h=d[k];if(!e||h.ka)for(var l=T(h),m=0;m<c;m++)if(b+m==l){var p,f=!0;h.ka&&(Jd(a,d,h,!0),e=!0);if(p=h.Qb){for(var f=!1,r=0;r<p.length;r++)if(!Md(a,p[r],!0)){if(p[r].indexOf("if")){f=!0;break}for(var t=r+1;t<p.length&&p[t].indexOf("else");t++)r++;if(t==p.length){f=!0;break}}a.b.j.X||(f=!0)}if(f){e||Kd(a,d,k,"hit");break}}}a.Ab--;return f}
|
function ec(a,b,c,d,e){var f=!1;if(!a.Ab++)for(var k=1;!f&&k<d.length;k++){var h=d[k];if(!e||h.oa)for(var l=T(h),m=0;m<c;m++)if(b+m==l){var p,f=!0;h.oa&&(Qd(a,d,h,!0),e=!0);if(p=h.Qb){for(var f=!1,r=0;r<p.length;r++)if(!Td(a,p[r],!0)){if(p[r].indexOf("if")){f=!0;break}for(var t=r+1;t<p.length&&p[t].indexOf("else");t++)r++;if(t==p.length){f=!0;break}}a.b.j.X||(f=!0)}if(f){e||Rd(a,d,k,"hit");break}}}a.Ab--;return f}
|
||||||
function Nd(a,b,c,d){for(var e=P(b.u),f=a.ra(b,1),k=a.ib[f],f="",h=null,l=md[k[0]],m=k.length-1,p=1;p<=m;p++){var r="",t=k[p];if(void 0!==t){var K=t&15;if(0==K){if(null==h)continue;K=h}h=K;K=t&240;if(32==K){var r=a,K=b,B=" ";switch(t&15){case 1:t&12288&&(B=n(r.ra(K,1),2));break;case 2:B=n(r.ra(K,1)<<24>>24,4);break;case 3:B=n(r.hb(K,2),4);break;default:B="imm("+q(t)+")"}r=B}else 16==K&&(r=nd[(t&3840)>>8]);if(!r||!r.length){f="INVALID";break}0<f.length&&(f+=",");f+=r||"???"}}k="";h=n(e.u,4)+" ";if(-1!==
|
function Ud(a,b,c,d){for(var e=P(b.u),f=a.ta(b,1),k=a.jb[f],f="",h=null,l=td[k[0]],m=k.length-1,p=1;p<=m;p++){var r="",t=k[p];if(void 0!==t){var K=t&15;if(0==K){if(null==h)continue;K=h}h=K;K=t&240;if(32==K){var r=a,K=b,B=" ";switch(t&15){case 1:t&12288&&(B=n(r.ta(K,1),2));break;case 2:B=n(r.ta(K,1)<<24>>24,4);break;case 3:B=n(r.ib(K,2),4);break;default:B="imm("+q(t)+")"}r=B}else 16==K&&(r=ud[(t&3840)>>8]);if(!r||!r.length){f="INVALID";break}0<f.length&&(f+=",");f+=r||"???"}}k="";h=n(e.u,4)+" ";if(-1!==
|
||||||
e.u&&-1!==b.u){do if(k+=n(a.ra(e,1),2),null==e.u)break;while(e.u!=b.u)}h+=ra(k,11);h+=ra(l,7);f&&(h+=" "+f);c&&(h=ra(h,40)+";"+c,h=a.b.j.Ia?h+("cycles="+pc(a.b).toString()+" cs="+n(a.b.i.Ya)):h+(null!=d?"="+d.toString():""));return h}
|
e.u&&-1!==b.u){do if(k+=n(a.ta(e,1),2),null==e.u)break;while(e.u!=b.u)}h+=ra(k,11);h+=ra(l,7);f&&(h+=" "+f);c&&(h=ra(h,40)+";"+c,h=a.b.j.Ia?h+("cycles="+pc(a.b).toString()+" cs="+n(a.b.i.Ya)):h+(null!=d?"="+d.toString():""));return h}
|
||||||
function Od(a,b){var c;switch(b){case "I":c=a.b.Da&512;break;case "S":c=a.b.K&128?128:0;break;case "Z":c=a.b.O&255?0:64;break;case "A":c=a.b;c=(c.K^c.C)&16?16:0;break;case "P":c=ub[a.b.K&255]?4:0;break;case "C":c=a.b.O&256?1:0;break;default:c=0}return b+(c?"1":"0")+" "}function V(a,b){return nd[b]+"="+zd(a,b)+" "}var Pd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
function Vd(a,b){var c;switch(b){case "I":c=a.b.Da&512;break;case "S":c=a.b.M&128?128:0;break;case "Z":c=a.b.I&255?0:64;break;case "A":c=a.b;c=(c.M^c.C)&16?16:0;break;case "P":c=ub[a.b.M&255]?4:0;break;case "C":c=a.b.I&256?1:0;break;default:c=0}return b+(c?"1":"0")+" "}function V(a,b){return ud[b]+"="+Gd(a,b)+" "}var Wd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||||
function Qd(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 Xd(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 ud(a,b,c){var d;if(b){b=td(a,b);for(var e=0,f=!1,k=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],r=p.length,p=sa(p);if(!p){f=!0;break}p=Rd(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==m.length)break;var p=m[e++],t=p.length;l.length&&Pd[p]<Pd[l[l.length-1]]&&Qd(h,l,1);l.push(p);b=b.substr(r+t)}Qd(h,l)&&1==h.length||(f=!0);f?c&&a.g("error parsing '"+k+"' at character "+(k.length-b.length)):(d=h.pop(),c&&re(a,null,
|
function Bd(a,b,c){var d;if(b){b=Ad(a,b);for(var e=0,f=!1,k=b,h=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],r=p.length,p=sa(p);if(!p){f=!0;break}p=Yd(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}h.push(p);if(e==m.length)break;var p=m[e++],t=p.length;l.length&&Wd[p]<Wd[l[l.length-1]]&&Xd(h,l,1);l.push(p);b=b.substr(r+t)}Xd(h,l)&&1==h.length||(f=!0);f?c&&a.g("error parsing '"+k+"' at character "+(k.length-b.length)):(d=h.pop(),c&&ye(a,null,
|
||||||
d))}return d}function td(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=ud(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=U(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.hb(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.V-a.Ga}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
d))}return d}function Ad(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Bd(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?n(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=U(a,c[1]),b=b.replace("["+c[1]+"]",d?n(a.ib(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.V-a.Ga}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
||||||
function Rd(a,b,c,d){var e;void 0!==b?(e=yd(b),0<=e?e=Ad(a,e):(e=a.ca[b],void 0===e&&(e=da(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
function Yd(a,b,c,d){var e;void 0!==b?(e=Fd(b),0<=e?e=Hd(a,e):(e=a.ga[b],void 0===e&&(e=da(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||||
function re(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,k="";if(!f||4<f)f=4;for(var h=0;h<f;h++){k&&(k=","+k);var l=d&255,m=8,p="";void 0===m?m=32:32<m&&(m=32);if(null==l||isNaN(l))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(l&1?"1":"0")+p,l>>=1;k=p+"b"+k;d>>=8}d="0x"+n(c)+" "+c+". ("+k+")"}a.g((null!=b?b+": ":"")+d);return e}function se(a,b){if(b)return re(a,b,a.ca[b]);var c=0;for(b in a.ca)re(a,b,a.ca[b]),c++;return 0<c}hd.prototype.wb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
function ye(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,k="";if(!f||4<f)f=4;for(var h=0;h<f;h++){k&&(k=","+k);var l=d&255,m=8,p="";void 0===m?m=32:32<m&&(m=32);if(null==l||isNaN(l))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(l&1?"1":"0")+p,l>>=1;k=p+"b"+k;d>>=8}d="0x"+n(c)+" "+c+". ("+k+")"}a.g((null!=b?b+": ":"")+d);return e}function ze(a,b){if(b)return ye(a,b,a.ga[b]);var c=0;for(b in a.ga)ye(a,b,a.ga[b]),c++;return 0<c}od.prototype.wb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||||
function te(a,b,c){var d=[],e=T(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],k=f.u>>>0,h=f.Xb;if(e>=k&&e<k+h){e=ta(f.xb,[e-k],a.wb);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.H[b].xb,k=0,h=null;0<=c&&c<f.length&&(k=f[c][0],h=f[c][1]);h&&(e=a.H[b].na[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(k);d.push(e.a);d.push(e.c)}
|
function Ae(a,b,c){var d=[],e=T(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],k=f.u>>>0,h=f.Xb;if(e>=k&&e<k+h){e=ta(f.xb,[e-k],a.wb);0<=e?Be(a,b,e,d):c&&(e=~e,Be(a,b,e-1,d),Be(a,b,e,d));break}}return d}function Be(a,b,c,d){var e={},f=a.H[b].xb,k=0,h=null;0<=c&&c<f.length&&(k=f[c][0],h=f[c][1]);h&&(e=a.H[b].qa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(k);d.push(e.a);d.push(e.c)}
|
||||||
function ve(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.I)if("clear"==b){for(c=0;c<a.I.length;c++)a.I[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.I.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],k=e[c][1];k&&(a.g((md[a.ib[f][0]]+" ").substr(0,5)+" ("+("0x"+n(f,2))+"): "+k+" times"),d++)}}d||a.g("no frequency data available")}}
|
function Ce(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[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.J.slice();e.sort(function(a,b){return b[1]-a[1]});for(c=0;c<e.length;c++){var f=e[c][0],k=e[c][1];k&&(a.g((td[a.jb[f][0]]+" ").substr(0,5)+" ("+("0x"+n(f,2))+"): "+k+" times"),d++)}}d||a.g("no frequency data available")}}
|
||||||
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.ca[c[1]],!0;var d=ud(a,c[3]);return void 0!==d?(a.ca[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
function De(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ze(a)||a.g("no variables"),!0;if(!c[2])return ze(a,c[1]);if(!c[3])return delete a.ga[c[1]],!0;var d=Bd(a,c[3]);return void 0!==d?(a.ga[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||||
function xe(a,b,c){var d=null;if(b=U(a,b,!0)){var e=te(a,b,!0);if(e.length){var f,k;e[0]&&(k="",(f=b.u-e[1])&&(k=" + "+q(f)),f=e[0]+" ("+n(e[1],4)+")"+k,c&&a.g(f),d=f);4<e.length&&e[4]&&(k="",(f=e[5]-b.u)&&(k=" - "+q(f)),f=e[4]+" ("+n(e[5],4)+")"+k,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
function Ee(a,b,c){var d=null;if(b=U(a,b,!0)){var e=Ae(a,b,!0);if(e.length){var f,k;e[0]&&(k="",(f=b.u-e[1])&&(k=" + "+q(f)),f=e[0]+" ("+n(e[1],4)+")"+k,c&&a.g(f),d=f);4<e.length&&e[4]&&(k="",(f=e[5]-b.u)&&(k=" - "+q(f)),f=e[4]+" ("+n(e[5],4)+")"+k,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||||
function Ed(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{null==c&&(c=!0);if(null!=b&&1<b.length){var d=b[1],e=null,f=d.indexOf("=");if(0<f)e=d.substr(f+1),d=d.substr(0,f);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var f=!1,k=ud(a,e);if(void 0!==k){var f=!0,h=d.toUpperCase();"E"==h.charAt(0)&&(h=null);switch(h){case "A":a.b.ha=k&255;break;case "B":a.b.T=k&255;break;case "BC":a.b.T=k<<8&
|
function Ld(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{null==c&&(c=!0);if(null!=b&&1<b.length){var d=b[1],e=null,f=d.indexOf("=");if(0<f)e=d.substr(f+1),d=d.substr(0,f);else if(2<b.length)e=b[2];else{a.g("missing value for "+b[1]);return}var f=!1,k=Bd(a,e);if(void 0!==k){var f=!0,h=d.toUpperCase();"E"==h.charAt(0)&&(h=null);switch(h){case "A":a.b.S=k&255;break;case "B":a.b.aa=k&255;break;case "BC":a.b.aa=k<<8&
|
||||||
255;case "C":a.b.da=k&255;break;case "D":a.b.ta=k&255;break;case "DE":a.b.ta=k<<8&255;case "E":a.b.Ca=k&255;break;case "H":a.b.la=k&255;break;case "HL":a.b.la=k<<8&255;case "L":a.b.qa=k&255;break;case "SP":a.b.Ea=k&65535;break;case "PC":a.b.N=k&65535;a.M=P(a.b.N);break;case "PS":Vc(a.b,k);break;case "C":k?(d=a.b,d.O|=256):(d=a.b,d.O&=255);break;case "P":k?(d=a.b,ub[d.K&255]||(d.K^=1)):(d=a.b,ub[d.K&255]&&(d.K^=1));break;case "A":k?(d=a.b,d.C=~d.K&16|d.C&-17):(d=a.b,d.C=d.K&16|d.C&-17);break;case "Z":k?
|
255;case "C":a.b.ea=k&255;break;case "D":a.b.ba=k&255;break;case "DE":a.b.ba=k<<8&255;case "E":a.b.fa=k&255;break;case "H":a.b.ja=k&255;break;case "HL":a.b.ja=k<<8&255;case "L":a.b.la=k&255;break;case "SP":a.b.Ea=k&65535;break;case "PC":a.b.O=k&65535;a.N=P(a.b.O);break;case "PS":wc(a.b,k);break;case "C":k?(d=a.b,d.I|=256):(d=a.b,d.I&=255);break;case "P":k?(d=a.b,ub[d.M&255]||(d.M^=1)):(d=a.b,ub[d.M&255]&&(d.M^=1));break;case "A":k?(d=a.b,d.C=~d.M&16|d.C&-17):(d=a.b,d.C=d.M&16|d.C&-17);break;case "Z":k?
|
||||||
(d=a.b,d.O&=-256):(d=a.b,d.O|=255);break;case "S":k?(d=a.b,d.K&128||(d.K^=192)):(d=a.b,d.K&128&&(d.K^=192));break;case "I":k?(d=a.b,d.Da|=512):(d=a.b,d.Da&=-513);break;default:a.g("unknown register: "+d);return}}if(!f){a.g("invalid value: "+e);return}I(a.b);a.g("updated registers:")}a.g(V(a,7)+V(a,8)+V(a,0)+V(a,1)+V(a,2)+V(a,3)+V(a,4)+V(a,5)+V(a,13)+Od(a,"I")+Od(a,"S")+Od(a,"Z")+Od(a,"A")+Od(a,"P")+Od(a,"C"));c&&(a.M=P(a.b.N),Fd(a,n(a.M.u,4)))}}
|
(d=a.b,d.I&=-256):(d=a.b,d.I|=255);break;case "S":k?(d=a.b,d.M&128||(d.M^=192)):(d=a.b,d.M&128&&(d.M^=192));break;case "I":k?(d=a.b,d.Da|=512):(d=a.b,d.Da&=-513);break;default:a.g("unknown register: "+d);return}}if(!f){a.g("invalid value: "+e);return}I(a.b);a.g("updated registers:")}a.g(V(a,7)+V(a,8)+V(a,0)+V(a,1)+V(a,2)+V(a,3)+V(a,4)+V(a,5)+V(a,13)+Vd(a,"I")+Vd(a,"S")+Vd(a,"Z")+Vd(a,"A")+Vd(a,"P")+Vd(a,"C"));c&&(a.N=P(a.b.O),Md(a,n(a.N.u,4)))}}
|
||||||
function ye(a,b){b=sa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Bd(a,c[2])):ud(a,b,!0)}function ze(a,b,c){var d="t"!=b;c=Rd(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ka(c,function(){return pb(a,!0)&&a.Ta(e,d,!1)},function(){I(a.b);pb(a,!1)})}
|
function Fe(a,b){b=sa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(Id(a,c[2])):Bd(a,b,!0)}function Ge(a,b,c){var d="t"!=b;c=Yd(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ka(c,function(){return pb(a,!0)&&a.Ta(e,d,!1)},function(){I(a.b);pb(a,!1)})}
|
||||||
function Fd(a,b,c,d){if(b=U(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=U(a,c,!0);if(!d||d.u<b.u)return;e=d.u-b.u;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=qb(a,!1)||a.S?a.J:null;var k=null!=f?"cycles":null,h=te(a,b),l=b.u;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(k=h[3],f=null);f=Nd(a,b,k,f);a.g(f);a.M=b;e-=b.u-l;c++}}}
|
function Md(a,b,c,d){if(b=U(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=U(a,c,!0);if(!d||d.u<b.u)return;e=d.u-b.u;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=qb(a,!1)||a.T?a.K:null;var k=null!=f?"cycles":null,h=Ae(a,b),l=b.u;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(k=h[3],f=null);f=Ud(a,b,k,f);a.g(f);a.N=b;e-=b.u-l;c++}}}
|
||||||
function wd(a,b,c,d){if(c)if(b){0>a.D&&a.C.length&&(a.D=0);if(0>a.D||b!=a.C[a.D])a.C.splice(0,0,b),a.D=0;a.D--}else b=a.C[a.D+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 k=b.charAt(f);if('"'==k||"'"==k)e?k==e&&(e=null):e=k;else if(k==d&&!e||!k)a.push(sa(b.substring(c,f))),c=f+1}}return a}
|
function Dd(a,b,c,d){if(c)if(b){0>a.D&&a.C.length&&(a.D=0);if(0>a.D||b!=a.C[a.D])a.C.splice(0,0,b),a.D=0;a.D--}else b=a.C[a.D+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 k=b.charAt(f);if('"'==k||"'"==k)e?k==e&&(e=null):e=k;else if(k==d&&!e||!k)a.push(sa(b.substring(c,f))),c=f+1}}return a}
|
||||||
function Md(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ia&&(a.g("ended assemble at "+n(a.aa.u,4)),a.M=a.aa,a.ia=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.va=null;if(rb(a)&&0<b.length){a.ia&&(b="a "+n(a.aa.u,4)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var k=f[0],h=k.charAt(0),l=1;l<k.length;l++){var m=k.charAt(l);if("?"==h||"r"==h||"a">m||"z"<m){f[0]=k.substr(l);f.unshift(k.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var p=U(a,f[1],!0);if(p)if(a.aa=
|
function Td(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ma&&(a.g("ended assemble at "+n(a.ca.u,4)),a.N=a.ca,a.ma=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.wa=null;if(rb(a)&&0<b.length){a.ma&&(b="a "+n(a.ca.u,4)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var k=f[0],h=k.charAt(0),l=1;l<k.length;l++){var m=k.charAt(l);if("?"==h||"r"==h||"a">m||"z"<m){f[0]=k.substr(l);f.unshift(k.substr(0,l));break}}switch(f[0].charAt(0)){case "a":var p=U(a,f[1],!0);if(p)if(a.ca=
|
||||||
p,void 0===f[2])a.g("begin assemble at "+n(p.u,4)),a.ia=!0,I(a.b);else{var r;a.g("not supported yet");r=[];if(r.length){for(var t=0;t<r.length;t++)a.ub(p,r[t],1);a.g(Nd(a,a.aa))}}break;case "b":a:{var K=f[0],B=f[1],Ue=b;if("?"==B)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]"),
|
p,void 0===f[2])a.g("begin assemble at "+n(p.u,4)),a.ma=!0,I(a.b);else{var r;a.g("not supported yet");r=[];if(r.length){for(var t=0;t<r.length;t++)a.ub(p,r[t],1);a.g(Ud(a,a.ca))}}break;case "b":a:{var K=f[0],B=f[1],af=b;if("?"==B)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 X=K.charAt(1);if("l"==X){var Ba=0,Ba=Ba+Ld(a,a.w),Ba=Ba+Ld(a,a.R);(Ba+=Ld(a,a.F))||a.g("no breakpoints")}else if("n"==X)a.ua=Rd(a,B),a.g("break after "+a.ua+" instruction(s)");else if(void 0===B)a.g("missing breakpoint address");else{var A=P();if("*"!=B&&(A=U(a,B,!0),!A))break a;B=q(A.u);"c"==X?null==A.u?(id(a),a.g("all breakpoints cleared")):Jd(a,a.w,A)||Jd(a,a.R,
|
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 X=K.charAt(1);if("l"==X){var Ba=0,Ba=Ba+Sd(a,a.w),Ba=Ba+Sd(a,a.R);(Ba+=Sd(a,a.F))||a.g("no breakpoints")}else if("n"==X)a.va=Yd(a,B),a.g("break after "+a.va+" instruction(s)");else if(void 0===B)a.g("missing breakpoint address");else{var A=P();if("*"!=B&&(A=U(a,B,!0),!A))break a;B=q(A.u);"c"==X?null==A.u?(pd(a),a.g("all breakpoints cleared")):Qd(a,a.w,A)||Qd(a,a.R,
|
||||||
A)||Jd(a,a.F,A)||a.g("breakpoint missing: "+n(A.u,4)):"i"==X?a.g("breakpoint "+(Db(a.A,A.u)?"enabled":"cleared")+": port "+B+" (input)"):"o"==X?a.g("breakpoint "+(Qb(a.A,A.u)?"enabled":"cleared")+": port "+B+" (output)"):null!=A.u&&(vd(a,A,Ue),"p"==X?a.wa(a.w,A):"r"==X?a.wa(a.R,A):"w"==X?a.wa(a.F,A):a.g("unknown breakpoint command: "+X))}}}break;case "c":a.xa&&(a.xa.value="");break;case "d":a:{var Ca,Da=f[0],Y=f[1],na=f[2],Ve=f[3];if("?"==Y){var Z="";for(Ca in Q)a.Va[Ca]&&(Z&&(Z+=","),Z+=Ca);Z+=",state,symbols";
|
A)||Qd(a,a.F,A)||a.g("breakpoint missing: "+n(A.u,4)):"i"==X?a.g("breakpoint "+(Db(a.A,A.u)?"enabled":"cleared")+": port "+B+" (input)"):"o"==X?a.g("breakpoint "+(Eb(a.A,A.u)?"enabled":"cleared")+": port "+B+" (output)"):null!=A.u&&(Cd(a,A,af),"p"==X?a.xa(a.w,A):"r"==X?a.xa(a.R,A):"w"==X?a.xa(a.F,A):a.g("unknown breakpoint command: "+X))}}}break;case "c":a.ya&&(a.ya.value="");break;case "d":a:{var Ca,Da=f[0],Y=f[1],na=f[2],bf=f[3];if("?"==Y){var Z="";for(Ca in Q)a.Va[Ca]&&(Z&&(Z+=","),Z+=Ca);Z+=",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");Z.length&&a.g("dump extension commands:\n\t"+Z)}else if("state"==Y){var Sd=Ae(a.s,!0);"console"==na?console.log(Sd):(a.xa&&(a.xa.value=""),a.g(Sd))}else if("symbols"==Y)for(var rc=0;rc<a.H.length;rc++){var sc=a.H[rc],Fa;for(Fa in sc.na)if("."!=Fa.charAt(0)){var Td=sc.na[Fa].o;
|
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");Z.length&&a.g("dump extension commands:\n\t"+Z)}else if("state"==Y){var Zd=He(a.s,!0);"console"==na?console.log(Zd):(a.ya&&(a.ya.value=""),a.g(Zd))}else if("symbols"==Y)for(var Ac=0;Ac<a.H.length;Ac++){var Bc=a.H[Ac],Fa;for(Fa in Bc.qa)if("."!=Fa.charAt(0)){var $d=Bc.qa[Fa].o;
|
||||||
if(void 0!==Td){var Ud=sc.na[Fa].l;Ud&&(Fa=Ud);a.g(n(Td,4)+" "+Fa)}}}else{if("d"==Da){for(Ca in Q)if(f[1]==Ca){var Vd=a.Va[Ca];Vd?(f.shift(),f.shift(),Vd(f)):a.g("no dump registered for "+Y);break a}Y||(Da=a.Wb||"db")}else a.Wb=Da;if("dh"==Da){var Wd=Y,Xd=na,Yd="",Zd=0,D=a.ja,aa=a.L;if(aa.length){var L=+Wd||a.Bb,Ga=+Xd||10;isNaN(L)?L=Ga:Yd="more ";L>aa.length&&(a.g("note: only "+aa.length+" available"),L=aa.length);D-=L;0>D&&(null==aa[aa.length-1].u?(L=D+L,D=0):D+=aa.length);var tc=[];"call"==Xd&&
|
if(void 0!==$d){var ae=Bc.qa[Fa].l;ae&&(Fa=ae);a.g(n($d,4)+" "+Fa)}}}else{if("d"==Da){for(Ca in Q)if(f[1]==Ca){var be=a.Va[Ca];be?(f.shift(),f.shift(),be(f)):a.g("no dump registered for "+Y);break a}Y||(Da=a.Wb||"db")}else a.Wb=Da;if("dh"==Da){var ce=Y,de=na,ee="",fe=0,D=a.na,aa=a.L;if(aa.length){var L=+ce||a.Bb,Ga=+de||10;isNaN(L)?L=Ga:ee="more ";L>aa.length&&(a.g("note: only "+aa.length+" available"),L=aa.length);D-=L;0>D&&(null==aa[aa.length-1].u?(L=D+L,D=0):D+=aa.length);var Cc=[];"call"==de&&
|
||||||
(Ga=1E5,tc=["CALL"]);for(void 0!==Wd&&a.g(L+" instructions earlier:");0<Ga&&D!=a.ja;){var $d=aa[D++];if(null==$d.u)break;var Za=P($d.u),We=L--,ae=Nd(a,Za,"history",We);(!tc.length||0<=ae.indexOf(tc[0]))&&a.g(ae);Za.nb&&(D+=Za.nb,Ga-=Za.nb,L-=Za.nb);D>=aa.length&&(D=0);a.Bb=L;Zd++;Ga--}}Zd||(a.g("no "+Yd+"history available"),a.Bb=void 0)}else{var Eb=U(a,Y);if(Eb){var Fb=0;na&&("l"==na.charAt(0)&&(na=na.substr(1)||Ve),Fb=Rd(a,na)>>>0,65536<Fb&&(Fb=65536));for(var oa="",Xe=(Fb||128)+15>>4||1,uc="dd"==
|
(Ga=1E5,Cc=["CALL"]);for(void 0!==ce&&a.g(L+" instructions earlier:");0<Ga&&D!=a.na;){var ge=aa[D++];if(null==ge.u)break;var bb=P(ge.u),cf=L--,he=Ud(a,bb,"history",cf);(!Cc.length||0<=he.indexOf(Cc[0]))&&a.g(he);bb.nb&&(D+=bb.nb,Ga-=bb.nb,L-=bb.nb);D>=aa.length&&(D=0);a.Bb=L;fe++;Ga--}}fe||(a.g("no "+ee+"history available"),a.Bb=void 0)}else{var Kb=U(a,Y);if(Kb){var Lb=0;na&&("l"==na.charAt(0)&&(na=na.substr(1)||bf),Lb=Yd(a,na)>>>0,65536<Lb&&(Lb=65536));for(var oa="",df=(Lb||128)+15>>4||1,Dc="dd"==
|
||||||
Da?4:"dw"==Da?2:1,be=0;be<Xe;be++){for(var Gb=0,vc=0,$a="",wc="",Y=n(Eb.u,4),xc=0;16>xc;xc++){var Hb=a.ra(Eb,1),Gb=Gb|Hb<<(vc++<<3);vc==uc&&($a+=n(Gb,2*uc),$a+=1==uc?7==xc?"-":" ":" ",Gb=vc=0);wc+=32<=Hb&&128>Hb?String.fromCharCode(Hb):"."}oa&&(oa+="\n");oa+=Y+" "+$a+" "+wc}oa&&a.g(oa);a.yb=Eb}}}}break;case "e":if("else"==f[0])break;var Ib=1,ce=255,de=a.ra,ee=a.ub;"ew"==f[0]&&(Ib=2,ce=65535,de=a.hb,ee=a.Pb);var fe=Ib<<1,ge=f[1];if(null==ge)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),
|
Da?4:"dw"==Da?2:1,ie=0;ie<df;ie++){for(var Mb=0,Ec=0,cb="",Fc="",Y=n(Kb.u,4),Gc=0;16>Gc;Gc++){var Nb=a.ta(Kb,1),Mb=Mb|Nb<<(Ec++<<3);Ec==Dc&&(cb+=n(Mb,2*Dc),cb+=1==Dc?7==Gc?"-":" ":" ",Mb=Ec=0);Fc+=32<=Nb&&128>Nb?String.fromCharCode(Nb):"."}oa&&(oa+="\n");oa+=Y+" "+cb+" "+Fc}oa&&a.g(oa);a.yb=Kb}}}}break;case "e":if("else"==f[0])break;var Ob=1,je=255,ke=a.ta,le=a.ub;"ew"==f[0]&&(Ob=2,je=65535,ke=a.ib,le=a.Pb);var me=Ob<<1,ne=f[1];if(null==ne)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 Jb=U(a,ge);if(Jb)for(var Kb=2;Kb<f.length;Kb++){var ab=ud(a,f[Kb]);if(void 0===ab){a.g("unrecognized value: "+f[Kb]);break}ab&~ce&&a.g("warning: "+n(ab)+" exceeds "+Ib+"-byte value");var Ye=de.call(a,Jb);a.g("changing "+n(Jb.u,4)+" from 0x"+n(Ye,fe)+" to 0x"+n(ab,fe));ee.call(a,Jb,ab,Ib)}}break;case "f":ve(a,f[1]);break;case "g":a:{var he=f[1],Ze=b;if(void 0!==he){var yc=U(a,he,!0);if(!yc)break a;vd(a,yc,Ze);a.wa(a.w,yc,!0)}a.Fa(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
a.g("\tew [a] [...] edit words at address a");else{var Pb=U(a,ne);if(Pb)for(var Qb=2;Qb<f.length;Qb++){var db=Bd(a,f[Qb]);if(void 0===db){a.g("unrecognized value: "+f[Qb]);break}db&~je&&a.g("warning: "+n(db)+" exceeds "+Ob+"-byte value");var ef=ke.call(a,Pb);a.g("changing "+n(Pb.u,4)+" from 0x"+n(ef,me)+" to 0x"+n(db,me));le.call(a,Pb,db,Ob)}}break;case "f":Ce(a,f[1]);break;case "g":a:{var oe=f[1],ff=b;if(void 0!==oe){var Hc=U(a,oe,!0);if(!Hc)break a;Cd(a,Hc,ff);a.xa(a.w,Hc,!0)}a.Fa(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||||
case "h":var zc;a.j.X?(zc="halting",a.U()):zc="already halted";c||a.g(zc);break;case "i":if("if"==f[0]){var Ac;var bb=b.substr(2),bb=sa(bb);ud(a,bb)?(c||a.g("true: "+bb),Ac=!0):(c||a.g("false: "+bb),Ac=!1);Ac||(d=!1);break}var Bc=f[1];if(Bc&&"?"!=Bc){var Cc=Rd(a,Bc);if(void 0!==Cc){for(var R=a.A,ga=Cc,Dc=1,Ec=0,Fc=0;0<Dc;){var Lb=R.C[ga],cb=R.S[ga]||1,Gc=1==cb?255:2==cb?65535:-1,ha=Gc;void 0!==Lb?(Lb[0]&&(ha=Lb[0](ga,void 0),void 0===ha?ha=Gc:ha&=Gc),R.B&&R.F!=Lb[1]&&Hd(R.B,ga,ha)):R.B&&(Cd(R.B,R,
|
case "h":var Ic;a.j.X?(Ic="halting",a.U()):Ic="already halted";c||a.g(Ic);break;case "i":if("if"==f[0]){var Jc;var eb=b.substr(2),eb=sa(eb);Bd(a,eb)?(c||a.g("true: "+eb),Jc=!0):(c||a.g("false: "+eb),Jc=!1);Jc||(d=!1);break}var Kc=f[1];if(Kc&&"?"!=Kc){var Lc=Yd(a,Kc);if(void 0!==Lc){for(var R=a.A,ga=Lc,Mc=1,Nc=0,Oc=0;0<Mc;){var Rb=R.C[ga],fb=R.T[ga]||1,Pc=1==fb?255:2==fb?65535:-1,ha=Pc;void 0!==Rb?(Rb[0]&&(ha=Rb[0](ga,void 0),void 0===ha?ha=Pc:ha&=Pc),R.B&&R.F!=Rb[1]&&Od(R.B,ga,ha)):R.B&&(Jd(R.B,R,
|
||||||
ga,null),R.F&&Hd(R.B,ga,ha));Ec|=ha<<Fc;Fc+=cb<<3;ga+=cb;Dc-=cb}a.g(q(Cc)+": "+("0x"+n(Ec,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 $e=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Hc=0,ie=P(),db=P(a.b.Ea);for(a.g("stack trace for "+n(db.u,4));10>Hc;){for(var pa=null,af=256;65536>db.u>>>0;){ie.u=a.hb(db,2);if(null==db.u||!af--)break;
|
ga,null),R.F&&Od(R.B,ga,ha));Nc|=ha<<Oc;Oc+=fb<<3;ga+=fb;Mc-=fb}a.g(q(Lc)+": "+("0x"+n(Nc,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 gf=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Qc=0,pe=P(),gb=P(a.b.Ea);for(a.g("stack trace for "+n(gb.u,4));10>Qc;){for(var pa=null,hf=256;65536>gb.u>>>0;){pe.u=a.ib(gb,2);if(null==gb.u||!hf--)break;
|
||||||
for(var bf=a,Mb=ie,je=null,eb=Mb.u,ke=eb,Ic=1;6>=Ic&&eb;Ic++){if(2<Ic){Mb.u=eb;var Nb=Nd(bf,Mb);if(0<Nb.indexOf("CALL")){var le=Nb.indexOf(" ");if(eb+(Nb.indexOf(" ",le+1)-le-1)/2==ke){je=Nb;break}}}eb--}Mb.u=ke;if(pa=je)break}if(!pa||null==pa)break;var me=null;if("ks"==$e){var ne=pa.match(/[0-9A-F]+$/);ne&&(me=xe(a,ne[0]))}pa=ra(pa,50)+" ;"+(me||"stack="+n(db.u,4));a.g(pa);Hc++}Hc||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){xe(a,f[1],!0);break}break;case "m":a:{var ba,ca=null,
|
for(var jf=a,Sb=pe,qe=null,hb=Sb.u,re=hb,Rc=1;6>=Rc&&hb;Rc++){if(2<Rc){Sb.u=hb;var Tb=Ud(jf,Sb);if(0<Tb.indexOf("CALL")){var se=Tb.indexOf(" ");if(hb+(Tb.indexOf(" ",se+1)-se-1)/2==re){qe=Tb;break}}}hb--}Sb.u=re;if(pa=qe)break}if(!pa||null==pa)break;var te=null;if("ks"==gf){var ue=pa.match(/[0-9A-F]+$/);ue&&(te=Ee(a,ue[0]))}pa=ra(pa,50)+" ;"+(te||"stack="+n(gb.u,4));a.g(pa);Qc++}Qc||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Ee(a,f[1],!0);break}break;case "m":a:{var ba,ca=null,
|
||||||
w=f[1];"?"==w&&(w=void 0);if(void 0!==w){var qa=0;if("all"==w)qa=1610481663,w=null;else if("on"==w)ca=!0,w=null;else if("off"==w)ca=!1,w=null;else{"keys"==w&&(w="key");"kbd"==w&&(w="keyboard");for(ba in Q)if(w==ba){qa=Q[ba];ca=!!(a.Y&qa);break}if(!qa){a.g("unknown message category: "+w);break a}}qa&&("on"==f[2]?(a.Y|=qa,ca=!0):"off"==f[2]&&(a.Y&=~qa,ca=!1))}var cf=0,ia="";for(ba in Q)if(!w||w==ba){var df=!!(a.Y&Q[ba]);if(null===ca||ca==df)ia&&(ia+=","),++cf%10||(ia+="\n\t"),"key"==ba&&(ba="keys"),
|
w=f[1];"?"==w&&(w=void 0);if(void 0!==w){var qa=0;if("all"==w)qa=1610481663,w=null;else if("on"==w)ca=!0,w=null;else if("off"==w)ca=!1,w=null;else{"keys"==w&&(w="key");"kbd"==w&&(w="keyboard");for(ba in Q)if(w==ba){qa=Q[ba];ca=!!(a.Y&qa);break}if(!qa){a.g("unknown message category: "+w);break a}}qa&&("on"==f[2]?(a.Y|=qa,ca=!0):"off"==f[2]&&(a.Y&=~qa,ca=!1))}var kf=0,ia="";for(ba in Q)if(!w||w==ba){var lf=!!(a.Y&Q[ba]);if(null===ca||ca==lf)ia&&(ia+=","),++kf%10||(ia+="\n\t"),"key"==ba&&(ba="keys"),
|
||||||
ia+=ba}void 0===w&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ca?ca?"messages on: ":"messages off: ":"message categories:\n\t")+(ia||"none"));jd(a)}break;case "o":var Jc=f[1],ef=f[2];if(Jc&&"?"!=Jc){var Kc=Rd(a,Jc,"port #"),Lc=Rd(a,ef);if(void 0!==Kc&&void 0!==Lc){for(var S=a.A,ja=Kc,oe=Lc,Mc=1,Nc=0;0<Mc;){var Ob=S.D[ja],fb=S.V[ja]||1,ff=1==fb?255:2==fb?65535:-1,Pb=(oe>>>=Nc)&ff;if(void 0!==Ob){if(Ob[0])Ob[0](ja,Pb,void 0);S.B&&S.H!=Ob[1]&&Id(S.B,ja,Pb)}else S.B&&
|
ia+=ba}void 0===w&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ca?ca?"messages on: ":"messages off: ":"message categories:\n\t")+(ia||"none"));qd(a)}break;case "o":var Sc=f[1],mf=f[2];if(Sc&&"?"!=Sc){var Tc=Yd(a,Sc,"port #"),Uc=Yd(a,mf);if(void 0!==Tc&&void 0!==Uc){for(var S=a.A,ja=Tc,ve=Uc,Vc=1,Wc=0;0<Vc;){var Ub=S.D[ja],ib=S.V[ja]||1,nf=1==ib?255:2==ib?65535:-1,Vb=(ve>>>=Wc)&nf;if(void 0!==Ub){if(Ub[0])Ub[0](ja,Vb,void 0);S.B&&S.H!=Ub[1]&&Pd(S.B,ja,Vb)}else S.B&&
|
||||||
(Cd(S.B,S,ja,Pb),S.H&&Id(S.B,ja,Pb));Nc+=fb<<3;ja+=fb;Mc-=fb}a.g(q(Kc)+": "+("0x"+n(Lc,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]){ye(a,b.substr(5));break}var pe="pr"==f[0]?1:0,gf=1+pe;if(a.S)a.g("step in progress");else{var Oc=P(a.b.N);switch(a.ra(Oc)){case 205:a.S=gf,qd(Oc,3)}a.S?(a.wa(a.w,Oc,!0),a.Fa()||(a.s&&a.s.fb(),a.S=0)):ze(a,pe?"tr":"t")}break;case "r":if("reset"==
|
(Jd(S.B,S,ja,Vb),S.H&&Pd(S.B,ja,Vb));Wc+=ib<<3;ja+=ib;Vc-=ib}a.g(q(Tc)+": "+("0x"+n(Uc,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]){Fe(a,b.substr(5));break}var we="pr"==f[0]?1:0,of=1+we;if(a.T)a.g("step in progress");else{var Xc=P(a.b.O);switch(a.ta(Xc)){case 205:a.T=of,xd(Xc,3)}a.T?(a.xa(a.w,Xc,!0),a.Fa()||(a.s&&a.s.fb(),a.T=0)):Ge(a,we?"tr":"t")}break;case "r":if("reset"==
|
||||||
b){a.s&&a.s.reset();break}Ed(a,f);break;case "t":ze(a,f[0],f[1]);break;case "u":Fd(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.21.7 ("+a.b.Gb+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ya());break;case "x":a:if(f[1]&&"?"!=f[1])switch(f[1]){case "cs":var gb;void 0!==f[3]&&(gb=+f[3]);switch(f[2]){case "int":a.b.i.Na=gb;break;case "start":a.b.i.Za=gb;break;case "stop":a.b.i.Pa=gb;break;default:a.g("unknown cs option");break a}void 0!==
|
b){a.s&&a.s.reset();break}Ld(a,f);break;case "t":Ge(a,f[0],f[1]);break;case "u":Md(a,f[1],f[2],8);break;case "v":if("var"==f[0]){De(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.21.7 ("+a.b.Gb+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ya());break;case "x":a:if(f[1]&&"?"!=f[1])switch(f[1]){case "cs":var jb;void 0!==f[3]&&(jb=+f[3]);switch(f[2]){case "int":a.b.i.Na=jb;break;case "start":a.b.i.Za=jb;break;case "stop":a.b.i.Pa=jb;break;default:a.g("unknown cs option");break a}void 0!==
|
||||||
gb&&lc(a.b);a.g("checksums "+(a.b.j.Ia?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(qc(a.b,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.za.toFixed(2)+"Mhz")+" ("+a.b.i.Ba+"x)");break;default:a.g("unknown option: "+f[1])}else a.g("execution options:"),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 #");
|
jb&&lc(a.b);a.g("checksums "+(a.b.j.Ia?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(qc(a.b,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Aa.toFixed(2)+"Mhz")+" ("+a.b.i.Ca+"x)");break;default:a.g("unknown option: "+f[1])}else a.g("execution options:"),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;case "?":if(f[1]){ye(a,b.substr(1));break}var hb="commands:",Pc;for(Pc in ld)hb+="\n"+ra(Pc,7)+ld[Pc];Zc(a)||(hb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(hb);break;default:a.g("unknown command: "+b),d=!1}}}catch(qe){a.g("debugger error: "+(qe.stack||qe.message)),d=!1}return d}function mc(a,b,c){b=wd(a,b,c);for(var d in b)if(!Md(a,b[d]))return!1;return!0}Qa(function(){for(var a=F(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new hd(d);mb(d,c)}});
|
break;case "?":if(f[1]){Fe(a,b.substr(1));break}var kb="commands:",Yc;for(Yc in sd)kb+="\n"+ra(Yc,7)+sd[Yc];fd(a)||(kb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(kb);break;default:a.g("unknown command: "+b),d=!1}}}catch(xe){a.g("debugger error: "+(xe.stack||xe.message)),d=!1}return d}function mc(a,b,c){b=Dd(a,b,c);for(var d in b)if(!Td(a,b[d]))return!1;return!0}Qa(function(){for(var a=F(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=E(c),d=new od(d);mb(d,c)}});
|
||||||
function J(a,b,c){this.id=a.id;this.key=Be(a,b,c);this.B=a.B;Ce(this,a.Kb)}function Be(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 J(a,b,c){this.id=a.id;this.key=Ie(a,b,c);this.B=a.B;Je(this,a.Kb)}function Ie(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}
|
||||||
J.prototype={constructor:J,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){Ce(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}}};
|
J.prototype={constructor:J,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){Je(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 Ce(a,b){a[a.id]={};b&&M(a,"parms",b);a.b=!1}function De(a){var b=!0;if(Ea()){var c=JSON.stringify(a[a.id]);Ia(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ee(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function Fe(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ea()&&(b=Ha(a.key))?(a[a.id]=b,a.b=!0):!1}function Ge(a,b){return a[a.id][b]||null}function M(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
function Je(a,b){a[a.id]={};b&&M(a,"parms",b);a.b=!1}function Ke(a){var b=!0;if(Ea()){var c=JSON.stringify(a[a.id]);Ia(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Le(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){v(c.message||c),b=!1}return b}function Me(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:Ea()&&(b=Ha(a.key))?(a[a.id]=b,a.b=!0):!1}function Ne(a,b){return a[a.id][b]||null}function M(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||||
function He(a,b,c){x.call(this,"Computer",a,He,67108864);this.j.W=!1;Ie(this,b);this.R=jc(this,"autoPower",a);this.C=0;this.ia=a.busWidth||a.buswidth;this.s=Je;this.L=null;this.H=this.ca=!1;this.ja=jc(this,"url")||"";(Math.random()+.1).toString(36);this.w=Ke(this);if(this.b=lb("CPU",this.id)){this.B=lb("Debugger",this.id);this.ma=[];for(b=null;b=wb(this,"Video",b);)this.ma.push(b);this.A=new yb({id:this.zb+".bus",buswidth:this.ia},this.b,this.B);var d,e=C(this.id);if((this.D=lb("Panel",this.id))&&
|
function Oe(a,b,c){x.call(this,"Computer",a,Oe,67108864);this.j.W=!1;Pe(this,b);this.R=jc(this,"autoPower",a);this.C=0;this.ma=a.busWidth||a.buswidth;this.s=Qe;this.L=null;this.H=this.ga=!1;this.na=jc(this,"url")||"";(Math.random()+.1).toString(36);this.w=Re(this);if(this.b=lb("CPU",this.id)){this.B=lb("Debugger",this.id);this.pa=[];for(b=null;b=wb(this,"Video",b);)this.pa.push(b);this.A=new yb({id:this.zb+".bus",buswidth:this.ma},this.b,this.B);var d,e=C(this.id);if((this.D=lb("Panel",this.id))&&
|
||||||
this.D.xa)for(b=0;b<e.length;b++)d=e[b],d.ba=this.D.ba,d.g=this.D.g,d.xa=this.D.xa;for(b=0;b<e.length;b++)d=e[b],d.La&&d.La(this,this.A,this.b,this.B);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.s=parseInt(d,10));var f;if(a=jc(this,"state")||(f=!0,a.state))b=this.S=a,f||(this.H=!0,this.s=Je),this.s&&(this.M=new J(this,W),Fe(this.M)?b=null:delete this.M);!b&&this.s&&(b=Le(this))&&(this.H=!0);if(b){var k=this;u(b,null,!0,function(a,b,c){c?(k.J=null,k.H=!1,k.ba("Unable to load machine state from server (error "+
|
this.D.ya)for(b=0;b<e.length;b++)d=e[b],d.da=this.D.da,d.g=this.D.g,d.ya=this.D.ya;for(b=0;b<e.length;b++)d=e[b],d.La&&d.La(this,this.A,this.b,this.B);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.s=parseInt(d,10));var f;if(a=jc(this,"state")||(f=!0,a.state))b=this.T=a,f||(this.H=!0,this.s=Qe),this.s&&(this.N=new J(this,W),Me(this.N)?b=null:delete this.N);!b&&this.s&&(b=Se(this))&&(this.H=!0);if(b){var k=this;u(b,null,!0,function(a,b,c){c?(k.K=null,k.H=!1,k.da("Unable to load machine state from server (error "+
|
||||||
c+(b?": "+sa(b):"")+")")):(k.L=b,k.ca=!0);G(k)})}else G(this);this.G.power||(this.R=!0);!c&&this.R&&Me(this,this.cb)}else v("Unable to find CPU component")}z(He);var W="1.21.7",Je=0;function Ie(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.I=b}
|
c+(b?": "+sa(b):"")+")")):(k.L=b,k.ga=!0);G(k)})}else G(this);this.G.power||(this.R=!0);!c&&this.R&&Te(this,this.cb)}else v("Unable to find CPU component")}z(Oe);var W="1.21.7",Qe=0;function Pe(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.J=b}
|
||||||
function jc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.I&&(d=a.I[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Me(a,b,c){for(var d=C(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!rb(f)){rb(f,function(){Me(a,b,c)});return}}b.call(a,c)}
|
function jc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.J&&(d=a.J[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Te(a,b,c){for(var d=C(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!rb(f)){rb(f,function(){Te(a,b,c)});return}}b.call(a,c)}
|
||||||
function Ne(a,b){var c=new J(a,W,"validate");if(Fe(c)&&Ee(c)){var d=Ge(c,"timestamp"),e=b?Ge(b,"timestamp"):"unknown";d!=e&&(a.ba("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}g=He.prototype;
|
function Ue(a,b){var c=new J(a,W,"validate");if(Me(c)&&Le(c)){var d=Ne(c,"timestamp"),e=b?Ne(b,"timestamp"):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}g=Oe.prototype;
|
||||||
g.cb=function(a){void 0===a&&(a=this.s||(this.L?1:Je));if(!this.C){this.C++;var b=!1,c=!1;this.aa=!1;var d=this.M||new J(this,W);if(-1==a)b=!0;else if(a>Je){if(Fe(d,this.L)){this.F=new J(this,W,"failsafe");Fe(this.F)&&(Oe(this,d),a=2,Ce(this.F));M(this.F,"timestamp",va());De(this.F);var e=this.s&&!this.H;if(1==a||za("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Ee(d)){var f=Ge(d,"code"),k=Ge(d,"data");f&&("ok"==f?Fe(d,k):("error"==f&&"no machine state"!=
|
g.cb=function(a){void 0===a&&(a=this.s||(this.L?1:Qe));if(!this.C){this.C++;var b=!1,c=!1;this.ca=!1;var d=this.N||new J(this,W);if(-1==a)b=!0;else if(a>Qe){if(Me(d,this.L)){this.F=new J(this,W,"failsafe");Me(this.F)&&(Ve(this,d),a=2,Je(this.F));M(this.F,"timestamp",va());Ke(this.F);var e=this.s&&!this.H;if(1==a||za("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Le(d)){var f=Ne(d,"code"),k=Ne(d,"data");f&&("ok"==f?Me(d,k):("error"==f&&"no machine state"!=
|
||||||
k?(this.ba("Error: "+k),"unable to verify user"==k&&(Ia("user",""),this.w=null)):this.g(f+": "+k),Ce(d),Fe(d)?(c=Ee(d),e=!0):c=!1))}e&&Ne(this,c?d:null)}else 2==a&&d.clear()}else Ne(this);delete this.L;delete this.M}e=C(this.id);for(f=0;f<e.length;f++)k=e[f],k!==this&&k!=this.b&&(c=Pe(this,k,d,b,c));b=[d,a,c];-1!=a?Me(this,this.Cb,b):this.Cb(b)}};
|
k?(this.da("Error: "+k),"unable to verify user"==k&&(Ia("user",""),this.w=null)):this.g(f+": "+k),Je(d),Me(d)?(c=Le(d),e=!0):c=!1))}e&&Ue(this,c?d:null)}else 2==a&&d.clear()}else Ue(this);delete this.L;delete this.N}e=C(this.id);for(f=0;f<e.length;f++)k=e[f],k!==this&&k!=this.b&&(c=We(this,k,d,b,c));b=[d,a,c];-1!=a?Te(this,this.Cb,b):this.Cb(b)}};
|
||||||
function Pe(a,b,c,d,e){if(!b.j.W){b.j.W=!0;if(b.pa){var f=null;e&&((f=Ge(c,b.id))||(f=Ge(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.pa(f,d)&&f&&(v("Unable to restore state for "+b.type),a.S&&!a.ca?(c.clear(),a.s=Je,window&&window.location.reload()):a.aa=!0,b.pa(null),e=!1)}if(!d&&b.vb)for(a=b.vb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
function We(a,b,c,d,e){if(!b.j.W){b.j.W=!0;if(b.sa){var f=null;e&&((f=Ne(c,b.id))||(f=Ne(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.sa(f,d)&&f&&(v("Unable to restore state for "+b.type),a.T&&!a.ga?(c.clear(),a.s=Qe,window&&window.location.reload()):a.ca=!0,b.sa(null),e=!1)}if(!d&&b.vb)for(a=b.vb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||||
g.Cb=function(a){var b=a[0],c=0>a[1];a=a[2];this.j.W=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.V||(this.g("PC8080 v"+W+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.V=!0);this.b&&(Pe(this,this.b,b,c,a),nc(this.b));this.aa&&(Oe(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
|
g.Cb=function(a){var b=a[0],c=0>a[1];a=a[2];this.j.W=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.V||(this.g("PC8080 v"+W+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.V=!0);this.b&&(We(this,this.b,b,c,a),nc(this.b));this.ca&&(Ve(this,b),b.clear());!c&&this.F&&(this.F.clear(),delete this.F);this.C=0};
|
||||||
function Oe(a,b){if(za("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.ja,d=a.w||"",e=b.toString(),f={app:"PC8080"};f.ver=W;f.url=c;f.user=d;f.type="bug";f.data=e;u("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function Ve(a,b){if(za("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.na,d=a.w||"",e=b.toString(),f={app:"PC8080"};f.ver=W;f.url=c;f.user=d;f.type="bug";f.data=e;u("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function Ae(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new J(a,W),k=new J(a,W,"validate"),h=va();M(k,"timestamp",h);M(f,"timestamp",h);M(f,"version","1.21.7");M(f,"url",window?window.location.href:null);M(f,"browser",ya());a.b&&a.b.oa&&(c&&a.b.U(),d=a.b.oa(b,c),"object"===typeof d&&M(f,a.b.id,d),c&&(a.b.j.W=!1,!1===d&&(e=null)));for(var h=C(a.id),l=0;l<h.length;l++){var m=h[l];m.j.W&&(m.oa&&(d=m.oa(b,c),"object"===typeof d&&M(f,m.id,d)),c&&(m.j.W=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.w&&
|
function He(a,b,c){var d,e="none";if(a.C)return null;a.C--;var f=new J(a,W),k=new J(a,W,"validate"),h=va();M(k,"timestamp",h);M(f,"timestamp",h);M(f,"version","1.21.7");M(f,"url",window?window.location.href:null);M(f,"browser",ya());a.b&&a.b.ra&&(c&&a.b.U(),d=a.b.ra(b,c),"object"===typeof d&&M(f,a.b.id,d),c&&(a.b.j.W=!1,!1===d&&(e=null)));for(var h=C(a.id),l=0;l<h.length;l++){var m=h[l];m.j.W&&(m.ra&&(d=m.ra(b,c),"object"===typeof d&&M(f,m.id,d)),c&&(m.j.W=!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.w&&
|
||||||
Qe(a,a.w,f.toString()),De(k)&&De(f)||(e=null,d=h=!0)):a.s&&(d=!0,h=3==a.s),d&&f.clear(h)):e=f.toString());c&&(a.j.W=!1,b=a.G.power)&&(b.textContent="Power");a.C=0;return e}g.reset=function(){this.A&&this.A.reset&&(nb(this,"Resetting "+this.A.type),this.A.reset());for(var a=C(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&(nb(this,"Resetting "+c.type),c.reset())}};
|
Xe(a,a.w,f.toString()),Ke(k)&&Ke(f)||(e=null,d=h=!0)):a.s&&(d=!0,h=3==a.s),d&&f.clear(h)):e=f.toString());c&&(a.j.W=!1,b=a.G.power)&&(b.textContent="Power");a.C=0;return e}g.reset=function(){this.A&&this.A.reset&&(nb(this,"Resetting "+this.A.type),this.A.reset());for(var a=C(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&(nb(this,"Resetting "+c.type),c.reset())}};
|
||||||
g.start=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};g.stop=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
g.start=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};g.stop=function(a,b){for(var c=C(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||||
g.ea=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.C||(d.j.W?Ae(d,!1,!0):Me(d,d.cb))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.W&&!d.C)if(d.s&&!d.J){var a=za("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ae(d,a,!0);!a&&d.S?window&&window.location.reload():d.cb(Je)}else d.reset(),d.b&&nc(d.b)},!0;case "save":if(ka(xa(),"pcjs.org")){c.parentNode.removeChild(c);break}this.G[b]=
|
g.ha=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.C||(d.j.W?He(d,!1,!0):Te(d,d.cb))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.W&&!d.C)if(d.s&&!d.K){var a=za("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");He(d,a,!0);!a&&d.T?window&&window.location.reload():d.cb(Qe)}else d.reset(),d.b&&nc(d.b)},!0;case "save":if(ka(xa(),"pcjs.org")){c.parentNode.removeChild(c);break}this.G[b]=
|
||||||
c;c.onclick=function(){var a=Ke(d,!0);if(a){var b=!!(d.s&&!d.J||d.S),c=Ae(d,b);b?Qe(d,a,c):d.ba("Resume disabled, machine state not saved")}};return!0}return!1};
|
c;c.onclick=function(){var a=Re(d,!0);if(a){var b=!!(d.s&&!d.K||d.T),c=He(d,b);b?Xe(d,a,c):d.da("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function Ke(a,b){var c=a.w;c||(c=Ha("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=Re(a,c))||a.ba("The user ID is invalid."))):b&&a.ba("Browser local storage is not available"));return c}
|
function Re(a,b){var c=a.w;c||(c=Ha("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=Ye(a,c))||a.da("The user ID is invalid."))):b&&a.da("Browser local storage is not available"));return c}
|
||||||
function Re(a,b){a.w=null;var c=u(xa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Ia("user",c.data),a.w=c.data)}catch(e){v(e.message+" ("+d+")")}return a.w}function Le(a){var b=null;a.w&&(b=xa()+"/api/v1/user?req=load&user="+a.w+"&state="+Be(a,W));return b}
|
function Ye(a,b){a.w=null;var c=u(xa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Ia("user",c.data),a.w=c.data)}catch(e){v(e.message+" ("+d+")")}return a.w}function Se(a){var b=null;a.w&&(b=xa()+"/api/v1/user?req=load&user="+a.w+"&state="+Ie(a,W));return b}
|
||||||
function Qe(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Be(a,W);d.data=c;b=u(xa()+"/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.ba("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.ba(c),Ia("user",""),a.w=null)}}
|
function Xe(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ie(a,W);d.data=c;b=u(xa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Ia("user",""),a.w=null)}}
|
||||||
function wb(a,b,c){a=C(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}g.fb=function(){};g.fa=function(a){this.b&&this.b.fa(a);this.D&&this.D.fa(a)};Qa(function(){for(var a=F(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=E(c),c=F(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],k=E(f),k=new He(k,d,!0);mb(k,f);k.R&&Me(k,k.cb)}});
|
function wb(a,b,c){a=C(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}g.fb=function(){};g.ka=function(a){this.b&&this.b.ka(a);this.D&&this.D.ka(a)};Qa(function(){for(var a=F(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=E(c),c=F(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],k=E(f),k=new Oe(k,d,!0);mb(k,f);k.R&&Te(k,k.cb)}});
|
||||||
Ma.show.push(function(){for(var a=F(document,"pc8080","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=lb("Computer",c.id))&&c.V&&!c.j.W&&c.cb(-1)}});Ma.exit.push(function(){for(var a=F(document,"pc8080","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=lb("Computer",c.id))&&c.j.W&&Ae(c,!(!c.s||c.J),!0)}});var Se=0;function Te(a,b,c,d,e,f){e("Loading "+a+"...");u(a,null,!0,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):hf(h,a,b,c,d,e,f)})}
|
Ma.show.push(function(){for(var a=F(document,"pc8080","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=lb("Computer",c.id))&&c.V&&!c.j.W&&c.cb(-1)}});Ma.exit.push(function(){for(var a=F(document,"pc8080","computer"),b=0;b<a.length;b++){var c=E(a[b]);(c=lb("Computer",c.id))&&c.j.W&&He(c,!(!c.s||c.K),!0)}});var Ze=0;function $e(a,b,c,d,e,f){e("Loading "+a+"...");u(a,null,!0,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),f(h,null)):pf(h,a,b,c,d,e,f)})}
|
||||||
function hf(a,b,c,d,e,f,k){function h(a,f){if(f)k(f,null);else{if(c){kb(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
function pf(a,b,c,d,e,f,k){function h(a,f){if(f)k(f,null);else{if(c){ab(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||||
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){h=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?e?jf(a,f,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
h=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){h=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?e?qf(a,f,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||||
function jf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");u(e,null,!0,function(f,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
|
function qf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");u(e,null,!0,function(f,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(d[0],k);jf(a,b,c)}})}else c(a,null)}
|
"");a=a.replace(d[0],k);qf(a,b,c)}})}else c(a,null)}
|
||||||
function kf(a,b,c,d){function e(a){if(void 0===h){var b=k&&F(k,"machine-warning");h=b&&b[0]||k}h&&(h.innerHTML=ma(a))}function f(a){e("Error: "+a);l&&(--Se||Sa(!0));l=!1}var k,h,l=!0;Se++;jb[a]={};try{if(k=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));p.appendChild(r)}c||
|
function rf(a,b,c,d){function e(a){if(void 0===h){var b=k&&F(k,"machine-warning");h=b&&b[0]||k}h&&(h.innerHTML=ma(a))}function f(a){e("Error: "+a);l&&(--Ze||Sa(!0));l=!1}var k,h,l=!0;Ze++;$a[a]={};try{if(k=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));p.appendChild(r)}c||
|
||||||
(c="/versions/pc8080/1.21.7/components.xsl");m=function(d,h){h?Te(c,null,null,!1,e,function(d,m){if(m)if(kb(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(m);l?(k.outerHTML=l,--Se||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(m),(l=l.transformToFragment(h,document))?k.parentNode?(k.parentNode.replaceChild(l,k),--Se||Sa(!0)):f("invalid machine element: "+
|
(c="/versions/pc8080/1.21.7/components.xsl");m=function(d,h){h?$e(c,null,null,!1,e,function(d,m){if(m)if(ab(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(m);l?(k.outerHTML=l,--Ze||Sa(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(m),(l=l.transformToFragment(h,document))?k.parentNode?(k.parentNode.replaceChild(l,k),--Ze||Sa(!0)):f("invalid machine element: "+
|
||||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Te(b,a,d,!0,e,m):hf(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(t){f(t.message)}return l}window.embedPC8080=function(a,b,c,d){Sa(!1);return kf(a,b,c,d)};window.enableEvents=Sa;window.sendEvent=Ta;
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?$e(b,a,d,!0,e,m):pf(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(t){f(t.message)}return l}window.embedPC8080=function(a,b,c,d){Sa(!1);return rf(a,b,c,d)};window.enableEvents=Sa;window.sendEvent=Ta;
|
||||||
function lf(a,b,c,d){if(!c&&b){d.push(b);a=jb[d[0]];b=null;for(var e in a)if(ka(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?u(b,null,!0,function(a,b){mf(b,d)}):mf(null,d)}else v("Error ("+c+") requesting "+a)}
|
function sf(a,b,c,d){if(!c&&b){d.push(b);a=$a[d[0]];b=null;for(var e in a)if(ka(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?u(b,null,!0,function(a,b){tf(b,d)}):tf(null,d)}else v("Error ("+c+") requesting "+a)}
|
||||||
function mf(a,b){var c,d,e,f=b[0],k=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=jb[f],l={},m;for(m in h){var p=h[m],r=fa(m);if("xml"==r){for(r=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=r.exec(h[m]);){var t=d[2];t&&(h[t]||(p=p.replace(d[0],"")))}d=m=ea(m)}else"xsl"==r&&(e=m=ea(m));l[m]=p}a&&(l[m="css"]=a);b[2]&&(l[m="parms"]=b[2]);b[3]&&(l[m="state"]=b[3]);d&&e?(m=JSON.stringify(l),k+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
function tf(a,b){var c,d,e,f=b[0],k=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=$a[f],l={},m;for(m in h){var p=h[m],r=fa(m);if("xml"==r){for(r=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=r.exec(h[m]);){var t=d[2];t&&(h[t]||(p=p.replace(d[0],"")))}d=m=ea(m)}else"xsl"==r&&(e=m=ea(m));l[m]=p}a&&(l[m="css"]=a);b[2]&&(l[m="parms"]=b[2]);b[3]&&(l[m="state"]=b[3]);d&&e?(m=JSON.stringify(l),k+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||||
"©"),m=k,h=null,l="data:application/javascript,",l=Ja("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),m&&(h=document.createElement("a"),"string"!=typeof h.download&&(h=null)),h?(h.href=l,h.download=m,document.body.appendChild(h),h.click(),document.body.removeChild(h),c="Check your Downloads folder for "+m+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(m?" ("+m+")":"")+"."),c+=', copy it to your web server as "'+k+'", and then add the following to your web page:\n\n',
|
"©"),m=k,h=null,l="data:application/javascript,",l=Ja("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),m&&(h=document.createElement("a"),"string"!=typeof h.download&&(h=null)),h?(h.href=l,h.download=m,document.body.appendChild(h),h.click(),document.body.removeChild(h),c="Check your Downloads folder for "+m+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(m?" ("+m+")":"")+"."),c+=', copy it to your web server as "'+k+'", 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="'+k+'">\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.",v(c)):v("Missing XML/XSL resources")}
|
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+k+'">\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.",v(c)):v("Missing XML/XSL resources")}
|
||||||
window.savePC=function(a,b,c){var d=lb("Computer",a),e=lb("Debugger",a);if(d){var f=Ae(d,!0),k=d.I?JSON.stringify(d.I):null;b||(b="/versions/pcjs/1.21.7/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Kb:k}))return!0;u(b,null,!0,function(c,d,e){lf(c,d,e,[a,ea(b,!0),k,f])});return!0}v("Unable to identify machine '"+a+"'");return!1};})();
|
window.savePC=function(a,b,c){var d=lb("Computer",a),e=lb("Debugger",a);if(d){var f=He(d,!0),k=d.J?JSON.stringify(d.J):null;b||(b="/versions/pcjs/1.21.7/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Kb:k}))return!0;u(b,null,!0,function(c,d,e){sf(c,d,e,[a,ea(b,!0),k,f])});return!0}v("Unable to identify machine '"+a+"'");return!1};})();
|
||||||
|
|
|
||||||
|
|
@ -4,90 +4,93 @@ function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&","
|
||||||
function q(a,b,c,d){var f=0,g=null,k=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,f),[g,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),k;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,g,f))});if(b&&"object"==
|
function q(a,b,c,d){var f=0,g=null,k=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,f),[g,f];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),k;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,g,f))});if(b&&"object"==
|
||||||
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,g,f),k=[g,f]);return k}function t(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(l)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,g,f),k=[g,f]);return k}function t(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||||
function u(a){window&&window.alert(a)}function ha(a){var b=!1;window&&(b=window.confirm(a));return b}var ia=null;function ja(){if(null==ia){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}ia=a}return ia}function ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
function u(a){window&&window.alert(a)}function ha(a){var b=!1;window&&(b=window.confirm(a));return b}var ia=null;function ja(){if(null==ia){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}ia=a}return ia}function ka(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||||
function la(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ma(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 v={init:[],show:[],exit:[]},na=!1,oa=!0;function qa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){v.init.push(a)}
|
function la(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ma(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 v={init:[],show:[],exit:[]},na=!1,oa=!0;function pa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function w(a){v.init.push(a)}
|
||||||
function ra(a){if(oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function x(a){!oa&&a?(oa=!0,na&&sa("init")):oa=a}function sa(a){v[a]&&ra(v[a])}qa("onload",function(){na=!0;ra(v.init)});qa("onpageshow",function(){ra(v.show)});qa(ma("Opera")||ma("iOS")?"onunload":"onbeforeunload",function(){ra(v.exit)});
|
function qa(a){if(oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function x(a){!oa&&a?(oa=!0,na&&ra("init")):oa=a}function ra(a){v[a]&&qa(v[a])}pa("onload",function(){na=!0;qa(v.init)});pa("onpageshow",function(){qa(v.show)});pa(ma("Opera")||ma("iOS")?"onunload":"onbeforeunload",function(){qa(v.exit)});
|
||||||
function y(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Ka=b.comment;this.Wa=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Ma=this.id.substr(0,b),this.La=this.id.substr(b+1)):this.La=this.id;this[a]=c;this.c={ca:!1,ja:!1,Ea:!1,v:!1,U:!1};this.ya=null;this.c.U=!1;this.j={};this.B=null;z.push(this)}var ta=void 0,ua={};
|
function y(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Ka=b.comment;this.Wa=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Ma=this.id.substr(0,b),this.La=this.id.substr(b+1)):this.La=this.id;this[a]=c;this.c={ca:!1,ja:!1,Fa:!1,B:!1,X:!1};this.ya=null;this.c.X=!1;this.i={};this.D=null;z.push(this)}var sa=void 0,ta={};
|
||||||
if(window){ta||(ta=window.location.search.substr(1));for(var va,wa=/\+/g,xa=/([^&=]+)=?([^&]*)/g;va=xa.exec(ta);)ua[decodeURIComponent(va[1].replace(wa," "))]=decodeURIComponent(va[2].replace(wa," "))}function ya(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){sa||(sa=window.location.search.substr(1));for(var ua,wa=/\+/g,xa=/([^&=]+)=?([^&]*)/g;ua=xa.exec(sa);)ta[decodeURIComponent(ua[1].replace(wa," "))]=decodeURIComponent(ua[2].replace(wa," "))}function ya(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 B(a,b){b||(b=y);a.prototype=ya(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var z=[],C={};function za(a,b,c){C[a]&&b&&(C[a][b]=c)}function D(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<z.length;b++){var d=z[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
function B(a,b){b||(b=y);a.prototype=ya(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var z=[],C={};function za(a,b,c){C[a]&&b&&(C[a][b]=c)}function D(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<z.length;b++){var d=z[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||||
function E(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<z.length;d++)if(c)c==z[d]&&(c=null);else if(!(a!=z[d].type||b&&z[d].id.indexOf(b)))return z[d]}return null}function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
|
function E(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<z.length;d++)if(c)c==z[d]&&(c=null);else if(!(a!=z[d].type||b&&z[d].id.indexOf(b)))return z[d]}return null}function F(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
|
||||||
function G(a,b){for(var c=H(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,g=0;g<f.length;g++){var k=f[g];if(1===k.nodeType){var h=k.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case "pc8080-binding":(h=F(k))&&h.binding&&a.J(h.type,h.binding,k,h.value),m=l.length}}}}
|
function G(a,b){for(var c=H(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,g=0;g<f.length;g++){var k=f[g];if(1===k.nodeType){var h=k.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case "pc8080-binding":(h=F(k))&&h.binding&&a.M(h.type,h.binding,k,h.value),m=l.length}}}}
|
||||||
function H(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
function H(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
|
||||||
y.prototype={constructor:y,parent:null,toString:function(){return this.name?this.name:this.id||this.type},J:function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.Da=this.j[b]=c,c.value="",this.I=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
y.prototype={constructor:y,parent:null,toString:function(){return this.name?this.name:this.id||this.type},M:function(a,b,c){switch(b){case "clear":return this.i[b]||(this.i[b]=c,c.onclick=function(a){return function(){a.i.print&&(a.i.print.value="")}}(this)),!0;case "print":return this.i[b]||(this.Ea=this.i[b]=c,c.value="",this.L=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.w=function(a,b,c){this.I(a,"notice",c)}),!0;default:return!1}},log:function(){},I:function(){},status:function(a){this.I(this.La+": "+a)},w:function(a,b){b||u(a)},R:function(){return this.c.v=!0},P:function(a,b){b&&(this.c.v=!1);return!0}};function Aa(a,b){if(a.c.Ea)return a.c.ja&&(a.c.ja=!1),a.c.Ea=!1;if(a.c.U)return a.I(a.toString()+" error"),!1;a.c.ja=b;return a.c.ja}function I(a){if(!a.c.U&&(a.c.ca=!0,a.c.ca)){var b=a.ya;a.ya=null;b&&b()}}
|
this.C=function(a,b,c){this.L(a,"notice",c)}),!0;default:return!1}},log:function(){},L:function(){},status:function(a){this.L(this.La+": "+a)},C:function(a,b){b||u(a)},T:function(){return this.c.B=!0},S:function(a,b){b&&(this.c.B=!1);return!0}};function Aa(a,b){if(a.c.Fa)return a.c.ja&&(a.c.ja=!1),a.c.Fa=!1;if(a.c.X)return a.L(a.toString()+" error"),!1;a.c.ja=b;return a.c.ja}function I(a){if(!a.c.X&&(a.c.ca=!0,a.c.ca)){var b=a.ya;a.ya=null;b&&b()}}
|
||||||
function Ba(a,b){b&&(a.c.ca?b():a.ya=b);return a.c.ca}
|
function Ba(a,b){b&&(a.c.ca?b():a.ya=b);return a.c.ca}
|
||||||
var J="undefined"!==typeof ArrayBuffer,Ca=[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 J="undefined"!==typeof ArrayBuffer,Ca=[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 Da(a){y.call(this,"Panel",a,Da)}B(Da);e=Da.prototype;e.J=function(a,b,c,d){return this.f&&this.f.J(a,b,c,d)||this.a&&this.a.J(a,b,c,d)||this.b&&this.b.J(a,b,c,d)?!0:this.parent.J.call(this,a,b,c,d)};e.ka=function(a,b,c,d){this.f=a;this.m=b;this.a=c;this.B=d;this.b=Ea(a,"Keyboard")};e.R=function(a,b){b||Fa();return!0};e.P=function(){return!0};e.X=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 Da(a){y.call(this,"Panel",a,Da)}B(Da);e=Da.prototype;e.M=function(a,b,c,d){return this.g&&this.g.M(a,b,c,d)||this.a&&this.a.M(a,b,c,d)||this.b&&this.b.M(a,b,c,d)?!0:this.parent.M.call(this,a,b,c,d)};e.ka=function(a,b,c,d){this.g=a;this.o=b;this.a=c;this.D=d;this.b=Ea(a,"Keyboard")};e.T=function(a,b){b||Fa();return!0};e.S=function(){return!0};e.$=function(){};
|
||||||
function Fa(){for(var a=!1,b=H(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],f=F(d),g;a:{g=f.id;if(void 0!==g)for(var k=void 0,k=0;k<z.length;k++)if(z[k].id===g){g=z[k];break a}g=null}g||(a=!0,g=new Da(f));G(g,d);a&&I(g)}}w(Fa);
|
function Fa(){for(var a=!1,b=H(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],f=F(d),g;a:{g=f.id;if(void 0!==g)for(var k=void 0,k=0;k<z.length;k++)if(z[k].id===g){g=z[k];break a}g=null}g||(a=!0,g=new Da(f));G(g,d);a&&I(g)}}w(Fa);
|
||||||
function K(a,b,c){y.call(this,"Bus",a,K);this.a=b;this.B=c;this.m=a.buswidth||16;this.i=Math.pow(2,this.m);this.g=this.i-1|0;this.o=20>=this.m?12:24>=this.m?14:15;this.h=1<<this.o;this.l=this.h>>2;this.s=this.h-1;this.f=this.i/this.h|0;a=new L;Ga(a,this.B);this.b=Array(this.f);for(b=0;b<this.f;b++)this.b[b]=a;a=this.a;b=this.b;c=this.o;var d=this.g;a.H=b;a.o=c;a.h=1<<a.o;a.N=a.h-1;a.ua=b.length;a.ta=a.ua-1;a.Y=d;I(this)}B(K);K.prototype.reset=function(){};
|
function K(a,b,c){y.call(this,"Bus",a,K);this.a=b;this.D=c;this.g=a.buswidth||16;this.o=Math.pow(2,this.g);this.h=this.o-1|0;this.l=20>=this.g?12:24>=this.g?14:15;this.j=1<<this.l;this.m=this.j>>2;this.s=this.j-1;this.f=this.o/this.j|0;a=new L;Ga(a,this.D);this.b=Array(this.f);for(b=0;b<this.f;b++)this.b[b]=a;a=this.a;b=this.b;c=this.l;var d=this.h;a.J=b;a.l=c;a.j=1<<a.l;a.P=a.j-1;a.ua=b.length;a.ta=a.ua-1;a.U=d;I(this)}B(K);K.prototype.reset=function(){};
|
||||||
K.prototype.R=function(a,b){b||this.reset();return!0};function Ha(a,b,c,d){for(var f=b>>>a.o;0<c&&f<a.b.length;){var g=a.b[f],k=f*a.h,h=c>a.h?a.h:c;if(g&&g.size){if(g.type==d){if(b+c<=g.ia)return g.Ca+=g.ia-b,g.ia=b,!0;if(b>=g.ia+g.Ca){h=g.size-(b-k);h>c&&(h=c);g.Ca=b-g.ia+h;c-=h;b=k+a.h;continue}}return Ia(1,b,c)}g=a.b[f];b=new L(b,h,a.h,d);Ga(b,a.B,g);a.b[f++]=b;b=k+a.h;c-=h}return 0>=c?!0:Ia(2,b,c)}function Ia(a,b,c){u("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Ja;
|
K.prototype.T=function(a,b){b||this.reset();return!0};function Ha(a,b,c,d){for(var f=b>>>a.l;0<c&&f<a.b.length;){var g=a.b[f],k=f*a.j,h=c>a.j?a.j:c;if(g&&g.size){if(g.type==d){if(b+c<=g.ia)return g.Ca+=g.ia-b,g.ia=b,!0;if(b>=g.ia+g.Ca){h=g.size-(b-k);h>c&&(h=c);g.Ca=b-g.ia+h;c-=h;b=k+a.j;continue}}return Ia(1,b,c)}g=a.b[f];b=new L(b,h,a.j,d);Ga(b,a.D,g);a.b[f++]=b;b=k+a.j;c-=h}return 0>=c?!0:Ia(2,b,c)}function Ia(a,b,c){u("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Ja;
|
||||||
if(J){var Ka=new ArrayBuffer(2);(new DataView(Ka)).setUint16(0,256,!0);Ja=256===(new Uint16Array(Ka))[0]}else Ja=!1;var La=Ja;
|
if(J){var Ka=new ArrayBuffer(2);(new DataView(Ka)).setUint16(0,256,!0);Ja=256===(new Uint16Array(Ka))[0]}else Ja=!1;var La=Ja;
|
||||||
function L(a,b,c,d){this.id=Ma+=2;this.a=null;this.ia=a;this.Ca=b;this.size=c||0;this.type=d||Na;this.h=d==Oa;Ga(this);this.O=this.eb=!1;if(c)if(J)this.j=new ArrayBuffer(c),this.f=new DataView(this.j,0,c),this.b=new Uint8Array(this.j,0,c),this.i=new Uint16Array(this.j,0,c>>1),this.a=new Int32Array(this.j,0,c>>2),Pa(this,La?Qa:Ra);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Pa(this,Sa)}else Pa(this)}var Na=0,Oa=2,Ma=0;
|
function L(a,b,c,d){this.id=Ma+=2;this.a=null;this.ia=a;this.Ca=b;this.size=c||0;this.type=d||Na;this.o=d==Oa;Ga(this);this.R=this.eb=!1;if(c)if(J)this.i=new ArrayBuffer(c),this.f=new DataView(this.i,0,c),this.b=new Uint8Array(this.i,0,c),this.j=new Uint16Array(this.i,0,c>>1),this.a=new Int32Array(this.i,0,c>>2),Pa(this,La?Qa:Ra);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Pa(this,Sa)}else Pa(this)}var Na=0,Oa=2,Ma=0;
|
||||||
L.prototype={constructor:L,parent:null,save:function(){var a,b;if(J)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(J)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.O=!0}return!1},l:function(){return 255},s:function(){},o:function(a,b){return this.sa(a++,b++)|this.sa(a,b)<<8},ba:function(a,b,c){this.Ja(a++,b&255,c++);this.Ja(a,b>>8,c)},F:function(a){return this.a[a>>
|
L.prototype={constructor:L,parent:null,save:function(){var a,b;if(J)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(J)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},l:function(){return 255},s:function(){},m:function(a,b){return this.sa(a++,b++)|this.sa(a,b)<<8},ba:function(a,b,c){this.Da(a++,b&255,c++);this.Da(a,b>>8,c)},F:function(a){return this.a[a>>
|
||||||
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},Z:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.O=!0},va: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.O=!0},A:function(a,b){return this.D(a,b)},H:function(a,b){return this.K(a,b)},T:function(a,b,c){this.h||this.Za(a,b,c)},aa:function(a,b,
|
2]>>>((a&3)<<3)&255},K: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},va: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},v:function(a,b){return this.A(a,b)},H:function(a,b){return this.I(a,b)},P:function(a,b,c){this.o||this.Za(a,b,c)},aa:function(a,b,
|
||||||
c){this.h||this.ta(a,b,c)},u: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.i[a>>1]},S:function(a,b){this.b[a]=b;this.O=!0},Y:function(a,b){this.b[a]=b;this.O=!0},$:function(a,b){this.f.setUint16(a,b,!0);this.O=!0},ua:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.O=!0}};function Ga(a,b,c){a.B=b;a.m=a.g=0;c&&((a.m=c.m)&&Ta(a,Ua,!1),(a.g=c.g)&&Va(a,Ua,!1))}
|
c){this.o||this.ta(a,b,c)},u:function(a){return this.b[a]},w: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.j[a>>1]},O:function(a,b){this.b[a]=b;this.R=!0},U:function(a,b){this.b[a]=b;this.R=!0},W:function(a,b){this.f.setUint16(a,b,!0);this.R=!0},ua:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.j[a>>1]=b;this.R=!0}};function Ga(a,b,c){a.D=b;a.g=a.h=0;c&&((a.g=c.g)&&Ta(a,Ua,!1),(a.h=c.h)&&Va(a,Ua,!1))}
|
||||||
function Va(a,b,c){c&&a.g||(a.Ja=!a.h&&b[2]||a.s);if(c||void 0===c)a.Za=b[2]||a.s,a.ta=b[3]||a.ba}function Ta(a,b,c){c&&a.m||(a.sa=b[0]||a.l,a.gb=b[1]||a.o);if(c||void 0===c)a.D=b[0]||a.l,a.K=b[1]||a.o}function Pa(a,b){b||(b=Wa);Ta(a,b,void 0);Va(a,b,void 0)}var Wa=[],Sa=[L.prototype.F,L.prototype.N,L.prototype.Z,L.prototype.va],Ua=[L.prototype.A,L.prototype.H,L.prototype.T,L.prototype.aa];
|
function Va(a,b,c){c&&a.h||(a.Da=!a.o&&b[2]||a.s);if(c||void 0===c)a.Za=b[2]||a.s,a.ta=b[3]||a.ba}function Ta(a,b,c){c&&a.g||(a.sa=b[0]||a.l,a.gb=b[1]||a.m);if(c||void 0===c)a.A=b[0]||a.l,a.I=b[1]||a.m}function Pa(a,b){b||(b=Wa);Ta(a,b,void 0);Va(a,b,void 0)}var Wa=[],Sa=[L.prototype.F,L.prototype.K,L.prototype.V,L.prototype.va],Ua=[L.prototype.v,L.prototype.H,L.prototype.P,L.prototype.aa];
|
||||||
if(J)var Ra=[L.prototype.u,L.prototype.G,L.prototype.S,L.prototype.$],Qa=[L.prototype.C,L.prototype.L,L.prototype.Y,L.prototype.ua];
|
if(J)var Ra=[L.prototype.u,L.prototype.G,L.prototype.O,L.prototype.W],Qa=[L.prototype.w,L.prototype.J,L.prototype.U,L.prototype.ua];
|
||||||
function M(a,b){y.call(this,"CPU",a,M);var c=a.cycles||b,d=a.multiplier||1;this.a={};this.a.ha=c;this.a.ga=d;this.a.Fa=Math.round(this.a.ha/1E4)/100;this.a.da=this.a.Fa*this.a.ga;this.c.M=!1;this.c.Ra=!1;this.c.Pa=a.autoStart;this.c.Qa=!1;this.c.wa=!1;this.a.Aa=this.a.fa=0;this.a.Ba=a.csStart;this.a.la=a.csInterval;this.a.ma=a.csStop;this.bb=this.Ia.bind(this);I(this)}B(M);var Xa=["power","reset"];e=M.prototype;
|
function M(a,b){y.call(this,"CPU",a,M);var c=a.cycles||b,d=a.multiplier||1;this.a={};this.a.ha=c;this.a.ga=d;this.a.Ga=Math.round(this.a.ha/1E4)/100;this.a.da=this.a.Ga*this.a.ga;this.c.N=!1;this.c.Ra=!1;this.c.Pa=a.autoStart;this.c.Qa=!1;this.c.wa=!1;this.a.Aa=this.a.fa=0;this.a.Ba=a.csStart;this.a.la=a.csInterval;this.a.ma=a.csStop;this.bb=this.Ja.bind(this);I(this)}B(M);var Xa=["power","reset"];e=M.prototype;
|
||||||
e.ka=function(a,b,c,d){this.f=a;this.m=b;this.B=d;for(b=0;b<Xa.length;b++)(c=this.j[Xa[b]])&&this.f.J(null,Xa[b],c);Ea(a,"FPU");this.l=Ea(a,"ChipSet");a=Ya(a,"autoStart");null!=a&&(this.c.Pa="true"==a?!0:"false"==a?!1:!!a);I(this)};e.reset=function(){};e.save=function(){return null};e.restore=function(){return!1};e.R=function(a,b){if(!b){if(a&&this.restore){Za(this);if(!this.restore(a))return!1;$a(this)}else this.reset();this.I("No debugger detected")}ab(this);return!0};
|
e.ka=function(a,b,c,d){this.g=a;this.o=b;this.D=d;for(b=0;b<Xa.length;b++)(c=this.i[Xa[b]])&&this.g.M(null,Xa[b],c);Ea(a,"FPU");this.m=Ea(a,"ChipSet");a=Ya(a,"autoStart");null!=a&&(this.c.Pa="true"==a?!0:"false"==a?!1:!!a);I(this)};e.reset=function(){};e.save=function(){return null};e.restore=function(){return!1};e.T=function(a,b){if(!b){if(a&&this.restore){Za(this);if(!this.restore(a))return!1;$a(this)}else this.reset();this.L("No debugger detected")}ab(this);return!0};
|
||||||
e.P=function(a){return a?this.save():!0};function bb(a){(a.c.Pa||void 0===a.j.run)&&a.Ia()}e.Sa=function(){return 0};function $a(a){void 0===a.a.Ba&&(a.a.Ba=0);void 0===a.a.la&&(a.a.la=-1);void 0===a.a.ma&&(a.a.ma=-1);a.c.wa=0<=a.a.Ba&&0<a.a.la;a.c.wa&&(a.a.Aa=0,a.a.fa=a.a.Ba-a.G)}
|
e.S=function(a){return a?this.save():!0};function bb(a){(a.c.Pa||void 0===a.i.run)&&a.Ja()}e.Sa=function(){return 0};function $a(a){void 0===a.a.Ba&&(a.a.Ba=0);void 0===a.a.la&&(a.a.la=-1);void 0===a.a.ma&&(a.a.ma=-1);a.c.wa=0<=a.a.Ba&&0<a.a.la;a.c.wa&&(a.a.Aa=0,a.a.fa=a.a.Ba-a.O)}
|
||||||
e.J=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.j[b]=c;a=!0;break;case "run":this.j[b]=c;c.onclick=function(){var a;if(a=d.f)if(a=d.f,a.c.v)a=!0;else{var b=null,c,h=D(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.c.ca);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.c.v);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.c.ca?"powered yet":"ready yet"+(b.ya?" (waiting for notification)":""))+".");a=!1}a&&(d.c.M?N(d,!0):d.Ia())};a=!0;break;
|
e.M=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.i[b]=c;a=!0;break;case "run":this.i[b]=c;c.onclick=function(){var a;if(a=d.g)if(a=d.g,a.c.B)a=!0;else{var b=null,c,h=D(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.c.ca);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.c.B);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.c.ca?"powered yet":"ready yet"+(b.ya?" (waiting for notification)":""))+".");a=!1}a&&(d.c.N?N(d,!0):d.Ja())};a=!0;break;
|
||||||
case "speed":this.j[b]=c;a=!0;break;case "setSpeed":this.j[b]=c,c.onclick=function(){O(d,d.a.ga<<1)},c.textContent=this.a.da.toFixed(2)+"Mhz",a=!0}return a};function cb(a,b,c){a.G+=b;c&&(a.F=a.b=0)}function db(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.a.ga&&a.a.V&&(d=a.a.V/a.a.Fa);a.a.Ta=Math.round(1E3/30);a.a.fb=Math.floor(a.a.ha/c*d);a.a.Ga=Math.floor(a.a.ha/30*d);a.a.Va=Math.floor(a.a.ha/60*d);a.a.Ua=Math.floor(a.a.ha/2*d);b||(a.a.pa=a.a.Ga,a.a.oa=a.a.Va,a.a.na=a.a.Ua);a.a.Ha=0}
|
case "speed":this.i[b]=c;a=!0;break;case "setSpeed":this.i[b]=c,c.onclick=function(){O(d,d.a.ga<<1)},c.textContent=this.a.da.toFixed(2)+"Mhz",a=!0}return a};function cb(a,b,c){a.O+=b;c&&(a.K=a.b=0)}function db(a,b){var c=30;60>c&&(c=60);2>c&&(c=2);var d=1;b&&1<a.a.ga&&a.a.Y&&(d=a.a.Y/a.a.Ga);a.a.Ta=Math.round(1E3/30);a.a.fb=Math.floor(a.a.ha/c*d);a.a.Ha=Math.floor(a.a.ha/30*d);a.a.Va=Math.floor(a.a.ha/60*d);a.a.Ua=Math.floor(a.a.ha/2*d);b||(a.a.pa=a.a.Ha,a.a.oa=a.a.Va,a.a.na=a.a.Ua);a.a.Ia=0}
|
||||||
function P(a){return a.G+a.D+a.F-a.b}function Za(a){a.a.V=0;a.G=a.D=a.F=a.b=0;$a(a);O(a,1)}function O(a,b){if(void 0!==b){.8>a.a.V/a.a.da&&(b=1);a.a.ga=b;var c=a.a.Fa*a.a.ga;if(a.a.da!=c){a.a.da=c;var c=a.a.da.toFixed(2)+"Mhz",d=a.j.setSpeed;d&&(d.textContent=c);a.I("target speed: "+c)}}cb(a,a.D);a.D=0;a.a.ea=p();a.a.W=0;db(a)}
|
function P(a){return a.O+a.G+a.K-a.b}function Za(a){a.a.Y=0;a.O=a.G=a.K=a.b=0;$a(a);O(a,1)}function O(a,b){if(void 0!==b){.8>a.a.Y/a.a.da&&(b=1);a.a.ga=b;var c=a.a.Ga*a.a.ga;if(a.a.da!=c){a.a.da=c;var c=a.a.da.toFixed(2)+"Mhz",d=a.i.setSpeed;d&&(d.textContent=c);a.L("target speed: "+c)}}cb(a,a.G);a.G=0;a.a.ea=p();a.a.Z=0;db(a)}
|
||||||
e.Ia=function(){if(Aa(this,!0)){if(!this.c.M){O(this);this.f&&this.f.start(this.a.ea,P(this));this.c.M=!0;this.c.Ra=!0;this.l&&this.l.hb();var a=this.j.run;a&&(a.textContent="Halt");this.f&&this.f.X(!0)}this.a.Ha>=this.a.ha&&db(this,!0);this.a.qa=0;this.a.za=p();this.a.W&&(a=this.a.za-this.a.W,a>this.a.Ta&&(this.a.ea+=a,this.a.ea>this.a.za&&(this.a.ea=this.a.za)));try{do{var b=this.c.wa?1:this.a.fb;this.l&&(this.l.Ya(),b=this.l.jb(0,b),b=this.l.ib(b));try{this.Xa(b)}catch(f){if("number"!=typeof f)throw f;
|
e.Ja=function(){if(Aa(this,!0)){if(!this.c.N){O(this);this.g&&this.g.start(this.a.ea,P(this));this.c.N=!0;this.c.Ra=!0;this.m&&this.m.hb();var a=this.i.run;a&&(a.textContent="Halt");this.g&&this.g.$(!0)}this.a.Ia>=this.a.ha&&db(this,!0);this.a.qa=0;this.a.za=p();this.a.Z&&(a=this.a.za-this.a.Z,a>this.a.Ta&&(this.a.ea+=a,this.a.ea>this.a.za&&(this.a.ea=this.a.za)));try{do{var b=this.c.wa?1:this.a.fb;this.m&&(this.m.Ya(),b=this.m.jb(0,b),b=this.m.ib(b));try{this.Xa(b)}catch(f){if("number"!=typeof f)throw f;
|
||||||
}var c=this.F-this.b;this.D+=c;this.a.qa+=c;cb(this,0,!0);a=c;if(this.c.wa){var d=!1;this.a.Aa=this.a.Aa+this.Sa()|0;this.a.fa-=a;0>=this.a.fa&&(this.a.fa+=this.a.la,d=!0);0<=this.a.ma&&this.a.ma<=P(this)&&(this.a.la=this.a.ma=-1,$a(this),N(this),d=!0);d&&this.I(P(this)+" cycles: checksum="+n(this.a.Aa))}this.a.oa-=c;0>=this.a.oa&&(this.a.oa+=this.a.Va);this.a.na-=c;0>=this.a.na&&(this.a.na+=this.a.Ua,this.f&&this.f.X());this.a.pa-=c;if(0>=this.a.pa){this.a.pa+=this.a.Ga;break}}while(this.c.M)}catch(f){N(this);
|
}var c=this.K-this.b;this.G+=c;this.a.qa+=c;cb(this,0,!0);a=c;if(this.c.wa){var d=!1;this.a.Aa=this.a.Aa+this.Sa()|0;this.a.fa-=a;0>=this.a.fa&&(this.a.fa+=this.a.la,d=!0);0<=this.a.ma&&this.a.ma<=P(this)&&(this.a.la=this.a.ma=-1,$a(this),N(this),d=!0);d&&this.L(P(this)+" cycles: checksum="+n(this.a.Aa))}this.a.oa-=c;0>=this.a.oa&&(this.a.oa+=this.a.Va);this.a.na-=c;0>=this.a.na&&(this.a.na+=this.a.Ua,this.g&&this.g.$());this.a.pa-=c;if(0>=this.a.pa){this.a.pa+=this.a.Ha;break}}while(this.c.N)}catch(f){N(this);
|
||||||
ab(this);this.f&&this.f.stop(p(),P(this));Aa(this,!1);b=f.stack||f.message;this.c.U=!0;this.w(b);return}b=setTimeout;c=this.bb;this.a.W=p();a=this.a.Ta;this.a.qa&&(a=Math.round(a*this.a.qa/this.a.Ga));a-=this.a.W-this.a.za;if(d=this.a.W-this.a.ea)this.a.V=Math.round(this.D/(10*d))/100,864E5<=d&&(this.G=0,this.l&&this.l.Ya(!0),O(this));if(0>a||this.a.V<this.a.da)a=0;this.a.Ha+=this.a.qa;this.a.W+=a;b(c,a)}else ab(this),this.f&&this.f.stop(p(),P(this))};e.Xa=function(){return 0};
|
ab(this);this.g&&this.g.stop(p(),P(this));Aa(this,!1);b=f.stack||f.message;this.c.X=!0;this.C(b);return}b=setTimeout;c=this.bb;this.a.Z=p();a=this.a.Ta;this.a.qa&&(a=Math.round(a*this.a.qa/this.a.Ha));a-=this.a.Z-this.a.za;if(d=this.a.Z-this.a.ea)this.a.Y=Math.round(this.G/(10*d))/100,864E5<=d&&(this.O=0,this.m&&this.m.Ya(!0),O(this));if(0>a||this.a.Y<this.a.da)a=0;this.a.Ia+=this.a.qa;this.a.Z+=a;b(c,a)}else ab(this),this.g&&this.g.stop(p(),P(this))};e.Xa=function(){return 0};
|
||||||
function N(a,b){a.c.ja&&(a.c.Ea=!0);a.F-=a.b;a.b=0;cb(a,a.D);a.D=0;if(a.c.M){a.c.M=!1;a.l&&a.l.hb();var c=a.j.run;c&&(c.textContent="Run")}a.c.xa=b}function ab(a){a.f&&a.f.X(void 0)}function eb(a){this.ab=a.model||8080;M.call(this,a,1E6);this.$a=fb;Za(this);this.c.xa=this.c.cb=!1;this.va=0;this.H=[];this.o=this.h=this.N=this.ua=this.ta=this.Y=0;gb(this)}B(eb,M);e=eb.prototype;e.reset=function(){this.c.M&&N(this);gb(this);Za(this);this.c.U=!1};
|
function N(a,b){a.c.ja&&(a.c.Fa=!0);a.K-=a.b;a.b=0;cb(a,a.G);a.G=0;if(a.c.N){a.c.N=!1;a.m&&a.m.hb();var c=a.i.run;c&&(c.textContent="Run")}a.c.xa=b}function ab(a){a.g&&a.g.$(void 0)}function eb(a){this.ab=a.model||8080;M.call(this,a,1E6);this.$a=fb;Za(this);this.c.xa=this.c.cb=!1;this.va=0;this.J=[];this.l=this.j=this.P=this.ua=this.ta=this.U=0;gb(this)}B(eb,M);e=eb.prototype;e.reset=function(){this.c.N&&N(this);gb(this);Za(this);this.c.X=!1};
|
||||||
function gb(a){a.C=0;a.g=0;a.u=0;a.$=0;a.aa=0;a.K=0;a.L=0;a.ba=0;a.s=0;hb(a,0);a.Z=0}e.Sa=function(){var a=this.C+this.g+this.u+this.$+this.aa+this.K+this.L|0;return a=a+this.ba+this.s+ib(this)|0};
|
function gb(a){a.h=0;a.u=0;a.v=0;a.A=0;a.w=0;a.H=0;a.I=0;a.ba=0;a.s=0;hb(a,0);a.aa=0}e.Sa=function(){var a=this.h+this.u+this.v+this.A+this.w+this.H+this.I|0;return a=a+this.ba+this.s+ib(this)|0};
|
||||||
e.save=function(){var a=new Q(this);R(a,0,[this.C,this.g,this.u,this.$,this.aa,this.K,this.L,this.ba,this.s,ib(this)]);R(a,1,[this.S,this.Z,this.G,this.a.ga]);for(var b=this.m,c=0,d=[],f=0;f<b.f;f++){var g=b.b[f];if(g.O||g.eb){d[c++]=f;var k=c++;a:if(g=g.save()){for(var h=0,l=0,m=[];h<g.length;){for(var A=g[h],r=h+1;r<g.length&&g[r]===A;)r++;m[l++]=r-h;m[l++]=A;h=r}if(m.length<g.length){g=m;break a}}d[k]=g}}R(a,2,d);return a.data()};
|
e.save=function(){var a=new Q(this);R(a,0,[this.h,this.u,this.v,this.A,this.w,this.H,this.I,this.ba,this.s,ib(this)]);R(a,1,[this.V,this.aa,this.O,this.a.ga]);for(var b=this.o,c=0,d=[],f=0;f<b.f;f++){var g=b.b[f];if(g.R||g.eb){d[c++]=f;var k=c++;a:if(g=g.save()){for(var h=0,l=0,m=[];h<g.length;){for(var A=g[h],r=h+1;r<g.length&&g[r]===A;)r++;m[l++]=r-h;m[l++]=A;h=r}if(m.length<g.length){g=m;break a}}d[k]=g}}R(a,2,d);return a.data()};
|
||||||
e.restore=function(a){var b=a[0];this.C=b[0];this.g=b[1];this.u=b[2];this.$=b[3];this.aa=b[4];this.K=b[5];this.L=b[6];this.ba=b[7]&65535;this.s=b[8]&65535;hb(this,b[9]);b=a[1];this.S=b[0];this.Z=b[1];this.G=b[2];O(this,b[3]);a:{b=this.m;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.l){for(var g=0,k=Array(b.l),h=0;h<f.length-1;)for(var l=f[h++],m=f[h++];l--;)k[g++]=m;f=k}g=b.b[d];if(!g||!g.restore(f)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
e.restore=function(a){var b=a[0];this.h=b[0];this.u=b[1];this.v=b[2];this.A=b[3];this.w=b[4];this.H=b[5];this.I=b[6];this.ba=b[7]&65535;this.s=b[8]&65535;hb(this,b[9]);b=a[1];this.V=b[0];this.aa=b[1];this.O=b[2];O(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],f=a[c+1];if(f&&f.length<b.m){for(var g=0,k=Array(b.m),h=0;h<f.length-1;)for(var l=f[h++],m=f[h++];l--;)k[g++]=m;f=k}g=b.b[d];if(!g||!g.restore(f)){u("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
e.J=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "D":case "E":case "H":case "L":case "SP":case "PC":case "F":case "CF":case "PF":case "AF":case "ZF":case "SF":case "VF":this.j[b]=c;this.va++;d=!0;break;default:d=this.parent.J.call(this,a,b,c)}return d};function ib(a){return a.Na&-214|(a.A&128?128:0)|(a.i&255?0:64)|((a.A^a.T)&16?16:0)|(Ca[a.A&255]?4:0)|(a.i&256?1:0)}
|
e.M=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "D":case "E":case "H":case "L":case "SP":case "PC":case "F":case "SF":case "ZF":case "AF":case "PF":case "CF":this.i[b]=c;this.va++;d=!0;break;default:d=this.parent.M.call(this,a,b,c)}return d};function S(a){return a.u<<8|a.v}function jb(a,b){a.u=b>>8&255;a.v=b&255}function kb(a){return a.A<<8|a.w}function lb(a,b){a.A=b>>8&255;a.w=b&255}
|
||||||
function hb(a,b){a.i=a.A=a.T=0;b&1&&(a.i|=256);b&4||(a.A|=1);b&16&&(a.T|=16);b&64||(a.i|=255);b&128&&(a.A^=192);a.Na=a.Na&-513|b&512|2}function jb(a,b){return a.H[(b&a.Y)>>>a.o].sa(b&a.N,b)}function kb(a){var b=jb(a,a.s);a.s=a.s+1&65535;return b}function S(a,b,c,d){d=d||2;a.j[b]&&(void 0===c&&(a.c.U=!0,a.w("Value for "+b+" is invalid"),N(a)),c=!a.c.M||a.c.Qa?n(c,d):"--------".substr(0,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
|
function ib(a){return a.Na&-214|(a.F&128?128:0)|(a.f&255?0:64)|((a.F^a.W)&16?16:0)|(Ca[a.F&255]?4:0)|(a.f&256?1:0)}function hb(a,b){a.f=a.F=a.W=0;b&1&&(a.f|=256);b&4||(a.F|=1);b&16&&(a.W|=16);b&64||(a.f|=255);b&128&&(a.F^=192);a.Na=a.Na&-513|b&512|2}function mb(a,b){a.W=b;b=(a.F=b+1)&255;a.f=a.f&-256|b;return b}function nb(a,b){a.W=b;b=(a.F=b-1)&255;a.f=a.f&-256|b;return b}function ob(a,b){return a.J[(b&a.U)>>>a.l].sa(b&a.P,b)}function pb(a){var b=ob(a,a.s);a.s=a.s+1&65535;return b}
|
||||||
e.X=function(a){this.va&&(a||!this.c.M||this.c.Qa)&&(S(this,"A",this.C),S(this,"B",this.g),S(this,"C",this.u),S(this,"D",this.$),S(this,"E",this.aa),S(this,"H",this.K),S(this,"L",this.L),S(this,"SP",this.ba,4),S(this,"PC",this.s,4),a=ib(this),S(this,"F",a,2),S(this,"S",a&128,1),S(this,"Z",a&64,1),S(this,"A",a&16,1),S(this,"P",a&4,1),S(this,"C",a&1,1));if(a=this.j.speed)a.textContent=this.c.M&&this.a.V?this.a.V.toFixed(2)+"Mhz":"Stopped"};
|
function qb(a){var b;b=a.s;var c=b&a.P,d=(b&a.U)>>>a.l;c<a.P?b=a.J[d].gb(c,b):(c=a.J[d].sa(c,b),b=c|=a.J[d+1&a.ta].sa(0,b+1)<<8);a.s=a.s+2&65535;return b}function T(a,b,c,d){d=d||2;a.i[b]&&(void 0===c&&(a.c.X=!0,a.C("Value for "+b+" is invalid"),N(a)),c=!a.c.N||a.c.Qa?n(c,d):"--------".substr(0,d),a.i[b].textContent!=c&&(a.i[b].textContent=c))}
|
||||||
e.Xa=function(a){this.c.xa=!0;this.c.cb=!1;this.c.Ra=!1;this.F=this.b=a;this.l&&!a&&this.l.Ya();a||(this.S|=4);do{if(this.Z&&this.Z&4){this.S=this.b=0;break}this.S=0;this.$a[kb(this)].call(this)}while(0<this.b);return this.c.xa?this.F-this.b:void 0===this.c.xa?0:-1};w(function(){for(var a=H(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new eb(d);G(d,c)}});function lb(){this.b-=4}function T(){this.s=this.s-1&65535;N(this)}
|
e.$=function(a){this.va&&(a||!this.c.N||this.c.Qa)&&(T(this,"A",this.h),T(this,"B",this.u),T(this,"C",this.v),T(this,"D",this.A),T(this,"E",this.w),T(this,"H",this.H),T(this,"L",this.I),T(this,"SP",this.ba,4),T(this,"PC",this.s,4),a=ib(this),T(this,"F",a,2),T(this,"SF",a&128,1),T(this,"ZF",a&64,1),T(this,"AF",a&16,1),T(this,"PF",a&4,1),T(this,"CF",a&1,1));if(a=this.i.speed)a.textContent=this.c.N&&this.a.Y?this.a.Y.toFixed(2)+"Mhz":"Stopped"};
|
||||||
var fb=[lb,function(){var a;a=this.s;var b=a&this.N,c=(a&this.Y)>>>this.o;b<this.N?a=this.H[c].gb(b,a):(b=this.H[c].sa(b,a),a=b|=this.H[c+1&this.ta].sa(0,a+1)<<8);this.s=this.s+2&65535;this.g=a>>8&255;this.u=a&255;this.b-=10},function(){var a=this.g<<8|this.u;this.H[(a&this.Y)>>>this.o].Ja(a&this.N,this.C&255,a);this.b-=7},function(){var a=(this.g<<8|this.u)+1;this.g=a>>8&255;this.u=a&255;this.b-=5},function(){var a=this.g;this.T=a;a=(this.A=a+1)&255;this.i=this.i&-256|a;this.g=a;this.b-=5},function(){var a=
|
e.Xa=function(a){this.c.xa=!0;this.c.cb=!1;this.c.Ra=!1;this.K=this.b=a;this.m&&!a&&this.m.Ya();a||(this.V|=4);do{if(this.aa&&this.aa&4){this.V=this.b=0;break}this.V=0;this.$a[pb(this)].call(this)}while(0<this.b);return this.c.xa?this.K-this.b:void 0===this.c.xa?0:-1};w(function(){for(var a=H(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new eb(d);G(d,c)}});function rb(){this.b-=4}function U(){this.s=this.s-1&65535;N(this)}
|
||||||
this.g;this.T=a;a=(this.A=a-1)&255;this.i=this.i&-256|a;this.g=a;this.b-=5},function(){this.g=kb(this);this.b-=7},function(){var a=this.C<<1;this.C=a&255|a>>8;this.i=this.i&255|a&256;this.b-=4},lb,function(){var a,b=a=(this.K<<8|this.L)+(this.g<<8|this.u);this.K=b>>8&255;this.L=b&255;this.i=this.i&255|a>>8&256;this.b-=10},function(){this.C=jb(this,this.g<<8|this.u);this.b-=7},T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,
|
var fb=[rb,function(){jb(this,qb(this));this.b-=10},function(){var a=S(this);this.J[(a&this.U)>>>this.l].Da(a&this.P,this.h&255,a);this.b-=7},function(){jb(this,S(this)+1);this.b-=5},function(){this.u=mb(this,this.u);this.b-=5},function(){this.u=nb(this,this.u);this.b-=5},function(){this.u=pb(this);this.b-=7},function(){var a=this.h<<1;this.h=a&255|a>>8;this.f=this.f&255|a&256;this.b-=4},rb,function(){var a,b=a=(this.H<<8|this.I)+S(this);this.H=b>>8&255;this.I=b&255;this.f=this.f&255|a>>8&256;this.b-=
|
||||||
T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T];
|
10},function(){this.h=ob(this,S(this));this.b-=7},function(){jb(this,S(this)-1);this.b-=5},function(){this.v=mb(this,this.v);this.b-=5},function(){this.v=nb(this,this.v);this.b-=5},function(){this.v=pb(this);this.b-=7},function(){var a=this.h<<8&256;this.h=(a|this.h)>>1;this.f=this.f&255|a;this.b-=4},rb,function(){lb(this,qb(this));this.b-=10},function(){var a=kb(this);this.J[(a&this.U)>>>this.l].Da(a&this.P,this.h&255,a);this.b-=7},function(){lb(this,kb(this)+1);this.b-=5},function(){this.A=mb(this,
|
||||||
function U(a){y.call(this,"ROM",a,U);this.b=null;this.l=a.addr;this.f=a.size;this.g=a.alias;this.h=a.file;this.o=ba(this.h);if(this.h){a=this.h;var b=ca(this.o);"json"!=b&&"hex"!=b&&(a=t()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,g){mb(c,a,b,g)})}}B(U);U.prototype.ka=function(a,b,c,d){this.m=b;this.a=c;this.B=d;nb(this)};U.prototype.R=function(){this.i&&(this.B&&this.B.a(this.id,this.l,this.f,this.i),delete this.i);return!0};U.prototype.P=function(){return!0};
|
this.A);this.b-=5},function(){this.A=nb(this,this.A);this.b-=5},function(){this.A=pb(this);this.b-=7},function(){var a=this.h<<1;this.h=a&255|this.f>>8;this.f=this.f&255|a&256;this.b-=4},rb,function(){var a,b=a=(this.H<<8|this.I)+kb(this);this.H=b>>8&255;this.I=b&255;this.f=this.f&255|a>>8&256;this.b-=10},function(){this.h=ob(this,kb(this));this.b-=7},function(){lb(this,kb(this)-1);this.b-=5},function(){this.w=mb(this,this.w);this.b-=5},function(){this.w=nb(this,this.w);this.b-=5},function(){this.w=
|
||||||
function mb(a,b,c,d){if(d)a.w("Unable to load system ROM (error "+d+": "+b+")");else{za(a.Ma,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var f=eval("("+c+")"),g=f.bytes,k=f.data;if(g)a.b=g;else if(k)for(a.b=Array(4*k.length),d=c=0;c<k.length;c++)a.b[d++]=k[c]&255,a.b[d++]=k[c]>>8&255,a.b[d++]=k[c]>>16&255,a.b[d++]=k[c]>>24&255;else a.b=f;a.i=f.symbols;if(!a.b.length){u("Empty ROM: "+b);return}if(1==a.b.length){u(a.b[0]);return}}catch(h){a.w("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
pb(this);this.b-=7},function(){var a=this.h<<8&256;this.h=(this.f&256|this.h)>>1;this.f=this.f&255|a;this.b-=4},U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,
|
||||||
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);nb(a)}}
|
U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U];function V(a){y.call(this,"ROM",a,V);this.b=null;this.l=a.addr;this.f=a.size;this.g=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=t()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,g){sb(c,a,b,g)})}}B(V);V.prototype.ka=function(a,b,c,d){this.o=b;this.a=c;this.D=d;tb(this)};
|
||||||
function nb(a){if(!Ba(a))if(!a.h)I(a);else if(a.b&&a.m){if(a.b.length!=a.f){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.f))+")";a.c.U=!0;a.w(b)}else{b=a.l;if(Ha(a.m,b,a.f,Oa)){for(var c=0;c<a.b.length;c++){var d=a.m,f=b+c;d.b[(f&d.g)>>>d.o].Za(f&d.s,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var g=a,d=b[c],f=g.m,k=g.f,h=[],l=g.l>>>f.o;0<k&&l<f.b.length;)h.push(f.b[l++]),k-=
|
V.prototype.T=function(){this.j&&(this.D&&this.D.a(this.id,this.l,this.f,this.j),delete this.j);return!0};V.prototype.S=function(){return!0};
|
||||||
f.h;f=g.m;g=g.f;k=0;for(d>>>=f.o;0<g&&d<f.b.length;){l=h[k++];if(!l)break;f.b[d++]=l;g-=f.h}}delete a.b}}I(a)}}w(function(){for(var a=H(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new U(d);G(d,c)}});function ob(a){y.call(this,"RAM",a,ob);this.g=a.addr;this.f=a.size;this.b=!1}B(ob);e=ob.prototype;e.ka=function(a,b,c,d){this.m=b;this.a=c;this.B=d;I(this)};e.R=function(a,b){b||this.reset();return!0};e.P=function(a){return a?this.save():!0};
|
function sb(a,b,c,d){if(d)a.C("Unable to load system ROM (error "+d+": "+b+")");else{za(a.Ma,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var f=eval("("+c+")"),g=f.bytes,k=f.data;if(g)a.b=g;else if(k)for(a.b=Array(4*k.length),d=c=0;c<k.length;c++)a.b[d++]=k[c]&255,a.b[d++]=k[c]>>8&255,a.b[d++]=k[c]>>16&255,a.b[d++]=k[c]>>24&255;else a.b=f;a.j=f.symbols;if(!a.b.length){u("Empty ROM: "+b);return}if(1==a.b.length){u(a.b[0]);return}}catch(h){a.C("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
|
||||||
e.reset=function(){!this.b&&this.f&&Ha(this.m,this.g,this.f,1)&&(this.b=!0,this.status(Math.floor(this.f/1024)+"Kb allocated"));this.b||u("No RAM allocated")};e.save=function(){return null};e.restore=function(){return!0};w(function(){for(var a=H(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new ob(d);G(d,c)}});function pb(a){y.call(this,"Keyboard",a,pb);I(this)}B(pb);w(function(){for(var a=H(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new pb(d);G(d,c)}});
|
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);tb(a)}}
|
||||||
function qb(a){y.call(this,"Video",a,qb);I(this)}B(qb);
|
function tb(a){if(!Ba(a))if(!a.h)I(a);else if(a.b&&a.o){if(a.b.length!=a.f){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.f))+")";a.c.X=!0;a.C(b)}else{b=a.l;if(Ha(a.o,b,a.f,Oa)){for(var c=0;c<a.b.length;c++){var d=a.o,f=b+c;d.b[(f&d.h)>>>d.l].Za(f&d.s,a.b[c]&255,f)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var g=a,d=b[c],f=g.o,k=g.f,h=[],l=g.l>>>f.l;0<k&&l<f.b.length;)h.push(f.b[l++]),k-=
|
||||||
|
f.j;f=g.o;g=g.f;k=0;for(d>>>=f.l;0<g&&d<f.b.length;){l=h[k++];if(!l)break;f.b[d++]=l;g-=f.j}}delete a.b}}I(a)}}w(function(){for(var a=H(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new V(d);G(d,c)}});function ub(a){y.call(this,"RAM",a,ub);this.g=a.addr;this.f=a.size;this.b=!1}B(ub);e=ub.prototype;e.ka=function(a,b,c,d){this.o=b;this.a=c;this.D=d;I(this)};e.T=function(a,b){b||this.reset();return!0};e.S=function(a){return a?this.save():!0};
|
||||||
|
e.reset=function(){!this.b&&this.f&&Ha(this.o,this.g,this.f,1)&&(this.b=!0,this.status(Math.floor(this.f/1024)+"Kb allocated"));this.b||u("No RAM allocated")};e.save=function(){return null};e.restore=function(){return!0};w(function(){for(var a=H(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new ub(d);G(d,c)}});function vb(a){y.call(this,"Keyboard",a,vb);I(this)}B(vb);w(function(){for(var a=H(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=F(c),d=new vb(d);G(d,c)}});
|
||||||
|
function wb(a){y.call(this,"Video",a,wb);I(this)}B(wb);
|
||||||
w(function(){for(var a=H(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=F(c),f=document.createElement("canvas");if(void 0===f||!f.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}f.setAttribute("class","pcjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.style.backgroundColor=d.screenColor;f.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
w(function(){for(var a=H(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=F(c),f=document.createElement("canvas");if(void 0===f||!f.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}f.setAttribute("class","pcjs-canvas");f.setAttribute("width",d.screenWidth);f.setAttribute("height",d.screenHeight);f.style.backgroundColor=d.screenColor;f.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,f,d.screenWidth,d.screenHeight),c.onresize());var g=+(d.aspect||ua.aspect);g&&.3<=g&&3.33>=g&&(qa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,f,g)),window.onresize());c.appendChild(f);g=document.createElement("textarea");ma("iOS")&&(g.setAttribute("autocapitalize","off"),g.setAttribute("autocorrect","off"));c.appendChild(g);f.getContext("2d");d=new qb(d);G(d,c)}});
|
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,f,d.screenWidth,d.screenHeight),c.onresize());var g=+(d.aspect||ta.aspect);g&&.3<=g&&3.33>=g&&(pa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,f,g)),window.onresize());c.appendChild(f);g=document.createElement("textarea");ma("iOS")&&(g.setAttribute("autocapitalize","off"),g.setAttribute("autocorrect","off"));c.appendChild(g);f.getContext("2d");d=new wb(d);G(d,c)}});
|
||||||
function Q(a,b,c){this.id=a.id;this.key=rb(a,b,c);this.B=a.B;sb(this,a.Wa)}function rb(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 Q(a,b,c){this.id=a.id;this.key=xb(a,b,c);this.D=a.D;yb(this,a.Wa)}function xb(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}
|
||||||
Q.prototype={constructor:Q,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){sb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}}};
|
Q.prototype={constructor:Q,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){yb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(f){}b.splice(c,1);c=0}}};
|
||||||
function sb(a,b){a[a.id]={};b&&R(a,"parms",b);a.a=!1}function tb(a){var b=!0;if(ja()){var c=JSON.stringify(a[a.id]);la(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ub(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function V(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ja()&&(b=ka(a.key))?(a[a.id]=b,a.a=!0):!1}function W(a,b){return a[a.id][b]||null}function R(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
function yb(a,b){a[a.id]={};b&&R(a,"parms",b);a.a=!1}function zb(a){var b=!0;if(ja()){var c=JSON.stringify(a[a.id]);la(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Ab(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){u(c.message||c),b=!1}return b}function W(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:ja()&&(b=ka(a.key))?(a[a.id]=b,a.a=!0):!1}function X(a,b){return a[a.id][b]||null}function R(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||||
function vb(a,b,c){y.call(this,"Computer",a,vb);this.c.v=!1;wb(this,b);this.D=Ya(this,"autoPower",a);this.g=0;this.K=a.busWidth||a.buswidth;this.b=X;this.u=null;this.l=this.H=!1;this.L=Ya(this,"url")||"";(Math.random()+.1).toString(36);this.f=xb(this);if(this.a=E("CPU",this.id)){this.B=E("Debugger",this.id);this.N=[];for(b=null;b=Ea(this,"Video",b);)this.N.push(b);this.m=new K({id:this.Ma+".bus",buswidth:this.K},this.a,this.B);var d,f=D(this.id);if((this.h=E("Panel",this.id))&&this.h.Da)for(b=0;b<
|
function Bb(a,b,c){y.call(this,"Computer",a,Bb);this.c.B=!1;Cb(this,b);this.A=Ya(this,"autoPower",a);this.g=0;this.I=a.busWidth||a.buswidth;this.b=Y;this.u=null;this.l=this.H=!1;this.J=Ya(this,"url")||"";(Math.random()+.1).toString(36);this.f=Db(this);if(this.a=E("CPU",this.id)){this.D=E("Debugger",this.id);this.K=[];for(b=null;b=Ea(this,"Video",b);)this.K.push(b);this.o=new K({id:this.Ma+".bus",buswidth:this.I},this.a,this.D);var d,f=D(this.id);if((this.h=E("Panel",this.id))&&this.h.Ea)for(b=0;b<
|
||||||
f.length;b++)d=f[b],d.w=this.h.w,d.I=this.h.I,d.Da=this.h.Da;for(b=0;b<f.length;b++)d=f[b],d.ka&&d.ka(this,this.m,this.a,this.B);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.s=d:this.b=parseInt(d,10));var g;if(a=Ya(this,"state")||(g=!0,a.state))b=this.C=a,g||(this.l=!0,this.b=X),this.b&&(this.A=new Q(this,Y),V(this.A)?b=null:delete this.A);!b&&this.b&&(b=yb(this))&&(this.l=!0);if(b){var k=this;q(b,null,!0,function(a,b,c){c?(k.s=null,k.l=!1,k.w("Unable to load machine state from server (error "+
|
f.length;b++)d=f[b],d.C=this.h.C,d.L=this.h.L,d.Ea=this.h.Ea;for(b=0;b<f.length;b++)d=f[b],d.ka&&d.ka(this,this.o,this.a,this.D);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.s=d:this.b=parseInt(d,10));var g;if(a=Ya(this,"state")||(g=!0,a.state))b=this.w=a,g||(this.l=!0,this.b=Y),this.b&&(this.v=new Q(this,Z),W(this.v)?b=null:delete this.v);!b&&this.b&&(b=Eb(this))&&(this.l=!0);if(b){var k=this;q(b,null,!0,function(a,b,c){c?(k.s=null,k.l=!1,k.C("Unable to load machine state from server (error "+
|
||||||
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(k.u=b,k.H=!0);I(k)})}else I(this);this.j.power||(this.D=!0);!c&&this.D&&Z(this,this.ra)}else u("Unable to find CPU component")}B(vb);var Y="1.21.7",X=0;function wb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.o=b}
|
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(k.u=b,k.H=!0);I(k)})}else I(this);this.i.power||(this.A=!0);!c&&this.A&&Fb(this,this.ra)}else u("Unable to find CPU component")}B(Bb);var Z="1.21.7",Y=0;function Cb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.m=b}
|
||||||
function Ya(a,b,c){var d=b.toLowerCase(),d=ua[b]||ua[d];void 0===d&&a.o&&(d=a.o[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Z(a,b,c){for(var d=D(a.id),f=0;f<=d.length;f++){var g=f<d.length?d[f]:a;if(!Ba(g)){Ba(g,function(){Z(a,b,c)});return}}b.call(a,c)}
|
function Ya(a,b,c){var d=b.toLowerCase(),d=ta[b]||ta[d];void 0===d&&a.m&&(d=a.m[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Fb(a,b,c){for(var d=D(a.id),f=0;f<=d.length;f++){var g=f<d.length?d[f]:a;if(!Ba(g)){Ba(g,function(){Fb(a,b,c)});return}}b.call(a,c)}
|
||||||
function zb(a,b){var c=new Q(a,Y,"validate");if(V(c)&&ub(c)){var d=W(c,"timestamp"),f=b?W(b,"timestamp"):"unknown";d!=f&&(a.w("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}e=vb.prototype;
|
function Gb(a,b){var c=new Q(a,Z,"validate");if(W(c)&&Ab(c)){var d=X(c,"timestamp"),f=b?X(b,"timestamp"):"unknown";d!=f&&(a.C("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}e=Bb.prototype;
|
||||||
e.ra=function(a){void 0===a&&(a=this.b||(this.u?1:X));if(!this.g){this.g++;var b=!1,c=!1;this.G=!1;var d=this.A||new Q(this,Y);if(-1==a)b=!0;else if(a>X){if(V(d,this.u)){this.i=new Q(this,Y,"failsafe");V(this.i)&&(Ab(this,d),a=2,sb(this.i));R(this.i,"timestamp",ga());tb(this.i);var f=this.b&&!this.l;if(1==a||ha("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ub(d)){var g=W(d,"code"),k=W(d,"data");g&&("ok"==g?V(d,k):("error"==g&&"no machine state"!=k?
|
e.ra=function(a){void 0===a&&(a=this.b||(this.u?1:Y));if(!this.g){this.g++;var b=!1,c=!1;this.G=!1;var d=this.v||new Q(this,Z);if(-1==a)b=!0;else if(a>Y){if(W(d,this.u)){this.j=new Q(this,Z,"failsafe");W(this.j)&&(Hb(this,d),a=2,yb(this.j));R(this.j,"timestamp",ga());zb(this.j);var f=this.b&&!this.l;if(1==a||ha("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=Ab(d)){var g=X(d,"code"),k=X(d,"data");g&&("ok"==g?W(d,k):("error"==g&&"no machine state"!=k?
|
||||||
(this.w("Error: "+k),"unable to verify user"==k&&(la("user",""),this.f=null)):this.I(g+": "+k),sb(d),V(d)?(c=ub(d),f=!0):c=!1))}f&&zb(this,c?d:null)}else 2==a&&d.clear()}else zb(this);delete this.u;delete this.A}f=D(this.id);for(g=0;g<f.length;g++)k=f[g],k!==this&&k!=this.a&&(c=Bb(this,k,d,b,c));b=[d,a,c];-1!=a?Z(this,this.Oa,b):this.Oa(b)}};
|
(this.C("Error: "+k),"unable to verify user"==k&&(la("user",""),this.f=null)):this.L(g+": "+k),yb(d),W(d)?(c=Ab(d),f=!0):c=!1))}f&&Gb(this,c?d:null)}else 2==a&&d.clear()}else Gb(this);delete this.u;delete this.v}f=D(this.id);for(g=0;g<f.length;g++)k=f[g],k!==this&&k!=this.a&&(c=Ib(this,k,d,b,c));b=[d,a,c];-1!=a?Fb(this,this.Oa,b):this.Oa(b)}};
|
||||||
function Bb(a,b,c,d,f){if(!b.c.v){b.c.v=!0;if(b.R){var g=null;f&&((g=W(c,b.id))||(g=W(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof g&&(g=null);!b.R(g,d)&&g&&(u("Unable to restore state for "+b.type),a.C&&!a.H?(c.clear(),a.b=X,window&&window.location.reload()):a.G=!0,b.R(null),f=!1)}if(!d&&b.Ka)for(a=b.Ka.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
function Ib(a,b,c,d,f){if(!b.c.B){b.c.B=!0;if(b.T){var g=null;f&&((g=X(c,b.id))||(g=X(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof g&&(g=null);!b.T(g,d)&&g&&(u("Unable to restore state for "+b.type),a.w&&!a.H?(c.clear(),a.b=Y,window&&window.location.reload()):a.G=!0,b.T(null),f=!1)}if(!d&&b.Ka)for(a=b.Ka.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
|
||||||
e.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.c.v=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.F||(this.I("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.F=!0);this.a&&(Bb(this,this.a,b,c,a),bb(this.a));this.G&&(Ab(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.g=0};
|
e.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.c.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.F||(this.L("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.F=!0);this.a&&(Ib(this,this.a,b,c,a),bb(this.a));this.G&&(Hb(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.g=0};
|
||||||
function Ab(a,b){if(ha("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.L,d=a.f||"",f=b.toString(),g={app:"PC8080"};g.ver=Y;g.url=c;g.user=d;g.type="bug";g.data=f;q("http://www.pcjs.org/api/v1/report",g,!0)}}
|
function Hb(a,b){if(ha("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.J,d=a.f||"",f=b.toString(),g={app:"PC8080"};g.ver=Z;g.url=c;g.user=d;g.type="bug";g.data=f;q("http://www.pcjs.org/api/v1/report",g,!0)}}
|
||||||
function Cb(a,b,c){var d,f="none";if(a.g)return null;a.g--;var g=new Q(a,Y),k=new Q(a,Y,"validate"),h=ga();R(k,"timestamp",h);R(g,"timestamp",h);R(g,"version","1.21.7");R(g,"url",window?window.location.href:null);R(g,"browser",window?window.navigator.userAgent:"");a.a&&a.a.P&&(c&&N(a.a),d=a.a.P(b,c),"object"===typeof d&&R(g,a.a.id,d),c&&(a.a.c.v=!1,!1===d&&(f=null)));for(var h=D(a.id),l=0;l<h.length;l++){var m=h[l];m.c.v&&(m.P&&(d=m.P(b,c),"object"===typeof d&&R(g,m.id,d)),c&&(m.c.v=!1,!1===d&&(f=
|
function Jb(a,b,c){var d,f="none";if(a.g)return null;a.g--;var g=new Q(a,Z),k=new Q(a,Z,"validate"),h=ga();R(k,"timestamp",h);R(g,"timestamp",h);R(g,"version","1.21.7");R(g,"url",window?window.location.href:null);R(g,"browser",window?window.navigator.userAgent:"");a.a&&a.a.S&&(c&&N(a.a),d=a.a.S(b,c),"object"===typeof d&&R(g,a.a.id,d),c&&(a.a.c.B=!1,!1===d&&(f=null)));for(var h=D(a.id),l=0;l<h.length;l++){var m=h[l];m.c.B&&(m.S&&(d=m.S(b,c),"object"===typeof d&&R(g,m.id,d)),c&&(m.c.B=!1,!1===d&&(f=
|
||||||
null)))}f&&(c?(h=d=!1,b?(a.f&&Db(a,a.f,g.toString()),tb(k)&&tb(g)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&g.clear(h)):f=g.toString());c&&(a.c.v=!1,b=a.j.power)&&(b.textContent="Power");a.g=0;return f}e.reset=function(){this.m&&this.m.reset&&this.m.reset();for(var a=D(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c.reset&&c.reset()}};e.start=function(a,b){for(var c=D(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
null)))}f&&(c?(h=d=!1,b?(a.f&&Kb(a,a.f,g.toString()),zb(k)&&zb(g)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&g.clear(h)):f=g.toString());c&&(a.c.B=!1,b=a.i.power)&&(b.textContent="Power");a.g=0;return f}e.reset=function(){this.o&&this.o.reset&&this.o.reset();for(var a=D(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c.reset&&c.reset()}};e.start=function(a,b){for(var c=D(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
|
||||||
e.stop=function(a,b){for(var c=D(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
e.stop=function(a,b){for(var c=D(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
|
||||||
e.J=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.g||(d.c.v?Cb(d,!1,!0):Z(d,d.ra))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.c.v&&!d.g)if(d.b&&!d.s){var a=ha("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Cb(d,a,!0);!a&&d.C?window&&window.location.reload():d.ra(X)}else d.reset(),d.a&&bb(d.a)},!0;case "save":if(da(t(),"pcjs.org")){c.parentNode.removeChild(c);break}this.j[b]=
|
e.M=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.g||(d.c.B?Jb(d,!1,!0):Fb(d,d.ra))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.c.B&&!d.g)if(d.b&&!d.s){var a=ha("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Jb(d,a,!0);!a&&d.w?window&&window.location.reload():d.ra(Y)}else d.reset(),d.a&&bb(d.a)},!0;case "save":if(da(t(),"pcjs.org")){c.parentNode.removeChild(c);break}this.i[b]=
|
||||||
c;c.onclick=function(){var a=xb(d,!0);if(a){var b=!!(d.b&&!d.s||d.C),c=Cb(d,b);b?Db(d,a,c):d.w("Resume disabled, machine state not saved")}};return!0}return!1};
|
c;c.onclick=function(){var a=Db(d,!0);if(a){var b=!!(d.b&&!d.s||d.w),c=Jb(d,b);b?Kb(d,a,c):d.C("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function xb(a,b){var c=a.f;c||(c=ka("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=Eb(a,c))||a.w("The user ID is invalid."))):b&&a.w("Browser local storage is not available"));return c}
|
function Db(a,b){var c=a.f;c||(c=ka("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=Lb(a,c))||a.C("The user ID is invalid."))):b&&a.C("Browser local storage is not available"));return c}
|
||||||
function Eb(a,b){a.f=null;var c=q(t()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(la("user",c.data),a.f=c.data)}catch(f){u(f.message+" ("+d+")")}return a.f}function yb(a){var b=null;a.f&&(b=t()+"/api/v1/user?req=load&user="+a.f+"&state="+rb(a,Y));return b}
|
function Lb(a,b){a.f=null;var c=q(t()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(la("user",c.data),a.f=c.data)}catch(f){u(f.message+" ("+d+")")}return a.f}function Eb(a){var b=null;a.f&&(b=t()+"/api/v1/user?req=load&user="+a.f+"&state="+xb(a,Z));return b}
|
||||||
function Db(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=rb(a,Y);d.data=c;b=q(t()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.w("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.w(c),la("user",""),a.f=null)}}
|
function Kb(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=xb(a,Z);d.data=c;b=q(t()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.C("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.C(c),la("user",""),a.f=null)}}
|
||||||
function Ea(a,b,c){a=D(a.id);for(var d=0;d<a.length;d++){var f=a[d];if(c)c==f&&(c=null);else if(f.type==b)return f}return null}e.X=function(a){this.a&&this.a.X(a);this.h&&this.h.X(a)};w(function(){for(var a=H(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=F(c),c=H(c,"pc8080","computer"),f=0;f<c.length;f++){var g=c[f],k=F(g),k=new vb(k,d,!0);G(k,g);k.D&&Z(k,k.ra)}});
|
function Ea(a,b,c){a=D(a.id);for(var d=0;d<a.length;d++){var f=a[d];if(c)c==f&&(c=null);else if(f.type==b)return f}return null}e.$=function(a){this.a&&this.a.$(a);this.h&&this.h.$(a)};w(function(){for(var a=H(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=F(c),c=H(c,"pc8080","computer"),f=0;f<c.length;f++){var g=c[f],k=F(g),k=new Bb(k,d,!0);G(k,g);k.A&&Fb(k,k.ra)}});
|
||||||
v.show.push(function(){for(var a=H(document,"pc8080","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=E("Computer",c.id))&&c.F&&!c.c.v&&c.ra(-1)}});v.exit.push(function(){for(var a=H(document,"pc8080","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=E("Computer",c.id))&&c.c.v&&Cb(c,!(!c.b||c.s),!0)}});var Fb=0;function Gb(a,b,c,d,f,g){f("Loading "+a+"...");q(a,null,!0,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),g(h,null)):Hb(h,a,b,c,d,f,g)})}
|
v.show.push(function(){for(var a=H(document,"pc8080","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=E("Computer",c.id))&&c.F&&!c.c.B&&c.ra(-1)}});v.exit.push(function(){for(var a=H(document,"pc8080","computer"),b=0;b<a.length;b++){var c=F(a[b]);(c=E("Computer",c.id))&&c.c.B&&Jb(c,!(!c.b||c.s),!0)}});var Mb=0;function Nb(a,b,c,d,f,g){f("Loading "+a+"...");q(a,null,!0,function(k,h,l){l?(h||(h="unable to load "+a+" ("+l+")"),g(h,null)):Ob(h,a,b,c,d,f,g)})}
|
||||||
function Hb(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){za(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
function Ob(a,b,c,d,f,g,k){function h(a,g){if(g)k(g,null);else{if(c){za(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||||
h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){h=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?Ib(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){h=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,h)}}a?f?Pb(a,g,h):h(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||||
function Ib(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,!0,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,A=/( [a-z]+=)(['"])(.*?)\2/g;m=A.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
|
function Pb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,!0,function(g,k,h){if(h||!k)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=k.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],m,A=/( [a-z]+=)(['"])(.*?)\2/g;m=A.exec(g);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=l&&(k=k.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+f);return}k=k.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(d[0],k);Ib(a,b,c)}})}else c(a,null)}
|
"");a=a.replace(d[0],k);Pb(a,b,c)}})}else c(a,null)}
|
||||||
function Jb(a,b,c,d){function f(a){if(void 0===h){var b=k&&H(k,"machine-warning");h=b&&b[0]||k}h&&(h.innerHTML=fa(a))}function g(a){f("Error: "+a);l&&(--Fb||x(!0));l=!1}var k,h,l=!0;Fb++;C[a]={};try{if(k=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));A.appendChild(r)}c||(c=
|
function Qb(a,b,c,d){function f(a){if(void 0===h){var b=k&&H(k,"machine-warning");h=b&&b[0]||k}h&&(h.innerHTML=fa(a))}function g(a){f("Error: "+a);l&&(--Mb||x(!0));l=!1}var k,h,l=!0;Mb++;C[a]={};try{if(k=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));A.appendChild(r)}c||(c=
|
||||||
"/versions/pc8080/1.21.7/components.xsl");m=function(d,h){h?Gb(c,null,null,!1,f,function(d,m){if(m)if(za(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(m);l?(k.outerHTML=l,--Fb||x(!0)):g("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(m),(l=l.transformToFragment(h,document))?k.parentNode?(k.parentNode.replaceChild(l,k),--Fb||x(!0)):g("invalid machine element: "+
|
"/versions/pc8080/1.21.7/components.xsl");m=function(d,h){h?Nb(c,null,null,!1,f,function(d,m){if(m)if(za(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(m);l?(k.outerHTML=l,--Mb||x(!0)):g("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(m),(l=l.transformToFragment(h,document))?k.parentNode?(k.parentNode.replaceChild(l,k),--Mb||x(!0)):g("invalid machine element: "+
|
||||||
a):g("transformToFragment failed")):g("unable to transform XML: unsupported browser");else g(d)}):g(d)};"<"!=b.charAt(0)?Gb(b,a,d,!0,f,m):Hb(b,null,a,d,!1,f,m)}else g("missing machine element: "+a)}catch(pa){g(pa.message)}return l}window.embedPC8080=function(a,b,c,d){x(!1);return Jb(a,b,c,d)};window.enableEvents=x;window.sendEvent=sa;
|
a):g("transformToFragment failed")):g("unable to transform XML: unsupported browser");else g(d)}):g(d)};"<"!=b.charAt(0)?Nb(b,a,d,!0,f,m):Ob(b,null,a,d,!1,f,m)}else g("missing machine element: "+a)}catch(va){g(va.message)}return l}window.embedPC8080=function(a,b,c,d){x(!1);return Qb(a,b,c,d)};window.enableEvents=x;window.sendEvent=ra;
|
||||||
function Kb(a,b,c,d){if(!c&&b){d.push(b);a=C[d[0]];b=null;for(var f in a)if(da(f,"components.xsl")){b=f.replace(".xsl",".css");break}b?q(b,null,!0,function(a,b){Lb(b,d)}):Lb(null,d)}else u("Error ("+c+") requesting "+a)}
|
function Rb(a,b,c,d){if(!c&&b){d.push(b);a=C[d[0]];b=null;for(var f in a)if(da(f,"components.xsl")){b=f.replace(".xsl",".css");break}b?q(b,null,!0,function(a,b){Sb(b,d)}):Sb(null,d)}else u("Error ("+c+") requesting "+a)}
|
||||||
function Lb(a,b){var c,d,f,g=b[0],k=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=C[g],l={},m;for(m in h){var A=h[m],r=ca(m);if("xml"==r){for(r=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=r.exec(h[m]);){var pa=d[2];pa&&(h[pa]||(A=A.replace(d[0],"")))}d=m=ba(m)}else"xsl"==r&&(f=m=ba(m));l[m]=A}a&&(l[m="css"]=a);b[2]&&(l[m="parms"]=b[2]);b[3]&&(l[m="state"]=b[3]);d&&f?(m=JSON.stringify(l),k+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
function Sb(a,b){var c,d,f,g=b[0],k=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var h=C[g],l={},m;for(m in h){var A=h[m],r=ca(m);if("xml"==r){for(r=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=r.exec(h[m]);){var va=d[2];va&&(h[va]||(A=A.replace(d[0],"")))}d=m=ba(m)}else"xsl"==r&&(f=m=ba(m));l[m]=A}a&&(l[m="css"]=a);b[2]&&(l[m="parms"]=b[2]);b[3]&&(l[m="state"]=b[3]);d&&f?(m=JSON.stringify(l),k+=".js",c=c[1]+"var resources="+m+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||||
"©"),m=k,h=null,l="data:application/javascript,",l=ma("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),m&&(h=document.createElement("a"),"string"!=typeof h.download&&(h=null)),h?(h.href=l,h.download=m,document.body.appendChild(h),h.click(),document.body.removeChild(h),c="Check your Downloads folder for "+m+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(m?" ("+m+")":"")+"."),c+=', copy it to your web server as "'+k+'", and then add the following to your web page:\n\n',
|
"©"),m=k,h=null,l="data:application/javascript,",l=ma("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),m&&(h=document.createElement("a"),"string"!=typeof h.download&&(h=null)),h?(h.href=l,h.download=m,document.body.appendChild(h),h.click(),document.body.removeChild(h),c="Check your Downloads folder for "+m+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(m?" ("+m+")":"")+"."),c+=', copy it to your web server as "'+k+'", and then add the following to your web page:\n\n',
|
||||||
c+='<div id="'+g+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+k+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+g+'","'+d+'","'+f+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",u(c)):u("Missing XML/XSL resources")}
|
c+='<div id="'+g+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+k+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+g+'","'+d+'","'+f+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",u(c)):u("Missing XML/XSL resources")}
|
||||||
window.savePC=function(a,b,c){var d=E("Computer",a),f=E("Debugger",a);if(d){var g=Cb(d,!0),k=d.o?JSON.stringify(d.o):null;b||(b="/versions/pcjs/1.21.7/pc"+(f?"-dbg":"")+".js");if(c&&c({state:g,Wa:k}))return!0;q(b,null,!0,function(c,d,f){Kb(c,d,f,[a,ba(b,!0),k,g])});return!0}u("Unable to identify machine '"+a+"'");return!1};})();
|
window.savePC=function(a,b,c){var d=E("Computer",a),f=E("Debugger",a);if(d){var g=Jb(d,!0),k=d.m?JSON.stringify(d.m):null;b||(b="/versions/pcjs/1.21.7/pc"+(f?"-dbg":"")+".js");if(c&&c({state:g,Wa:k}))return!0;q(b,null,!0,function(c,d,f){Rb(c,d,f,[a,ba(b,!0),k,g])});return!0}u("Unable to identify machine '"+a+"'");return!1};})();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue