The 8080 CPU now passes all the 8080 Exerciser tests
This commit is contained in:
parent
a64a6e7e05
commit
41f58a0035
7 changed files with 1231 additions and 1231 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -441,24 +441,18 @@ CPUDef.opMVIH = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opDAA = function()
|
CPUDef.opDAA = function()
|
||||||
{
|
{
|
||||||
var acc = this.regA;
|
var src = 0;
|
||||||
var fCarry = !!this.getCF();
|
var CF = this.getCF();
|
||||||
var fAuxCarry = !!this.getAF();
|
var AF = this.getAF();
|
||||||
if ((acc & 0xf) > 9 || fAuxCarry) {
|
if (AF || (this.regA & 0x0F) > 9) {
|
||||||
acc += 0x6;
|
src |= 0x06;
|
||||||
fAuxCarry = true;
|
|
||||||
} else {
|
|
||||||
fAuxCarry = false;
|
|
||||||
}
|
}
|
||||||
if (acc >= 0xa0 || fCarry) {
|
if (CF || this.regA >= 0x9A) {
|
||||||
acc += 0x60;
|
src |= 0x60;
|
||||||
fCarry = true;
|
CF = CPUDef.PS.CF;
|
||||||
} else {
|
|
||||||
fCarry = false;
|
|
||||||
}
|
}
|
||||||
this.resultZeroCarry = this.resultParitySign = this.regA = (acc & 0xff);
|
this.regA = this.addByte(src);
|
||||||
this.updateCF(fCarry);
|
this.updateCF(!!CF);
|
||||||
this.updateAF(fAuxCarry);
|
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2055,7 +2049,7 @@ CPUDef.opORAA = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPB = function()
|
CPUDef.opCMPB = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regB);
|
this.subByte(this.regB);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2066,7 +2060,7 @@ CPUDef.opCMPB = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPC = function()
|
CPUDef.opCMPC = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regC);
|
this.subByte(this.regC);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2077,7 +2071,7 @@ CPUDef.opCMPC = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPD = function()
|
CPUDef.opCMPD = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regD);
|
this.subByte(this.regD);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2088,7 +2082,7 @@ CPUDef.opCMPD = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPE = function()
|
CPUDef.opCMPE = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regE);
|
this.subByte(this.regE);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2099,7 +2093,7 @@ CPUDef.opCMPE = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPH = function()
|
CPUDef.opCMPH = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regH);
|
this.subByte(this.regH);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2110,7 +2104,7 @@ CPUDef.opCMPH = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPL = function()
|
CPUDef.opCMPL = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regL);
|
this.subByte(this.regL);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2121,7 +2115,7 @@ CPUDef.opCMPL = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPM = function()
|
CPUDef.opCMPM = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.getByte(this.getHL()));
|
this.subByte(this.getByte(this.getHL()));
|
||||||
this.nStepCycles -= 7;
|
this.nStepCycles -= 7;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2132,7 +2126,7 @@ CPUDef.opCMPM = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCMPA = function()
|
CPUDef.opCMPA = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.regA);
|
this.subByte(this.regA);
|
||||||
this.nStepCycles -= 4;
|
this.nStepCycles -= 4;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -2859,7 +2853,7 @@ CPUDef.opCM = function()
|
||||||
*/
|
*/
|
||||||
CPUDef.opCPI = function()
|
CPUDef.opCPI = function()
|
||||||
{
|
{
|
||||||
this.cmpByte(this.getPCByte());
|
this.subByte(this.getPCByte());
|
||||||
this.nStepCycles -= 7;
|
this.nStepCycles -= 7;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -749,34 +749,11 @@ CPUSim.prototype.andByte = function(src)
|
||||||
return this.resultZeroCarry;
|
return this.resultZeroCarry;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* cmpByte(src)
|
|
||||||
*
|
|
||||||
* We perform this operation using 8-bit two's complement arithmetic, by negating src, adding,
|
|
||||||
* and then inverting the resulting carry (resultZeroCarry ^ 0x100). This appears to mimic how
|
|
||||||
* the 8080 manages the Auxiliary Carry flag (AF).
|
|
||||||
*
|
|
||||||
* @this {CPUSim}
|
|
||||||
* @param {number} src
|
|
||||||
*/
|
|
||||||
CPUSim.prototype.cmpByte = function(src)
|
|
||||||
{
|
|
||||||
src = -src & 0xff;
|
|
||||||
this.resultAuxOverflow = this.regA ^ src;
|
|
||||||
/*
|
|
||||||
* The final AND with 0xff isn't strictly necessary, since the result of the comparison is
|
|
||||||
* not returned, but I like limiting the result variables to tidy 8-bit values (resultZeroCarry
|
|
||||||
* being the 9-bit exception).
|
|
||||||
*/
|
|
||||||
this.resultParitySign = (this.resultZeroCarry = (this.regA + src) ^ 0x100) & 0xff;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* decByte(b)
|
* decByte(b)
|
||||||
*
|
*
|
||||||
* We perform this operation using 8-bit two's complement arithmetic, by negating src, adding,
|
* We perform this operation using 8-bit two's complement arithmetic, by negating and then adding
|
||||||
* and then inverting the resulting carry (resultZeroCarry ^ 0x100). This appears to mimic how
|
* the implied src of 1. This appears to mimic how the 8080 manages the Auxiliary Carry flag (AF).
|
||||||
* the 8080 manages the Auxiliary Carry flag (AF).
|
|
||||||
*
|
*
|
||||||
* @this {CPUSim}
|
* @this {CPUSim}
|
||||||
* @param {number} b
|
* @param {number} b
|
||||||
|
|
@ -820,9 +797,32 @@ CPUSim.prototype.orByte = function(src)
|
||||||
/**
|
/**
|
||||||
* subByte(src)
|
* subByte(src)
|
||||||
*
|
*
|
||||||
* We perform this operation using 8-bit two's complement arithmetic, by negating src, adding,
|
* We perform this operation using 8-bit two's complement arithmetic, by inverting src, adding
|
||||||
* and then inverting the resulting carry (resultZeroCarry ^ 0x100). This appears to mimic how
|
* src + 1, and then inverting the resulting carry (resultZeroCarry ^ 0x100). This appears to mimic
|
||||||
* the 8080 manages the Auxiliary Carry flag (AF).
|
* how the 8080 manages the Auxiliary Carry flag (AF).
|
||||||
|
*
|
||||||
|
* This function is also used as a cmpByte() function; compare instructions simply ignore the
|
||||||
|
* return value.
|
||||||
|
*
|
||||||
|
* Example: A=66, SUI $10
|
||||||
|
*
|
||||||
|
* If we created the two's complement of 0x10 by negating it, there would just be one addition:
|
||||||
|
*
|
||||||
|
* 0110 0110 (0x66)
|
||||||
|
* + 1111 0000 (0xF0) (ie, -0x10)
|
||||||
|
* ---------
|
||||||
|
* 1 0101 0110 (0x56)
|
||||||
|
*
|
||||||
|
* But in order to mimic the 8080's AF flag, we must perform the two's complement of src in two steps,
|
||||||
|
* inverting it before the add, and then incrementing after the add; eg:
|
||||||
|
*
|
||||||
|
* 0110 0110 (0x66)
|
||||||
|
* + 1110 1111 (0xEF) (ie, ~0x10)
|
||||||
|
* ---------
|
||||||
|
* 1 0101 0101 (0x55)
|
||||||
|
* + 0000 0001 (0x01)
|
||||||
|
* ---------
|
||||||
|
* 1 0101 0110 (0x56)
|
||||||
*
|
*
|
||||||
* @this {CPUSim}
|
* @this {CPUSim}
|
||||||
* @param {number} src
|
* @param {number} src
|
||||||
|
|
@ -830,17 +830,20 @@ CPUSim.prototype.orByte = function(src)
|
||||||
*/
|
*/
|
||||||
CPUSim.prototype.subByte = function(src)
|
CPUSim.prototype.subByte = function(src)
|
||||||
{
|
{
|
||||||
src = -src & 0xff;
|
src ^= 0xff;
|
||||||
this.resultAuxOverflow = this.regA ^ src;
|
this.resultAuxOverflow = this.regA ^ src;
|
||||||
return this.resultParitySign = (this.resultZeroCarry = (this.regA + src) ^ 0x100) & 0xff;
|
return this.resultParitySign = (this.resultZeroCarry = (this.regA + src + 1) ^ 0x100) & 0xff;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* subByteBorrow(src)
|
* subByteBorrow(src)
|
||||||
*
|
*
|
||||||
* We perform this operation using 8-bit two's complement arithmetic, by negating (src + carry),
|
* We perform this operation using 8-bit two's complement arithmetic, using logic similar to subByte(),
|
||||||
* adding, and then inverting the resulting carry (resultZeroCarry ^ 0x100). This appears to mimic
|
* but changing the final increment to a conditional increment, because if the Carry flag (CF) is set, then
|
||||||
* how the 8080 manages the Auxiliary Carry flag (AF).
|
* we don't need to perform the increment at all.
|
||||||
|
*
|
||||||
|
* This mimics the behavior of subByte() when the Carry flag (CF) is clear, and hopefully also mimics how the
|
||||||
|
* 8080 manages the Auxiliary Carry flag (AF) when the Carry flag (CF) is set.
|
||||||
*
|
*
|
||||||
* @this {CPUSim}
|
* @this {CPUSim}
|
||||||
* @param {number} src
|
* @param {number} src
|
||||||
|
|
@ -848,9 +851,9 @@ CPUSim.prototype.subByte = function(src)
|
||||||
*/
|
*/
|
||||||
CPUSim.prototype.subByteBorrow = function(src)
|
CPUSim.prototype.subByteBorrow = function(src)
|
||||||
{
|
{
|
||||||
src = -(src + ((this.resultZeroCarry & 0x100)? 1 : 0)) & 0xff;
|
src ^= 0xff
|
||||||
this.resultAuxOverflow = this.regA ^ src;
|
this.resultAuxOverflow = this.regA ^ src;
|
||||||
return this.resultParitySign = (this.resultZeroCarry = (this.regA + src) ^ 0x100) & 0xff;
|
return this.resultParitySign = (this.resultZeroCarry = (this.regA + src + ((this.resultZeroCarry & 0x100)? 0 : 1)) ^ 0x100) & 0xff;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -2544,7 +2544,7 @@ X86CPU.prototype.getPF = function()
|
||||||
* getAF()
|
* getAF()
|
||||||
*
|
*
|
||||||
* To determine if there's been a carry out of the low 4 bits of an arithmetic operation,
|
* To determine if there's been a carry out of the low 4 bits of an arithmetic operation,
|
||||||
* we look at all the possible inputs for bit 4, and calculate AF = PS^(D^S):
|
* we look at all the possible inputs for bit 4, and calculate AF = A^(D^S).
|
||||||
*
|
*
|
||||||
* D S A D^S AF
|
* D S A D^S AF
|
||||||
* - - - --- --
|
* - - - --- --
|
||||||
|
|
|
||||||
|
|
@ -5,187 +5,189 @@ function ia(a,b,c){var d=0,e=a.length,f=0;for(void 0===c&&(c=function(a,b){retur
|
||||||
function la(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
|
function la(a,b){var c;if(Array.prototype.indexOf)return a.indexOf(b,c);c=c||0;0>c&&(c+=a.length);0>c&&(c=0);for(var d=a.length;c<d;c++)if(c in a&&a[c]===b)return c;return-1}
|
||||||
function ma(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
function ma(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||||
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function na(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function na(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||||
function oa(){return window?window.navigator.userAgent:""}function t(a){window&&window.alert(a)}function pa(a){var b=!1;window&&(b=window.confirm(a));return b}var qa=null;function ra(){if(null==qa){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}qa=a}return qa}
|
function oa(){return window?window.navigator.userAgent:""}function t(a){window&&window.alert(a)}function pa(a){var b=!1;window&&(b=window.confirm(a));return b}var qa=null;function wa(){if(null==qa){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}qa=a}return qa}
|
||||||
function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=oa();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 Aa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
function xa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=oa();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 Aa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||||
function Ba(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 Ca={init:[],show:[],exit:[]},Da=!1,Ga=!0;function Ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ia(a){Ca.init.push(a)}
|
function Ba(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 Ca={init:[],show:[],exit:[]},Fa=!1,Ga=!0;function Ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ma(a){Ca.init.push(a)}
|
||||||
function Na(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Oa(a){!Ga&&a?(Ga=!0,Da&&Pa("init")):Ga=a}function Pa(a){Ca[a]&&Na(Ca[a])}Ha("onload",function(){Da=!0;Na(Ca.init)});Ha("onpageshow",function(){Na(Ca.show)});Ha(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Na(Ca.exit)});
|
function Na(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function Oa(a){!Ga&&a?(Ga=!0,Fa&&Pa("init")):Ga=a}function Pa(a){Ca[a]&&Na(Ca[a])}Ha("onload",function(){Fa=!0;Na(Ca.init)});Ha("onpageshow",function(){Na(Ca.show)});Ha(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Na(Ca.exit)});
|
||||||
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Db=b.comment;this.Qb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Hb=this.id.substr(0,b),this.ab=this.id.substr(b+1)):this.ab=this.id;this[a]=c;this.w={Qa:!1,Na:!1,tb:!1,ha:!1,Pa:!1};this.ob=null;this.w.Pa=!1;this.T={};this.C=null;this.ga=d||0;w.push(this)}var Qa=void 0,Ra={};
|
function u(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Db=b.comment;this.Qb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Hb=this.id.substr(0,b),this.ab=this.id.substr(b+1)):this.ab=this.id;this[a]=c;this.w={Qa:!1,Na:!1,tb:!1,ha:!1,Pa:!1};this.ob=null;this.w.Pa=!1;this.T={};this.C=null;this.ga=d||0;w.push(this)}var Qa=void 0,Ra={};
|
||||||
if(window){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(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){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||||
function x(a,b){b||(b=u);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var w=[],Wa={};function Xa(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function Ya(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
function x(a,b){b||(b=u);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var w=[],Wa={};function Xa(a,b,c){Wa[a]&&b&&(Wa[a][b]=c)}function ab(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||||
function bb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
function db(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||||
function eb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.pa(g.type,g.binding,h,g.value),l=k.length}}}}
|
function eb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.pa(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||||
function A(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 A(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}
|
||||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},pa:function(a,b,c){switch(b){case "clear":return this.T[b]||(this.T[b]=c,c.onclick=function(a){return function(){a.T.print&&(a.T.print.value="")}}(this)),!0;case "print":return this.T[b]||(this.Fa=this.T[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),
|
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},pa:function(a,b,c){switch(b){case "clear":return this.T[b]||(this.T[b]=c,c.onclick=function(a){return function(){a.T.print&&(a.T.print.value="")}}(this)),!0;case "print":return this.T[b]||(this.qa=this.T[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.na=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.ab+": "+a)},na:function(a,b){b||t(a)},wa:function(){return this.w.ha=!0},va:function(a,b){b&&(this.w.ha=!1);return!0}};function fb(a,b,c,d,e,f){var h=!0;a.C&&(!0===h?h=0:null==h&&(h=a.ga),gb(a.C,a,b,c,d,e,f,h))}function hb(a,b){if(a.C){a===a.C?b|=0:b=b||a.ga;var c=a.C.ga&b;return!!b&&c===b||!!(c&a.C.Wb)}return!1}
|
this.na=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.ab+": "+a)},na:function(a,b){b||t(a)},xa:function(){return this.w.ha=!0},wa:function(a,b){b&&(this.w.ha=!1);return!0}};function fb(a,b,c,d,e,f){var h=!0;a.C&&(!0===h?h=0:null==h&&(h=a.ga),gb(a.C,a,b,c,d,e,f,h))}function hb(a,b){if(a.C){a===a.C?b|=0:b=b||a.ga;var c=a.C.ga&b;return!!b&&c===b||!!(c&a.C.Wb)}return!1}
|
||||||
function ib(a,b){if(a.w.tb)return a.w.Na&&(a.w.Na=!1),a.w.tb=!1;if(a.w.Pa)return a.g(a.toString()+" error"),!1;a.w.Na=b;return a.w.Na}function jb(a,b){a.w.Na&&(b?a.w.tb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.w.Na}function B(a){if(!a.w.Pa&&(a.w.Qa=!0,a.w.Qa)){var b=a.ob;a.ob=null;b&&b()}}function kb(a,b){b&&(a.w.Qa?b():a.ob=b);return a.w.Qa}function lb(a,b){a.w.Pa=!0;a.na(b)}
|
function ib(a,b){if(a.w.tb)return a.w.Na&&(a.w.Na=!1),a.w.tb=!1;if(a.w.Pa)return a.g(a.toString()+" error"),!1;a.w.Na=b;return a.w.Na}function jb(a,b){a.w.Na&&(b?a.w.tb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.w.Na}function B(a){if(!a.w.Pa&&(a.w.Qa=!0,a.w.Qa)){var b=a.ob;a.ob=null;b&&b()}}function kb(a,b){b&&(a.w.Qa?b():a.ob=b);return a.w.Qa}function lb(a,b){a.w.Pa=!0;a.na(b)}
|
||||||
var mb="undefined"!==typeof ArrayBuffer,nb=[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 mb="undefined"!==typeof ArrayBuffer,nb=[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 ob(a){u.call(this,"Panel",a,ob)}x(ob);m=ob.prototype;m.pa=function(a,b,c,d){return this.u&&this.u.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.A&&this.A.pa(a,b,c,d)||this.C&&this.C.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};m.Aa=function(a,b,c,d){this.u=a;this.D=b;this.b=c;this.C=d;this.A=pb(a,"Keyboard")};m.wa=function(a,b){b||qb();return!0};m.va=function(){return!0};m.qa=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 ob(a){u.call(this,"Panel",a,ob)}x(ob);m=ob.prototype;m.pa=function(a,b,c,d){return this.u&&this.u.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.A&&this.A.pa(a,b,c,d)||this.C&&this.C.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};m.Ba=function(a,b,c,d){this.u=a;this.D=b;this.b=c;this.C=d;this.A=pb(a,"Keyboard")};m.xa=function(a,b){b||qb();return!0};m.wa=function(){return!0};m.ra=function(){};
|
||||||
function qb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<w.length;h++)if(w[h].id===f){f=w[h];break a}f=null}f||(a=!0,f=new ob(e));eb(f,d);a&&B(f)}}Ia(qb);
|
function qb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<w.length;h++)if(w[h].id===f){f=w[h];break a}f=null}f||(a=!0,f=new ob(e));eb(f,d);a&&B(f)}}Ma(qb);
|
||||||
function rb(a,b,c){u.call(this,"Bus",a,rb);this.b=b;this.C=c;this.U=a.busWidth||16;this.Y=Math.pow(2,this.U);this.H=this.Y-1|0;this.Z=16>=this.U?10:20>=this.U?12:24>=this.U?14:15;this.ma=1<<this.Z;this.aa=this.ma>>2;this.F=this.ma-1;this.K=this.Y/this.ma|0;this.W=this.K-1;this.u=[];this.A=[];this.I=this.J=!1;this.ca=[];this.ea=[];a=new F;sb(a,this.C);this.D=Array(this.K);for(b=0;b<this.K;b++)this.D[b]=a;a=this.b;b=this.D;c=this.Z;var d=this.H;a.la=b;a.Z=c;a.ma=1<<a.Z;a.H=a.ma-1;a.aa=b.length;a.Y=
|
function rb(a,b,c){u.call(this,"Bus",a,rb);this.b=b;this.C=c;this.U=a.busWidth||16;this.Y=Math.pow(2,this.U);this.H=this.Y-1|0;this.Z=16>=this.U?10:20>=this.U?12:24>=this.U?14:15;this.ma=1<<this.Z;this.aa=this.ma>>2;this.F=this.ma-1;this.K=this.Y/this.ma|0;this.W=this.K-1;this.u=[];this.A=[];this.I=this.J=!1;this.ba=[];this.fa=[];a=new C;sb(a,this.C);this.D=Array(this.K);for(b=0;b<this.K;b++)this.D[b]=a;a=this.b;b=this.D;c=this.Z;var d=this.H;a.la=b;a.Z=c;a.ma=1<<a.Z;a.H=a.ma-1;a.aa=b.length;a.Y=
|
||||||
a.aa-1;a.K=d;B(this)}x(rb);rb.prototype.reset=function(){};rb.prototype.wa=function(a,b){b||this.reset();return!0};function tb(a,b,c,d){for(var e=b>>>a.Z;0<c&&e<a.D.length;){var f=a.D[e],h=e*a.ma,g=a.ma-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.B)return f.kb+=f.B-b,f.B=b,!0;if(b>=f.B+f.kb){g=f.size-(b-h);g>c&&(g=c);f.kb=b-f.B+g;b=h+a.ma;c-=g;e++;continue}}return ub(1,b,c)}b=new F(b,g,a.ma,d);sb(b,a.C,f);a.D[e++]=b;b=h+a.ma;c-=g}return 0>=c?!0:ub(2,b,c)}
|
a.aa-1;a.K=d;B(this)}x(rb);rb.prototype.reset=function(){};rb.prototype.xa=function(a,b){b||this.reset();return!0};function tb(a,b,c,d){for(var e=b>>>a.Z;0<c&&e<a.D.length;){var f=a.D[e],h=e*a.ma,g=a.ma-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.B)return f.kb+=f.B-b,f.B=b,!0;if(b>=f.B+f.kb){g=f.size-(b-h);g>c&&(g=c);f.kb=b-f.B+g;b=h+a.ma;c-=g;e++;continue}}return ub(1,b,c)}b=new C(b,g,a.ma,d);sb(b,a.C,f);a.D[e++]=b;b=h+a.ma;c-=g}return 0>=c?!0:ub(2,b,c)}
|
||||||
rb.prototype.V=function(a){return this.D[(a&this.H)>>>this.Z].Ka(a&this.F,a)};function vb(a,b){return a.D[(b&a.H)>>>a.Z].ib(b&a.F,b)}function wb(a,b,c){a.D[(b&a.H)>>>a.Z].lb(b&a.F,c&255,b)}function Eb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
|
rb.prototype.V=function(a){return this.D[(a&this.H)>>>this.Z].Ka(a&this.F,a)};function vb(a,b){return a.D[(b&a.H)>>>a.Z].ib(b&a.F,b)}function wb(a,b,c){a.D[(b&a.H)>>>a.Z].lb(b&a.F,c&255,b)}function Fb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
|
||||||
function Fb(a,b){for(var c=1,d=0,e=0;0<c;){var f=a.u[b],h=a.ca[b]||1,g=1==h?255:2==h?65535:-1,k=g;void 0!==f?(f[0]&&(k=f[0](b,void 0),void 0===k?k=g:k&=g),a.C&&a.I!=f[1]&&Gb(a.C,b,k)):a.C&&(gb(a.C,a,b,null,void 0),a.I&&Gb(a.C,b,k));d|=k<<e;e+=h<<3;b+=h;c-=h}return d}function Hb(a,b){if(void 0===b)return a.J=!a.J,a.J;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
|
function Gb(a,b){for(var c=1,d=0,e=0;0<c;){var f=a.u[b],h=a.ba[b]||1,g=1==h?255:2==h?65535:-1,k=g;void 0!==f?(f[0]&&(k=f[0](b,void 0),void 0===k?k=g:k&=g),a.C&&a.I!=f[1]&&Hb(a.C,b,k)):a.C&&(gb(a.C,a,b,null,void 0),a.I&&Hb(a.C,b,k));d|=k<<e;e+=h<<3;b+=h;c-=h}return d}function Ib(a,b){if(void 0===b)return a.J=!a.J,a.J;void 0===a.A[b]&&(a.A[b]=[null,!1]);a.A[b][1]=!a.A[b][1];return a.A[b][1]}
|
||||||
function Ib(a,b,c){for(var d=1,e=0;0<d;){var f=a.A[b],h=a.ea[b]||1,g=1==h?255:2==h?65535:-1,g=(c>>>=e)&g;if(void 0!==f){if(f[0])f[0](b,g,void 0);a.C&&a.J!=f[1]&&Jb(a.C,b,g)}else a.C&&(gb(a.C,a,b,g,void 0),a.J&&Jb(a.C,b,g));e+=h<<3;b+=h;d-=h}}function ub(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Kb;if(mb){var Lb=new ArrayBuffer(2);(new DataView(Lb)).setUint16(0,256,!0);Kb=256===(new Uint16Array(Lb))[0]}else Kb=!1;var Mb=Kb;
|
function Jb(a,b,c){for(var d=1,e=0;0<d;){var f=a.A[b],h=a.fa[b]||1,g=1==h?255:2==h?65535:-1,g=(c>>>=e)&g;if(void 0!==f){if(f[0])f[0](b,g,void 0);a.C&&a.J!=f[1]&&Kb(a.C,b,g)}else a.C&&(gb(a.C,a,b,g,void 0),a.J&&Kb(a.C,b,g));e+=h<<3;b+=h;d-=h}}function ub(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Lb;if(mb){var Mb=new ArrayBuffer(2);(new DataView(Mb)).setUint16(0,256,!0);Lb=256===(new Uint16Array(Mb))[0]}else Lb=!1;var Nb=Lb;
|
||||||
function F(a,b,c,d){this.id=Nb+=2;this.b=null;this.B=a;this.kb=b;this.size=c||0;this.type=d||Ob;this.u=d==Pb;sb(this);this.za=this.Yb=!1;if(c)if(mb)this.H=new ArrayBuffer(c),this.I=new DataView(this.H,0,c),this.D=new Uint8Array(this.H,0,c),this.K=new Uint16Array(this.H,0,c>>1),this.b=new Int32Array(this.H,0,c>>2),Qb(this,Mb?Rb:Sb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Qb(this,Tb)}else Qb(this)}var Ob=0,Pb=2,Ub=["NONE","RAM","ROM","VIDEO","H/W"],Nb=0;
|
function C(a,b,c,d){this.id=Ob+=2;this.b=null;this.B=a;this.kb=b;this.size=c||0;this.type=d||Pb;this.u=d==Qb;sb(this);this.Aa=this.Yb=!1;if(c)if(mb)this.H=new ArrayBuffer(c),this.I=new DataView(this.H,0,c),this.D=new Uint8Array(this.H,0,c),this.K=new Uint16Array(this.H,0,c>>1),this.b=new Int32Array(this.H,0,c>>2),Rb(this,Nb?Sb:Tb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Rb(this,Ub)}else Rb(this)}var Pb=0,Qb=2,Vb=["NONE","RAM","ROM","VIDEO","H/W"],Ob=0;
|
||||||
F.prototype={constructor:F,parent:null,save:function(){var a,b;if(mb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.I.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(mb)for(b=0;b<a.length;b++)this.I.setInt32(b<<2,a[b],!0);else this.b=a;return this.za=!0}return!1},Ea:function(a,b){b?0===this.A++&&Vb(this,Wb,!1):0===this.T++&&Xb(this,Wb,!1)},U:function(){this.C&&hb(this.C,129)&&this.C.message("attempt to read invalid block %"+q(this.B),!0);
|
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(mb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.I.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(mb)for(b=0;b<a.length;b++)this.I.setInt32(b<<2,a[b],!0);else this.b=a;return this.Aa=!0}return!1},Fa:function(a,b){b?0===this.A++&&Wb(this,Xb,!1):0===this.T++&&Yb(this,Xb,!1)},U:function(){this.C&&hb(this.C,129)&&this.C.message("attempt to read invalid block %"+q(this.B),!0);
|
||||||
return 255},F:function(a,b){this.C&&hb(this.C,129)&&this.C.message("attempt to write "+r(b)+" to invalid block %"+q(this.B),!0)},W:function(a,b){return this.Ka(a++,b++)|this.Ka(a,b)<<8},J:function(a,b,c){this.Za(a++,b&255,c++);this.Za(a,b>>8,c)},ea:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},sa: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},Ca:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.za=!0},ab:function(a,
|
return 255},F:function(a,b){this.C&&hb(this.C,129)&&this.C.message("attempt to write "+r(b)+" to invalid block %"+q(this.B),!0)},W:function(a,b){return this.Ka(a++,b++)|this.Ka(a,b)<<8},J:function(a,b,c){this.Za(a++,b&255,c++);this.Za(a,b>>8,c)},fa:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ta:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},Da:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Aa=!0},ab: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.za=!0},aa:function(a,b){if(this.C&&null!=this.B){var c=this.C;Yb(c,this.B+a,1,c.ca)&&c.da(!0)}return this.ib(a,b)},ka:function(a,b){if(this.C&&null!=this.B){var c=this.C;Yb(c,this.B+a,2,c.ca)&&c.da(!0)}return this.yb(a,b)},ya:function(a,b,c){if(this.C&&null!=this.B){var d=this.C;Yb(d,this.B+a,1,d.I)&&d.da(!0)}this.u?this.F(a,b,c):this.lb(a,b,c)},Ma: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.Aa=!0},aa:function(a,b){if(this.C&&null!=this.B){var c=this.C;Zb(c,this.B+a,1,c.ba)&&c.ea(!0)}return this.ib(a,b)},ka:function(a,b){if(this.C&&null!=this.B){var c=this.C;Zb(c,this.B+a,2,c.ba)&&c.ea(!0)}return this.yb(a,b)},za:function(a,b,c){if(this.C&&null!=this.B){var d=this.C;Zb(d,this.B+a,1,d.I)&&d.ea(!0)}this.u?this.F(a,b,c):this.lb(a,b,c)},Ma:function(a,
|
||||||
b,c){if(this.C&&null!=this.B){var d=this.C;Yb(d,this.B+a,2,d.I)&&d.da(!0)}this.u?this.F(a,b,c):this.zb(a,b,c)},Y:function(a){return this.D[a]},ca:function(a){return this.D[a]},ja:function(a){return this.I.getUint16(a,!0)},ra:function(a){return a&1?this.D[a]|this.D[a+1]<<8:this.K[a>>1]},ta:function(a,b){this.D[a]=b;this.za=!0},Ba:function(a,b){this.D[a]=b;this.za=!0},Da:function(a,b){this.I.setUint16(a,b,!0);this.za=!0},$a:function(a,b){a&1?(this.D[a]=b,this.D[a+1]=b>>8):this.K[a>>1]=b;this.za=!0}};
|
b,c){if(this.C&&null!=this.B){var d=this.C;Zb(d,this.B+a,2,d.I)&&d.ea(!0)}this.u?this.F(a,b,c):this.zb(a,b,c)},Y:function(a){return this.D[a]},ba:function(a){return this.D[a]},ja:function(a){return this.I.getUint16(a,!0)},sa:function(a){return a&1?this.D[a]|this.D[a+1]<<8:this.K[a>>1]},ua:function(a,b){this.D[a]=b;this.Aa=!0},Ca:function(a,b){this.D[a]=b;this.Aa=!0},Ea:function(a,b){this.I.setUint16(a,b,!0);this.Aa=!0},$a:function(a,b){a&1?(this.D[a]=b,this.D[a+1]=b>>8):this.K[a>>1]=b;this.Aa=!0}};
|
||||||
function sb(a,b,c){a.C=b;a.T=a.A=0;c&&((a.T=c.T)&&Xb(a,Wb,!1),(a.A=c.A)&&Vb(a,Wb,!1))}function Zb(a,b){b?0===--a.A&&(a.Za=a.u?a.F:a.lb,a.Tb=a.u?a.J:a.zb):0===--a.T&&(a.Ka=a.ib,a.Rb=a.yb)}function Vb(a,b,c){c&&a.A||(a.Za=!a.u&&b[2]||a.F,a.Tb=!a.u&&b[3]||a.J);if(c||void 0===c)a.lb=b[2]||a.F,a.zb=b[3]||a.J}function Xb(a,b,c){c&&a.T||(a.Ka=b[0]||a.U,a.Rb=b[1]||a.W);if(c||void 0===c)a.ib=b[0]||a.U,a.yb=b[1]||a.W}function Qb(a,b){b||(b=$b);Xb(a,b,void 0);Vb(a,b,void 0)}
|
function sb(a,b,c){a.C=b;a.T=a.A=0;c&&((a.T=c.T)&&Yb(a,Xb,!1),(a.A=c.A)&&Wb(a,Xb,!1))}function $b(a,b){b?0===--a.A&&(a.Za=a.u?a.F:a.lb,a.Tb=a.u?a.J:a.zb):0===--a.T&&(a.Ka=a.ib,a.Rb=a.yb)}function Wb(a,b,c){c&&a.A||(a.Za=!a.u&&b[2]||a.F,a.Tb=!a.u&&b[3]||a.J);if(c||void 0===c)a.lb=b[2]||a.F,a.zb=b[3]||a.J}function Yb(a,b,c){c&&a.T||(a.Ka=b[0]||a.U,a.Rb=b[1]||a.W);if(c||void 0===c)a.ib=b[0]||a.U,a.yb=b[1]||a.W}function Rb(a,b){b||(b=ac);Yb(a,b,void 0);Wb(a,b,void 0)}
|
||||||
var $b=[],Tb=[F.prototype.ea,F.prototype.sa,F.prototype.Ca,F.prototype.ab],Wb=[F.prototype.aa,F.prototype.ka,F.prototype.ya,F.prototype.Ma];if(mb)var Sb=[F.prototype.Y,F.prototype.ja,F.prototype.ta,F.prototype.Da],Rb=[F.prototype.ca,F.prototype.ra,F.prototype.Ba,F.prototype.$a];
|
var ac=[],Ub=[C.prototype.fa,C.prototype.ta,C.prototype.Da,C.prototype.ab],Xb=[C.prototype.aa,C.prototype.ka,C.prototype.za,C.prototype.Ma];if(mb)var Tb=[C.prototype.Y,C.prototype.ja,C.prototype.ua,C.prototype.Ea],Sb=[C.prototype.ba,C.prototype.sa,C.prototype.Ca,C.prototype.$a];
|
||||||
function ac(a,b){u.call(this,"CPU",a,ac,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Xa=c;this.i.qb=0;this.i.Ja=d;this.i.vb=Math.round(this.i.Xa/1E4)/100;this.i.Ha=this.i.vb*this.i.Ja;this.w.ia=!1;this.w.ub=!1;this.w.Ib=a.autoStart;this.w.Jb=!1;this.w.Oa=!1;this.i.bb=this.i.Ua=0;this.i.cb=a.csStart;this.i.Ta=a.csInterval;this.i.Va=a.csStop;this.ka=this.La.bind(this);B(this)}x(ac);var bc=["power","reset"];m=ac.prototype;
|
function bc(a,b){u.call(this,"CPU",a,bc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Xa=c;this.i.qb=0;this.i.Ja=d;this.i.vb=Math.round(this.i.Xa/1E4)/100;this.i.Ha=this.i.vb*this.i.Ja;this.w.ia=!1;this.w.ub=!1;this.w.Ib=a.autoStart;this.w.Jb=!1;this.w.Oa=!1;this.i.bb=this.i.Ua=0;this.i.cb=a.csStart;this.i.Ta=a.csInterval;this.i.Va=a.csStop;this.ka=this.La.bind(this);B(this)}x(bc);var nc=["power","reset"];m=bc.prototype;
|
||||||
m.Aa=function(a,b,c,d){this.u=a;this.D=b;this.C=d;for(b=0;b<bc.length;b++)(c=this.T[bc[b]])&&this.u.pa(null,bc[b],c);this.ya=(b=pb(a,"Video"))&&Math.max(b.ya,b.Zb)||60;this.W=pb(a,"ChipSet");a=lc(a,"autoStart");null!=a&&(this.w.Ib="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.i.qb=0};m.save=function(){return null};m.restore=function(){return!1};
|
m.Ba=function(a,b,c,d){this.u=a;this.D=b;this.C=d;for(b=0;b<nc.length;b++)(c=this.T[nc[b]])&&this.u.pa(null,nc[b],c);this.za=(b=pb(a,"Video"))&&Math.max(b.za,b.Zb)||60;this.W=pb(a,"ChipSet");a=oc(a,"autoStart");null!=a&&(this.w.Ib="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.i.qb=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||||
m.wa=function(a,b){if(!b){if(a&&this.restore){mc(this);if(!this.restore(a))return!1;nc(this)}else this.reset();if(this.C){var c=this.C;c.g("Type ? for help with PC8080 Debugger commands");c.qa();if(c.rb){var d=c.rb;c.rb=null;oc(c,d)}}else this.g("No debugger detected")}G(this);return!0};m.va=function(a){return a?this.save():!0};function pc(a){(a.w.Ib||!a.C&&void 0===a.T.run)&&a.La(!0)}m.Mb=function(){return 0};
|
m.xa=function(a,b){if(!b){if(a&&this.restore){pc(this);if(!this.restore(a))return!1;qc(this)}else this.reset();if(this.C){var c=this.C;c.g("Type ? for help with PC8080 Debugger commands");c.ra();if(c.rb){var d=c.rb;c.rb=null;rc(c,d)}}else this.g("No debugger detected")}sc(this);return!0};m.wa=function(a){return a?this.save():!0};function tc(a){(a.w.Ib||!a.C&&void 0===a.T.run)&&a.La(!0)}m.Mb=function(){return 0};
|
||||||
function nc(a){void 0===a.i.cb&&(a.i.cb=0);void 0===a.i.Ta&&(a.i.Ta=-1);void 0===a.i.Va&&(a.i.Va=-1);a.w.Oa=0<=a.i.cb&&0<a.i.Ta;a.w.Oa&&(a.i.bb=0,a.i.Ua=a.i.cb-a.J)}function qc(a,b){if(a.w.Oa){var c=!1;a.i.bb=a.i.bb+a.Mb()|0;a.i.Ua-=b;0>=a.i.Ua&&(a.i.Ua+=a.i.Ta,c=!0);0<=a.i.Va&&a.i.Va<=rc(a)&&(a.i.Ta=a.i.Va=-1,nc(a),a.da(),c=!0);c&&a.g(rc(a)+" cycles: checksum="+q(a.i.bb))}}
|
function qc(a){void 0===a.i.cb&&(a.i.cb=0);void 0===a.i.Ta&&(a.i.Ta=-1);void 0===a.i.Va&&(a.i.Va=-1);a.w.Oa=0<=a.i.cb&&0<a.i.Ta;a.w.Oa&&(a.i.bb=0,a.i.Ua=a.i.cb-a.J)}function uc(a,b){if(a.w.Oa){var c=!1;a.i.bb=a.i.bb+a.Mb()|0;a.i.Ua-=b;0>=a.i.Ua&&(a.i.Ua+=a.i.Ta,c=!0);0<=a.i.Va&&a.i.Va<=vc(a)&&(a.i.Ta=a.i.Va=-1,qc(a),a.ea(),c=!0);c&&a.g(vc(a)+" cycles: checksum="+q(a.i.bb))}}
|
||||||
m.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.T[b]=c;a=!0;break;case "run":this.T[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.w.ha)a=!0;else{var b=null,c,g=Ya(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.w.Qa);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.w.ha);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.w.Qa?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.w.ia?d.da(!0):d.La(!0))};a=
|
m.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.T[b]=c;a=!0;break;case "run":this.T[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.w.ha)a=!0;else{var b=null,c,g=ab(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.w.Qa);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.w.ha);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.w.Qa?"powered yet":"ready yet"+(b.ob?" (waiting for notification)":""))+".");a=!1}a&&(d.w.ia?d.ea(!0):d.La(!0))};a=
|
||||||
!0;break;case "speed":this.T[b]=c;a=!0;break;case "setSpeed":this.T[b]=c,c.onclick=function(){sc(d,d.i.Ja<<1,!0)},c.textContent=this.i.Ha.toFixed(2)+"Mhz",a=!0}return a};function tc(a,b,c){a.J+=b;c&&(a.F=a.b=0)}
|
!0;break;case "speed":this.T[b]=c;a=!0;break;case "setSpeed":this.T[b]=c,c.onclick=function(){wc(d,d.i.Ja<<1,!0)},c.textContent=this.i.Ha.toFixed(2)+"Mhz",a=!0}return a};function xc(a,b,c){a.J+=b;c&&(a.F=a.b=0)}
|
||||||
function uc(a,b){var c=30;c<a.ya&&(c=a.ya);2>c&&(c=2);var d=1;b&&1<a.i.Ja&&a.i.Ga&&(d=a.i.Ga/a.i.vb);a.i.Nb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.Xa/c*d);a.i.wb=Math.floor(a.i.Xa/30*d);a.i.Pb=Math.floor(a.i.Xa/a.ya*d);a.i.Ob=Math.floor(a.i.Xa/2*d);b||(a.i.Wa=a.i.wb,a.i.fb=a.i.Pb,a.i.eb=a.i.Ob);a.i.xb=0}function rc(a){return a.J+a.I+a.F-a.b}function mc(a){a.i.Ga=0;a.J=a.I=a.F=a.b=0;nc(a);sc(a,1)}
|
function yc(a,b){var c=30;c<a.za&&(c=a.za);2>c&&(c=2);var d=1;b&&1<a.i.Ja&&a.i.Ga&&(d=a.i.Ga/a.i.vb);a.i.Nb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.Xa/c*d);a.i.wb=Math.floor(a.i.Xa/30*d);a.i.Pb=Math.floor(a.i.Xa/a.za*d);a.i.Ob=Math.floor(a.i.Xa/2*d);b||(a.i.Wa=a.i.wb,a.i.fb=a.i.Pb,a.i.eb=a.i.Ob);a.i.xb=0}function vc(a){return a.J+a.I+a.F-a.b}function pc(a){a.i.Ga=0;a.J=a.I=a.F=a.b=0;qc(a);wc(a,1)}
|
||||||
function sc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ga/a.i.Ha?b=1:d=!0;a.i.Ja=b;b=a.i.vb*a.i.Ja;if(a.i.Ha!=b){a.i.Ha=b;b=a.i.Ha.toFixed(2)+"Mhz";var e=a.T.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.jb()}tc(a,a.I);a.I=0;a.i.Sa=ja();a.i.Ia=0;uc(a);return d}
|
function wc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ga/a.i.Ha?b=1:d=!0;a.i.Ja=b;b=a.i.vb*a.i.Ja;if(a.i.Ha!=b){a.i.Ha=b;b=a.i.Ha.toFixed(2)+"Mhz";var e=a.T.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.u&&a.u.jb()}xc(a,a.I);a.I=0;a.i.Sa=ja();a.i.Ia=0;yc(a);return d}
|
||||||
m.La=function(a){if(ib(this,!0)){if(!this.w.ia){sc(this);this.u&&this.u.start(this.i.Sa,rc(this));this.w.ia=!0;this.w.ub=!0;this.W&&this.W.mc();var b=this.T.run;b&&(b.textContent="Halt");this.u&&(this.u.qa(!0),a&&this.u.jb(!0))}this.i.xb>=this.i.Xa&&uc(this,!0);this.i.gb=0;this.i.pb=ja();this.i.Ia&&(a=this.i.pb-this.i.Ia,a>this.i.Nb&&(this.i.Sa+=a,this.i.Sa>this.i.pb&&(this.i.Sa=this.i.pb)));try{do{var c=this.w.Oa?1:this.i.hc;try{this.Ya(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.F-this.b;
|
m.La=function(a){if(ib(this,!0)){if(!this.w.ia){wc(this);this.u&&this.u.start(this.i.Sa,vc(this));this.w.ia=!0;this.w.ub=!0;this.W&&this.W.mc();var b=this.T.run;b&&(b.textContent="Halt");this.u&&(this.u.ra(!0),a&&this.u.jb(!0))}this.i.xb>=this.i.Xa&&yc(this,!0);this.i.gb=0;this.i.pb=ja();this.i.Ia&&(a=this.i.pb-this.i.Ia,a>this.i.Nb&&(this.i.Sa+=a,this.i.Sa>this.i.pb&&(this.i.Sa=this.i.pb)));try{do{var c=this.w.Oa?1:this.i.hc;try{this.Ya(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.F-this.b;
|
||||||
this.I+=d;this.i.gb+=d;tc(this,0,!0);qc(this,d);this.i.fb-=d;0>=this.i.fb&&(this.i.fb+=this.i.Pb,this.u&&vc(this.u,this.i.qb++),this.i.qb>this.ya&&(this.i.qb=0));this.i.eb-=d;0>=this.i.eb&&(this.i.eb+=this.i.Ob,this.u&&this.u.qa());this.i.Wa-=d;if(0>=this.i.Wa){this.i.Wa+=this.i.wb;break}}while(this.w.ia)}catch(e){this.da();G(this);this.u&&this.u.stop(ja(),rc(this));ib(this,!1);lb(this,e.stack||e.message);return}c=setTimeout;d=this.ka;this.i.Ia=ja();a=this.i.Nb;this.i.gb&&(a=Math.round(a*this.i.gb/
|
this.I+=d;this.i.gb+=d;xc(this,0,!0);uc(this,d);this.i.fb-=d;0>=this.i.fb&&(this.i.fb+=this.i.Pb,this.u&&zc(this.u,this.i.qb++),this.i.qb>this.za&&(this.i.qb=0));this.i.eb-=d;0>=this.i.eb&&(this.i.eb+=this.i.Ob,this.u&&this.u.ra());this.i.Wa-=d;if(0>=this.i.Wa){this.i.Wa+=this.i.wb;break}}while(this.w.ia)}catch(e){this.ea();sc(this);this.u&&this.u.stop(ja(),vc(this));ib(this,!1);lb(this,e.stack||e.message);return}c=setTimeout;d=this.ka;this.i.Ia=ja();a=this.i.Nb;this.i.gb&&(a=Math.round(a*this.i.gb/
|
||||||
this.i.wb));a-=this.i.Ia-this.i.pb;if(b=this.i.Ia-this.i.Sa)this.i.Ga=Math.round(this.I/(10*b))/100,864E5<=b&&(this.J=0,sc(this));if(0>a||this.i.Ga<this.i.Ha)a=0;this.i.xb+=this.i.gb;this.i.Ia+=a;c(d,a)}else G(this),this.u&&this.u.stop(ja(),rc(this))};m.Ya=function(){return 0};m.da=function(a){jb(this,!0);this.F-=this.b;this.b=0;tc(this,this.I);this.I=0;if(this.w.ia){this.w.ia=!1;this.W&&this.W.mc();var b=this.T.run;b&&(b.textContent="Run")}this.w.nb=a};
|
this.i.wb));a-=this.i.Ia-this.i.pb;if(b=this.i.Ia-this.i.Sa)this.i.Ga=Math.round(this.I/(10*b))/100,864E5<=b&&(this.J=0,wc(this));if(0>a||this.i.Ga<this.i.Ha)a=0;this.i.xb+=this.i.gb;this.i.Ia+=a;c(d,a)}else sc(this),this.u&&this.u.stop(ja(),vc(this))};m.Ya=function(){return 0};m.ea=function(a){jb(this,!0);this.F-=this.b;this.b=0;xc(this,this.I);this.I=0;if(this.w.ia){this.w.ia=!1;this.W&&this.W.mc();var b=this.T.run;b&&(b.textContent="Run")}this.w.nb=a};
|
||||||
function G(a,b){a.u&&(vc(a.u,-1),a.u.qa(b))}function wc(a){this.Ra=a.model||8080;ac.call(this,a,1E6);this.ca=xc;mc(this);this.w.nb=this.w.Xb=!1;this.ja=0;this.la=[];this.Z=this.ma=this.H=this.aa=this.Y=this.K=0;this.U=[];this.ea=0;yc(this)}x(wc,ac);function zc(a,b){a.U.push(b)}m=wc.prototype;m.reset=function(){this.w.ia&&this.da();yc(this);mc(this);this.w.Pa=!1;this.parent.reset.call(this)};function yc(a){a.j=0;a.L=0;a.P=0;a.M=0;a.R=0;a.N=0;a.S=0;a.ba=0;H(a,a.ea);Ac(a,0);a.A=0}
|
function sc(a,b){a.u&&(zc(a.u,-1),a.u.ra(b))}function Ac(a){this.Ra=a.model||8080;bc.call(this,a,1E6);this.ba=Bc;pc(this);this.w.nb=this.w.Xb=!1;this.ja=0;this.la=[];this.Z=this.ma=this.H=this.aa=this.Y=this.K=0;this.U=[];this.fa=0;Cc(this)}x(Ac,bc);function Dc(a,b){a.U.push(b)}m=Ac.prototype;m.reset=function(){this.w.ia&&this.ea();Cc(this);pc(this);this.w.Pa=!1;this.parent.reset.call(this)};function Cc(a){a.j=0;a.L=0;a.M=0;a.N=0;a.O=0;a.P=0;a.S=0;a.ca=0;G(a,a.fa);Ec(a,0);a.A=0}
|
||||||
function Bc(a,b){a.ea=b;H(a,b)}m.Mb=function(){var a=this.j+this.L+this.P+this.M+this.R+this.N+this.S|0;return a=a+this.ba+this.O+Cc(this)|0};
|
function Fc(a,b){a.fa=b;G(a,b)}m.Mb=function(){var a=this.j+this.L+this.M+this.N+this.O+this.P+this.S|0;return a=a+this.ca+this.R+Gc(this)|0};
|
||||||
m.save=function(){var a=new I(this);K(a,0,[this.j,this.L,this.P,this.M,this.R,this.N,this.S,this.ba,this.O,Cc(this)]);K(a,1,[this.A,this.J,this.i.Ja]);for(var b=this.D,c=0,d=[],e=0;e<b.K;e++){var f=b.D[e];if(f.za||f.Yb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<f.length){f=l;break a}}d[h]=f}}K(a,2,d);return a.data()};
|
m.save=function(){var a=new H(this);I(a,0,[this.j,this.L,this.M,this.N,this.O,this.P,this.S,this.ca,this.R,Gc(this)]);I(a,1,[this.A,this.J,this.i.Ja]);for(var b=this.D,c=0,d=[],e=0;e<b.K;e++){var f=b.D[e];if(f.Aa||f.Yb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<f.length){f=l;break a}}d[h]=f}}I(a,2,d);return a.data()};
|
||||||
m.restore=function(a){var b=a[0];this.j=b[0];this.L=b[1];this.P=b[2];this.M=b[3];this.R=b[4];this.N=b[5];this.S=b[6];this.ba=b[7]&65535;H(this,b[8]);Ac(this,b[9]);b=a[1];this.A=b[0];this.J=b[1];sc(this,b[3]);a:{b=this.D;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.aa){for(var f=0,h=Array(b.aa),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.D[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
m.restore=function(a){var b=a[0];this.j=b[0];this.L=b[1];this.M=b[2];this.N=b[3];this.O=b[4];this.P=b[5];this.S=b[6];this.ca=b[7]&65535;G(this,b[8]);Ec(this,b[9]);b=a[1];this.A=b[0];this.J=b[1];wc(this,b[3]);a:{b=this.D;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.aa){for(var f=0,h=Array(b.aa),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.D[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
m.pa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.T[b]=c;this.ja++;d=!0;break;default:d=this.parent.pa.call(this,a,b,c)}return d};function Dc(a){return a.L<<8|a.P}function Ec(a,b){a.L=b>>8&255;a.P=b&255}function Fc(a){return a.M<<8|a.R}function Gc(a,b){a.M=b>>8&255;a.R=b&255}function L(a){return a.N<<8|a.S}
|
m.pa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.T[b]=c;this.ja++;d=!0;break;default:d=this.parent.pa.call(this,a,b,c)}return d};function Hc(a){return a.L<<8|a.M}function Ic(a,b){a.L=b>>8&255;a.M=b&255}function Jc(a){return a.N<<8|a.O}function Kc(a,b){a.N=b>>8&255;a.O=b&255}function J(a){return a.P<<8|a.S}
|
||||||
function M(a,b){a.N=b>>8&255;a.S=b&255}function H(a,b){a.O=b&65535}function Hc(a){return a.G&256?1:0}function Ic(a){return nb[a.X&255]?4:0}function Jc(a){return(a.X^a.fa)&16?16:0}function Kc(a){return a.G&255?0:64}function Lc(a){return a.X&128?128:0}function Cc(a){return a.oa&-214|Lc(a)|Kc(a)|Jc(a)|Ic(a)|Hc(a)}function Ac(a,b){a.G=a.X=a.fa=0;b&1&&(a.G|=256);b&4||(a.X|=1);b&16&&(a.fa|=16);b&64||(a.G|=255);b&128&&(a.X^=192);a.oa=a.oa&-513|b&512|2}
|
function L(a,b){a.P=b>>8&255;a.S=b&255}function G(a,b){a.R=b&65535}function Lc(a){return a.G&256?1:0}function Mc(a){return nb[a.X&255]?4:0}function Nc(a){return(a.X^a.da)&16?16:0}function Oc(a){return a.G&255?0:64}function Pc(a){return a.X&128?128:0}function Gc(a){return a.oa&-214|Pc(a)|Oc(a)|Nc(a)|Mc(a)|Lc(a)}function Ec(a,b){a.G=a.X=a.da=0;b&1&&(a.G|=256);b&4||(a.X|=1);b&16&&(a.da|=16);b&64||(a.G|=255);b&128&&(a.X^=192);a.oa=a.oa&-513|b&512|2}
|
||||||
function Mc(a,b){a.fa=a.j^b;return(a.G=a.X=a.j+b)&255}function Nc(a,b){a.fa=a.j^b;return(a.G=a.X=a.j+b+(a.G&256?1:0))&255}function Oc(a,b){return a.G=a.X=a.fa=a.j&b}function hd(a,b){a.fa=a.j^b;a.G=a.X=a.j-b}function id(a,b){a.fa=b;b=(a.X=b-1)&255;a.G=a.G&-256|b;return b}function jd(a,b){a.fa=b;b=(a.X=b+1)&255;a.G=a.G&-256|b;return b}function kd(a,b){return a.G=a.X=a.fa=a.j|b}function ld(a,b){a.fa=a.j^b;return(a.G=a.X=a.j-b)&255}function md(a,b){a.fa=a.j^b;return(a.G=a.X=a.j-b-(a.G&256?1:0))&255}
|
function Qc(a,b){a.da=a.j^b;return a.X=(a.G=a.j+b)&255}function Rc(a,b){a.da=a.j^b;return a.X=(a.G=a.j+b+(a.G&256?1:0))&255}function id(a,b){a.G=a.X=a.da=a.j&b;(a.j|b)&8&&(a.da^=16);return a.G}function jd(a,b){a.da=b^255;b=a.X=b+255&255;a.G=a.G&-256|b;return b}function kd(a,b){a.da=b;b=a.X=b+1&255;a.G=a.G&-256|b;return b}function ld(a,b){return a.X=a.G=a.da=a.j|b}function M(a,b){b^=255;a.da=a.j^b;return a.X=(a.G=a.j+b+1^256)&255}
|
||||||
function nd(a,b){return a.G=a.X=a.fa=a.j^b}m.V=function(a){return this.la[(a&this.K)>>>this.Z].Ka(a&this.H,a)};function od(a,b){var c=b&a.H,d=(b&a.K)>>>a.Z;if(c<a.H)return a.la[d].Rb(c,b);c=a.la[d].Ka(c,b);return c|=a.la[d+1&a.Y].Ka(0,b+1)<<8}function N(a,b,c){a.la[(b&a.K)>>>a.Z].Za(b&a.H,c&255,b)}function pd(a,b,c){var d=b&a.H,e=(b&a.K)>>>a.Z;d<a.H?a.la[e].Tb(d,c&65535,b):(a.la[e++].Za(d,c&255,b),a.la[e&a.Y].Za(0,c>>8&255,b+1))}function O(a){var b=a.V(a.O);H(a,a.O+1);return b}
|
function md(a,b){b^=255;a.da=a.j^b;return a.X=(a.G=a.j+b+(a.G&256?0:1)^256)&255}function nd(a,b){return a.X=a.G=a.da=a.j^b}m.V=function(a){return this.la[(a&this.K)>>>this.Z].Ka(a&this.H,a)};function od(a,b){var c=b&a.H,d=(b&a.K)>>>a.Z;if(c<a.H)return a.la[d].Rb(c,b);c=a.la[d].Ka(c,b);return c|=a.la[d+1&a.Y].Ka(0,b+1)<<8}function N(a,b,c){a.la[(b&a.K)>>>a.Z].Za(b&a.H,c&255,b)}
|
||||||
function P(a){var b=od(a,a.O);H(a,a.O+2);return b}function R(a){var b=od(a,a.ba);a.ba=a.ba+2&65535;return b}function S(a,b){a.ba=a.ba-2&65535;pd(a,a.ba,b)}function T(a,b,c,d){d=d||2;a.T[b]&&(void 0===c&&(lb(a,"Value for "+b+" is invalid"),a.da()),c=!a.w.ia||a.w.Jb?q(c,d):"--------".substr(0,d),a.T[b].textContent!=c&&(a.T[b].textContent=c))}
|
function pd(a,b,c){var d=b&a.H,e=(b&a.K)>>>a.Z;d<a.H?a.la[e].Tb(d,c&65535,b):(a.la[e++].Za(d,c&255,b),a.la[e&a.Y].Za(0,c>>8&255,b+1))}function O(a){var b=a.V(a.R);G(a,a.R+1);return b}function P(a){var b=od(a,a.R);G(a,a.R+2);return b}function Q(a){var b=od(a,a.ca);a.ca=a.ca+2&65535;return b}function S(a,b){a.ca=a.ca-2&65535;pd(a,a.ca,b)}
|
||||||
m.qa=function(a){this.ja&&(a||!this.w.ia||this.w.Jb)&&(T(this,"A",this.j),T(this,"B",this.L),T(this,"C",this.P),T(this,"BC",Dc(this),4),T(this,"D",this.M),T(this,"E",this.R),T(this,"DE",Fc(this),4),T(this,"H",this.N),T(this,"L",this.S),T(this,"HL",L(this),4),T(this,"SP",this.ba,4),T(this,"PC",this.O,4),a=Cc(this),T(this,"PS",a,4),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.T.speed)a.textContent=this.w.ia&&this.i.Ga?this.i.Ga.toFixed(2)+
|
function T(a,b,c,d){d=d||2;a.T[b]&&(void 0===c&&(lb(a,"Value for "+b+" is invalid"),a.ea()),c=!a.w.ia||a.w.Jb?q(c,d):"--------".substr(0,d),a.T[b].textContent!=c&&(a.T[b].textContent=c))}
|
||||||
"Mhz":"Stopped"};m.Ya=function(a){this.w.nb=!0;var b=this.w.Xb=this.C&&qd(this.C),c=a?this.w.ub?0:1:-1;this.w.ub=!1;this.F=this.b=a;do{if(this.A){var d;this.A&8&&this.oa&512?(d=199|(this.A&7)<<3,this.A&=-16,this.oa&=-513,this.ca[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.A&16){this.b=0;break}}if(b){if(rd(this.C,this.O,c)){this.da();break}c=1}this.ca[O(this)].call(this)}while(0<this.b);return this.w.nb?this.F-this.b:void 0===this.w.nb?0:-1};
|
m.ra=function(a){this.ja&&(a||!this.w.ia||this.w.Jb)&&(T(this,"A",this.j),T(this,"B",this.L),T(this,"C",this.M),T(this,"BC",Hc(this),4),T(this,"D",this.N),T(this,"E",this.O),T(this,"DE",Jc(this),4),T(this,"H",this.P),T(this,"L",this.S),T(this,"HL",J(this),4),T(this,"SP",this.ca,4),T(this,"PC",this.R,4),a=Gc(this),T(this,"PS",a,4),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.T.speed)a.textContent=this.w.ia&&this.i.Ga?this.i.Ga.toFixed(2)+
|
||||||
Ia(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new wc(d);eb(d,c)}});function sd(){this.b-=4}function td(){H(this,P(this));this.b-=10}function ud(){H(this,R(this));this.b-=10}function vd(){var a=P(this);S(this,this.O);H(this,a);this.b-=17}
|
"Mhz":"Stopped"};m.Ya=function(a){this.w.nb=!0;var b=this.w.Xb=this.C&&qd(this.C),c=a?this.w.ub?0:1:-1;this.w.ub=!1;this.F=this.b=a;do{if(this.A){var d;this.A&8&&this.oa&512?(d=199|(this.A&7)<<3,this.A&=-16,this.oa&=-513,this.ba[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.A&16){this.b=0;break}}if(b){if(rd(this.C,this.R,c)){this.ea();break}c=1}this.ba[O(this)].call(this)}while(0<this.b);return this.w.nb?this.F-this.b:void 0===this.w.nb?0:-1};
|
||||||
var xc=[sd,function(){Ec(this,P(this));this.b-=10},function(){N(this,Dc(this),this.j);this.b-=7},function(){Ec(this,Dc(this)+1);this.b-=5},function(){this.L=jd(this,this.L);this.b-=5},function(){this.L=id(this,this.L);this.b-=5},function(){this.L=O(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.G=this.G&255|a&256;this.b-=4},sd,function(){var a;M(this,a=L(this)+Dc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Dc(this));this.b-=7},function(){Ec(this,Dc(this)-
|
Ma(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ac(d);eb(d,c)}});function sd(){this.b-=4}function td(){G(this,P(this));this.b-=10}function ud(){G(this,Q(this));this.b-=10}function vd(){var a=P(this);S(this,this.R);G(this,a);this.b-=17}
|
||||||
1);this.b-=5},function(){this.P=jd(this,this.P);this.b-=5},function(){this.P=id(this,this.P);this.b-=5},function(){this.P=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.G=this.G&255|a;this.b-=4},sd,function(){Gc(this,P(this));this.b-=10},function(){N(this,Fc(this),this.j);this.b-=7},function(){Gc(this,Fc(this)+1);this.b-=5},function(){this.M=jd(this,this.M);this.b-=5},function(){this.M=id(this,this.M);this.b-=5},function(){this.M=O(this);this.b-=7},function(){var a=this.j<<
|
var Bc=[sd,function(){Ic(this,P(this));this.b-=10},function(){N(this,Hc(this),this.j);this.b-=7},function(){Ic(this,Hc(this)+1);this.b-=5},function(){this.L=kd(this,this.L);this.b-=5},function(){this.L=jd(this,this.L);this.b-=5},function(){this.L=O(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.G=this.G&255|a&256;this.b-=4},sd,function(){var a;L(this,a=J(this)+Hc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Hc(this));this.b-=7},function(){Ic(this,Hc(this)-
|
||||||
1;this.j=a&255|this.G>>8;this.G=this.G&255|a&256;this.b-=4},sd,function(){var a;M(this,a=L(this)+Fc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Fc(this));this.b-=7},function(){Gc(this,Fc(this)-1);this.b-=5},function(){this.R=jd(this,this.R);this.b-=5},function(){this.R=id(this,this.R);this.b-=5},function(){this.R=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.G&256|this.j)>>1;this.G=this.G&255|a;this.b-=4},sd,function(){M(this,P(this));this.b-=10},function(){pd(this,
|
1);this.b-=5},function(){this.M=kd(this,this.M);this.b-=5},function(){this.M=jd(this,this.M);this.b-=5},function(){this.M=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.G=this.G&255|a;this.b-=4},sd,function(){Kc(this,P(this));this.b-=10},function(){N(this,Jc(this),this.j);this.b-=7},function(){Kc(this,Jc(this)+1);this.b-=5},function(){this.N=kd(this,this.N);this.b-=5},function(){this.N=jd(this,this.N);this.b-=5},function(){this.N=O(this);this.b-=7},function(){var a=this.j<<
|
||||||
P(this),L(this));this.b-=16},function(){M(this,L(this)+1);this.b-=5},function(){this.N=jd(this,this.N);this.b-=5},function(){this.N=id(this,this.N);this.b-=5},function(){this.N=O(this);this.b-=7},function(){var a=this.j,b=!!Hc(this),c=!!Jc(this);9<(a&15)||c?(a+=6,c=!0):c=!1;160<=a||b?(a+=96,b=!0):b=!1;this.G=this.X=this.j=a&255;this.G=b?this.G|256:this.G&-257;this.fa=c?~this.X&16|this.fa&-17:this.X&16|this.fa&-17;this.b-=4},sd,function(){var a;M(this,a=L(this)+L(this));this.G=this.G&255|a>>8&256;
|
1;this.j=a&255|this.G>>8;this.G=this.G&255|a&256;this.b-=4},sd,function(){var a;L(this,a=J(this)+Jc(this));this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(Jc(this));this.b-=7},function(){Kc(this,Jc(this)-1);this.b-=5},function(){this.O=kd(this,this.O);this.b-=5},function(){this.O=jd(this,this.O);this.b-=5},function(){this.O=O(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.G&256|this.j)>>1;this.G=this.G&255|a;this.b-=4},sd,function(){L(this,P(this));this.b-=10},function(){pd(this,
|
||||||
this.b-=10},function(){M(this,od(this,P(this)));this.b-=16},function(){M(this,L(this)-1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=O(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},sd,function(){this.ba=P(this)&65535;this.b-=10},function(){N(this,P(this),this.j);this.b-=13},function(){this.ba=this.ba+1&65535;this.b-=5},function(){var a=L(this);N(this,a,jd(this,this.V(a)));this.b-=10},function(){var a=L(this);N(this,
|
P(this),J(this));this.b-=16},function(){L(this,J(this)+1);this.b-=5},function(){this.P=kd(this,this.P);this.b-=5},function(){this.P=jd(this,this.P);this.b-=5},function(){this.P=O(this);this.b-=7},function(){var a=this.j,b=!!Lc(this),c=!!Nc(this);9<(a&15)||c?(a+=6,c=!0):c=!1;160<=a||b?(a+=96,b=!0):b=!1;this.G=this.X=this.j=a&255;this.G=b?this.G|256:this.G&-257;this.da=c?~this.X&16|this.da&-17:this.X&16|this.da&-17;this.b-=4},sd,function(){var a;L(this,a=J(this)+J(this));this.G=this.G&255|a>>8&256;
|
||||||
a,id(this,this.V(a)));this.b-=10},function(){N(this,L(this),O(this));this.b-=10},function(){this.G|=256;this.b-=4},sd,function(){var a;this.ba=(a=L(this)+this.ba)&65535;this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(P(this));this.b-=13},function(){this.ba=this.ba-1&65535;this.b-=5},function(){this.j=jd(this,this.j);this.b-=5},function(){this.j=id(this,this.j);this.b-=5},function(){this.j=O(this);this.b-=7},function(){this.G=Hc(this)?this.G&-257:this.G|256;this.b-=4},function(){this.b-=
|
this.b-=10},function(){L(this,od(this,P(this)));this.b-=16},function(){L(this,J(this)-1);this.b-=5},function(){this.S=kd(this,this.S);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=O(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},sd,function(){this.ca=P(this)&65535;this.b-=10},function(){N(this,P(this),this.j);this.b-=13},function(){this.ca=this.ca+1&65535;this.b-=5},function(){var a=J(this);N(this,a,kd(this,this.V(a)));this.b-=10},function(){var a=J(this);N(this,
|
||||||
5},function(){this.L=this.P;this.b-=5},function(){this.L=this.M;this.b-=5},function(){this.L=this.R;this.b-=5},function(){this.L=this.N;this.b-=5},function(){this.L=this.S;this.b-=5},function(){this.L=this.V(L(this));this.b-=7},function(){this.L=this.j;this.b-=5},function(){this.P=this.L;this.b-=5},function(){this.b-=5},function(){this.P=this.M;this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V(L(this));this.b-=
|
a,jd(this,this.V(a)));this.b-=10},function(){N(this,J(this),O(this));this.b-=10},function(){this.G|=256;this.b-=4},sd,function(){var a;L(this,a=J(this)+this.ca);this.G=this.G&255|a>>8&256;this.b-=10},function(){this.j=this.V(P(this));this.b-=13},function(){this.ca=this.ca-1&65535;this.b-=5},function(){this.j=kd(this,this.j);this.b-=5},function(){this.j=jd(this,this.j);this.b-=5},function(){this.j=O(this);this.b-=7},function(){this.G=Lc(this)?this.G&-257:this.G|256;this.b-=4},function(){this.b-=5},
|
||||||
7},function(){this.P=this.j;this.b-=5},function(){this.M=this.L;this.b-=5},function(){this.M=this.P;this.b-=5},function(){this.b-=5},function(){this.M=this.R;this.b-=5},function(){this.M=this.N;this.b-=5},function(){this.M=this.S;this.b-=5},function(){this.M=this.V(L(this));this.b-=7},function(){this.M=this.j;this.b-=5},function(){this.R=this.L;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.R=this.M;this.b-=5},function(){this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=
|
function(){this.L=this.M;this.b-=5},function(){this.L=this.N;this.b-=5},function(){this.L=this.O;this.b-=5},function(){this.L=this.P;this.b-=5},function(){this.L=this.S;this.b-=5},function(){this.L=this.V(J(this));this.b-=7},function(){this.L=this.j;this.b-=5},function(){this.M=this.L;this.b-=5},function(){this.b-=5},function(){this.M=this.N;this.b-=5},function(){this.M=this.O;this.b-=5},function(){this.M=this.P;this.b-=5},function(){this.M=this.S;this.b-=5},function(){this.M=this.V(J(this));this.b-=
|
||||||
this.S;this.b-=5},function(){this.R=this.V(L(this));this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.N=this.L;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.N=this.M;this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.V(L(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.S=this.L;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.M;this.b-=5},function(){this.S=
|
7},function(){this.M=this.j;this.b-=5},function(){this.N=this.L;this.b-=5},function(){this.N=this.M;this.b-=5},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.V(J(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.L;this.b-=5},function(){this.O=this.M;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=
|
||||||
this.R;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.b-=5},function(){this.S=this.V(L(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){N(this,L(this),this.L);this.b-=7},function(){N(this,L(this),this.P);this.b-=7},function(){N(this,L(this),this.M);this.b-=7},function(){N(this,L(this),this.R);this.b-=7},function(){N(this,L(this),this.N);this.b-=7},function(){N(this,L(this),this.S);this.b-=7},function(){var a=this.O-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;
|
this.S;this.b-=5},function(){this.O=this.V(J(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=this.L;this.b-=5},function(){this.P=this.M;this.b-=5},function(){this.P=this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V(J(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.S=this.L;this.b-=5},function(){this.S=this.M;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=
|
||||||
this.A|=16;this.b-=7;this.C&&hb(this,-2147483648)?(H(this,a),this.C.da()):this.oa&512||(this.C&&H(this,a),this.da())},function(){N(this,L(this),this.j);this.b-=7},function(){this.j=this.L;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.M;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.N;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V(L(this));this.b-=7},function(){this.b-=5},function(){this.j=Mc(this,this.L);this.b-=4},function(){this.j=
|
this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.b-=5},function(){this.S=this.V(J(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){N(this,J(this),this.L);this.b-=7},function(){N(this,J(this),this.M);this.b-=7},function(){N(this,J(this),this.N);this.b-=7},function(){N(this,J(this),this.O);this.b-=7},function(){N(this,J(this),this.P);this.b-=7},function(){N(this,J(this),this.S);this.b-=7},function(){var a=this.R-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;
|
||||||
Mc(this,this.P);this.b-=4},function(){this.j=Mc(this,this.M);this.b-=4},function(){this.j=Mc(this,this.R);this.b-=4},function(){this.j=Mc(this,this.N);this.b-=4},function(){this.j=Mc(this,this.S);this.b-=4},function(){this.j=Mc(this,this.V(L(this)));this.b-=7},function(){this.j=Mc(this,this.j);this.b-=4},function(){this.j=Nc(this,this.L);this.b-=4},function(){this.j=Nc(this,this.P);this.b-=4},function(){this.j=Nc(this,this.M);this.b-=4},function(){this.j=Nc(this,this.R);this.b-=4},function(){this.j=
|
this.A|=16;this.b-=7;this.C&&hb(this,-2147483648)?(G(this,a),this.C.ea()):this.oa&512||(this.C&&G(this,a),this.ea())},function(){N(this,J(this),this.j);this.b-=7},function(){this.j=this.L;this.b-=5},function(){this.j=this.M;this.b-=5},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V(J(this));this.b-=7},function(){this.b-=5},function(){this.j=Qc(this,this.L);this.b-=4},function(){this.j=
|
||||||
Nc(this,this.N);this.b-=4},function(){this.j=Nc(this,this.S);this.b-=4},function(){this.j=Nc(this,this.V(L(this)));this.b-=7},function(){this.j=Nc(this,this.j);this.b-=4},function(){this.j=ld(this,this.L);this.b-=4},function(){this.j=ld(this,this.P);this.b-=4},function(){this.j=ld(this,this.M);this.b-=4},function(){this.j=ld(this,this.R);this.b-=4},function(){this.j=ld(this,this.N);this.b-=4},function(){this.j=ld(this,this.S);this.b-=4},function(){this.j=ld(this,this.V(L(this)));this.b-=7},function(){this.j=
|
Qc(this,this.M);this.b-=4},function(){this.j=Qc(this,this.N);this.b-=4},function(){this.j=Qc(this,this.O);this.b-=4},function(){this.j=Qc(this,this.P);this.b-=4},function(){this.j=Qc(this,this.S);this.b-=4},function(){this.j=Qc(this,this.V(J(this)));this.b-=7},function(){this.j=Qc(this,this.j);this.b-=4},function(){this.j=Rc(this,this.L);this.b-=4},function(){this.j=Rc(this,this.M);this.b-=4},function(){this.j=Rc(this,this.N);this.b-=4},function(){this.j=Rc(this,this.O);this.b-=4},function(){this.j=
|
||||||
ld(this,this.j);this.b-=4},function(){this.j=md(this,this.L);this.b-=4},function(){this.j=md(this,this.P);this.b-=4},function(){this.j=md(this,this.M);this.b-=4},function(){this.j=md(this,this.R);this.b-=4},function(){this.j=md(this,this.N);this.b-=4},function(){this.j=md(this,this.S);this.b-=4},function(){this.j=md(this,this.V(L(this)));this.b-=7},function(){this.j=md(this,this.j);this.b-=4},function(){this.j=Oc(this,this.L);this.b-=4},function(){this.j=Oc(this,this.P);this.b-=4},function(){this.j=
|
Rc(this,this.P);this.b-=4},function(){this.j=Rc(this,this.S);this.b-=4},function(){this.j=Rc(this,this.V(J(this)));this.b-=7},function(){this.j=Rc(this,this.j);this.b-=4},function(){this.j=M(this,this.L);this.b-=4},function(){this.j=M(this,this.M);this.b-=4},function(){this.j=M(this,this.N);this.b-=4},function(){this.j=M(this,this.O);this.b-=4},function(){this.j=M(this,this.P);this.b-=4},function(){this.j=M(this,this.S);this.b-=4},function(){this.j=M(this,this.V(J(this)));this.b-=7},function(){this.j=
|
||||||
Oc(this,this.M);this.b-=4},function(){this.j=Oc(this,this.R);this.b-=4},function(){this.j=Oc(this,this.N);this.b-=4},function(){this.j=Oc(this,this.S);this.b-=4},function(){this.j=Oc(this,this.V(L(this)));this.b-=7},function(){this.j=Oc(this,this.j);this.b-=4},function(){this.j=nd(this,this.L);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.M);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=
|
M(this,this.j);this.b-=4},function(){this.j=md(this,this.L);this.b-=4},function(){this.j=md(this,this.M);this.b-=4},function(){this.j=md(this,this.N);this.b-=4},function(){this.j=md(this,this.O);this.b-=4},function(){this.j=md(this,this.P);this.b-=4},function(){this.j=md(this,this.S);this.b-=4},function(){this.j=md(this,this.V(J(this)));this.b-=7},function(){this.j=md(this,this.j);this.b-=4},function(){this.j=id(this,this.L);this.b-=4},function(){this.j=id(this,this.M);this.b-=4},function(){this.j=
|
||||||
nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.V(L(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){this.j=kd(this,this.L);this.b-=4},function(){this.j=kd(this,this.P);this.b-=4},function(){this.j=kd(this,this.M);this.b-=4},function(){this.j=kd(this,this.R);this.b-=4},function(){this.j=kd(this,this.N);this.b-=4},function(){this.j=kd(this,this.S);this.b-=4},function(){this.j=kd(this,this.V(L(this)));this.b-=7},function(){this.j=kd(this,this.j);this.b-=4},function(){hd(this,
|
id(this,this.N);this.b-=4},function(){this.j=id(this,this.O);this.b-=4},function(){this.j=id(this,this.P);this.b-=4},function(){this.j=id(this,this.S);this.b-=4},function(){this.j=id(this,this.V(J(this)));this.b-=7},function(){this.j=id(this,this.j);this.b-=4},function(){this.j=nd(this,this.L);this.b-=4},function(){this.j=nd(this,this.M);this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=
|
||||||
this.L);this.b-=4},function(){hd(this,this.P);this.b-=4},function(){hd(this,this.M);this.b-=4},function(){hd(this,this.R);this.b-=4},function(){hd(this,this.N);this.b-=4},function(){hd(this,this.S);this.b-=4},function(){hd(this,this.V(L(this)));this.b-=7},function(){hd(this,this.j);this.b-=4},function(){Kc(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){Ec(this,R(this));this.b-=10},function(){var a=P(this);Kc(this)||H(this,a);this.b-=10},td,function(){var a=P(this);Kc(this)||(S(this,this.O),
|
nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.V(J(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){this.j=ld(this,this.L);this.b-=4},function(){this.j=ld(this,this.M);this.b-=4},function(){this.j=ld(this,this.N);this.b-=4},function(){this.j=ld(this,this.O);this.b-=4},function(){this.j=ld(this,this.P);this.b-=4},function(){this.j=ld(this,this.S);this.b-=4},function(){this.j=ld(this,this.V(J(this)));this.b-=7},function(){this.j=ld(this,this.j);this.b-=4},function(){M(this,
|
||||||
H(this,a),this.b-=6);this.b-=11},function(){S(this,Dc(this));this.b-=11},function(){this.j=Mc(this,O(this));this.b-=7},function(){S(this,this.O);H(this,0);this.b-=11},function(){Kc(this)&&(H(this,R(this)),this.b-=6);this.b-=5},ud,function(){var a=P(this);Kc(this)&&H(this,a);this.b-=10},td,function(){var a=P(this);Kc(this)&&(S(this,this.O),H(this,a),this.b-=6);this.b-=11},vd,function(){this.j=Nc(this,O(this));this.b-=7},function(){S(this,this.O);H(this,8);this.b-=11},function(){Hc(this)||(H(this,R(this)),
|
this.L);this.b-=4},function(){M(this,this.M);this.b-=4},function(){M(this,this.N);this.b-=4},function(){M(this,this.O);this.b-=4},function(){M(this,this.P);this.b-=4},function(){M(this,this.S);this.b-=4},function(){M(this,this.V(J(this)));this.b-=7},function(){M(this,this.j);this.b-=4},function(){Oc(this)||(G(this,Q(this)),this.b-=6);this.b-=5},function(){Ic(this,Q(this));this.b-=10},function(){var a=P(this);Oc(this)||G(this,a);this.b-=10},td,function(){var a=P(this);Oc(this)||(S(this,this.R),G(this,
|
||||||
this.b-=6);this.b-=5},function(){Gc(this,R(this));this.b-=10},function(){var a=P(this);Hc(this)||H(this,a);this.b-=10},function(){var a=O(this);Ib(this.D,a,this.j);this.b-=10},function(){var a=P(this);Hc(this)||(S(this,this.O),H(this,a),this.b-=6);this.b-=11},function(){S(this,Fc(this));this.b-=11},function(){this.j=ld(this,O(this));this.b-=7},function(){S(this,this.O);H(this,16);this.b-=11},function(){Hc(this)&&(H(this,R(this)),this.b-=6);this.b-=5},ud,function(){var a=P(this);Hc(this)&&H(this,a);
|
a),this.b-=6);this.b-=11},function(){S(this,Hc(this));this.b-=11},function(){this.j=Qc(this,O(this));this.b-=7},function(){S(this,this.R);G(this,0);this.b-=11},function(){Oc(this)&&(G(this,Q(this)),this.b-=6);this.b-=5},ud,function(){var a=P(this);Oc(this)&&G(this,a);this.b-=10},td,function(){var a=P(this);Oc(this)&&(S(this,this.R),G(this,a),this.b-=6);this.b-=11},vd,function(){this.j=Rc(this,O(this));this.b-=7},function(){S(this,this.R);G(this,8);this.b-=11},function(){Lc(this)||(G(this,Q(this)),
|
||||||
this.b-=10},function(){var a=O(this);this.j=Fb(this.D,a)&255;this.b-=10},function(){var a=P(this);Hc(this)&&(S(this,this.O),H(this,a),this.b-=6);this.b-=11},vd,function(){this.j=md(this,O(this));this.b-=7},function(){S(this,this.O);H(this,24);this.b-=11},function(){Ic(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){M(this,R(this));this.b-=10},function(){var a=P(this);Ic(this)||H(this,a);this.b-=10},function(){var a=R(this);S(this,L(this));M(this,a);this.b-=18},function(){var a=P(this);Ic(this)||
|
this.b-=6);this.b-=5},function(){Kc(this,Q(this));this.b-=10},function(){var a=P(this);Lc(this)||G(this,a);this.b-=10},function(){var a=O(this);Jb(this.D,a,this.j);this.b-=10},function(){var a=P(this);Lc(this)||(S(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){S(this,Jc(this));this.b-=11},function(){this.j=M(this,O(this));this.b-=7},function(){S(this,this.R);G(this,16);this.b-=11},function(){Lc(this)&&(G(this,Q(this)),this.b-=6);this.b-=5},ud,function(){var a=P(this);Lc(this)&&G(this,a);
|
||||||
(S(this,this.O),H(this,a),this.b-=6);this.b-=11},function(){S(this,L(this));this.b-=11},function(){this.j=Oc(this,O(this));this.b-=7},function(){S(this,this.O);H(this,32);this.b-=11},function(){Ic(this)&&(H(this,R(this)),this.b-=6);this.b-=5},function(){H(this,L(this));this.b-=5},function(){var a=P(this);Ic(this)&&H(this,a);this.b-=10},function(){var a=L(this);M(this,Fc(this));Gc(this,a);this.b-=5},function(){var a=P(this);Ic(this)&&(S(this,this.O),H(this,a),this.b-=6);this.b-=11},vd,function(){this.j=
|
this.b-=10},function(){var a=O(this);this.j=Gb(this.D,a)&255;this.b-=10},function(){var a=P(this);Lc(this)&&(S(this,this.R),G(this,a),this.b-=6);this.b-=11},vd,function(){this.j=md(this,O(this));this.b-=7},function(){S(this,this.R);G(this,24);this.b-=11},function(){Mc(this)||(G(this,Q(this)),this.b-=6);this.b-=5},function(){L(this,Q(this));this.b-=10},function(){var a=P(this);Mc(this)||G(this,a);this.b-=10},function(){var a=Q(this);S(this,J(this));L(this,a);this.b-=18},function(){var a=P(this);Mc(this)||
|
||||||
nd(this,O(this));this.b-=7},function(){S(this,this.O);H(this,40);this.b-=11},function(){Lc(this)||(H(this,R(this)),this.b-=6);this.b-=5},function(){var a=R(this);Ac(this,a);this.j=a>>8;this.b-=10},function(){var a=P(this);Lc(this)||H(this,a);this.b-=10},function(){this.oa&=-513;this.b-=4},function(){var a=P(this);Lc(this)||(S(this,this.O),H(this,a),this.b-=6);this.b-=11},function(){S(this,Cc(this)&255|this.j<<8);this.b-=11},function(){this.j=kd(this,O(this));this.b-=7},function(){S(this,this.O);H(this,
|
(S(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){S(this,J(this));this.b-=11},function(){this.j=id(this,O(this));this.b-=7},function(){S(this,this.R);G(this,32);this.b-=11},function(){Mc(this)&&(G(this,Q(this)),this.b-=6);this.b-=5},function(){G(this,J(this));this.b-=5},function(){var a=P(this);Mc(this)&&G(this,a);this.b-=10},function(){var a=J(this);L(this,Jc(this));Kc(this,a);this.b-=5},function(){var a=P(this);Mc(this)&&(S(this,this.R),G(this,a),this.b-=6);this.b-=11},vd,function(){this.j=
|
||||||
48);this.b-=11},function(){Lc(this)&&(H(this,R(this)),this.b-=6);this.b-=5},function(){this.ba=L(this)&65535;this.b-=5},function(){var a=P(this);Lc(this)&&H(this,a);this.b-=10},function(){this.oa|=512;this.b-=4},function(){var a=P(this);Lc(this)&&(S(this,this.O),H(this,a),this.b-=6);this.b-=11},vd,function(){hd(this,O(this));this.b-=7},function(){S(this,this.O);H(this,56);this.b-=11}];
|
nd(this,O(this));this.b-=7},function(){S(this,this.R);G(this,40);this.b-=11},function(){Pc(this)||(G(this,Q(this)),this.b-=6);this.b-=5},function(){var a=Q(this);Ec(this,a);this.j=a>>8;this.b-=10},function(){var a=P(this);Pc(this)||G(this,a);this.b-=10},function(){this.oa&=-513;this.b-=4},function(){var a=P(this);Pc(this)||(S(this,this.R),G(this,a),this.b-=6);this.b-=11},function(){S(this,Gc(this)&255|this.j<<8);this.b-=11},function(){this.j=ld(this,O(this));this.b-=7},function(){S(this,this.R);G(this,
|
||||||
function V(a){u.call(this,"ChipSet",a,V,32768);var b=a.model;b&&!wd[b]&&t("Unrecognized ChipSet model: "+b);this.Ra=wd[b];a.sound&&(this.W=null,window&&(this.W=window.AudioContext||window.webkitAudioContext),this.W&&new this.W);B(this)}x(V);var wd={SI1978:1978.1};m=V.prototype;m.pa=function(){return!1};
|
48);this.b-=11},function(){Pc(this)&&(G(this,Q(this)),this.b-=6);this.b-=5},function(){this.ca=J(this)&65535;this.b-=5},function(){var a=P(this);Pc(this)&&G(this,a);this.b-=10},function(){this.oa|=512;this.b-=4},function(){var a=P(this);Pc(this)&&(S(this,this.R),G(this,a),this.b-=6);this.b-=11},vd,function(){M(this,O(this));this.b-=7},function(){S(this,this.R);G(this,56);this.b-=11}];
|
||||||
m.Aa=function(a,b,c,d){this.D=b;this.b=c;this.C=d;this.u=a;if(1978.1==this.Ra){var e;a=xd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.u[g]?t("Input port "+r(g)+" already registered"):c.u[g]=[h,!1]}var k;e=yd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.A[d]?t("Output port "+r(d)+" already registered"):f.A[d]=[c,!1]}};
|
function U(a){u.call(this,"ChipSet",a,U,32768);var b=a.model;b&&!wd[b]&&t("Unrecognized ChipSet model: "+b);this.Ra=wd[b];a.sound&&(this.W=null,window&&(this.W=window.AudioContext||window.webkitAudioContext),this.W&&new this.W);B(this)}x(U);var wd={SI1978:1978.1};m=U.prototype;m.pa=function(){return!1};
|
||||||
m.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.va=function(a){return a?this.save():!0};m.reset=function(){this.H=this.I=this.A=this.F=this.U=this.K=this.J=0};m.save=function(){var a=new I(this);1978.1==this.Ra&&K(a,0,[this.J,this.K,this.U,this.F,this.A,this.H,this.I]);return a.data()};m.restore=function(a){a=a[0];1978.1==this.Ra&&(this.J=a[0],this.K=a[1],this.U=a[2],this.F=a[3],this.A=a[4],this.H=a[5],this.I=a[6]);return!0};
|
m.Ba=function(a,b,c,d){this.D=b;this.b=c;this.C=d;this.u=a;if(1978.1==this.Ra){var e;a=xd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.u[g]?t("Input port "+r(g)+" already registered"):c.u[g]=[h,!1]}var k;e=yd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.A[d]?t("Output port "+r(d)+" already registered"):f.A[d]=[c,!1]}};
|
||||||
|
m.xa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.wa=function(a){return a?this.save():!0};m.reset=function(){this.H=this.I=this.A=this.F=this.U=this.K=this.J=0};m.save=function(){var a=new H(this);1978.1==this.Ra&&I(a,0,[this.J,this.K,this.U,this.F,this.A,this.H,this.I]);return a.data()};m.restore=function(a){a=a[0];1978.1==this.Ra&&(this.J=a[0],this.K=a[1],this.U=a[2],this.F=a[3],this.A=a[4],this.H=a[5],this.I=a[6]);return!0};
|
||||||
m.bc=function(a,b){var c=this.J;fb(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.K;fb(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.U;fb(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.F<<this.A>>8&255;fb(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){fb(this,a,b,c,"SHIFT.COUNT",null);this.A=b};m.kc=function(a,b,c){fb(this,a,b,c,"SOUND1",null);this.H=b};m.jc=function(a,b,c){fb(this,a,b,c,"SHIFT.DATA",null);this.F=b};
|
m.bc=function(a,b){var c=this.J;fb(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.K;fb(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.U;fb(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.F<<this.A>>8&255;fb(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){fb(this,a,b,c,"SHIFT.COUNT",null);this.A=b};m.kc=function(a,b,c){fb(this,a,b,c,"SOUND1",null);this.H=b};m.jc=function(a,b,c){fb(this,a,b,c,"SHIFT.DATA",null);this.F=b};
|
||||||
m.lc=function(a,b,c){fb(this,a,b,c,"SOUND2",null);this.I=b};var xd={0:V.prototype.bc,1:V.prototype.cc,2:V.prototype.dc,3:V.prototype.ac},yd={2:V.prototype.ic,3:V.prototype.kc,4:V.prototype.jc,5:V.prototype.lc};Ia(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new V(d);eb(d,c)}});
|
m.lc=function(a,b,c){fb(this,a,b,c,"SOUND2",null);this.I=b};var xd={0:U.prototype.bc,1:U.prototype.cc,2:U.prototype.dc,3:U.prototype.ac},yd={2:U.prototype.ic,3:U.prototype.kc,4:U.prototype.jc,5:U.prototype.lc};Ma(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new U(d);eb(d,c)}});
|
||||||
function zd(a){u.call(this,"ROM",a,zd);this.u=null;this.I=a.addr;this.A=a.size;this.J=a.writable;this.F=a.alias;this.H=a.file;this.K=ba(this.H);if(this.H){a=this.H;var b=ca(this.K);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.H+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){Ad(c,a,b,f)})}}x(zd);var Bd=[0,5];zd.prototype.Aa=function(a,b,c,d){this.D=b;this.b=c;this.C=d;Cd(this)};
|
function zd(a){u.call(this,"ROM",a,zd);this.u=null;this.I=a.addr;this.A=a.size;this.J=a.writable;this.F=a.alias;this.H=a.file;this.K=ba(this.H);if(this.H){a=this.H;var b=ca(this.K);"json"!=b&&"hex"!=b&&(a=na()+"/api/v1/dump?file="+this.H+"&format=bytes&decimal=true");var c=this;ma(a,null,!0,function(a,b,f){Ad(c,a,b,f)})}}x(zd);var Bd=[0,5];zd.prototype.Ba=function(a,b,c,d){this.D=b;this.b=c;this.C=d;Cd(this)};
|
||||||
zd.prototype.wa=function(){if(this.xa){if(this.C){var a=this.C,b=this.id,c=this.I,d=this.A,e=this.xa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=f,k=[k>>>0,h],p=ia(n,k,a.Eb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,B:c,gc:d,xa:e,Bb:f})}delete this.xa}return!0};zd.prototype.va=function(){return!0};
|
zd.prototype.xa=function(){if(this.ya){if(this.C){var a=this.C,b=this.id,c=this.I,d=this.A,e=this.ya,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=f,k=[k>>>0,h],p=ia(n,k,a.Eb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,B:c,gc:d,ya:e,Bb:f})}delete this.ya}return!0};zd.prototype.wa=function(){return!0};
|
||||||
function Ad(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c<h.length;c++)a.u[d++]=h[c]&255,a.u[d++]=h[c]>>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.xa=e.symbols;if(!a.u.length){t("Empty ROM: "+b);return}if(1==a.u.length){t(a.u[0]);return}}catch(g){a.na("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
function Ad(a,b,c,d){if(d)a.na("Unable to load system ROM (error "+d+": "+b+")");else{Xa(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.u=f;else if(h)for(a.u=Array(4*h.length),d=c=0;c<h.length;c++)a.u[d++]=h[c]&255,a.u[d++]=h[c]>>8&255,a.u[d++]=h[c]>>16&255,a.u[d++]=h[c]>>24&255;else a.u=e;a.ya=e.symbols;if(!a.u.length){t("Empty ROM: "+b);return}if(1==a.u.length){t(a.u[0]);return}}catch(g){a.na("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||||
" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e<b.length;e++)a.u[e]=aa(b[e],16);Cd(a)}}
|
" ").replace(/ +$/,"").split(" "),a.u=Array(b.length),e=0;e<b.length;e++)a.u[e]=aa(b[e],16);Cd(a)}}
|
||||||
function Cd(a){if(!kb(a))if(!a.H)B(a);else if(a.u&&a.D){a.A||(a.A=a.u.length);if(a.u.length!=a.A)lb(a,"ROM size (0x"+q(a.u.length)+") does not match specified size ("+("0x"+q(a.A))+")");else if(Dd(a,a.I)){var b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.D,h=d.A,g=[],k=d.I>>>f.Z;0<h&&k<f.D.length;)g.push(f.D[k++]),h-=f.ma;f=d.D;d=d.A;h=0;for(e>>>=f.Z;0<d&&e<f.D.length;){k=g[h++];if(!k)break;f.D[e++]=k;d-=f.ma}}delete a.u}B(a)}}
|
function Cd(a){if(!kb(a))if(!a.H)B(a);else if(a.u&&a.D){a.A||(a.A=a.u.length);if(a.u.length!=a.A)lb(a,"ROM size (0x"+q(a.u.length)+") does not match specified size ("+("0x"+q(a.A))+")");else if(Dd(a,a.I)){var b=[];"number"==typeof a.F?b.push(a.F):null!=a.F&&a.F.length&&(b=a.F);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.D,h=d.A,g=[],k=d.I>>>f.Z;0<h&&k<f.D.length;)g.push(f.D[k++]),h-=f.ma;f=d.D;d=d.A;h=0;for(e>>>=f.Z;0<d&&e<f.D.length;){k=g[h++];if(!k)break;f.D[e++]=k;d-=f.ma}}delete a.u}B(a)}}
|
||||||
function Dd(a,b){if(tb(a.D,b,a.A,a.J?1:Pb)){var c;for(c=0;c<a.u.length;c++)wb(a.D,b+c,a.u[c]);if(a.J&&256==b){for(c=0;c<Bd.length;c++)wb(a.D,Bd[c],118);zc(a.b,function(a){return function(b){0<=Bd.indexOf(b)&&a.C&&(a.g("CP/M vector "+r(b)),H(a.b,b),a.C.da())}}(a));Bc(a.b,b)}return!0}return!1}Ia(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new zd(d);eb(d,c)}});function Ed(a){u.call(this,"RAM",a,Ed);this.F=a.addr;this.A=a.size;this.u=!1}x(Ed);m=Ed.prototype;
|
function Dd(a,b){if(tb(a.D,b,a.A,a.J?1:Qb)){var c;for(c=0;c<a.u.length;c++)wb(a.D,b+c,a.u[c]);if(a.J&&256==b){for(c=0;c<Bd.length;c++)wb(a.D,Bd[c],118);Dc(a.b,function(a){return function(b){if(0<=Bd.indexOf(b)){var c=!1,h=a.b,g=a.C;if(5==b)switch(c=!0,h.M){case 2:Ed(a,String.fromCharCode(h.O));break;case 9:for(var k=Jc(h),l="",n=255;n--;){var p=a.b.V(k++);if(36==p)break;l+=String.fromCharCode(p)}Ed(a,l);break;default:c=!1}c?ud.call(h):g&&(a.g("\nCP/M vector "+r(b)),G(h,b),g.ea());b=!0}else b=!1;return b}}(a));
|
||||||
m.Aa=function(a,b,c,d){this.D=b;this.b=c;this.C=d;B(this)};m.wa=function(a,b){b||this.reset();return!0};m.va=function(a){return a?this.save():!0};m.reset=function(){!this.u&&this.A&&tb(this.D,this.F,this.A,1)&&(this.u=!0,this.status(Math.floor(this.A/1024)+"Kb allocated"));this.u||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ia(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ed(d);eb(d,c)}});
|
Fc(a.b,b)}return!0}return!1}function Ed(a,b){b=b.replace(/\r/g,"");a.qa&&(a.qa.value+=b,a.qa.scrollTop=a.qa.scrollHeight)}Ma(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new zd(d);eb(d,c)}});function Fd(a){u.call(this,"RAM",a,Fd);this.F=a.addr;this.A=a.size;this.u=!1}x(Fd);m=Fd.prototype;m.Ba=function(a,b,c,d){this.D=b;this.b=c;this.C=d;B(this)};m.xa=function(a,b){b||this.reset();return!0};m.wa=function(a){return a?this.save():!0};
|
||||||
function Fd(a){u.call(this,"Keyboard",a,Fd,65536);B(this)}x(Fd);Ia(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Fd(d);eb(d,c)}});function Gd(a){u.call(this,"Video",a,Gd,262144);this.Zb=a.interruptRate;this.ya=a.refreshRate||60;B(this)}x(Gd);Gd.prototype.Aa=function(a,b,c,d){this.u=a;this.D=b;this.b=c;this.C=d};
|
m.reset=function(){!this.u&&this.A&&tb(this.D,this.F,this.A,1)&&(this.u=!0,this.status(Math.floor(this.A/1024)+"Kb allocated"));this.u||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ma(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Fd(d);eb(d,c)}});function Gd(a){u.call(this,"Keyboard",a,Gd,65536);B(this)}x(Gd);
|
||||||
Ia(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=oa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
Ma(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Gd(d);eb(d,c)}});function Hd(a){u.call(this,"Video",a,Hd,262144);this.Zb=a.interruptRate;this.za=a.refreshRate||60;B(this)}x(Hd);Hd.prototype.Ba=function(a,b,c,d){this.u=a;this.D=b;this.b=c;this.C=d};
|
||||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("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");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new Gd(d);eb(d,c)}});
|
Ma(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=oa().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
|
||||||
function Hd(a){u.call(this,"Debugger",a,Hd);this.aa=Id;this.ja=this.Ma=this.U=0;this.Y=W();this.Fb=W();this.H=-1;this.F=[];this.sa=!1;this.ka=W();this.J=[];this.ra={};this.A=this.ca=this.I=[];Jd(this);this.Ca=0;Kd(this);this.$a=[];Ld(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return oc(b,a)}):void 0===global.$&&(global.$=function(a){return oc(b,a)})}x(Hd);
|
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("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");za("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new Hd(d);eb(d,c)}});
|
||||||
var Md={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Id=8080,Nd="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
|
function Id(a){u.call(this,"Debugger",a,Id);this.aa=Jd;this.ja=this.Ma=this.U=0;this.Y=W();this.Fb=W();this.H=-1;this.F=[];this.ta=!1;this.ka=W();this.J=[];this.sa={};this.A=this.ba=this.I=[];Kd(this);this.Da=0;Ld(this);this.$a=[];Md(this,a.messages);this.rb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return rc(b,a)}):void 0===global.$&&(global.$=function(a){return rc(b,a)})}x(Id);
|
||||||
Od="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Pd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Qd=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
|
var Nd={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Jd=8080,Od="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(" "),
|
||||||
|
Pd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Qd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Rd=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
|
||||||
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
|
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
|
||||||
[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,
|
[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,
|
||||||
785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],
|
785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],
|
||||||
[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],
|
[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],
|
||||||
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
|
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
|
||||||
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
|
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
|
||||||
18193,33],[65,128]],Rd={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Hd.prototype;
|
18193,33],[65,128]],Sd={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Id.prototype;
|
||||||
m.Aa=function(a,b,c,d){this.D=b;this.b=c;this.u=a;(a=lc(a,"messages"))&&Ld(this,a);this.Cb=Qd;Sd(this,function(a){a:{var b=d.b.la,c=a[0],g=a=0,k=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.b.Z;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.g("..."):(c=n.type,l=Ub[c],n&&d.g(q(n.id)+" %"+q(g<<d.b.Z)+" %%"+q(n.B)+" "+r(n.kb)+" "+r(n.size)+
|
m.Ba=function(a,b,c,d){this.D=b;this.b=c;this.u=a;(a=oc(a,"messages"))&&Md(this,a);this.Cb=Rd;Td(this,function(a){a:{var b=d.b.la,c=a[0],g=a=0,k=b.length;if(c){a=X(Y(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.b.Z;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var n=b[g];n.type==c?l++||d.g("..."):(c=n.type,l=Vb[c],n&&d.g(q(n.id)+" %"+q(g<<d.b.Z)+" %%"+q(n.B)+" "+r(n.kb)+" "+r(n.size)+
|
||||||
" "+l),c!=Ob&&(c=-1),l=0);a+=d.b.ma;g++}}});B(this)};
|
" "+l),c!=Pb&&(c=-1),l=0);a+=d.b.ma;g++}}});B(this)};
|
||||||
m.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ba=this.T[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",oc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.H<d.F.length-1&&(b=d.F[++d.H]):40==a.keyCode&&(0<d.H?b=d.F[--d.H]:(b="",d.H=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.T[b]=c,Ba(c,function(){if(d.Ba){var a=d.Ba.value;d.Ba.value=
|
m.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ca=this.T[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",rc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.H<d.F.length-1&&(b=d.F[++d.H]):40==a.keyCode&&(0<d.H?b=d.F[--d.H]:(b="",d.H=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.T[b]=c,Ba(c,function(){if(d.Ca){var a=d.Ca.value;d.Ca.value=
|
||||||
"";oc(d,a,!0);return!0}return!1}),!0;case "step":return this.T[b]=c,Ba(c,function(a){var b=!1;jb(d,!0)||(ib(d,!0),b=d.Ya(a?1:0),ib(d,!1));return b}),!0}return!1};m.jb=function(){this.Ba&&this.Ba.focus()};function X(a){a=a&&a.B;null==a&&(a=-1);return a}m.V=function(a,b){var c=255,d=X(a);-1!==d&&(c=vb(this.D,d),b&&Td(a,b));return c};m.mb=function(a,b){var c=65535,d=X(a);if(-1!==d){var c=this.D,e=d&c.F,f=(d&c.H)>>>c.Z,c=e!=c.F?c.D[f].yb(e,d):c.D[f++].ib(e,d)|c.D[f&c.W].ib(0,d+1)<<8;b&&Td(a,b)}return c};
|
"";rc(d,a,!0);return!0}return!1}),!0;case "step":return this.T[b]=c,Ba(c,function(a){var b=!1;jb(d,!0)||(ib(d,!0),b=d.Ya(a?1:0),ib(d,!1));return b}),!0}return!1};m.jb=function(){this.Ca&&this.Ca.focus()};function X(a){a=a&&a.B;null==a&&(a=-1);return a}m.V=function(a,b){var c=255,d=X(a);-1!==d&&(c=vb(this.D,d),b&&Ud(a,b));return c};m.mb=function(a,b){var c=65535,d=X(a);if(-1!==d){var c=this.D,e=d&c.F,f=(d&c.H)>>>c.Z,c=e!=c.F?c.D[f].yb(e,d):c.D[f++].ib(e,d)|c.D[f&c.W].ib(0,d+1)<<8;b&&Ud(a,b)}return c};
|
||||||
m.Ab=function(a,b,c){var d=X(a);-1!==d&&(wb(this.D,d,b),c&&Td(a,c),G(this.b,!0))};m.Ub=function(a,b,c){var d=X(a);if(-1!==d){var e=this.D,f=d&e.F,h=(d&e.H)>>>e.Z;f!=e.F?e.D[h].zb(f,b&65535,d):(e.D[h++].lb(f,b&255,d),e.D[h&e.W].lb(0,b>>8&255,d+1));c&&Td(a,c);G(this.b,!0)}};function W(a){return{B:a||0,ua:!1}}function Ud(a){return[a.B,a.ua]}function Vd(a){return{B:a[0],ua:a[1]}}
|
m.Ab=function(a,b,c){var d=X(a);-1!==d&&(wb(this.D,d,b),c&&Ud(a,c),sc(this.b,!0))};m.Ub=function(a,b,c){var d=X(a);if(-1!==d){var e=this.D,f=d&e.F,h=(d&e.H)>>>e.Z;f!=e.F?e.D[h].zb(f,b&65535,d):(e.D[h++].lb(f,b&255,d),e.D[h&e.W].lb(0,b>>8&255,d+1));c&&Ud(a,c);sc(this.b,!0)}};function W(a){return{B:a,va:!1}}function Vd(a){return[a.B,a.va]}function Wd(a){return{B:a[0],va:a[1]}}
|
||||||
function Y(a,b,c){var d;c=(c?a.Y:a.Fb).B;if(void 0!==b){d=b=Wd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].xa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Xd(a,b,void 0)}null!=c&&(d=W(c));return d}function Yd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Vb=Zd(a,b.Sb=c[2]))}function Td(a,b){null!=a.B&&(a.B+=b||1)}function Z(a){return q(a,4)}
|
function Y(a,b,c){var d;c=(c?a.Y:a.Fb).B;if(void 0!==b){d=b=Xd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].ya[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Yd(a,b,void 0)}null!=c&&(d=W(c));return d}function Zd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Vb=$d(a,b.Sb=c[2]))}function Ud(a,b){null!=a.B&&(a.B+=b||1)}function Z(a){return q(a,4)}
|
||||||
function $d(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.V(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ld(a,b){a.C=a;a.ga=a.Wb=1073741824;a.Da=null;var c=Zd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Rd)0<=la(c,d)&&(a.ga|=Rd[d],a.g(d+" messages enabled"))}function Sd(a,b){for(var c in Rd)if(64==Rd[c]){a.$a[c]=b;break}}
|
function ae(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.V(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Md(a,b){a.C=a;a.ga=a.Wb=1073741824;a.Ea=null;var c=$d(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Sd)0<=la(c,d)&&(a.ga|=Sd[d],a.g(d+" messages enabled"))}function Td(a,b){for(var c in Sd)if(64==Sd[c]){a.$a[c]=b;break}}
|
||||||
function ae(a,b){var c;a=a.toUpperCase();null==b?c=la(Pd,a):(c=la(Pd,a.substr(b,3)),0>c&&(c=la(Pd,a.substr(b,2))));return c}function be(a,b){var c=0,d=ce(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"}
|
function be(a,b){var c;a=a.toUpperCase();null==b?c=la(Qd,a):(c=la(Qd,a.substr(b,3)),0>c&&(c=la(Qd,a.substr(b,2))));return c}function ce(a,b){var c=0,d=de(a,b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:c=4}return c?q(d,c):"??"}
|
||||||
function ce(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.L;break;case 1:c=d.P;break;case 8:c=Dc(d);break;case 2:c=d.M;break;case 3:c=d.R;break;case 9:c=Fc(d);break;case 4:c=d.N;break;case 5:c=d.S;break;case 10:c=L(d);break;case 6:c=d.V(L(d));break;case 11:c=d.ba;break;case 12:c=d.O;break;case 13:c=d.j<<8|Cc(d)&255}}return c}
|
function de(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.L;break;case 1:c=d.M;break;case 8:c=Hc(d);break;case 2:c=d.N;break;case 3:c=d.O;break;case 9:c=Jc(d);break;case 4:c=d.P;break;case 5:c=d.S;break;case 10:c=J(d);break;case 6:c=d.V(J(d));break;case 11:c=d.ca;break;case 12:c=d.R;break;case 13:c=d.j<<8|Gc(d)&255}}return c}
|
||||||
function de(a,b){b=Wd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=ae(b,c+1),0<=e&&(b=b.substr(0,c)+be(a,e)+b.substr(c+1+Pd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Y(a,e))?(d=e+' "'+$d(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Y(a,e))?(Td(d),d=e+' "'+
|
function ee(a,b){b=Xd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=be(b,c+1),0<=e&&(b=b.substr(0,c)+ce(a,e)+b.substr(c+1+Qd[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Y(a,e))?(d=e+' "'+ae(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Y(a,e))?(Ud(d),d=e+' "'+
|
||||||
$d(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(W(this.b.O).B));if(!this.Da||a!=this.Da)if(this.Da=a,this.ga&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Wa=0;c.F-=c.b;c.b=0;G(c)}};function gb(a,b,c,d,e,f,h,g){g|=256;null!=e&&(a.ga&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
|
ae(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(W(this.b.R).B));if(!this.Ea||a!=this.Ea)if(this.Ea=a,this.ga&-2147483648&&(this.ea(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Wa=0;c.F-=c.b;c.b=0;sc(c)}};function gb(a,b,c,d,e,f,h,g){g|=256;null!=e&&(a.ga&g)!=g||a.message(b.ab+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
|
||||||
function Kd(a){var b;if(qd(a)){if(!a.W||!a.W.length){a.W=Array(1E3);for(b=0;b<a.W.length;b++)a.W[b]=W();a.ta=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.W&&a.W.length&&a.g("instruction history buffer freed"),a.ta=0,a.W=[],a.K=[]}m.La=function(a){if(!ee(this))return!1;this.b.La(a);return!0};
|
function Ld(a){var b;if(qd(a)){if(!a.W||!a.W.length){a.W=Array(1E3);for(b=0;b<a.W.length;b++)a.W[b]=W();a.ua=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.W&&a.W.length&&a.g("instruction history buffer freed"),a.ua=0,a.W=[],a.K=[]}m.La=function(a){if(!fe(this))return!1;this.b.La(a);return!0};
|
||||||
m.Ya=function(a,b,c){if(!ee(this))return!1;this.U=0;a||qd(this)&&rd(this,this.b.O,0);try{var d=this.b.Ya(a);0<d&&(this.U+=d,tc(this.b,d,!0),qc(this.b,d),this.ja++)}catch(e){"number"!=typeof e&&(this.U=0,lb(this.b,e.stack||e.message))}!1!==c&&G(this.b);this.qa(b||!1);return 0<this.U};m.da=function(a){this.b&&this.b.da(a)};m.qa=function(a){void 0===a&&(a=!0);this.Y=W(this.b.O);a&&1!=this.ea?fe(this):ge(this)};
|
m.Ya=function(a,b,c){if(!fe(this))return!1;this.U=0;a||qd(this)&&rd(this,this.b.R,0);try{var d=this.b.Ya(a);0<d&&(this.U+=d,xc(this.b,d,!0),uc(this.b,d),this.ja++)}catch(e){"number"!=typeof e&&(this.U=0,lb(this.b,e.stack||e.message))}!1!==c&&sc(this.b);this.ra(b||!1);return 0<this.U};m.ea=function(a){this.b&&this.b.ea(a)};m.ra=function(a){void 0===a&&(a=!0);this.Y=W(this.b.R);a&&1!=this.fa?ge(this):he(this)};
|
||||||
function ee(a){var b;if(b=a.b&&kb(a.b))b=a.b,b.w.ha?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!jb(a.b)?(a=a.b,a.w.Pa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.wa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.va=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Kd(this);this.ja=this.Ma=0;this.Da=null;this.U=0;this.Y=W(this.b.O);this.w.ia=!1;he(this);a||this.qa()};
|
function fe(a){var b;if(b=a.b&&kb(a.b))b=a.b,b.w.ha?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!jb(a.b)?(a=a.b,a.w.Pa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.xa=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.wa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Ld(this);this.ja=this.Ma=0;this.Ea=null;this.U=0;this.Y=W(this.b.R);this.w.ia=!1;ie(this);a||this.ra()};
|
||||||
m.save=function(){var a=new I(this);K(a,0,Ud(this.Y));K(a,1,Ud(this.ka));K(a,2,[this.F,this.sa,this.ga]);K(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Vd(a[b++]),this.ka=Vd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.sa=a[b][1],this.ga|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ea||this.g("running");this.w.ia=!0;this.$b=a;this.ec=b};
|
m.save=function(){var a=new H(this);I(a,0,Vd(this.Y));I(a,1,Vd(this.ka));I(a,2,[this.F,this.ta,this.ga]);I(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Wd(a[b++]),this.ka=Wd(a[b++]),this.F=a[b][0],"string"==typeof this.F&&(this.F=[this.F]),this.ta=a[b][1],this.ga|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.fa||this.g("running");this.w.ia=!0;this.$b=a;this.ec=b};
|
||||||
m.stop=function(a,b){if(this.w.ia){this.w.ia=!1;this.U=b-this.ec;if(!this.ea){var c="stopped";if(this.U){var d=a-this.$b,e=0<d?Math.round(1E3*this.U/d):0,c=c+" (";qd(this)&&(c+=this.ja+" opcodes, ",this.Ma-=this.ja,this.ja=0);c+=this.U+" cycles, "+d+" ms, "+e+" hz)"}else hb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.qa(!0);this.jb();he(this,this.b.O)}};function qd(a){return 1<a.A.length||!!a.Ca}
|
m.stop=function(a,b){if(this.w.ia){this.w.ia=!1;this.U=b-this.ec;if(!this.fa){var c="stopped";if(this.U){var d=a-this.$b,e=0<d?Math.round(1E3*this.U/d):0,c=c+" (";qd(this)&&(c+=this.ja+" opcodes, ",this.Ma-=this.ja,this.ja=0);c+=this.U+" cycles, "+d+" ms, "+e+" hz)"}else hb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.ra(!0);this.jb();ie(this,this.b.R)}};function qd(a){return 1<a.A.length||!!a.Da}
|
||||||
function rd(a,b,c){var d=a.b;if(0<c&&(a.Ca&&!--a.Ca||Yb(a,b,1,a.A)))return!0;0<=c&&a.K.length&&(a.ja++,b=vb(a.D,b),null!=b&&(a.K[b][1]++,b=a.W[a.ta],b.B=d.O,b.ua=!1,++a.ta==a.W.length&&(a.ta=0)));return!1}function Gb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.da(!0)}function Jb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.da(!0)}
|
function rd(a,b,c){var d=a.b;if(0<c&&(a.Da&&!--a.Da||Zb(a,b,1,a.A)))return!0;0<=c&&a.K.length&&(a.ja++,b=vb(a.D,b),null!=b&&(a.K[b][1]++,b=a.W[a.ua],b.B=d.R,b.va=!1,++a.ua==a.W.length&&(a.ua=0)));return!1}function Hb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.ea(!0)}function Kb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.ea(!0)}
|
||||||
function Jd(a){var b,c;a.A=["bp"];if(void 0!==a.ca)for(b=1;b<a.ca.length;b++){c=a.ca[b];var d=a.b;Zb(d.la[X(c)>>>d.Z],!1)}a.ca=["br"];if(void 0!==a.I)for(b=1;b<a.I.length;b++)c=a.I[b],d=a.b,Zb(d.la[X(c)>>>d.Z],!0);a.I=["bw"];a.Kb=0}m.Ea=function(a,b,c){var d=!0;c||ie(this,a,b,!1,!0);if(a!=this.A){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.B)),d=!1;else{var f=this.b;f.la[e>>>f.Z].Ea(e&f.H,a==this.I)}}d&&(a.push(b),c?b.ua=!0:(je(this,a,a.length-1,"set"),Kd(this)));return d};
|
function Kd(a){var b,c;a.A=["bp"];if(void 0!==a.ba)for(b=1;b<a.ba.length;b++){c=a.ba[b];var d=a.b;$b(d.la[X(c)>>>d.Z],!1)}a.ba=["br"];if(void 0!==a.I)for(b=1;b<a.I.length;b++)c=a.I[b],d=a.b,$b(d.la[X(c)>>>d.Z],!0);a.I=["bw"];a.Kb=0}m.Fa=function(a,b,c){var d=!0;c||je(this,a,b,!1,!0);if(a!=this.A){var e=X(b);if(-1===e)this.g("invalid address: "+Z(b.B)),d=!1;else{var f=this.b;f.la[e>>>f.Z].Fa(e&f.H,a==this.I)}}d&&(a.push(b),c?b.va=!0:(ke(this,a,a.length-1,"set"),Ld(this)));return d};
|
||||||
function ie(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==X(g)&&(!d||g.ua)){f=!0;g.ua||e||je(a,b,h,"cleared");b.splice(h,1);b!=a.A&&(d=a.b,Zb(d.la[c>>>d.Z],b==a.I));g.ua||Kd(a);break}}return f}function ke(a,b){for(var c=1;c<b.length;c++)je(a,b,c);return b.length-1}function je(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.B)+(d?" "+d:c.Sb?' "'+c.Sb+'"':""))}
|
function je(a,b,c,d,e){var f=!1;c=X(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==X(g)&&(!d||g.va)){f=!0;g.va||e||ke(a,b,h,"cleared");b.splice(h,1);b!=a.A&&(d=a.b,$b(d.la[c>>>d.Z],b==a.I));g.va||Ld(a);break}}return f}function le(a,b){for(var c=1;c<b.length;c++)ke(a,b,c);return b.length-1}function ke(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.B)+(d?" "+d:c.Sb?' "'+c.Sb+'"':""))}
|
||||||
function he(a,b){if(void 0!==b)Yb(a,b,1,a.A,!0),a.ea=0;else for(var c=1;c<a.A.length;c++){var d=a.A[c];if(d.ua){if(!ie(a,a.A,d,!0))break;c=0}}}
|
function ie(a,b){if(void 0!==b)Zb(a,b,1,a.A,!0),a.fa=0;else for(var c=1;c<a.A.length;c++){var d=a.A[c];if(d.va){if(!je(a,a.A,d,!0))break;c=0}}}
|
||||||
function Yb(a,b,c,d,e){var f=!1;if(!a.Kb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.ua)for(var k=X(g),l=0;l<c;l++)if(b+l==k){var n,f=!0;g.ua&&(ie(a,d,g,!0),e=!0);if(n=g.Vb){for(var f=!1,p=0;p<n.length;p++)if(!le(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var z=p+1;z<n.length&&n[z].indexOf("else");z++)p++;if(z==n.length){f=!0;break}}a.b.w.ia||(f=!0)}if(f){e||je(a,d,h,"hit");break}}}a.Kb--;return f}
|
function Zb(a,b,c,d,e){var f=!1;if(!a.Kb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.va)for(var k=X(g),l=0;l<c;l++)if(b+l==k){var n,f=!0;g.va&&(je(a,d,g,!0),e=!0);if(n=g.Vb){for(var f=!1,p=0;p<n.length;p++)if(!me(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var z=p+1;z<n.length&&n[z].indexOf("else");z++)p++;if(z==n.length){f=!0;break}}a.b.w.ia||(f=!0)}if(f){e||ke(a,d,h,"hit");break}}}a.Kb--;return f}
|
||||||
function me(a,b,c,d){for(var e=W(b.B),f=a.V(b,1),h=a.Cb[f],g="",k=(8086!=a.aa?Nd:Od)[h[0]],l=h.length-1,n=0,p,z=1;z<=l;z++){var C="";p=h[z];if(void 0!==p&&!(p&16384&&a.aa==Id)){var v=p&240;if(v){var Ea=p&15;Ea?n=Ea:p|=n;p&61440||(p|=1==z?8192:4096);if(v&32)a:{var C=a,v=p,Ea=b,D=" ";switch(v&15){case 1:D=q(C.V(Ea,1),2);break;case 2:D=q(C.V(Ea,1)<<24>>24,4);break;case 3:D=q(C.mb(Ea,2),4);break;default:C="imm("+r(v)+")";break a}8086==C.aa&&v&64?D="["+D+"]":v&16||(D=(C.aa==Id?"$":"0x")+D);C=D}else v&
|
function ne(a,b,c,d){for(var e=W(b.B),f=a.V(b,1),h=a.Cb[f],g="",k=(8086!=a.aa?Od:Pd)[h[0]],l=h.length-1,n=0,p,z=1;z<=l;z++){var D="";p=h[z];if(void 0!==p&&!(p&16384&&a.aa==Jd)){var v=p&240;if(v){var Da=p&15;Da?n=Da:p|=n;p&61440||(p|=1==z?8192:4096);if(v&32)a:{var D=a,v=p,Da=b,E=" ";switch(v&15){case 1:E=q(D.V(Da,1),2);break;case 2:E=q(D.V(Da,1)<<24>>24,4);break;case 3:E=q(D.mb(Da,2),4);break;default:D="imm("+r(v)+")";break a}8086==D.aa&&v&64?E="["+E+"]":v&16||(E=(D.aa==Jd?"$":"0x")+E);D=E}else v&
|
||||||
16?(C=(p&3840)>>8,v=Pd[C],8086==a.aa&&p&64&&(6==C&&(v="HL"),v="["+v+"]"),C=v):v&128&&(C=(f>>3&7).toString());if(!C||!C.length){g="INVALID";break}0<g.length&&(g+=",");g+=C||"???"}}}f="";h=Z(e.B)+" ";if(-1!==e.B&&-1!==b.B){do if(f+=q(a.V(e,1),2),null==e.B)break;while(e.B!=b.B)}h+=ga(f,10);h=h+(p&32768?"*":" ")+ga(k,7);g&&(h+=" "+g);c&&(h=ga(h,40)+";"+c,h=a.b.w.Oa?h+("cycles="+rc(a.b).toString()+" cs="+q(a.b.i.bb)):h+(null!=d?"="+d.toString():""));return h}
|
16?(D=(p&3840)>>8,v=Qd[D],8086==a.aa&&p&64&&(6==D&&(v="HL"),v="["+v+"]"),D=v):v&128&&(D=(f>>3&7).toString());if(!D||!D.length){g="INVALID";break}0<g.length&&(g+=",");g+=D||"???"}}}f="";h=Z(e.B)+" ";if(-1!==e.B&&-1!==b.B){do if(f+=q(a.V(e,1),2),null==e.B)break;while(e.B!=b.B)}h+=ga(f,10);h=h+(p&32768?"*":" ")+ga(k,7);g&&(h+=" "+g);c&&(h=ga(h,40)+";"+c,h=a.b.w.Oa?h+("cycles="+vc(a.b).toString()+" cs="+q(a.b.i.bb)):h+(null!=d?"="+d.toString():""));return h}
|
||||||
function Me(a,b){var c;switch(b){case "I":c=a.b.oa&512;break;case "S":c=Lc(a.b);break;case "Z":c=Kc(a.b);break;case "A":c=Jc(a.b);break;case "P":c=Ic(a.b);break;case "C":c=Hc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Ne(a,b){return Pd[b]+"="+be(a,b)+" "}function Oe(a){return Ne(a,7)+Ne(a,8)+Ne(a,9)+Ne(a,10)+Ne(a,11)+Me(a,"I")+Me(a,"S")+Me(a,"Z")+Me(a,"A")+Me(a,"P")+Me(a,"C")}
|
function Me(a,b){var c;switch(b){case "I":c=a.b.oa&512;break;case "S":c=Pc(a.b);break;case "Z":c=Oc(a.b);break;case "A":c=Nc(a.b);break;case "P":c=Mc(a.b);break;case "C":c=Lc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Ne(a,b){return Qd[b]+"="+ce(a,b)+" "}function Oe(a){return Ne(a,7)+Ne(a,8)+Ne(a,9)+Ne(a,10)+Ne(a,11)+Me(a,"I")+Me(a,"S")+Me(a,"Z")+Me(a,"A")+Me(a,"P")+Me(a,"C")}
|
||||||
var Pe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
var Pe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||||
function Qe(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 Qe(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 Xd(a,b,c){var d;if(b){b=Wd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var n=l[e++],p=n.length,n=ha(n);if(!n){f=!0;break}n=Re(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],z=n.length;k.length&&Pe[n]<Pe[k[k.length-1]]&&Qe(g,k,1);k.push(n);b=b.substr(p+z)}Qe(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Se(a,null,
|
function Yd(a,b,c){var d;if(b){b=Xd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var n=l[e++],p=n.length,n=ha(n);if(!n){f=!0;break}n=Re(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}g.push(n);if(e==l.length)break;var n=l[e++],z=n.length;k.length&&Pe[n]<Pe[k[k.length-1]]&&Qe(g,k,1);k.push(n);b=b.substr(p+z)}Qe(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Se(a,null,
|
||||||
d))}return d}function Wd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Xd(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=Y(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.mb(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ja-a.Ma}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
d))}return d}function Xd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Yd(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=Y(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.mb(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ja-a.Ma}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
||||||
function Re(a,b,c,d){var e;void 0!==b?(e=ae(b),0<=e?e=ce(a,e):(e=a.ra[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
function Re(a,b,c,d){var e;void 0!==b?(e=be(b),0<=e?e=de(a,e):(e=a.sa[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||||
function Se(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,n="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Te(a,b){if(b)return Se(a,b,a.ra[b]);var c=0;for(b in a.ra)Se(a,b,a.ra[b]),c++;return 0<c}Hd.prototype.Eb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
function Se(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,n="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)n="?"+n;else for(;0<l--;)n=(k&1?"1":"0")+n,k>>=1;h=n+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Te(a,b){if(b)return Se(a,b,a.sa[b]);var c=0;for(b in a.sa)Se(a,b,a.sa[b]),c++;return 0<c}Id.prototype.Eb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||||
function Ue(a,b,c){var d=[],e=X(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.B>>>0,g=f.gc;if(e>=h&&e<h+g){e=ia(f.Bb,[e-h],a.Eb);0<=e?Ve(a,b,e,d):c&&(e=~e,Ve(a,b,e-1,d),Ve(a,b,e,d));break}}return d}function Ve(a,b,c,d){var e={},f=a.J[b].Bb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].xa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
|
function Ue(a,b,c){var d=[],e=X(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.B>>>0,g=f.gc;if(e>=h&&e<h+g){e=ia(f.Bb,[e-h],a.Eb);0<=e?Ve(a,b,e,d):c&&(e=~e,Ve(a,b,e-1,d),Ve(a,b,e,d));break}}return d}function Ve(a,b,c,d){var e={},f=a.J[b].Bb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].ya[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
|
||||||
function We(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.aa?Nd:Od;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Cb[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
|
function We(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.aa?Od:Pd;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Cb[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
|
||||||
function Xe(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Te(a)||a.g("no variables"),!0;if(!c[2])return Te(a,c[1]);if(!c[3])return delete a.ra[c[1]],!0;var d=Xd(a,c[3]);return void 0!==d?(a.ra[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
function Xe(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Te(a)||a.g("no variables"),!0;if(!c[2])return Te(a,c[1]);if(!c[3])return delete a.sa[c[1]],!0;var d=Yd(a,c[3]);return void 0!==d?(a.sa[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||||
function Ye(a,b,c){var d=null;if(b=Y(a,b,!0)){var e=Ue(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.B-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.B)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
function Ye(a,b,c){var d=null;if(b=Y(a,b,!0)){var e=Ue(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.B-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.B)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||||
function Ze(a,b){switch(b[1]){case "8080":a.aa=Id;break;case "8086":a.aa=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Ta=c;break;case "start":a.b.i.cb=c;break;case "stop":a.b.i.Va=c;break;default:a.g("unknown cs option");return}void 0!==c&&nc(a.b);a.g("checksums "+(a.b.w.Oa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(sc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Ha.toFixed(2)+"Mhz")+" ("+
|
function Ze(a,b){switch(b[1]){case "8080":a.aa=Jd;break;case "8086":a.aa=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Ta=c;break;case "start":a.b.i.cb=c;break;case "stop":a.b.i.Va=c;break;default:a.g("unknown cs option");return}void 0!==c&&qc(a.b);a.g("checksums "+(a.b.w.Oa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(wc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Ha.toFixed(2)+"Mhz")+" ("+
|
||||||
a.b.i.Ja+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.aa+"-style mnemonics enabled")}
|
a.b.i.Ja+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.aa+"-style mnemonics enabled")}
|
||||||
function fe(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Xd(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.L=g&255;break;case "BC":d.L=g>>8&255;case "C":d.P=g&255;break;case "D":d.M=
|
function ge(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Yd(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.L=g&255;break;case "BC":d.L=g>>8&255;case "C":d.M=g&255;break;case "D":d.N=
|
||||||
g&255;break;case "DE":d.M=g>>8&255;case "E":d.R=g&255;break;case "H":d.N=g&255;break;case "HL":d.N=g>>8&255;case "L":d.S=g&255;break;case "SP":d.ba=g&65535;break;case "PC":H(d,g);a.Y=W(d.O);break;case "PS":Ac(d,g);break;case "C":d.G=g?d.G|256:d.G&255;break;case "P":g?Ic(d)||(d.X^=1):Ic(d)&&(d.X^=1);break;case "A":d.fa=g?~d.X&16|d.fa&-17:d.X&16|d.fa&-17;break;case "Z":d.G=g?d.G&-256:d.G|255;break;case "S":g?Lc(d)||(d.X^=192):Lc(d)&&(d.X^=192);break;case "I":d.oa=g?d.oa|512:d.oa&-513;break;default:a.g("unknown register: "+
|
g&255;break;case "DE":d.N=g>>8&255;case "E":d.O=g&255;break;case "H":d.P=g&255;break;case "HL":d.P=g>>8&255;case "L":d.S=g&255;break;case "SP":d.ca=g&65535;break;case "PC":G(d,g);a.Y=W(d.R);break;case "PS":Ec(d,g);break;case "C":d.G=g?d.G|256:d.G&255;break;case "P":g?Mc(d)||(d.X^=1):Mc(d)&&(d.X^=1);break;case "A":d.da=g?~d.X&16|d.da&-17:d.X&16|d.da&-17;break;case "Z":d.G=g?d.G&-256:d.G|255;break;case "S":g?Pc(d)||(d.X^=192):Pc(d)&&(d.X^=192);break;case "I":d.oa=g?d.oa|512:d.oa&-513;break;default:a.g("unknown register: "+
|
||||||
e);return}if(!h){a.g("invalid value: "+f);return}G(d);a.g("updated registers:")}a.g(Oe(a));c&&(a.Y=W(d.O),ge(a,Z(a.Y.B)))}}function $e(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(de(a,c[2])):Xd(a,b,!0)}function af(a,b,c){var d="t"!=b;c=Re(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Aa(c,function(){return ib(a,!0)&&a.Ya(e,d,!1)},function(){G(a.b);ib(a,!1)})}
|
e);return}if(!h){a.g("invalid value: "+f);return}sc(d);a.g("updated registers:")}a.g(Oe(a));c&&(a.Y=W(d.R),he(a,Z(a.Y.B)))}}function $e(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ee(a,c[2])):Yd(a,b,!0)}function af(a,b,c){var d="t"!=b;c=Re(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Aa(c,function(){return ib(a,!0)&&a.Ya(e,d,!1)},function(){sc(a.b);ib(a,!1)})}
|
||||||
function ge(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.ea?a.U:null;var h=null!=f?"cycles":null,g=Ue(a,b),k=b.B;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=me(a,b,h,f);a.g(f);a.Y=b;e-=b.B-k;c++}}}
|
function he(a,b,c,d){if(b=Y(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Y(a,c,!0);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=jb(a,!1)||a.fa?a.U:null;var h=null!=f?"cycles":null,g=Ue(a,b),k=b.B;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=ne(a,b,h,f);a.g(f);a.Y=b;e-=b.B-k;c++}}}
|
||||||
function Zd(a,b,c,d){if(c)if(b){0>a.H&&a.F.length&&(a.H=0);if(0>a.H||b!=a.F[a.H])a.F.splice(0,0,b),a.H=0;a.H--}else b=a.F[a.H+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a}
|
function $d(a,b,c,d){if(c)if(b){0>a.H&&a.F.length&&(a.H=0);if(0>a.H||b!=a.F[a.H])a.F.splice(0,0,b),a.H=0;a.H--}else b=a.F[a.H+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a}
|
||||||
function le(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.sa&&(a.g("ended assemble at "+Z(a.ka.B)),a.Y=a.ka,a.sa=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Da=null;if(kb(a)&&0<b.length){a.sa&&(b="a "+Z(a.ka.B)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Y(a,f[1],!0);if(n)if(a.ka=
|
function me(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.ta&&(a.g("ended assemble at "+Z(a.ka.B)),a.Y=a.ka,a.ta=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Ea=null;if(kb(a)&&0<b.length){a.ta&&(b="a "+Z(a.ka.B)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Y(a,f[1],!0);if(n)if(a.ka=
|
||||||
n,void 0===f[2])a.g("begin assemble at "+Z(n.B)),a.sa=!0,G(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var z=0;z<p.length;z++)a.Ab(n,p[z],1);a.g(me(a,a.ka))}}break;case "b":a:{var C=f[0],v=f[1],Ea=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
|
n,void 0===f[2])a.g("begin assemble at "+Z(n.B)),a.ta=!0,sc(a.b);else{var p;a.g("not supported yet");p=[];if(p.length){for(var z=0;z<p.length;z++)a.Ab(n,p[z],1);a.g(ne(a,a.ka))}}break;case "b":a:{var D=f[0],v=f[1],Da=b;if("?"==v)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 D=C.charAt(1);if("l"==D){var Za=0,Za=Za+ke(a,a.A),Za=Za+ke(a,a.ca);(Za+=ke(a,a.I))||a.g("no breakpoints")}else if("n"==D)a.Ca=Re(a,v),a.g("break after "+a.Ca+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var J=W();if("*"!=v&&(J=Y(a,v,!0),!J))break a;v=r(J.B);"c"==D?null==J.B?(Jd(a),a.g("all breakpoints cleared")):ie(a,a.A,J)||ie(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 E=D.charAt(1);if("l"==E){var Ya=0,Ya=Ya+le(a,a.A),Ya=Ya+le(a,a.ba);(Ya+=le(a,a.I))||a.g("no breakpoints")}else if("n"==E)a.Da=Re(a,v),a.g("break after "+a.Da+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var K=W();if("*"!=v&&(K=Y(a,v,!0),!K))break a;v=r(K.B);"c"==E?null==K.B?(Kd(a),a.g("all breakpoints cleared")):je(a,a.A,K)||je(a,
|
||||||
a.ca,J)||ie(a,a.I,J)||a.g("breakpoint missing: "+Z(J.B)):"i"==D?a.g("breakpoint "+(Eb(a.D,J.B)?"enabled":"cleared")+": port "+v+" (input)"):"o"==D?a.g("breakpoint "+(Hb(a.D,J.B)?"enabled":"cleared")+": port "+v+" (output)"):null!=J.B&&(Yd(a,J,Ea),"p"==D?a.Ea(a.A,J):"r"==D?a.Ea(a.ca,J):"w"==D?a.Ea(a.I,J):a.g("unknown breakpoint command: "+D))}}}break;case "c":a.Fa&&(a.Fa.value="");break;case "d":a:{var $a,ab=f[0],sa=f[1],Ja=f[2],xf=f[3];if("?"==sa){var ta="";for($a in Rd)a.$a[$a]&&(ta&&(ta+=","),ta+=
|
a.ba,K)||je(a,a.I,K)||a.g("breakpoint missing: "+Z(K.B)):"i"==E?a.g("breakpoint "+(Fb(a.D,K.B)?"enabled":"cleared")+": port "+v+" (input)"):"o"==E?a.g("breakpoint "+(Ib(a.D,K.B)?"enabled":"cleared")+": port "+v+" (output)"):null!=K.B&&(Zd(a,K,Da),"p"==E?a.Fa(a.A,K):"r"==E?a.Fa(a.ba,K):"w"==E?a.Fa(a.I,K):a.g("unknown breakpoint command: "+E))}}}break;case "c":a.qa&&(a.qa.value="");break;case "d":a:{var Za,$a=f[0],ra=f[1],Ia=f[2],xf=f[3];if("?"==ra){var sa="";for(Za in Sd)a.$a[Za]&&(sa&&(sa+=","),sa+=
|
||||||
$a);ta+=",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");ta.length&&a.g("dump extension commands:\n\t"+ta)}else if("state"==sa){var ne=bf(a.u,!0);"console"==Ja?console.log(ne):(a.Fa&&(a.Fa.value=""),a.g(ne))}else if("symbols"==sa)for(var Pc=0;Pc<a.J.length;Pc++){var Qc=a.J[Pc],cb;for(cb in Qc.xa)if("."!=
|
Za);sa+=",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");sa.length&&a.g("dump extension commands:\n\t"+sa)}else if("state"==ra){var oe=bf(a.u,!0);"console"==Ia?console.log(oe):(a.qa&&(a.qa.value=""),a.g(oe))}else if("symbols"==ra)for(var Sc=0;Sc<a.J.length;Sc++){var Tc=a.J[Sc],bb;for(bb in Tc.ya)if("."!=
|
||||||
cb.charAt(0)){var oe=Qc.xa[cb].o;if(void 0!==oe){var pe=Qc.xa[cb].l;pe&&(cb=pe);a.g(Z(oe)+" "+cb)}}}else{if("d"==ab){for($a in Rd)if(f[1]==$a){var qe=a.$a[$a];qe?(f.shift(),f.shift(),qe(f)):a.g("no dump registered for "+sa);break a}sa||(ab=a.fc||"db")}else a.fc=ab;if("dh"==ab){var re=sa,se=Ja,te="",ue=0,Q=a.ta,ua=a.W;if(ua.length){var U=+re||a.Lb,db=+se||10;isNaN(U)?U=db:te="more ";U>ua.length&&(a.g("note: only "+ua.length+" available"),U=ua.length);Q-=U;0>Q&&(null==ua[ua.length-1].B?(U=Q+U,Q=0):
|
bb.charAt(0)){var pe=Tc.ya[bb].o;if(void 0!==pe){var qe=Tc.ya[bb].l;qe&&(bb=qe);a.g(Z(pe)+" "+bb)}}}else{if("d"==$a){for(Za in Sd)if(f[1]==Za){var re=a.$a[Za];re?(f.shift(),f.shift(),re(f)):a.g("no dump registered for "+ra);break a}ra||($a=a.fc||"db")}else a.fc=$a;if("dh"==$a){var se=ra,te=Ia,ue="",ve=0,R=a.ua,ta=a.W;if(ta.length){var V=+se||a.Lb,cb=+te||10;isNaN(V)?V=cb:ue="more ";V>ta.length&&(a.g("note: only "+ta.length+" available"),V=ta.length);R-=V;0>R&&(null==ta[ta.length-1].B?(V=R+V,R=0):
|
||||||
Q+=ua.length);var Rc=[];"call"==se&&(db=1E5,Rc=["CALL"]);for(void 0!==re&&a.g(U+" instructions earlier:");0<db&&Q!=a.ta;){var ve=ua[Q++];if(null==ve.B)break;var xb=W(ve.B),yf=U--,we=me(a,xb,"history",yf);(!Rc.length||0<=we.indexOf(Rc[0]))&&a.g(we);xb.sb&&(Q+=xb.sb,db-=xb.sb,U-=xb.sb);Q>=ua.length&&(Q=0);a.Lb=U;ue++;db--}}ue||(a.g("no "+te+"history available"),a.Lb=void 0)}else{var cc=Y(a,sa);if(cc){var dc=0;Ja&&("l"==Ja.charAt(0)&&(Ja=Ja.substr(1)||xf),dc=Re(a,Ja)>>>0,65536<dc&&(dc=65536));for(var Ka=
|
R+=ta.length);var Uc=[];"call"==te&&(cb=1E5,Uc=["CALL"]);for(void 0!==se&&a.g(V+" instructions earlier:");0<cb&&R!=a.ua;){var we=ta[R++];if(null==we.B)break;var xb=W(we.B),yf=V--,xe=ne(a,xb,"history",yf);(!Uc.length||0<=xe.indexOf(Uc[0]))&&a.g(xe);xb.sb&&(R+=xb.sb,cb-=xb.sb,V-=xb.sb);R>=ta.length&&(R=0);a.Lb=V;ve++;cb--}}ve||(a.g("no "+ue+"history available"),a.Lb=void 0)}else{var cc=Y(a,ra);if(cc){var dc=0;Ia&&("l"==Ia.charAt(0)&&(Ia=Ia.substr(1)||xf),dc=Re(a,Ia)>>>0,65536<dc&&(dc=65536));for(var Ja=
|
||||||
"",zf=(dc||128)+15>>4||1,Sc="dd"==ab?4:"dw"==ab?2:1,xe=0;xe<zf;xe++){for(var ec=0,Tc=0,yb="",Uc="",sa=Z(cc.B),Vc=0;16>Vc;Vc++){var fc=a.V(cc,1),ec=ec|fc<<(Tc++<<3);Tc==Sc&&(yb+=q(ec,2*Sc),yb+=1==Sc?7==Vc?"-":" ":" ",ec=Tc=0);Uc+=32<=fc&&128>fc?String.fromCharCode(fc):"."}Ka&&(Ka+="\n");Ka+=sa+" "+yb+" "+Uc}Ka&&a.g(Ka);a.Fb=cc}}}}break;case "e":if("else"==f[0])break;var gc=1,ye=255,ze=a.V,Ae=a.Ab;"ew"==f[0]&&(gc=2,ye=65535,ze=a.mb,Ae=a.Ub);var Be=gc<<1,Ce=f[1];if(null==Ce)a.g("edit memory commands:"),
|
"",ec="dd"==$a?4:"dw"==$a?2:1,fc=ec*dc||128,zf=fc+15>>4||1;zf--&&0<fc;){var gc=0,Vc=0,yb,zb="",Wc="",ra=Z(cc.B);for(yb=16;0<yb&&0<fc;yb--){var hc=a.V(cc,1),gc=gc|hc<<(Vc++<<3);Vc==ec&&(zb+=q(gc,2*ec),zb+=1==ec?9==yb?"-":" ":" ",gc=Vc=0);Wc+=32<=hc&&128>hc?String.fromCharCode(hc):".";fc--}Ja&&(Ja+="\n");Ja+=ra+" "+zb+(0==yb?" "+Wc:"")}Ja&&a.g(Ja);a.Fb=cc}}}}break;case "e":if("else"==f[0])break;var ic=1,ye=255,ze=a.V,Ae=a.Ab;"ew"==f[0]&&(ic=2,ye=65535,ze=a.mb,Ae=a.Ub);var Be=ic<<1,Ce=f[1];if(null==
|
||||||
a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var hc=Y(a,Ce);if(hc)for(var ic=2;ic<f.length;ic++){var zb=Xd(a,f[ic]);if(void 0===zb){a.g("unrecognized value: "+f[ic]);break}zb&~ye&&a.g("warning: "+q(zb)+" exceeds "+gc+"-byte value");var Af=ze.call(a,hc);a.g("changing "+Z(hc.B)+" from 0x"+q(Af,Be)+" to 0x"+q(zb,Be));Ae.call(a,hc,zb,gc)}}break;case "f":We(a,f[1]);break;case "g":a:{var De=f[1],Bf=b;if(void 0!==De){var Wc=Y(a,De,!0);if(!Wc)break a;
|
Ce)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 jc=Y(a,Ce);if(jc)for(var kc=2;kc<f.length;kc++){var Ab=Yd(a,f[kc]);if(void 0===Ab){a.g("unrecognized value: "+f[kc]);break}Ab&~ye&&a.g("warning: "+q(Ab)+" exceeds "+ic+"-byte value");var Af=ze.call(a,jc);a.g("changing "+Z(jc.B)+" from 0x"+q(Af,Be)+" to 0x"+q(Ab,Be));Ae.call(a,jc,Ab,ic)}}break;case "f":We(a,f[1]);break;case "g":a:{var De=f[1],Bf=b;if(void 0!==De){var Xc=
|
||||||
Yd(a,Wc,Bf);a.Ea(a.A,Wc,!0)}a.La(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":var Xc;a.w.ia?(Xc="halting",a.da()):Xc="already halted";c||a.g(Xc);break;case "i":if("if"==f[0]){var Yc;var Ab=b.substr(2),Ab=ha(Ab);Xd(a,Ab)?(c||a.g("true: "+Ab),Yc=!0):(c||a.g("false: "+Ab),Yc=!1);Yc||(d=!1);break}var Zc=f[1];if(Zc&&"?"!=Zc){var $c=Re(a,Zc);if(void 0!==$c){var Cf=Fb(a.D,$c);a.g(r($c)+": "+("0x"+q(Cf,2)))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");
|
Y(a,De,!0);if(!Xc)break a;Zd(a,Xc,Bf);a.Fa(a.A,Xc,!0)}a.La(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var Yc;if(a.w.ia)Yc="halting",a.ea();else{if(jb(a,!0))break a;Yc="already halted"}c||a.g(Yc)}break;case "i":if("if"==f[0]){var Zc;var Bb=b.substr(2),Bb=ha(Bb);Yd(a,Bb)?(c||a.g("true: "+Bb),Zc=!0):(c||a.g("false: "+Bb),Zc=!1);Zc||(d=!1);break}var $c=f[1];if($c&&"?"!=$c){var ad=Re(a,$c);if(void 0!==ad){var Cf=Gb(a.D,ad);a.g(r(ad)+": "+("0x"+q(Cf,2)))}}else a.g("input commands:"),
|
||||||
break;case "k":var Df=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var ad=0,Ee=W(),Bb=W(a.b.ba);for(a.g("stack trace for "+Z(Bb.B));10>ad;){for(var La=null,Ef=256;65536>Bb.B>>>0;){Ee.B=a.mb(Bb,2);if(null==Bb.B||!Ef--)break;for(var Ff=a,jc=Ee,Fe=null,Cb=jc.B,Ge=Cb,bd=1;6>=bd&&Cb;bd++){if(2<bd){jc.B=Cb;var kc=me(Ff,jc);if(0<kc.indexOf("CALL")){var He=kc.indexOf(" ");if(Cb+(kc.indexOf(" ",He+1)-He-1)/2==Ge){Fe=kc;break}}}Cb--}jc.B=
|
a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var Df=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var bd=0,Ee=W(),Cb=W(a.b.ca);for(a.g("stack trace for "+Z(Cb.B));10>bd;){for(var Ka=null,Ef=256;65536>Cb.B>>>0;){Ee.B=a.mb(Cb,2);if(null==Cb.B||!Ef--)break;for(var Ff=a,lc=Ee,Fe=null,Db=lc.B,Ge=Db,cd=1;6>=cd&&Db;cd++){if(2<cd){lc.B=Db;var mc=ne(Ff,lc);if(0<=mc.indexOf("CALL")){var He=
|
||||||
Ge;if(La=Fe)break}if(!La||null==La)break;var Ie=null;if("ks"==Df){var Je=La.match(/[0-9A-F]+$/);Je&&(Ie=Ye(a,Je[0]))}La=ga(La,50)+" ;"+(Ie||"stack="+Z(Bb.B));a.g(La);ad++}ad||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Ye(a,f[1],!0);break}break;case "m":a:{var va,wa=null,E=f[1];"?"==E&&(E=void 0);if(void 0!==E){var Ma=0;if("all"==E)Ma=1610481663,E=null;else if("on"==E)wa=!0,E=null;else if("off"==E)wa=!1,E=null;else{"keys"==E&&(E="key");"kbd"==E&&(E="keyboard");for(va in Rd)if(E==
|
mc.indexOf(" ");if(Db+(mc.indexOf(" ",He+1)-He-1)/2==Ge){Fe=mc;break}}}Db--}lc.B=Ge;if(Ka=Fe)break}if(!Ka||null==Ka)break;var Ie=null;if("ks"==Df){var Je=Ka.match(/[0-9A-F]+$/);Je&&(Ie=Ye(a,Je[0]))}Ka=ga(Ka,50)+" ;"+(Ie||"stack="+Z(Cb.B));a.g(Ka);bd++}bd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Ye(a,f[1],!0);break}break;case "m":a:{var ua,va=null,F=f[1];"?"==F&&(F=void 0);if(void 0!==F){var La=0;if("all"==F)La=1610481663,F=null;else if("on"==F)va=!0,F=null;else if("off"==F)va=
|
||||||
va){Ma=Rd[va];wa=!!(a.ga&Ma);break}if(!Ma){a.g("unknown message category: "+E);break a}}Ma&&("on"==f[2]?(a.ga|=Ma,wa=!0):"off"==f[2]&&(a.ga&=~Ma,wa=!1))}var Gf=0,Fa="";for(va in Rd)if(!E||E==va){var Hf=!!(a.ga&Rd[va]);if(null===wa||wa==Hf)Fa&&(Fa+=","),++Gf%10||(Fa+="\n\t"),"key"==va&&(va="keys"),Fa+=va}void 0===E&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==wa?wa?"messages on: ":"messages off: ":"message categories:\n\t")+(Fa||"none"));Kd(a)}break;case "o":var cd=
|
!1,F=null;else{"keys"==F&&(F="key");"kbd"==F&&(F="keyboard");for(ua in Sd)if(F==ua){La=Sd[ua];va=!!(a.ga&La);break}if(!La){a.g("unknown message category: "+F);break a}}La&&("on"==f[2]?(a.ga|=La,va=!0):"off"==f[2]&&(a.ga&=~La,va=!1))}var Gf=0,Ea="";for(ua in Sd)if(!F||F==ua){var Hf=!!(a.ga&Sd[ua]);if(null===va||va==Hf)Ea&&(Ea+=","),++Gf%10||(Ea+="\n\t"),"key"==ua&&(ua="keys"),Ea+=ua}void 0===F&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==va?va?"messages on: ":
|
||||||
f[1],If=f[2];if(cd&&"?"!=cd){var dd=Re(a,cd,"port #"),ed=Re(a,If);void 0!==dd&&void 0!==ed&&(Ib(a.D,dd,ed),a.g(r(dd)+": "+("0x"+q(ed,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]){$e(a,b.substr(5));break}var Ke="pr"==f[0]?1:0,Jf=1+Ke;if(a.ea)a.g("step in progress");else{var fd=W(a.b.O);switch(a.V(fd)){case 205:a.ea=Jf,Td(fd,3)}a.ea?(a.Ea(a.A,fd,!0),a.La()||(a.u&&a.u.jb(),a.ea=
|
"messages off: ":"message categories:\n\t")+(Ea||"none"));Ld(a)}break;case "o":var dd=f[1],If=f[2];if(dd&&"?"!=dd){var ed=Re(a,dd,"port #"),fd=Re(a,If);void 0!==ed&&void 0!==fd&&(Jb(a.D,ed,fd),a.g(r(ed)+": "+("0x"+q(fd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){$e(a,b.substr(5));break}var Ke="pr"==f[0]?1:0,Jf=1+Ke;if(a.fa)a.g("step in progress");else{var gd=W(a.b.R);switch(a.V(gd)){case 205:a.fa=
|
||||||
0)):af(a,Ke?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}fe(a,f);break;case "s":Ze(a,f);break;case "t":af(a,f[0],f[1]);break;case "u":ge(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xe(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.21.7 ("+a.b.Ra+",RELEASE"+(mb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(oa());break;case "?":if(f[1]){$e(a,b.substr(1));break}var Db="commands:",gd;for(gd in Md)Db+="\n"+ga(gd,7)+Md[gd];qd(a)||(Db+="\nnote: frequency/history disabled if no exec breakpoints");
|
Jf,Ud(gd,3)}a.fa?(a.Fa(a.A,gd,!0),a.La()||(a.u&&a.u.jb(),a.fa=0)):af(a,Ke?"tr":"t")}break;case "r":if("reset"==b){a.u&&a.u.reset();break}ge(a,f);break;case "s":Ze(a,f);break;case "t":af(a,f[0],f[1]);break;case "u":he(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xe(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.21.7 ("+a.b.Ra+",RELEASE"+(mb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(oa());break;case "?":if(f[1]){$e(a,b.substr(1));break}var Eb="commands:",hd;for(hd in Nd)Eb+="\n"+ga(hd,7)+Nd[hd];qd(a)||
|
||||||
a.g(Db);break;default:a.g("unknown command: "+b),d=!1}}}catch(Le){a.g("debugger error: "+(Le.stack||Le.message)),d=!1}return d}function oc(a,b,c){b=Zd(a,b,c);for(var d in b)if(!le(a,b[d]))return!1;return!0}Ia(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Hd(d);eb(d,c)}});function I(a,b,c){this.id=a.id;this.key=cf(a,b,c);this.C=a.C;df(this,a.Qb)}
|
(Eb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Eb);break;default:a.g("unknown command: "+b),d=!1}}}catch(Le){a.g("debugger error: "+(Le.stack||Le.message)),d=!1}return d}function rc(a,b,c){b=$d(a,b,c);for(var d in b)if(!me(a,b[d]))return!1;return!0}Ma(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Id(d);eb(d,c)}});function H(a,b,c){this.id=a.id;this.key=cf(a,b,c);this.C=a.C;df(this,a.Qb)}
|
||||||
function cf(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 cf(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}
|
||||||
I.prototype={constructor:I,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){df(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}}};
|
H.prototype={constructor:H,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){df(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 df(a,b){a[a.id]={};b&&K(a,"parms",b);a.b=!1}function ef(a){var b=!0;if(ra()){var c=JSON.stringify(a[a.id]);ya(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ff(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function gf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:ra()&&(b=xa(a.key))?(a[a.id]=b,a.b=!0):!1}function hf(a,b){return a[a.id][b]||null}function K(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
function df(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function ef(a){var b=!0;if(wa()){var c=JSON.stringify(a[a.id]);ya(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ff(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function gf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:wa()&&(b=xa(a.key))?(a[a.id]=b,a.b=!0):!1}function hf(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||||
function jf(a,b,c){u.call(this,"Computer",a,jf,67108864);this.w.ha=!1;kf(this,b);this.ca=lc(this,"autoPower",a);this.F=0;this.sa=a.busWidth||a.buswidth;this.u=lf;this.W=null;this.J=this.ra=!1;this.ta=lc(this,"url")||"";(Math.random()+.1).toString(36);this.A=mf(this);if(this.b=bb("CPU",this.id)){this.C=bb("Debugger",this.id);this.aa=[];for(b=null;b=pb(this,"Video",b);)this.aa.push(b);this.D=new rb({id:this.Hb+".bus",busWidth:this.sa},this.b,this.C);var d,e=Ya(this.id);if((this.H=bb("Panel",this.id))&&
|
function jf(a,b,c){u.call(this,"Computer",a,jf,67108864);this.w.ha=!1;kf(this,b);this.ba=oc(this,"autoPower",a);this.F=0;this.ta=a.busWidth||a.buswidth;this.u=lf;this.W=null;this.J=this.sa=!1;this.ua=oc(this,"url")||"";(Math.random()+.1).toString(36);this.A=mf(this);if(this.b=db("CPU",this.id)){this.C=db("Debugger",this.id);this.aa=[];for(b=null;b=pb(this,"Video",b);)this.aa.push(b);this.D=new rb({id:this.Hb+".bus",busWidth:this.ta},this.b,this.C);var d,e=ab(this.id);if((this.H=db("Panel",this.id))&&
|
||||||
this.H.Fa)for(b=0;b<e.length;b++)d=e[b],d.na=this.H.na,d.g=this.H.g,d.Fa=this.H.Fa;for(b=0;b<e.length;b++)d=e[b],d.Aa&&d.Aa(this,this.D,this.b,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.U=d:this.u=parseInt(d,10));var f;if(a=lc(this,"state")||(f=!0,a.state))b=this.ea=a,f||(this.J=!0,this.u=lf),this.u&&(this.Y=new I(this,nf),gf(this.Y)?b=null:delete this.Y);!b&&this.u&&(b=of(this))&&(this.J=!0);if(b){var h=this;ma(b,null,!0,function(a,b,c){c?(h.U=null,h.J=!1,h.na("Unable to load machine state from server (error "+
|
this.H.qa)for(b=0;b<e.length;b++)d=e[b],d.na=this.H.na,d.g=this.H.g,d.qa=this.H.qa;for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.D,this.b,this.C);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.U=d:this.u=parseInt(d,10));var f;if(a=oc(this,"state")||(f=!0,a.state))b=this.fa=a,f||(this.J=!0,this.u=lf),this.u&&(this.Y=new H(this,nf),gf(this.Y)?b=null:delete this.Y);!b&&this.u&&(b=of(this))&&(this.J=!0);if(b){var h=this;ma(b,null,!0,function(a,b,c){c?(h.U=null,h.J=!1,h.na("Unable to load machine state from server (error "+
|
||||||
c+(b?": "+ha(b):"")+")")):(h.W=b,h.ra=!0);B(h)})}else B(this);this.T.power||(this.ca=!0);!c&&this.ca&&pf(this,this.hb)}else t("Unable to find CPU component")}x(jf);var nf="1.21.7",lf=0;function kf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
|
c+(b?": "+ha(b):"")+")")):(h.W=b,h.sa=!0);B(h)})}else B(this);this.T.power||(this.ba=!0);!c&&this.ba&&pf(this,this.hb)}else t("Unable to find CPU component")}x(jf);var nf="1.21.7",lf=0;function kf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
|
||||||
function lc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pf(a,b,c){for(var d=Ya(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!kb(f)){kb(f,function(){pf(a,b,c)});return}}b.call(a,c)}
|
function oc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pf(a,b,c){for(var d=ab(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!kb(f)){kb(f,function(){pf(a,b,c)});return}}b.call(a,c)}
|
||||||
function qf(a,b){var c=new I(a,nf,"validate");if(gf(c)&&ff(c)){var d=hf(c,"timestamp"),e=b?hf(b,"timestamp"):"unknown";d!=e&&(a.na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=jf.prototype;
|
function qf(a,b){var c=new H(a,nf,"validate");if(gf(c)&&ff(c)){var d=hf(c,"timestamp"),e=b?hf(b,"timestamp"):"unknown";d!=e&&(a.na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=jf.prototype;
|
||||||
m.hb=function(a){void 0===a&&(a=this.u||(this.W?1:lf));if(!this.F){this.F++;var b=!1,c=!1;this.ka=!1;var d=this.Y||new I(this,nf);if(-1==a)b=!0;else if(a>lf){if(gf(d,this.W)){this.I=new I(this,nf,"failsafe");gf(this.I)&&(rf(this,d),a=2,df(this.I));K(this.I,"timestamp",ka());ef(this.I);var e=this.u&&!this.J;if(1==a||pa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ff(d)){var f=hf(d,"code"),h=hf(d,"data");f&&("ok"==f?gf(d,h):("error"==f&&"no machine state"!=
|
m.hb=function(a){void 0===a&&(a=this.u||(this.W?1:lf));if(!this.F){this.F++;var b=!1,c=!1;this.ka=!1;var d=this.Y||new H(this,nf);if(-1==a)b=!0;else if(a>lf){if(gf(d,this.W)){this.I=new H(this,nf,"failsafe");gf(this.I)&&(rf(this,d),a=2,df(this.I));I(this.I,"timestamp",ka());ef(this.I);var e=this.u&&!this.J;if(1==a||pa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ff(d)){var f=hf(d,"code"),h=hf(d,"data");f&&("ok"==f?gf(d,h):("error"==f&&"no machine state"!=
|
||||||
h?(this.na("Error: "+h),"unable to verify user"==h&&(ya("user",""),this.A=null)):this.g(f+": "+h),df(d),gf(d)?(c=ff(d),e=!0):c=!1))}e&&qf(this,c?d:null)}else 2==a&&d.clear()}else qf(this);delete this.W;delete this.Y}e=Ya(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=sf(this,h,d,b,c));b=[d,a,c];-1!=a?pf(this,this.Gb,b):this.Gb(b)}};
|
h?(this.na("Error: "+h),"unable to verify user"==h&&(ya("user",""),this.A=null)):this.g(f+": "+h),df(d),gf(d)?(c=ff(d),e=!0):c=!1))}e&&qf(this,c?d:null)}else 2==a&&d.clear()}else qf(this);delete this.W;delete this.Y}e=ab(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=sf(this,h,d,b,c));b=[d,a,c];-1!=a?pf(this,this.Gb,b):this.Gb(b)}};
|
||||||
function sf(a,b,c,d,e){if(!b.w.ha){b.w.ha=!0;if(b.wa){var f=null;e&&((f=hf(c,b.id))||(f=hf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.wa(f,d)&&f&&(t("Unable to restore state for "+b.type),a.ea&&!a.ra?(c.clear(),a.u=lf,window&&window.location.reload()):a.ka=!0,b.wa(null),e=!1)}if(!d&&b.Db)for(a=b.Db.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
function sf(a,b,c,d,e){if(!b.w.ha){b.w.ha=!0;if(b.xa){var f=null;e&&((f=hf(c,b.id))||(f=hf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.xa(f,d)&&f&&(t("Unable to restore state for "+b.type),a.fa&&!a.sa?(c.clear(),a.u=lf,window&&window.location.reload()):a.ka=!0,b.xa(null),e=!1)}if(!d&&b.Db)for(a=b.Db.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||||
m.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.w.ha=!0;var d=this.T.power;d&&(d.textContent="Shutdown");this.ja||(this.g("PC8080 v"+nf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ja=!0);this.b&&(sf(this,this.b,b,c,a),pc(this.b));this.ka&&(rf(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.F=0};
|
m.Gb=function(a){var b=a[0],c=0>a[1];a=a[2];this.w.ha=!0;var d=this.T.power;d&&(d.textContent="Shutdown");this.ja||(this.g("PC8080 v"+nf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ja=!0);this.b&&(sf(this,this.b,b,c,a),tc(this.b));this.ka&&(rf(this,b),b.clear());!c&&this.I&&(this.I.clear(),delete this.I);this.F=0};
|
||||||
function rf(a,b){if(pa("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.ta,d=a.A||"",e=b.toString(),f={app:"PC8080"};f.ver=nf;f.url=c;f.user=d;f.type="bug";f.data=e;ma("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function rf(a,b){if(pa("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.ua,d=a.A||"",e=b.toString(),f={app:"PC8080"};f.ver=nf;f.url=c;f.user=d;f.type="bug";f.data=e;ma("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function bf(a,b,c){var d,e="none";if(a.F)return null;a.F--;var f=new I(a,nf),h=new I(a,nf,"validate"),g=ka();K(h,"timestamp",g);K(f,"timestamp",g);K(f,"version","1.21.7");K(f,"url",window?window.location.href:null);K(f,"browser",oa());a.b&&a.b.va&&(c&&a.b.da(),d=a.b.va(b,c),"object"===typeof d&&K(f,a.b.id,d),c&&(a.b.w.ha=!1,!1===d&&(e=null)));for(var g=Ya(a.id),k=0;k<g.length;k++){var l=g[k];l.w.ha&&(l.va&&(d=l.va(b,c),"object"===typeof d&&K(f,l.id,d)),c&&(l.w.ha=!1,!1===d&&(e=null)))}e&&(c?(g=d=
|
function bf(a,b,c){var d,e="none";if(a.F)return null;a.F--;var f=new H(a,nf),h=new H(a,nf,"validate"),g=ka();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.21.7");I(f,"url",window?window.location.href:null);I(f,"browser",oa());a.b&&a.b.wa&&(c&&a.b.ea(),d=a.b.wa(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.w.ha=!1,!1===d&&(e=null)));for(var g=ab(a.id),k=0;k<g.length;k++){var l=g[k];l.w.ha&&(l.wa&&(d=l.wa(b,c),"object"===typeof d&&I(f,l.id,d)),c&&(l.w.ha=!1,!1===d&&(e=null)))}e&&(c?(g=d=
|
||||||
!1,b?(a.A&&tf(a,a.A,f.toString()),ef(h)&&ef(f)||(e=null,d=g=!0)):a.u&&(d=!0,g=3==a.u),d&&f.clear(g)):e=f.toString());c&&(a.w.ha=!1,b=a.T.power)&&(b.textContent="Power");a.F=0;return e}m.reset=function(){this.D&&this.D.reset&&(this.C&&hb(this,0)&&this.C.message("Resetting "+this.D.type,void 0),this.D.reset());for(var a=Ya(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c.reset&&(this.C&&hb(this,0)&&this.C.message("Resetting "+c.type,void 0),c.reset())}};
|
!1,b?(a.A&&tf(a,a.A,f.toString()),ef(h)&&ef(f)||(e=null,d=g=!0)):a.u&&(d=!0,g=3==a.u),d&&f.clear(g)):e=f.toString());c&&(a.w.ha=!1,b=a.T.power)&&(b.textContent="Power");a.F=0;return e}m.reset=function(){this.D&&this.D.reset&&(this.C&&hb(this,0)&&this.C.message("Resetting "+this.D.type,void 0),this.D.reset());for(var a=ab(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c.reset&&(this.C&&hb(this,0)&&this.C.message("Resetting "+c.type,void 0),c.reset())}};
|
||||||
m.start=function(a,b){for(var c=Ya(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Ya(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
m.start=function(a,b){for(var c=ab(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=ab(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||||
m.pa=function(a,b,c){var d=this;switch(b){case "power":return this.T[b]=c,c.onclick=function(){d.F||(d.w.ha?bf(d,!1,!0):pf(d,d.hb))},!0;case "reset":return this.T[b]=c,c.onclick=function(){if(d.w.ha&&!d.F)if(d.u&&!d.U){var a=pa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bf(d,a,!0);!a&&d.ea?window&&window.location.reload():d.hb(lf)}else d.reset(),d.b&&pc(d.b)},!0;case "save":if(da(na(),"pcjs.org")){c.parentNode.removeChild(c);
|
m.pa=function(a,b,c){var d=this;switch(b){case "power":return this.T[b]=c,c.onclick=function(){d.F||(d.w.ha?bf(d,!1,!0):pf(d,d.hb))},!0;case "reset":return this.T[b]=c,c.onclick=function(){if(d.w.ha&&!d.F)if(d.u&&!d.U){var a=pa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bf(d,a,!0);!a&&d.fa?window&&window.location.reload():d.hb(lf)}else d.reset(),d.b&&tc(d.b)},!0;case "save":if(da(na(),"pcjs.org")){c.parentNode.removeChild(c);
|
||||||
break}this.T[b]=c;c.onclick=function(){var a=mf(d,!0);if(a){var b=!!(d.u&&!d.U||d.ea),c=bf(d,b);b?tf(d,a,c):d.na("Resume disabled, machine state not saved")}};return!0}return!1};
|
break}this.T[b]=c;c.onclick=function(){var a=mf(d,!0);if(a){var b=!!(d.u&&!d.U||d.fa),c=bf(d,b);b?tf(d,a,c):d.na("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function mf(a,b){var c=a.A;c||(c=xa("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=uf(a,c))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return c}
|
function mf(a,b){var c=a.A;c||(c=xa("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=uf(a,c))||a.na("The user ID is invalid."))):b&&a.na("Browser local storage is not available"));return c}
|
||||||
function uf(a,b){a.A=null;var c=ma(na()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ya("user",c.data),a.A=c.data)}catch(e){t(e.message+" ("+d+")")}return a.A}function of(a){var b=null;a.A&&(b=na()+"/api/v1/user?req=load&user="+a.A+"&state="+cf(a,nf));return b}
|
function uf(a,b){a.A=null;var c=ma(na()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ya("user",c.data),a.A=c.data)}catch(e){t(e.message+" ("+d+")")}return a.A}function of(a){var b=null;a.A&&(b=na()+"/api/v1/user?req=load&user="+a.A+"&state="+cf(a,nf));return b}
|
||||||
function tf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cf(a,nf);d.data=c;b=ma(na()+"/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.na("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.na(c),ya("user",""),a.A=null)}}
|
function tf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cf(a,nf);d.data=c;b=ma(na()+"/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.na("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.na(c),ya("user",""),a.A=null)}}
|
||||||
function pb(a,b,c){a=Ya(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.jb=function(){};m.qa=function(a){this.b&&this.b.qa(a);this.H&&this.H.qa(a)};function vc(a,b){for(var c=0;c<a.aa.length;c++){var d=a.aa[c];b&1?(d=d.b,d.A=d.A&-8|10):(d=d.b,d.A=d.A&-8|9)}}
|
function pb(a,b,c){a=ab(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.jb=function(){};m.ra=function(a){this.b&&this.b.ra(a);this.H&&this.H.ra(a)};function zc(a,b){for(var c=0;c<a.aa.length;c++){var d=a.aa[c];b&1?(d=d.b,d.A=d.A&-8|10):(d=d.b,d.A=d.A&-8|9)}}
|
||||||
Ia(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new jf(h,d,!0);eb(h,f);h.ca&&pf(h,h.hb)}});Ca.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=bb("Computer",c.id))&&c.ja&&!c.w.ha&&c.hb(-1)}});
|
Ma(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new jf(h,d,!0);eb(h,f);h.ba&&pf(h,h.hb)}});Ca.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=db("Computer",c.id))&&c.ja&&!c.w.ha&&c.hb(-1)}});
|
||||||
Ca.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=bb("Computer",c.id))&&c.w.ha&&bf(c,!(!c.u||c.U),!0)}});var vf=0;function wf(a,b,c,d,e,f){e("Loading "+a+"...");ma(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Kf(g,a,b,c,d,e,f)})}
|
Ca.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=db("Computer",c.id))&&c.w.ha&&bf(c,!(!c.u||c.U),!0)}});var vf=0;function wf(a,b,c,d,e,f){e("Loading "+a+"...");ma(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Kf(g,a,b,c,d,e,f)})}
|
||||||
function Kf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Xa(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
function Kf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Xa(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Lf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Lf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
function Lf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ma(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
function Lf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ma(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,n=/( [a-z]+=)(['"])(.*?)\2/g;l=n.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
|
|
@ -197,4 +199,4 @@ function Nf(a,b,c,d){if(!c&&b){d.push(b);a=Wa[d[0]];b=null;for(var e in a)if(da(
|
||||||
function Of(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Wa[f],k={},l;for(l in g){var n=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var z=d[2];z&&(g[z]||(n=n.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
function Of(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Wa[f],k={},l;for(l in g){var n=g[l],p=ca(l);if("xml"==p){for(p=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=p.exec(g[l]);){var z=d[2];z&&(g[z]||(n=n.replace(d[0],"")))}d=l=ba(l)}else"xsl"==p&&(e=l=ba(l));k[l]=n}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||||
"©"),l=h,g=null,k="data:application/javascript,",k=za("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
"©"),l=h,g=null,k="data:application/javascript,",k=za("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
||||||
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
|
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
|
||||||
window.savePC=function(a,b,c){var d=bb("Computer",a),e=bb("Debugger",a);if(d){var f=bf(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.21.7/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Qb:h}))return!0;ma(b,null,!0,function(c,d,e){Nf(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
|
window.savePC=function(a,b,c){var d=db("Computer",a),e=db("Debugger",a);if(d){var f=bf(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.21.7/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Qb:h}))return!0;ma(b,null,!0,function(c,d,e){Nf(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
|
||||||
|
|
|
||||||
|
|
@ -2,122 +2,123 @@
|
||||||
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
function n(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ba(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
||||||
function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&","<":"<",">":">",'"':""","'":"'"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var ga=Date.now||function(){return+new Date};function ha(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
function da(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ea={"&":"&","<":"<",">":">",'"':""","'":"'"};function fa(a){return a.replace(/[&<>"']/g,function(a){return ea[a]})}var ga=Date.now||function(){return+new Date};function ha(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||||
function p(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
function p(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||||
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(k)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ia(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
typeof b){var l="",k;for(k in b)b.hasOwnProperty(k)&&(l&&(l+="&"),l+=k+"="+encodeURIComponent(b[k]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ia(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||||
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||||
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var r={init:[],show:[],exit:[]},pa=!1,qa=!0;function ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function t(a){r.init.push(a)}
|
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var r={init:[],show:[],exit:[]},pa=!1,qa=!0;function ra(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function t(a){r.init.push(a)}
|
||||||
function sa(a){if(qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function ta(a){!qa&&a?(qa=!0,pa&&ua("init")):qa=a}function ua(a){r[a]&&sa(r[a])}ra("onload",function(){pa=!0;sa(r.init)});ra("onpageshow",function(){sa(r.show)});ra(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){sa(r.exit)});
|
function sa(a){if(qa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function ta(a){!qa&&a?(qa=!0,pa&&ua("init")):qa=a}function ua(a){r[a]&&sa(r[a])}ra("onload",function(){pa=!0;sa(r.init)});ra("onpageshow",function(){sa(r.show)});ra(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){sa(r.exit)});
|
||||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Sa=b.comment;this.bb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Na=this.id.substr(0,b),this.Ta=this.id.substr(b+1)):this.Ta=this.id;this[a]=c;this.g={ha:!1,pa:!1,Ia:!1,J:!1,aa:!1};this.Aa=null;this.g.aa=!1;this.v={};this.F=null;v.push(this)}var va=void 0,wa={};
|
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Ra=b.comment;this.bb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Ta=this.id.substr(0,b),this.Sa=this.id.substr(b+1)):this.Sa=this.id;this[a]=c;this.g={ia:!1,ra:!1,Ja:!1,J:!1,ba:!1};this.Da=null;this.g.ba=!1;this.w={};this.I=null;w.push(this)}var va=void 0,wa={};
|
||||||
if(window){va||(va=window.location.search.substr(1));for(var xa,ya=/\+/g,za=/([^&=]+)=?([^&]*)/g;xa=za.exec(va);)wa[decodeURIComponent(xa[1].replace(ya," "))]=decodeURIComponent(xa[2].replace(ya," "))}function Aa(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){va||(va=window.location.search.substr(1));for(var xa,ya=/\+/g,za=/([^&=]+)=?([^&]*)/g;xa=za.exec(va);)wa[decodeURIComponent(xa[1].replace(ya," "))]=decodeURIComponent(xa[2].replace(ya," "))}function Aa(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
|
||||||
function x(a,b){b||(b=u);a.prototype=Aa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var v=[],Ba={};function Ca(a,b,c){Ba[a]&&b&&(Ba[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
function x(a,b){b||(b=v);a.prototype=Aa(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var w=[],Ba={};function Ca(a,b,c){Ba[a]&&b&&(Ba[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||||
function Da(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
function Da(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
|
||||||
function Ea(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=z(h))&&g.binding&&a.N(g.type,g.binding,h,g.value),l=k.length}}}}
|
function Ea(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=z(h))&&g.binding&&a.P(g.type,g.binding,h,g.value),k=l.length}}}}
|
||||||
function A(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 A(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}
|
||||||
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},N:function(a,b,c){switch(b){case "clear":return this.v[b]||(this.v[b]=c,c.onclick=function(a){return function(){a.v.print&&(a.v.print.value="")}}(this)),!0;case "print":return this.v[b]||(this.Ha=this.v[b]=c,c.value="",this.M=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},P:function(a,b,c){switch(b){case "clear":return this.w[b]||(this.w[b]=c,c.onclick=function(a){return function(){a.w.print&&(a.w.print.value="")}}(this)),!0;case "print":return this.w[b]||(this.Y=this.w[b]=c,c.value="",this.O=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||||
this.K=function(a,b,c){this.M(a,"notice",c)}),!0;default:return!1}},log:function(){},M:function(){},status:function(a){this.M(this.Ta+": "+a)},K:function(a,b){b||q(a)},W:function(){return this.g.J=!0},V:function(a,b){b&&(this.g.J=!1);return!0}};function Fa(a,b){if(a.g.Ia)return a.g.pa&&(a.g.pa=!1),a.g.Ia=!1;if(a.g.aa)return a.M(a.toString()+" error"),!1;a.g.pa=b;return a.g.pa}function B(a){if(!a.g.aa&&(a.g.ha=!0,a.g.ha)){var b=a.Aa;a.Aa=null;b&&b()}}
|
this.K=function(a,b,c){this.O(a,"notice",c)}),!0;default:return!1}},log:function(){},O:function(){},status:function(a){this.O(this.Sa+": "+a)},K:function(a,b){b||q(a)},W:function(){return this.g.J=!0},V:function(a,b){b&&(this.g.J=!1);return!0}};function Fa(a,b){if(a.g.Ja)return a.g.ra&&(a.g.ra=!1),a.g.Ja=!1;if(a.g.ba)return a.O(a.toString()+" error"),!1;a.g.ra=b;return a.g.ra}function B(a){if(!a.g.ba&&(a.g.ia=!0,a.g.ia)){var b=a.Da;a.Da=null;b&&b()}}
|
||||||
function Ga(a,b){b&&(a.g.ha?b():a.Aa=b);return a.g.ha}
|
function Ga(a,b){b&&(a.g.ia?b():a.Da=b);return a.g.ia}
|
||||||
var Ha="undefined"!==typeof ArrayBuffer,Ia=[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 Ha="undefined"!==typeof ArrayBuffer,Ia=[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 Ja(a){u.call(this,"Panel",a,Ja)}x(Ja);m=Ja.prototype;m.N=function(a,b,c,d){return this.w&&this.w.N(a,b,c,d)||this.a&&this.a.N(a,b,c,d)||this.b&&this.b.N(a,b,c,d)?!0:this.parent.N.call(this,a,b,c,d)};m.ba=function(a,b,c,d){this.w=a;this.B=b;this.a=c;this.F=d;this.b=Ka(a,"Keyboard")};m.W=function(a,b){b||La();return!0};m.V=function(){return!0};m.ea=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 Ja(a){v.call(this,"Panel",a,Ja)}x(Ja);m=Ja.prototype;m.P=function(a,b,c,d){return this.v&&this.v.P(a,b,c,d)||this.a&&this.a.P(a,b,c,d)||this.b&&this.b.P(a,b,c,d)?!0:this.parent.P.call(this,a,b,c,d)};m.ca=function(a,b,c,d){this.v=a;this.A=b;this.a=c;this.I=d;this.b=Ka(a,"Keyboard")};m.W=function(a,b){b||La();return!0};m.V=function(){return!0};m.fa=function(){};
|
||||||
function La(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<v.length;h++)if(v[h].id===f){f=v[h];break a}f=null}f||(a=!0,f=new Ja(e));Ea(f,d);a&&B(f)}}t(La);
|
function La(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=z(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<w.length;h++)if(w[h].id===f){f=w[h];break a}f=null}f||(a=!0,f=new Ja(e));Ea(f,d);a&&B(f)}}t(La);
|
||||||
function Ma(a,b,c){u.call(this,"Bus",a,Ma);this.a=b;this.F=c;this.c=a.busWidth||16;this.m=Math.pow(2,this.c);this.h=this.m-1|0;this.H=16>=this.c?10:20>=this.c?12:24>=this.c?14:15;this.I=1<<this.H;this.o=this.I>>2;this.l=this.I-1;this.f=this.m/this.I|0;this.i=[];this.j=[];this.s=[];this.u=[];a=new C;Na(a,this.F);this.b=Array(this.f);for(b=0;b<this.f;b++)this.b[b]=a;a=this.a;b=this.b;c=this.H;var d=this.h;a.O=b;a.H=c;a.I=1<<a.H;a.S=a.I-1;a.Oa=b.length;a.Ga=a.Oa-1;a.Z=d;B(this)}x(Ma);
|
function Ma(a,b,c){v.call(this,"Bus",a,Ma);this.a=b;this.I=c;this.c=a.busWidth||16;this.m=Math.pow(2,this.c);this.h=this.m-1|0;this.G=16>=this.c?10:20>=this.c?12:24>=this.c?14:15;this.H=1<<this.G;this.o=this.H>>2;this.l=this.H-1;this.f=this.m/this.H|0;this.i=[];this.j=[];this.v=[];this.A=[];a=new C;Na(a,this.I);this.b=Array(this.f);for(b=0;b<this.f;b++)this.b[b]=a;a=this.a;b=this.b;c=this.G;var d=this.h;a.M=b;a.G=c;a.H=1<<a.G;a.S=a.H-1;a.Aa=b.length;a.pa=a.Aa-1;a.$=d;B(this)}x(Ma);
|
||||||
Ma.prototype.reset=function(){};Ma.prototype.W=function(a,b){b||this.reset();return!0};function Oa(a,b,c,d){for(var e=b>>>a.H;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.I,g=a.I-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.oa)return f.Fa+=f.oa-b,f.oa=b,!0;if(b>=f.oa+f.Fa){g=f.size-(b-h);g>c&&(g=c);f.Fa=b-f.oa+g;b=h+a.I;c-=g;e++;continue}}return Pa(1,b,c)}b=new C(b,g,a.I,d);Na(b,a.F,f);a.b[e++]=b;b=h+a.I;c-=g}return 0>=c?!0:Pa(2,b,c)}
|
Ma.prototype.reset=function(){};Ma.prototype.W=function(a,b){b||this.reset();return!0};function Oa(a,b,c,d){for(var e=b>>>a.G;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.H,g=a.H-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.qa)return f.Ia+=f.qa-b,f.qa=b,!0;if(b>=f.qa+f.Ia){g=f.size-(b-h);g>c&&(g=c);f.Ia=b-f.qa+g;b=h+a.H;c-=g;e++;continue}}return Pa(1,b,c)}b=new C(b,g,a.H,d);Na(b,a.I,f);a.b[e++]=b;b=h+a.H;c-=g}return 0>=c?!0:Pa(2,b,c)}
|
||||||
Ma.prototype.D=function(a){return this.b[(a&this.h)>>>this.H].na(a&this.l,a)};function Qa(a,b,c){a.b[(b&a.h)>>>a.H].eb(b&a.l,c&255,b)}function Pa(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Sa;if(Ha){var Ta=new ArrayBuffer(2);(new DataView(Ta)).setUint16(0,256,!0);Sa=256===(new Uint16Array(Ta))[0]}else Sa=!1;var Ua=Sa;
|
Ma.prototype.D=function(a){return this.b[(a&this.h)>>>this.G].oa(a&this.l,a)};function Ra(a,b,c){a.b[(b&a.h)>>>a.G].eb(b&a.l,c&255,b)}function Pa(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Sa;if(Ha){var Ta=new ArrayBuffer(2);(new DataView(Ta)).setUint16(0,256,!0);Sa=256===(new Uint16Array(Ta))[0]}else Sa=!1;var Ua=Sa;
|
||||||
function C(a,b,c,d){this.id=Va+=2;this.a=null;this.oa=a;this.Fa=b;this.size=c||0;this.type=d||Wa;this.h=d==Xa;Na(this);this.Y=this.ib=!1;if(c)if(Ha)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),Ya(this,Ua?Za:$a);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Ya(this,ab)}else Ya(this)}var Wa=0,Xa=2,Va=0;
|
function C(a,b,c,d){this.id=Va+=2;this.a=null;this.qa=a;this.Ia=b;this.size=c||0;this.type=d||Wa;this.h=d==Xa;Na(this);this.Z=this.ib=!1;if(c)if(Ha)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),Ya(this,Ua?Za:$a);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;Ya(this,ab)}else Ya(this)}var Wa=0,Xa=2,Va=0;
|
||||||
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Ha)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(Ha)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.Y=!0}return!1},m:function(){return 255},s:function(){},o:function(a,b){return this.na(a++,b++)|this.na(a,b)<<8},v:function(a,b,c){this.xa(a++,b&255,c++);this.xa(a,b>>8,c)},C:function(a){return this.a[a>>
|
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Ha)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(Ha)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.Z=!0}return!1},w:function(){return 255},o:function(){},m:function(a,b){return this.oa(a++,b++)|this.oa(a,b)<<8},v:function(a,b,c){this.za(a++,b&255,c++);this.za(a,b>>8,c)},G:function(a){return this.a[a>>
|
||||||
2]>>>((a&3)<<3)&255},O: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},U:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.Y=!0},ga: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.Y=!0},w:function(a,b){return this.B(a,b)},H:function(a,b){return this.I(a,b)},S:function(a,b,c){this.h||this.eb(a,b,c)},Z:function(a,b,c){this.h||
|
2]>>>((a&3)<<3)&255},S: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},$:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.Z=!0},Aa: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.Z=!0},B:function(a,b){return this.C(a,b)},L:function(a,b){return this.M(a,b)},U:function(a,b,c){this.h||this.eb(a,b,c)},ga:function(a,b,
|
||||||
this.$(a,b,c)},u:function(a){return this.b[a]},A:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},P:function(a,b){this.b[a]=b;this.Y=!0},T:function(a,b){this.b[a]=b;this.Y=!0},X:function(a,b){this.f.setUint16(a,b,!0);this.Y=!0},fa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.Y=!0}};function Na(a,b,c){a.F=b;a.i=a.j=0;c&&((a.i=c.i)&&bb(a,cb,!1),(a.j=c.j)&&db(a,cb,!1))}
|
c){this.h||this.ha(a,b,c)},A:function(a){return this.b[a]},F:function(a){return this.b[a]},H:function(a){return this.f.getUint16(a,!0)},N:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},T:function(a,b){this.b[a]=b;this.Z=!0},X:function(a,b){this.b[a]=b;this.Z=!0},aa:function(a,b){this.f.setUint16(a,b,!0);this.Z=!0},pa:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.Z=!0}};function Na(a,b,c){a.I=b;a.i=a.j=0;c&&((a.i=c.i)&&bb(a,cb,!1),(a.j=c.j)&&db(a,cb,!1))}
|
||||||
function db(a,b,c){c&&a.j||(a.xa=!a.h&&b[2]||a.s,a.ub=!a.h&&b[3]||a.v);if(c||void 0===c)a.eb=b[2]||a.s,a.$=b[3]||a.v}function bb(a,b,c){c&&a.i||(a.na=b[0]||a.m,a.sb=b[1]||a.o);if(c||void 0===c)a.B=b[0]||a.m,a.I=b[1]||a.o}function Ya(a,b){b||(b=eb);bb(a,b,void 0);db(a,b,void 0)}var eb=[],ab=[C.prototype.C,C.prototype.O,C.prototype.U,C.prototype.ga],cb=[C.prototype.w,C.prototype.H,C.prototype.S,C.prototype.Z];
|
function db(a,b,c){c&&a.j||(a.za=!a.h&&b[2]||a.o,a.ub=!a.h&&b[3]||a.v);if(c||void 0===c)a.eb=b[2]||a.o,a.ha=b[3]||a.v}function bb(a,b,c){c&&a.i||(a.oa=b[0]||a.w,a.sb=b[1]||a.m);if(c||void 0===c)a.C=b[0]||a.w,a.M=b[1]||a.m}function Ya(a,b){b||(b=eb);bb(a,b,void 0);db(a,b,void 0)}var eb=[],ab=[C.prototype.G,C.prototype.S,C.prototype.$,C.prototype.Aa],cb=[C.prototype.B,C.prototype.L,C.prototype.U,C.prototype.ga];
|
||||||
if(Ha)var $a=[C.prototype.u,C.prototype.G,C.prototype.P,C.prototype.X],Za=[C.prototype.A,C.prototype.L,C.prototype.T,C.prototype.fa];
|
if(Ha)var $a=[C.prototype.A,C.prototype.H,C.prototype.T,C.prototype.aa],Za=[C.prototype.F,C.prototype.N,C.prototype.X,C.prototype.pa];
|
||||||
function fb(a,b){u.call(this,"CPU",a,fb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.ma=c;this.c.Ea=0;this.c.la=d;this.c.Ja=Math.round(this.c.ma/1E4)/100;this.c.ia=this.c.Ja*this.c.la;this.g.R=!1;this.g.Xa=!1;this.g.Va=a.autoStart;this.g.Wa=!1;this.g.ya=!1;this.c.Ca=this.c.ka=0;this.c.Da=a.csStart;this.c.qa=a.csInterval;this.c.ra=a.csStop;this.gb=this.Ma.bind(this);B(this)}x(fb);var gb=["power","reset"];m=fb.prototype;
|
function fb(a,b){v.call(this,"CPU",a,fb);var c=a.cycles||b,d=a.multiplier||1;this.b={};this.b.na=c;this.b.Ha=0;this.b.ma=d;this.b.Ka=Math.round(this.b.na/1E4)/100;this.b.ja=this.b.Ka*this.b.ma;this.g.R=!1;this.g.Xa=!1;this.g.Va=a.autoStart;this.g.Wa=!1;this.g.Ba=!1;this.b.Fa=this.b.la=0;this.b.Ga=a.csStart;this.b.sa=a.csInterval;this.b.ta=a.csStop;this.fb=this.Na.bind(this);B(this)}x(fb);var gb=["power","reset"];m=fb.prototype;
|
||||||
m.ba=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<gb.length;b++)(c=this.v[gb[b]])&&this.w.N(null,gb[b],c);this.X=(b=Ka(a,"Video"))&&Math.max(b.X,b.fb)||60;this.ga=Ka(a,"ChipSet");a=hb(a,"autoStart");null!=a&&(this.g.Va="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.c.Ea=0};m.save=function(){return null};m.restore=function(){return!1};
|
m.ca=function(a,b,c,d){this.v=a;this.A=b;this.I=d;for(b=0;b<gb.length;b++)(c=this.w[gb[b]])&&this.v.P(null,gb[b],c);this.X=(b=Ka(a,"Video"))&&Math.max(b.X,b.gb)||60;this.ha=Ka(a,"ChipSet");a=hb(a,"autoStart");null!=a&&(this.g.Va="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.b.Ha=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||||
m.W=function(a,b){if(!b){if(a&&this.restore){ib(this);if(!this.restore(a))return!1;jb(this)}else this.reset();this.M("No debugger detected")}kb(this);return!0};m.V=function(a){return a?this.save():!0};function lb(a){(a.g.Va||void 0===a.v.run)&&a.Ma()}m.Ya=function(){return 0};function jb(a){void 0===a.c.Da&&(a.c.Da=0);void 0===a.c.qa&&(a.c.qa=-1);void 0===a.c.ra&&(a.c.ra=-1);a.g.ya=0<=a.c.Da&&0<a.c.qa;a.g.ya&&(a.c.Ca=0,a.c.ka=a.c.Da-a.U)}
|
m.W=function(a,b){if(!b){if(a&&this.restore){ib(this);if(!this.restore(a))return!1;jb(this)}else this.reset();this.O("No debugger detected")}kb(this);return!0};m.V=function(a){return a?this.save():!0};function lb(a){(a.g.Va||void 0===a.w.run)&&a.Na()}m.Ya=function(){return 0};function jb(a){void 0===a.b.Ga&&(a.b.Ga=0);void 0===a.b.sa&&(a.b.sa=-1);void 0===a.b.ta&&(a.b.ta=-1);a.g.Ba=0<=a.b.Ga&&0<a.b.sa;a.g.Ba&&(a.b.Fa=0,a.b.la=a.b.Ga-a.U)}
|
||||||
m.N=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.v[b]=c;a=!0;break;case "run":this.v[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.g.J)a=!0;else{var b=null,c,g=y(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.g.ha);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.g.J);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.g.ha?"powered yet":"ready yet"+(b.Aa?" (waiting for notification)":""))+".");a=!1}a&&(d.g.R?mb(d,!0):d.Ma())};a=!0;break;
|
m.P=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.w[b]=c;a=!0;break;case "run":this.w[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.g.J)a=!0;else{var b=null,c,g=y(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.g.ia);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.g.J);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.g.ia?"powered yet":"ready yet"+(b.Da?" (waiting for notification)":""))+".");a=!1}a&&(d.g.R?mb(d,!0):d.Na())};a=!0;break;
|
||||||
case "speed":this.v[b]=c;a=!0;break;case "setSpeed":this.v[b]=c,c.onclick=function(){nb(d,d.c.la<<1)},c.textContent=this.c.ia.toFixed(2)+"Mhz",a=!0}return a};function ob(a,b,c){a.U+=b;c&&(a.T=a.a=0)}
|
case "speed":this.w[b]=c;a=!0;break;case "setSpeed":this.w[b]=c,c.onclick=function(){nb(d,d.b.ma<<1)},c.textContent=this.b.ja.toFixed(2)+"Mhz",a=!0}return a};function ob(a,b,c){a.U+=b;c&&(a.T=a.a=0)}
|
||||||
function pb(a,b){var c=30;c<a.X&&(c=a.X);2>c&&(c=2);var d=1;b&&1<a.c.la&&a.c.ca&&(d=a.c.ca/a.c.Ja);a.c.Za=Math.round(1E3/30);a.c.nb=Math.floor(a.c.ma/c*d);a.c.Ka=Math.floor(a.c.ma/30*d);a.c.ab=Math.floor(a.c.ma/a.X*d);a.c.$a=Math.floor(a.c.ma/2*d);b||(a.c.ua=a.c.Ka,a.c.ta=a.c.ab,a.c.sa=a.c.$a);a.c.La=0}function qb(a){return a.U+a.P+a.T-a.a}function ib(a){a.c.ca=0;a.U=a.P=a.T=a.a=0;jb(a);nb(a,1)}
|
function pb(a,b){var c=30;c<a.X&&(c=a.X);2>c&&(c=2);var d=1;b&&1<a.b.ma&&a.b.da&&(d=a.b.da/a.b.Ka);a.b.Za=Math.round(1E3/30);a.b.nb=Math.floor(a.b.na/c*d);a.b.La=Math.floor(a.b.na/30*d);a.b.ab=Math.floor(a.b.na/a.X*d);a.b.$a=Math.floor(a.b.na/2*d);b||(a.b.wa=a.b.La,a.b.va=a.b.ab,a.b.ua=a.b.$a);a.b.Ma=0}function qb(a){return a.U+a.N+a.T-a.a}function ib(a){a.b.da=0;a.U=a.N=a.T=a.a=0;jb(a);nb(a,1)}
|
||||||
function nb(a,b){if(void 0!==b){.8>a.c.ca/a.c.ia&&(b=1);a.c.la=b;var c=a.c.Ja*a.c.la;if(a.c.ia!=c){a.c.ia=c;var c=a.c.ia.toFixed(2)+"Mhz",d=a.v.setSpeed;d&&(d.textContent=c);a.M("target speed: "+c)}}ob(a,a.P);a.P=0;a.c.ja=ga();a.c.da=0;pb(a)}
|
function nb(a,b){if(void 0!==b){.8>a.b.da/a.b.ja&&(b=1);a.b.ma=b;var c=a.b.Ka*a.b.ma;if(a.b.ja!=c){a.b.ja=c;var c=a.b.ja.toFixed(2)+"Mhz",d=a.w.setSpeed;d&&(d.textContent=c);a.O("target speed: "+c)}}ob(a,a.N);a.N=0;a.b.ka=ga();a.b.ea=0;pb(a)}
|
||||||
m.Ma=function(){if(Fa(this,!0)){if(!this.g.R){nb(this);this.w&&this.w.start(this.c.ja,qb(this));this.g.R=!0;this.g.Xa=!0;this.ga&&this.ga.tb();var a=this.v.run;a&&(a.textContent="Halt");this.w&&this.w.ea(!0)}this.c.La>=this.c.ma&&pb(this,!0);this.c.va=0;this.c.Ba=ga();this.c.da&&(a=this.c.Ba-this.c.da,a>this.c.Za&&(this.c.ja+=a,this.c.ja>this.c.Ba&&(this.c.ja=this.c.Ba)));try{do{var b=this.g.ya?1:this.c.nb;try{this.cb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.T-this.a;this.P+=c;this.c.va+=
|
m.Na=function(){if(Fa(this,!0)){if(!this.g.R){nb(this);this.v&&this.v.start(this.b.ka,qb(this));this.g.R=!0;this.g.Xa=!0;this.ha&&this.ha.tb();var a=this.w.run;a&&(a.textContent="Halt");this.v&&this.v.fa(!0)}this.b.Ma>=this.b.na&&pb(this,!0);this.b.xa=0;this.b.Ea=ga();this.b.ea&&(a=this.b.Ea-this.b.ea,a>this.b.Za&&(this.b.ka+=a,this.b.ka>this.b.Ea&&(this.b.ka=this.b.Ea)));try{do{var b=this.g.Ba?1:this.b.nb;try{this.cb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.T-this.a;this.N+=c;this.b.xa+=
|
||||||
c;ob(this,0,!0);a=c;if(this.g.ya){var d=!1;this.c.Ca=this.c.Ca+this.Ya()|0;this.c.ka-=a;0>=this.c.ka&&(this.c.ka+=this.c.qa,d=!0);0<=this.c.ra&&this.c.ra<=qb(this)&&(this.c.qa=this.c.ra=-1,jb(this),mb(this),d=!0);d&&this.M(qb(this)+" cycles: checksum="+n(this.c.Ca))}this.c.ta-=c;0>=this.c.ta&&(this.c.ta+=this.c.ab,this.w&&rb(this.w,this.c.Ea++),this.c.Ea>this.X&&(this.c.Ea=0));this.c.sa-=c;0>=this.c.sa&&(this.c.sa+=this.c.$a,this.w&&this.w.ea());this.c.ua-=c;if(0>=this.c.ua){this.c.ua+=this.c.Ka;
|
c;ob(this,0,!0);a=c;if(this.g.Ba){var d=!1;this.b.Fa=this.b.Fa+this.Ya()|0;this.b.la-=a;0>=this.b.la&&(this.b.la+=this.b.sa,d=!0);0<=this.b.ta&&this.b.ta<=qb(this)&&(this.b.sa=this.b.ta=-1,jb(this),mb(this),d=!0);d&&this.O(qb(this)+" cycles: checksum="+n(this.b.Fa))}this.b.va-=c;0>=this.b.va&&(this.b.va+=this.b.ab,this.v&&rb(this.v,this.b.Ha++),this.b.Ha>this.X&&(this.b.Ha=0));this.b.ua-=c;0>=this.b.ua&&(this.b.ua+=this.b.$a,this.v&&this.v.fa());this.b.wa-=c;if(0>=this.b.wa){this.b.wa+=this.b.La;
|
||||||
break}}while(this.g.R)}catch(e){mb(this);kb(this);this.w&&this.w.stop(ga(),qb(this));Fa(this,!1);b=e.stack||e.message;this.g.aa=!0;this.K(b);return}b=setTimeout;c=this.gb;this.c.da=ga();a=this.c.Za;this.c.va&&(a=Math.round(a*this.c.va/this.c.Ka));a-=this.c.da-this.c.Ba;if(d=this.c.da-this.c.ja)this.c.ca=Math.round(this.P/(10*d))/100,864E5<=d&&(this.U=0,nb(this));if(0>a||this.c.ca<this.c.ia)a=0;this.c.La+=this.c.va;this.c.da+=a;b(c,a)}else kb(this),this.w&&this.w.stop(ga(),qb(this))};m.cb=function(){return 0};
|
break}}while(this.g.R)}catch(e){mb(this);kb(this);this.v&&this.v.stop(ga(),qb(this));Fa(this,!1);b=e.stack||e.message;this.g.ba=!0;this.K(b);return}b=setTimeout;c=this.fb;this.b.ea=ga();a=this.b.Za;this.b.xa&&(a=Math.round(a*this.b.xa/this.b.La));a-=this.b.ea-this.b.Ea;if(d=this.b.ea-this.b.ka)this.b.da=Math.round(this.N/(10*d))/100,864E5<=d&&(this.U=0,nb(this));if(0>a||this.b.da<this.b.ja)a=0;this.b.Ma+=this.b.xa;this.b.ea+=a;b(c,a)}else kb(this),this.v&&this.v.stop(ga(),qb(this))};m.cb=function(){return 0};
|
||||||
function mb(a,b){a.g.pa&&(a.g.Ia=!0);a.T-=a.a;a.a=0;ob(a,a.P);a.P=0;if(a.g.R){a.g.R=!1;a.ga&&a.ga.tb();var c=a.v.run;c&&(c.textContent="Run")}a.g.za=b}function kb(a){a.w&&(rb(a.w,-1),a.w.ea(void 0))}function sb(a){this.$=a.model||8080;fb.call(this,a,1E6);this.Pa=tb;ib(this);this.g.za=this.g.hb=!1;this.Ra=0;this.O=[];this.H=this.I=this.S=this.Oa=this.Ga=this.Z=0;this.fa=[];this.Qa=0;ub(this)}x(sb,fb);function vb(a,b){a.fa.push(b)}m=sb.prototype;
|
function mb(a,b){a.g.ra&&(a.g.Ja=!0);a.T-=a.a;a.a=0;ob(a,a.N);a.N=0;if(a.g.R){a.g.R=!1;a.ha&&a.ha.tb();var c=a.w.run;c&&(c.textContent="Run")}a.g.Ca=b}function kb(a){a.v&&(rb(a.v,-1),a.v.fa(void 0))}function sb(a){this.aa=a.model||8080;fb.call(this,a,1E6);this.Oa=tb;ib(this);this.g.Ca=this.g.hb=!1;this.Qa=0;this.M=[];this.G=this.H=this.S=this.Aa=this.pa=this.$=0;this.ga=[];this.Pa=0;ub(this)}x(sb,fb);function vb(a,b){a.ga.push(b)}m=sb.prototype;
|
||||||
m.reset=function(){this.g.R&&mb(this);ub(this);ib(this);this.g.aa=!1;this.parent.reset.call(this)};function ub(a){a.b=0;a.h=0;a.i=0;a.j=0;a.l=0;a.m=0;a.o=0;a.A=0;D(a,a.Qa);wb(a,0);a.G=0}function xb(a,b){a.Qa=b;D(a,b)}m.Ya=function(){var a=this.b+this.h+this.i+this.j+this.l+this.m+this.o|0;return a=a+this.A+this.u+yb(this)|0};
|
m.reset=function(){this.g.R&&mb(this);ub(this);ib(this);this.g.ba=!1;this.parent.reset.call(this)};function ub(a){a.c=0;a.h=0;a.s=0;a.i=0;a.u=0;a.j=0;a.l=0;a.C=0;E(a,a.Pa);wb(a,0);a.F=0}function xb(a,b){a.Pa=b;E(a,b)}m.Ya=function(){var a=this.c+this.h+this.s+this.i+this.u+this.j+this.l|0;return a=a+this.C+this.o+yb(this)|0};
|
||||||
m.save=function(){var a=new E(this);F(a,0,[this.b,this.h,this.i,this.j,this.l,this.m,this.o,this.A,this.u,yb(this)]);F(a,1,[this.G,this.U,this.c.la]);for(var b=this.B,c=0,d=[],e=0;e<b.f;e++){var f=b.b[e];if(f.Y||f.ib){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var H=f[g],w=g+1;w<f.length&&f[w]===H;)w++;l[k++]=w-g;l[k++]=H;g=w}if(l.length<f.length){f=l;break a}}d[h]=f}}F(a,2,d);return a.data()};
|
m.save=function(){var a=new F(this);G(a,0,[this.c,this.h,this.s,this.i,this.u,this.j,this.l,this.C,this.o,yb(this)]);G(a,1,[this.F,this.U,this.b.ma]);for(var b=this.A,c=0,d=[],e=0;e<b.f;e++){var f=b.b[e];if(f.Z||f.ib){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var D=f[g],u=g+1;u<f.length&&f[u]===D;)u++;k[l++]=u-g;k[l++]=D;g=u}if(k.length<f.length){f=k;break a}}d[h]=f}}G(a,2,d);return a.data()};
|
||||||
m.restore=function(a){var b=a[0];this.b=b[0];this.h=b[1];this.i=b[2];this.j=b[3];this.l=b[4];this.m=b[5];this.o=b[6];this.A=b[7]&65535;D(this,b[8]);wb(this,b[9]);b=a[1];this.G=b[0];this.U=b[1];nb(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.o){for(var f=0,h=Array(b.o),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
m.restore=function(a){var b=a[0];this.c=b[0];this.h=b[1];this.s=b[2];this.i=b[3];this.u=b[4];this.j=b[5];this.l=b[6];this.C=b[7]&65535;E(this,b[8]);wb(this,b[9]);b=a[1];this.F=b[0];this.U=b[1];nb(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.o){for(var f=0,h=Array(b.o),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||||
m.N=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.v[b]=c;this.Ra++;d=!0;break;default:d=this.parent.N.call(this,a,b,c)}return d};function zb(a){return a.h<<8|a.i}function Ab(a,b){a.h=b>>8&255;a.i=b&255}function Bb(a){return a.j<<8|a.l}function Cb(a,b){a.j=b>>8&255;a.l=b&255}function G(a){return a.m<<8|a.o}
|
m.P=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "SF":case "ZF":case "AF":case "PF":case "CF":this.w[b]=c;this.Qa++;d=!0;break;default:d=this.parent.P.call(this,a,b,c)}return d};function zb(a){return a.h<<8|a.s}function Ab(a,b){a.h=b>>8&255;a.s=b&255}function H(a){return a.i<<8|a.u}function Bb(a,b){a.i=b>>8&255;a.u=b&255}function I(a){return a.j<<8|a.l}
|
||||||
function I(a,b){a.m=b>>8&255;a.o=b&255}function D(a,b){a.u=b&65535}function J(a){return a.f&256?1:0}function Db(a){return Ia[a.s&255]?4:0}function yb(a){return a.L&-214|(a.s&128?128:0)|(a.f&255?0:64)|((a.s^a.C)&16?16:0)|Db(a)|J(a)}function wb(a,b){a.f=a.s=a.C=0;b&1&&(a.f|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.f|=255);b&128&&(a.s^=192);a.L=a.L&-513|b&512|2}function K(a,b){a.C=a.b^b;return(a.f=a.s=a.b+b)&255}function L(a,b){a.C=a.b^b;return(a.f=a.s=a.b+b+(a.f&256?1:0))&255}
|
function J(a,b){a.j=b>>8&255;a.l=b&255}function E(a,b){a.o=b&65535}function K(a){return a.f&256?1:0}function Cb(a){return Ia[a.m&255]?4:0}function yb(a){return a.L&-214|(a.m&128?128:0)|(a.f&255?0:64)|((a.m^a.B)&16?16:0)|Cb(a)|K(a)}function wb(a,b){a.f=a.m=a.B=0;b&1&&(a.f|=256);b&4||(a.m|=1);b&16&&(a.B|=16);b&64||(a.f|=255);b&128&&(a.m^=192);a.L=a.L&-513|b&512|2}function L(a,b){a.B=a.c^b;return a.m=(a.f=a.c+b)&255}function M(a,b){a.B=a.c^b;return a.m=(a.f=a.c+b+(a.f&256?1:0))&255}
|
||||||
function M(a,b){return a.f=a.s=a.C=a.b&b}function N(a,b){a.C=a.b^b;a.f=a.s=a.b-b}function Eb(a,b){a.C=b;b=(a.s=b-1)&255;a.f=a.f&-256|b;return b}function Fb(a,b){a.C=b;b=(a.s=b+1)&255;a.f=a.f&-256|b;return b}function O(a,b){return a.f=a.s=a.C=a.b|b}function P(a,b){a.C=a.b^b;return(a.f=a.s=a.b-b)&255}function Q(a,b){a.C=a.b^b;return(a.f=a.s=a.b-b-(a.f&256?1:0))&255}function R(a,b){return a.f=a.s=a.C=a.b^b}m.D=function(a){return this.O[(a&this.Z)>>>this.H].na(a&this.S,a)};
|
function N(a,b){a.f=a.m=a.B=a.c&b;(a.c|b)&8&&(a.B^=16);return a.f}function Db(a,b){a.B=b^255;b=a.m=b+255&255;a.f=a.f&-256|b;return b}function Eb(a,b){a.B=b;b=a.m=b+1&255;a.f=a.f&-256|b;return b}function O(a,b){return a.m=a.f=a.B=a.c|b}function P(a,b){b^=255;a.B=a.c^b;return a.m=(a.f=a.c+b+1^256)&255}function Q(a,b){b^=255;a.B=a.c^b;return a.m=(a.f=a.c+b+(a.f&256?0:1)^256)&255}function R(a,b){return a.m=a.f=a.B=a.c^b}m.D=function(a){return this.M[(a&this.$)>>>this.G].oa(a&this.S,a)};
|
||||||
function Gb(a,b){var c=b&a.S,d=(b&a.Z)>>>a.H;if(c<a.S)return a.O[d].sb(c,b);c=a.O[d].na(c,b);return c|=a.O[d+1&a.Ga].na(0,b+1)<<8}function S(a,b,c){a.O[(b&a.Z)>>>a.H].xa(b&a.S,c&255,b)}function Hb(a,b,c){var d=b&a.S,e=(b&a.Z)>>>a.H;d<a.S?a.O[e].ub(d,c&65535,b):(a.O[e++].xa(d,c&255,b),a.O[e&a.Ga].xa(0,c>>8&255,b+1))}function T(a){var b=a.D(a.u);D(a,a.u+1);return b}function U(a){var b=Gb(a,a.u);D(a,a.u+2);return b}function V(a){var b=Gb(a,a.A);a.A=a.A+2&65535;return b}
|
function Fb(a,b){var c=b&a.S,d=(b&a.$)>>>a.G;if(c<a.S)return a.M[d].sb(c,b);c=a.M[d].oa(c,b);return c|=a.M[d+1&a.pa].oa(0,b+1)<<8}function S(a,b,c){a.M[(b&a.$)>>>a.G].za(b&a.S,c&255,b)}function Gb(a,b,c){var d=b&a.S,e=(b&a.$)>>>a.G;d<a.S?a.M[e].ub(d,c&65535,b):(a.M[e++].za(d,c&255,b),a.M[e&a.pa].za(0,c>>8&255,b+1))}function T(a){var b=a.D(a.o);E(a,a.o+1);return b}function U(a){var b=Fb(a,a.o);E(a,a.o+2);return b}function V(a){var b=Fb(a,a.C);a.C=a.C+2&65535;return b}
|
||||||
function W(a,b){a.A=a.A-2&65535;Hb(a,a.A,b)}function X(a,b,c,d){d=d||2;a.v[b]&&(void 0===c&&(a.g.aa=!0,a.K("Value for "+b+" is invalid"),mb(a)),c=!a.g.R||a.g.Wa?n(c,d):"--------".substr(0,d),a.v[b].textContent!=c&&(a.v[b].textContent=c))}
|
function W(a,b){a.C=a.C-2&65535;Gb(a,a.C,b)}function X(a,b,c,d){d=d||2;a.w[b]&&(void 0===c&&(a.g.ba=!0,a.K("Value for "+b+" is invalid"),mb(a)),c=!a.g.R||a.g.Wa?n(c,d):"--------".substr(0,d),a.w[b].textContent!=c&&(a.w[b].textContent=c))}
|
||||||
m.ea=function(a){this.Ra&&(a||!this.g.R||this.g.Wa)&&(X(this,"A",this.b),X(this,"B",this.h),X(this,"C",this.i),X(this,"BC",zb(this),4),X(this,"D",this.j),X(this,"E",this.l),X(this,"DE",Bb(this),4),X(this,"H",this.m),X(this,"L",this.o),X(this,"HL",G(this),4),X(this,"SP",this.A,4),X(this,"PC",this.u,4),a=yb(this),X(this,"PS",a,4),X(this,"SF",a&128,1),X(this,"ZF",a&64,1),X(this,"AF",a&16,1),X(this,"PF",a&4,1),X(this,"CF",a&1,1));if(a=this.v.speed)a.textContent=this.g.R&&this.c.ca?this.c.ca.toFixed(2)+
|
m.fa=function(a){this.Qa&&(a||!this.g.R||this.g.Wa)&&(X(this,"A",this.c),X(this,"B",this.h),X(this,"C",this.s),X(this,"BC",zb(this),4),X(this,"D",this.i),X(this,"E",this.u),X(this,"DE",H(this),4),X(this,"H",this.j),X(this,"L",this.l),X(this,"HL",I(this),4),X(this,"SP",this.C,4),X(this,"PC",this.o,4),a=yb(this),X(this,"PS",a,4),X(this,"SF",a&128,1),X(this,"ZF",a&64,1),X(this,"AF",a&16,1),X(this,"PF",a&4,1),X(this,"CF",a&1,1));if(a=this.w.speed)a.textContent=this.g.R&&this.b.da?this.b.da.toFixed(2)+
|
||||||
"Mhz":"Stopped"};m.cb=function(a){this.g.za=!0;this.g.hb=!1;this.g.Xa=!1;this.T=this.a=a;do{if(a=this.G)this.G&8&&this.L&512?(a=199|(this.G&7)<<3,this.G&=-16,this.L&=-513,this.Pa[a].call(this),a=!0):a=!1,a=!a;if(a&&this.G&16){this.a=0;break}this.Pa[T(this)].call(this)}while(0<this.a);return this.g.za?this.T-this.a:void 0===this.g.za?0:-1};t(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new sb(d);Ea(d,c)}});function Ib(){this.a-=4}
|
"Mhz":"Stopped"};m.cb=function(a){this.g.Ca=!0;this.g.hb=!1;this.g.Xa=!1;this.T=this.a=a;do{if(a=this.F)this.F&8&&this.L&512?(a=199|(this.F&7)<<3,this.F&=-16,this.L&=-513,this.Oa[a].call(this),a=!0):a=!1,a=!a;if(a&&this.F&16){this.a=0;break}this.Oa[T(this)].call(this)}while(0<this.a);return this.g.Ca?this.T-this.a:void 0===this.g.Ca?0:-1};t(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new sb(d);Ea(d,c)}});function Hb(){this.a-=4}
|
||||||
function Jb(){D(this,U(this));this.a-=10}function Kb(){D(this,V(this));this.a-=10}function Lb(){var a=U(this);W(this,this.u);D(this,a);this.a-=17}
|
function Ib(){E(this,U(this));this.a-=10}function Jb(){E(this,V(this));this.a-=10}function Kb(){var a=U(this);W(this,this.o);E(this,a);this.a-=17}
|
||||||
var tb=[Ib,function(){Ab(this,U(this));this.a-=10},function(){S(this,zb(this),this.b);this.a-=7},function(){Ab(this,zb(this)+1);this.a-=5},function(){this.h=Fb(this,this.h);this.a-=5},function(){this.h=Eb(this,this.h);this.a-=5},function(){this.h=T(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Ib,function(){var a;I(this,a=G(this)+zb(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.D(zb(this));this.a-=7},function(){Ab(this,zb(this)-
|
var tb=[Hb,function(){Ab(this,U(this));this.a-=10},function(){S(this,zb(this),this.c);this.a-=7},function(){Ab(this,zb(this)+1);this.a-=5},function(){this.h=Eb(this,this.h);this.a-=5},function(){this.h=Db(this,this.h);this.a-=5},function(){this.h=T(this);this.a-=7},function(){var a=this.c<<1;this.c=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Hb,function(){var a;J(this,a=I(this)+zb(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.c=this.D(zb(this));this.a-=7},function(){Ab(this,zb(this)-
|
||||||
1);this.a-=5},function(){this.i=Fb(this,this.i);this.a-=5},function(){this.i=Eb(this,this.i);this.a-=5},function(){this.i=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ib,function(){Cb(this,U(this));this.a-=10},function(){S(this,Bb(this),this.b);this.a-=7},function(){Cb(this,Bb(this)+1);this.a-=5},function(){this.j=Fb(this,this.j);this.a-=5},function(){this.j=Eb(this,this.j);this.a-=5},function(){this.j=T(this);this.a-=7},function(){var a=this.b<<
|
1);this.a-=5},function(){this.s=Eb(this,this.s);this.a-=5},function(){this.s=Db(this,this.s);this.a-=5},function(){this.s=T(this);this.a-=7},function(){var a=this.c<<8&256;this.c=(a|this.c)>>1;this.f=this.f&255|a;this.a-=4},Hb,function(){Bb(this,U(this));this.a-=10},function(){S(this,H(this),this.c);this.a-=7},function(){Bb(this,H(this)+1);this.a-=5},function(){this.i=Eb(this,this.i);this.a-=5},function(){this.i=Db(this,this.i);this.a-=5},function(){this.i=T(this);this.a-=7},function(){var a=this.c<<
|
||||||
1;this.b=a&255|this.f>>8;this.f=this.f&255|a&256;this.a-=4},Ib,function(){var a;I(this,a=G(this)+Bb(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.D(Bb(this));this.a-=7},function(){Cb(this,Bb(this)-1);this.a-=5},function(){this.l=Fb(this,this.l);this.a-=5},function(){this.l=Eb(this,this.l);this.a-=5},function(){this.l=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(this.f&256|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ib,function(){I(this,U(this));this.a-=10},function(){Hb(this,
|
1;this.c=a&255|this.f>>8;this.f=this.f&255|a&256;this.a-=4},Hb,function(){var a;J(this,a=I(this)+H(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.c=this.D(H(this));this.a-=7},function(){Bb(this,H(this)-1);this.a-=5},function(){this.u=Eb(this,this.u);this.a-=5},function(){this.u=Db(this,this.u);this.a-=5},function(){this.u=T(this);this.a-=7},function(){var a=this.c<<8&256;this.c=(this.f&256|this.c)>>1;this.f=this.f&255|a;this.a-=4},Hb,function(){J(this,U(this));this.a-=10},function(){Gb(this,
|
||||||
U(this),G(this));this.a-=16},function(){I(this,G(this)+1);this.a-=5},function(){this.m=Fb(this,this.m);this.a-=5},function(){this.m=Eb(this,this.m);this.a-=5},function(){this.m=T(this);this.a-=7},function(){var a=this.b,b=!!J(this),c=!!((this.s^this.C)&16);9<(a&15)||c?(a+=6,c=!0):c=!1;160<=a||b?(a+=96,b=!0):b=!1;this.f=this.s=this.b=a&255;this.f=b?this.f|256:this.f&-257;this.C=c?~this.s&16|this.C&-17:this.s&16|this.C&-17;this.a-=4},Ib,function(){var a;I(this,a=G(this)+G(this));this.f=this.f&255|a>>
|
U(this),I(this));this.a-=16},function(){J(this,I(this)+1);this.a-=5},function(){this.j=Eb(this,this.j);this.a-=5},function(){this.j=Db(this,this.j);this.a-=5},function(){this.j=T(this);this.a-=7},function(){var a=this.c,b=!!K(this),c=!!((this.m^this.B)&16);9<(a&15)||c?(a+=6,c=!0):c=!1;160<=a||b?(a+=96,b=!0):b=!1;this.f=this.m=this.c=a&255;this.f=b?this.f|256:this.f&-257;this.B=c?~this.m&16|this.B&-17:this.m&16|this.B&-17;this.a-=4},Hb,function(){var a;J(this,a=I(this)+I(this));this.f=this.f&255|a>>
|
||||||
8&256;this.a-=10},function(){I(this,Gb(this,U(this)));this.a-=16},function(){I(this,G(this)-1);this.a-=5},function(){this.o=Fb(this,this.o);this.a-=5},function(){this.o=Eb(this,this.o);this.a-=5},function(){this.o=T(this);this.a-=7},function(){this.b=~this.b&255;this.a-=4},Ib,function(){this.A=U(this)&65535;this.a-=10},function(){S(this,U(this),this.b);this.a-=13},function(){this.A=this.A+1&65535;this.a-=5},function(){var a=G(this);S(this,a,Fb(this,this.D(a)));this.a-=10},function(){var a=G(this);
|
8&256;this.a-=10},function(){J(this,Fb(this,U(this)));this.a-=16},function(){J(this,I(this)-1);this.a-=5},function(){this.l=Eb(this,this.l);this.a-=5},function(){this.l=Db(this,this.l);this.a-=5},function(){this.l=T(this);this.a-=7},function(){this.c=~this.c&255;this.a-=4},Hb,function(){this.C=U(this)&65535;this.a-=10},function(){S(this,U(this),this.c);this.a-=13},function(){this.C=this.C+1&65535;this.a-=5},function(){var a=I(this);S(this,a,Eb(this,this.D(a)));this.a-=10},function(){var a=I(this);
|
||||||
S(this,a,Eb(this,this.D(a)));this.a-=10},function(){S(this,G(this),T(this));this.a-=10},function(){this.f|=256;this.a-=4},Ib,function(){var a;this.A=(a=G(this)+this.A)&65535;this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.D(U(this));this.a-=13},function(){this.A=this.A-1&65535;this.a-=5},function(){this.b=Fb(this,this.b);this.a-=5},function(){this.b=Eb(this,this.b);this.a-=5},function(){this.b=T(this);this.a-=7},function(){this.f=J(this)?this.f&-257:this.f|256;this.a-=4},function(){this.a-=
|
S(this,a,Db(this,this.D(a)));this.a-=10},function(){S(this,I(this),T(this));this.a-=10},function(){this.f|=256;this.a-=4},Hb,function(){var a;J(this,a=I(this)+this.C);this.f=this.f&255|a>>8&256;this.a-=10},function(){this.c=this.D(U(this));this.a-=13},function(){this.C=this.C-1&65535;this.a-=5},function(){this.c=Eb(this,this.c);this.a-=5},function(){this.c=Db(this,this.c);this.a-=5},function(){this.c=T(this);this.a-=7},function(){this.f=K(this)?this.f&-257:this.f|256;this.a-=4},function(){this.a-=
|
||||||
5},function(){this.h=this.i;this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=this.m;this.a-=5},function(){this.h=this.o;this.a-=5},function(){this.h=this.D(G(this));this.a-=7},function(){this.h=this.b;this.a-=5},function(){this.i=this.h;this.a-=5},function(){this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.m;this.a-=5},function(){this.i=this.o;this.a-=5},function(){this.i=this.D(G(this));this.a-=
|
5},function(){this.h=this.s;this.a-=5},function(){this.h=this.i;this.a-=5},function(){this.h=this.u;this.a-=5},function(){this.h=this.j;this.a-=5},function(){this.h=this.l;this.a-=5},function(){this.h=this.D(I(this));this.a-=7},function(){this.h=this.c;this.a-=5},function(){this.s=this.h;this.a-=5},function(){this.a-=5},function(){this.s=this.i;this.a-=5},function(){this.s=this.u;this.a-=5},function(){this.s=this.j;this.a-=5},function(){this.s=this.l;this.a-=5},function(){this.s=this.D(I(this));this.a-=
|
||||||
7},function(){this.i=this.b;this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=this.m;this.a-=5},function(){this.j=this.o;this.a-=5},function(){this.j=this.D(G(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=this.m;this.a-=5},function(){this.l=
|
7},function(){this.s=this.c;this.a-=5},function(){this.i=this.h;this.a-=5},function(){this.i=this.s;this.a-=5},function(){this.a-=5},function(){this.i=this.u;this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.D(I(this));this.a-=7},function(){this.i=this.c;this.a-=5},function(){this.u=this.h;this.a-=5},function(){this.u=this.s;this.a-=5},function(){this.u=this.i;this.a-=5},function(){this.a-=5},function(){this.u=this.j;this.a-=5},function(){this.u=
|
||||||
this.o;this.a-=5},function(){this.l=this.D(G(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.m=this.h;this.a-=5},function(){this.m=this.i;this.a-=5},function(){this.m=this.j;this.a-=5},function(){this.m=this.l;this.a-=5},function(){this.a-=5},function(){this.m=this.o;this.a-=5},function(){this.m=this.D(G(this));this.a-=7},function(){this.m=this.b;this.a-=5},function(){this.o=this.h;this.a-=5},function(){this.o=this.i;this.a-=5},function(){this.o=this.j;this.a-=5},function(){this.o=
|
this.l;this.a-=5},function(){this.u=this.D(I(this));this.a-=7},function(){this.u=this.c;this.a-=5},function(){this.j=this.h;this.a-=5},function(){this.j=this.s;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.j=this.u;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=this.D(I(this));this.a-=7},function(){this.j=this.c;this.a-=5},function(){this.l=this.h;this.a-=5},function(){this.l=this.s;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.l=
|
||||||
this.l;this.a-=5},function(){this.o=this.m;this.a-=5},function(){this.a-=5},function(){this.o=this.D(G(this));this.a-=7},function(){this.o=this.b;this.a-=5},function(){S(this,G(this),this.h);this.a-=7},function(){S(this,G(this),this.i);this.a-=7},function(){S(this,G(this),this.j);this.a-=7},function(){S(this,G(this),this.l);this.a-=7},function(){S(this,G(this),this.m);this.a-=7},function(){S(this,G(this),this.o);this.a-=7},function(){var a=this.u-1;if(this.fa.length)for(var b=0;b<this.fa.length;b++)if(this.fa[b](a))return;
|
this.u;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},function(){this.l=this.D(I(this));this.a-=7},function(){this.l=this.c;this.a-=5},function(){S(this,I(this),this.h);this.a-=7},function(){S(this,I(this),this.s);this.a-=7},function(){S(this,I(this),this.i);this.a-=7},function(){S(this,I(this),this.u);this.a-=7},function(){S(this,I(this),this.j);this.a-=7},function(){S(this,I(this),this.l);this.a-=7},function(){var a=this.o-1;if(this.ga.length)for(var b=0;b<this.ga.length;b++)if(this.ga[b](a))return;
|
||||||
this.G|=16;this.a-=7;this.L&512||mb(this)},function(){S(this,G(this),this.b);this.a-=7},function(){this.b=this.h;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=this.m;this.a-=5},function(){this.b=this.o;this.a-=5},function(){this.b=this.D(G(this));this.a-=7},function(){this.a-=5},function(){this.b=K(this,this.h);this.a-=4},function(){this.b=K(this,this.i);this.a-=4},function(){this.b=K(this,this.j);this.a-=4},
|
this.F|=16;this.a-=7;this.L&512||mb(this)},function(){S(this,I(this),this.c);this.a-=7},function(){this.c=this.h;this.a-=5},function(){this.c=this.s;this.a-=5},function(){this.c=this.i;this.a-=5},function(){this.c=this.u;this.a-=5},function(){this.c=this.j;this.a-=5},function(){this.c=this.l;this.a-=5},function(){this.c=this.D(I(this));this.a-=7},function(){this.a-=5},function(){this.c=L(this,this.h);this.a-=4},function(){this.c=L(this,this.s);this.a-=4},function(){this.c=L(this,this.i);this.a-=4},
|
||||||
function(){this.b=K(this,this.l);this.a-=4},function(){this.b=K(this,this.m);this.a-=4},function(){this.b=K(this,this.o);this.a-=4},function(){this.b=K(this,this.D(G(this)));this.a-=7},function(){this.b=K(this,this.b);this.a-=4},function(){this.b=L(this,this.h);this.a-=4},function(){this.b=L(this,this.i);this.a-=4},function(){this.b=L(this,this.j);this.a-=4},function(){this.b=L(this,this.l);this.a-=4},function(){this.b=L(this,this.m);this.a-=4},function(){this.b=L(this,this.o);this.a-=4},function(){this.b=
|
function(){this.c=L(this,this.u);this.a-=4},function(){this.c=L(this,this.j);this.a-=4},function(){this.c=L(this,this.l);this.a-=4},function(){this.c=L(this,this.D(I(this)));this.a-=7},function(){this.c=L(this,this.c);this.a-=4},function(){this.c=M(this,this.h);this.a-=4},function(){this.c=M(this,this.s);this.a-=4},function(){this.c=M(this,this.i);this.a-=4},function(){this.c=M(this,this.u);this.a-=4},function(){this.c=M(this,this.j);this.a-=4},function(){this.c=M(this,this.l);this.a-=4},function(){this.c=
|
||||||
L(this,this.D(G(this)));this.a-=7},function(){this.b=L(this,this.b);this.a-=4},function(){this.b=P(this,this.h);this.a-=4},function(){this.b=P(this,this.i);this.a-=4},function(){this.b=P(this,this.j);this.a-=4},function(){this.b=P(this,this.l);this.a-=4},function(){this.b=P(this,this.m);this.a-=4},function(){this.b=P(this,this.o);this.a-=4},function(){this.b=P(this,this.D(G(this)));this.a-=7},function(){this.b=P(this,this.b);this.a-=4},function(){this.b=Q(this,this.h);this.a-=4},function(){this.b=
|
M(this,this.D(I(this)));this.a-=7},function(){this.c=M(this,this.c);this.a-=4},function(){this.c=P(this,this.h);this.a-=4},function(){this.c=P(this,this.s);this.a-=4},function(){this.c=P(this,this.i);this.a-=4},function(){this.c=P(this,this.u);this.a-=4},function(){this.c=P(this,this.j);this.a-=4},function(){this.c=P(this,this.l);this.a-=4},function(){this.c=P(this,this.D(I(this)));this.a-=7},function(){this.c=P(this,this.c);this.a-=4},function(){this.c=Q(this,this.h);this.a-=4},function(){this.c=
|
||||||
Q(this,this.i);this.a-=4},function(){this.b=Q(this,this.j);this.a-=4},function(){this.b=Q(this,this.l);this.a-=4},function(){this.b=Q(this,this.m);this.a-=4},function(){this.b=Q(this,this.o);this.a-=4},function(){this.b=Q(this,this.D(G(this)));this.a-=7},function(){this.b=Q(this,this.b);this.a-=4},function(){this.b=M(this,this.h);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.j);this.a-=4},function(){this.b=M(this,this.l);this.a-=4},function(){this.b=M(this,this.m);
|
Q(this,this.s);this.a-=4},function(){this.c=Q(this,this.i);this.a-=4},function(){this.c=Q(this,this.u);this.a-=4},function(){this.c=Q(this,this.j);this.a-=4},function(){this.c=Q(this,this.l);this.a-=4},function(){this.c=Q(this,this.D(I(this)));this.a-=7},function(){this.c=Q(this,this.c);this.a-=4},function(){this.c=N(this,this.h);this.a-=4},function(){this.c=N(this,this.s);this.a-=4},function(){this.c=N(this,this.i);this.a-=4},function(){this.c=N(this,this.u);this.a-=4},function(){this.c=N(this,this.j);
|
||||||
this.a-=4},function(){this.b=M(this,this.o);this.a-=4},function(){this.b=M(this,this.D(G(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=R(this,this.h);this.a-=4},function(){this.b=R(this,this.i);this.a-=4},function(){this.b=R(this,this.j);this.a-=4},function(){this.b=R(this,this.l);this.a-=4},function(){this.b=R(this,this.m);this.a-=4},function(){this.b=R(this,this.o);this.a-=4},function(){this.b=R(this,this.D(G(this)));this.a-=7},function(){this.b=R(this,this.b);
|
this.a-=4},function(){this.c=N(this,this.l);this.a-=4},function(){this.c=N(this,this.D(I(this)));this.a-=7},function(){this.c=N(this,this.c);this.a-=4},function(){this.c=R(this,this.h);this.a-=4},function(){this.c=R(this,this.s);this.a-=4},function(){this.c=R(this,this.i);this.a-=4},function(){this.c=R(this,this.u);this.a-=4},function(){this.c=R(this,this.j);this.a-=4},function(){this.c=R(this,this.l);this.a-=4},function(){this.c=R(this,this.D(I(this)));this.a-=7},function(){this.c=R(this,this.c);
|
||||||
this.a-=4},function(){this.b=O(this,this.h);this.a-=4},function(){this.b=O(this,this.i);this.a-=4},function(){this.b=O(this,this.j);this.a-=4},function(){this.b=O(this,this.l);this.a-=4},function(){this.b=O(this,this.m);this.a-=4},function(){this.b=O(this,this.o);this.a-=4},function(){this.b=O(this,this.D(G(this)));this.a-=7},function(){this.b=O(this,this.b);this.a-=4},function(){N(this,this.h);this.a-=4},function(){N(this,this.i);this.a-=4},function(){N(this,this.j);this.a-=4},function(){N(this,
|
this.a-=4},function(){this.c=O(this,this.h);this.a-=4},function(){this.c=O(this,this.s);this.a-=4},function(){this.c=O(this,this.i);this.a-=4},function(){this.c=O(this,this.u);this.a-=4},function(){this.c=O(this,this.j);this.a-=4},function(){this.c=O(this,this.l);this.a-=4},function(){this.c=O(this,this.D(I(this)));this.a-=7},function(){this.c=O(this,this.c);this.a-=4},function(){P(this,this.h);this.a-=4},function(){P(this,this.s);this.a-=4},function(){P(this,this.i);this.a-=4},function(){P(this,
|
||||||
this.l);this.a-=4},function(){N(this,this.m);this.a-=4},function(){N(this,this.o);this.a-=4},function(){N(this,this.D(G(this)));this.a-=7},function(){N(this,this.b);this.a-=4},function(){this.f&255&&(D(this,V(this)),this.a-=6);this.a-=5},function(){Ab(this,V(this));this.a-=10},function(){var a=U(this);this.f&255&&D(this,a);this.a-=10},Jb,function(){var a=U(this);this.f&255&&(W(this,this.u),D(this,a),this.a-=6);this.a-=11},function(){W(this,zb(this));this.a-=11},function(){this.b=K(this,T(this));this.a-=
|
this.u);this.a-=4},function(){P(this,this.j);this.a-=4},function(){P(this,this.l);this.a-=4},function(){P(this,this.D(I(this)));this.a-=7},function(){P(this,this.c);this.a-=4},function(){this.f&255&&(E(this,V(this)),this.a-=6);this.a-=5},function(){Ab(this,V(this));this.a-=10},function(){var a=U(this);this.f&255&&E(this,a);this.a-=10},Ib,function(){var a=U(this);this.f&255&&(W(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){W(this,zb(this));this.a-=11},function(){this.c=L(this,T(this));this.a-=
|
||||||
7},function(){W(this,this.u);D(this,0);this.a-=11},function(){this.f&255||(D(this,V(this)),this.a-=6);this.a-=5},Kb,function(){var a=U(this);this.f&255||D(this,a);this.a-=10},Jb,function(){var a=U(this);this.f&255||(W(this,this.u),D(this,a),this.a-=6);this.a-=11},Lb,function(){this.b=L(this,T(this));this.a-=7},function(){W(this,this.u);D(this,8);this.a-=11},function(){J(this)||(D(this,V(this)),this.a-=6);this.a-=5},function(){Cb(this,V(this));this.a-=10},function(){var a=U(this);J(this)||D(this,a);
|
7},function(){W(this,this.o);E(this,0);this.a-=11},function(){this.f&255||(E(this,V(this)),this.a-=6);this.a-=5},Jb,function(){var a=U(this);this.f&255||E(this,a);this.a-=10},Ib,function(){var a=U(this);this.f&255||(W(this,this.o),E(this,a),this.a-=6);this.a-=11},Kb,function(){this.c=M(this,T(this));this.a-=7},function(){W(this,this.o);E(this,8);this.a-=11},function(){K(this)||(E(this,V(this)),this.a-=6);this.a-=5},function(){Bb(this,V(this));this.a-=10},function(){var a=U(this);K(this)||E(this,a);
|
||||||
this.a-=10},function(){for(var a=T(this),b=this.B,c=this.b,d=1,e=0;0<d;){var f=b.j[a],h=b.u[a]||1,g=1==h?255:2==h?65535:-1,g=(c>>>=e)&g;if(void 0!==f&&f[0])f[0](a,g,void 0);e+=h<<3;a+=h;d-=h}this.a-=10},function(){var a=U(this);J(this)||(W(this,this.u),D(this,a),this.a-=6);this.a-=11},function(){W(this,Bb(this));this.a-=11},function(){this.b=P(this,T(this));this.a-=7},function(){W(this,this.u);D(this,16);this.a-=11},function(){J(this)&&(D(this,V(this)),this.a-=6);this.a-=5},Kb,function(){var a=U(this);
|
this.a-=10},function(){for(var a=T(this),b=this.A,c=this.c,d=1,e=0;0<d;){var f=b.j[a],h=b.A[a]||1,g=1==h?255:2==h?65535:-1,g=(c>>>=e)&g;if(void 0!==f&&f[0])f[0](a,g,void 0);e+=h<<3;a+=h;d-=h}this.a-=10},function(){var a=U(this);K(this)||(W(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){W(this,H(this));this.a-=11},function(){this.c=P(this,T(this));this.a-=7},function(){W(this,this.o);E(this,16);this.a-=11},function(){K(this)&&(E(this,V(this)),this.a-=6);this.a-=5},Jb,function(){var a=U(this);
|
||||||
J(this)&&D(this,a);this.a-=10},function(){for(var a=T(this),b=this.B,c=1,d=0,e=0;0<c;){var f=b.i[a],h=b.s[a]||1,g=1==h?255:2==h?65535:-1,k=g;void 0!==f&&f[0]&&(k=f[0](a,void 0),void 0===k?k=g:k&=g);d|=k<<e;e+=h<<3;a+=h;c-=h}this.b=d&255;this.a-=10},function(){var a=U(this);J(this)&&(W(this,this.u),D(this,a),this.a-=6);this.a-=11},Lb,function(){this.b=Q(this,T(this));this.a-=7},function(){W(this,this.u);D(this,24);this.a-=11},function(){Db(this)||(D(this,V(this)),this.a-=6);this.a-=5},function(){I(this,
|
K(this)&&E(this,a);this.a-=10},function(){for(var a=T(this),b=this.A,c=1,d=0,e=0;0<c;){var f=b.i[a],h=b.v[a]||1,g=1==h?255:2==h?65535:-1,l=g;void 0!==f&&f[0]&&(l=f[0](a,void 0),void 0===l?l=g:l&=g);d|=l<<e;e+=h<<3;a+=h;c-=h}this.c=d&255;this.a-=10},function(){var a=U(this);K(this)&&(W(this,this.o),E(this,a),this.a-=6);this.a-=11},Kb,function(){this.c=Q(this,T(this));this.a-=7},function(){W(this,this.o);E(this,24);this.a-=11},function(){Cb(this)||(E(this,V(this)),this.a-=6);this.a-=5},function(){J(this,
|
||||||
V(this));this.a-=10},function(){var a=U(this);Db(this)||D(this,a);this.a-=10},function(){var a=V(this);W(this,G(this));I(this,a);this.a-=18},function(){var a=U(this);Db(this)||(W(this,this.u),D(this,a),this.a-=6);this.a-=11},function(){W(this,G(this));this.a-=11},function(){this.b=M(this,T(this));this.a-=7},function(){W(this,this.u);D(this,32);this.a-=11},function(){Db(this)&&(D(this,V(this)),this.a-=6);this.a-=5},function(){D(this,G(this));this.a-=5},function(){var a=U(this);Db(this)&&D(this,a);
|
V(this));this.a-=10},function(){var a=U(this);Cb(this)||E(this,a);this.a-=10},function(){var a=V(this);W(this,I(this));J(this,a);this.a-=18},function(){var a=U(this);Cb(this)||(W(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){W(this,I(this));this.a-=11},function(){this.c=N(this,T(this));this.a-=7},function(){W(this,this.o);E(this,32);this.a-=11},function(){Cb(this)&&(E(this,V(this)),this.a-=6);this.a-=5},function(){E(this,I(this));this.a-=5},function(){var a=U(this);Cb(this)&&E(this,a);
|
||||||
this.a-=10},function(){var a=G(this);I(this,Bb(this));Cb(this,a);this.a-=5},function(){var a=U(this);Db(this)&&(W(this,this.u),D(this,a),this.a-=6);this.a-=11},Lb,function(){this.b=R(this,T(this));this.a-=7},function(){W(this,this.u);D(this,40);this.a-=11},function(){this.s&128||(D(this,V(this)),this.a-=6);this.a-=5},function(){var a=V(this);wb(this,a);this.b=a>>8;this.a-=10},function(){var a=U(this);this.s&128||D(this,a);this.a-=10},function(){this.L&=-513;this.a-=4},function(){var a=U(this);this.s&
|
this.a-=10},function(){var a=I(this);J(this,H(this));Bb(this,a);this.a-=5},function(){var a=U(this);Cb(this)&&(W(this,this.o),E(this,a),this.a-=6);this.a-=11},Kb,function(){this.c=R(this,T(this));this.a-=7},function(){W(this,this.o);E(this,40);this.a-=11},function(){this.m&128||(E(this,V(this)),this.a-=6);this.a-=5},function(){var a=V(this);wb(this,a);this.c=a>>8;this.a-=10},function(){var a=U(this);this.m&128||E(this,a);this.a-=10},function(){this.L&=-513;this.a-=4},function(){var a=U(this);this.m&
|
||||||
128||(W(this,this.u),D(this,a),this.a-=6);this.a-=11},function(){W(this,yb(this)&255|this.b<<8);this.a-=11},function(){this.b=O(this,T(this));this.a-=7},function(){W(this,this.u);D(this,48);this.a-=11},function(){this.s&128&&(D(this,V(this)),this.a-=6);this.a-=5},function(){this.A=G(this)&65535;this.a-=5},function(){var a=U(this);this.s&128&&D(this,a);this.a-=10},function(){this.L|=512;this.a-=4},function(){var a=U(this);this.s&128&&(W(this,this.u),D(this,a),this.a-=6);this.a-=11},Lb,function(){N(this,
|
128||(W(this,this.o),E(this,a),this.a-=6);this.a-=11},function(){W(this,yb(this)&255|this.c<<8);this.a-=11},function(){this.c=O(this,T(this));this.a-=7},function(){W(this,this.o);E(this,48);this.a-=11},function(){this.m&128&&(E(this,V(this)),this.a-=6);this.a-=5},function(){this.C=I(this)&65535;this.a-=5},function(){var a=U(this);this.m&128&&E(this,a);this.a-=10},function(){this.L|=512;this.a-=4},function(){var a=U(this);this.m&128&&(W(this,this.o),E(this,a),this.a-=6);this.a-=11},Kb,function(){P(this,
|
||||||
T(this));this.a-=7},function(){W(this,this.u);D(this,56);this.a-=11}];function Y(a){u.call(this,"ChipSet",a,Y);var b=a.model;b&&!Mb[b]&&q("Unrecognized ChipSet model: "+b);this.$=Mb[b];a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}x(Y);var Mb={SI1978:1978.1};m=Y.prototype;m.N=function(){return!1};
|
T(this));this.a-=7},function(){W(this,this.o);E(this,56);this.a-=11}];function Y(a){v.call(this,"ChipSet",a,Y);var b=a.model;b&&!Lb[b]&&q("Unrecognized ChipSet model: "+b);this.aa=Lb[b];a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}x(Y);var Lb={SI1978:1978.1};m=Y.prototype;m.P=function(){return!1};
|
||||||
m.ba=function(a,b,c,d){this.B=b;this.a=c;this.F=d;this.w=a;if(1978.1==this.$){var e;a=Nb;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.i[g]?q("Input port 0x"+n(g,4)+" already registered"):c.i[g]=[h,!1]}var k;e=Ob;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.j[d]?q("Output port 0x"+n(d,4)+" already registered"):f.j[d]=[c,!1]}};
|
m.ca=function(a,b,c,d){this.A=b;this.a=c;this.I=d;this.v=a;if(1978.1==this.aa){var e;a=Mb;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.i[g]?q("Input port 0x"+n(g,4)+" already registered"):c.i[g]=[h,!1]}var l;e=Nb;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.j[d]?q("Output port 0x"+n(d,4)+" already registered"):f.j[d]=[c,!1]}};
|
||||||
m.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.V=function(a){return a?this.save():!0};m.reset=function(){this.f=this.h=this.b=this.c=this.l=this.j=this.i=0};m.save=function(){var a=new E(this);1978.1==this.$&&F(a,0,[this.i,this.j,this.l,this.c,this.b,this.f,this.h]);return a.data()};m.restore=function(a){a=a[0];1978.1==this.$&&(this.i=a[0],this.j=a[1],this.l=a[2],this.c=a[3],this.b=a[4],this.f=a[5],this.h=a[6]);return!0};m.kb=function(){return this.i};
|
m.W=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.V=function(a){return a?this.save():!0};m.reset=function(){this.f=this.h=this.b=this.c=this.l=this.j=this.i=0};m.save=function(){var a=new F(this);1978.1==this.aa&&G(a,0,[this.i,this.j,this.l,this.c,this.b,this.f,this.h]);return a.data()};m.restore=function(a){a=a[0];1978.1==this.aa&&(this.i=a[0],this.j=a[1],this.l=a[2],this.c=a[3],this.b=a[4],this.f=a[5],this.h=a[6]);return!0};m.kb=function(){return this.i};
|
||||||
m.lb=function(){return this.j};m.mb=function(){return this.l};m.jb=function(){return this.c<<this.b>>8&255};m.ob=function(a,b){this.b=b};m.qb=function(a,b){this.f=b};m.pb=function(a,b){this.c=b};m.rb=function(a,b){this.h=b};var Nb={0:Y.prototype.kb,1:Y.prototype.lb,2:Y.prototype.mb,3:Y.prototype.jb},Ob={2:Y.prototype.ob,3:Y.prototype.qb,4:Y.prototype.pb,5:Y.prototype.rb};t(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Y(d);Ea(d,c)}});
|
m.lb=function(){return this.j};m.mb=function(){return this.l};m.jb=function(){return this.c<<this.b>>8&255};m.ob=function(a,b){this.b=b};m.qb=function(a,b){this.f=b};m.pb=function(a,b){this.c=b};m.rb=function(a,b){this.h=b};var Mb={0:Y.prototype.kb,1:Y.prototype.lb,2:Y.prototype.mb,3:Y.prototype.jb},Nb={2:Y.prototype.ob,3:Y.prototype.qb,4:Y.prototype.pb,5:Y.prototype.rb};t(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Y(d);Ea(d,c)}});
|
||||||
function Pb(a){u.call(this,"ROM",a,Pb);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.h=a.file;this.m=ba(this.h);if(this.h){a=this.h;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ia()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Qb(c,a,b,f)})}}x(Pb);var Rb=[0,5];Pb.prototype.ba=function(a,b,c,d){this.B=b;this.a=c;this.F=d;Sb(this)};
|
function Ob(a){v.call(this,"ROM",a,Ob);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.h=a.file;this.m=ba(this.h);if(this.h){a=this.h;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ia()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Pb(c,a,b,f)})}}x(Ob);var Qb=[0,5];Ob.prototype.ca=function(a,b,c,d){this.A=b;this.a=c;this.I=d;Rb(this)};
|
||||||
Pb.prototype.W=function(){this.i&&(this.F&&this.F.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Pb.prototype.V=function(){return!0};
|
Ob.prototype.W=function(){this.i&&(this.I&&this.I.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Ob.prototype.V=function(){return!0};
|
||||||
function Qb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ca(a.Na,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(g){a.K("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
function Pb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ca(a.Ta,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(g){a.K("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||||
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);Sb(a)}}
|
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=aa(b[e]);Rb(a)}}
|
||||||
function Sb(a){if(!Ga(a))if(!a.h)B(a);else if(a.b&&a.B){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.g.aa=!0;a.K(b)}else if(Tb(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.c,g=[],k=d.j>>>f.H;0<h&&k<f.b.length;)g.push(f.b[k++]),h-=f.I;f=d.B;d=d.c;h=0;for(e>>>=f.H;0<d&&e<f.b.length;){k=g[h++];if(!k)break;f.b[e++]=k;d-=f.I}}delete a.b}B(a)}}
|
function Rb(a){if(!Ga(a))if(!a.h)B(a);else if(a.b&&a.A){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.g.ba=!0;a.K(b)}else if(Sb(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.A,h=d.c,g=[],l=d.j>>>f.G;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.H;f=d.A;d=d.c;h=0;for(e>>>=f.G;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.H}}delete a.b}B(a)}}
|
||||||
function Tb(a,b){if(Oa(a.B,b,a.c,a.l?1:Xa)){var c;for(c=0;c<a.b.length;c++)Qa(a.B,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Rb.length;c++)Qa(a.B,Rb[c],118);vb(a.a,function(a){return function(b){0<=Rb.indexOf(b)&&a.F&&(a.M("CP/M vector 0x"+n(b,4)),D(a.a,b),mb(a.F))}}(a));xb(a.a,b)}return!0}return!1}t(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Pb(d);Ea(d,c)}});function Ub(a){u.call(this,"RAM",a,Ub);this.f=a.addr;this.c=a.size;this.b=!1}x(Ub);m=Ub.prototype;
|
function Sb(a,b){if(Oa(a.A,b,a.c,a.l?1:Xa)){var c;for(c=0;c<a.b.length;c++)Ra(a.A,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Qb.length;c++)Ra(a.A,Qb[c],118);vb(a.a,function(a){return function(b){if(0<=Qb.indexOf(b)){var c=!1,h=a.a,g=a.I;if(5==b)switch(c=!0,h.s){case 2:Tb(a,String.fromCharCode(h.u));break;case 9:for(var l=H(h),k="",D=255;D--;){var u=a.a.D(l++);if(36==u)break;k+=String.fromCharCode(u)}Tb(a,k);break;default:c=!1}c?Jb.call(h):g&&(a.O("\nCP/M vector 0x"+n(b,4)),E(h,b),mb(g));b=!0}else b=!1;
|
||||||
m.ba=function(a,b,c,d){this.B=b;this.a=c;this.F=d;B(this)};m.W=function(a,b){b||this.reset();return!0};m.V=function(a){return a?this.save():!0};m.reset=function(){!this.b&&this.c&&Oa(this.B,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};t(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ub(d);Ea(d,c)}});
|
return b}}(a));xb(a.a,b)}return!0}return!1}function Tb(a,b){b=b.replace(/\r/g,"");a.Y&&(a.Y.value+=b,a.Y.scrollTop=a.Y.scrollHeight)}t(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ob(d);Ea(d,c)}});function Ub(a){v.call(this,"RAM",a,Ub);this.f=a.addr;this.c=a.size;this.b=!1}x(Ub);m=Ub.prototype;m.ca=function(a,b,c,d){this.A=b;this.a=c;this.I=d;B(this)};m.W=function(a,b){b||this.reset();return!0};m.V=function(a){return a?this.save():!0};
|
||||||
function Vb(a){u.call(this,"Keyboard",a,Vb);B(this)}x(Vb);t(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Vb(d);Ea(d,c)}});function Wb(a){u.call(this,"Video",a,Wb);this.fb=a.interruptRate;this.X=a.refreshRate||60;B(this)}x(Wb);Wb.prototype.ba=function(a,b,c,d){this.w=a;this.B=b;this.a=c;this.F=d};
|
m.reset=function(){!this.b&&this.c&&Oa(this.A,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};t(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ub(d);Ea(d,c)}});function Vb(a){v.call(this,"Keyboard",a,Vb);B(this)}x(Vb);t(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Vb(d);Ea(d,c)}});
|
||||||
|
function Wb(a){v.call(this,"Video",a,Wb);this.gb=a.interruptRate;this.X=a.refreshRate||60;B(this)}x(Wb);Wb.prototype.ca=function(a,b,c,d){this.v=a;this.A=b;this.a=c;this.I=d};
|
||||||
t(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
t(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
|
||||||
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||wa.aspect);f&&.3<=f&&3.33>=f&&(ra("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");oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new Wb(d);Ea(d,c)}});
|
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||wa.aspect);f&&.3<=f&&3.33>=f&&(ra("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");oa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e.getContext("2d");d=new Wb(d);Ea(d,c)}});
|
||||||
function E(a,b,c){this.id=a.id;this.key=Xb(a,b,c);this.F=a.F;Yb(this,a.bb)}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}
|
function F(a,b,c){this.id=a.id;this.key=Xb(a,b,c);this.I=a.I;Yb(this,a.bb)}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}
|
||||||
E.prototype={constructor:E,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Yb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
F.prototype={constructor:F,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Yb(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 Yb(a,b){a[a.id]={};b&&F(a,"parms",b);a.a=!1}function Zb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function $b(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function ac(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}function bc(a,b){return a[a.id][b]||null}function F(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
function Yb(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function Zb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function $b(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function ac(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}function bc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||||
function cc(a,b,c){u.call(this,"Computer",a,cc);this.g.J=!1;dc(this,b);this.w=hb(this,"autoPower",a);this.f=0;this.I=a.busWidth||a.buswidth;this.b=ec;this.o=null;this.j=this.H=!1;this.L=hb(this,"url")||"";(Math.random()+.1).toString(36);this.c=fc(this);if(this.a=Da("CPU",this.id)){this.F=Da("Debugger",this.id);this.u=[];for(b=null;b=Ka(this,"Video",b);)this.u.push(b);this.B=new Ma({id:this.Na+".bus",busWidth:this.I},this.a,this.F);var d,e=y(this.id);if((this.h=Da("Panel",this.id))&&this.h.Ha)for(b=
|
function cc(a,b,c){v.call(this,"Computer",a,cc);this.g.J=!1;dc(this,b);this.C=hb(this,"autoPower",a);this.f=0;this.M=a.busWidth||a.buswidth;this.b=ec;this.o=null;this.j=this.L=!1;this.N=hb(this,"url")||"";(Math.random()+.1).toString(36);this.c=fc(this);if(this.a=Da("CPU",this.id)){this.I=Da("Debugger",this.id);this.B=[];for(b=null;b=Ka(this,"Video",b);)this.B.push(b);this.A=new Ma({id:this.Ta+".bus",busWidth:this.M},this.a,this.I);var d,e=y(this.id);if((this.h=Da("Panel",this.id))&&this.h.Y)for(b=
|
||||||
0;b<e.length;b++)d=e[b],d.K=this.h.K,d.M=this.h.M,d.Ha=this.h.Ha;for(b=0;b<e.length;b++)d=e[b],d.ba&&d.ba(this,this.B,this.a,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=hb(this,"state")||(f=!0,a.state))b=this.A=a,f||(this.j=!0,this.b=ec),this.b&&(this.s=new E(this,Z),ac(this.s)?b=null:delete this.s);!b&&this.b&&(b=gc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.K("Unable to load machine state from server (error "+
|
0;b<e.length;b++)d=e[b],d.K=this.h.K,d.O=this.h.O,d.Y=this.h.Y;for(b=0;b<e.length;b++)d=e[b],d.ca&&d.ca(this,this.A,this.a,this.I);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=hb(this,"state")||(f=!0,a.state))b=this.F=a,f||(this.j=!0,this.b=ec),this.b&&(this.v=new F(this,Z),ac(this.v)?b=null:delete this.v);!b&&this.b&&(b=gc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.K("Unable to load machine state from server (error "+
|
||||||
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.o=b,h.H=!0);B(h)})}else B(this);this.v.power||(this.w=!0);!c&&this.w&&hc(this,this.wa)}else q("Unable to find CPU component")}x(cc);var Z="1.21.7",ec=0;function dc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.l=b}
|
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.o=b,h.L=!0);B(h)})}else B(this);this.w.power||(this.C=!0);!c&&this.C&&hc(this,this.ya)}else q("Unable to find CPU component")}x(cc);var Z="1.21.7",ec=0;function dc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.l=b}
|
||||||
function hb(a,b,c){var d=b.toLowerCase(),d=wa[b]||wa[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function hc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ga(f)){Ga(f,function(){hc(a,b,c)});return}}b.call(a,c)}
|
function hb(a,b,c){var d=b.toLowerCase(),d=wa[b]||wa[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function hc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ga(f)){Ga(f,function(){hc(a,b,c)});return}}b.call(a,c)}
|
||||||
function ic(a,b){var c=new E(a,Z,"validate");if(ac(c)&&$b(c)){var d=bc(c,"timestamp"),e=b?bc(b,"timestamp"):"unknown";d!=e&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=cc.prototype;
|
function ic(a,b){var c=new F(a,Z,"validate");if(ac(c)&&$b(c)){var d=bc(c,"timestamp"),e=b?bc(b,"timestamp"):"unknown";d!=e&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=cc.prototype;
|
||||||
m.wa=function(a){void 0===a&&(a=this.b||(this.o?1:ec));if(!this.f){this.f++;var b=!1,c=!1;this.G=!1;var d=this.s||new E(this,Z);if(-1==a)b=!0;else if(a>ec){if(ac(d,this.o)){this.i=new E(this,Z,"failsafe");ac(this.i)&&(jc(this,d),a=2,Yb(this.i));F(this.i,"timestamp",ha());Zb(this.i);var e=this.b&&!this.j;if(1==a||ja("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$b(d)){var f=bc(d,"code"),h=bc(d,"data");f&&("ok"==f?ac(d,h):("error"==f&&"no machine state"!=
|
m.ya=function(a){void 0===a&&(a=this.b||(this.o?1:ec));if(!this.f){this.f++;var b=!1,c=!1;this.H=!1;var d=this.v||new F(this,Z);if(-1==a)b=!0;else if(a>ec){if(ac(d,this.o)){this.i=new F(this,Z,"failsafe");ac(this.i)&&(jc(this,d),a=2,Yb(this.i));G(this.i,"timestamp",ha());Zb(this.i);var e=this.b&&!this.j;if(1==a||ja("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$b(d)){var f=bc(d,"code"),h=bc(d,"data");f&&("ok"==f?ac(d,h):("error"==f&&"no machine state"!=
|
||||||
h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.c=null)):this.M(f+": "+h),Yb(d),ac(d)?(c=$b(d),e=!0):c=!1))}e&&ic(this,c?d:null)}else 2==a&&d.clear()}else ic(this);delete this.o;delete this.s}e=y(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=kc(this,h,d,b,c));b=[d,a,c];-1!=a?hc(this,this.Ua,b):this.Ua(b)}};
|
h?(this.K("Error: "+h),"unable to verify user"==h&&(na("user",""),this.c=null)):this.O(f+": "+h),Yb(d),ac(d)?(c=$b(d),e=!0):c=!1))}e&&ic(this,c?d:null)}else 2==a&&d.clear()}else ic(this);delete this.o;delete this.v}e=y(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=kc(this,h,d,b,c));b=[d,a,c];-1!=a?hc(this,this.Ua,b):this.Ua(b)}};
|
||||||
function kc(a,b,c,d,e){if(!b.g.J){b.g.J=!0;if(b.W){var f=null;e&&((f=bc(c,b.id))||(f=bc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.W(f,d)&&f&&(q("Unable to restore state for "+b.type),a.A&&!a.H?(c.clear(),a.b=ec,window&&window.location.reload()):a.G=!0,b.W(null),e=!1)}if(!d&&b.Sa)for(a=b.Sa.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
function kc(a,b,c,d,e){if(!b.g.J){b.g.J=!0;if(b.W){var f=null;e&&((f=bc(c,b.id))||(f=bc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.W(f,d)&&f&&(q("Unable to restore state for "+b.type),a.F&&!a.L?(c.clear(),a.b=ec,window&&window.location.reload()):a.H=!0,b.W(null),e=!1)}if(!d&&b.Ra)for(a=b.Ra.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||||
m.Ua=function(a){var b=a[0],c=0>a[1];a=a[2];this.g.J=!0;var d=this.v.power;d&&(d.textContent="Shutdown");this.C||(this.M("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.C=!0);this.a&&(kc(this,this.a,b,c,a),lb(this.a));this.G&&(jc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
m.Ua=function(a){var b=a[0],c=0>a[1];a=a[2];this.g.J=!0;var d=this.w.power;d&&(d.textContent="Shutdown");this.G||(this.O("PC8080 v"+Z+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.G=!0);this.a&&(kc(this,this.a,b,c,a),lb(this.a));this.H&&(jc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||||
function jc(a,b){if(ja("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.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Z;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
function jc(a,b){if(ja("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.N,d=a.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Z;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||||
function lc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new E(a,Z),h=new E(a,Z,"validate"),g=ha();F(h,"timestamp",g);F(f,"timestamp",g);F(f,"version","1.21.7");F(f,"url",window?window.location.href:null);F(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.V&&(c&&mb(a.a),d=a.a.V(b,c),"object"===typeof d&&F(f,a.a.id,d),c&&(a.a.g.J=!1,!1===d&&(e=null)));for(var g=y(a.id),k=0;k<g.length;k++){var l=g[k];l.g.J&&(l.V&&(d=l.V(b,c),"object"===typeof d&&F(f,l.id,d)),c&&(l.g.J=!1,!1===d&&(e=
|
function lc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new F(a,Z),h=new F(a,Z,"validate"),g=ha();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.21.7");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.V&&(c&&mb(a.a),d=a.a.V(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.g.J=!1,!1===d&&(e=null)));for(var g=y(a.id),l=0;l<g.length;l++){var k=g[l];k.g.J&&(k.V&&(d=k.V(b,c),"object"===typeof d&&G(f,k.id,d)),c&&(k.g.J=!1,!1===d&&(e=
|
||||||
null)))}e&&(c?(g=d=!1,b?(a.c&&mc(a,a.c,f.toString()),Zb(h)&&Zb(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.g.J=!1,b=a.v.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.B&&this.B.reset&&this.B.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
null)))}e&&(c?(g=d=!1,b?(a.c&&mc(a,a.c,f.toString()),Zb(h)&&Zb(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.g.J=!1,b=a.w.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.A&&this.A.reset&&this.A.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.A&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||||
m.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
m.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||||
m.N=function(a,b,c){var d=this;switch(b){case "power":return this.v[b]=c,c.onclick=function(){d.f||(d.g.J?lc(d,!1,!0):hc(d,d.wa))},!0;case "reset":return this.v[b]=c,c.onclick=function(){if(d.g.J&&!d.f)if(d.b&&!d.m){var a=ja("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lc(d,a,!0);!a&&d.A?window&&window.location.reload():d.wa(ec)}else d.reset(),d.a&&lb(d.a)},!0;case "save":if(da(ia(),"pcjs.org")){c.parentNode.removeChild(c);break}this.v[b]=
|
m.P=function(a,b,c){var d=this;switch(b){case "power":return this.w[b]=c,c.onclick=function(){d.f||(d.g.J?lc(d,!1,!0):hc(d,d.ya))},!0;case "reset":return this.w[b]=c,c.onclick=function(){if(d.g.J&&!d.f)if(d.b&&!d.m){var a=ja("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");lc(d,a,!0);!a&&d.F?window&&window.location.reload():d.ya(ec)}else d.reset(),d.a&&lb(d.a)},!0;case "save":if(da(ia(),"pcjs.org")){c.parentNode.removeChild(c);break}this.w[b]=
|
||||||
c;c.onclick=function(){var a=fc(d,!0);if(a){var b=!!(d.b&&!d.m||d.A),c=lc(d,b);b?mc(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
c;c.onclick=function(){var a=fc(d,!0);if(a){var b=!!(d.b&&!d.m||d.F),c=lc(d,b);b?mc(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||||
function fc(a,b){var c=a.c;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=nc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
function fc(a,b){var c=a.c;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=nc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
||||||
function nc(a,b){a.c=null;var c=p(ia()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.c=c.data)}catch(e){q(e.message+" ("+d+")")}return a.c}function gc(a){var b=null;a.c&&(b=ia()+"/api/v1/user?req=load&user="+a.c+"&state="+Xb(a,Z));return b}
|
function nc(a,b){a.c=null;var c=p(ia()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.c=c.data)}catch(e){q(e.message+" ("+d+")")}return a.c}function gc(a){var b=null;a.c&&(b=ia()+"/api/v1/user?req=load&user="+a.c+"&state="+Xb(a,Z));return b}
|
||||||
function mc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xb(a,Z);d.data=c;b=p(ia()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),na("user",""),a.c=null)}}
|
function mc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Xb(a,Z);d.data=c;b=p(ia()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),na("user",""),a.c=null)}}
|
||||||
function Ka(a,b,c){a=y(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.ea=function(a){this.a&&this.a.ea(a);this.h&&this.h.ea(a)};function rb(a,b){for(var c=0;c<a.u.length;c++){var d=a.u[c];b&1?(d=d.a,d.G=d.G&-8|10):(d=d.a,d.G=d.G&-8|9)}}t(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new cc(h,d,!0);Ea(h,f);h.w&&hc(h,h.wa)}});
|
function Ka(a,b,c){a=y(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.fa=function(a){this.a&&this.a.fa(a);this.h&&this.h.fa(a)};function rb(a,b){for(var c=0;c<a.B.length;c++){var d=a.B[c];b&1?(d=d.a,d.F=d.F&-8|10):(d=d.a,d.F=d.F&-8|9)}}t(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=z(f),h=new cc(h,d,!0);Ea(h,f);h.C&&hc(h,h.ya)}});
|
||||||
r.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Da("Computer",c.id))&&c.C&&!c.g.J&&c.wa(-1)}});r.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Da("Computer",c.id))&&c.g.J&&lc(c,!(!c.b||c.m),!0)}});var oc=0;function pc(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):qc(g,a,b,c,d,e,f)})}
|
r.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Da("Computer",c.id))&&c.G&&!c.g.J&&c.ya(-1)}});r.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Da("Computer",c.id))&&c.g.J&&lc(c,!(!c.b||c.m),!0)}});var oc=0;function pc(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):qc(g,a,b,c,d,e,f)})}
|
||||||
function qc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ca(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
function qc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ca(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(w){g=null,a=w.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?rc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(u){g=null,a=u.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?rc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||||
function rc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,H=/( [a-z]+=)(['"])(.*?)\2/g;l=H.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
function rc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,D=/( [a-z]+=)(['"])(.*?)\2/g;k=D.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||||
"");a=a.replace(d[0],h);rc(a,b,c)}})}else c(a,null)}
|
"");a=a.replace(d[0],h);rc(a,b,c)}})}else c(a,null)}
|
||||||
function sc(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--oc||ta(!0));k=!1}var h,g,k=!0;oc++;Ba[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var H=document.head||document.getElementsByTagName("head")[0],w=document.createElement("style");w.type="text/css";w.styleSheet?w.styleSheet.cssText=l:w.appendChild(document.createTextNode(l));H.appendChild(w)}c||
|
function sc(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);l&&(--oc||ta(!0));l=!1}var h,g,l=!0;oc++;Ba[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var D=document.head||document.getElementsByTagName("head")[0],u=document.createElement("style");u.type="text/css";u.styleSheet?u.styleSheet.cssText=k:u.appendChild(document.createTextNode(k));D.appendChild(u)}c||
|
||||||
(c="/versions/pc8080/1.21.7/components.xsl");l=function(d,g){g?pc(c,null,null,!1,e,function(d,k){if(k)if(Ca(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--oc||ta(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--oc||ta(!0)):f("invalid machine element: "+
|
(c="/versions/pc8080/1.21.7/components.xsl");k=function(d,g){g?pc(c,null,null,!1,e,function(d,l){if(l)if(Ca(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--oc||ta(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--oc||ta(!0)):f("invalid machine element: "+
|
||||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?pc(b,a,d,!0,e,l):qc(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(Ra){f(Ra.message)}return k}window.embedPC8080=function(a,b,c,d){ta(!1);return sc(a,b,c,d)};window.enableEvents=ta;window.sendEvent=ua;
|
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?pc(b,a,d,!0,e,k):qc(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(Qa){f(Qa.message)}return l}window.embedPC8080=function(a,b,c,d){ta(!1);return sc(a,b,c,d)};window.enableEvents=ta;window.sendEvent=ua;
|
||||||
function tc(a,b,c,d){if(!c&&b){d.push(b);a=Ba[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){uc(b,d)}):uc(null,d)}else q("Error ("+c+") requesting "+a)}
|
function tc(a,b,c,d){if(!c&&b){d.push(b);a=Ba[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){uc(b,d)}):uc(null,d)}else q("Error ("+c+") requesting "+a)}
|
||||||
function uc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ba[f],k={},l;for(l in g){var H=g[l],w=ca(l);if("xml"==w){for(w=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=w.exec(g[l]);){var Ra=d[2];Ra&&(g[Ra]||(H=H.replace(d[0],"")))}d=l=ba(l)}else"xsl"==w&&(e=l=ba(l));k[l]=H}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
function uc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ba[f],l={},k;for(k in g){var D=g[k],u=ca(k);if("xml"==u){for(u=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=u.exec(g[k]);){var Qa=d[2];Qa&&(g[Qa]||(D=D.replace(d[0],"")))}d=k=ba(k)}else"xsl"==u&&(e=k=ba(k));l[k]=D}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||||
"©"),l=h,g=null,k="data:application/javascript,",k=oa("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
"©"),k=h,g=null,l="data:application/javascript,",l=oa("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
||||||
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",q(c)):q("Missing XML/XSL resources")}
|
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",q(c)):q("Missing XML/XSL resources")}
|
||||||
window.savePC=function(a,b,c){var d=Da("Computer",a),e=Da("Debugger",a);if(d){var f=lc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.21.7/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,bb:h}))return!0;p(b,null,!0,function(c,d,e){tc(c,d,e,[a,ba(b,!0),h,f])});return!0}q("Unable to identify machine '"+a+"'");return!1};})();
|
window.savePC=function(a,b,c){var d=Da("Computer",a),e=Da("Debugger",a);if(d){var f=lc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.21.7/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,bb:h}))return!0;p(b,null,!0,function(c,d,e){tc(c,d,e,[a,ba(b,!0),h,f])});return!0}q("Unable to identify machine '"+a+"'");return!1};})();
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue