Finished writing all the half-word move permutations, now it's time to test them all (ugh)

This commit is contained in:
Jeff Parsons 2017-02-28 11:02:15 -08:00 committed by Jeff Parsons
commit cafd7c493c
4 changed files with 348 additions and 531 deletions

View file

@ -2853,8 +2853,7 @@ PDP10.opHRR = function(op)
var a = op & PDP10.OPCODE.A_MASK;
var src = this.readWord(this.regEA) & PDP10.WORD_MASK;
var dst = this.readWord(a);
dst = (dst - (dst & PDP10.WORD_MASK)) + src;
this.writeWord(a, dst);
this.writeWord(a, PDP10.getHL(op, dst, src) + src);
};
/**
@ -2875,8 +2874,7 @@ PDP10.opHRRI = function(op)
{
var a = op & PDP10.OPCODE.A_MASK;
var dst = this.readWord(a);
dst = (dst - (dst & PDP10.WORD_MASK)) + this.regEA;
this.writeWord(a, dst);
this.writeWord(a, PDP10.getHL(op, dst, this.regEA) + this.regEA);
};
/**
@ -2898,8 +2896,7 @@ PDP10.opHRRM = function(op)
var a = op & PDP10.OPCODE.A_MASK;
var src = this.readWord(a) & PDP10.WORD_MASK;
var dst = this.readWord(this.regEA);
dst = (dst - (dst & PDP10.WORD_MASK)) + src;
this.writeWord(this.regEA, dst);
this.writeWord(this.regEA, PDP10.getHL(op, dst, src) + src);
};
/**
@ -2920,7 +2917,13 @@ PDP10.opHRRM = function(op)
*/
PDP10.opHRRS = function(op)
{
if (op & PDP10.OPCODE.A_MASK) PDP10.opHRR.call(this, op);
var dst = this.readWord(this.regEA);
this.writeWord(this.regEA, PDP10.setHL(op, dst, dst));
var a = op & PDP10.OPCODE.A_MASK;
if (a) {
dst = this.readWord(a);
this.writeWord(a, PDP10.setHL(op, dst, dst));
}
};
/**
@ -2941,8 +2944,7 @@ PDP10.opHLR = function(op)
var a = op & PDP10.OPCODE.A_MASK;
var src = (this.readWord(this.regEA) / PDP10.WORD_SHIFT)|0;
var dst = this.readWord(a);
dst = (dst - (dst & PDP10.WORD_MASK)) + src;
this.writeWord(a, dst);
this.writeWord(a, PDP10.getHL(op, dst, src) + src);
};
/**
@ -2964,8 +2966,7 @@ PDP10.opHLRI = function(op)
{
var a = op & PDP10.OPCODE.A_MASK;
var dst = this.readWord(a);
dst = (dst - (dst & PDP10.WORD_MASK));
this.writeWord(a, dst);
this.writeWord(a, PDP10.getHL(op, dst, 0));
};
/**
@ -2986,8 +2987,7 @@ PDP10.opHLRM = function(op)
var a = op & PDP10.OPCODE.A_MASK;
var src = (this.readWord(a) / PDP10.WORD_SHIFT)|0;
var dst = this.readWord(this.regEA);
dst = (dst - (dst & PDP10.WORD_MASK)) + src;
this.writeWord(this.regEA, dst);
this.writeWord(this.regEA, PDP10.getHL(op, dst, src) + src);
};
/**
@ -3006,278 +3006,16 @@ PDP10.opHLRM = function(op)
PDP10.opHLRS = function(op)
{
var dst = this.readWord(this.regEA);
this.writeWord(this.regEA, (dst & PDP10.WORD_MASK) + ((dst / PDP10.WORD_SHIFT)|0));
var src = (dst / PDP10.WORD_SHIFT)|0;
this.writeWord(this.regEA, PDP10.getHL(op, dst, src) + src);
var a = op & PDP10.OPCODE.A_MASK;
if (a) {
dst = this.readWord(a);
this.writeWord(a, (dst & PDP10.WORD_MASK) + ((dst / PDP10.WORD_SHIFT)|0));
src = (dst / PDP10.WORD_SHIFT)|0;
this.writeWord(a, PDP10.getHL(op, dst, src) + src);
}
};
/**
* opHRRZ(0o550000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRZ = function(op)
{
this.opUndefined(op);
};
/**
* opHRRZI(0o551000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRZI = function(op)
{
this.opUndefined(op);
};
/**
* opHRRZM(0o552000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRZM = function(op)
{
this.opUndefined(op);
};
/**
* opHRRZS(0o553000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRZS = function(op)
{
this.opUndefined(op);
};
/**
* opHLRZ(0o554000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRZ = function(op)
{
this.opUndefined(op);
};
/**
* opHLRZI(0o555000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRZI = function(op)
{
this.opUndefined(op);
};
/**
* opHLRZM(0o556000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRZM = function(op)
{
this.opUndefined(op);
};
/**
* opHLRZS(0o557000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRZS = function(op)
{
this.opUndefined(op);
};
/**
* opHRRO(0o560000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRO = function(op)
{
this.opUndefined(op);
};
/**
* opHRROI(0o561000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRROI = function(op)
{
this.opUndefined(op);
};
/**
* opHRROM(0o562000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRROM = function(op)
{
this.opUndefined(op);
};
/**
* opHRROS(0o563000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRROS = function(op)
{
this.opUndefined(op);
};
/**
* opHLRO(0o564000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRO = function(op)
{
this.opUndefined(op);
};
/**
* opHLROI(0o565000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLROI = function(op)
{
this.opUndefined(op);
};
/**
* opHLROM(0o566000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLROM = function(op)
{
this.opUndefined(op);
};
/**
* opHLROS(0o567000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLROS = function(op)
{
this.opUndefined(op);
};
/**
* opHRRE(0o570000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRE = function(op)
{
this.opUndefined(op);
};
/**
* opHRREI(0o571000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRREI = function(op)
{
this.opUndefined(op);
};
/**
* opHRREM(0o572000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRREM = function(op)
{
this.opUndefined(op);
};
/**
* opHRRES(0o573000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHRRES = function(op)
{
this.opUndefined(op);
};
/**
* opHLRE(0o574000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRE = function(op)
{
this.opUndefined(op);
};
/**
* opHLREI(0o575000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLREI = function(op)
{
this.opUndefined(op);
};
/**
* opHLREM(0o576000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLREM = function(op)
{
this.opUndefined(op);
};
/**
* opHLRES(0o577000)
*
* @this {CPUStatePDP10}
* @param {number} op
*/
PDP10.opHLRES = function(op)
{
this.opUndefined(op);
};
/**
* opTRN(0o600000)
*
@ -4094,6 +3832,61 @@ PDP10.opUndefined = function(op)
this.stopCPU();
};
/**
* getHL(op, dst, src)
*
* Used by callers to obtain HL (half-word left) with HR (half-word right) zeroed.
*
* @param {number} op
* @param {number} dst (36-bit value whose 18-bit left half is either preserved or modified)
* @param {number} src (18-bit value used to determine the sign extension, if any, for the left half of dst)
* @return {number} (updated dst)
*/
PDP10.getHL = function(op, dst, src)
{
switch(op & 0o600) {
case 0o000:
dst -= (dst & PDP10.WORD_MASK);
break;
case 0o200:
dst = 0;
break;
case 0o400:
dst = (PDP10.WORD_MASK * PDP10.WORD_SHIFT);
break;
case 0o600:
dst = (src > PDP10.MAX_POS18? (PDP10.WORD_MASK * PDP10.WORD_SHIFT) : 0);
break;
}
return dst;
};
/**
* setHL(op, dst, src)
*
* Used by callers to obtain HL (half-word left) with HR (half-word right) preserved.
*
* @param {number} op
* @param {number} dst (36-bit value whose 18-bit left half is either preserved or modified)
* @param {number} src (18-bit value used to determine the sign extension, if any, for the left half of dst)
* @return {number} (updated dst)
*/
PDP10.setHL = function(op, dst, src)
{
if (op &= 0o600) {
dst &= PDP10.WORD_MASK;
switch(op) {
case 0o400:
dst += (PDP10.WORD_MASK * PDP10.WORD_SHIFT);
break;
case 0o600:
dst += (src > PDP10.MAX_POS18? (PDP10.WORD_MASK * PDP10.WORD_SHIFT) : 0);
break;
}
}
return dst;
};
/**
* getHR(op, dst, src)
*
@ -4183,6 +3976,30 @@ PDP10.opHRLE = PDP10.opHRL;
PDP10.opHRLEI = PDP10.opHRLI;
PDP10.opHRLEM = PDP10.opHRLM;
PDP10.opHRLES = PDP10.opHRLS;
PDP10.opHRRZ = PDP10.opHRR;
PDP10.opHRRZI = PDP10.opHRRI;
PDP10.opHRRZM = PDP10.opHRRM;
PDP10.opHRRZS = PDP10.opHRRS;
PDP10.opHRRO = PDP10.opHRR;
PDP10.opHRROI = PDP10.opHRRI;
PDP10.opHRROM = PDP10.opHRRM;
PDP10.opHRROS = PDP10.opHRRS;
PDP10.opHRRE = PDP10.opHRR;
PDP10.opHRREI = PDP10.opHRRI;
PDP10.opHRREM = PDP10.opHRRM;
PDP10.opHRRES = PDP10.opHRRS;
PDP10.opHLRZ = PDP10.opHLR;
PDP10.opHLRZI = PDP10.opHLRI;
PDP10.opHLRZM = PDP10.opHLRM;
PDP10.opHLRZS = PDP10.opHLRS;
PDP10.opHLRO = PDP10.opHLR;
PDP10.opHLROI = PDP10.opHLRI;
PDP10.opHLROM = PDP10.opHLRM;
PDP10.opHLROS = PDP10.opHLRS;
PDP10.opHLRE = PDP10.opHLR;
PDP10.opHLREI = PDP10.opHLRI;
PDP10.opHLREM = PDP10.opHLRM;
PDP10.opHLRES = PDP10.opHLRS;
PDP10.aOpXXX_KA10 = [
PDP10.opUUO, // 0o000xxx

View file

@ -102,6 +102,7 @@ var PDP10 = {
DATA_LIMIT: Math.pow(2, 36),
WORD_SHIFT: Math.pow(2, 18),
WORD_MASK: 0o777777,
MAX_POS18: Math.pow(2, 17) - 1,
MAX_POS: Math.pow(2, 35) - 1,
/*

View file

@ -32,17 +32,17 @@ var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ia(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ia("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ia("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
var ja=Math.pow(2,36),ma=-Math.pow(2,35),q={Xb:0,ob:1,Zb:2,$b:3,ac:4,bc:5,cc:6,dc:7,Za:8,ec:9,pb:10,fc:11,gc:12,qb:13,hc:14,ic:15,jc:16,kc:17,lc:18,mc:19,nc:20,oc:21,pc:22,qc:23,rc:24,sc:25,tc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ya:65,Wb:66,Yb:67,uc:68,E:69,vc:70,wc:71,xc:72,yc:73,zc:74,Ac:75,Bc:76,Cc:77,Dc:78,Ec:79,Fc:80,Q:81,
Gc:82,Hc:83,Ic:84,Jc:85,Kc:86,Lc:87,Mc:88,Nc:89,ub:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Oc:97,Pc:98,Qc:99,d:100,e:101,Rc:102,Sc:103,Tc:104,Uc:105,Vc:106,k:107,Wc:108,Xc:109,n:110,Yc:111,p:112,q:113,r:114,Zc:115,t:116,ad:117,bd:118,cd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,rb:127};
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.cb=b.comment;this.tb=b;this.exports={};this.G=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ta:!1,V:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.g=this.D=this.C=this.ma=null;u.push(this)}function na(a,b,c){oa[a]&&b&&(oa[a][b]=c)}function pa(){return Date.now()||+new Date}
function v(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}function xa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ya(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
function v(a){window&&window.alert(a)}function qa(a){var b=!1;window&&(b=window.confirm(a));return b}function xa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ya(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
function za(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function Aa(a,b){var c=A;b=B(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=w(f))&&h.binding&&a.ga(h.type,h.binding,f,h.value),m=k.length}}}}
function B(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
function Ba(a){for(var b=!0,c=Ca[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Da.indexOf(e)&&(g=function(){return function(){Ba(a)}}());var f=Ea[e];if(f)if(!g)b=f(d[1],d[2],d[3]);else{if(!f(g,d[1],d[2],d[3]))break}else{var b=!1,h=za(d[1],a);if(h)if(f=Fa[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){v("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Ca[a];return b}l=t.prototype;
l.toString=function(){return this.name?this.name:this.id||this.type};
l.ga=function(a,b,c){switch(b){case "clear":return this.G[b]||(this.G[b]=c,c.onclick=function(a){return function(){a.G.print&&(a.G.print.value="")}}(this)),!0;case "print":return this.G[b]||(this.ma=this.G[b]=c,c.value="",this.f=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.ca=function(a){this.f(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
l.status=function(a){this.f(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ga(a,b){a.j.error=!0;a.ca(b)}function Ha(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Pa(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Qa(a,b){a.j.Fa&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
l.status=function(a){this.f(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ga(a,b){a.j.error=!0;a.ca(b)}function Ha(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Ia(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function C(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Qa(a,b){a.j.Fa&&(b?a.j.Ta=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
function Ra(a,b){if(a.j.Ta)return a.j.Fa=!1,a.j.Ta=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}l.na=function(){return this.j.V=!0};l.fa=function(a,b){b&&(this.j.V=!1);return!0};function Sa(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.ib)}return!1}function Ta(a,b,c,d){a.A&&(!0===c||Sa(a,c|0))&&a.A.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var oa=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],Ca=window?window.PCjs.Commands:{},Da=["hold","sleep","wait"],Ea={alert:function(a){v(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Fa={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
@ -51,7 +51,7 @@ Function.prototype.bind||(Function.prototype.bind=function(a){function b(){retur
function Ua(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var g,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c}function Va(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var g=a%b,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function Wa(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return Va(a,8,b,c?"0o":"")}function E(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return Va(a,16,b,c?"0x":"")}
function Xa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function Ya(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Za(){var a=$a();return-1!==a.indexOf("pcjs.org",a.length-8)}function ab(a){return a.replace(/[&<>"']/g,function(a){return bb[a]})}function cb(a,b){return(a+" ").slice(0,b)}
function db(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var bb={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function fb(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function ob(){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 db(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var bb={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function eb(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function gb(){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 pb(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
g,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,g,e),f=[g,e]);return f}
function qb(a,b){var c,d={Y:null,U:null,la:null,ka:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.la=f.load;d.ka=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
@ -61,49 +61,51 @@ function ub(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return
function wb(a){if(!xb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}xb=c}return xb[a]}function yb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function zb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||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);g=!0}}function Ab(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Bb(a){Cb.init.push(a)}
function Db(a){if(Eb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Fb(a){!Eb&&a?(Eb=!0,Gb&&Hb("init"),Ib&&Hb("show")):Eb=a}function Hb(a){Cb[a]&&Db(Cb[a])}var xb=null,Cb={init:[],show:[],exit:[]},Gb=!1,Ib=!1,Eb=!0,sb=null;Ab("onload",function(){Gb=!0;Db(Cb.init)});Ab("onpageshow",function(){Ib=!0;Db(Cb.show)});Ab(vb("Opera")||vb("iOS")?"onunload":"onbeforeunload",function(){Db(Cb.exit)});
var A="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,35)-1,Ob=Math.pow(2,21),Pb=Math.pow(2,26),Qb=Math.pow(2,23),A="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Rb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=Sb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
set:this.Qb};C(this)}p(Rb,t);l=Rb.prototype;l.reset=function(a){this.stop();a&&Tb(this,this.v=0)};
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ac(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){ac(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bc(a,b)}}(this,b),!0):t.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;cc(this);dc(this)};l.na=function(a,b){if(!b)if(this.T&&ec(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
l.restore=function(a){if(a=a[0])fc(this,this.i=a[0]),Tb(this,this.v=a[1]),gc(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}dc(this);return!0};function hc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cc(a,b){for(var c in a.B)hc(a,c,null!=b?b:a.B[c])}function ic(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function dc(a){for(var b in a.b)ic(a,b,a.b[b][1])}
l.yb=function(a,b,c){if(ac(this,b)){if(c){var d=this;setTimeout(function(){bc(d,b);a&&a()},+c);return!1}bc(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return gc(this,Ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,ic(this,a,c[1]),!0):!1};l.Rb=function(a){return ac(this,a)?(bc(this,a),!0):!1};function ac(a,b){var c=a.b[b];return c?(ic(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=jc&&(a.O=b==kc,a.R=b==lc),!0):!1}
function bc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(ic(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Kb,this.b[mc]&&this.b[mc][1]&&nc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[mc]&&this.b[mc][1])nc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),oc(a,0,null),Ra(a,!1);else try{var b=this.g.Ja(1);0<b&&(pc(this.g,b),qc(this.g,b,!0),rc(this.g,b))}catch(c){"number"!=typeof c&&Ga(this.g,c.stack||c.message)}this.stop();this.C&&J(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.O&&sc(this),a=Tb(this,this.v=this.u),this.S==Sb?tc(this.D,this.i,a):this.g.P(this.i,a))};
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&sc(this);this.S==Sb?b=uc(this.D,this.i):b=this.g.H(this.i);Tb(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||fc(this,this.u)};l.Eb=function(a){a?(this.F=!0,cc(this,!0)):(this.F=!1,cc(this),gc(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function sc(a){var b=1,c=a.D.u;a.b[jc]&&a.b[jc][1]||(b=-b);fc(a,a.i&~c|a.i+b&c)}
function fc(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}}function Tb(a,b){a.I=b%Mb;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||hc(d,e,g)}}return a.I}function gc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;dc(a);return!0}l.stop=function(){fc(this,this.g.u)};
function ec(){for(var a=B(document,A,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=ya(d.id);e||(e=new Rb(d,!0));Aa(e,c)}}var Sb=7,kc="DEP",mc="ENABLE",lc="EXAM",jc="STEP";Bb(ec);function vc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new wc(this);xc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;C(this)}p(vc,t);l=vc.prototype;l.reset=function(){};
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,yc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function zc(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Ac(Bc,e,g)}e=new wc(a,e,m,16384,d);xc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Cc[d]+" at "+Wa(b)),!0):Ac(Dc,b,c)}
function uc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function tc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function yc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
l.xb=function(a){this.v||(this.A&&Sa(this.A,4)&&Ta(this.A,"memory fault on "+K(this.A,a),!0,!0),this.g.W())};function Ac(a,b,c){v("Memory block error ("+a+": "+E(b)+","+E(c)+")");return!1}var Bc=1,Dc=2;function Ec(a){t.call(this,"Device",a,256)}p(Ec,t);l=Ec.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;C(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
l.restore=function(){return!0};Bb(function(){for(var a=B(document,A,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Ec(c),Aa(c,d)}}});function wc(a,b,c,d,e){this.u=a;this.id=Fc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Gc;this.i=e==Hc;this.b=null;this.H=this.G=this.Xa;this.P=this.D=this.Ia;this.g=this.A=0;xc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Ic(this,Jc)}else Ic(this)}l=wc.prototype;l.save=function(){return this.C};
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Ic(a,b){b||(b=Kc);Lc(a,b,void 0);Mc(a,b,void 0)}function Lc(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function Mc(a,b,c){c&&a.A||(a.P=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||Mc(this,Nc,!1):this.g++||Lc(this,Nc,!1)};function Oc(a,b){b?--a.A||(a.P=a.i?a.Ia:a.D):--a.g||(a.H=a.G)}
function xc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&Lc(a,Nc,!1),(a.A=c.A)&&Mc(a,Nc,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;id(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;id(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Gc=0,Hc=2,Cc=["NONE","RAM","ROM"],Fc=0,Kc=[],Jc=[wc.prototype.Lb,wc.prototype.Ub],Nc=[wc.prototype.Jb,wc.prototype.Tb];
function jd(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.T=c;this.Da=Math.round(this.Ra/1E4)/100;this.S=this.Da*this.T;this.Qa=this.ua=this.aa=this.ya=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.N=this.F=this.L=this.M=this.B=this.ra=this.J=this.ja=this.Sa=this.R=0;this.xa=
null;C(this)}p(jd,t);l=jd.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<kd.length;a++)(b=this.G[kd[a]])&&this.C.ga(null,kd[a],b);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.na=function(a,b){var c=ld(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){md(this);if(!this.restore(a))return!1;nd(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),od(a),b||pd(a),a.ta&&(b=a.ta,a.ta=null,qd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(nc(this),!0):!1};l.lb=function(){return 0};function nd(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.N)}function rc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.lb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=rd(a)&&(a.da=a.ia=-1,nd(a),a.W(),c=!0);c&&a.f(rd(a)+" cycles: checksum="+E(a.sa))}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=xa(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():nc(d))},!0;case "speed":return this.G[b]=
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){sd(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function qc(a,b,c){a.N+=b;c&&(a.L=a.M=0)}function td(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/ud);a.ua=Math.floor(a.Ra/ud*c);b||(a.aa=a.ua);a.ya=0}function rd(a){return a.N+a.F+a.L-a.M}function md(a){a.R=0;a.Sa=0;a.N=a.F=a.L=a.M=0;nd(a);sd(a,1)}
function sd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Da*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&vd(a.C)}qc(a,a.F);a.F=0;a.B=pa();a.J=0;td(a);return d}function wd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function xd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
function pc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function yd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&td(this,!0);this.ja=0;this.ra=pa();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=wd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=yd(this,!0);this.ja+=b;this.F+=b;rc(this,b);pc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=zd&&(this.C&&J(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(pa(),rd(this));Ga(this,
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=pa();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.N=0,sd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.J+=c;a(b,c)}}};
function nc(a,b){if(!Ha(a))if(a.j.K)a.f(a.toString()+" busy");else{sd(a);a.j.K=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&vd(a.C,!0),a.C.start(a.B,rd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){yd(this);qc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(pa(),rd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var ud=30,zd=15,kd=["power","reset"];
function Ad(a){var b=+a.model||1001;jd.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=Bd.bind(this);this.b=L.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(Ad,jd);l=Ad.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.O=this.za=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.P=this.Vb;this.oa=null;md(this);this.j.error=!1;jd.prototype.reset.call(this)};l.lb=function(){return 0};
l.save=function(){var a=new H(this);a.set(0,[this.i,this.O,this.za,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.N,this.T,this.j.Z]);a.set(3,Cd(this));a.set(4,xd(this));return a.data()};
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.i=b.next().value;this.O=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.N=b[0];sd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
a[b];return!0};function Dd(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Cd(a){var b=[];for(a=a.oa;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].P(b,a&16383,a)};
l.Ja=function(a){this.j.complete=!0;var b=this.A?Ed(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Fd(this.A,this.u,c)){this.W();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Fd(this.A,this.u,c)){this.W();break}if(0>c)break}}this.v&=15;this.O=this.O&4194304?this.H(this.i)&8388607:(this.za=this.H(this.qa=this.u))&8388607;this.i=this.O&262143;
if(a=this.O>>18&15)this.i=this.i+this.H(a)&Lb;this.O&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Qb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Bb(function(){for(var a=B(document,A,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ad(d);Aa(d,c)}});function Bd(a){Gd[a>>4].call(this,a)}function N(a){this.b(a)}function Hd(a){this.b(a)}function Id(a){this.b(a)}
function Jd(a){var b=a&15,c=this.H(this.i),d=this.H(b);this.P(b,Kd(a,d,c)+(c-(c&262143)))}function Ld(a){var b=a&15,c=this.H(b);this.P(b,Kd(a,c,0))}function Md(a){var b=this.H(a&15),c=this.H(this.i);this.P(this.i,Kd(a,c,b)+(b-(b&262143)))}function Nd(a){var b=this.H(this.i);this.P(this.i,Od(a,b,b));var c=a&15;c&&(b=this.H(c),this.P(c,Od(a,b,b)))}function Pd(a){var b=a&15,c=(this.H(this.i)&262143)*F,d=this.H(b);this.P(b,Kd(a,d,c)+c)}
function Qd(a){var b=a&15,c=this.i*F,d=this.H(b);this.P(b,Kd(a,d,c)+c)}function Rd(a){var b=(this.H(a&15)&262143)*F,c=this.H(this.i);this.P(this.i,Kd(a,c,b)+b)}function Sd(a){var b=this.H(this.i),c=(b&262143)*F;this.P(this.i,Kd(a,b,c)+c);var d=a&15;d&&(b=this.H(d),c=(b&262143)*F,this.P(d,Kd(a,b,c)+c))}function Td(a){a&=15;var b=this.H(this.i)&262143,c=this.H(a);this.P(a,c-(c&262143)+b)}function O(a){this.b(a)}function L(a){this.f("undefined opcode: "+Wa(a));Dd(this,-1);this.W()}
function Kd(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Nb?262143:0}return b}function Od(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Nb?262143:0}return b}
var Gd=[N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
var A="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,17)-1,Ob=Math.pow(2,35)-1,Pb=Math.pow(2,21),Qb=Math.pow(2,26),Rb=Math.pow(2,23),A="pdp10",Jb="PDPjs",G={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Sb(a,b){t.call(this,"Panel",a,512);this.J=this.L=0;this.T=b;this.i=this.I=this.u=this.v=0;this.M=this.O=-1;this.P=this.R=this.F=!1;this.S=Tb;this.B={};this.b={START:[1,1,!0,!1,this.Hb],STEP:[1,1,!1,!1,this.Ib],ENABLE:[1,1,!1,!1,this.Cb],CONT:[1,1,!0,!1,this.Ab],DEP:[0,0,!0,!1,this.Bb],EXAM:[1,1,!0,!1,this.Db],LOAD:[1,1,!0,!1,this.Fb],TEST:[0,0,!0,!1,this.Eb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Gb,a];this.A=this.g=this.D=this.C=null;this.exports={hold:this.yb,toggle:this.Rb,reset:this.Nb,
set:this.Qb};C(this)}p(Sb,t);l=Sb.prototype;l.reset=function(a){this.stop();a&&Ub(this,this.v=0)};
l.ga=function(a,b,c,d){if(this.C&&this.C.ga(a,b,c,d)||this.g&&this.g.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.G[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.G[b]=c,this.B[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.G[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Vb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Wb(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){Vb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Wb(a,b)}}(this,b),!0):t.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;Xb(this);Yb(this)};l.na=function(a,b){if(!b)if(this.T&&Zb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.i,this.v,this.u]);return a.data()};
l.restore=function(a){if(a=a[0])$b(this,this.i=a[0]),Ub(this,this.v=a[1]),ac(this,a[2]);return!0};l.Nb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}Yb(this);return!0};function bc(a,b,c){if(a=a.G[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Xb(a,b){for(var c in a.B)bc(a,c,null!=b?b:a.B[c])}function jc(a,b,c){if(a=a.G[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Yb(a){for(var b in a.b)jc(a,b,a.b[b][1])}
l.yb=function(a,b,c){if(Vb(this,b)){if(c){var d=this;setTimeout(function(){Wb(d,b);a&&a()},+c);return!1}Wb(this,b)}return!0};l.Qb=function(a,b){if("SR"==a)return ac(this,Ua(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,jc(this,a,c[1]),!0):!1};l.Rb=function(a){return Vb(this,a)?(Wb(this,a),!0):!1};function Vb(a,b){var c=a.b[b];return c?(jc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=kc&&(a.P=b==lc,a.R=b==mc),!0):!1}
function Wb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(jc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Hb=function(a){a||this.g.j.K||(this.g.u=this.i%Kb,this.b[nc]&&this.b[nc][1]&&oc(this.g))};l.Ib=function(){};l.Cb=function(a){a||this.g.W()};
l.Ab=function(a){if(!a&&!this.g.j.K)if(this.b[nc]&&this.b[nc][1])oc(this.g);else{if((a=this.A)&&!Qa(a,!0))Ra(a,!0),pc(a,0,null),Ra(a,!1);else try{var b=this.g.Ja(1);0<b&&(qc(this.g,b),rc(this.g,b,!0),sc(this.g,b))}catch(c){"number"!=typeof c&&Ga(this.g,c.stack||c.message)}this.stop();this.C&&I(this.C)}};l.Bb=function(a){a&&!this.g.j.K&&(this.P&&tc(this),a=Ub(this,this.v=this.u),this.S==Tb?uc(this.D,this.i,a):this.g.N(this.i,a))};
l.Db=function(a){if(!a&&!this.g.j.K){var b;this.R&&tc(this);this.S==Tb?b=vc(this.D,this.i):b=this.g.H(this.i);Ub(this,this.v=b)}};l.Fb=function(a){a||this.g.j.K||$b(this,this.u)};l.Eb=function(a){a?(this.F=!0,Xb(this,!0)):(this.F=!1,Xb(this),ac(this,0))};l.Gb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function tc(a){var b=1,c=a.D.u;a.b[kc]&&a.b[kc][1]||(b=-b);$b(a,a.i&~c|a.i+b&c)}
function $b(a,b){a.i=b&a.D.u;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.F||bc(d,e,g)}}}function Ub(a,b){a.I=b%Mb;if(a.O!==a.I){a.O=a.I;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.F||bc(d,e,g)}}return a.I}function ac(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;Yb(a);return!0}l.stop=function(){$b(this,this.g.u)};
function Zb(){for(var a=B(document,A,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=ya(d.id);e||(e=new Sb(d,!0));Aa(e,c)}}var Tb=7,lc="DEP",nc="ENABLE",mc="EXAM",kc="STEP";Bb(Zb);function wc(a,b,c){t.call(this,"Bus",a,16);this.g=b;this.A=c;this.I=+a.busWidth||18;this.F=1<<this.I;this.u=this.F-1;this.i=Math.log2(16384);this.B=this.F/16384|0;this.v=0;this.b=[];a=new xc(this);yc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;C(this)}p(wc,t);l=wc.prototype;l.reset=function(){};
l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,zc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ac(a,b,c,d){for(var e=b,g=c,f=e>>>a.i;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Bc(Cc,e,g)}e=new xc(a,e,m,16384,d);yc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Dc[d]+" at "+Wa(b)),!0):Bc(Ec,b,c)}
function vc(a,b){var c=a.b[(b&a.u)>>>a.i];a.v++;b=c.G(b&16383,b);a.v--;return b}function uc(a,b,c){var d=a.b[(b&a.u)>>>a.i];a.v++;d.D(c,b&16383,b);a.v--}function zc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Va||e.vb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
l.xb=function(a){this.v||(this.A&&Sa(this.A,4)&&Ta(this.A,"memory fault on "+K(this.A,a),!0,!0),this.g.W())};function Bc(a,b,c){v("Memory block error ("+a+": "+E(b)+","+E(c)+")");return!1}var Cc=1,Ec=2;function Fc(a){t.call(this,"Device",a,256)}p(Fc,t);l=Fc.prototype;l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.A=d;C(this)};l.na=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
l.restore=function(){return!0};Bb(function(){for(var a=B(document,A,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new Fc(c),Aa(c,d)}}});function xc(a,b,c,d,e){this.u=a;this.id=Gc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Hc;this.i=e==Ic;this.b=null;this.H=this.G=this.Xa;this.N=this.D=this.Ia;this.g=this.A=0;yc(this);this.Va=this.vb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Jc(this,Kc)}else Jc(this)}l=xc.prototype;l.save=function(){return this.C};
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Va=!0):!1};function Jc(a,b){b||(b=Lc);Mc(a,b,void 0);Nc(a,b,void 0)}function Mc(a,b,c){c&&a.g||(a.H=b[0]||a.Xa);if(c||void 0===c)a.G=b[0]||a.Xa}function Nc(a,b,c){c&&a.A||(a.N=!a.i&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.A++||Nc(this,Oc,!1):this.g++||Mc(this,Oc,!1)};function Pc(a,b){b?--a.A||(a.N=a.i?a.Ia:a.D):--a.g||(a.H=a.G)}
function yc(a,b,c){a.b=b;a.g=a.A=0;c&&((a.g=c.g)&&Mc(a,Oc,!1),(a.A=c.A)&&Nc(a,Oc,!1))}l.Xa=function(a,b){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.xb(b);return-1};l.Ia=function(a,b,c){this.b&&Sa(this.b,32)&&Ta(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Lb=function(a){return this.C[a]};l.Ub=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Va=!0)};
l.Jb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Qc(c,this.w+a,2,c.L)&&c.W(!1)}return this.G(a,b)};l.Tb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Qc(d,this.w+b,2,d.I)&&d.W(!1)}this.i?this.Ia(a,0,c):this.D(a,b,c)};var Hc=0,Ic=2,Dc=["NONE","RAM","ROM"],Gc=0,Lc=[],Kc=[xc.prototype.Lb,xc.prototype.Ub],Oc=[xc.prototype.Jb,xc.prototype.Tb];
function Rc(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Ra=b;this.T=c;this.Da=Math.round(this.Ra/1E4)/100;this.S=this.Da*this.T;this.Qa=this.ua=this.aa=this.ya=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.I=[];this.fb=this.Ob.bind(this);this.O=this.F=this.L=this.M=this.B=this.ra=this.J=this.ja=this.Sa=this.R=0;this.xa=
null;C(this)}p(Rc,t);l=Rc.prototype;l.va=function(a,b,c,d){this.C=a;this.D=b;this.A=d;this.xa=a.u;for(a=0;a<Sc.length;a++)(b=this.G[Sc[a]])&&this.C.ga(null,Sc[a],b);C(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.na=function(a,b){var c=Tc(this.C,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.G.run);if(!b){if(a){Uc(this);if(!this.restore(a))return!1;Vc(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),Wc(a),b||Xc(a),a.ta&&(b=a.ta,a.ta=null,rd(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(oc(this),!0):!1};l.lb=function(){return 0};function Vc(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.O)}function sc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.lb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=sd(a)&&(a.da=a.ia=-1,Vc(a),a.W(),c=!0);c&&a.f(sd(a)+" cycles: checksum="+E(a.sa))}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.G[b]=c,!0;case "run":return this.G[b]=c,c.onclick=function(){var a;if(a=d.C)if(a=d.C,a.j.V)a=!0;else{var b=null,c,h=xa(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.V);c++);c==h.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.W():oc(d))},!0;case "speed":return this.G[b]=
c,!0;case "setSpeed":return this.G[b]=c,c.onclick=function(){td(d,d.T<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function rc(a,b,c){a.O+=b;c&&(a.L=a.M=0)}function ud(a,b){var c=1;b&&1<a.T&&a.R&&(c=a.R/a.Da);a.Qa=Math.round(1E3/vd);a.ua=Math.floor(a.Ra/vd*c);b||(a.aa=a.ua);a.ya=0}function sd(a){return a.O+a.F+a.L-a.M}function Uc(a){a.R=0;a.Sa=0;a.O=a.F=a.L=a.M=0;Vc(a);td(a,1)}
function td(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.T=b;b=a.Da*a.T;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.G.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.C&&wd(a.C)}rc(a,a.F);a.F=0;a.B=pa();a.J=0;ud(a);return d}function xd(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function yd(a){for(var b=[],c=0;c<a.I.length;c++)b.push(a.I[c][0]);return b}
function qc(a,b){for(var c=a.I.length-1;0<=c;c--){var d=a.I[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function zd(a,b){var c=a.L-=a.M;a.M=0;b&&(a.L=0);return c}
l.Ob=function(){if(this.j.K){this.ya>=this.Ra&&ud(this,!0);this.ja=0;this.ra=pa();if(this.J){var a=this.ra-this.J;a>this.Qa&&(this.B+=a,this.B>this.ra&&(this.B=this.ra))}try{do{var b=xd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=zd(this,!0);this.ja+=b;this.F+=b;sc(this,b);qc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Sa>=Ad&&(this.C&&I(this.C,void 0),this.Sa=0);break}}while(this.j.K)}catch(e){this.W();this.C&&this.C.stop(pa(),sd(this));Ga(this,
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.fb;this.J=pa();var c=this.Qa;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.J-this.ra),d=this.J-this.B;d&&(this.R=Math.round(this.F/(10*d))/100,864E5<=d&&(this.O=0,td(this)));if(0>c||this.R<this.S)-1E3>c&&(this.B-=c),c=0;this.ya+=this.ja;this.J+=c;a(b,c)}}};
function oc(a,b){if(!Ha(a))if(a.j.K)a.f(a.toString()+" busy");else{td(a);a.j.K=!0;a.j.Pa=!0;var c=a.G.run;c&&(c.textContent="Halt");a.C&&(b&&wd(a.C,!0),a.C.start(a.B,sd(a)));a.A||a.status("Started");setTimeout(a.fb,0)}}l.Ja=function(){return 0};l.W=function(a){var b=!1;if(this.j.K){zd(this);rc(this,this.F);this.F=0;this.j.K=!1;if(b=this.G.run)b.textContent="Run";this.C&&this.C.stop(pa(),sd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var vd=30,Ad=15,Sc=["power","reset"];
function Bd(a){var b=+a.model||1001;Rc.call(this,a,1E6);this.eb=b;this.bb=+a.addrReset||0;this.sb=Cd.bind(this);this.b=L.bind(this);this.oa=null;this.ab=[];this.j.complete=!1}p(Bd,Rc);l=Bd.prototype;l.reset=function(){this.status("Model "+this.eb);this.j.K&&this.W();this.i=this.P=this.za=0;this.pa=this.u=this.qa=this.bb;this.v=0;this.H=this.Kb;this.N=this.Vb;this.oa=null;Uc(this);this.j.error=!1;Rc.prototype.reset.call(this)};l.lb=function(){return 0};
l.save=function(){var a=new H(this);a.set(0,[this.i,this.P,this.za,this.u,this.qa,this.pa,this.v]);a.set(1,[]);a.set(2,[this.O,this.T,this.j.Z]);a.set(3,Dd(this));a.set(4,yd(this));return a.data()};
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.i=b.next().value;this.P=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.pa=b.next().value;this.v=b.next().value;b=a[2];this.O=b[0];td(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ab.length;d++){var e=this.ab[d];if(e.Sb===b[c]){d=e;break a}}d=null}d&&(d.next=this.oa,this.oa=d)}a=a[4];for(b=0;b<this.I.length&&b<a.length;b++)this.I[b][0]=
a[b];return!0};function Ed(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Dd(a){var b=[];for(a=a.oa;a;)b.push(a.Sb),a=a.next;return b}l.Kb=function(a){var b=this.D;a=this.pa=a;return b.b[(a&b.u)>>>b.i].H(a&16383,a)};l.Vb=function(a,b){var c=this.D;a=this.pa=a;c.b[(a&c.u)>>>c.i].N(b,a&16383,a)};
l.Ja=function(a){this.j.complete=!0;var b=this.A?Fd(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.L=this.M=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Gd(this.A,this.u,c)){this.W();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.oa||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Gd(this.A,this.u,c)){this.W();break}if(0>c)break}}this.v&=15;this.P=this.P&4194304?this.H(this.i)&8388607:(this.za=this.H(this.qa=this.u))&8388607;this.i=this.P&262143;
if(a=this.P>>18&15)this.i=this.i+this.H(a)&Lb;this.P&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Rb|0);0<=a&&this.sb(a)}while(0<this.M);return this.j.complete?this.L-this.M:!1===this.j.complete?-1:0};Bb(function(){for(var a=B(document,A,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Bd(d);Aa(d,c)}});function Cd(a){Hd[a>>4].call(this,a)}function M(a){this.b(a)}function Id(a){this.b(a)}function Jd(a){this.b(a)}
function Kd(a){var b=a&15,c=this.H(this.i),d=this.H(b);this.N(b,Ld(a,d,c)+(c-(c&262143)))}function Md(a){var b=a&15,c=this.H(b);this.N(b,Ld(a,c,0))}function Nd(a){var b=this.H(a&15),c=this.H(this.i);this.N(this.i,Ld(a,c,b)+(b-(b&262143)))}function Od(a){var b=this.H(this.i);this.N(this.i,Pd(a,b,b));var c=a&15;c&&(b=this.H(c),this.N(c,Pd(a,b,b)))}function Qd(a){var b=a&15,c=(this.H(this.i)&262143)*F,d=this.H(b);this.N(b,Ld(a,d,c)+c)}
function Rd(a){var b=a&15,c=this.i*F,d=this.H(b);this.N(b,Ld(a,d,c)+c)}function Sd(a){var b=(this.H(a&15)&262143)*F,c=this.H(this.i);this.N(this.i,Ld(a,c,b)+b)}function Td(a){var b=this.H(this.i),c=(b&262143)*F;this.N(this.i,Ld(a,b,c)+c);var d=a&15;d&&(b=this.H(d),c=(b&262143)*F,this.N(d,Ld(a,b,c)+c))}function Ud(a){var b=a&15,c=this.H(this.i)&262143,d=this.H(b);this.N(b,Vd(a,d,c)+c)}function Wd(a){var b=a&15,c=this.H(b);this.N(b,Vd(a,c,this.i)+this.i)}
function Xd(a){var b=this.H(a&15)&262143,c=this.H(this.i);this.N(this.i,Vd(a,c,b)+b)}function Yd(a){var b=this.H(this.i);this.N(this.i,Zd(a,b,b));var c=a&15;c&&(b=this.H(c),this.N(c,Zd(a,b,b)))}function $d(a){var b=a&15,c=this.H(this.i)/F|0,d=this.H(b);this.N(b,Vd(a,d,c)+c)}function ae(a){var b=a&15,c=this.H(b);this.N(b,Vd(a,c,0))}function be(a){var b=this.H(a&15)/F|0,c=this.H(this.i);this.N(this.i,Vd(a,c,b)+b)}
function ce(a){var b=this.H(this.i),c=b/F|0;this.N(this.i,Vd(a,b,c)+c);var d=a&15;d&&(b=this.H(d),c=b/F|0,this.N(d,Vd(a,b,c)+c))}function O(a){this.b(a)}function L(a){this.f("undefined opcode: "+Wa(a));Ed(this,-1);this.W()}function Vd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Zd(a,b,c){if(a&=384)switch(b&=262143,a){case 256:b+=262143*F;break;case 384:b+=c>Nb?262143*F:0}return b}
function Ld(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Ob?262143:0}return b}function Pd(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Ob?262143:0}return b}
var Hd=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Hd,Id,Id,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Hd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,Jd,Jd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Id,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
@ -111,116 +113,114 @@ function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a)
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Jd,Ld,Md,Nd,Pd,Qd,Rd,Sd,Td,function(a){a&=15;var b=this.H(a),b=b-(b&262143)+this.i;this.P(a,b)},function(a){a=
this.H(a&15)&262143;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){a&15&&Td.call(this,a)},function(a){a&=15;var b=this.H(this.i)/F|0,c=this.H(a);this.P(a,c-(c&262143)+b)},function(a){a&=15;var b=this.H(a);this.P(a,b-(b&262143))},function(a){a=this.H(a&15)/F|0;var b=this.H(this.i);this.P(this.i,b-(b&262143)+a)},function(a){var b=this.H(this.i);this.P(this.i,(b&262143)+(b/F|0));if(a&=15)b=this.H(a),this.P(a,(b&262143)+(b/F|0))},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Kd,Md,Nd,Od,Qd,Rd,Sd,Td,Ud,Wd,Xd,Yd,$d,ae,be,ce,Ud,Wd,Xd,Yd,$d,ae,be,ce,Ud,Wd,Xd,Yd,$d,ae,be,ce,Ud,Wd,Xd,Yd,
$d,ae,be,ce,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
function Ud(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Xa(this.v);if(this.v){a=this.v;var b=Ya(this.F);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(na(c.La,a,b),(a=qb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);Vd(c)})}}p(Ud,t);
Ud.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Vd(this)};Ud.prototype.na=function(){this.U&&(this.A&&Wd(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};Ud.prototype.fa=function(){return!0};
function Vd(a){if(!Pa(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ga(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(zc(a.D,b,a.u,Hc)){var c;for(c=0;c<a.b.length;c++)tc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}C(a)}}Bb(function(){for(var a=B(document,A,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ud(d);Aa(d,c)}});
function Xd(a){t.call(this,"RAM",a);this.U=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Xa(this.b);if(this.b){a=this.b;var b=Ya(this.B);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(na(c.La,a,b),(a=qb(a,b))?(c.Aa=a.Aa,
c.U=a.U,null==c.la&&(c.la=a.la),null==c.ka&&(c.ka=a.ka)):c.b=null);Yd(c)})}}p(Xd,t);Xd.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;Yd(this)};Xd.prototype.na=function(a,b){this.U&&(this.A&&Wd(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};Xd.prototype.fa=function(){return!0};
function Yd(a){if(a.D&&(!a.v&&a.u&&(zc(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Pa(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;Zd(a,a.Aa,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;C(a)}}
Xd.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&Zd(this,this.Aa,this.la,this.ka,this.i,!this.A)}this.F=!1};
function Zd(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)tc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.V?a.j.K||nc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(od(a.A),J(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.xa&&a.xa.stop()));return f}Bb(function(){for(var a=B(document,A,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Xd(d);Aa(d,c)}});
function $d(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=ae;b&&(void 0===c&&(c="Panel"),(c=za(c,this.id))&&(b=c.G[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p($d,t);l=$d.prototype;
l.ga=function(a,b,c){var d=this;switch(b){case ae:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
function de(a){t.call(this,"ROM",a,128);this.U=this.b=null;this.B=+a.addr;this.u=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.v=a.file;this.F=Xa(this.v);if(this.v){a=this.v;var b=Ya(this.F);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(na(c.La,a,b),(a=qb(a,b))?(c.b=a.Y,c.U=a.U):c.v=null);ee(c)})}}p(de,t);
de.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;ee(this)};de.prototype.na=function(){this.U&&(this.A&&fe(this.A,this.id,this.B,this.u,this.U),delete this.U);return!0};de.prototype.fa=function(){return!0};
function ee(a){if(!Ia(a)){if(a.v){if(!a.b||!a.D)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Ga(a,"ROM size ("+E(a.b.length,8,!0)+") does not match specified size ("+E(a.u,8,!0)+")");else{var b;b=a.B;if(Ac(a.D,b,a.u,Ic)){var c;for(c=0;c<a.b.length;c++)uc(a.D,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.i?b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.D,f=d.u,h=[],k=d.B>>>g.i;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.D;d=d.u;f=0;for(e>>>=
g.i;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}C(a)}}Bb(function(){for(var a=B(document,A,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new de(d);Aa(d,c)}});
function ge(a){t.call(this,"RAM",a);this.U=this.Aa=null;this.i=+a.addr;this.u=+a.size;this.la=a.load;this.ka=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ka&&(this.ka=+this.ka);this.v=this.F=!1;this.b=a.file;this.B=Xa(this.b);if(this.b){a=this.b;var b=Ya(this.B);"json"!=b&&"hex"!=b&&(a=$a()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;pb(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(na(c.La,a,b),(a=qb(a,b))?(c.Aa=a.Aa,
c.U=a.U,null==c.la&&(c.la=a.la),null==c.ka&&(c.ka=a.ka)):c.b=null);he(c)})}}p(ge,t);ge.prototype.va=function(a,b,c,d){this.D=b;this.g=c;this.A=d;he(this)};ge.prototype.na=function(a,b){this.U&&(this.A&&fe(this.A,this.id,this.i,this.u,this.U),delete this.U);b||this.reset();return!0};ge.prototype.fa=function(){return!0};
function he(a){if(a.D&&(!a.v&&a.u&&(Ac(a.D,a.i,a.u,1)?a.v=!0:a.u=0),!Ia(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.Aa)return;ie(a,a.Aa,a.la,a.ka,a.i)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.F=!0;C(a)}}
ge.prototype.reset=function(){if(this.v&&!this.F){for(var a=this.D,b=this.i,c=this.u,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=ja);f=Math.trunc(Math.abs(f))%ja;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&ie(this,this.Aa,this.la,this.ka,this.i,!this.A)}this.F=!1};
function ie(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)uc(a.D,c+f,b[f]);f=!0}f&&(null==d&&(a.g.W(),g=!1),null!=d&&(a=a.g,a.bb=d,a.u=d%Kb,g?a.j.V?a.j.K||oc(a):a.j.Z=!0:a.A&&a.j.V?a.W()||a.C.j.reset||(Wc(a.A),I(a.C,-1)):!1===g&&a.W(),!a.j.K&&a.xa&&a.xa.stop()));return f}Bb(function(){for(var a=B(document,A,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new ge(d);Aa(d,c)}});
function je(a){t.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=ke;b&&(void 0===c&&(c="Panel"),(c=za(c,this.id))&&(b=c.G[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.nb,receiveData:this.Na,receiveStatus:this.Mb,setConnection:this.Pb}}p(je,t);l=je.prototype;
l.ga=function(a,b,c){var d=this;switch(b){case ke:return this.G[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Za:q.rb:46==c?b=q.Za:a.ctrlKey&&c>=q.Ya&&c<=q.ub&&(b=c-(q.Ya-q.ob));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.qb&&(b=q.pb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.va=function(a,b,c,d){this.C=a;this.D=b;this.g=c;this.A=d;C(this)};
l.nb=function(a){if(!this.b){var b=ld(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=db(c[0]);if(d!=this.Ka)return;c=db(c[1]);if(this.b=ya(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var ae="buffer";
Bb(function(){for(var a=B(document,A,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new $d(d);Aa(d,c)}});function be(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(be,t);be.prototype.mb=function(){return-1};be.prototype.Wa=function(){};
function ce(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(db(b.substring(c,g))),c=g+1}}return a}
function de(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
l.nb=function(a){if(!this.b){var b=Tc(this.C,"connection");if(b){var c=b.split("->");if(2==c.length){var d=db(c[0]);if(d!=this.Ka)return;c=db(c[1]);if(this.b=ya(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.na=function(a,b){if(!b)if(this.nb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);return!0};l.Mb=function(){};l.Pb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var ke="buffer";
Bb(function(){for(var a=B(document,A,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new je(d);Aa(d,c)}});function le(a){t.call(this,"Debugger",a);this.ba=+a.base||16;this.oa=!1;this.B=0;this.R=!1;this.v=-1;this.u=[];this.aa={}}p(le,t);le.prototype.mb=function(){return-1};le.prototype.Wa=function(){};
function me(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.R?b="end":b=a.u[a.v+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(db(b.substring(c,g))),c=g+1}}return a}
function ne(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
case "^":d=g^e;break;case "|":d=g|e;break;case "&&":d=g&&e?1:0;break;case "||":d=g||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function P(a,b,c){var d;if(b){b=ee(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=db(n);if(!n){g=!0;break}n=fe(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&ge[n]<ge[k[k.length-1]]&&de(h,k,1);k.push(n);b=b.substr(r+y)}de(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&he(a,null,
d))}return d}function ee(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function fe(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Ua(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
function he(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
function ie(a,b){if(b)return he(a,b,a.aa[b]);var c=0;for(b in a.aa)he(a,b,a.aa[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=Wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=Va(b,10,a);break;default:b=E(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ge={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function je(a){be.call(this,a);this.ya=!1;this.oa=!0;this.ua=R();this.J=R();this.xa=R();this.O=R();this.F=[];this.b=this.L=this.I=[];ke(this);this.S=this.ja=0;this.i=[];this.ra=void 0;le(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.N=[];me(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.Ca=this.za=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[A]&&(window[A]=function(a){return qd(b,a)}):void 0===global[A]&&(global[A]=function(a){return qd(b,
a)})}p(je,be);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function R(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function ne(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function oe(a,b){a.w=b;a.ea=!1;a.ba=void 0}function pe(a){return[a.w,a.wb,a.ba,a.ea,a.Oa]}function qe(a,b){var c=R(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=ce(a,c.Oa=b[4]));return c}l=je.prototype;
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=ld(a,"messages"))&&me(this,a);re(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Cc[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ha,4,!0)+
" "+E(n.size,4,!0)+" "+m),c!=Gc&&(c=-1),m=0);a+=16384;e++}}});C(this)};
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.da=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,zb(c,function(){if(d.da){var a=d.da.value;
d.da.value="";qd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,zb(c,function(a){var b=!1;Qa(d,!0)||(Ra(d,!0),b=oc(d,a?1:0,null),Ra(d,!1));return b}),!0}return!1};function pd(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=S(a);-1!==d&&(c=uc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=S(a);-1!==d&&(tc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),J(this.C,-1))};
function T(a,b,c){var d;c=(c?a.J:a.xa).w;var e,g;if(void 0!==b){b=ee(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=R(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=P(a,b,void 0)}null!=c&&(d=R(c,e,g));return d}function se(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=ce(a,b.Oa=c[2]))}
function te(a){return Wa(a/Kb,6)+" "+Wa(a%Kb,6)}function me(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.N=[];b=ce(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.f(c+" messages enabled"))}}function re(a,b){for(var c in G)if(16==G[c]){a.pa[c]=b;break}}l.mb=function(a){return ue.indexOf(a.toUpperCase())};
l.Wa=function(a){var b;switch(a){case ve:b=this.g.u;break;case we:b=this.g.O;break;case xe:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,R(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.N.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,yd(a),a.aa=0,a.C&&J(a.C,void 0))}};
function le(a){var b;if(!Ed(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(ye);for(b=0;b<a.i.length;b++)a.i[b]=R();a.S=0;a.f("instruction history buffer allocated")}}function ze(a,b,c){if(!Ae(a,c))return!1;nc(a.g,b);return!0}
function oc(a,b,c,d){if(!Ae(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Ed(a)&&Fd(a,a.g.u,0);try{b=wd(a.g,b);var g=a.g.Ja(b);0<g&&(pc(a.g,g),a.B+=g,qc(a.g,g,!0),rc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Ga(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),J(a.C,-1));od(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function od(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(Be+c),oe(a.J,a.g.u),b&&1!=a.M?Ce(a):De(a))}
function Ae(a,b){var c;(c=!a.g||!Pa(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ha(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){le(this);this.ia=0;this.T=null;this.B=0;oe(this.J,this.g.u);this.j.K=!1;Ee(this);a||od(this)};
l.save=function(){var a=new H(this);a.set(0,pe(this.J));a.set(1,pe(this.O));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=qe(this,a[b++]),this.O=qe(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.M){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Ed(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Sa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}od(this,!0);pd(this);Ee(this,this.g.u);this.T=null}};function Ed(a){return 1<a.b.length||!!a.ja}
function Fd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=Dd(a.g,1)));if(0<c&&(a.ja&&!--a.ja||id(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.H(b)),0<=d&&(oe(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function Fe(a,b,c,d){var e=R(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Ob|0,r;for(r in Ge)if(f=Ge[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=mf;m=n&3;break;case 32256:k=of;m=n&7;break;case 29248:k=pf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>qf&&(k="B");k=rf[f||0]+k;k=cb(k,8);f?(k=28700==h?k+K(a,g/Pb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=te(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+te(k),null==
e.w)break;while(e.w!=b.w)}h+=cb(f,16)+g;c&&(h=cb(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+rd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function ke(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=S(c);var d=a.D;Oc(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=S(c),d=a.D,Oc(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
l.Ba=function(a,b,c){var d=!0;c||sf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(tf(this,a,a.length-1,"set"),le(this)));return d};function sf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||tf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Oc(d.b[c>>>d.i],b==a.I));h.ea||le(a);break}}return g}
function uf(a,b){for(var c=1;c<b.length;c++)tf(a,b,c);return b.length-1}function tf(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Ee(a,b){if(void 0!==b)id(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!sf(a,a.b,c,!0))break;b=0}}}
function id(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(sf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!vf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||tf(a,d,f,"hit");break}}}a.qa--;return g}
function wf(a,b){var c=ue[b]||"";c&&(c+="="+K(a,a.Wa(b),b==we?23:18)+" ");return c}function xf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=Wa(d,2);oe(e.ua,d);g+="="+K(e,e.wa(e.ua),36)+" ";c+=g}b&&(c+="\n"+(wf(a,ve)+wf(a,we)+wf(a,xe)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Wd(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=fb(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}function yf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=fb(g.hb,[e-f],a.jb);0<=e?zf(a,b,e,d):c&&(e=~e,zf(a,b,e-1,d),zf(a,b,e,d));break}}return d}
function zf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Af(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ie(a)||a.f("no variables"),!0;if(!c[2])return ie(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
function Bf(a,b,c){var d=null;if(b=T(a,b,!0)){var e=yf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
function Ce(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;oe(a.J,e.u);break;default:a.f("unknown register: "+
g);return}J(a.C);a.f("updated registers:")}}a.f(xf(a,d));c&&(oe(a.J,e.u),De(a,K(a,a.J.w)))}}function Cf(a,b){b=db(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):he(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
function Df(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=fe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;yb(c,function(){return Ra(a,!0)&&oc(a,e,d,!1)},function(){a.ha&&a.ha.stop();J(a.C,-1);Ra(a,!1)})}}
function De(a,b,c,d){if(b=T(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=fe(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=yf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Fe(a,b,f,g);a.f(g);ne(a.J,b);e-=b.w-k;c++}}}
function vf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Be+b):(a.R&&(a.f("ended assemble at "+K(a,a.O.w)),ne(a.J,a.O),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Pa(a)&&0<b.length){a.R&&(b="a "+K(a,a.O.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
T(a,f[1],!0);if(r){var y=f[2];a.O=r;if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.R=!0,J(a.C);else{f.shift();f.shift();f.shift();var U,He=f.join(""),x=-1,Ub,eg=y.toUpperCase(),Pc;for(Pc in Ge){var Ia;Ub=+Pc;var Ie=Ge[Pc];switch(Ub){case 32512:Ia=mf;break;case 32256:Ia=of;break;case 29248:Ia=pf;break;default:Ia=[""]}var Je,Qc;for(Qc in Ie){for(var Ke=Ie[Qc],Ja=0;Ja<Ia.length;Ja++){var Rc=Ia[Ja];"S"==Rc&&Ke>qf&&(Rc="B");if(eg==rf[Ke]+Rc){Je=29248!=Ub?Ja:(Ja&3)<<1|(Ja&12)<<2;x=(Qc|Je<<6)*Ob;break}}if(0<=
x)break}if(0<=x)break}if(0<=x)if(He)for(var Sc=He.split(","),eb=0;eb<Sc.length;eb++){var Vb=Sc[eb].trim();if(Vb){if(1<eb){a.f("too many operands: "+Vb);x=-1;break}var V=Vb.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+Vb);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!eb&&1<Sc.length)if(28700==Ub){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Pb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Fe(a,a.O)))}}break;case "b":a:{var fg=f[0],Ka=f[1],gg=b;if("?"==Ka)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var qa=fg.charAt(1);if("l"==qa){var Tc;Tc=0+uf(a,a.b);Tc+=uf(a,a.L);(Tc+=uf(a,a.I))||a.f("no breakpoints")}else if("n"==qa){var Le=+Ka||0;Ka&&(a.ja=Le);a.f("break after "+Le+" instruction(s)")}else if(void 0===Ka)a.f("missing breakpoint address");else{var I=R();if("*"!=Ka&&(I=T(a,Ka,!0),!I))break a;"c"==qa?null==I.w?(ke(a),a.f("all breakpoints cleared")):sf(a,a.b,I)||sf(a,a.L,I)||sf(a,a.I,I)||a.f("breakpoint missing: "+
K(a,I.w)):null!=I.w&&(se(a,I,gg),"p"==qa?a.Ba(a.b,I):"r"==qa?a.Ba(a.L,I):"w"==qa?a.Ba(a.I,I):a.f("unknown breakpoint command: "+qa))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var La,Ma=f[0],W=f[1],ja=f[2],hg=f[3];if("?"==W){var Na="";for(La in G)a.pa[La]&&(Na&&(Na+=","),Na+=La);Na+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
Na.length&&a.f("dump extension commands:\n\t"+Na)}else if("state"==W){var Uc=Ef(a.C,!0);"console"==ja?console.log(Uc):(a.ma&&(a.ma.value=""),Uc&&a.f(Uc))}else if("symbols"==W)for(var Vc=0;Vc<a.F.length;Vc++){var Wc=a.F[Vc],Oa;for(Oa in Wc.U)if("."!=Oa.charAt(0)){var Me=Wc.U[Oa].o;if(void 0!==Me){var Ne=Wc.U[Oa].l;Ne&&(Oa=Ne);a.f(K(a,Me)+" "+Oa)}}}else{if("d"==Ma){for(La in G)if(f[1]==La){var Oe=a.pa[La];Oe?(f.shift(),f.shift(),Oe(f)):a.f("no dump registered for "+W);break a}W||(Ma=a.Da||"dw")}else a.Da=
Ma;if("dh"==Ma){var Pe=W,Qe=ja,Re="",Se=0,Q=a.S,X=a.i;if(X.length){var M=+Pe||a.ra,gb=+Qe||10;isNaN(M)?M=gb:Re="more ";M>X.length&&(a.f("note: only "+X.length+" available"),M=X.length);Q-=M;0>Q&&(null==X[X.length-1].w?(M=Q+M,Q=0):Q+=X.length);var Xc=[];"call"==Qe&&(gb=1E5,Xc=["CALL"]);for(void 0!==Pe&&a.f(M+" instructions earlier:");0<gb&&Q!=a.S;){var Te=X[Q++];if(null==Te.w)break;var hb=R(Te.w),ig=M--,Ue=Fe(a,hb,"history",ig);(!Xc.length||0<=Ue.indexOf(Xc[0]))&&a.f(Ue);hb.Ua&&(Q+=hb.Ua,gb-=hb.Ua,
M-=hb.Ua);Q>=X.length&&(Q=0);a.ra=M;Se++;gb--}}Se||(a.f("no "+Re+"history available"),a.ra=void 0)}else{var ra=T(a,W);if(ra){var sa=0,Ve="ds"==Ma;if(ja){if("l"==ja.charAt(0))ja=ja.substr(1)||hg,sa=fe(a,ja);else{var We=T(a,ja);We&&(sa=We.w-ra.w)}0>sa&&(sa=0);65536<sa&&(sa=65536)}var jg=a.ba;ra.ba&&(a.ba=ra.ba);for(var Xe="db"==Ma?1:2,Yc=sa||32,Zc=1==Xe?2:4,kg=(Yc+Zc-1)/Zc|0||1,ta="";kg--&&0<Yc;){for(var ua="",Ye="",W=K(a,ra.w),Ze=Zc;0<Ze--&&0<Yc--;){var Wb=a.wa(ra,1);Ve?(ua&&(ua+=","),ua+=Wb):(ua+=
te(Wb),ua+=" ");for(var $e=0;1==Xe&&6>$e;$e++)Ye+=String.fromCharCode((Wb%64|0)+32),Wb/=64}ta&&(ta+="\n");ta=Ve?ta+(ua+","):ta+(W+": "+ua+(0>Ze?" "+Ye:""))}ta&&a.f(ta);ne(a.xa,ra);a.ba=jg}}}}break;case "e":if("else"==f[0])break;var af,bf,cf=f[0],$c=f[1];"e"==cf||"ew"==cf?(af=a.wa,bf=a.$a):$c=null;if(null==$c)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Xb=T(a,$c);if(Xb)for(var Yb=2;Yb<f.length;Yb++){var ad=P(a,f[Yb]);if(void 0===ad){a.f("unknown value: "+f[Yb]);
break}a.f("changing "+K(a,Xb.w)+" from "+te(af.call(a,Xb))+" to "+te(ad));bf.call(a,Xb,ad,1)}}break;case "g":a:{var df=f[1],lg=b;if(void 0!==df){var bd=T(a,df,!0);if(!bd)break a;se(a,bd,lg);a.Ba(a.b,bd,!0)}ze(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var cd;var ib=b.substr(2),ib=db(ib);P(a,ib)?(c||a.f("true: "+ib),cd=!0):(c||a.f("false: "+ib),cd=!1);cd||(d=!1);break}g=!0;break;case "k":var mg=f[0];if("?"==f[1])a.f("stack trace commands:"),
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var dd=0,ed=R(),jb=R();for(a.f("stack trace for "+K(a,jb.w));10>dd;){for(var va=null,ng=256;65536>jb.w>>>0;){ed.w=a.wa(jb,2);if(null==jb.w||!ng--)break;if(!(ed.w&1)){for(var og=a,Zb=ed,ef=null,kb=Zb.w,ff=kb,fd=1;6>=fd&&kb;fd++){if(2<fd){Zb.w=kb;var $b=Fe(og,Zb);if(0<=$b.indexOf("JSR")){var gf=$b.indexOf(" ");if(kb+($b.indexOf(" ",gf+1)-gf-1)/2==ff){ef=$b;break}}}kb-=2}Zb.w=ff;if(va=ef)break}}if(!va||null==va)break;var hf=null;
if("ks"==mg){var jf=va.match(/[0-9A-F]+$/);jf&&(hf=Bf(a,jf[0]))}va=cb(va,50)+" ;"+(hf||"stack="+K(a,jb.w));a.f(va);dd++}dd||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Bf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var ka=0;if("all"==z)ka=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){ka=G[Y];Z=!!(a.X&ka);break}if(!ka){a.f("unknown message category: "+
z);break a}}if(ka)if("on"==f[2])a.X|=ka,Z=!0;else if("off"==f[2]&&(a.X&=~ka,Z=!1,1073741824==ka)){for(var kf=1E3<=a.N.length?a.N.length-1E3:0;kf<a.N.length;)a.f(a.N[kf++]);a.N=[]}}var pg=0,lb="";for(Y in G)if(!z||z==Y){var qg=!!(a.X&G[Y]);if(null===Z||Z==qg)lb&&(lb+=","),++pg%10||(lb+="\n\t"),"key"==Y&&(Y="keys"),lb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(lb||"none"));le(a)}break;
case "p":if("print"==f[0]){Cf(a,b.substr(5));break}var rg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var sg="pr"==rg?1:0;if(a.M)a.f("step in progress");else{var lf=R(a.g.u);a.wa(lf);a.M?(a.Ba(a.b,lf,!0),ze(a)||(a.C&&vd(a.C),a.M=0)):Df(a,sg?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}Ce(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var mb=+f[2];if(8==mb||10==mb||16==mb)a.ba=mb;
else{a.f("invalid base: "+mb);break}}a.f("default base: "+a.ba);break;case "cs":var nb;void 0!==f[3]&&(nb=+f[3]);switch(f[2]){case "int":a.g.da=nb;break;case "start":a.g.ta=nb;break;case "stop":a.g.ia=nb;break;default:a.f("unknown cs option");break a}void 0!==nb&&nd(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(sd(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Df(a,f[0],f[1]);break;case "u":De(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Af(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.0 ("+
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Cf(a,b.substr(1));break}var gd="commands:",hd;for(hd in Ff)gd+="\n"+cb(hd,9)+Ff[hd];Ed(a)||(gd+="\nnote: history disabled if no exec breakpoints");a.f(gd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(nf){a.f("debugger error: "+(nf.stack||nf.message)),d=!1}return d}function qd(a,b,c){b=ce(a,b,c);for(var d in b)if(!vf(a,b[+d]))return!1;return!0}
var Ff={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},qf=20,rf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
ve=0,we=1,xe=2,ue=["PC","RA","EA"],Gf={},Ge=(Gf[28672]={0:101},Gf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Gf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:qf,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Gf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Gf[29248]={24576:79,24640:80,25088:81,25152:82},Gf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Gf),mf=["","I",
"M","S"],of=" L E LE A GE N G".split(" "),pf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),ye=1E3,Be=">> ";Bb(function(){for(var a=B(document,A,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new je(d);Aa(d,c)}});
function Hf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;If(this,b);this.N=ld(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.O=!1;this.da=ld(this,"url")||"";(Math.random()+.1).toString(36);this.i=Jf(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new vc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=xa(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Jb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=ld(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=ld(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Kf),this.b&&(this.I=new H(this,"1.34.0"),Lf(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Mf(this))&&(this.J=!0);if(b){var f=this;pb(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+db(b):"")+")")):(f.L=b,f.T=!0);C(f)})}else C(this);this.G.power||(this.N=!0);!c&&this.N&&Nf(this,this.Ga)}else v("Unable to find CPU component")}p(Hf,t);function If(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
function ld(a,b,c,d){var e=b.toLowerCase(),e=wb(b)||wb(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Nf(a,b,c){for(var d=xa(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Pa(g)){Pa(g,function(){Nf(a,b,c)});return}}b.call(a,c)}
function Of(a,b){var c=new H(a,"1.34.0",Pf);if(Lf(c)&&Qf(c)){var d=c.get(Rf),e=b?b.get(Rf):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Hf.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?Sf:Kf));if(!this.v){this.v++;var b=!1,c=!1;this.O=!1;var d=this.I||new H(this,"1.34.0");if(a==Tf)b=!0;else if(a>Kf){if(Lf(d,this.L)){this.B=new H(this,"1.34.0",Uf);Lf(this.B)&&(Vf(this,d),a=Wf,Xf(this.B));this.B.set(Rf,ob());Yf(this.B);var e=this.b&&!this.J;if(a==Sf||wa("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=Qf(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Lf(d,f):("error"==g&&"no machine state"!=
f?(this.ca("Error: "+f),"unable to verify user"==f&&(ub(Zf,""),this.i=null)):this.f(g+": "+f),Xf(d),Lf(d)?(c=Qf(d),e=!0):c=!1))}e&&Of(this,c?d:null)}else a==Wf&&d.clear()}else Of(this);delete this.L;delete this.I}e=xa(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=$f(this,f,d,b,c));b=[d,a,c];a!=Tf?Nf(this,this.kb,b):this.kb(b)}};
function $f(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Kf,window&&window.location.reload()):a.O=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&($f(this,this.g,b,c,a),J(this,-2),this.g.Z());this.O&&(Vf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
function Vf(a,b){if(wa("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;pb("http://www.pcjs.org/api/v1/report",d,!0)}}
function Ef(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.0"),f=new H(a,"1.34.0",Pf),h=ob();f.set(Rf,h);g.set(Rf,h);g.set(ag,"1.34.0");g.set(bg,window?window.location.href:null);g.set(cg,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=xa(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&dg(a,a.i,g.toString()),Yf(f)&&Yf(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==tg),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ta(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ta(this,"Resetting "+this.g.type),this.g.reset());for(var a=xa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ta(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;J(this,-1)};l.start=function(a,b){for(var c=xa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};
l.stop=function(a,b){for(var c=xa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
function J(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Wa(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);fc(a,a.i);Tb(a,a.v)}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?Ef(d,!1,!0):Nf(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=wa("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ef(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(Kf)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Za())c.parentNode.removeChild(c);else return this.G[b]=
c,c.onclick=function(){var a=Jf(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Ef(d,b);b?dg(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
function Jf(a,b){var c=a.i;c||((c=tb(Zf),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=ug(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
function ug(a,b){a.i=null;b=pb($a()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ub(Zf,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Mf(a){var b=null;a.i&&(b=$a()+"/api/v1/user?req=load&user="+a.i+"&state="+vg(a,"1.34.0"));return b}
function dg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=vg(a,"1.34.0");d.data=c;b=pb($a()+"/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.ca("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.ca(c),ub(Zf,""),a.i=null)}}
function vd(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var Uf="failsafe",Pf="validate",Rf="timestamp",ag="version",bg="url",cg="browser",Zf="user",Tf=-1,Kf=0,Sf=1,Wf=2,tg=3;Bb(function(){for(var a=B(document,A+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=B(c,A,"computer"),e=0;e<c.length;e++){var g=c[e],f=w(g),f=new Hf(f,d,!0);Aa(f,g);f.N&&Nf(f,f.Ga)}});
Cb.show.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Ga(Tf)}});Cb.exit.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.j.V&&Ef(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=vg(a,b,c);Xf(this,a.tb)}l=H.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function Lf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:rb()&&(b=tb(a.key))?(a.g=b,a.A=!0):!1}function Qf(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function Yf(a){var b=!0;if(rb()){var c=JSON.stringify(a.b);ub(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
function Xf(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){Xf(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 vg(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}var wg=0;
function xg(a,b,c,d,e,g,f){g("Loading "+a+"...");pb(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):yg(k,a,b,c,d,e,g,f)})}
function yg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(na(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?zg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function zg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pb(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],f);zg(a,b,c)}})}else c(a,null)}
function Ag(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&B(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=ab(a))}function f(a){g("Error: "+a);m&&(--wg||Fb(!0));m=!1}var h,k,m=!0;wg++;oa[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?xg(d,null,a,null,!1,g,function(a,e){e?(na(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--wg||Fb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--wg||
Fb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?xg(c,b,a,e,!0,g,n):yg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){Fb(!1);return Ag("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fb(!1);return Ag("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return za(b,a+".machine")};
function P(a,b,c){var d;if(b){b=oe(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=db(n);if(!n){g=!0;break}n=pe(a,n,null,!1===c);if(void 0===n){g=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],y=n.length;k.length&&qe[n]<qe[k[k.length-1]]&&ne(h,k,1);k.push(n);b=b.substr(r+y)}ne(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&re(a,null,
d))}return d}function oe(a,b){for(var c,d=a.oa?"(":"{",e=a.oa?")":"}",g=new RegExp(a.oa?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(a,f):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
function pe(a,b,c,d){var e;null!=b?(e=a.mb(b),0<=e?e=a.Wa(e):(e=a.aa[b],null==e&&(e=Ua(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
function re(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var y=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(y?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=E(c,0,!0)+" "+c+". "+Wa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
function se(a,b){if(b)return re(a,b,a.aa[b]);var c=0;for(b in a.aa)re(a,b,a.aa[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=Wa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=Va(b,10,a);break;default:b=E(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var qe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function te(a){le.call(this,a);this.ya=!1;this.oa=!0;this.ua=Q();this.J=Q();this.xa=Q();this.P=Q();this.F=[];this.b=this.L=this.I=[];ue(this);this.S=this.ja=0;this.i=[];this.ra=void 0;ve(this);this.A=this;this.pa={};this.X=this.ib=0;this.T=null;this.O=[];we(this,a.messages);this.ta=a.commands;this.M=0;this.Da=this.sa=null;this.B=this.Ca=this.za=this.ia=this.qa=0;this.ha=this.da=null;var b=this;window?void 0===window[A]&&(window[A]=function(a){return rd(b,a)}):void 0===global[A]&&(global[A]=function(a){return rd(b,
a)})}p(te,le);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function Q(a,b,c){return{w:void 0===a?null:a,wb:void 0===b?!1:b,ea:!1,ba:c}}function xe(a,b){a.w=b.w;a.ea=b.ea;a.ba=b.ba}function ye(a,b){a.w=b;a.ea=!1;a.ba=void 0}function ze(a){return[a.w,a.wb,a.ba,a.ea,a.Oa]}function Ae(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.gb=me(a,c.Oa=b[4]));return c}l=te.prototype;
l.va=function(a,b,c,d){this.D=b;this.C=a;this.g=c;this.ha=a.u;(a=Tc(a,"messages"))&&we(this,a);Be(this,function(a){a:{var b=d.D.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.D.i;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=Dc[c],n&&d.f(E(n.id,8)+" %"+E(e<<d.D.i,8)+" %"+E(n.w,8)+" "+E(n.Ha,4,!0)+
" "+E(n.size,4,!0)+" "+m),c!=Hc&&(c=-1),m=0);a+=16384;e++}}});C(this)};
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.da=this.G[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",rd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.G[b]=c,zb(c,function(){if(d.da){var a=d.da.value;
d.da.value="";rd(d,a,!0);return!0}return!1}),!0;case "step":return this.G[b]=c,zb(c,function(a){var b=!1;Qa(d,!0)||(Ra(d,!0),b=pc(d,a?1:0,null),Ra(d,!1));return b}),!0}return!1};function Xc(a){if(a.da){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.da.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=S(a);-1!==d&&(c=vc(this.D,d),b&&null!=a.w&&(a.w+=b||1));return c};l.$a=function(a,b,c){var d=S(a);-1!==d&&(uc(this.D,d,b),c&&null!=a.w&&(a.w+=c||1),I(this.C,-1))};
function T(a,b,c){var d;c=(c?a.J:a.xa).w;var e,g;if(void 0!==b){b=oe(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.F.length;c++){var k=a.F[c].U[d];if(null!=k){h=k.o;break}}null!=h&&(f=Q(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=P(a,b,void 0)}null!=c&&(d=Q(c,e,g));return d}function Ce(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.gb=me(a,b.Oa=c[2]))}
function De(a){return Wa(a/Kb,6)+" "+Wa(a%Kb,6)}function we(a,b){a.A=a;a.X=a.ib=536870916;a.T=null;a.O=[];b=me(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.f(c+" messages enabled"))}}function Be(a,b){for(var c in G)if(16==G[c]){a.pa[c]=b;break}}l.mb=function(a){return Ee.indexOf(a.toUpperCase())};
l.Wa=function(a){var b;switch(a){case Fe:b=this.g.u;break;case Ge:b=this.g.P;break;case He:b=this.g.i}return b};l.message=function(a,b){b&&(a+=" @"+K(this,Q(this.g.qa).w));if(!this.T||a!=this.T)if(this.T=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.g&&(c=this.g.j.K)||Qa(this,!0))this.W(),c&&(a+=" (cpu halted)");this.f(a);this.g&&(a=this.g,zd(a),a.aa=0,a.C&&I(a.C,void 0))}};
function ve(a){var b;if(!Fd(a))a.i&&a.i.length&&a.f("instruction history buffer freed"),a.S=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(Ie);for(b=0;b<a.i.length;b++)a.i[b]=Q();a.S=0;a.f("instruction history buffer allocated")}}function Je(a,b,c){if(!Ke(a,c))return!1;oc(a.g,b);return!0}
function pc(a,b,c,d){if(!Ke(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.B=0;b||Fd(a)&&Gd(a,a.g.u,0);try{b=xd(a.g,b);var g=a.g.Ja(b);0<g&&(qc(a.g,g),a.B+=g,rc(a.g,g,!0),sc(a.g,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Ga(a.g,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),I(a.C,-1));Wc(a,c||!1,e);return 0<a.B}l.W=function(a){this.g&&this.g.W(a)};function Wc(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(Le+c),ye(a.J,a.g.u),b&&1!=a.M?Me(a):Ne(a))}
function Ke(a,b){var c;(c=!a.g||!Ia(a.g))||(c=a.g,c.j.V?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.g.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ha(a.g)}l.na=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ve(this);this.ia=0;this.T=null;this.B=0;ye(this.J,this.g.u);this.j.K=!1;Oe(this);a||Wc(this)};
l.save=function(){var a=new H(this);a.set(0,ze(this.J));a.set(1,ze(this.P));a.set(2,[this.u,this.R,this.X]);a.set(3,this.F);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.J=Ae(this,a[b++]),this.P=Ae(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.R=a[b][1],this.X|=a[b][2]);a[3]&&(this.F=a[3]);return!0};l.start=function(a,b){this.M||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.M){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Fd(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Sa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}Wc(this,!0);Xc(this);Oe(this,this.g.u);this.T=null}};function Fd(a){return 1<a.b.length||!!a.ja}
function Gd(a,b,c){var d=-1;c||(d=a.g.H(b),2756==d>>23&&a.g.qa==b&&(b=Ed(a.g,1)));if(0<c&&(a.ja&&!--a.ja||Qc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.ia++,0>d&&(d=a.g.H(b)),0<=d&&(ye(a.i[a.S],b),++a.S==a.i.length&&(a.S=0)));return!1}
function Pe(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Pb|0,r;for(r in Qe)if(f=Qe[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=wf;m=n&3;break;case 32256:k=yf;m=n&7;break;case 29248:k=zf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Af&&(k="B");k=Bf[f||0]+k;k=cb(k,8);f?(k=28700==h?k+K(a,g/Qb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=De(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+De(k),null==
e.w)break;while(e.w!=b.w)}h+=cb(f,16)+g;c&&(h=cb(h,48)+";"+(c||""),h=a.g.j.Ea?h+("cycles="+sd(a.g).toString()+" cs="+E(a.g.sa)):h+(null!=d?"="+d.toString():""));return h}function ue(a){var b,c;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++){c=a.L[b];c=S(c);var d=a.D;Pc(d.b[c>>>d.i],!1)}a.L=["br"];if(a.I)for(b=1;b<a.I.length;b++)c=a.I[b],c=S(c),d=a.D,Pc(d.b[c>>>d.i],!0);a.I=["bw"];a.qa=0;a.ja=0}
l.Ba=function(a,b,c){var d=!0;c||Cf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.D;g.b[e>>>g.i].Ba(e&16383,a==this.I)}}d&&(a.push(b),c?b.ea=!0:(Df(this,a,a.length-1,"set"),ve(this)));return d};function Cf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||Df(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.D,Pc(d.b[c>>>d.i],b==a.I));h.ea||ve(a);break}}return g}
function Ef(a,b){for(var c=1;c<b.length;c++)Df(a,b,c);return b.length-1}function Df(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Oe(a,b){if(void 0!==b)Qc(a,b,1,a.b,!0),a.M=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!Cf(a,a.b,c,!0))break;b=0}}}
function Qc(a,b,c,d,e){var g=!1;if(!a.qa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Cf(a,d,h,!0),e=!0);if(n=h.gb){for(var g=!1,r=0;r<n.length;r++)if(!Ff(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var y=r+1;y<n.length&&n[y].indexOf("else");y++)r++;if(y==n.length){g=!0;break}}a.g.j.K||(g=!0)}if(g){e||Df(a,d,f,"hit");break}}}a.qa--;return g}
function Gf(a,b){var c=Ee[b]||"";c&&(c+="="+K(a,a.Wa(b),b==Ge?23:18)+" ");return c}function Hf(a,b){for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=Wa(d,2);ye(e.ua,d);g+="="+K(e,e.wa(e.ua),36)+" ";c+=g}b&&(c+="\n"+(Gf(a,Fe)+Gf(a,Ge)+Gf(a,He)));return c}l.jb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function fe(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=eb(n,k,a.jb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.F.push({$c:b,w:c,zb:d,U:e,hb:g})}function If(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.F.length;b++){var g=a.F[b],f=g.w>>>0,h=g.zb;if(e>=f&&e<f+h){e=eb(g.hb,[e-f],a.jb);0<=e?Jf(a,b,e,d):c&&(e=~e,Jf(a,b,e-1,d),Jf(a,b,e,d));break}}return d}
function Jf(a,b,c,d){var e={},g=a.F[b].hb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.F[b].U[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Kf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return se(a)||a.f("no variables"),!0;if(!c[2])return se(a,c[1]);if(!c[3])return delete a.aa[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.aa[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
function Lf(a,b,c){var d=null;if(b=T(a,b,!0)){var e=If(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+E(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+E(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
function Me(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.g;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.u=f%Kb;ye(a.J,e.u);break;default:a.f("unknown register: "+
g);return}I(a.C);a.f("updated registers:")}}a.f(Hf(a,d));c&&(ye(a.J,e.u),Ne(a,K(a,a.J.w)))}}function Mf(a,b){b=db(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):re(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
function Nf(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.sa=b;yb(c,function(){return Ra(a,!0)&&pc(a,e,d,!1)},function(){a.ha&&a.ha.stop();I(a.C,-1);Ra(a,!1)})}}
function Ne(a,b,c,d){if(b=T(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=pe(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c,!0);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Qa(a,!1)||a.M?a.B:null;var f=null!=g?"cycles":null,h=If(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=Pe(a,b,f,g);a.f(g);xe(a.J,b);e-=b.w-k;c++}}}
function Ff(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Le+b):(a.R&&(a.f("ended assemble at "+K(a,a.P.w)),xe(a.J,a.P),a.R=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.T=null;if(Ia(a)&&0<b.length){a.R&&(b="a "+K(a,a.P.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=
T(a,f[1],!0);if(r){var y=f[2];a.P=r;if(void 0==y)a.f("begin assemble at "+K(a,r.w)),a.R=!0,I(a.C);else{f.shift();f.shift();f.shift();var U,Re=f.join(""),x=-1,cc,og=y.toUpperCase(),Yc;for(Yc in Qe){var Ja;cc=+Yc;var Se=Qe[Yc];switch(cc){case 32512:Ja=wf;break;case 32256:Ja=yf;break;case 29248:Ja=zf;break;default:Ja=[""]}var Te,Zc;for(Zc in Se){for(var Ue=Se[Zc],Ka=0;Ka<Ja.length;Ka++){var $c=Ja[Ka];"S"==$c&&Ue>Af&&($c="B");if(og==Bf[Ue]+$c){Te=29248!=cc?Ka:(Ka&3)<<1|(Ka&12)<<2;x=(Zc|Te<<6)*Pb;break}}if(0<=
x)break}if(0<=x)break}if(0<=x)if(Re)for(var ad=Re.split(","),fb=0;fb<ad.length;fb++){var dc=ad[fb].trim();if(dc){if(1<fb){a.f("too many operands: "+dc);x=-1;break}var V=dc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+dc);x=-1;break}var D=P(a,V[2]);if(void 0==D){x=-1;break}if(!fb&&1<ad.length)if(28700==cc){if(0>D||127<D){a.f("device code out of range: "+V[2]);x=-1;break}x+=D*Qb}else{if(0>D||15<D){a.f("accumulator address out of range: "+V[2]);x=-1;break}x+=D<<23}else{if(0>D||262143<
D){a.f("memory address out of range: "+V[2]);x=-1;break}x+=D;if(V[3]){D=P(a,V[3]);if(void 0==D){x=-1;break}if(0>D||15<D){a.f("memory index out of range: "+V[3]);x=-1;break}x+=D<<18}V[1]&&(x+=4194304)}}}else a.f("missing operand(s)"),x=-1;else a.f("unknown instruction: "+y);U=x;0<=U&&(a.$a(r,U),a.f(Pe(a,a.P)))}}break;case "b":a:{var pg=f[0],La=f[1],qg=b;if("?"==La)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),
a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");else{var ra=pg.charAt(1);if("l"==ra){var bd;bd=0+Ef(a,a.b);bd+=Ef(a,a.L);(bd+=Ef(a,a.I))||a.f("no breakpoints")}else if("n"==ra){var Ve=+La||0;La&&(a.ja=Ve);a.f("break after "+Ve+" instruction(s)")}else if(void 0===La)a.f("missing breakpoint address");else{var J=Q();if("*"!=La&&(J=T(a,La,!0),!J))break a;"c"==ra?null==J.w?(ue(a),a.f("all breakpoints cleared")):Cf(a,a.b,J)||Cf(a,a.L,J)||Cf(a,a.I,J)||a.f("breakpoint missing: "+
K(a,J.w)):null!=J.w&&(Ce(a,J,qg),"p"==ra?a.Ba(a.b,J):"r"==ra?a.Ba(a.L,J):"w"==ra?a.Ba(a.I,J):a.f("unknown breakpoint command: "+ra))}}}break;case "c":a.ma&&(a.ma.value="");break;case "d":a:{var Ma,Na=f[0],W=f[1],ka=f[2],rg=f[3];if("?"==W){var Oa="";for(Ma in G)a.pa[Ma]&&(Oa&&(Oa+=","),Oa+=Ma);Oa+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");
Oa.length&&a.f("dump extension commands:\n\t"+Oa)}else if("state"==W){var cd=Of(a.C,!0);"console"==ka?console.log(cd):(a.ma&&(a.ma.value=""),cd&&a.f(cd))}else if("symbols"==W)for(var dd=0;dd<a.F.length;dd++){var ed=a.F[dd],Pa;for(Pa in ed.U)if("."!=Pa.charAt(0)){var We=ed.U[Pa].o;if(void 0!==We){var Xe=ed.U[Pa].l;Xe&&(Pa=Xe);a.f(K(a,We)+" "+Pa)}}}else{if("d"==Na){for(Ma in G)if(f[1]==Ma){var Ye=a.pa[Ma];Ye?(f.shift(),f.shift(),Ye(f)):a.f("no dump registered for "+W);break a}W||(Na=a.Da||"dw")}else a.Da=
Na;if("dh"==Na){var Ze=W,$e=ka,af="",bf=0,R=a.S,X=a.i;if(X.length){var N=+Ze||a.ra,hb=+$e||10;isNaN(N)?N=hb:af="more ";N>X.length&&(a.f("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var fd=[];"call"==$e&&(hb=1E5,fd=["CALL"]);for(void 0!==Ze&&a.f(N+" instructions earlier:");0<hb&&R!=a.S;){var cf=X[R++];if(null==cf.w)break;var ib=Q(cf.w),sg=N--,df=Pe(a,ib,"history",sg);(!fd.length||0<=df.indexOf(fd[0]))&&a.f(df);ib.Ua&&(R+=ib.Ua,hb-=ib.Ua,
N-=ib.Ua);R>=X.length&&(R=0);a.ra=N;bf++;hb--}}bf||(a.f("no "+af+"history available"),a.ra=void 0)}else{var sa=T(a,W);if(sa){var ta=0,ef="ds"==Na;if(ka){if("l"==ka.charAt(0))ka=ka.substr(1)||rg,ta=pe(a,ka);else{var ff=T(a,ka);ff&&(ta=ff.w-sa.w)}0>ta&&(ta=0);65536<ta&&(ta=65536)}var tg=a.ba;sa.ba&&(a.ba=sa.ba);for(var gf="db"==Na?1:2,gd=ta||32,hd=1==gf?2:4,ug=(gd+hd-1)/hd|0||1,ua="";ug--&&0<gd;){for(var va="",hf="",W=K(a,sa.w),jf=hd;0<jf--&&0<gd--;){var ec=a.wa(sa,1);ef?(va&&(va+=","),va+=ec):(va+=
De(ec),va+=" ");for(var kf=0;1==gf&&6>kf;kf++)hf+=String.fromCharCode((ec%64|0)+32),ec/=64}ua&&(ua+="\n");ua=ef?ua+(va+","):ua+(W+": "+va+(0>jf?" "+hf:""))}ua&&a.f(ua);xe(a.xa,sa);a.ba=tg}}}}break;case "e":if("else"==f[0])break;var lf,mf,nf=f[0],id=f[1];"e"==nf||"ew"==nf?(lf=a.wa,mf=a.$a):id=null;if(null==id)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var fc=T(a,id);if(fc)for(var gc=2;gc<f.length;gc++){var jd=P(a,f[gc]);if(void 0===jd){a.f("unknown value: "+f[gc]);
break}a.f("changing "+K(a,fc.w)+" from "+De(lf.call(a,fc))+" to "+De(jd));mf.call(a,fc,jd,1)}}break;case "g":a:{var of=f[1],vg=b;if(void 0!==of){var kd=T(a,of,!0);if(!kd)break a;Ce(a,kd,vg);a.Ba(a.b,kd,!0)}Je(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.W()):Qa(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var ld;var jb=b.substr(2),jb=db(jb);P(a,jb)?(c||a.f("true: "+jb),ld=!0):(c||a.f("false: "+jb),ld=!1);ld||(d=!1);break}g=!0;break;case "k":var wg=f[0];if("?"==f[1])a.f("stack trace commands:"),
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var md=0,nd=Q(),kb=Q();for(a.f("stack trace for "+K(a,kb.w));10>md;){for(var wa=null,xg=256;65536>kb.w>>>0;){nd.w=a.wa(kb,2);if(null==kb.w||!xg--)break;if(!(nd.w&1)){for(var yg=a,hc=nd,pf=null,lb=hc.w,qf=lb,od=1;6>=od&&lb;od++){if(2<od){hc.w=lb;var ic=Pe(yg,hc);if(0<=ic.indexOf("JSR")){var rf=ic.indexOf(" ");if(lb+(ic.indexOf(" ",rf+1)-rf-1)/2==qf){pf=ic;break}}}lb-=2}hc.w=qf;if(wa=pf)break}}if(!wa||null==wa)break;var sf=null;
if("ks"==wg){var tf=wa.match(/[0-9A-F]+$/);tf&&(sf=Lf(a,tf[0]))}wa=cb(wa,50)+" ;"+(sf||"stack="+K(a,kb.w));a.f(wa);md++}md||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Lf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,z=f[1];"?"==z&&(z=void 0);if(void 0!==z){var la=0;if("all"==z)la=1879046143,z=null;else if("on"==z)Z=!0,z=null;else if("off"==z)Z=!1,z=null;else{"keys"==z&&(z="key");"kbd"==z&&(z="keyboard");for(Y in G)if(z==Y){la=G[Y];Z=!!(a.X&la);break}if(!la){a.f("unknown message category: "+
z);break a}}if(la)if("on"==f[2])a.X|=la,Z=!0;else if("off"==f[2]&&(a.X&=~la,Z=!1,1073741824==la)){for(var uf=1E3<=a.O.length?a.O.length-1E3:0;uf<a.O.length;)a.f(a.O[uf++]);a.O=[]}}var zg=0,mb="";for(Y in G)if(!z||z==Y){var Ag=!!(a.X&G[Y]);if(null===Z||Z==Ag)mb&&(mb+=","),++zg%10||(mb+="\n\t"),"key"==Y&&(Y="keys"),mb+=Y}void 0===z&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));ve(a)}break;
case "p":if("print"==f[0]){Mf(a,b.substr(5));break}var Bg=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var Cg="pr"==Bg?1:0;if(a.M)a.f("step in progress");else{var vf=Q(a.g.u);a.wa(vf);a.M?(a.Ba(a.b,vf,!0),Je(a)||(a.C&&wd(a.C),a.M=0)):Nf(a,Cg?"tr":"t")}}break;case "r":if("reset"==b){a.C&&a.C.reset();break}Me(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==nb)a.ba=nb;
else{a.f("invalid base: "+nb);break}}a.f("default base: "+a.ba);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.g.da=ob;break;case "start":a.g.ta=ob;break;case "stop":a.g.ia=ob;break;default:a.f("unknown cs option");break a}void 0!==ob&&Vc(a.g);a.f("checksums "+(a.g.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(td(a.g,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.g.S.toFixed(2)+"Mhz")+" ("+a.g.T+"x)");break;
default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Nf(a,f[0],f[1]);break;case "u":Ne(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Kf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.0 ("+
a.g.eb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Mf(a,b.substr(1));break}var pd="commands:",qd;for(qd in Pf)pd+="\n"+cb(qd,9)+Pf[qd];Fd(a)||(pd+="\nnote: history disabled if no exec breakpoints");a.f(pd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(xf){a.f("debugger error: "+(xf.stack||xf.message)),d=!1}return d}function rd(a,b,c){b=me(a,b,c);for(var d in b)if(!Ff(a,b[+d]))return!1;return!0}
var Pf={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Af=20,Bf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
Fe=0,Ge=1,He=2,Ee=["PC","RA","EA"],Qf={},Qe=(Qf[28672]={0:101},Qf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Qf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Af,9216:53,9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,
16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Qf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Qf[29248]={24576:79,24640:80,25088:81,25152:82},Qf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,28696:99,28700:100},Qf),wf=["","I",
"M","S"],yf=" L E LE A GE N G".split(" "),zf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Ie=1E3,Le=">> ";Bb(function(){for(var a=B(document,A,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new te(d);Aa(d,c)}});
function Rf(a,b,c){t.call(this,"Computer",a,33554432);this.j.V=!1;this.R=null;Sf(this,b);this.O=Tc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.J=this.T=!1;this.I=this.B=null;this.S=this.P=!1;this.da=Tc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Tf(this);if(this.g=za("CPU",this.id)){this.A=za("Debugger",this.id);this.D=new wc({id:this.La+".bus",busWidth:this.aa},this.g,this.A);var d,e=xa(this.id);if((this.u=za("Panel",this.id))&&this.u.ma)for(b=
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.ma=this.u.ma;this.f(Jb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.D,this.g,this.A);b=null;d=Tc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var g;if(a=Tc(this,"state")||(g=!0,a.state))this.M=b=a,g||(this.J=!0,this.b=Uf),this.b&&(this.I=new H(this,"1.34.0"),Vf(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Wf(this))&&(this.J=!0);if(b){var f=this;pb(b,null,!0,function(a,b,c){c?(f.F=null,f.J=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+db(b):"")+")")):(f.L=b,f.T=!0);C(f)})}else C(this);this.G.power||(this.O=!0);!c&&this.O&&Xf(this,this.Ga)}else v("Unable to find CPU component")}p(Rf,t);function Sf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.R=b}
function Tc(a,b,c,d){var e=b.toLowerCase(),e=wb(b)||wb(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Xf(a,b,c){for(var d=xa(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Ia(g)){Ia(g,function(){Xf(a,b,c)});return}}b.call(a,c)}
function Yf(a,b){var c=new H(a,"1.34.0",Zf);if(Vf(c)&&$f(c)){var d=c.get(ag),e=b?b.get(ag):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Rf.prototype;
l.Ga=function(a){void 0===a&&(a=this.b||(this.L?bg:Uf));if(!this.v){this.v++;var b=!1,c=!1;this.P=!1;var d=this.I||new H(this,"1.34.0");if(a==cg)b=!0;else if(a>Uf){if(Vf(d,this.L)){this.B=new H(this,"1.34.0",dg);Vf(this.B)&&(eg(this,d),a=fg,gg(this.B));this.B.set(ag,gb());hg(this.B);var e=this.b&&!this.J;if(a==bg||qa("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Vf(d,f):("error"==g&&"no machine state"!=
f?(this.ca("Error: "+f),"unable to verify user"==f&&(ub(ig,""),this.i=null)):this.f(g+": "+f),gg(d),Vf(d)?(c=$f(d),e=!0):c=!1))}e&&Yf(this,c?d:null)}else a==fg&&d.clear()}else Yf(this);delete this.L;delete this.I}e=xa(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.g&&(c=jg(this,f,d,b,c));b=[d,a,c];a!=cg?Xf(this,this.kb,b):this.kb(b)}};
function jg(a,b,c,d,e){if(!b.j.V){b.j.V=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.na(g,d)&&g&&(v("Unable to restore state for "+b.type),a.M&&!a.T?(c.clear(),a.b=Uf,window&&window.location.reload()):a.P=!0,b.na(null),e=!1),!d&&b.cb){var f=b.cb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){v("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
l.kb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.V=!0;var d=this.G.power;d&&(d.textContent="Shutdown");this.g&&(jg(this,this.g,b,c,a),I(this,-2),this.g.Z());this.P&&(eg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
function eg(a,b){if(qa("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.i||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;pb("http://www.pcjs.org/api/v1/report",d,!0)}}
function Of(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.0"),f=new H(a,"1.34.0",Zf),h=gb();f.set(ag,h);g.set(ag,h);g.set(kg,"1.34.0");g.set(lg,window?window.location.href:null);g.set(mg,window?window.navigator.userAgent:"");a.g&&a.g.fa&&(c&&(b&&(a.g.j.Z=a.g.j.K),a.g.W()),d=a.g.fa(b,c),"object"===typeof d&&g.set(a.g.id,d),c&&(a.g.j.V=!1,!1===d&&(e=null)));for(var h=xa(a.id),k=0;k<h.length;k++){var m=h[k];m.j.V&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.V=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&ng(a,a.i,g.toString()),hg(f)&&hg(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Dg),d&&g.clear(h)):e=g.toString());c&&(a.j.V=!1,b=a.G.power)&&(b.textContent="Power");a.v=0;return e}
l.reset=function(){this.j.reset=!0;this.D&&this.D.reset&&(Ta(this,"Resetting "+this.D.type),this.D.reset());this.g&&this.g.reset&&(Ta(this,"Resetting "+this.g.type),this.g.reset());for(var a=xa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.g&&c.reset&&(Ta(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=xa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
l.stop=function(a,b){for(var c=xa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
function I(a,b){if(a.g){var c=a.g,d=b||0,e=c.G.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.L)){c=a.g.j.K;d=!!(a.g.v&8);if(0>=b||60<=(a.J+=b)){e=a.g.u;if(a.G.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Wa(e,void 0):E(e,void 0);a.G.PC.textContent!=e&&(a.G.PC.textContent=e)}a.J=0}-1>b?a.i=a.g.u:0<b&&c&&!d&&(a.i=a.g.pa);$b(a,a.i);Ub(a,a.v)}}
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.G[b]=c,c.onclick=function(){d.v||(d.j.V?Of(d,!1,!0):Xf(d,d.Ga))},!0;case "reset":return this.G[b]=c,c.onclick=function(){if(d.j.V&&!d.v)if(d.b&&!d.F){var a=qa("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Of(d,a,!0);!a&&d.M?window&&window.location.reload():d.Ga(Uf)}else d.reset(),d.g&&!d.A&&d.g.Z()},!0;case "save":if(Za())c.parentNode.removeChild(c);else return this.G[b]=
c,c.onclick=function(){var a=Tf(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Of(d,b);b?ng(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
function Tf(a,b){var c=a.i;c||((c=tb(ig),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Eg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
function Eg(a,b){a.i=null;b=pb($a()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ub(ig,b.data),a.i=b.data)}catch(d){v(d.message+" ("+c+")")}return a.i}function Wf(a){var b=null;a.i&&(b=$a()+"/api/v1/user?req=load&user="+a.i+"&state="+Fg(a,"1.34.0"));return b}
function ng(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Fg(a,"1.34.0");d.data=c;b=pb($a()+"/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.ca("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.ca(c),ub(ig,""),a.i=null)}}
function wd(a,b){if(a.ma){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ma.focus();!b&&window&&window.scrollTo(c,d)}}var dg="failsafe",Zf="validate",ag="timestamp",kg="version",lg="url",mg="browser",ig="user",cg=-1,Uf=0,bg=1,fg=2,Dg=3;Bb(function(){for(var a=B(document,A+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=B(c,A,"computer"),e=0;e<c.length;e++){var g=c[e],f=w(g),f=new Rf(f,d,!0);Aa(f,g);f.O&&Xf(f,f.Ga)}});
Cb.show.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.S&&!c.j.V&&c.Ga(cg)}});Cb.exit.push(function(){for(var a=B(document,A,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=za("Computer",c.id))&&c.j.V&&Of(c,!(!c.b||c.F),!0)}});function H(a,b,c){this.id=a.id;this.g="";this.b={};this.A=this.C=!1;this.key=Fg(a,b,c);gg(this,a.tb)}l=H.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
l.data=function(){return this.b};function Vf(a,b){return b?(a.g=b,a.A=!0,a.C=!1,!0):a.A?!0:rb()&&(b=tb(a.key))?(a.g=b,a.A=!0):!1}function $f(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.g),a.C=!0}catch(c){v(c.message||c),b=!1}return b}function hg(a){var b=!0;if(rb()){var c=JSON.stringify(a.b);ub(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.g};
function gg(a,b){a.g="";a.b={};a.A=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){gg(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 Fg(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}var Gg=0;
function Hg(a,b,c,d,e,g,f){g("Loading "+a+"...");pb(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Ig(k,a,b,c,d,e,g,f)})}
function Ig(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(na(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Jg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Jg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");pb(e,null,!0,function(g,f,h){if(h||!f)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(g=d[3])if(h=f.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(g);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(f=f.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}f=f.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],f);Jg(a,b,c)}})}else c(a,null)}
function Kg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&B(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=ab(a))}function f(a){g("Error: "+a);m&&(--Gg||Fb(!0));m=!1}var h,k,m=!0;Gg++;oa[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],y=document.createElement("style");y.type="text/css";y.styleSheet?y.styleSheet.cssText=n:y.appendChild(document.createTextNode(n));r.appendChild(y)}d||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?Hg(d,null,a,null,!1,g,function(a,e){e?(na(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Gg||Fb(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Gg||
Fb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Hg(c,b,a,e,!0,g,n):Ig(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){Fb(!1);return Kg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){Fb(!1);return Kg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return za(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ca[a]){for(var c=!0,d=Ca,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;Ba(a)||(c=!1)}return c};window.enableEvents=Fb;window.sendEvent=Hb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map

View file

@ -32,9 +32,9 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
function ea(){ba();var a=m.Symbol.iterator;a||(a=m.Symbol.iterator=m.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ga(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ga(a){ea();a={next:a};a[m.Symbol.iterator]=function(){return this};return a}
function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ha(a,b){if(b){var c=m;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
ha("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
var ia=Math.pow(2,36),ka=-Math.pow(2,35),q={yb:0,Ra:1,Ab:2,Bb:3,Cb:4,Db:5,Eb:6,Fb:7,Ja:8,Gb:9,Sa:10,Hb:11,Ib:12,Ta:13,Jb:14,Kb:15,Lb:16,Mb:17,Nb:18,Ob:19,Pb:20,Qb:21,Rb:22,Sb:23,Tb:24,Ub:25,Vb:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ia:65,xb:66,zb:67,Wb:68,E:69,Xb:70,Yb:71,Zb:72,$b:73,ac:74,bc:75,cc:76,dc:77,ec:78,fc:79,gc:80,Q:81,
var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={yb:0,Ra:1,Ab:2,Bb:3,Cb:4,Db:5,Eb:6,Fb:7,Ja:8,Gb:9,Sa:10,Hb:11,Ib:12,Ta:13,Jb:14,Kb:15,Lb:16,Mb:17,Nb:18,Ob:19,Pb:20,Qb:21,Rb:22,Sb:23,Tb:24,Ub:25,Vb:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ia:65,xb:66,zb:67,Wb:68,E:69,Xb:70,Yb:71,Zb:72,$b:73,ac:74,bc:75,cc:76,dc:77,ec:78,fc:79,gc:80,Q:81,
hc:82,ic:83,jc:84,kc:85,lc:86,mc:87,nc:88,oc:89,Ya:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pc:97,qc:98,rc:99,d:100,e:101,sc:102,tc:103,uc:104,vc:105,wc:106,k:107,xc:108,yc:109,n:110,zc:111,p:112,q:113,r:114,Ac:115,t:116,Bc:117,Cc:118,Dc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ua:127};
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.Xa=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.b={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.b.error=!1;this.u=this.f=this.l=this.o=this.ba=null;u.push(this)}function la(a,b,c){ma[a]&&b&&(ma[a][b]=c)}function w(){return Date.now()||+new Date}
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.Xa=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.u=this.f=this.m=this.o=this.ba=null;u.push(this)}function la(a,b,c){ma[a]&&b&&(ma[a][b]=c)}function w(){return Date.now()||+new Date}
function x(a){window&&window.alert(a)}function na(a){var b=!1;window&&(b=window.confirm(a));return b}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function oa(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
function z(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
function B(a,b){var c=C;b=D(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),p=0;p<l.length;p++)switch(h=l[p],h){case c+"-binding":(h=A(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.length}}}}
@ -42,7 +42,7 @@ function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.g
function pa(a){for(var b=!0,c=qa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=ra.indexOf(e)&&(f=function(){return function(){pa(a)}}());var g=sa[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=z(d[1],a);if(h)if(g=ta[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){x("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete qa[a];return b}k=t.prototype;
k.toString=function(){return this.name?this.name:this.id||this.type};
k.U=function(a,b,c){switch(b){case "clear":return this.i[b]||(this.i[b]=c,c.onclick=function(a){return function(){a.i.print&&(a.i.print.value="")}}(this)),!0;case "print":return this.i[b]||(this.ba=this.i[b]=c,c.value="",this.K=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.F=function(a){this.K(a,this.la)}),!0;default:return!1}};k.log=function(){};k.K=function(){};
k.status=function(a){this.K(this.la+": "+a)};k.F=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function ua(a,b){b&&(a.b.ready?b():a.ta=b);return a.b.ready}function E(a){if(!a.b.error&&(a.b.ready=!0,a.b.ready)){var b=a.ta;a.ta=null;b&&b()}}function va(a,b){a.b.Da?(a.b.ra=!1,a.b.Da=!1):a.b.error?a.K(a.toString()+" error"):a.b.ra=b}k.V=function(){return this.b.B=!0};k.P=function(a,b){b&&(this.b.B=!1);return!0};
k.status=function(a){this.K(this.la+": "+a)};k.F=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function ua(a,b){b&&(a.c.ready?b():a.ta=b);return a.c.ready}function E(a){if(!a.c.error&&(a.c.ready=!0,a.c.ready)){var b=a.ta;a.ta=null;b&&b()}}function va(a,b){a.c.Da?(a.c.ra=!1,a.c.Da=!1):a.c.error?a.K(a.toString()+" error"):a.c.ra=b}k.V=function(){return this.c.B=!0};k.P=function(a,b){b&&(this.c.B=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
var ma=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[],qa=window?window.PCjs.Commands:{},ra=["hold","sleep","wait"],sa={alert:function(a){x(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ta={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
@ -58,106 +58,105 @@ function G(){return"http://"+(window?window.location.host:"www.pcjs.org")}functi
function Ja(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ka(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)}return!1}
function La(a){if(!Ma){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Ma=c}return Ma[a]}function Na(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function I(a){J.init.push(a)}
function Oa(a){if(Pa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function K(a){!Pa&&a?(Pa=!0,Qa&&Ra("init"),Sa&&Ra("show")):Pa=a}function Ra(a){J[a]&&Oa(J[a])}var Ma=null,J={init:[],show:[],exit:[]},Qa=!1,Sa=!1,Pa=!0,Ha=null;Na("onload",function(){Qa=!0;Oa(J.init)});Na("onpageshow",function(){Sa=!0;Oa(J.show)});Na(Ka("Opera")||Ka("iOS")?"onunload":"onbeforeunload",function(){Oa(J.exit)});
var C="pdp10",L="PDPjs",Ta=Math.pow(2,18),Ua=Math.pow(2,18)-1,Va=Math.pow(2,36),M=Math.pow(2,18),Wa=Math.pow(2,35)-1,Xa=Math.pow(2,23),C="pdp10",L="PDPjs";
function Ya(a,b){t.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.c=this.w=this.g=this.h=0;this.G=this.I=-1;this.L=this.M=this.s=!1;this.O=Za;this.j={};this.a={START:[1,1,!0,!1,this.ib],STEP:[1,1,!1,!1,this.jb],ENABLE:[1,1,!1,!1,this.cb],CONT:[1,1,!0,!1,this.ab],DEP:[0,0,!0,!1,this.bb],EXAM:[1,1,!0,!1,this.eb],LOAD:[1,1,!0,!1,this.gb],TEST:[0,0,!0,!1,this.fb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.hb,a];this.u=this.f=this.l=this.o=null;this.exports={hold:this.$a,toggle:this.sb,reset:this.ob,
set:this.rb};E(this)}n(Ya,t);k=Ya.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
k.U=function(a,b,c,d){if(this.o&&this.o.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){$a(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){O(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){$a(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){O(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.u=d;ab(this);bb(this)};k.V=function(a,b){if(!b)if(this.R&&cb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.c,this.h,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])db(this,this.c=a[0]),N(this,this.h=a[1]),eb(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}bb(this);return!0};function fb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ab(a,b){for(var c in a.j)fb(a,c,null!=b?b:a.j[c])}function gb(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function bb(a){for(var b in a.a)gb(a,b,a.a[b][1])}
k.$a=function(a,b,c){if($a(this,b)){if(c){var d=this;setTimeout(function(){O(d,b);a&&a()},+c);return!1}O(this,b)}return!0};
var C="pdp10",L="PDPjs",Ta=Math.pow(2,18),Ua=Math.pow(2,18)-1,Va=Math.pow(2,36),M=Math.pow(2,18),Wa=Math.pow(2,17)-1,Xa=Math.pow(2,35)-1,Ya=Math.pow(2,23),C="pdp10",L="PDPjs";
function Za(a,b){t.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.b=this.w=this.g=this.h=0;this.G=this.I=-1;this.L=this.M=this.s=!1;this.O=$a;this.j={};this.a={START:[1,1,!0,!1,this.ib],STEP:[1,1,!1,!1,this.jb],ENABLE:[1,1,!1,!1,this.cb],CONT:[1,1,!0,!1,this.ab],DEP:[0,0,!0,!1,this.bb],EXAM:[1,1,!0,!1,this.eb],LOAD:[1,1,!0,!1,this.gb],TEST:[0,0,!0,!1,this.fb]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.hb,a];this.u=this.f=this.m=this.o=null;this.exports={hold:this.$a,toggle:this.sb,reset:this.ob,
set:this.rb};E(this)}n(Za,t);k=Za.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
k.U=function(a,b,c,d){if(this.o&&this.o.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ab(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){ab(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.o=a;this.m=b;this.f=c;this.u=d;cb(this);db(this)};k.V=function(a,b){if(!b)if(this.R&&eb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,[this.b,this.h,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])fb(this,this.b=a[0]),N(this,this.h=a[1]),gb(this,a[2]);return!0};k.ob=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}db(this);return!0};function hb(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cb(a,b){for(var c in a.j)hb(a,c,null!=b?b:a.j[c])}function ib(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function db(a){for(var b in a.a)ib(a,b,a.a[b][1])}
k.$a=function(a,b,c){if(ab(this,b)){if(c){var d=this;setTimeout(function(){bb(d,b);a&&a()},+c);return!1}bb(this,b)}return!0};
k.rb=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return eb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,gb(this,a,c[1]),!0):!1};k.sb=function(a){return $a(this,a)?(O(this,a),!0):!1};function $a(a,b){var c=a.a[b];return c?(gb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=hb&&(a.L=b==ib,a.M=b==jb),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(gb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.ib=function(a){a||this.f.b.A||(this.f.h=this.c%Ta,this.a[kb]&&this.a[kb][1]&&lb(this.f))};k.jb=function(){};k.cb=function(a){a||Q(this.f)};k.ab=function(a){if(!a&&!this.f.b.A)if(this.a[kb]&&this.a[kb][1])lb(this.f);else{a=this.u;var b;if(b=a)a.b.ra&&(a.b.Da=!0),b=!a.b.ra;if(b)va(a,!0),a.c(0,null),va(a,!1);else try{var c=this.f.wa(1);0<c&&(mb(this.f,c),nb(this.f,c,!0),ob(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.b.error=!0,c.F(a))}this.stop();this.o&&R(this.o)}};
k.bb=function(a){a&&!this.f.b.A&&(this.L&&pb(this),a=N(this,this.h=this.g),this.O==Za?qb(this.l,this.c,a):this.f.v(this.c,a))};k.eb=function(a){if(!a&&!this.f.b.A){this.M&&pb(this);if(this.O==Za){a=this.l;var b=this.c,c=a.a[(b&a.g)>>>a.c];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.m(this.c);N(this,this.h=a)}};k.gb=function(a){a||this.f.b.A||db(this,this.g)};k.fb=function(a){a?(this.s=!0,ab(this,!0)):(this.s=!1,ab(this),eb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
function pb(a){var b=1,c=a.l.g;a.a[hb]&&a.a[hb][1]||(b=-b);db(a,a.c&~c|a.c+b&c)}function db(a,b){a.c=b&a.l.g;if(a.G!==a.c){a.G=a.c;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||fb(d,e,f)}}}function N(a,b){a.w=b%Va;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||fb(d,e,f)}}return a.w}function eb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;bb(a);return!0}k.stop=function(){db(this,this.f.h)};
function cb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=oa(d.id);e||(e=new Ya(d,!0));B(e,c)}}var Za=7,ib="DEP",kb="ENABLE",jb="EXAM",hb="STEP";I(cb);function rb(a,b,c){t.call(this,"Bus",a);this.f=b;this.u=c;this.w=+a.busWidth||18;this.s=1<<this.w;this.g=this.s-1;this.c=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new S(this);sb(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}n(rb,t);k=rb.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,tb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function ub(a,b,c,d){for(var e=b,f=c,g=e>>>a.c;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return vb(wb,e,f)}e=new S(a,e,p,16384,d);sb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+xb[d]+" at "+xa(b)),!0):vb(yb,b,c)}function qb(a,b,c){var d=a.a[(b&a.g)>>>a.c];a.h++;d.l(c,b&16383,b);a.h--}
function tb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function vb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var wb=1,yb=2;function zb(a){t.call(this,"Device",a)}n(zb,t);k=zb.prototype;k.Z=function(a,b,c,d){this.l=b;this.o=a;this.f=c;this.u=d;E(this)};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new zb(c),B(c,d)}}});
function S(a,b,c,d,e){this.u=a;this.id=Ab+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Bb;this.c=e==Cb;this.m=this.o=this.Fa;this.v=this.l=this.Ha;this.f=this.i=0;sb(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Db(this,Eb)}else Db(this)}k=S.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Db(a,b){b||(b=Fb);Gb(a,b,void 0);Hb(a,b,void 0)}
function Gb(a,b,c){c&&a.f||(a.m=b[0]||a.Fa);if(c||void 0===c)a.o=b[0]||a.Fa}function Hb(a,b,c){c&&a.i||(a.v=!a.c&&b[1]||a.Ha);if(c||void 0===c)a.l=b[1]||a.Ha}function sb(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Gb(a,Ib,!1),(a.i=b.i)&&Hb(a,Ib,!1))}k.Fa=function(){var a=this.u;a.h||Q(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.o(a,b)};k.ub=function(a,b,c){this.c||this.l(a,b,c)};
var Bb=0,Cb=2,xb=["NONE","RAM","ROM"],Ab=0,Fb=[],Eb=[S.prototype.mb,S.prototype.vb],Ib=[S.prototype.kb,S.prototype.ub];
function Jb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.b.A=this.b.Ga=!1;this.b.J=a.autoStart;"string"==typeof this.b.J&&(this.b.J="true"==this.b.J);this.b.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.s=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
null;E(this)}n(Jb,t);k=Jb.prototype;k.Z=function(a,b,c,d){this.o=a;this.l=b;this.u=d;this.ka=a.g;for(a=0;a<Kb.length;a++)(b=this.i[Kb[a]])&&this.o.U(null,Kb[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=T(this.o,"autoStart");null!=c?this.b.J="true"==c?!0:"false"==c?!1:!!c:null==this.b.J&&(this.b.J=void 0===this.i.run);if(!b){if(a){Lb(this);if(!this.restore(a))return!1;Mb(this)}else this.reset();this.status("No debugger detected");this.b.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.b.A?!0:this.b.J?(lb(this),!0):!1};k.Pa=function(){return 0};
function Mb(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.b.sa=0<=a.oa&&0<a.da;a.b.sa&&(a.na=0,a.R=a.oa-a.I)}function ob(a,b){if(a.b.sa){var c=!1;a.na=a.na+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Nb(a)&&(a.da=a.ea=-1,Mb(a),Q(a),c=!0);c&&a.K(Nb(a)+" cycles: checksum="+F(a.na))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.b.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.b.A?Q(d):lb(d))},!0;case "speed":return this.i[b]=
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Ob(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function nb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Pb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Qb);a.fa=Math.floor(a.Ba/Qb*c);b||(a.X=a.fa);a.pa=0}function Nb(a){return a.I+a.s+a.D-a.G}function Lb(a){a.L=0;a.Ca=0;a.I=a.s=a.D=a.G=0;Mb(a);Ob(a,1)}
function Ob(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}nb(a,a.s);a.s=0;a.j=w();a.C=0;Pb(a)}function Rb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
function mb(a,b){for(var c=a.w.length-1;0<=c;c--){var d=a.w[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Sb(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
k.pb=function(){if(this.b.A){this.pa>=this.Ba&&Pb(this,!0);this.ca=0;this.ja=w();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.b.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Sb(this,!0);this.ca+=b;this.s+=b;ob(this,b);mb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Tb&&(this.o&&R(this.o,void 0),this.Ca=0);break}}while(this.b.A)}catch(f){Q(this);
this.o&&this.o.stop(w(),Nb(this));a=f.stack||f.message;this.b.error=!0;this.F(a);return}if(this.b.A){a=setTimeout;b=this.Na;this.C=w();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.s/(10*d))/100,864E5<=d&&(this.I=0,Ob(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
function lb(a){var b;a.b.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.A)a.K(a.toString()+" busy");else{Ob(a);a.b.A=!0;a.b.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Nb(a));a.u||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function Q(a){var b=!1;if(a.b.A){Sb(a);nb(a,a.s);a.s=0;a.b.A=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(w(),Nb(a));b=!0;a.u||a.status("Stopped")}a.b.complete=void 0;return b}var Qb=30,Tb=15,Kb=["power","reset"];
function Ub(a){var b=+a.model||1001;Jb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Vb.bind(this);this.a=U.bind(this);this.ha=null;this.Ka=[];this.b.complete=!1}n(Ub,Jb);k=Ub.prototype;k.reset=function(){this.status("Model "+this.Va);this.b.A&&Q(this);this.c=this.M=this.qa=0;this.ia=this.h=this.ya=this.La;this.g=0;this.m=this.lb;this.v=this.wb;this.ha=null;Lb(this);this.b.error=!1;Jb.prototype.reset.call(this)};k.Pa=function(){return 0};
k.save=function(){var a=new P(this);a.set(0,[this.c,this.M,this.qa,this.h,this.ya,this.ia,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.b.J]);a.set(3,Wb(this));a.set(4,Rb(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.c=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.h=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Ob(this,b[1]);this.b.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
a[b];return!0};function Wb(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.l;a=this.ia=a;return b.a[(a&b.g)>>>b.c].m(a&16383,a)};k.wb=function(a,b){var c=this.l;a=this.ia=a;c.a[(a&c.g)>>>c.c].v(b,a&16383,a)};
k.wa=function(a){this.b.complete=!0;var b=a?this.b.Ga?0:1:-1;this.b.Ga=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ha||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.u.h(this.h,b)){Q(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.m(this.c)&8388607:(this.qa=this.m(this.ya=this.h))&8388607;this.c=this.M&262143;if(a=this.M>>18&15)this.c=this.c+this.m(a)&Ua;this.M&4194304?a=-1:(this.h=(this.h+1)%Ta,a=this.qa/Xa|0);0<=a&&this.Wa(a)}while(0<
this.G);return this.b.complete?this.D-this.G:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ub(d);B(d,c)}});function Vb(a){Xb[a>>4].call(this,a)}function V(a){this.a(a)}function Yb(a){this.a(a)}function Zb(a){this.a(a)}function $b(a){var b=a&15,c=this.m(this.c),d=this.m(b);this.v(b,W(a,d,c)+(c-(c&262143)))}function ac(a){var b=a&15,c=this.m(b);this.v(b,W(a,c,0))}
function bc(a){var b=this.m(a&15),c=this.m(this.c);this.v(this.c,W(a,c,b)+(b-(b&262143)))}function cc(a){var b=this.m(this.c);this.v(this.c,dc(a,b,b));var c=a&15;c&&(b=this.m(c),this.v(c,dc(a,b,b)))}function ec(a){var b=a&15,c=(this.m(this.c)&262143)*M,d=this.m(b);this.v(b,W(a,d,c)+c)}function fc(a){var b=a&15,c=this.c*M,d=this.m(b);this.v(b,W(a,d,c)+c)}function gc(a){var b=(this.m(a&15)&262143)*M,c=this.m(this.c);this.v(this.c,W(a,c,b)+b)}
function hc(a){var b=this.m(this.c),c=(b&262143)*M;this.v(this.c,W(a,b,c)+c);var d=a&15;d&&(b=this.m(d),c=(b&262143)*M,this.v(d,W(a,b,c)+c))}function ic(a){a&=15;var b=this.m(this.c)&262143,c=this.m(a);this.v(a,c-(c&262143)+b)}function X(a){this.a(a)}function U(a){this.K("undefined opcode: "+xa(a));this.h=(this.h+-1)%Ta;Q(this)}function W(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Wa?262143:0}return b}
function dc(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Wa?262143:0}return b}
var Xb=[V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return gb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,ib(this,a,c[1]),!0):!1};k.sb=function(a){return ab(this,a)?(bb(this,a),!0):!1};function ab(a,b){var c=a.a[b];return c?(ib(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=jb&&(a.L=b==kb,a.M=b==lb),!0):!1}function bb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(ib(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
k.ib=function(a){a||this.f.c.A||(this.f.h=this.b%Ta,this.a[mb]&&this.a[mb][1]&&nb(this.f))};k.jb=function(){};k.cb=function(a){a||P(this.f)};k.ab=function(a){if(!a&&!this.f.c.A)if(this.a[mb]&&this.a[mb][1])nb(this.f);else{a=this.u;var b;if(b=a)a.c.ra&&(a.c.Da=!0),b=!a.c.ra;if(b)va(a,!0),a.b(0,null),va(a,!1);else try{var c=this.f.wa(1);0<c&&(ob(this.f,c),pb(this.f,c,!0),qb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.c.error=!0,c.F(a))}this.stop();this.o&&Q(this.o)}};
k.bb=function(a){a&&!this.f.c.A&&(this.L&&rb(this),a=N(this,this.h=this.g),this.O==$a?sb(this.m,this.b,a):this.f.v(this.b,a))};k.eb=function(a){if(!a&&!this.f.c.A){this.M&&rb(this);if(this.O==$a){a=this.m;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.h++;b=c.m(b&16383,b);a.h--;a=b}else a=this.f.l(this.b);N(this,this.h=a)}};k.gb=function(a){a||this.f.c.A||fb(this,this.g)};k.fb=function(a){a?(this.s=!0,cb(this,!0)):(this.s=!1,cb(this),gb(this,0))};k.hb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
function rb(a){var b=1,c=a.m.g;a.a[jb]&&a.a[jb][1]||(b=-b);fb(a,a.b&~c|a.b+b&c)}function fb(a,b){a.b=b&a.m.g;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||hb(d,e,f)}}}function N(a,b){a.w=b%Va;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||hb(d,e,f)}}return a.w}function gb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;db(a);return!0}k.stop=function(){fb(this,this.f.h)};
function eb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=oa(d.id);e||(e=new Za(d,!0));B(e,c)}}var $a=7,kb="DEP",mb="ENABLE",lb="EXAM",jb="STEP";I(eb);function tb(a,b,c){t.call(this,"Bus",a);this.f=b;this.u=c;this.w=+a.busWidth||18;this.s=1<<this.w;this.g=this.s-1;this.b=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new R(this);ub(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}n(tb,t);k=tb.prototype;k.reset=function(){};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,vb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function wb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return xb(yb,e,f)}e=new R(a,e,p,16384,d);ub(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+zb[d]+" at "+xa(b)),!0):xb(Ab,b,c)}function sb(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.b(c,b&16383,b);a.h--}
function vb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.Ea||e.Za){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function xb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var yb=1,Ab=2;function Bb(a){t.call(this,"Device",a)}n(Bb,t);k=Bb.prototype;k.Z=function(a,b,c,d){this.m=b;this.o=a;this.f=c;this.u=d;E(this)};
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new O(this)).data()};k.restore=function(){return!0};I(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new Bb(c),B(c,d)}}});
function R(a,b,c,d,e){this.u=a;this.id=Cb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Db;this.o=e==Eb;this.l=this.m=this.Fa;this.v=this.b=this.Ha;this.f=this.i=0;ub(this);this.Ea=this.Za=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Fb(this,Gb)}else Fb(this)}k=R.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Fb(a,b){b||(b=Hb);Ib(a,b,void 0);Jb(a,b,void 0)}
function Ib(a,b,c){c&&a.f||(a.l=b[0]||a.Fa);if(c||void 0===c)a.m=b[0]||a.Fa}function Jb(a,b,c){c&&a.i||(a.v=!a.o&&b[1]||a.Ha);if(c||void 0===c)a.b=b[1]||a.Ha}function ub(a,b){a.f=a.i=0;b&&((a.f=b.f)&&Ib(a,Kb,!1),(a.i=b.i)&&Jb(a,Kb,!1))}k.Fa=function(){var a=this.u;a.h||P(a.f);return-1};k.Ha=function(){};k.mb=function(a){return this.a[a]};k.vb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.kb=function(a,b){return this.m(a,b)};k.ub=function(a,b,c){this.o||this.b(a,b,c)};
var Db=0,Eb=2,zb=["NONE","RAM","ROM"],Cb=0,Hb=[],Gb=[R.prototype.mb,R.prototype.vb],Kb=[R.prototype.kb,R.prototype.ub];
function Lb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.c.A=this.c.Ga=!1;this.c.J=a.autoStart;"string"==typeof this.c.J&&(this.c.J="true"==this.c.J);this.c.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.w=[];this.Na=this.pb.bind(this);this.I=this.s=this.D=this.G=this.j=this.ja=this.C=this.ca=this.Ca=this.L=0;this.ka=
null;E(this)}n(Lb,t);k=Lb.prototype;k.Z=function(a,b,c,d){this.o=a;this.m=b;this.u=d;this.ka=a.g;for(a=0;a<Mb.length;a++)(b=this.i[Mb[a]])&&this.o.U(null,Mb[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=S(this.o,"autoStart");null!=c?this.c.J="true"==c?!0:"false"==c?!1:!!c:null==this.c.J&&(this.c.J=void 0===this.i.run);if(!b){if(a){Nb(this);if(!this.restore(a))return!1;Ob(this)}else this.reset();this.status("No debugger detected");this.c.J||this.K("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.c.A?!0:this.c.J?(nb(this),!0):!1};k.Pa=function(){return 0};
function Ob(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.c.sa=0<=a.oa&&0<a.da;a.c.sa&&(a.na=0,a.R=a.oa-a.I)}function qb(a,b){if(a.c.sa){var c=!1;a.na=a.na+a.Pa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Pb(a)&&(a.da=a.ea=-1,Ob(a),P(a),c=!0);c&&a.K(Pb(a)+" cycles: checksum="+F(a.na))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.o)if(a=d.o,a.c.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.c.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.c.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.c.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.c.A?P(d):nb(d))},!0;case "speed":return this.i[b]=
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Qb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function pb(a,b,c){a.I+=b;c&&(a.D=a.G=0)}function Rb(a,b){var c=1;b&&1<a.W&&a.L&&(c=a.L/a.za);a.Aa=Math.round(1E3/Sb);a.fa=Math.floor(a.Ba/Sb*c);b||(a.X=a.fa);a.pa=0}function Pb(a){return a.I+a.s+a.D-a.G}function Nb(a){a.L=0;a.Ca=0;a.I=a.s=a.D=a.G=0;Ob(a);Qb(a,1)}
function Qb(a,b,c){if(void 0!==b){.8>a.L/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.K("target speed: "+b)}c&&a.o&&(c=a.o,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}pb(a,a.s);a.s=0;a.j=w();a.C=0;Rb(a)}function Tb(a){for(var b=[],c=0;c<a.w.length;c++)b.push(a.w[c][0]);return b}
function ob(a,b){for(var c=a.w.length-1;0<=c;c--){var d=a.w[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Ub(a,b){var c=a.D-=a.G;a.G=0;b&&(a.D=0);return c}
k.pb=function(){if(this.c.A){this.pa>=this.Ba&&Rb(this,!0);this.ca=0;this.ja=w();if(this.C){var a=this.ja-this.C;a>this.Aa&&(this.j+=a,this.j>this.ja&&(this.j=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Ub(this,!0);this.ca+=b;this.s+=b;qb(this,b);ob(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Vb&&(this.o&&Q(this.o,void 0),this.Ca=0);break}}while(this.c.A)}catch(f){P(this);
this.o&&this.o.stop(w(),Pb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Na;this.C=w();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.C-this.ja;if(d=this.C-this.j)this.L=Math.round(this.s/(10*d))/100,864E5<=d&&(this.I=0,Qb(this));if(0>c||this.L<this.O)-1E3>c&&(this.j-=c),c=0;this.pa+=this.ca;this.C+=c;a(b,c)}}};
function nb(a){var b;a.c.error?(a.K(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.K(a.toString()+" busy");else{Qb(a);a.c.A=!0;a.c.Ga=!0;if(b=a.i.run)b.textContent="Halt";a.o&&a.o.start(a.j,Pb(a));a.u||a.status("Started");setTimeout(a.Na,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Ub(a);pb(a,a.s);a.s=0;a.c.A=!1;if(b=a.i.run)b.textContent="Run";a.o&&a.o.stop(w(),Pb(a));b=!0;a.u||a.status("Stopped")}a.c.complete=void 0;return b}var Sb=30,Vb=15,Mb=["power","reset"];
function Wb(a){var b=+a.model||1001;Lb.call(this,a,1E6);this.Va=b;this.La=+a.addrReset||0;this.Wa=Xb.bind(this);this.a=T.bind(this);this.ha=null;this.Ka=[];this.c.complete=!1}n(Wb,Lb);k=Wb.prototype;k.reset=function(){this.status("Model "+this.Va);this.c.A&&P(this);this.b=this.M=this.qa=0;this.ia=this.h=this.ya=this.La;this.g=0;this.l=this.lb;this.v=this.wb;this.ha=null;Nb(this);this.c.error=!1;Lb.prototype.reset.call(this)};k.Pa=function(){return 0};
k.save=function(){var a=new O(this);a.set(0,[this.b,this.M,this.qa,this.h,this.ya,this.ia,this.g]);a.set(1,[]);a.set(2,[this.I,this.W,this.c.J]);a.set(3,Yb(this));a.set(4,Tb(this));return a.data()};
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.b=b.next().value;this.M=b.next().value;this.qa=b.next().value;this.h=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.g=b.next().value;b=a[2];this.I=b[0];Qb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.tb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.w.length&&b<a.length;b++)this.w[b][0]=
a[b];return!0};function Yb(a){var b=[];for(a=a.ha;a;)b.push(a.tb),a=a.next;return b}k.lb=function(a){var b=this.m;a=this.ia=a;return b.a[(a&b.g)>>>b.b].l(a&16383,a)};k.wb=function(a,b){var c=this.m;a=this.ia=a;c.a[(a&c.g)>>>c.b].v(b,a&16383,a)};
k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ga?0:1:-1;this.c.Ga=!1;this.D=this.G=a;this.g=this.g&-5|0;do{if(a=this.g)if(a=this.g&11)this.g&2?this.ha||(this.g&=-3):this.g&1&&this.g++,a=!1;if(a){if(this.g&4&&this.u.h(this.h,b)){P(this);break}if(0>b)break}this.g&=15;this.M=this.M&4194304?this.l(this.b)&8388607:(this.qa=this.l(this.ya=this.h))&8388607;this.b=this.M&262143;if(a=this.M>>18&15)this.b=this.b+this.l(a)&Ua;this.M&4194304?a=-1:(this.h=(this.h+1)%Ta,a=this.qa/Ya|0);0<=a&&this.Wa(a)}while(0<
this.G);return this.c.complete?this.D-this.G:!1===this.c.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Wb(d);B(d,c)}});function Xb(a){Zb[a>>4].call(this,a)}function U(a){this.a(a)}function $b(a){this.a(a)}function ac(a){this.a(a)}function bc(a){var b=a&15,c=this.l(this.b),d=this.l(b);this.v(b,V(a,d,c)+(c-(c&262143)))}function cc(a){var b=a&15,c=this.l(b);this.v(b,V(a,c,0))}
function dc(a){var b=this.l(a&15),c=this.l(this.b);this.v(this.b,V(a,c,b)+(b-(b&262143)))}function ec(a){var b=this.l(this.b);this.v(this.b,fc(a,b,b));var c=a&15;c&&(b=this.l(c),this.v(c,fc(a,b,b)))}function gc(a){var b=a&15,c=(this.l(this.b)&262143)*M,d=this.l(b);this.v(b,V(a,d,c)+c)}function hc(a){var b=a&15,c=this.b*M,d=this.l(b);this.v(b,V(a,d,c)+c)}function ic(a){var b=(this.l(a&15)&262143)*M,c=this.l(this.b);this.v(this.b,V(a,c,b)+b)}
function jc(a){var b=this.l(this.b),c=(b&262143)*M;this.v(this.b,V(a,b,c)+c);var d=a&15;d&&(b=this.l(d),c=(b&262143)*M,this.v(d,V(a,b,c)+c))}function kc(a){var b=a&15,c=this.l(this.b)&262143,d=this.l(b);this.v(b,W(a,d,c)+c)}function lc(a){var b=a&15,c=this.l(b);this.v(b,W(a,c,this.b)+this.b)}function mc(a){var b=this.l(a&15)&262143,c=this.l(this.b);this.v(this.b,W(a,c,b)+b)}function nc(a){var b=this.l(this.b);this.v(this.b,oc(a,b,b));var c=a&15;c&&(b=this.l(c),this.v(c,oc(a,b,b)))}
function pc(a){var b=a&15,c=this.l(this.b)/M|0,d=this.l(b);this.v(b,W(a,d,c)+c)}function qc(a){var b=a&15,c=this.l(b);this.v(b,W(a,c,0))}function rc(a){var b=this.l(a&15)/M|0,c=this.l(this.b);this.v(this.b,W(a,c,b)+b)}function sc(a){var b=this.l(this.b),c=b/M|0;this.v(this.b,W(a,b,c)+c);var d=a&15;d&&(b=this.l(d),c=b/M|0,this.v(d,W(a,b,c)+c))}function X(a){this.a(a)}function T(a){this.K("undefined opcode: "+xa(a));this.h=(this.h+-1)%Ta;P(this)}
function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*M;break;case 384:b=c>Wa?262143*M:0}return b}function oc(a,b,c){if(a&=384)switch(b&=262143,a){case 256:b+=262143*M;break;case 384:b+=c>Wa?262143*M:0}return b}function V(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Xa?262143:0}return b}function fc(a,b,c){if(a&=384)switch(b-=b&262143,a){case 256:b+=262143;break;case 384:b+=c>Xa?262143:0}return b}
var Zb=[U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Yb,Zb,Zb,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},Yb,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},U,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},U,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},$b,ac,ac,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},$b,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},$b,ac,bc,cc,ec,fc,gc,hc,$b,ac,bc,cc,ec,fc,gc,hc,$b,ac,bc,cc,ec,fc,gc,hc,$b,ac,bc,cc,ec,fc,gc,hc,ic,function(a){a&=15;var b=this.m(a),b=b-(b&262143)+this.c;this.v(a,b)},function(a){a=
this.m(a&15)&262143;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){a&15&&ic.call(this,a)},function(a){a&=15;var b=this.m(this.c)/M|0,c=this.m(a);this.v(a,c-(c&262143)+b)},function(a){a&=15;var b=this.m(a);this.v(a,b-(b&262143))},function(a){a=this.m(a&15)/M|0;var b=this.m(this.c);this.v(this.c,b-(b&262143)+a)},function(a){var b=this.m(this.c);this.v(this.c,(b&262143)+(b/M|0));if(a&=15)b=this.m(a),this.v(a,(b&262143)+(b/M|0))},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},bc,cc,dc,ec,gc,hc,ic,jc,bc,cc,dc,ec,gc,hc,ic,jc,bc,cc,dc,ec,gc,hc,ic,jc,bc,cc,dc,ec,gc,hc,ic,jc,kc,lc,mc,nc,pc,qc,rc,sc,kc,lc,mc,nc,pc,qc,rc,sc,kc,lc,mc,nc,pc,qc,rc,sc,kc,lc,mc,nc,
pc,qc,rc,sc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
function jc(a){t.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.c=a.alias;"string"==typeof this.c&&(this.c=eval(this.c));this.h=a.file;this.s=ya(this.h);if(this.h){a=this.h;var b=za(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.a=a.H,c.N=a.N):c.h=null);kc(c)})}}n(jc,t);
jc.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;kc(this)};jc.prototype.V=function(){this.N&&(this.u&&this.u.a(this.id,this.j,this.g,this.N),delete this.N);return!0};jc.prototype.P=function(){return!0};
function kc(a){if(!ua(a)){if(a.h){if(!a.a||!a.l)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.F(b)}else{b=a.j;if(ub(a.l,b,a.g,Cb)){var c;for(c=0;c<a.a.length;c++)qb(a.l,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.c?b.push(a.c):null!=a.c&&a.c.length&&(b=a.c);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,g=d.g,h=[],l=d.j>>>f.c;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.l;
d=d.g;g=0;for(e>>>=f.c;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new jc(d);B(d,c)}});
function Y(a){t.call(this,"RAM",a);this.N=this.Y=null;this.c=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.s=!1;this.a=a.file;this.j=ya(this.a);if(this.a){a=this.a;var b=za(this.j);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.Y=a.Y,c.N=a.N,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);lc(c)})}}n(Y,t);Y.prototype.Z=function(a,b,c,d){this.l=b;this.f=c;this.u=d;lc(this)};Y.prototype.V=function(a,b){this.N&&(this.u&&this.u.a(this.id,this.c,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
function lc(a){if(a.l&&(!a.h&&a.g&&(ub(a.l,a.c,a.g,1)?a.h=!0:a.g=0),!ua(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;mc(a,a.Y,a.T,a.S,a.c)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.s=!0;E(a)}}
Y.prototype.reset=function(){if(this.h&&!this.s){for(var a=this.l,b=this.c,c=this.g,d=b&16383,b=b>>>a.c;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ka&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.l(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&mc(this,this.Y,this.T,this.S,this.c,!this.u)}this.s=!1};
function mc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)qb(a.l,c+g,b[g]);g=!0}g&&(null==d&&(Q(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Ta,f?a.b.B?a.b.A||lb(a):a.b.J=!0:a.u&&a.b.B?Q(a)||a.o.b.reset||(a.u.g(),R(a.o,-1)):!1===f&&Q(a),!a.b.A&&a.ka&&a.ka.stop()));return g}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
function nc(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.c=[];var b=a.binding;if("console"!=b){var c;a=oc;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(nc,t);k=nc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case oc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.o=a;this.l=b;this.f=c;this.u=d;E(this)};
k.Qa=function(a){if(!this.a){var b=T(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.la)return;c=Da(c[1]);if(this.a=oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.c.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.c.push(b)}else this.c=this.c.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var oc="buffer";
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new nc(d);B(d,c)}});
function pc(a,b,c){t.call(this,"Computer",a);this.b.B=!1;this.M=null;qc(this,b);this.I=T(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.s=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=T(this,"url")||"";(Math.random()+.1).toString(36);this.c=rc(this);if(this.f=z("CPU",this.id)){this.u=z("Debugger",this.id);this.l=new rb({id:this.ma+".bus",busWidth:this.W},this.f,this.u);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.l,this.f,this.u);b=null;d=T(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=T(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=sc),this.a&&(this.w=new P(this,"1.34.0"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
(b=tc(this))&&(this.C=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.s=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.D=b,g.R=!0);E(g)})}else E(this);this.i.power||(this.I=!0);!c&&this.I&&uc(this,this.ga)}else x("Unable to find CPU component")}n(pc,t);function qc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
function T(a,b,c,d){var e=b.toLowerCase(),e=La(b)||La(e);void 0===e&&a.M&&(e=a.M[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function uc(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){uc(a,b,c)});return}}b.call(a,c)}
function vc(a,b){var c=new P(a,"1.34.0",wc);if(Z(c)&&xc(c)){var d=c.get(yc),e=b?b.get(yc):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=pc.prototype;
k.ga=function(a){void 0===a&&(a=this.a||(this.D?zc:sc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new P(this,"1.34.0");if(a==Ac)b=!0;else if(a>sc){if(Z(d,this.D)){this.j=new P(this,"1.34.0",Bc);Z(this.j)&&(Cc(this,d),a=Dc,Ec(this.j));this.j.set(yc,Ea());Fc(this.j);var e=this.a&&!this.C;if(a==zc||na("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=xc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(Ja(Gc,""),this.c=null)):this.K(f+": "+g),Ec(d),Z(d)?(c=xc(d),e=!0):c=!1))}e&&vc(this,c?d:null)}else a==Dc&&d.clear()}else vc(this);delete this.D;delete this.w}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Hc(this,g,d,b,c));b=[d,a,c];a!=Ac?uc(this,this.Oa,b):this.Oa(b)}};
function Hc(a,b,c,d,e){if(!b.b.B){b.b.B=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=sc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.b.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Hc(this,this.f,b,c,a),R(this,-2),this.f.J());this.L&&(Cc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
function Cc(a,b){if(na("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.c||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
function Ic(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",wc),h=Ea();g.set(yc,h);f.set(yc,h);f.set(Jc,"1.34.0");f.set(Kc,window?window.location.href:null);f.set(Lc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.b.J=a.f.b.A),Q(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.b.B=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var p=h[l];p.b.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.b.B=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.c&&Mc(a,a.c,f.toString()),Fc(g)&&Fc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Nc),d&&f.clear(h)):e=f.toString());c&&(a.b.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.l&&this.l.reset&&this.l.reset();this.f&&this.f.reset&&this.f.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c!==this.f&&c.reset&&c.reset()}this.b.reset=!1;R(this,-1)};
k.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)}R(this,-1)};k.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)}R(this,-1)};
function R(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.b.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.b.A;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.u&&a.u.j||8,e=e||0,e=8==f?xa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.c=a.f.h:0<b&&c&&!d&&(a.c=a.f.ia);db(a,a.c);N(a,a.h)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.b.B?Ic(d,!1,!0):uc(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.b.B&&!d.h)if(d.a&&!d.s){var a=na("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ic(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(sc)}else d.reset(),d.f&&!d.u&&d.f.J()},!0;case "save":if(Aa())c.parentNode.removeChild(c);else return this.i[b]=
c,c.onclick=function(){var a=rc(d,!0);if(a){var b=!!(d.a&&!d.s||d.G),c=Ic(d,b);b?Mc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function rc(a,b){var c=a.c;c||((c=Ia(Gc),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Oc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function Oc(a,b){a.c=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ja(Gc,b.data),a.c=b.data)}catch(d){x(d.message+" ("+c+")")}return a.c}function tc(a){var b=null;a.c&&(b=G()+"/api/v1/user?req=load&user="+a.c+"&state="+Pc(a,"1.34.0"));return b}
function Mc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Pc(a,"1.34.0");d.data=c;b=H(G()+"/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.F("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.F(c),Ja(Gc,""),a.c=null)}}
var Bc="failsafe",wc="validate",yc="timestamp",Jc="version",Kc="url",Lc="browser",Gc="user",Ac=-1,sc=0,zc=1,Dc=2,Nc=3;I(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new pc(g,d,!0);B(g,f);g.I&&uc(g,g.ga)}});J.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.O&&!c.b.B&&c.ga(Ac)}});
J.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.b.B&&Ic(c,!(!c.a||c.s),!0)}});function P(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.l=!1;this.key=Pc(a,b,c);Ec(this,a.Xa)}k=P.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.l=!1,!0):a.i?!0:Ga()&&(b=Ia(a.key))?(a.f=b,a.i=!0):!1}
function xc(a){var b=!0;if(!a.l)try{a.a=JSON.parse(a.f),a.l=!0}catch(c){x(c.message||c),b=!1}return b}function Fc(a){var b=!0;if(Ga()){var c=JSON.stringify(a.a);Ja(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Ec(a,b){a.f="";a.a={};a.i=a.l=!1;b&&a.set("parms",b)}
k.clear=function(a){Ec(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 Pc(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}var Qc=0;
function Rc(a,b,c,d,e,f,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):Sc(l,a,b,c,d,e,f,g)})}
function Sc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(la(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Tc(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function Tc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");H(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Tc(a,b,c)}})}else c(a,null)}
function Uc(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&D(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=Ba(a))}function g(a){f("Error: "+a);p&&(--Qc||K(!0));p=!1}var h,l,p=!0;Qc++;ma[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ja=document.createElement("style");ja.type="text/css";ja.styleSheet?ja.styleSheet.cssText=r:ja.appendChild(document.createTextNode(r));v.appendChild(ja)}d||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.0/components.xsl");r=function(e,l){l?Rc(d,null,a,null,!1,f,function(a,e){e?(la(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--Qc||K(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Qc||
K(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Rc(c,b,a,e,!0,f,r):Sc(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(Vc){g(Vc.message)}return p}window.embedPDP10=function(a,b,c,d){K(!1);return Uc("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){K(!1);return Uc("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
function tc(a){t.call(this,"ROM",a);this.N=this.a=null;this.j=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.s=ya(this.h);if(this.h){a=this.h;var b=za(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.a=a.H,c.N=a.N):c.h=null);uc(c)})}}n(tc,t);
tc.prototype.Z=function(a,b,c,d){this.m=b;this.f=c;this.u=d;uc(this)};tc.prototype.V=function(){this.N&&(this.u&&this.u.a(this.id,this.j,this.g,this.N),delete this.N);return!0};tc.prototype.P=function(){return!0};
function uc(a){if(!ua(a)){if(a.h){if(!a.a||!a.m)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.c.error=!0;a.F(b)}else{b=a.j;if(wb(a.m,b,a.g,Eb)){var c;for(c=0;c<a.a.length;c++)sb(a.m,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.m,g=d.g,h=[],l=d.j>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.m;
d=d.g;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new tc(d);B(d,c)}});
function Y(a){t.call(this,"RAM",a);this.N=this.Y=null;this.b=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.s=!1;this.a=a.file;this.j=ya(this.a);if(this.a){a=this.a;var b=za(this.j);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(la(c.ma,a,b),(a=Fa(a,b))?(c.Y=a.Y,c.N=a.N,null==
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);vc(c)})}}n(Y,t);Y.prototype.Z=function(a,b,c,d){this.m=b;this.f=c;this.u=d;vc(this)};Y.prototype.V=function(a,b){this.N&&(this.u&&this.u.a(this.id,this.b,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
function vc(a){if(a.m&&(!a.h&&a.g&&(wb(a.m,a.b,a.g,1)?a.h=!0:a.g=0),!ua(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;wc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.j+'"'):a.F('Error loading image "'+a.j+'"')}a.s=!0;E(a)}}
Y.prototype.reset=function(){if(this.h&&!this.s){for(var a=this.m,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.b(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&wc(this,this.Y,this.T,this.S,this.b,!this.u)}this.s=!1};
function wc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)sb(a.m,c+g,b[g]);g=!0}g&&(null==d&&(P(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.h=d%Ta,f?a.c.B?a.c.A||nb(a):a.c.J=!0:a.u&&a.c.B?P(a)||a.o.c.reset||(a.u.g(),Q(a.o,-1)):!1===f&&P(a),!a.c.A&&a.ka&&a.ka.stop()));return g}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
function xc(a){t.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=yc;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.U(null,a,b))}this.a=this.j=null;this.exports={connect:this.Qa,receiveData:this.ua,receiveStatus:this.nb,setConnection:this.qb}}n(xc,t);k=xc.prototype;
k.U=function(a,b,c){var d=this;switch(b){case yc:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Ua:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.Ya&&(b=c-(q.Ia-q.Ra));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ta&&(b=q.Sa);d.ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.o=a;this.m=b;this.f=c;this.u=d;E(this)};
k.Qa=function(a){if(!this.a){var b=S(this.o,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.la)return;c=Da(c[1]);if(this.a=oa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Qa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.b.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.b.push(b)}else this.b=this.b.concat(a);return!0};k.nb=function(){};k.qb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var yc="buffer";
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new xc(d);B(d,c)}});
function zc(a,b,c){t.call(this,"Computer",a);this.c.B=!1;this.M=null;Ac(this,b);this.I=S(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.s=this.G=null;this.C=this.R=!1;this.w=this.j=null;this.O=this.L=!1;this.X=S(this,"url")||"";(Math.random()+.1).toString(36);this.b=Bc(this);if(this.f=z("CPU",this.id)){this.u=z("Debugger",this.id);this.m=new tb({id:this.ma+".bus",busWidth:this.W},this.f,this.u);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
e[b],d.F=this.g.F,d.K=this.g.K,d.ba=this.g.ba;this.K(L+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.m,this.f,this.u);b=null;d=S(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=S(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=Cc),this.a&&(this.w=new O(this,"1.34.0"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
(b=Dc(this))&&(this.C=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.s=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.D=b,g.R=!0);E(g)})}else E(this);this.i.power||(this.I=!0);!c&&this.I&&Ec(this,this.ga)}else x("Unable to find CPU component")}n(zc,t);function Ac(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
function S(a,b,c,d){var e=b.toLowerCase(),e=La(b)||La(e);void 0===e&&a.M&&(e=a.M[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Ec(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){Ec(a,b,c)});return}}b.call(a,c)}
function Fc(a,b){var c=new O(a,"1.34.0",Gc);if(Z(c)&&Hc(c)){var d=c.get(Ic),e=b?b.get(Ic):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=zc.prototype;
k.ga=function(a){void 0===a&&(a=this.a||(this.D?Jc:Cc));if(!this.h){this.h++;var b=!1,c=!1;this.L=!1;var d=this.w||new O(this,"1.34.0");if(a==Kc)b=!0;else if(a>Cc){if(Z(d,this.D)){this.j=new O(this,"1.34.0",Lc);Z(this.j)&&(Mc(this,d),a=Nc,Oc(this.j));this.j.set(Ic,Ea());Pc(this.j);var e=this.a&&!this.C;if(a==Jc||na("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=Hc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
g?(this.F("Error: "+g),"unable to verify user"==g&&(Ja(Qc,""),this.b=null)):this.K(f+": "+g),Oc(d),Z(d)?(c=Hc(d),e=!0):c=!1))}e&&Fc(this,c?d:null)}else a==Nc&&d.clear()}else Fc(this);delete this.D;delete this.w}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Rc(this,g,d,b,c));b=[d,a,c];a!=Kc?Ec(this,this.Oa,b):this.Oa(b)}};
function Rc(a,b,c,d,e){if(!b.c.B){b.c.B=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=Cc,window&&window.location.reload()):a.L=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Oa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.f&&(Rc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.L&&(Mc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
function Mc(a,b){if(na("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
function Sc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new O(a,"1.34.0"),g=new O(a,"1.34.0",Gc),h=Ea();g.set(Ic,h);f.set(Ic,h);f.set(Tc,"1.34.0");f.set(Uc,window?window.location.href:null);f.set(Vc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.c.J=a.f.c.A),P(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.c.B=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var p=h[l];p.c.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.c.B=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&Wc(a,a.b,f.toString()),Pc(g)&&Pc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Xc),d&&f.clear(h)):e=f.toString());c&&(a.c.B=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.c.reset=!0;this.m&&this.m.reset&&this.m.reset();this.f&&this.f.reset&&this.f.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.m&&c!==this.f&&c.reset&&c.reset()}this.c.reset=!1;Q(this,-1)};
k.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)}Q(this,-1)};k.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)}Q(this,-1)};
function Q(a,b){if(a.f){var c=a.f,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.g&8);if(0>=b||60<=(a.C+=b)){e=a.f.h;if(a.i.PC){var f=a.u&&a.u.j||8,e=e||0,e=8==f?xa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.h:0<b&&c&&!d&&(a.b=a.f.ia);fb(a,a.b);N(a,a.h)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.c.B?Sc(d,!1,!0):Ec(d,d.ga))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.c.B&&!d.h)if(d.a&&!d.s){var a=na("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(Cc)}else d.reset(),d.f&&!d.u&&d.f.J()},!0;case "save":if(Aa())c.parentNode.removeChild(c);else return this.i[b]=
c,c.onclick=function(){var a=Bc(d,!0);if(a){var b=!!(d.a&&!d.s||d.G),c=Sc(d,b);b?Wc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function Bc(a,b){var c=a.b;c||((c=Ia(Qc),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Yc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
function Yc(a,b){a.b=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ja(Qc,b.data),a.b=b.data)}catch(d){x(d.message+" ("+c+")")}return a.b}function Dc(a){var b=null;a.b&&(b=G()+"/api/v1/user?req=load&user="+a.b+"&state="+Zc(a,"1.34.0"));return b}
function Wc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Zc(a,"1.34.0");d.data=c;b=H(G()+"/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.F("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.F(c),Ja(Qc,""),a.b=null)}}
var Lc="failsafe",Gc="validate",Ic="timestamp",Tc="version",Uc="url",Vc="browser",Qc="user",Kc=-1,Cc=0,Jc=1,Nc=2,Xc=3;I(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new zc(g,d,!0);B(g,f);g.I&&Ec(g,g.ga)}});J.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.O&&!c.c.B&&c.ga(Kc)}});
J.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.c.B&&Sc(c,!(!c.a||c.s),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.a={};this.i=this.b=!1;this.key=Zc(a,b,c);Oc(this,a.Xa)}k=O.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.i=!0,a.b=!1,!0):a.i?!0:Ga()&&(b=Ia(a.key))?(a.f=b,a.i=!0):!1}
function Hc(a){var b=!0;if(!a.b)try{a.a=JSON.parse(a.f),a.b=!0}catch(c){x(c.message||c),b=!1}return b}function Pc(a){var b=!0;if(Ga()){var c=JSON.stringify(a.a);Ja(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Oc(a,b){a.f="";a.a={};a.i=a.b=!1;b&&a.set("parms",b)}
k.clear=function(a){Oc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(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 Zc(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}var $c=0;
function ad(a,b,c,d,e,f,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):bd(l,a,b,c,d,e,f,g)})}
function bd(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(la(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(v){g=null,a=v.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?cd(a,g,l):l(a,null):h("no data"+(b?" for file: "+b:""),null)}
function cd(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");H(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=h[0],p,r=/( [a-z]+=)(['"])(.*?)\2/g;p=r.exec(f);)l=0>l.indexOf(p[1])?l.replace(">",p[0]+">"):l.replace(new RegExp(p[1]+"(['\"])(.*?)\\1"),p[0]);h[0]!=l&&(g=g.replace(h[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);cd(a,b,c)}})}else c(a,null)}
function dd(a,b,c,d,e){function f(a){if(void 0===l){var b=h&&D(h,"machine-warning");l=b&&b[0]||h}l&&(l.innerHTML=Ba(a))}function g(a){f("Error: "+a);p&&(--$c||K(!0));p=!1}var h,l,p=!0;$c++;ma[b]={};try{if(h=document.getElementById(b)){var r;if("object"==typeof resources&&(r=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],ka=document.createElement("style");ka.type="text/css";ka.styleSheet?ka.styleSheet.cssText=r:ka.appendChild(document.createTextNode(r));v.appendChild(ka)}d||
(r=a,"pdp"==a.substr(0,3)&&(r="pdpjs"),d="/versions/"+r+"/1.34.0/components.xsl");r=function(e,l){l?ad(d,null,a,null,!1,f,function(a,e){e?(la(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(h.outerHTML=e,--$c||K(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--$c||
K(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ad(c,b,a,e,!0,f,r):bd(c,null,b,a,e,!1,f,r)}else g("missing machine element: "+b)}catch(ed){g(ed.message)}return p}window.embedPDP10=function(a,b,c,d){K(!1);return dd("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){K(!1);return dd("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!qa[a]){for(var c=!0,d=qa,e=a,f=b.length,g=[],h=[],l="",p=null,r=0;r<f;r++){var v=b[r];if('"'==v||"'"==v)p&&v!=p?l+=v:(p?p=null:p=v,l&&(h.push(l),l=""));else{if(!p){if("\r"==v||"\n"==v)v=";";if(" "==v||"\t"==v||";"==v){l&&(h.push(l),l="");";"==v&&h.length&&(g.push(h),h=[]);continue}}l+=v}}l&&h.push(l);h.length&&g.push(h);d[e]=g;pa(a)||(c=!1)}return c};window.enableEvents=K;window.sendEvent=Ra;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10.map