I *think* all the PDP-10 DAKAL multiplication tests pass now. Division tests, alas, are a different story.

This commit is contained in:
Jeff 2017-04-01 23:06:41 -07:00 committed by Jeff Parsons
commit 493ae6c310
5 changed files with 121 additions and 95 deletions

View file

@ -7,7 +7,7 @@ machines:
type: pdp10
config: /devices/pdp10/machine/ka10/test/debugger/machine.xml
debugger: true
commands: a dakal.mac; g 33726
commands: a dakal.mac
---
PDP-10 KA10 Basic Instruction Diagnostic #12

View file

@ -6407,23 +6407,43 @@ PDP10.doMUL = function(dst, src, fTruncate, fExternal)
}
}
ext = PDP10.split72.call(this, res, ext, fExternal);
if (fTruncate) {
/*
* If ext is something OTHER than an extension of the res sign bit, then we have overflow.
* Special code for IMUL. I originally tried to avoid calling split72() in this case, but the PDP-10
* still appears to be splitting the result of the multiplication into separately signed 36-bit values,
* so the simplest solution is to call split72() in both cases.
*/
res = this.regEX;
if (!fExternal) {
/*
* Regarding IMUL overflows, the original spec says:
*
* Set Overflow if the product is >= 2^35 or < -2^35 (ie, if the high order word of the double
* length product is not null); the high order word is lost.
*
* However, when the DAKAL diagnostic performs a sequence like this:
*
* 00=000000000000 01=000000000000 02=000000000000 03=400000036755
* 04=400000000000 05=000000000003 06=400000000000 07=000000000004
* 10=000000000000 11=000000000011 12=777777400000 13=777777777776
* 14=000000200000 15=400000037134 16=000000000016 17=000000000000
* PC=037145 RA=00400000 EA=400000 PS=000000 OV=0 C0=0 C1=0 ND=0 PD=0
* 037145: 220600 000013 IMUL 14,13 ;cycles=1
*
* it sets 14=777777400000 and leaves overflow clear; since the 'high order word" would be 777777777777,
* not null, I think the spec over-simplifies. So our check is more exhaustive: it verifies that ext is
* nothing more than an extension of the sign bit of res (ie, 0 if res is positive, -1 if res is negative).
* Any other combination of values implies an overflow.
*/
if ((ext || res > PDP10.INT_MASK) && (ext != PDP10.WORD_MASK || res <= PDP10.INT_MASK)) {
this.regPS |= PDP10.PSFLAG.AROV;
}
}
/*
* Also note that, in the truncate case, we return the low order bits (res), rather than the
* the high order bits (ext) that split72() does.
*/
return res;
ext = res;
}
return PDP10.split72.call(this, res, ext, fExternal);
return ext;
};
/**
@ -6531,8 +6551,9 @@ PDP10.split72 = function(res, ext, fExternal)
var sign = ext - (ext % PDP10.INT_LIMIT);
ext = ((ext * 2) % PDP10.WORD_LIMIT) + Math.trunc(res / PDP10.INT_LIMIT);
res = sign + (res % PDP10.INT_LIMIT);
var signNew = ext - (ext % PDP10.INT_LIMIT);
if (sign != signNew) {
if (signNew != sign) {
/*
* I used to restore ext's original sign (ext = sign + (ext - signNew)), but the PDP-10's defined
* behavior for multiplication overflow (ie, whenever both operands are 0o400000000000) is to set both
@ -6543,9 +6564,13 @@ PDP10.split72 = function(res, ext, fExternal)
* If both operands are -2^35 set Overflow; the double length result stored is -2^70.
*/
res = ext;
if (!fExternal) this.regPS |= PDP10.PSFLAG.AROV;
}
if (fExternal) return res;
if (res == PDP10.INT_LIMIT && ext == PDP10.INT_LIMIT) {
this.regPS |= PDP10.PSFLAG.AROV;
}
this.regEX = res;
return ext;
};

View file

@ -510,7 +510,7 @@ class CPUStatePDP10 extends CPUPDP10 {
*/
getXC()
{
return this.regXC >= 0? this.regXC : this.regPC;
return this.regXC >= 0? this.regXC : ((this.regRA & PDP10.OPCODE.I_FIELD)? this.lastPC : this.regPC);
}
/**
@ -546,8 +546,9 @@ class CPUStatePDP10 extends CPUPDP10 {
*/
setPC(addr)
{
this.regPC = addr % PDP10.ADDR_LIMIT;
this.regRA = 0;
this.regXC = -1;
this.regPC = addr % PDP10.ADDR_LIMIT;
}
/**

View file

@ -41,23 +41,23 @@ function Aa(a){return a.replace(/[&<>"']/g,function(a){return Ba[a]})}function C
function Ha(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
function Ia(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");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||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ja(a,b){var c,d={da:null,Z:null,la:null,ya:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=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=g.load;d.ya=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c<e.length;c++)d.da[f++]=e[c]&255,d.da[f++]=e[c]>>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c<e.length;c++)d.da[f++]=
function Ja(a,b){var c,d={da:null,Z:null,la:null,za:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=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=g.load;d.za=g.exec;if(e=g.bytes)d.da=e;else if(e=g.words)for(d.da=Array(2*e.length),f=c=0;c<e.length;c++)d.da[f++]=e[c]&255,d.da[f++]=e[c]>>8&255;else if(e=g.longs)for(d.da=Array(4*e.length),f=c=0;c<e.length;c++)d.da[f++]=
e[c]&255,d.da[f++]=e[c]>>8&255,d.da[f++]=e[c]>>16&255,d.da[f++]=e[c]>>24&255;else(e=g.data)?d.Pa=e:d.da=g;d.da&&(d.da.length?1==d.da.length&&(q(d.da[0]),d=null):(q("Empty resource: "+a),d=null));d.Z=g.symbols}catch(h){q("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){q("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.da=e)}return d}
function Ka(){return"http://"+(window?window.location.host:"www.pcjs.org")}function La(){if(null==Ma){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Ma=a}return Ma}function Qa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Ra(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Sa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ta(a){if(!Ua){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," "))}Ua=c}return Ua[a]}function Va(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function Wa(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function Xa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ya(a){Za.init.push(a)}
function $a(a){if(ab)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function bb(a){!ab&&a?(ab=!0,cb&&db("init"),eb&&db("show")):ab=a}function db(a){Za[a]&&$a(Za[a])}var Ua=null,Za={init:[],show:[],exit:[]},cb=!1,eb=!1,ab=!0,Ma=null;Xa("onload",function(){cb=!0;$a(Za.init)});Xa("onpageshow",function(){eb=!0;$a(Za.show)});Xa(Sa("Opera")||Sa("iOS")?"onunload":"onbeforeunload",function(){$a(Za.exit)});
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Eb=b.comment;this.Ub=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.bb=this.id:(this.cb=this.id.substr(0,a),this.bb=this.id.substr(a+1));this.A={ready:!1,Wa:!1,rb:!1,aa:!1,error:!1};this.gb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.za=null;fb.push(this)}function gb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Eb=b.comment;this.Ub=b;this.exports={};this.J=this.bindings={};a=this.id.indexOf(".");0>a?this.bb=this.id:(this.cb=this.id.substr(0,a),this.bb=this.id.substr(a+1));this.A={ready:!1,Wa:!1,rb:!1,aa:!1,error:!1};this.gb=null;this.A.error=!1;this.ca=c||0;this.D=this.v=this.G=this.H=this.Aa=null;fb.push(this)}function gb(a,b,c){mb[a]&&b&&(mb[a][b]=c)}function nb(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function ob(a){var b=!1;window&&(b=window.confirm(a));return b}function pb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<fb.length;b++){var d=fb[b];a&&d.id.indexOf(a)||c.push(d)}return c}function qb(a){if(void 0!==a){var b;for(b=0;b<fb.length;b++)if(fb[b].id===a)return fb[b]}return null}
function rb(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<fb.length;d++)if(c)c==fb[d]&&(c=null);else if(!(a!=fb[d].type||b&&fb[d].id.indexOf(b)))return fb[d]}return null}function t(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function sb(a,b){var c=v;b=w(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 k=h.split(" "),l=0;l<k.length;l++)switch(h=k[l],h){case c+"-binding":(h=t(g))&&h.binding&&a.ta(h.type,h.binding,g,h.value),l=k.length}}}}
function w(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 tb(a){for(var b=!0,c=ub[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=vb.indexOf(e)&&(f=function(){return function(){tb(a)}}());var g=wb[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=rb(d[1],a);if(h)if(g=xb[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[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){q("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete ub[a];return b}m=r.prototype;
m.toString=function(){return this.name?this.name:this.id||this.type};
m.ta=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.za=this.J[b]=c,c.value="",this.u=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.ha=function(a){this.u(a,this.bb)}),!0;default:return!1}};m.log=function(){};m.u=function(){};
m.ta=function(a,b,c){switch(b){case "clear":return this.J[b]||(this.J[b]=c,c.onclick=function(a){return function(){a.J.print&&(a.J.print.value="")}}(this)),!0;case "print":return this.J[b]||(this.Aa=this.J[b]=c,c.value="",this.u=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.ha=function(a){this.u(a,this.bb)}),!0;default:return!1}};m.log=function(){};m.u=function(){};
m.status=function(a){this.u(this.bb+": "+a)};m.ha=function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)};function yb(a,b){a.A.error=!0;a.ha(b)}function zb(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Bb(a,b){b&&(a.A.ready?b():a.gb=b);return a.A.ready}function Mb(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.gb;a.gb=null;b&&b()}}function Nb(a,b){a.A.Wa&&(b?a.A.rb=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.Wa}
function Ob(a,b){if(a.A.rb)return a.A.Wa=!1,a.A.rb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Wa=b;return a.A.Wa}m.Ba=function(){return this.A.aa=!0};m.sa=function(a,b){b&&(this.A.aa=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.ca;var c=a.D.ca&b;return!!b&&c===b||!!(c&a.D.Fb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.message(b,d)}
function Ob(a,b){if(a.A.rb)return a.A.Wa=!1,a.A.rb=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.Wa=b;return a.A.Wa}m.Ca=function(){return this.A.aa=!0};m.sa=function(a,b){b&&(this.A.aa=!1);return!0};function Pb(a,b){if(a.D){a===a.D?b|=0:b=b||a.ca;var c=a.D.ca&b;return!!b&&c===b||!!(c&a.D.Fb)}return!1}function Qb(a,b,c,d){a.D&&(!0===c||Pb(a,c|0))&&a.D.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 mb=window?window.PCjs.Machines:{},fb=window?window.PCjs.Components:[],ub=window?window.PCjs.Commands:{},vb=["hold","sleep","wait"],wb={alert:function(a){q(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},xb={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)});
@ -67,7 +67,7 @@ timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,bu
function cc(a,b){r.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.T=dc;this.C={};this.b={START:[1,1,!0,!1,this.ec],STEP:[1,1,!1,!1,this.fc],ENABLE:[1,1,!1,!1,this.$b],CONT:[1,1,!0,!1,this.Yb],DEP:[0,0,!0,!1,this.Zb],EXAM:[1,1,!0,!1,this.ac],LOAD:[1,1,!0,!1,this.cc],TEST:[0,0,!0,!1,this.bc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc,
set:this.nc};Mb(this)}ja(cc,r);m=cc.prototype;m.reset=function(a){this.stop();a&&ec(this,this.w=0)};
m.ta=function(a,b,c,d){if(this.H&&this.H.ta(a,b,c,d)||this.v&&this.v.ta(a,b,c,d)||this.D&&this.D.ta(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){fc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){gc(a,b)}}(this,b),a.ontouchstart=
function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.ta.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ba=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
function(a,b){return function(c){fc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){gc(a,b)}}(this,b),!0):r.prototype.ta.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;hc(this);ic(this)};m.Ca=function(a,b){if(!b)if(this.V&&jc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
m.restore=function(a){if(a=a[0])kc(this,this.i=a[0]),ec(this,this.w=a[1]),lc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ic(this);return!0};function mc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function hc(a,b){for(var c in a.C)mc(a,c,null!=b?b:a.C[c])}function nc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ic(a){for(var b in a.b)nc(a,b,a.b[b][1])}
m.Vb=function(a,b,c){if(fc(this,b)){if(c){var d=this;setTimeout(function(){gc(d,b);a&&a()},+c);return!1}gc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return lc(this,oa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,nc(this,a,c[1]),!0):!1};m.oc=function(a){return fc(this,a)?(gc(this,a),!0):!1};function fc(a,b){var c=a.b[b];return c?(nc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=oc&&(a.O=b==pc,a.R=b==qc),!0):!1}
function gc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(nc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(I(this.v,this.i),this.b[rc]&&this.b[rc][1]&&sc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()};
@ -75,43 +75,43 @@ m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[rc]&&this.b[rc][1])sc(this.v);else
m.ac=function(a){if(!a&&!this.v.A.P){var b;this.R&&xc(this);this.T==dc?b=zc(this.G,this.i):b=this.v.f(this.i);ec(this,this.w=b)}};m.cc=function(a){a||this.v.A.P||kc(this,this.j)};m.bc=function(a){a?(this.F=!0,hc(this,!0)):(this.F=!1,hc(this),lc(this,0))};m.dc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function xc(a){var b=1,c=a.G.j;a.b[oc]&&a.b[oc][1]||(b=-b);kc(a,a.i&~c|a.i+b&c)}
function kc(a,b){a.i=b&a.G.j;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,f=b&1<<c;d.C[e]=f;d.F||mc(d,e,f)}}}function ec(a,b){a.I=b%D;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,f=b&1<<c;d.C[e]=f;d.F||mc(d,e,f)}}return a.I}function lc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;ic(a);return!0}m.stop=function(){kc(this,this.v.i)};
function jc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=t(c),e=qb(d.id);e||(e=new cc(d,!0));sb(e,c)}}var dc=7,pc="DEP",rc="ENABLE",qc="EXAM",oc="STEP";Ya(jc);function Ac(a,b,c){r.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Bc(this);Cc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Mb(this)}ja(Ac,r);m=Ac.prototype;m.reset=function(){};
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,Dc(this));return a.data()};m.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++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
m.Ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,Dc(this));return a.data()};m.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++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ec(a,b,c,d){for(var e=b,f=c,g=e>>>a.i;0<f&&g<a.b.length;){var h=a.b[g],k=16384*g,l=16384-(e-k);l>f&&(l=f);if(h&&h.size){if(h.type==d){if(e+f<=h.B)return h.Ya+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ya){l=h.size-(e-k);l>f&&(l=f);h.Ya=e-h.B+l;e=k+16384;f-=l;g++;continue}}return Fc(Gc,e,f)}e=new Bc(a,e,l,16384,d);Cc(e,a.D,h);a.b[g++]=e;e=k+16384;f-=l}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Hc[d]+" at "+va(b)),!0):Fc(Lc,b,c)}
function zc(a,b){var c=a.b[(b&a.j)>>>a.i];a.w++;b=c.w(b&16383,b);a.w--;return b}function yc(a,b,c){var d=a.b[(b&a.j)>>>a.i];a.w++;d.D(c,b&16383,b);a.w--}function Dc(a){for(var b=0,c=[],d=0;d<a.C;d++){var e=a.b[d];if(e.tb||e.Tb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var l=e[g],p=g+1;p<e.length&&e[p]===l;)p++;k[h++]=p-g;k[h++]=l;g=p}k.length<e.length&&(e=k)}c[f]=e}}return c}
m.Kb=function(a){if(!this.w)throw this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+L(this.D,a),!0,!0),this.v.Y(),-1;};function Fc(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Gc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ja(Mc,r);m=Mc.prototype;m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.reset=function(){};
m.Kb=function(a){if(!this.w)throw this.D&&Pb(this.D,4)&&Qb(this.D,"memory fault on "+L(this.D,a),!0,!0),this.v.Y(),-1;};function Fc(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var Gc=1,Lc=2;function Mc(a){r.call(this,"Device",a,256)}ja(Mc,r);m=Mc.prototype;m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.D=d;Mb(this)};m.Ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.sa=function(a){return a?this.save():!0};m.reset=function(){};
m.save=function(){return(new G(this)).data()};m.restore=function(){return!0};Ya(function(){for(var a=w(document,v,"device"),b=0;b<a.length;b++){var c,d=a[b];c=t(d);switch(c.type){case "default":c=new Mc(c),sb(c,d)}}});
function Bc(a,b,c,d,e){this.H=a;this.id=Nc+=2;this.B=b;this.Ya=c;this.size=d||0;this.type=e||Oc;this.G=e==Pc;this.b=null;this.f=this.w=this.wb;this.g=this.D=this.Za;this.i=this.v=0;Cc(this);this.tb=this.Tb=!1;if(this.size){a=this.j=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qc(this,Rc)}else Qc(this)}m=Bc.prototype;m.save=function(){return this.j};m.restore=function(a){return a&&this.size==a.length?(this.j=a,this.tb=!0):!1};function Qc(a,b){b||(b=Sc);Tc(a,b,void 0);Uc(a,b,void 0)}
function Tc(a,b,c){c&&a.i||(a.f=b[0]||a.wb);if(c||void 0===c)a.w=b[0]||a.wb}function Uc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Za);if(c||void 0===c)a.D=b[1]||a.Za}m.Ra=function(a,b){b?this.v++||Uc(this,Vc,!1):this.i++||Tc(this,Vc,!1)};function Wc(a,b){b?--a.v||(a.g=a.G?a.Za:a.D):--a.i||(a.f=a.w)}function Cc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Tc(a,Vc,!1),(a.v=c.v)&&Uc(a,Vc,!1))}m.wb=function(a,b){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.H.Kb(b);return-1};
m.Za=function(a,b,c){this.b&&Pb(this.b,32)&&Qb(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0);this.H.Kb(c)};m.ic=function(a){return this.j[a]};m.rc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.tb=!0)};m.gc=function(a,b){if(this.b&&null!=this.B){var c=this.b;Xc(c,this.B+a,2,c.N)&&c.Y(!1)}return this.w(a,b)};m.qc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Xc(d,this.B+b,2,d.K)&&d.Y(!1)}this.G?this.Za(a,0,c):this.D(a,b,c)};
var Oc=0,Pc=2,Hc=["NONE","RAM","ROM"],Nc=0,Sc=[],Rc=[Bc.prototype.ic,Bc.prototype.rc],Vc=[Bc.prototype.gc,Bc.prototype.qc];
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.lb=0;this.pb=b;this.ka=c;this.mb=Math.round(this.pb/1E4)/100;this.ga=this.mb*this.ka;this.ob=this.Ja=this.na=this.eb=0;this.A.P=this.A.jb=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Va=!1;this.Ha=this.qa=0;this.Ia=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Gb=this.lc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Ga=this.T=this.va=this.qb=this.ba=
function Yc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.lb=0;this.pb=b;this.ka=c;this.mb=Math.round(this.pb/1E4)/100;this.ga=this.mb*this.ka;this.ob=this.Ja=this.na=this.eb=0;this.A.P=this.A.jb=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Va=!1;this.Ha=this.ua=0;this.Ia=+a.csStart;this.qa=+a.csInterval;this.va=+a.csStop;this.R=[];this.Gb=this.lc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Ga=this.T=this.wa=this.qb=this.ba=
0;this.Oa=null;Mb(this)}ja(Yc,r);m=Yc.prototype;m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<Zc.length;a++)(b=this.J[Zc[a]])&&this.H.ta(null,Zc[a],b);Mb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.Ba=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.sa=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(sc(this),!0):!1};m.Lb=function(){return 0};function bd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.pa&&(a.pa=-1);void 0===a.ua&&(a.ua=-1);a.A.Va=0<=a.Ia&&0<a.pa;a.A.Va&&(a.Ha=0,a.qa=a.Ia-a.W)}function wc(a,b){if(a.A.Va){var c=!1;a.Ha=a.Ha+a.Lb()|0;a.qa-=b;0>=a.qa&&(a.qa+=a.pa,c=!0);0<=a.ua&&a.ua<=fd(a)&&(a.pa=a.ua=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}}
m.Ca=function(a,b){var c=$c(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){ad(this);if(!this.restore(a))return!1;bd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),cd(a),b||dd(a),a.va&&(b=a.va,a.va=null,ed(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
m.sa=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(sc(this),!0):!1};m.Lb=function(){return 0};function bd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.qa&&(a.qa=-1);void 0===a.va&&(a.va=-1);a.A.Va=0<=a.Ia&&0<a.qa;a.A.Va&&(a.Ha=0,a.ua=a.Ia-a.W)}function wc(a,b){if(a.A.Va){var c=!1;a.Ha=a.Ha+a.Lb()|0;a.ua-=b;0>=a.ua&&(a.ua+=a.qa,c=!0);0<=a.va&&a.va<=fd(a)&&(a.qa=a.va=-1,bd(a),a.Y(),c=!0);c&&a.u(fd(a)+" cycles: checksum="+n(a.Ha))}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.aa)a=!0;else{var b=null,c,h=pb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.aa);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.gb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.P?d.Y():sc(d))},!0;
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){gd(d,d.ka<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function vc(a,b,c){a.W+=b;c&&(a.V=a.N=0)}function hd(a,b){var c=1;b&&1<a.ka&&a.ba&&(c=a.ba/a.mb);a.ob=Math.round(1E3/id);a.Ja=Math.floor(a.pb/id*c);b||(a.na=a.Ja);a.eb=0}function fd(a){return a.W+a.M+a.V-a.N}function ad(a){a.ba=0;a.qb=0;a.W=a.M=a.V=a.N=0;bd(a);gd(a,1)}
function gd(a,b,c){var d=!1;if(void 0!==b){.8>a.ba/a.ga?b=1:d=!0;a.ka=b;b=a.mb*a.ka;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&jd(a.H)}vc(a,a.M);a.M=0;a.L=nb();a.T=0;hd(a);return d}function kd(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ld(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
function uc(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function md(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
m.lc=function(){if(this.A.P){this.eb>=this.pb&&hd(this,!0);this.va=0;this.Ga=nb();if(this.T){var a=this.Ga-this.T;a>this.ob&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Va?1:this.Ja);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.va+=b;this.M+=b;wc(this,b);uc(this,b);this.na-=b;if(0>=this.na){this.na+=this.Ja;++this.qb>=nd&&(this.H&&K(this.H,void 0),this.qb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Gb;this.T=nb();var c=this.ob;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.T-this.Ga),d=this.T-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,gd(this)));if(0>c||this.ba<this.ga)-1E3>c&&(this.L-=c),c=0;this.eb+=this.va;this.T+=c;a(b,c)}}};
m.lc=function(){if(this.A.P){this.eb>=this.pb&&hd(this,!0);this.wa=0;this.Ga=nb();if(this.T){var a=this.Ga-this.T;a>this.ob&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=kd(this,this.A.Va?1:this.Ja);try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}b=md(this,!0);this.wa+=b;this.M+=b;wc(this,b);uc(this,b);this.na-=b;if(0>=this.na){this.na+=this.Ja;++this.qb>=nd&&(this.H&&K(this.H,void 0),this.qb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(nb(),fd(this));yb(this,
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Gb;this.T=nb();var c=this.ob;this.wa&&(c=Math.round(c*this.wa/this.Ja));var c=c-(this.T-this.Ga),d=this.T-this.L;d&&(this.ba=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,gd(this)));if(0>c||this.ba<this.ga)-1E3>c&&(this.L-=c),c=0;this.eb+=this.wa;this.T+=c;a(b,c)}}};
function sc(a,b){if(!zb(a))if(a.A.P)a.u(a.toString()+" busy");else{gd(a);a.A.P=!0;a.A.jb=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&jd(a.H,!0),a.H.start(a.L,fd(a)));a.D||a.status("Started");setTimeout(a.Gb,0)}}m.$a=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){md(this);vc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(nb(),fd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var id=30,nd=15,Zc=["power","reset"];
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.nb=b;this.ab=+a.addrReset||0;this.Sb=pd.bind(this);this.w=M.bind(this);this.Da=null;this.Db=[];this.A.complete=!1}ja(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.nb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.Ea=this.ab;this.K=this.O=-1;this.F=this.j=0;this.kb=[0,0];this.wa=[0,0];this.oa=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Lb=function(){return 0};
m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.Ea,this.Ca,this.ab]);a.set(1,[]);a.set(2,[this.W,this.ka,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Ca=b.next().value;this.ab=b.next().value;b=a[2];this.W=b[0];gd(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Db.length;d++){var e=this.Db[d];
if(e.pc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Da,this.Da=d)}a=a[4];for(b=0;b<this.R.length&&b<a.length;b++)this.R[b][0]=a[b];return!0};function rd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function sd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function I(a,b){a.i=b%Tb;a.O=-1}function qd(a){var b=[];for(a=a.Da;a;)b.push(a.pc),a=a.next;return b}m.hc=function(a){var b=this.G;a=this.Ca=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};
m.sc=function(a,b){var c=this.G;a=this.Ca=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.jb?-1:0:0,c=a?this.A.jb?0:1:-1;this.A.jb=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Da||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La=
this.f(this.Ea=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Sb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};Ya(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new od(d);sb(d,c)}});function pd(a){vd[a>>4].call(this,a,a&15)}function O(a){this.w(a)}
function od(a){var b=+a.model||1001;Yc.call(this,a,1E6);this.nb=b;this.ab=+a.addrReset||0;this.Sb=pd.bind(this);this.w=M.bind(this);this.Ea=null;this.Db=[];this.A.complete=!1}ja(od,Yc);m=od.prototype;
m.reset=function(){this.status("Model "+this.nb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.pa=this.ab;this.K=this.O=-1;this.F=this.j=0;this.kb=[0,0];this.xa=[0,0];this.oa=[0,0];this.ya=[0,0];this.Da=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Ea=null;ad(this);this.A.error=!1;Yc.prototype.reset.call(this)};m.Lb=function(){return 0};
m.save=function(){var a=new G(this);a.set(0,[this.b,this.I,this.Ka,this.La,this.i,this.O,this.K,this.j,this.C,this.pa,this.Da,this.ab]);a.set(1,[]);a.set(2,[this.W,this.ka,this.A.fa]);a.set(3,qd(this));a.set(4,ld(this));return a.data()};
m.restore=function(a){var b;b=a[0];ga();ca();ga();var c=b[Symbol.iterator];b=c?c.call(b):ha(b);this.b=b.next().value;this.I=b.next().value;this.Ka=b.next().value;this.La=b.next().value;this.i=b.next().value;this.O=b.next().value;this.K=b.next().value;this.j=b.next().value;this.C=b.next().value;this.pa=b.next().value;this.Da=b.next().value;this.ab=b.next().value;b=a[2];this.W=b[0];gd(this,b[1]);this.A.fa=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Db.length;d++){var e=this.Db[d];
if(e.pc===b[c]){d=e;break a}}d=null}d&&(d.next=this.Ea,this.Ea=d)}a=a[4];for(b=0;b<this.R.length&&b<a.length;b++)this.R[b][0]=a[b];return!0};function rd(a,b){a.j=a.j&-254049|b&254048;a.j|=b&4096;b&2048?a.j&4096||(a.j|=2048):a.j&=-2049}function sd(a,b){var c=a.i;a.i=(c+b)%Tb;return c}function I(a,b){a.I=0;a.O=-1;a.i=b%Tb}function qd(a){var b=[];for(a=a.Ea;a;)b.push(a.pc),a=a.next;return b}m.hc=function(a){var b=this.G;a=this.Da=a;return b.b[(a&b.j)>>>b.i].f(a&16383,a)};
m.sc=function(a,b){var c=this.G;a=this.Da=a;c.b[(a&c.j)>>>c.i].g(b,a&16383,a);return b};
m.$a=function(a){this.A.complete=!0;var b=this.D?td(this.D)?1:this.A.jb?-1:0:0,c=a?this.A.jb?0:1:-1;this.A.jb=!1;this.V=this.N=a;this.C=this.C&-5|(b?4:0);do{if(this.C){if(this.C&4){if(ud(this.D,this.i,c)){this.Y();break}++b||(this.C&=-5);c||c++}if(a=this.C&11)this.C&2?this.Ea||(this.C&=-3):this.C&1&&this.C++,a=!1;if(a){if(this.C&4&&ud(this.D,this.i,c)){this.Y();break}if(0>c)break}}this.C&=15;this.I&4194304?this.I=this.Ka=this.f(this.b):0<=this.O?(this.I=this.La=this.f(this.O),this.O=-1):(this.I=this.La=
this.f(this.pa=this.i),this.i=(this.i+1)%Tb);this.I&=8388607;this.b=this.I&262143;if(a=this.I>>18&15)this.b=this.b+(this.Ka=this.f(a))&Sb;a=this.I&4194304?-1:this.La/$b|0;0<=a&&this.Sb(a);this.N--}while(0<this.N);return this.A.complete?this.V-this.N:!1===this.A.complete?-1:0};Ya(function(){for(var a=w(document,v,"cpu"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new od(d);sb(d,c)}});function pd(a){vd[a>>4].call(this,a,a&15)}function O(a){this.w(a)}
function wd(){var a=0,b=this.f(this.b),c=b/ac&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*ac+(d<<24)+(b&16777215);a&&(b=(b+a)%D);this.g(this.b,b)}function xd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.g(b,a);this.j&=-8193;this.K=-1}}
function yd(a,b){a=this.f(this.b);if(0>this.K)this.K=a,this.I=this.b|4194304;else{var c=this.K/ac&63,d=this.K>>24&63;b=this.f(b)%Math.pow(2,d)*Math.pow(2,c)%D;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.g(this.b,a);this.j&=-8193;this.K=-1}}function zd(a,b){this.g(b,this.f(this.b))}function Ad(a,b){this.g(b,this.b)}function Bd(a,b){this.g(this.b,this.f(b))}function Cd(a,b){this.g(b,0)}function Dd(a,b){this.g(b,C-this.f(b))}function Ed(a,b){this.g(b,C)}
function Fd(a,b){var c=this.f(this.b),d=this.f(b);this.g(b,Gd(a,d,c)+(c-(c&x)))}function Hd(a,b){var c=this.f(b);this.g(b,Gd(a,c,0))}function Id(a,b){b=this.f(b);var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+(b-(b&x)))}function Jd(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d-=d&x,a){case 256:d+=x;break;case 384:d+=c>z?x:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function Kd(a,b){var c=(this.f(this.b)&x)*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}
function be(a,b){var c=this.b*y,d=this.f(b);this.g(b,Gd(a,d,c)+c)}function ce(a,b){b=(this.f(b)&x)*y;var c=this.f(this.b);this.g(this.b,Gd(a,c,b)+b)}function de(a,b){var c=this.f(this.b),d=(c&x)*y,c=Gd(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function ee(a,b){var c=this.f(this.b)&x,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ge(a,b){var c=this.f(b);this.g(b,fe(a,c,this.b)+this.b)}function he(a,b){b=this.f(b)&x;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}
function ie(a,b){var c=this.f(this.b),d=c;if(a&=384)switch(d&=x,a){case 256:d+=x*y;break;case 384:d+=c>Ub?x*y:0}c=d;this.g(this.b,c);b&&this.g(b,c)}function je(a,b){var c=this.f(this.b)/y|0,d=this.f(b);this.g(b,fe(a,d,c)+c)}function ke(a,b){var c=this.f(b);this.g(b,fe(a,c,0))}function le(a,b){b=this.f(b)/y|0;var c=this.f(this.b);this.g(this.b,fe(a,c,b)+b)}function me(a,b){var c=this.f(this.b),d=c/y|0,c=fe(a,c,d)+d;this.g(this.b,c);b&&this.g(b,c)}function P(a){ne[a&7].call(this,a,a>>3&127)}
function oe(){}function pe(){}function M(a){this.u("undefined opcode: "+va(a));sd(this,-1);this.Y()}function qe(a){a>z&&(a!=B?a=Xb-a:this.j|=163840);return a}function Q(a,b){var c=(a+b)%D;re.call(this,a,b,c);return c}
function se(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.kb;f[0]=0;f[1]=0;f=this.wa;f[0]=1;f[1]=0;f=this.oa;f[0]=c;f[1]=0;c=this.xa;c[0]=a;for(c[1]=b;0<te(this.xa,this.oa);)ue(this.oa,this.oa),ue(this.wa,this.wa);do{if(0<=te(this.xa,this.oa)&&(b=this.xa,a=this.oa,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=D,b[1]--),ue(this.kb,this.wa),ve(this.xa)))break;we(this.oa);we(this.wa)}while(!ve(this.wa));
a=this.kb[0];this.F=this.xa[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}
function xe(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.nb||e!=B)&&(e=D-e,b=!b);f>z&&(f=D-f,b=!b);if(e<y&&f<y)a=e*f,g=0;else{a=e&x;e=Math.trunc(e/y);g=f&x;var f=Math.trunc(f/y),h=a*g,k=e*g+Math.trunc(h/y);g=Math.trunc(k/y);k=(k&x)+a*f;a=(k*y+(h&x))%D;g+=Math.trunc(k/y)+e*f}b&&(a?(g=C-g,a=D-a):g&&(g=D-g));if(c)return!d&&(g||a>z)&&(g!=C||a<=z)&&(this.j|=131072),a;c=a;b=g;a=b-b%B;b=2*b%D+Math.trunc(c/B);c=a+c%B;a!=b-b%B&&(c=b,d||(this.j|=131072));d?d=c:(this.F=c,d=b);return d}
function se(a,b,c){var d=!1,e=!1,f=b-b%B;a=a%B+b*B%D;b=this.F=f+Math.trunc(b/2);c>z&&(c=D-c,d=!d);b>z&&(a?(b=C-b,a=D-a):b&&(b=D-b),e=!0,d=!d);if(b>=c)return this.j|=131104,-1;f=this.kb;f[0]=0;f[1]=0;f=this.xa;f[0]=1;f[1]=0;f=this.oa;f[0]=c;f[1]=0;c=this.ya;c[0]=a;for(c[1]=b;0<te(this.ya,this.oa);)ue(this.oa,this.oa),ue(this.xa,this.xa);do{if(0<=te(this.ya,this.oa)&&(b=this.ya,a=this.oa,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=D,b[1]--),ue(this.kb,this.xa),ve(this.ya)))break;we(this.oa);we(this.xa)}while(!ve(this.xa));
a=this.kb[0];this.F=this.ya[0];d&&a&&(a=D-a);e&&this.F&&(this.F=D-this.F);return a}
function xe(a,b,c,d){var e=a,f=b;b=!1;var g;e>z&&(d||1001!=this.nb||e!=B)&&(e=D-e,b=!b);f>z&&(f=D-f,b=!b);if(e<y&&f<y)a=e*f,g=0;else{a=e&x;e=Math.trunc(e/y);g=f&x;var f=Math.trunc(f/y),h=a*g,k=e*g+Math.trunc(h/y);g=Math.trunc(k/y);k=(k&x)+a*f;a=(k*y+(h&x))%D;g+=Math.trunc(k/y)+e*f}b&&(a?(g=C-g,a=D-a):g&&(g=D-g));b=a;a=g;e=a-a%B;a=2*a%D+Math.trunc(b/B);b=e+b%B;a-a%B!=e&&(b=a);d?g=b:(b==B&&a==B&&(this.j|=131072),this.F=b,g=a);c&&(a=this.F,!d&&(g||a>z)&&(g!=C||a<=z)&&(this.j|=131072),g=a);return g}
function ye(a){a?a==B?this.j|=163840:a=Xb-a:this.j|=98304;return a}function ze(a,b){var c=a-b;0>c&&(c+=D);re.call(this,c,b,a);return c}function re(a,b,c){a=Math.trunc(a/Wb);b=Math.trunc(b/Wb);c=Math.trunc(c/Wb);var d=a^(a^b)&(b^c);this.j=this.j|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function R(a,b){return((a/E|0)&(b/E|0))*E+((a&b)>>>0)}function S(a,b){return R(a,(~(b/E|0)&15)*E+(~b>>>0))}function T(a,b){return(a<B?a:a-D)-(b<B?b:b-D)}
function Ae(a,b){return(~((a/E|0)^(b/E|0))&15)*E+(~(a^b)>>>0)}function U(a,b){return(a/E|0|b/E|0)*E+((a|b)>>>0)}function V(a){return a<B?a:a-D}function W(a,b){return((a/E|0)^(b/E|0))*E+((a^b)>>>0)}function X(a){return(a/y|0)+(a&x)*y}function fe(a,b,c){switch(a&384){case 0:b-=b&x;break;case 128:b=0;break;case 256:b=x*y;break;case 384:b=c>Ub?x*y:0}return b}function Gd(a,b,c){switch(a&384){case 0:b&=x;break;case 128:b=0;break;case 256:b=x;break;case 384:b=c>z?x:0}return b}
function ue(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=D&&(a[0]%=D,a[1]++)}function te(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function we(a){a[1]%2&&(a[0]+=D);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function ve(a){return!a[0]&&!a[1]}
@ -155,18 +155,18 @@ function(a,b){a=this.f(b);var c=this.f(this.b);R(a,c)||I(this,this.i+1);this.g(b
c))},P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P],ne=[function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a){this.w(a)},function(a,b){switch(b){case 0:a=this.f(this.b);a&8&&(this.j&=-131073);a&131072&&(this.j&=-262145);break;default:this.w(a)}},function(a,b){switch(b){case 0:a=0;this.j&131072&&(a|=8);this.j&262144&&(a|=65536);this.g(this.b,a);break;default:this.w(a)}},function(a){this.w(a)},
function(a){this.w(a)}];
function Be(a){r.call(this,"ROM",a,128);this.Z=this.b=null;this.C=+a.addr;this.j=+a.size;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.w=a.file;this.F=xa(this.w);if(this.w){a=this.w;var b=ya(this.F);"json"!=b&&"hex"!=b&&(a=Ka()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;Ia(a,null,!0,function(a,b,f){f?(c.ha("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(gb(c.cb,a,b),(a=Ja(a,b))?(c.b=a.da,c.Z=a.Z):c.w=null);Ce(c)})}}ja(Be,r);
Be.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ba=function(){this.Z&&(this.D&&De(this.D,this.id,this.C,this.j,this.Z),delete this.Z);return!0};Be.prototype.sa=function(){return!0};
Be.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Ce(this)};Be.prototype.Ca=function(){this.Z&&(this.D&&De(this.D,this.id,this.C,this.j,this.Z),delete this.Z);return!0};Be.prototype.sa=function(){return!0};
function Ce(a){if(!Bb(a)){if(a.w){if(!a.b||!a.G)return;a.j||(a.j=a.b.length);if(a.b.length!=a.j)yb(a,"ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.j,8,!0)+")");else{var b;b=a.C;if(Ec(a.G,b,a.j,Pc)){var c;for(c=0;c<a.b.length;c++)yc(a.G,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],f=d.G,g=d.j,h=[],k=d.C>>>f.i;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=16384;f=d.G;d=d.j;g=0;for(e>>>=
f.i;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=16384}}delete a.b}}}Mb(a)}}Ya(function(){for(var a=w(document,v,"rom"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Be(d);sb(d,c)}});
function Ee(a){r.call(this,"RAM",a);this.Z=this.Pa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.ya=a.exec;null!=this.la&&(this.la=+this.la);null!=this.ya&&(this.ya=+this.ya);this.w=this.F=!1;this.b=a.file;this.C=xa(this.b);if(this.b){a=this.b;var b=ya(this.C);"json"!=b&&"hex"!=b&&(a=Ka()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ia(a,null,!0,function(a,b,f){f?(c.ha("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(gb(c.cb,a,b),(a=Ja(a,b))?(c.Pa=a.Pa,
c.Z=a.Z,null==c.la&&(c.la=a.la),null==c.ya&&(c.ya=a.ya)):c.b=null);Fe(c)})}}ja(Ee,r);Ee.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Fe(this)};Ee.prototype.Ba=function(a,b){this.Z&&(this.D&&De(this.D,this.id,this.i,this.j,this.Z),delete this.Z);b||this.reset();return!0};Ee.prototype.sa=function(){return!0};
function Fe(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Bb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Pa)return;Ge(a,a.Pa,a.la,a.ya,a.i)?a.status('Loaded image "'+a.C+'"'):a.ha('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
Ee.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Pa&&Ge(this,this.Pa,this.la,this.ya,this.i,!this.D)}this.F=!1};
function Ee(a){r.call(this,"RAM",a);this.Z=this.Pa=null;this.i=+a.addr;this.j=+a.size;this.la=a.load;this.za=a.exec;null!=this.la&&(this.la=+this.la);null!=this.za&&(this.za=+this.za);this.w=this.F=!1;this.b=a.file;this.C=xa(this.b);if(this.b){a=this.b;var b=ya(this.C);"json"!=b&&"hex"!=b&&(a=Ka()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ia(a,null,!0,function(a,b,f){f?(c.ha("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(gb(c.cb,a,b),(a=Ja(a,b))?(c.Pa=a.Pa,
c.Z=a.Z,null==c.la&&(c.la=a.la),null==c.za&&(c.za=a.za)):c.b=null);Fe(c)})}}ja(Ee,r);Ee.prototype.Ma=function(a,b,c,d){this.G=b;this.v=c;this.D=d;Fe(this)};Ee.prototype.Ca=function(a,b){this.Z&&(this.D&&De(this.D,this.id,this.i,this.j,this.Z),delete this.Z);b||this.reset();return!0};Ee.prototype.sa=function(){return!0};
function Fe(a){if(a.G&&(!a.w&&a.j&&(Ec(a.G,a.i,a.j,1)?a.w=!0:a.j=0),!Bb(a))){if(!a.w)q("No RAM allocated");else if(a.b){if(!a.Pa)return;Ge(a,a.Pa,a.la,a.za,a.i)?a.status('Loaded image "'+a.C+'"'):a.ha('Error loading image "'+a.C+'"')}a.F=!0;Mb(a)}}
Ee.prototype.reset=function(){if(this.w&&!this.F){for(var a=this.G,b=this.i,c=this.j,d=b&16383,b=b>>>a.i;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-B&&(g+=D);for(var g=Math.trunc(Math.abs(g))%D,h=d;f--&&h<e.size;h++)e.D(g,d,e.B+d);c-=16384;b++;d=0}this.Pa&&Ge(this,this.Pa,this.la,this.za,this.i,!this.D)}this.F=!1};
function Ge(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)yc(a.G,c+g,b[g]);g=!0}g&&(null==d&&(a.v.Y(),f=!1),null!=d&&(a=a.v,a.ab=d,I(a,d),f?a.A.aa?a.A.P||sc(a):a.A.fa=!0:a.D&&a.A.aa?a.Y()||a.H.A.reset||(cd(a.D),K(a.H,-1)):!1===f&&a.Y(),!a.A.P&&a.Oa&&a.Oa.stop()));return g}Ya(function(){for(var a=w(document,v,"ram"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ee(d);sb(d,c)}});
function He(a){r.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.j=!0;this.i=[];var b=a.binding;if("console"!=b){var c;a=Ie;b&&(void 0===c&&(c="Panel"),(c=rb(c,this.id))&&(b=c.J[b])&&this.ta(null,a,b))}this.b=this.C=null;this.exports={connect:this.Mb,receiveData:this.hb,receiveStatus:this.jc,setConnection:this.mc}}ja(He,r);m=He.prototype;
m.ta=function(a,b,c){var d=this;switch(b){case Ie:return this.J[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?na.yb:na.Qb:46==c?b=na.yb:a.ctrlKey&&c>=na.xb&&c<=na.Rb&&(b=c-(na.xb-na.Nb));b&&(a.preventDefault&&a.preventDefault(),d.hb(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==na.Pb&&(b=na.Ob);d.hb(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.hb(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Mb(this)};
m.Mb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.bb)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.cb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ba=function(a,b){if(!b)if(this.Mb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.Mb=function(a){if(!this.b){var b=$c(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Da(c[0]);if(d!=this.bb)return;c=Da(c[1]);if(this.b=qb(c)){var e=this.b.exports;if(e){var f=e.connect;f&&f.call(this.b,this.j);if(this.C=e.receiveData){this.j=a;this.status("Connected "+this.cb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};m.Ca=function(a,b){if(!b)if(this.Mb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
m.sa=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new G(this);a.set(0,[]);return a.data()};m.restore=function(){return!0};m.hb=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};m.jc=function(){};m.mc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ie="buffer";
Ya(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new He(d);sb(d,c)}});function Je(a){r.call(this,"Debugger",a);this.U=+a.base||16;this.L=32;this.ja=null;this.T=["{","}"];this.ua=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.i={}}ja(Je,r);Je.prototype.ub=function(){return-1};Je.prototype.vb=function(){};
function Ke(a,b,c,d){if(c)if(b){0>a.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Da(b.substring(c,f))),c=f+1}}return a}function Le(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Me|0)&(c/Me|0))*Me+((b&c)>>>0)}
@ -182,7 +182,7 @@ function Qe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b){f=a.ub(b);if(0<=f)f=a.
function We(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.U?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(a,c,a.L,2,32>=a.L?8:6)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.u((null!=b?b+": ":"")+d);return e}function Xe(a){var b=a.i;a.i={};return b}function Ye(a,b){if(b)return We(a,b,a.i[b].value);var c=0;for(b in a.i)We(a,b,a.i[b].value),c++;return 0<c}
function L(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.U){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=va(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=wa(b,0<c?Math.ceil(.3*c):0);break;default:b=n(b,0<c?c+3>>2:0,!!e)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var Te={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Se={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Me=Math.pow(2,32);
function Ze(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.T=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];$e(this);this.W=this.qa=0;this.j=[];this.Da=void 0;af(this);this.D=this;this.wa={};this.ca=this.Fb=0;this.ba=null;this.R=[];bf(this,a.messages);this.va=a.commands;this.Ha=[];this.O=0;this.Oa=this.Ea=null;this.F=this.La=this.Ka=this.oa=this.Ca=0;this.xa=this.na=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
function Ze(a){Je.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.T=["<",">"];this.ua=[];this.Ia=Z();this.M=Z(0);this.pa=Z(0);this.ka=Z(0);this.I=[];this.b=this.N=this.K=[];$e(this);this.W=this.qa=0;this.j=[];this.Da=void 0;af(this);this.D=this;this.wa={};this.ca=this.Fb=0;this.ba=null;this.R=[];bf(this,a.messages);this.va=a.commands;this.Ha=[];this.O=0;this.Oa=this.Ea=null;this.F=this.La=this.Ka=this.oa=this.ya=0;this.xa=this.na=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return ed(b,
a)}):void 0===global[v]&&(global[v]=function(a){return ed(b,a)})}ja(Ze,Je);function cf(a){a=a&&a.B;null==a&&(a=-1);return a}function Z(a,b,c){return{B:void 0===a?null:a,fb:void 0===b?!1:b,ra:!1,U:c}}function df(a,b,c,d){a.B=b;a.fb=c||!1;a.ra=!1;a.U=d}function ef(a){return[a.B,a.fb,a.ra,a.U,a.ib]}function ff(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.Ab=Ke(a,c.ib=b[4]));return c}m=Ze.prototype;
m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.na=a.j;this.Ga=b.F;(b=$c(a,"messages"))&&bf(this,b);if(a=$c(a,"commands"))this.va=a;gf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=cf(hf(d,c,d.pa));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.G.i;k=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[e];p.type==c?l++||d.u("..."):(c=p.type,l=Hc[c],p&&d.u(n(p.id,8)+" %"+
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Ya,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Oc&&(c=-1),l=0);a+=16384;e++}}});Mb(this)};
@ -194,21 +194,21 @@ null;switch(f[1].toLowerCase()){case "ops":h=0}if(null==h)break;b=b.replace(f[0]
function jf(a,b){0>a&&a>=-B&&(a+=D);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function lf(a,b){return L(a,b/Tb,18)+" "+L(a,b%Tb,18)}
function bf(a,b){a.D=a;a.ca=a.Fb=536870916;a.ba=null;a.R=[];b=Ke(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in bc){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.ca|=bc[c],a.u(c+" messages enabled"))}}function gf(a,b){for(var c in bc)if(16==bc[c]){a.wa[c]=b;break}}m.ub=function(a){return mf.indexOf(a.toUpperCase())};
m.vb=function(a){var b,c=this.v;switch(a){case nf:b=c.i;break;case of:b=c.I;break;case pf:b=c.b;break;case qf:b=c.j&x;break;case rf:b=c.j&131072?1:0;break;case sf:b=c.j&65536?1:0;break;case tf:b=c.j&32768?1:0;break;case uf:b=c.j&32?1:0;break;case vf:b=c.j&262144?1:0}return b};
m.message=function(a,b){b&&(a+=" @"+L(this,Z(this.v.Ea).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.R.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.P)||Nb(this,!0))this.Y(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.na=0,a.H&&K(a.H,void 0))}};
m.message=function(a,b){b&&(a+=" @"+L(this,Z(this.v.pa).B,18));if(!this.ba||a!=this.ba)if(this.ba=a,this.ca&1073741824)this.R.push(a);else{var c;if(this.ca&-2147483648&&this.v&&(c=this.v.A.P)||Nb(this,!0))this.Y(),c&&(a+=" (cpu halted)");this.u(a);this.v&&(a=this.v,md(a),a.na=0,a.H&&K(a.H,void 0))}};
function af(a){var b;if(!td(a))a.j&&a.j.length&&a.u("instruction history buffer freed"),a.W=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(wf);for(b=0;b<a.j.length;b++)a.j[b]=Z();a.W=0;a.u("instruction history buffer allocated")}}function xf(a,b,c){if(!yf(a,c))return!1;sc(a.v,b);return!0}
function tc(a,b,c,d){if(!yf(a))return!1;var e="";null===c&&(e=(c=!a.Ea||"tr"==a.Ea)?"tr":"t");a.F=0;b||td(a)&&ud(a,a.v.i,0);try{b=kd(a.v,b);var f=a.v.$a(b);0<f&&(uc(a.v,f),a.F+=f,vc(a.v,f,!0),wc(a.v,f),a.oa++)}catch(g){"number"!=typeof g&&(a.F=0,yb(a.v,g.stack||g.message))}!1!==d&&(a.na&&a.na.stop(),K(a.H,-1));cd(a,c||!1,e);return 0<a.F}m.Y=function(a){this.v&&this.v.Y(a)};function cd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(zf+c),df(a.M,a.v.i),b&&1!=a.O?Af(a):Bf(a))}
function yf(a,b){var c;(c=!a.v||!Bb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.P?(b||a.u("cpu busy or unavailable, command ignored"),!1):!zb(a.v)}m.Ba=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){af(this);this.oa=0;this.ba=null;this.F=0;df(this.M,this.v.i);this.A.P=!1;Cf(this);a||cd(this)};
function yf(a,b){var c;(c=!a.v||!Bb(a.v))||(c=a.v,c.A.aa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.v.A.P?(b||a.u("cpu busy or unavailable, command ignored"),!1):!zb(a.v)}m.Ca=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};m.sa=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){af(this);this.oa=0;this.ba=null;this.F=0;df(this.M,this.v.i);this.A.P=!1;Cf(this);a||cd(this)};
m.save=function(){var a=new G(this);a.set(0,ef(this.M));a.set(1,ef(this.pa));a.set(2,ef(this.ka));a.set(3,[this.w,this.V,this.ca]);a.set(4,this.I);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=ff(this,a[b++]),this.pa=ff(this,a[b++]),this.ka=ff(this,a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.V=a[b][1],this.ca|=a[b][2]);a[4]&&(this.I=a[4]);return!0};m.start=function(a,b){this.O||this.u("running");this.A.P=!0;this.Ka=a;this.La=b};
m.stop=function(a,b){if(this.A.P){this.A.P=!1;this.F=b-this.La;if(!this.O){b="stopped";if(this.F){a-=this.Ka;var c=0<a?Math.round(1E3*this.F/a):0;b+=" (";td(this)&&(b+=this.oa+" instructions, ",this.oa=0);b+=this.F+" cycles, "+a+" ms, "+c+" hz)"}else Pb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}cd(this,!0);dd(this);Cf(this,this.v.i);this.ba=null}};function td(a){return 1<a.b.length||!!a.qa}
function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=sd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Xc(a,b,1,a.b)))return!0;0<=c&&a.j.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(df(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1}
function ud(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.pa==b&&(b=sd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Xc(a,b,1,a.b)))return!0;0<=c&&a.j.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(df(a.j[a.W],b),++a.W==a.j.length&&(a.W=0)));return!1}
function Df(a,b,c,d){var e=Z(b.B),f=a.Na(b,1),g,h,k,l=0,p=f/Yb|0,u;for(u in Ef)if(g=Ef[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Ff;l=p&3;break;case 32256:k=Gf;l=p&7;break;case 29248:k=Hf,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>If&&(k="B");k=Jf[g||0]+k;if(g){if(28700==h)h=f/Zb&127,l=L(a,h,-1);else for(h=f>>23&15,l=L(a,h,-1),p=0;l&&p<Kf.length;p++)if(g==Kf[p][0]&&(u=Kf[p][h])){k=Jf[u];l="";break}k=Ca(k,8)+(l?l+",":"");f&4194304&&(k+="@");k+=L(a,f&262143,-1);(f=f>>18&15)&&(k+="("+L(a,f,
-1)+")")}else k=Ca(k,8)+lf(a,f);f=k;g="";h=L(a,e.B,18)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.Na(e,1),g+=" "+lf(a,k),null==e.B)break;while(e.B!=b.B)}h+=Ca(g,16)+f;c&&(h=Ca(h,48)+";"+(c||""),h=a.v.A.Va?h+("cycles="+fd(a.v).toString()+" cs="+n(a.v.Ha)):h+(null!=d?"="+d.toString():""));return h}
function Lf(a,b,c,d,e,f){var g=-1,h,k;a.ja=null;if(b){for(var l=b.toUpperCase(),p=0;p<Kf.length;p++)for(var u in Kf[p])if(+u&&(k=Kf[p][u],l==Jf[k])){l=Jf[Kf[p][0]];c&&(c=L(a,+u)+","+c);break}for(var A in Ef){h=+A;u=Ef[A];switch(h){case 32512:p=Ff;break;case 32256:p=Gf;break;case 29248:p=Hf;break;default:p=[""]}for(var J in u){k=u[J];for(var F=0;F<p.length;F++){var ka=p[F];"S"==ka&&k>If&&(ka="B");if(l==Jf[k]+ka){g=29248!=h?F:(F&3)<<1|(F&12)<<2;g=(J|g<<6)*Yb;break}}if(0<=g)break}if(0<=g)break}!(0>g)||
c&&c.match(/^[0-9A-Z$%.?]/i)||(c=b+c,b="",g=0)}else c&&(g=h=0);if(0<=g&&c)for(l=c.split(","),A=0;A<l.length;A++)if(k=l[A].trim()){if(1<A){a.u("too many operands: "+c);g=-1;break}J=k.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!J){a.u("unknown operand: "+k);g=-1;break}J[1]&&(g+=4194304);if(k=J[3]){k=Ve(a,k,e);if(void 0==k){g=-1;break}if(0>k||15<k)k&=15;g+=k<<18}k=J[2];if(A||1==l.length)k=k?k.replace(/(^|[^0-9])\./g,"$1"+L(a,d,18)):"0";k=Ve(a,k,e);if(void 0==k){g=-1;break}if(!A&&1<l.length)if(28700==h){if(0>
k||127<k)k&=127;g+=k*Zb}else{if(0>k||15<k)k&=15;g+=k<<23}else{if(b||A)if(0>k||262143<k)k&=Sb;g+=k}}0>g&&!f&&a.u("unknown instruction: "+b+" "+c);return g}function $e(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=cf(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=cf(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.Ca=0;a.qa=0}
k||127<k)k&=127;g+=k*Zb}else{if(0>k||15<k)k&=15;g+=k<<23}else{if(b||A)if(0>k||262143<k)k&=Sb;g+=k}}0>g&&!f&&a.u("unknown instruction: "+b+" "+c);return g}function $e(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=cf(c);var d=a.G;Wc(d.b[c>>>d.i],!1)}a.N=["br"];if(a.K)for(b=1;b<a.K.length;b++)c=a.K[b],c=cf(c),d=a.G,Wc(d.b[c>>>d.i],!0);a.K=["bw"];a.ya=0;a.qa=0}
m.Ra=function(a,b,c){var d=!0;c||Mf(this,a,b,!1,!0);if(a!=this.b){var e=cf(b);if(-1===e)this.u("invalid address: "+L(this,b.B,18)),d=!1;else{var f=this.G;f.b[e>>>f.i].Ra(e&16383,a==this.K)}}d&&(a.push(b),c?b.ra=!0:(Nf(this,a,a.length-1,"set"),af(this)));return d};function Mf(a,b,c,d,e){var f=!1;c=cf(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==cf(h)&&(!d||h.ra)){f=!0;h.ra||e||Nf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Wc(d.b[c>>>d.i],b==a.K));h.ra||af(a);break}}return f}
function Of(a,b){for(var c=1;c<b.length;c++)Nf(a,b,c);return b.length-1}function Nf(a,b,c,d){c=b[c];a.u(b[0]+" "+L(a,c.B,18)+(d?" "+d:c.ib?' "'+c.ib+'"':""))}function Cf(a,b){if(void 0!==b)Xc(a,b,1,a.b,!0),a.O=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ra){if(!Mf(a,a.b,c,!0))break;b=0}}}
function Xc(a,b,c,d,e){var f=!1;if(!a.Ca++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=cf(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Mf(a,d,h,!0),e=!0);if(p=h.Ab){for(var f=!1,u=0;u<p.length;u++)if(!Pf(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var A=u+1;A<p.length&&p[A].indexOf("else");A++)u++;if(A==p.length){f=!0;break}}a.v.A.P||(f=!0)}if(f){e||Nf(a,d,g,"hit");break}}}a.Ca--;return f}
function Xc(a,b,c,d,e){var f=!1;if(!a.ya++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ra)for(var k=cf(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Mf(a,d,h,!0),e=!0);if(p=h.Ab){for(var f=!1,u=0;u<p.length;u++)if(!Pf(a,p[u],!0)){if(p[u].indexOf("if")){f=!0;break}for(var A=u+1;A<p.length&&p[A].indexOf("else");A++)u++;if(A==p.length){f=!0;break}}a.v.A.P||(f=!0)}if(f){e||Nf(a,d,g,"hit");break}}}a.ya--;return f}
function Qf(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,f=va(d,2);df(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<mf.length;d++)(e=mf[d]||"")&&(e+="="+L(a,a.vb(d),d>=rf?1:d==of?23:18)+" "),b+=e;c+="\n"+b}return c}m.Hb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function De(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,l=h.a;if(void 0!==k){var p=f,k=[k>>>0,g],u=Ga(p,k,a.Hb);0>u&&p.splice(-(u+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,Z:e,Cb:f})}function Rf(a,b,c){var d=[],e=cf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Wb;if(e>=g&&e<g+h){e=Ga(f.Cb,[e-g],a.Hb);0<=e?rg(a,b,e,d):c&&(e=~e,rg(a,b,e-1,d),rg(a,b,e,d));break}}return d}
function tg(a,b,c){var d=a.G,e=0,f=null,g=0;b.forEach(function(a,b){d.b[(b&d.j)>>>d.i].g(a,b&16383,b);null==f&&(f=b);b>g&&(g=b);e++});e?(b="start address ",null!=c?(I(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),cd(a)):a.u("no data")}function rg(a,b,c,d){var e={},f=a.I[b].Cb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].Z[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
@ -216,13 +216,13 @@ function ug(a,b){var c=b[0].substr(1),d=b[1]&&"0"<=b[1][0]&&"9">=b[1][0]?b[1]:vo
(c||h));a.xa=null;b||ed(a)});return!1}b.shift();b.shift();b.shift();b=Lf(a,e,b.join(""),f.B||0);0<=b&&(a.zb(f,b),a.u(Df(a,f)));return!0}function wg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ye(a)||a.u("no variables"),!0;if(!c[2])return Ye(a,c[1]);if(!c[3])return delete a.i[c[1]],!0;b=Ve(a,c[3]);return void 0!==b?(a.i[c[1]]={value:b,ja:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
function xg(a,b,c){var d=null;b=hf(a,b);var e=Rf(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.B-e[1])&&(g=" + "+n(f,4,!0)),f=e[0]+" ("+L(a,e[1],18)+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.B)&&(g=" - "+n(f,4,!0)),f=e[4]+" ("+L(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
function Af(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=a.v,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)e=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=Ve(a,b);if(void 0===g)return;b=a.ub(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case nf:I(h,
g);df(a.M,h.i);break;case qf:rd(h,g);break;case rf:f=131072;break;case sf:f=65536;break;case tf:f=32768;break;case uf:f=32;break;case vf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Qf(a,e));c&&(df(a.M,0<=d.O?d.O:d.i),Bf(a,L(a,a.M.B,18)))}}function yg(a,b){b=Da(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):We(a,null,c[2].charCodeAt(0)):Ve(a,b,!1)}
g);df(a.M,h.i);break;case qf:rd(h,g);break;case rf:f=131072;break;case sf:f=65536;break;case tf:f=32768;break;case uf:f=32;break;case vf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Qf(a,e));c&&(df(a.M,0<=d.O?d.O:d.I&4194304?d.pa:d.i),Bf(a,L(a,a.M.B,18)))}}function yg(a,b){b=Da(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):We(a,null,c[2].charCodeAt(0)):Ve(a,b,!1)}
function zg(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Qe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Ea=b;Va(c,function(){return Ob(a,!0)&&tc(a,e,d,!1)},function(){a.na&&a.na.stop();K(a.H,-1);Ob(a,!1)})}}
function Bf(a,b,c,d){b=hf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Qe(a,c.substr(1)),null!=c&&(d=c);else{d=hf(a,c);if(d.B<b.B)return;e=d.B-b.B;if(256<e){a.u("range too large");return}d=-1}for(c=0;0<e&&d--;){var f=Nb(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Rf(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var l=h[0]+":";h[2]&&(l+=" "+h[2]);a.u(l)}h[3]&&(g=h[3],f=null);h=a.ka;l=b;h.B=l.B;h.fb=l.fb;h.ra=l.ra;h.U=l.U;a.u(Df(a,b,g,f));e-=b.B-k;c++}}
function Pf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(zf+b):(a.V&&(a.u("ended assemble at "+L(a,a.ka.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ba=null;if(Bb(a)&&0<b.length){a.V&&(b="a "+L(a,a.ka.B,18)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),l=1;l<h.length;l++){var p=h.charAt(l);if("?"==k||"r"==k||"a">p||"z"<p){g[0]=h.substr(l);g.unshift(h.substr(0,l));break}}switch(g[0].charAt(0)){case "a":d=
ug(a,g);break;case "b":var u=g[0],A=g[1],J=b;if("?"==A)a.u("breakpoint commands:"),a.u("\tbp #\tset exec breakpoint"),a.u("\tbr #\tset read breakpoint"),a.u("\tbw #\tset write breakpoint"),a.u("\tbc #\tclear breakpoint (* to clear all)"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");else{var F=u.charAt(1);if("l"==F){var ka;ka=0+Of(a,a.b);ka+=Of(a,a.N);(ka+=Of(a,a.K))||a.u("no breakpoints")}else if("n"==F){var Ab=+A||0;A&&(a.qa=Ab);a.u("break after "+Ab+" instruction(s)")}else if(void 0===
A)a.u("missing breakpoint address");else{var H="*"==A?Z():hf(a,A,a.M);"c"==F?null==H.B?($e(a),a.u("all breakpoints cleared")):Mf(a,a.b,H)||Mf(a,a.N,H)||Mf(a,a.K,H)||a.u("breakpoint missing: "+L(a,H.B,18)):null!=H.B&&(kf(a,H,J),"p"==F?a.Ra(a.b,H):"r"==F?a.Ra(a.N,H):"w"==F?a.Ra(a.K,H):a.u("unknown breakpoint command: "+F))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var hb,ib=g[0],qa=g[1],Ea=g[2],Jh=g[3];if("?"==qa){var jb="";for(hb in bc)a.wa[hb]&&(jb&&(jb+=","),jb+=hb);jb+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");jb.length&&a.u("dump extension commands:\n\t"+jb)}else if("state"==qa){var Ld=Ag(a.H,!0);"console"==Ea?console.log(Ld):(a.za&&(a.za.value=""),Ld&&a.u(Ld))}else if("symbols"==qa)for(var Md=0;Md<a.I.length;Md++){var Nd=a.I[Md],kb;for(kb in Nd.Z)if("."!=kb.charAt(0)){var Sf=Nd.Z[kb].o;if(void 0!==Sf){var Tf=
A)a.u("missing breakpoint address");else{var H="*"==A?Z():hf(a,A,a.M);"c"==F?null==H.B?($e(a),a.u("all breakpoints cleared")):Mf(a,a.b,H)||Mf(a,a.N,H)||Mf(a,a.K,H)||a.u("breakpoint missing: "+L(a,H.B,18)):null!=H.B&&(kf(a,H,J),"p"==F?a.Ra(a.b,H):"r"==F?a.Ra(a.N,H):"w"==F?a.Ra(a.K,H):a.u("unknown breakpoint command: "+F))}}break;case "c":a.Aa&&(a.Aa.value="");break;case "d":a:{var hb,ib=g[0],qa=g[1],Ea=g[2],Jh=g[3];if("?"==qa){var jb="";for(hb in bc)a.wa[hb]&&(jb&&(jb+=","),jb+=hb);jb+=",state,symbols";
a.u("dump memory commands:");a.u("\tdw [a] [n] dump n words at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");jb.length&&a.u("dump extension commands:\n\t"+jb)}else if("state"==qa){var Ld=Ag(a.H,!0);"console"==Ea?console.log(Ld):(a.Aa&&(a.Aa.value=""),Ld&&a.u(Ld))}else if("symbols"==qa)for(var Md=0;Md<a.I.length;Md++){var Nd=a.I[Md],kb;for(kb in Nd.Z)if("."!=kb.charAt(0)){var Sf=Nd.Z[kb].o;if(void 0!==Sf){var Tf=
Nd.Z[kb].l;Tf&&(kb=Tf);a.u(L(a,Sf,18)+" "+kb)}}}else{if("d"==ib){for(hb in bc)if(g[1]==hb){var Uf=a.wa[hb];Uf?(g.shift(),g.shift(),Uf(g)):a.u("no dump registered for "+qa);break a}qa||(ib=a.Oa||"dw")}else a.Oa=ib;if("dh"==ib){var Vf=qa,Wf=Ea,Xf="",Yf=0,la=a.W,ra=a.j;if(ra.length){var ea=+Vf||a.Da,Cb=+Wf||10;isNaN(ea)?ea=Cb:Xf="more ";ea>ra.length&&(a.u("note: only "+ra.length+" available"),ea=ra.length);la-=ea;0>la&&(null==ra[ra.length-1].B?(ea=la+ea,la=0):la+=ra.length);var Od=[];"call"==Wf&&(Cb=
1E5,Od=["CALL"]);for(void 0!==Vf&&a.u(ea+" instructions earlier:");0<Cb&&la!=a.W;){var Zf=ra[la++];if(null==Zf.B)break;var Db=Z(Zf.B),Kh=ea--,$f=Df(a,Db,"history",Kh);(!Od.length||0<=$f.indexOf(Od[0]))&&a.u($f);Db.sb&&(la+=Db.sb,Cb-=Db.sb,ea-=Db.sb);la>=ra.length&&(la=0);a.Da=ea;Yf++;Cb--}}Yf||(a.u("no "+Xf+"history available"),a.Da=void 0)}else{var Na=0,ag="ds"==ib,Eb=hf(a,qa,a.pa);Ea&&("l"==Ea.charAt(0)?(Ea=Ea.substr(1)||Jh,Na=Qe(a,Ea)):Na=hf(a,Ea).B-Eb.B,0>Na&&(Na=0),65536<Na&&(Na=65536));var Lh=
a.U;Eb.U&&(a.U=Eb.U);for(var bg="db"==ib?1:2,Pd=Na||32,Qd=1==bg?1:4,Mh=(Pd+Qd-1)/Qd|0||1,Oa="";Mh--&&0<Pd;){for(var sa="",Rd="",qa=L(a,Eb.B,18),cg=Qd;0<cg--&&0<Pd--;){var Sd=a.Na(Eb,1);ag?(sa&&(sa+=","),sa+=Sd):(sa+=lf(a,Sd),sa+=" ");for(var Ic=29,Nh=0;1==bg&&0<=Ic;Nh++)var Fb=Sd/Math.pow(2,Ic)%Math.pow(2,7),sa=sa+(L(a,Fb,7)+" "),Fb=Fb+0,Rd=Rd+(32>Fb?".":String.fromCharCode(Fb)),Ic=Ic-7}Oa&&(Oa+="\n");Oa=ag?Oa+(sa+","):Oa+(qa+": "+sa+(0>cg?" "+Rd:""))}Oa&&a.u(Oa);a.U=Lh}}}break;case "e":if("else"==
@ -231,7 +231,7 @@ a.Y()):Nb(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var Wd;v
1)){for(var Rh=a,Jc=Yd,ig=null,Jb=Jc.B,jg=Jb,Zd=1;6>=Zd&&Jb;Zd++){if(2<Zd){Jc.B=Jb;var Kc=Df(Rh,Jc);if(0<=Kc.indexOf("JSR")){var kg=Kc.indexOf(" ");if(Jb+(Kc.indexOf(" ",kg+1)-kg-1)/2==jg){ig=Kc;break}}}Jb-=2}Jc.B=jg;if(Pa=ig)break}}if(!Pa||null==Pa)break;var lg=null;if("ks"==Ph){var mg=Pa.match(/[0-9A-F]+$/);mg&&(lg=xg(a,mg[0]))}Pa=Ca(Pa,50)+" ;"+(lg||"stack="+L(a,Ib.B,18));a.u(Pa);Xd++}Xd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){xg(a,g[1],!0);break}f=!0;break;case "m":a:{var ta,
ua=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Fa=0;if("all"==N)Fa=1879046143,N=null;else if("on"==N)ua=!0,N=null;else if("off"==N)ua=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(ta in bc)if(N==ta){Fa=bc[ta];ua=!!(a.ca&Fa);break}if(!Fa){a.u("unknown message category: "+N);break a}}if(Fa)if("on"==g[2])a.ca|=Fa,ua=!0;else if("off"==g[2]&&(a.ca&=~Fa,ua=!1,1073741824==Fa)){for(var ng=1E3<=a.R.length?a.R.length-1E3:0;ng<a.R.length;)a.u(a.R[ng++]);a.R=[]}}var Sh=0,Kb="";for(ta in bc)if(!N||
N==ta){var Th=!!(a.ca&bc[ta]);if(null===ua||ua==Th)Kb&&(Kb+=","),++Sh%10||(Kb+="\n\t"),"key"==ta&&(ta="keys"),Kb+=ta}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ua?ua?"messages on: ":"messages off: ":"message categories:\n\t")+(Kb||"none"));af(a)}break;case "p":if("print"==g[0]){yg(a,b.substr(5));break}var og=g[0],pg="p"==og?0:"pr"==og?1:-1;if("?"==g[1]||0>pg)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");
else if(a.O)a.u("step in progress");else{var qg=Z(a.v.i);a.Na(qg);a.O?(a.Ra(a.b,qg,!0),xf(a)||(a.H&&jd(a.H),a.O=0)):zg(a,pg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Af(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var lb=+g[2];if(2==lb||8==lb||10==lb||16==lb)a.U=lb;else{a.u("invalid base: "+lb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.pa=Lb;break;case "start":a.v.Ia=Lb;break;case "stop":a.v.ua=Lb;
else if(a.O)a.u("step in progress");else{var qg=Z(a.v.i);a.Na(qg);a.O?(a.Ra(a.b,qg,!0),xf(a)||(a.H&&jd(a.H),a.O=0)):zg(a,pg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Af(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var lb=+g[2];if(2==lb||8==lb||10==lb||16==lb)a.U=lb;else{a.u("invalid base: "+lb);break}}a.u("default base: "+a.U);break;case "cs":var Lb;void 0!==g[3]&&(Lb=+g[3]);switch(g[2]){case "int":a.v.qa=Lb;break;case "start":a.v.Ia=Lb;break;case "stop":a.v.va=Lb;
break;default:a.u("unknown cs option");break a}void 0!==Lb&&bd(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(gd(a.v,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ka+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":zg(a,g[0],g[1]);break;case "u":Bf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){wg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.nb+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){yg(a,b.substr(1));break}var $d="commands:",ae;for(ae in Bg)$d+="\n"+Ca(ae,9)+Bg[ae];td(a)||($d+="\nnote: history disabled if no exec breakpoints");
a.u($d);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(sg){a.u("Debugger "+(sg.stack||sg.message)),d=!1}return d}function ed(a,b,c){null!=b&&(a.Ha=Ke(a,b,c));for(;b=a.Ha.shift();)if(!Pf(a,b))return!1;return!0}
@ -242,8 +242,8 @@ nf=0,of=1,pf=2,qf=3,rf=4,sf=5,tf=6,uf=7,vf=8,mf="PC RA EA PS OV C0 C1 ND PD".spl
function vg(a,b,c,d,e){this.la=b;this.W=c||"";this.b=d;this.done=e;this.H=null;this.v={};this.N={};this.R=[];this.O=[];this.S=[];this.ea=[];this.ba=this.V=this.ia=0;this.X=this.la||0;this.Fa=-1;this.w=[];this.M=null;this.i=0;this.L=null;this.J=this.I="";this.ga=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;this.D=this.j=null;this.C="";this.G=[];this.K=0;this.F=a.split(";");this.T=[];Dg(this)}
function Dg(a){if(a.K==a.F.length)a.done(Eg(a));else{var b=a.F[a.K];a.u("loading "+xa(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ia(b,null,!0,function(b,d,e){if(e)a.done(e,b);else{e=d;if(za(b,".html")){e="";var c;for(b=/<pre>([\s\S]*?)<\/pre>/gi;c=b.exec(d);)c=c[1],0<=c.indexOf("&")&&(c=c.replace(/&lt;/gi,"<").replace(/&gt;/gi,">").replace(/&amp;/gi,"&")),e+=c;(c=e.match(/&[a-z]+;/i))&&Fg(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);if(d.length&
1){if(c=d.pop())Fg(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Fg(a,"unexpected number of lines ("+d.length+")");a.G=a.G.concat(d);a.T[a.K]=d.length>>1;a.K++;setTimeout(function(){Dg(a)},0)}})}}
function Eg(a){if(0<=a.W.indexOf("p"))return a.u(a.G.join("")),0;var b=Xe(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Gg(a)+": "+a.G[c]);if(!Hg(a,a.G[c]+"\r\n"))break;if(null!==a.H)break}a.i&&a.error("open block",a.v[a.L].ia);a.w.length&&a.error("open scope",a.w[0].ia);for(var d=a.X,c={},e=0;e<a.R.length;c={S:c.S,Ta:c.Ta,Aa:c.Aa},e++){c.Aa=a.R[e];c.S=[];c.Ta=0;c.Aa.S.forEach(function(a){return function(b,c){c===a.S.length&&a.S.push(b);a.Ta++}}(c));if(c.Ta==c.S.length)for(var f=
d;f+c.Ta<=a.X;f++){for(var g=void 0,g=0;g<c.Ta&&c.S[g]===a.S[f+g]&&c.Aa.ea[g]==a.ea[f];g++);if(g==c.Ta){Ig(a,c.Aa.name,f,Jg);c.Aa=null;break}}c.Aa&&(Ig(a,c.Aa.name,a.X,Jg),c.Aa.S.forEach(function(b){return function(c,d){Kg(a,c,b.Aa.ea[d])}}(c)))}for(d=0;d<a.O.length;d++){var h=a.O[d],k=a.v[h];k?Lg(a,k.ma):a.error("missing definition for variable '"+h+"'")}a.ea.forEach(function(b,c){var d=Mg(a,b,!1,c);void 0===d?a.error("unable to parse expression '"+b+"'"):(d+=a.S[c],a.S[c]=Ng(a,d,c))})}catch(l){a.u(l.message),
function Eg(a){if(0<=a.W.indexOf("p"))return a.u(a.G.join("")),0;var b=Xe(a.b);try{for(var c=0;c<a.G.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Gg(a)+": "+a.G[c]);if(!Hg(a,a.G[c]+"\r\n"))break;if(null!==a.H)break}a.i&&a.error("open block",a.v[a.L].ia);a.w.length&&a.error("open scope",a.w[0].ia);for(var d=a.X,c={},e=0;e<a.R.length;c={S:c.S,Ta:c.Ta,Ba:c.Ba},e++){c.Ba=a.R[e];c.S=[];c.Ta=0;c.Ba.S.forEach(function(a){return function(b,c){c===a.S.length&&a.S.push(b);a.Ta++}}(c));if(c.Ta==c.S.length)for(var f=
d;f+c.Ta<=a.X;f++){for(var g=void 0,g=0;g<c.Ta&&c.S[g]===a.S[f+g]&&c.Ba.ea[g]==a.ea[f];g++);if(g==c.Ta){Ig(a,c.Ba.name,f,Jg);c.Ba=null;break}}c.Ba&&(Ig(a,c.Ba.name,a.X,Jg),c.Ba.S.forEach(function(b){return function(c,d){Kg(a,c,b.Ba.ea[d])}}(c)))}for(d=0;d<a.O.length;d++){var h=a.O[d],k=a.v[h];k?Lg(a,k.ma):a.error("missing definition for variable '"+h+"'")}a.ea.forEach(function(b,c){var d=Mg(a,b,!1,c);void 0===d?a.error("unable to parse expression '"+b+"'"):(d+=a.S[c],a.S[c]=Ng(a,d,c))})}catch(l){a.u(l.message),
a.V=-1}a.b.i=b;return a.V}
function Hg(a,b,c,d,e){var f;if(a.i&&(1==a.i&&(f=b.indexOf(a.J),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.M+" definition in '"+b+"'")),1<a.i&&(b=Og(a,b)),a.i))return!0;null!=a.D&&(b=Pg(a,b));var g=!0;f="";for(var h;g;){h=b.match(a.ga);if(!h||h[5]&&";"!=h[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;g=!1;f=h[2].toUpperCase();if(f==Qg||f==Rg)c=null;if(c){for(var k=0;k<c.length;k++)for(var l=c[k],p=d[k]||e[k]||"",u=0,A=b.length-h[5].length;u<A;){var J=b.indexOf(l,u);if(0>
J)break;var u=J+1,F=J+l.length,ka="",Ab="";J&&(ka=b[J-1]).match(/[0-9A-Z$%.]/i)||!(F>=b.length)&&(Ab=b[F]).match(/[0-9A-Z$%.]/i)||("'"==ka&&J--,"'"==Ab&&F++,b=b.substr(0,J)+p+b.substr(F),u=J+p.length,g=!0)}c=null}}d=h[1];b=h[3];c=h[4].trim();h=h[4]+h[5];d&&(d=d.slice(0,-1),Ig(a,d,a.X,Jg));var H;f&&(H=c.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=H[1],c=H[2],"=="==f?e|=Sg:"=:"==f&&(e|=Tg),Ig(a,d,c,e),f=c="");if(!f&&!c)return!0;a.M=f;if(H=Ug(a,c))c=c.replace(H,Vg(a,Wg,Ug(a,h))),b||(b="\t");for(;H=Xg(a,c);)c=
@ -265,27 +265,27 @@ function Og(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.J)a.i++;else if(b[d]
function Ig(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Jg&&a.N[b])a.error("label '"+b+"' redefined");else{var e=null;if("string"==typeof c){e=Mg(a,c,!0);if(void 0===e){a.error("parseExpression("+c+") failed");return}c=e;e=a.b.ja}var f=a.N[b];f?(f.value=c,f.Xb=d,f.ia=a.ia):a.N[b]={name:b,value:c,Xb:d,ia:a.ia};a.b.i[b]={value:c,ja:e}}}function eh(a,b){var c=Mg(a,b,!0);void 0!==c?Kg(a,c,a.b.ja):a.error("unrecognized EXP expression '"+b+"'")}
function Kg(a,b,c){a.S[a.X]=Ng(a,b);null!=c&&(a.ea[a.X]=c);a.X++}function Ng(a,b,c){c=void 0===c?a.X:c;var d=Y(a.b,b||0,36,!0);(b<-B||b>=D)&&Fg(a,"truncated value "+va(b)+" at location "+va(c)+" to "+va(d));return d}vg.prototype.error=function(a,b){throw Error("error in "+Gg(this,b)+": "+a);};function Fg(a,b){a.u("warning in "+Gg(a,void 0)+": "+b)}vg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
var Jg=1,Sg=2,Tg=4,Zg="ASCII",$g="ASCIZ",bh="BLOCK",hh="DEFINE",ch="END",dh="EXP",ih="IFDEF",jh="IFE",kh="IFG",lh="IFL",mh="IFN",nh="IFNDEF",Qg="IRP",Rg="IRPC",qh="LALL",Wg="LITERAL",rh="LIST",fh="LOC",sh="NOSYM",oh="OPDEF",th="PAGE",ph="REPEAT",ah="SIXBIT",uh="SUBTTL",vh="TITLE",gh="XWD",wh="XLIST",Dh=-1,xh=-2,Eh=-3,Ch=-4;
function Fh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.R=null;Gh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.T=this.O=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Hh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.cb+".bus",busWidth:this.W},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.za)for(b=
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.za=this.j.za;this.u(Rb+" v1.34.3\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.Ma&&d.Ma(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Ih),this.b&&(this.I=new G(this,"1.34.3"),Uh(this.I)?b=null:
function Fh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.R=null;Gh(this,b);this.N=$c(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.T=this.O=!1;this.ba=$c(this,"url")||"";(Math.random()+.1).toString(36);this.i=Hh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new Ac({id:this.cb+".bus",busWidth:this.W},this.v,this.D);var d,e=pb(this.id);if((this.j=rb("Panel",this.id))&&this.j.Aa)for(b=
0;b<e.length;b++)d=e[b],d.ha=this.j.ha,d.u=this.j.u,d.Aa=this.j.Aa;this.u(Rb+" v1.34.3\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.Ma&&d.Ma(this,this.G,this.v,this.D);b=null;d=$c(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=$c(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Ih),this.b&&(this.I=new G(this,"1.34.3"),Uh(this.I)?b=null:
delete this.I);!b&&this.b&&(b=Vh(this))&&(this.K=!0);if(b){var g=this;Ia(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ha("Unable to load machine state from server (error "+c+(b?": "+Da(b):"")+")")):(g.L=b,g.V=!0);Mb(g)})}else Mb(this);this.J.power||(this.N=!0);!c&&this.N&&Wh(this,this.Xa)}else q("Unable to find CPU component")}ja(Fh,r);function Gh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.R=b}
function $c(a,b,c,d){var e=b.toLowerCase(),e=Ta(b)||Ta(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 Wh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Bb(f)){Bb(f,function(){Wh(a,b,c)});return}}b.call(a,c)}
function Xh(a,b){var c=new G(a,"1.34.3",Yh);if(Uh(c)&&Zh(c)){var d=c.get($h),e=b?b.get($h):"unknown";d!=e&&(a.ha("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Fh.prototype;
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?ai:Ih));if(!this.w){this.w++;var b=!1,c=!1;this.O=!1;var d=this.I||new G(this,"1.34.3");if(a==bi)b=!0;else if(a>Ih){if(Uh(d,this.L)){this.C=new G(this,"1.34.3",ci);Uh(this.C)&&(di(this,d),a=ei,fi(this.C));this.C.set($h,Ha());gi(this.C);var e=this.b&&!this.K;if(a==ai||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Zh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Uh(d,g):("error"==f&&"no machine state"!=
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Ra(hi,""),this.i=null)):this.u(f+": "+g),fi(d),Uh(d)?(c=Zh(d),e=!0):c=!1))}e&&Xh(this,c?d:null)}else a==ei&&d.clear()}else Xh(this);delete this.L;delete this.I}e=pb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.v&&(c=ii(this,g,d,b,c));b=[d,a,c];a!=bi?Wh(this,this.Ib,b):this.Ib(b)}};
function ii(a,b,c,d,e){if(!b.A.aa){b.A.aa=!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.Ba(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Ih,window&&window.location.reload()):a.O=!0,b.Ba(null),e=!1),!d&&b.Eb){var g=b.Eb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
function ii(a,b,c,d,e){if(!b.A.aa){b.A.aa=!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.Ca(f,d)&&f&&(q("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=Ih,window&&window.location.reload()):a.O=!0,b.Ca(null),e=!1),!d&&b.Eb){var g=b.Eb.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
m.Ib=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.aa=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(ii(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(di(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
function di(a,b){if(ob("There may be a problem with your "+Rb+" machine.\n\nTo help us diagnose it, click OK to send this "+Rb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.i||"";b=b.toString();var d={};d.app=Rb;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;Ia("http://www.pcjs.org/api/v1/report",d,!0)}}
function Ag(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.34.3"),g=new G(a,"1.34.3",Yh),h=Ha();g.set($h,h);f.set($h,h);f.set(ji,"1.34.3");f.set(ki,window?window.location.href:null);f.set(li,window?window.navigator.userAgent:"");a.v&&a.v.sa&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.sa(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.aa=!1,!1===d&&(e=null)));for(var h=pb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.aa&&(l.sa&&(d=l.sa(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.aa=
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.i&&mi(a,a.i,f.toString()),gi(g)&&gi(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==ni),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
m.reset=function(){this.A.reset=!0;this.G&&this.G.reset&&(Qb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Qb(this,"Resetting "+this.v.type),this.v.reset());for(var a=pb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Qb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;K(this,-1)};m.start=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
m.stop=function(a,b){for(var c=pb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.lb+=d))&&(e.textContent=c.A.P?c.ba.toFixed(2)+"Mhz":"Stopped",c.lb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?va(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Ca);kc(a,a.i);ec(a,a.w)}}
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.lb+=d))&&(e.textContent=c.A.P?c.ba.toFixed(2)+"Mhz":"Stopped",c.lb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;d=!!(a.v.C&8);if(0>=b||60<=(a.K+=b)){e=a.v.i;if(a.J.PC){var f=a.D&&a.D.U||8,e=e||0,e=8==f?va(e,void 0):n(e,void 0);a.J.PC.textContent!=e&&(a.J.PC.textContent=e)}a.K=0}-1>b?a.i=a.v.i:0<b&&c&&!d&&(a.i=a.v.Da);kc(a,a.i);ec(a,a.w)}}
m.ta=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.aa?Ag(d,!1,!0):Wh(d,d.Xa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.aa&&!d.w)if(d.b&&!d.F){var a=ob("Click OK to save changes to this "+Rb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ag(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Ih)}else d.reset(),d.v&&!d.D&&d.v.fa()},!0;case "save":if(za(Ka(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.J[b]=c,c.onclick=function(){var a=Hh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Ag(d,b);b?mi(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
function Hh(a,b){var c=a.i;c||((c=Qa(hi),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=oi(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
function oi(a,b){a.i=null;b=Ia(Ka()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ra(hi,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Vh(a){var b=null;a.i&&(b=Ka()+"/api/v1/user?req=load&user="+a.i+"&state="+pi(a,"1.34.3"));return b}
function mi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=pi(a,"1.34.3");d.data=c;b=Ia(Ka()+"/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.ha("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.ha(c),Ra(hi,""),a.i=null)}}
function jd(a,b){if(a.za){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.za.focus();!b&&window&&window.scrollTo(c,d)}}var ci="failsafe",Yh="validate",$h="timestamp",ji="version",ki="url",li="browser",hi="user",bi=-1,Ih=0,ai=1,ei=2,ni=3;Ya(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new Fh(g,d,!0);sb(g,f);g.N&&Wh(g,g.Xa)}});
function jd(a,b){if(a.Aa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Aa.focus();!b&&window&&window.scrollTo(c,d)}}var ci="failsafe",Yh="validate",$h="timestamp",ji="version",ki="url",li="browser",hi="user",bi=-1,Ih=0,ai=1,ei=2,ni=3;Ya(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=t(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=t(f),g=new Fh(g,d,!0);sb(g,f);g.N&&Wh(g,g.Xa)}});
Za.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.T&&!c.A.aa&&c.Xa(bi)}});Za.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=t(a[b]);(c=rb("Computer",c.id))&&c.A.aa&&Ag(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=pi(a,b,c);fi(this,a.Ub)}m=G.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
m.data=function(){return this.b};function Uh(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:La()&&(b=Qa(a.key))?(a.i=b,a.v=!0):!1}function Zh(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){q(c.message||c),b=!1}return b}function gi(a){var b=!0;if(La()){var c=JSON.stringify(a.b);Ra(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}m.toString=function(){return this.b?JSON.stringify(this.b):this.i};
function fi(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){fi(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 pi(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 qi=0;

View file

@ -44,7 +44,7 @@ function pa(){return"http://"+(window?window.location.host:"www.pcjs.org")}funct
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(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 Aa(a){if(!Ba){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," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Da(a){r.init.push(a)}
function Fa(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ha(a){!Ga&&a?(Ga=!0,Ia&&Ja("init"),Ka&&Ja("show")):Ga=a}function Ja(a){r[a]&&Fa(r[a])}var Ba=null,r={init:[],show:[],exit:[]},Ia=!1,Ka=!1,Ga=!0,wa=null;Ca("onload",function(){Ia=!0;Fa(r.init)});Ca("onpageshow",function(){Ka=!0;Fa(r.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Fa(r.exit)});
function t(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.u=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){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.Va=b.comment;this.ib=b;this.exports={};this.m=this.bindings={};a=this.id.indexOf(".");0>a?this.va=this.id:(this.wa=this.id.substr(0,a),this.va=this.id.substr(a+1));this.h={ready:!1,Aa:!1,Oa:!1,F:!1,error:!1};this.Ca=null;this.h.error=!1;this.w=this.j=this.s=this.v=this.ga=null;v.push(this)}function La(a,b,c){Ma[a]&&b&&(Ma[a][b]=c)}function Na(){return Date.now()||+new Date}
function q(a){window&&window.alert(a)}function Oa(a){var b=!1;window&&(b=window.confirm(a));return b}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Pa(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
function x(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function Qa(a,b){var c=z;b=A(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 m=h.split(" "),u=0;u<m.length;u++)switch(h=m[u],h){case c+"-binding":(h=y(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),u=m.length}}}}
@ -58,52 +58,52 @@ var Ma=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Sa=wind
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)});
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
var z="pdp10",Ya="PDPjs",Za=Math.pow(2,18)-1,$a=Math.pow(2,18),ab=Math.pow(2,17)-1,bb=Math.pow(2,17),C=Math.pow(2,18)-1,E=Math.pow(2,18),F=Math.pow(2,35)-1,G=Math.pow(2,35),I=Math.pow(2,36)-1,J=Math.pow(2,36),K=Math.pow(2,32),cb=Math.pow(2,34),db=Math.pow(2,36),eb=Math.pow(2,23),fb=Math.pow(2,30),z="pdp10",Ya="PDPjs";
function gb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.v=this.g=this.i=0;this.D=this.H=-1;this.K=this.L=this.o=!1;this.N=hb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.u=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
function gb(a,b){t.call(this,"Panel",a);this.A=this.C=0;this.P=b;this.f=this.u=this.g=this.i=0;this.D=this.H=-1;this.K=this.L=this.o=!1;this.N=hb;this.l={};this.a={START:[1,1,!0,!1,this.rb],STEP:[1,1,!1,!1,this.sb],ENABLE:[1,1,!1,!1,this.mb],CONT:[1,1,!0,!1,this.kb],DEP:[0,0,!0,!1,this.lb],EXAM:[1,1,!0,!1,this.nb],LOAD:[1,1,!0,!1,this.pb],TEST:[0,0,!0,!1,this.ob]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.qb,a];this.w=this.j=this.s=this.v=null;this.exports={hold:this.jb,toggle:this.Bb,reset:this.xb,
set:this.Ab};B(this)}l(gb,t);k=gb.prototype;k.reset=function(a){this.stop();a&&ib(this,this.i=0)};
k.U=function(a,b,c,d){if(this.u&&this.u.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.V=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
k.U=function(a,b,c,d){if(this.v&&this.v.U(a,b,c,d)||this.j&&this.j.U(a,b,c,d))return!0;switch(b){case "PC":return this.m[b]=c,this.C++,!0;default:return"led"==a||"rled"==a?(this.m[b]=c,this.l[b]=d?1:0,this.C++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.m[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):t.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;lb(this);mb(this)};k.V=function(a,b){if(!b)if(this.P&&nb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,[this.f,this.i,this.g]);return a.data()};
k.restore=function(a){if(a=a[0])ob(this,this.f=a[0]),ib(this,this.i=a[1]),pb(this,a[2]);return!0};k.xb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}mb(this);return!0};function qb(a,b,c){if(a=a.m[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function lb(a,b){for(var c in a.l)qb(a,c,null!=b?b:a.l[c])}function rb(a,b,c){if(a=a.m[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function mb(a){for(var b in a.a)rb(a,b,a.a[b][1])}
k.jb=function(a,b,c){if(jb(this,b)){if(c){var d=this;setTimeout(function(){kb(d,b);a&&a()},+c);return!1}kb(this,b)}return!0};
k.Ab=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d,e,f=0<a.indexOf(",");f&&(a=a.replace(/,/g,""));d=e=a.charAt(0);"#"==e?(b=8,e=""):"$"==e&&(b=16,e="");d!=e?a=a.substr(1):(d=e=a.substr(0,2),"0b"==e&&f||"^B"==e?(b=2,e=""):"0o"==e||"^O"==e?(b=8,e=""):"^D"==e?(b=10,e=""):"0x"==e&&(b=16,e=""),d!=e&&(a=a.substr(2)));d=e=a.slice(-1);"Y"==e||"y"==e?(b=2,e=""):"."==e?(b=10,e=""):"H"==e||"h"==e?(b=16,e=""):"K"==e?e="000":"M"==e?e="000000":"G"==e&&(e="000000000");d!=e&&(a=a.slice(0,-1)+e);var g;
d=0;if(e=a.match(/(-?[0-9]+)B([0-9]*)/))a=e[1],d=35-((e[2]||35)&255);e=a;((f=b)&&10!=f?16==f?e.match(/^-?[0-9a-f]+$/i):8==f?e.match(/^-?[0-7]+$/):2==f&&e.match(/^-?[01]+$/):e.match(/^-?[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(d&&(0>g&&(g+=Math.pow(2,36)),g=0<d?g*Math.pow(2,d):Math.trunc(g/Math.pow(2,-d))),c=g)}return pb(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,rb(this,a,c[1]),!0):!1};k.Bb=function(a){return jb(this,a)?(kb(this,a),!0):!1};
function jb(a,b){var c=a.a[b];return c?(rb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=sb&&(a.K=b==tb,a.L=b==ub),!0):!1}function kb(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(rb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}k.rb=function(a){a||this.j.h.B||(M(this.j,this.f),this.a[vb]&&this.a[vb][1]&&wb(this.j))};k.sb=function(){};k.mb=function(a){a||N(this.j)};
k.kb=function(a){if(!a&&!this.j.h.B)if(this.a[vb]&&this.a[vb][1])wb(this.j);else{a=this.w;var b;if(b=a)a.h.Aa&&(a.h.Oa=!0),b=!a.h.Aa;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Ga(1);0<c&&(xb(this.j,c),yb(this.j,c,!0),zb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.u&&Ab(this.u)}};k.lb=function(a){a&&!this.j.h.B&&(this.K&&Bb(this),a=ib(this,this.i=this.g),this.N==hb?Cb(this.s,this.f,a):this.j.c(this.f,a))};
k.kb=function(a){if(!a&&!this.j.h.B)if(this.a[vb]&&this.a[vb][1])wb(this.j);else{a=this.w;var b;if(b=a)a.h.Aa&&(a.h.Oa=!0),b=!a.h.Aa;if(b)Xa(a,!0),a.f(0,null),Xa(a,!1);else try{var c=this.j.Ga(1);0<c&&(xb(this.j,c),yb(this.j,c,!0),zb(this.j,c))}catch(d){"number"!=typeof d&&(c=this.j,a=d.stack||d.message,c.h.error=!0,c.G(a))}this.stop();this.v&&Ab(this.v)}};k.lb=function(a){a&&!this.j.h.B&&(this.K&&Bb(this),a=ib(this,this.i=this.g),this.N==hb?Cb(this.s,this.f,a):this.j.c(this.f,a))};
k.nb=function(a){if(!a&&!this.j.h.B){this.L&&Bb(this);if(this.N==hb){a=this.s;var b=this.f,c=a.a[(b&a.g)>>>a.f];a.i++;b=c.i(b&16383,b);a.i--;a=b}else a=this.j.b(this.f);ib(this,this.i=a)}};k.pb=function(a){a||this.j.h.B||ob(this,this.g)};k.ob=function(a){a?(this.o=!0,lb(this,!0)):(this.o=!1,lb(this),pb(this,0))};k.qb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};function Bb(a){var b=1,c=a.s.g;a.a[sb]&&a.a[sb][1]||(b=-b);ob(a,a.f&~c|a.f+b&c)}
function ob(a,b){a.f=b&a.s.g;if(a.D!==a.f){a.D=a.f;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||qb(d,e,f)}}}function ib(a,b){a.v=b%J;if(a.H!==a.v){a.H=a.v;b=a.H;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||qb(d,e,f)}}return a.v}function pb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;mb(a);return!0}k.stop=function(){ob(this,this.j.f)};
function nb(){for(var a=A(document,z,"panel"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=Pa(d.id);e||(e=new gb(d,!0));Qa(e,c)}}var hb=7,tb="DEP",vb="ENABLE",ub="EXAM",sb="STEP";Da(nb);function Db(a,b,c){t.call(this,"Bus",a);this.j=b;this.w=c;this.v=+a.busWidth||18;this.o=1<<this.v;this.g=this.o-1;this.f=Math.log2(16384);this.l=this.o/16384|0;this.i=0;this.a=[];a=new Eb(this);Fb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;B(this)}l(Db,t);k=Db.prototype;k.reset=function(){};
function ob(a,b){a.f=b&a.s.g;if(a.D!==a.f){a.D=a.f;b=a.D;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.o||qb(d,e,f)}}}function ib(a,b){a.u=b%J;if(a.H!==a.u){a.H=a.u;b=a.H;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.o||qb(d,e,f)}}return a.u}function pb(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;mb(a);return!0}k.stop=function(){ob(this,this.j.f)};
function nb(){for(var a=A(document,z,"panel"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=Pa(d.id);e||(e=new gb(d,!0));Qa(e,c)}}var hb=7,tb="DEP",vb="ENABLE",ub="EXAM",sb="STEP";Da(nb);function Db(a,b,c){t.call(this,"Bus",a);this.j=b;this.w=c;this.u=+a.busWidth||18;this.o=1<<this.u;this.g=this.o-1;this.f=Math.log2(16384);this.l=this.o/16384|0;this.i=0;this.a=[];a=new Eb(this);Fb(a);this.a=Array(this.l);for(b=0;b<this.l;b++)this.a[b]=a;B(this)}l(Db,t);k=Db.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.R=function(a){return a?this.save():!0};k.save=function(){var a=new L(this);a.set(0,Gb(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++],m=d[g++];h--;)f[e++]=m;d=f}e=this.a[c];if(!e||!e.restore(d)){q("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Hb(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],m=16384*g,u=16384-(e-m);u>f&&(u=f);if(h&&h.size){if(h.type==d){if(e+f<=h.fa)return h.Ea+=h.fa-e,h.fa=e,!0;if(e>=h.fa+h.Ea){u=h.size-(e-m);u>f&&(u=f);h.Ea=e-h.fa+u;e=m+16384;f-=u;g++;continue}}return Ib(Jb,e,f)}e=new Eb(a,e,u,16384,d);Fb(e,h);a.a[g++]=e;e=m+16384;f-=u}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Kb[d]+" at "+ka(b)),!0):Ib(Lb,b,c)}
function Cb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.i++;d.j(c,b&16383,b);a.i--}function Gb(a){for(var b=0,c=[],d=0;d<a.l;d++){var e=a.a[d];if(e.Pa||e.hb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,m=[];g<e.length;){for(var u=e[g],D=g+1;D<e.length&&e[D]===u;)D++;m[h++]=D-g;m[h++]=u;g=D}m.length<e.length&&(e=m)}c[f]=e}}return c}function Ib(a,b,c){q("Memory block error ("+a+": "+la(b)+","+la(c)+")");return!1}var Jb=1,Lb=2;function Mb(a){t.call(this,"Device",a)}l(Mb,t);k=Mb.prototype;
k.Z=function(a,b,c,d){this.s=b;this.u=a;this.j=c;this.w=d;B(this)};k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new L(this)).data()};k.restore=function(){return!0};Da(function(){for(var a=A(document,z,"device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new Mb(c),Qa(c,d)}}});
k.Z=function(a,b,c,d){this.s=b;this.v=a;this.j=c;this.w=d;B(this)};k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new L(this)).data()};k.restore=function(){return!0};Da(function(){for(var a=A(document,z,"device"),b=0;b<a.length;b++){var c,d=a[b];c=y(d);switch(c.type){case "default":c=new Mb(c),Qa(c,d)}}});
function Eb(a,b,c,d,e){this.m=a;this.id=Nb+=2;this.fa=b;this.Ea=c;this.size=d||0;this.type=e||Ob;this.s=e==Pb;this.b=this.i=this.Qa;this.c=this.j=this.Fa;this.f=this.g=0;Fb(this);this.Pa=this.hb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Qb(this,Rb)}else Qb(this)}k=Eb.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Pa=!0):!1};function Qb(a,b){b||(b=Sb);Tb(a,b,void 0);Ub(a,b,void 0)}
function Tb(a,b,c){c&&a.f||(a.b=b[0]||a.Qa);if(c||void 0===c)a.i=b[0]||a.Qa}function Ub(a,b,c){c&&a.g||(a.c=!a.s&&b[1]||a.Fa);if(c||void 0===c)a.j=b[1]||a.Fa}function Fb(a,b){a.f=a.g=0;b&&((a.f=b.f)&&Tb(a,Vb,!1),(a.g=b.g)&&Ub(a,Vb,!1))}k.Qa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;return-1};k.Fa=function(){var a=this.m;if(!a.i)throw N(a.j),-1;};k.vb=function(a){return this.a[a]};k.Eb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Pa=!0)};k.tb=function(a,b){return this.i(a,b)};
k.Db=function(a,b,c){this.s?this.Fa():this.j(a,b,c)};var Ob=0,Pb=2,Kb=["NONE","RAM","ROM"],Nb=0,Sb=[],Rb=[Eb.prototype.vb,Eb.prototype.Eb],Vb=[Eb.prototype.tb,Eb.prototype.Db];
function Wb(a,b){t.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.Ha=0;this.La=b;this.ja=c;this.Ja=Math.round(this.La/1E4)/100;this.ha=this.Ja*this.ja;this.Ka=this.pa=this.ba=this.za=0;this.h.B=this.h.Ra=!1;this.h.J=a.autoStart;"string"==typeof this.h.J&&(this.h.J="true"==this.h.J);this.h.Ba=!1;this.xa=this.ia=0;this.ya=+a.csStart;this.na=+a.csInterval;this.oa=+a.csStop;this.K=[];this.Xa=this.yb.bind(this);this.P=this.D=this.N=this.H=this.C=this.ma=this.L=this.ca=this.Ma=this.W=0;this.ta=
null;B(this)}l(Wb,t);k=Wb.prototype;k.Z=function(a,b,c,d){this.u=a;this.s=b;this.w=d;this.ta=a.g;for(a=0;a<Xb.length;a++)(b=this.m[Xb[a]])&&this.u.U(null,Xb[a],b);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Yb(this.u,"autoStart");null!=c?this.h.J="true"==c?!0:"false"==c?!1:!!c:null==this.h.J&&(this.h.J=void 0===this.m.run);if(!b){if(a){Zb(this);if(!this.restore(a))return!1;$b(this)}else this.reset();this.status("No debugger detected");this.h.J||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.h.B?!0:this.h.J?(wb(this),!0):!1};k.Za=function(){return 0};
null;B(this)}l(Wb,t);k=Wb.prototype;k.Z=function(a,b,c,d){this.v=a;this.s=b;this.w=d;this.ta=a.g;for(a=0;a<Xb.length;a++)(b=this.m[Xb[a]])&&this.v.U(null,Xb[a],b);B(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
k.V=function(a,b){var c=Yb(this.v,"autoStart");null!=c?this.h.J="true"==c?!0:"false"==c?!1:!!c:null==this.h.J&&(this.h.J=void 0===this.m.run);if(!b){if(a){Zb(this);if(!this.restore(a))return!1;$b(this)}else this.reset();this.status("No debugger detected");this.h.J||this.M("CPU will not be auto-started "+(this.ta?"(click Run to start)":"(type 'go' to start)"))}return!0};k.R=function(a){return a?this.save():!0};k.J=function(){return this.h.B?!0:this.h.J?(wb(this),!0):!1};k.Za=function(){return 0};
function $b(a){void 0===a.ya&&(a.ya=0);void 0===a.na&&(a.na=-1);void 0===a.oa&&(a.oa=-1);a.h.Ba=0<=a.ya&&0<a.na;a.h.Ba&&(a.xa=0,a.ia=a.ya-a.P)}function zb(a,b){if(a.h.Ba){var c=!1;a.xa=a.xa+a.Za()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.na,c=!0);0<=a.oa&&a.oa<=ac(a)&&(a.na=a.oa=-1,$b(a),N(a),c=!0);c&&a.M(ac(a)+" cycles: checksum="+la(a.xa))}}
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?N(d):wb(d))},!0;case "speed":return this.m[b]=
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.m[b]=c,!0;case "run":return this.m[b]=c,c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.h.F)a=!0;else{var b=null,c,h=w(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.F);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.h.B?N(d):wb(d))},!0;case "speed":return this.m[b]=
c,!0;case "setSpeed":return this.m[b]=c,c.onclick=function(){bc(d,d.ja<<1,!0)},c.textContent=this.ha.toFixed(2)+"Mhz",!0}return!1};function yb(a,b,c){a.P+=b;c&&(a.N=a.H=0)}function cc(a,b){var c=1;b&&1<a.ja&&a.W&&(c=a.W/a.Ja);a.Ka=Math.round(1E3/dc);a.pa=Math.floor(a.La/dc*c);b||(a.ba=a.pa);a.za=0}function ac(a){return a.P+a.D+a.N-a.H}function Zb(a){a.W=0;a.Ma=0;a.P=a.D=a.N=a.H=0;$b(a);bc(a,1)}
function bc(a,b,c){if(void 0!==b){.8>a.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.u&&(c=a.u,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.L=0;cc(a)}function ec(a){for(var b=[],c=0;c<a.K.length;c++)b.push(a.K[c][0]);return b}
function bc(a,b,c){if(void 0!==b){.8>a.W/a.ha&&(b=1);a.ja=b;b=a.Ja*a.ja;if(a.ha!=b){a.ha=b;b=a.ha.toFixed(2)+"Mhz";var d=a.m.setSpeed;d&&(d.textContent=b);a.M("target speed: "+b)}c&&a.v&&(c=a.v,c.ga&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ga.focus(),window&&window.scrollTo(b,d)))}yb(a,a.D);a.D=0;a.C=Na();a.L=0;cc(a)}function ec(a){for(var b=[],c=0;c<a.K.length;c++)b.push(a.K[c][0]);return b}
function xb(a,b){for(var c=a.K.length-1;0<=c;c--){var d=a.K[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fc(a,b){var c=a.N-=a.H;a.H=0;b&&(a.N=0);return c}
k.yb=function(){if(this.h.B){this.za>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.u&&Ab(this.u,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
this.u&&this.u.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,bc(this));if(0>c||this.W<this.ha)-1E3>c&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.u&&a.u.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.u&&a.u.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
k.yb=function(){if(this.h.B){this.za>=this.La&&cc(this,!0);this.ca=0;this.ma=Na();if(this.L){var a=this.ma-this.L;a>this.Ka&&(this.C+=a,this.C>this.ma&&(this.C=this.ma))}try{do{for(var b,c=this.h.Ba?1:this.pa,d=this.K.length-1;0<=d;d--){var e=this.K[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Ga(b)}catch(f){if("number"!=typeof f)throw f;}b=fc(this,!0);this.ca+=b;this.D+=b;zb(this,b);xb(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.pa;++this.Ma>=gc&&(this.v&&Ab(this.v,void 0),this.Ma=0);break}}while(this.h.B)}catch(f){N(this);
this.v&&this.v.stop(Na(),ac(this));a=f.stack||f.message;this.h.error=!0;this.G(a);return}if(this.h.B){a=setTimeout;b=this.Xa;this.L=Na();c=this.Ka;this.ca&&(c=Math.round(c*this.ca/this.pa));c-=this.L-this.ma;if(d=this.L-this.C)this.W=Math.round(this.D/(10*d))/100,864E5<=d&&(this.P=0,bc(this));if(0>c||this.W<this.ha)-1E3>c&&(this.C-=c),c=0;this.za+=this.ca;this.L+=c;a(b,c)}}};
function wb(a){var b;a.h.error?(a.M(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.h.B)a.M(a.toString()+" busy");else{bc(a);a.h.B=!0;a.h.Ra=!0;if(b=a.m.run)b.textContent="Halt";a.v&&a.v.start(a.C,ac(a));a.w||a.status("Started");setTimeout(a.Xa,0)}}k.Ga=function(){return 0};function N(a){var b=!1;if(a.h.B){fc(a);yb(a,a.D);a.D=0;a.h.B=!1;if(b=a.m.run)b.textContent="Run";a.v&&a.v.stop(Na(),ac(a));b=!0;a.w||a.status("Stopped")}a.h.complete=void 0;return b}var dc=30,gc=15,Xb=["power","reset"];
function hc(a){var b=+a.model||1001;Wb.call(this,a,1E6);this.Wa=b;this.ua=+a.addrReset||0;this.gb=ic.bind(this);this.i=O.bind(this);this.la=null;this.Sa=[];this.h.complete=!1}l(hc,Wb);k=hc.prototype;
k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.v=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.o=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.l=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.v,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.l,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.v=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.l=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];bc(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
if(e.Cb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.K.length&&b<a.length;b++)this.K[b][0]=a[b];return!0};function M(a,b){a.f=b%$a;a.aa=-1}function jc(a){var b=[];for(a=a.la;a;)b.push(a.Cb),a=a.next;return b}k.ub=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.l=this.l&-5|0;do{if(a=this.l)if(a=this.l&11)this.l&2?this.la||(this.l&=-3):this.l&1&&this.l++,a=!1;if(a){if(this.l&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.l&=15;this.v&4194304?this.v=this.qa=this.b(this.a):0<=this.aa?(this.v=this.ra=this.b(this.aa),this.aa=-1):(this.v=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.v&=8388607;this.a=this.v&262143;if(a=this.v>>18&15)this.a=this.a+
(this.qa=this.b(a))&Za;a=this.v&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0<this.H);return this.h.complete?this.N-this.H:!1===this.h.complete?-1:0};Da(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new hc(d);Qa(d,c)}});function ic(a){kc[a>>4].call(this,a,a&15)}function P(a){this.i(a)}function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.v=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.v=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
k.reset=function(){this.status("Model "+this.Wa);this.h.B&&N(this);this.qa=this.ra=this.a=this.u=0;this.f=this.Ia=this.ua;this.A=this.aa=-1;this.l=this.g=0;this.Na=[0,0];this.da=[0,0];this.X=[0,0];this.ea=[0,0];this.ka=this.f;this.o=0;this.b=this.ub;this.c=this.Fb;this.la=null;Zb(this);this.h.error=!1;Wb.prototype.reset.call(this)};k.Za=function(){return 0};
k.save=function(){var a=new L(this);a.set(0,[this.a,this.u,this.qa,this.ra,this.f,this.aa,this.A,this.g,this.o,this.Ia,this.ka,this.ua]);a.set(1,[]);a.set(2,[this.P,this.ja,this.h.J]);a.set(3,jc(this));a.set(4,ec(this));return a.data()};
k.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.a=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.ra=b.next().value;this.f=b.next().value;this.aa=b.next().value;this.A=b.next().value;this.g=b.next().value;this.o=b.next().value;this.Ia=b.next().value;this.ka=b.next().value;this.ua=b.next().value;b=a[2];this.P=b[0];bc(this,b[1]);this.h.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sa.length;d++){var e=this.Sa[d];
if(e.Cb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.K.length&&b<a.length;b++)this.K[b][0]=a[b];return!0};function M(a,b){a.u=0;a.aa=-1;a.f=b%$a}function jc(a){var b=[];for(a=a.la;a;)b.push(a.Cb),a=a.next;return b}k.ub=function(a){var b=this.s;a=this.ka=a;return b.a[(a&b.g)>>>b.f].b(a&16383,a)};k.Fb=function(a,b){var c=this.s;a=this.ka=a;c.a[(a&c.g)>>>c.f].c(b,a&16383,a);return b};
k.Ga=function(a){this.h.complete=!0;var b=a?this.h.Ra?0:1:-1;this.h.Ra=!1;this.N=this.H=a;this.o=this.o&-5|0;do{if(a=this.o)if(a=this.o&11)this.o&2?this.la||(this.o&=-3):this.o&1&&this.o++,a=!1;if(a){if(this.o&4&&this.w.i(this.f,b)){N(this);break}if(0>b)break}this.o&=15;this.u&4194304?this.u=this.qa=this.b(this.a):0<=this.aa?(this.u=this.ra=this.b(this.aa),this.aa=-1):(this.u=this.ra=this.b(this.Ia=this.f),this.f=(this.f+1)%$a);this.u&=8388607;this.a=this.u&262143;if(a=this.u>>18&15)this.a=this.a+
(this.qa=this.b(a))&Za;a=this.u&4194304?-1:this.ra/eb|0;0<=a&&this.gb(a);this.H--}while(0<this.H);return this.h.complete?this.N-this.H:!1===this.h.complete?-1:0};Da(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new hc(d);Qa(d,c)}});function ic(a){kc[a>>4].call(this,a,a&15)}function P(a){this.i(a)}function lc(){var a=0,b=this.b(this.a),c=b/fb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*fb+(d<<24)+(b&16777215);a&&(b=(b+a)%J);this.c(this.a,b)}
function mc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.c(b,a);this.g&=-8193;this.A=-1}}function nc(a,b){a=this.b(this.a);if(0>this.A)this.A=a,this.u=this.a|4194304;else{var c=this.A/fb&63,d=this.A>>24&63;b=this.b(b)%Math.pow(2,d)*Math.pow(2,c)%J;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.c(this.a,a);this.g&=-8193;this.A=-1}}
function oc(a,b){this.c(b,this.b(this.a))}function pc(a,b){this.c(b,this.a)}function qc(a,b){this.c(this.a,this.b(b))}function rc(a,b){this.c(b,0)}function sc(a,b){this.c(b,I-this.b(b))}function tc(a,b){this.c(b,I)}function uc(a,b){var c=this.b(this.a),d=this.b(b);this.c(b,vc(a,d,c)+(c-(c&C)))}function wc(a,b){var c=this.b(b);this.c(b,vc(a,c,0))}function xc(a,b){b=this.b(b);var c=this.b(this.a);this.c(this.a,vc(a,c,b)+(b-(b&C)))}
function yc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d-=d&C,a){case 256:d+=C;break;case 384:d+=c>F?C:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function zc(a,b){var c=(this.b(this.a)&C)*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Ac(a,b){var c=this.a*E,d=this.b(b);this.c(b,vc(a,d,c)+c)}function Bc(a,b){b=(this.b(b)&C)*E;var c=this.b(this.a);this.c(this.a,vc(a,c,b)+b)}function Cc(a,b){var c=this.b(this.a),d=(c&C)*E,c=vc(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}
function Dc(a,b){var c=this.b(this.a)&C,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Fc(a,b){var c=this.b(b);this.c(b,Ec(a,c,this.a)+this.a)}function Gc(a,b){b=this.b(b)&C;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Hc(a,b){var c=this.b(this.a),d=c;if(a&=384)switch(d&=C,a){case 256:d+=C*E;break;case 384:d+=c>ab?C*E:0}c=d;this.c(this.a,c);b&&this.c(b,c)}function Ic(a,b){var c=this.b(this.a)/E|0,d=this.b(b);this.c(b,Ec(a,d,c)+c)}function Jc(a,b){var c=this.b(b);this.c(b,Ec(a,c,0))}
function Kc(a,b){b=this.b(b)/E|0;var c=this.b(this.a);this.c(this.a,Ec(a,c,b)+b)}function Lc(a,b){var c=this.b(this.a),d=c/E|0,c=Ec(a,c,d)+d;this.c(this.a,c);b&&this.c(b,c)}function Q(a){Mc[a&7].call(this,a,a>>3&127)}function Nc(){}function Oc(){}function O(a){this.M("undefined opcode: "+ka(a));this.f=(this.f+-1)%$a;N(this)}function Pc(a){a>F&&(a!=G?a=db-a:this.g|=163840);return a}function R(a,b){var c=(a+b)%J;Qc.call(this,a,b,c);return c}
function S(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.o=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=I-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ea;c[0]=a;for(c[1]=b;0<Rc(this.ea,this.X);)Sc(this.X,this.X),Sc(this.da,this.da);do{if(0<=Rc(this.ea,this.X)&&(b=this.ea,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.X);Uc(this.da)}while(!Tc(this.da));
a=this.Na[0];this.o=this.ea[0];d&&a&&(a=J-a);e&&this.o&&(this.o=J-this.o);return a}
function Vc(a,b,c,d){var e=a,f=b;b=!1;var g;e>F&&(d||1001!=this.Wa||e!=G)&&(e=J-e,b=!b);f>F&&(f=J-f,b=!b);if(e<E&&f<E)a=e*f,g=0;else{a=e&C;e=Math.trunc(e/E);g=f&C;var f=Math.trunc(f/E),h=a*g,m=e*g+Math.trunc(h/E);g=Math.trunc(m/E);m=(m&C)+a*f;a=(m*E+(h&C))%J;g+=Math.trunc(m/E)+e*f}b&&(a?(g=I-g,a=J-a):g&&(g=J-g));if(c)return!d&&(g||a>F)&&(g!=I||a<=F)&&(this.g|=131072),a;c=a;b=g;a=b-b%G;b=2*b%J+Math.trunc(c/G);c=a+c%G;a!=b-b%G&&(c=b,d||(this.g|=131072));d?d=c:(this.o=c,d=b);return d}
function S(a,b,c){var d=!1,e=!1,f=b-b%G;a=a%G+b*G%J;b=this.l=f+Math.trunc(b/2);c>F&&(c=J-c,d=!d);b>F&&(a?(b=I-b,a=J-a):b&&(b=J-b),e=!0,d=!d);if(b>=c)return this.g|=131104,-1;f=this.Na;f[0]=0;f[1]=0;f=this.da;f[0]=1;f[1]=0;f=this.X;f[0]=c;f[1]=0;c=this.ea;c[0]=a;for(c[1]=b;0<Rc(this.ea,this.X);)Sc(this.X,this.X),Sc(this.da,this.da);do{if(0<=Rc(this.ea,this.X)&&(b=this.ea,a=this.X,b[0]-=a[0],b[1]-=a[1],0>b[0]&&(b[0]+=J,b[1]--),Sc(this.Na,this.da),Tc(this.ea)))break;Uc(this.X);Uc(this.da)}while(!Tc(this.da));
a=this.Na[0];this.l=this.ea[0];d&&a&&(a=J-a);e&&this.l&&(this.l=J-this.l);return a}
function Vc(a,b,c,d){var e=a,f=b;b=!1;var g;e>F&&(d||1001!=this.Wa||e!=G)&&(e=J-e,b=!b);f>F&&(f=J-f,b=!b);if(e<E&&f<E)a=e*f,g=0;else{a=e&C;e=Math.trunc(e/E);g=f&C;var f=Math.trunc(f/E),h=a*g,m=e*g+Math.trunc(h/E);g=Math.trunc(m/E);m=(m&C)+a*f;a=(m*E+(h&C))%J;g+=Math.trunc(m/E)+e*f}b&&(a?(g=I-g,a=J-a):g&&(g=J-g));b=a;a=g;e=a-a%G;a=2*a%J+Math.trunc(b/G);b=e+b%G;a-a%G!=e&&(b=a);d?g=b:(b==G&&a==G&&(this.g|=131072),this.l=b,g=a);c&&(a=this.l,!d&&(g||a>F)&&(g!=I||a<=F)&&(this.g|=131072),g=a);return g}
function Wc(a){a?a==G?this.g|=163840:a=db-a:this.g|=98304;return a}function Xc(a,b){var c=a-b;0>c&&(c+=J);Qc.call(this,c,b,a);return c}function Qc(a,b,c){a=Math.trunc(a/cb);b=Math.trunc(b/cb);c=Math.trunc(c/cb);var d=a^(a^b)&(b^c);this.g=this.g|(d&2?65536:0)|(d&1?32768:0)|((a^c)&(b^c)&2?131072:0)}function T(a,b){return((a/K|0)&(b/K|0))*K+((a&b)>>>0)}function U(a,b){return T(a,(~(b/K|0)&15)*K+(~b>>>0))}function V(a,b){return(a<G?a:a-J)-(b<G?b:b-J)}
function Yc(a,b){return(~((a/K|0)^(b/K|0))&15)*K+(~(a^b)>>>0)}function W(a,b){return(a/K|0|b/K|0)*K+((a|b)>>>0)}function X(a){return a<G?a:a-J}function Y(a,b){return((a/K|0)^(b/K|0))*K+((a^b)>>>0)}function Z(a){return(a/E|0)+(a&C)*E}function Ec(a,b,c){switch(a&384){case 0:b-=b&C;break;case 128:b=0;break;case 256:b=C*E;break;case 384:b=c>ab?C*E:0}return b}function vc(a,b,c){switch(a&384){case 0:b&=C;break;case 128:b=0;break;case 256:b=C;break;case 384:b=c>F?C:0}return b}
function Sc(a,b){a[0]+=b[0];a[1]+=b[1];a[0]>=J&&(a[0]%=J,a[1]++)}function Rc(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Uc(a){a[1]%2&&(a[0]+=J);a[0]=Math.trunc(a[0]/2);a[1]=Math.trunc(a[1]/2)}function Tc(a){return!a[0]&&!a[1]}
@ -111,9 +111,9 @@ var kc=[P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,P,
function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},
function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},function(a){this.i(a)},oc,pc,qc,function(a,b){b&&this.c(b,this.b(this.a))},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&C)*E;this.c(b,a)},function(a,b){this.c(b,this.a*E)},function(a,b){a=this.b(b);a=(a/E|0)+(a&C)*E;this.c(this.a,a)},function(a,b){a=this.b(this.a);a=(a/E|0)+(a&C)*E;this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Wc.call(this,this.b(this.a)))},function(a,b){this.c(b,
Wc.call(this,this.a))},function(a,b){this.c(this.a,Wc.call(this,this.b(b)))},function(a,b){a=Wc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Pc.call(this,this.b(this.a)))},function(a,b){this.c(b,this.a)},function(a,b){this.c(this.a,Pc.call(this,this.b(b)))},function(a,b){a=Pc.call(this,this.b(this.a));this.c(this.a,a);b&&this.c(b,a)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a,!0))},function(a,
b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.o)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a));this.c(b+1&15,this.o)},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.o)},function(a,b){a=S.call(this,
this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=S.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.o))},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,
c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.o))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=S.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.o))},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c,d,e=this.b(b);0<a?(d=F,c=e<G?0:G,35>a&&(c+=e*Math.pow(2,a)%G,d=G-Math.pow(2,35-a)),e<G?e+d>F&&(this.g|=131072):e-d<G&&(this.g|=131072)):-35>=a?c=e<G?0:F:
b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a),!0))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a),!0)))},function(a,b){this.c(b,Vc.call(this,this.b(b),this.b(this.a)));this.c(b+1&15,this.l)},function(a,b){this.c(b,Vc.call(this,this.b(b),this.a));this.c(b+1&15,this.l)},function(a,b){this.c(this.a,Vc.call(this,this.b(b),this.b(this.a)))},function(a,b){this.c(this.a,this.c(b,Vc.call(this,this.b(b),this.b(this.a))));this.c(b+1&15,this.l)},function(a,b){a=S.call(this,
this.b(b),0,this.b(this.a));0>a||(this.c(b,a),this.c(b+1&15,this.l))},function(a,b){a=S.call(this,this.b(b),0,this.a);0>a||(this.c(b,a),this.c(b+1&15,this.l))},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=S.call(this,this.b(b),0,this.b(this.a));0>a||this.c(this.a,a)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,c),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,
c,a,this.a);0>c||(this.c(b,c),this.c(b+1&15,this.l))},function(a,b){a=this.b(b);b=this.b(b+1&15);b=S.call(this,b,a,this.b(this.a));0>b||this.c(this.a,b)},function(a,b){a=this.b(b);var c=this.b(b+1&15),c=S.call(this,c,a,this.b(this.a));0>c||(this.c(b,this.c(this.a,c)),this.c(b+1&15,this.l))},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c,d,e=this.b(b);0<a?(d=F,c=e<G?0:G,35>a&&(c+=e*Math.pow(2,a)%G,d=G-Math.pow(2,35-a)),e<G?e+d>F&&(this.g|=131072):e-d<G&&(this.g|=131072)):-35>=a?c=e<G?0:F:
(c=Math.trunc(e/Math.pow(2,-a)),e>F&&(d=J-Math.pow(2,36+a),c+=d));this.c(b,c)}},function(a,b){if(a=((this.a&bb)<<14>>23|this.a&255)%36){var c=this.b(b);0>a&&(a=36+a);c=c*Math.pow(2,a)%J+Math.trunc(c/Math.pow(2,36-a));this.c(b,c)}},function(a,b){if(a=(this.a&bb)<<14>>23|this.a&255){var c=this.b(b),c=0<a?36<=a?0:c*Math.pow(2,a)%J:-36>=a?0:Math.trunc(c/Math.pow(2,-a));this.c(b,c)}},function(a,b){a=0;var c=this.b(b);if(c){for(;c<G;)a++,c*=2;M(this,this.a)}this.c(b+1&15,a)},function(a,b){if(a=(this.a&
bb)<<14>>23|this.a&255){var c,d=this.b(b),e=this.b(b+1&15);if(0<a){var f=d;if(36<=a){if(0<d&&d<G||d>F&&d<I)this.g|=131072;if(71<=a){if(0<e&&e<G||e>F&&e<I)this.g|=131072;d=0}else d=e*Math.pow(2,a-35)%G,c=G-Math.pow(2,70-a),f<=F?e+c>F&&(this.g|=131072):e-c<=F&&(this.g|=131072);e=0;f>F&&(d+=G,e+=G)}else d=d*Math.pow(2,a)%G+Math.trunc(e%G/Math.pow(2,35-a)),e=e*Math.pow(2,a)%G,c=G-Math.pow(2,35-a),f<=F?f+c>F&&(this.g|=131072):(f-c<=F&&(this.g|=131072),d+=G,e+=G)}else-36>=a?(e=-72>=a?d>F?I:0:Math.trunc(d%
G/Math.pow(2,-a-35)),d<=F?d=0:(d=I,e+=G)):(c=d>F?J-Math.pow(2,36+a):0,e=Math.trunc(e%G/Math.pow(2,-a))+d%G*Math.pow(2,35+a)%G,d=Math.trunc(d/Math.pow(2,-a))+c,d>F&&(e+=G));this.c(b,d);this.c(b+1&15,e)}},function(a,b){if(a=((this.a&bb)<<14>>23|this.a&255)%72){var c=this.b(b),d=this.b(b+1&15),e=c;0>a&&(a=72+a);36>a?(c=c*Math.pow(2,a)%J+Math.trunc(d/Math.pow(2,36-a)),d=d*Math.pow(2,a)%J+Math.trunc(e/Math.pow(2,36-a))):(c=d*Math.pow(2,a-36)%J+Math.trunc(c/Math.pow(2,72-a)),d=e*Math.pow(2,a-36)%J+Math.trunc(d/
@ -154,27 +154,27 @@ function ad(a){t.call(this,"RAM",a);this.O=this.Y=null;this.f=+a.addr;this.g=+a.
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);bd(c)})}}l(ad,t);ad.prototype.Z=function(a,b,c,d){this.s=b;this.j=c;this.w=d;bd(this)};ad.prototype.V=function(a,b){this.O&&(this.w&&this.w.a(this.id,this.f,this.g,this.O),delete this.O);b||this.reset();return!0};ad.prototype.R=function(){return!0};
function bd(a){if(a.s&&(!a.i&&a.g&&(Hb(a.s,a.f,a.g,1)?a.i=!0:a.g=0),!Wa(a))){if(!a.i)q("No RAM allocated");else if(a.a){if(!a.Y)return;cd(a,a.Y,a.T,a.S,a.f)?a.status('Loaded image "'+a.l+'"'):a.G('Error loading image "'+a.l+'"')}a.o=!0;B(a)}}
ad.prototype.reset=function(){if(this.i&&!this.o){for(var a=this.s,b=this.f,c=this.g,d=b&16383,b=b>>>a.f;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,g=void 0===g?0:g,d=d||0;void 0===f&&(f=e.size);0>g&&g>=-G&&(g+=J);for(var g=Math.trunc(Math.abs(g))%J,h=d;f--&&h<e.size;h++)e.j(g,d,e.fa+d);c-=16384;b++;d=0}this.Y&&cd(this,this.Y,this.T,this.S,this.f,!this.w)}this.o=!1};
function cd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Cb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(N(a.j),f=!1),null!=d&&(a=a.j,a.ua=d,M(a,d),f?a.h.F?a.h.B||wb(a):a.h.J=!0:a.w&&a.h.F?N(a)||a.u.h.reset||(a.w.g(),Ab(a.u,-1)):!1===f&&N(a),!a.h.B&&a.ta&&a.ta.stop()));return g}Da(function(){for(var a=A(document,z,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ad(d);Qa(d,c)}});
function cd(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)Cb(a.s,c+g,b[g]);g=!0}g&&(null==d&&(N(a.j),f=!1),null!=d&&(a=a.j,a.ua=d,M(a,d),f?a.h.F?a.h.B||wb(a):a.h.J=!0:a.w&&a.h.F?N(a)||a.v.h.reset||(a.w.g(),Ab(a.v,-1)):!1===f&&N(a),!a.h.B&&a.ta&&a.ta.stop()));return g}Da(function(){for(var a=A(document,z,"ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new ad(d);Qa(d,c)}});
function dd(a){t.call(this,"SerialPort",a);this.i=a.upperCase;"string"==typeof this.i&&(this.i="true"==this.i);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=ed;b&&(void 0===c&&(c="Panel"),(c=x(c,this.id))&&(b=c.m[b])&&this.U(null,a,b))}this.a=this.l=null;this.exports={connect:this.$a,receiveData:this.Da,receiveStatus:this.wb,setConnection:this.zb}}l(dd,t);k=dd.prototype;
k.U=function(a,b,c){var d=this;switch(b){case ed:return this.m[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?n.Ua:n.eb:46==c?b=n.Ua:a.ctrlKey&&c>=n.Ta&&c<=n.fb&&(b=c-(n.Ta-n.ab));b&&(a.preventDefault&&a.preventDefault(),d.Da(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==n.cb&&(b=n.bb);d.Da(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.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.u=a;this.s=b;this.j=c;this.w=d;B(this)};
k.$a=function(a){if(!this.a){var b=Yb(this.u,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Da(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.v=a;this.s=b;this.j=c;this.w=d;B(this)};
k.$a=function(a){if(!this.a){var b=Yb(this.v,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.va)return;c=sa(c[1]);if(this.a=Pa(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.wa+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.$a(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
k.R=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new L(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.Da=function(a){if("number"==typeof a)this.f.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.f.push(b)}else this.f=this.f.concat(a);return!0};k.wb=function(){};k.zb=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var ed="buffer";
Da(function(){for(var a=A(document,z,"serial"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new dd(d);Qa(d,c)}});
function fd(a,b,c){t.call(this,"Computer",a);this.h.F=!1;this.L=null;gd(this,b);this.H=Yb(this,"autoPower",a,6);this.i=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.v=this.l=null;this.N=this.K=!1;this.X=Yb(this,"url")||"";(Math.random()+.1).toString(36);this.f=hd(this);if(this.j=x("CPU",this.id)){this.w=x("Debugger",this.id);this.s=new Db({id:this.wa+".bus",busWidth:this.W},this.j,this.w);var d,e=w(this.id);if((this.g=x("Panel",this.id))&&this.g.ga)for(b=0;b<e.length;b++)d=
e[b],d.G=this.g.G,d.M=this.g.M,d.ga=this.g.ga;this.M(Ya+" v1.34.3\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.s,this.j,this.w);b=null;d=Yb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Yb(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.A=!0,this.a=id),this.a&&(this.v=new L(this,"1.34.3"),jd(this.v)?b=null:delete this.v);!b&&this.a&&
function fd(a,b,c){t.call(this,"Computer",a);this.h.F=!1;this.L=null;gd(this,b);this.H=Yb(this,"autoPower",a,6);this.i=0;this.W=+a.busWidth||+a.buswidth;this.C=this.o=this.D=null;this.A=this.P=!1;this.u=this.l=null;this.N=this.K=!1;this.X=Yb(this,"url")||"";(Math.random()+.1).toString(36);this.f=hd(this);if(this.j=x("CPU",this.id)){this.w=x("Debugger",this.id);this.s=new Db({id:this.wa+".bus",busWidth:this.W},this.j,this.w);var d,e=w(this.id);if((this.g=x("Panel",this.id))&&this.g.ga)for(b=0;b<e.length;b++)d=
e[b],d.G=this.g.G,d.M=this.g.M,d.ga=this.g.ga;this.M(Ya+" v1.34.3\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.s,this.j,this.w);b=null;d=Yb(this,"resume",a);void 0!==d&&(1<d.length?b=this.o=d:this.a=parseInt(d,10));var f;if(a=Yb(this,"state")||(f=!0,a.state))this.D=b=a,f||(this.A=!0,this.a=id),this.a&&(this.u=new L(this,"1.34.3"),jd(this.u)?b=null:delete this.u);!b&&this.a&&
(b=kd(this))&&(this.A=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.o=null,g.A=!1,g.G("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.C=b,g.P=!0);B(g)})}else B(this);this.m.power||(this.H=!0);!c&&this.H&&ld(this,this.sa)}else q("Unable to find CPU component")}l(fd,t);function gd(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.L=b}
function Yb(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.L&&(e=a.L[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 ld(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Wa(f)){Wa(f,function(){ld(a,b,c)});return}}b.call(a,c)}
function md(a,b){var c=new L(a,"1.34.3",nd);if(jd(c)&&od(c)){var d=c.get(pd),e=b?b.get(pd):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=fd.prototype;
k.sa=function(a){void 0===a&&(a=this.a||(this.C?qd:id));if(!this.i){this.i++;var b=!1,c=!1;this.K=!1;var d=this.v||new L(this,"1.34.3");if(a==rd)b=!0;else if(a>id){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(xd,""),this.f=null)):this.M(f+": "+g),vd(d),jd(d)?(c=od(d),e=!0):c=!1))}e&&md(this,c?d:null)}else a==ud&&d.clear()}else md(this);delete this.C;delete this.v}e=w(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.j&&(c=yd(this,g,d,b,c));b=[d,a,c];a!=rd?ld(this,this.Ya,b):this.Ya(b)}};
k.sa=function(a){void 0===a&&(a=this.a||(this.C?qd:id));if(!this.i){this.i++;var b=!1,c=!1;this.K=!1;var d=this.u||new L(this,"1.34.3");if(a==rd)b=!0;else if(a>id){if(jd(d,this.C)){this.l=new L(this,"1.34.3",sd);jd(this.l)&&(td(this,d),a=ud,vd(this.l));this.l.set(pd,ta());wd(this.l);var e=this.a&&!this.A;if(a==qd||Oa("Click OK to restore the previous "+Ya+" machine state, or CANCEL to reset the machine.")){if(c=od(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?jd(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(ya(xd,""),this.f=null)):this.M(f+": "+g),vd(d),jd(d)?(c=od(d),e=!0):c=!1))}e&&md(this,c?d:null)}else a==ud&&d.clear()}else md(this);delete this.C;delete this.u}e=w(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.j&&(c=yd(this,g,d,b,c));b=[d,a,c];a!=rd?ld(this,this.Ya,b):this.Ya(b)}};
function yd(a,b,c,d,e){if(!b.h.F){b.h.F=!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&&(q("Unable to restore state for "+b.type),a.D&&!a.P?(c.clear(),a.a=id,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Va){var g=b.Va.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){q("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
k.Ya=function(a){var b=a[0],c=0>a[1];a=a[2];this.N=!0;this.h.F=!0;var d=this.m.power;d&&(d.textContent="Shutdown");this.j&&(yd(this,this.j,b,c,a),Ab(this,-2),this.j.J());this.K&&(td(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.i=0};
function td(a,b){if(Oa("There may be a problem with your "+Ya+" machine.\n\nTo help us diagnose it, click OK to send this "+Ya+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.f||"";b=b.toString();var d={};d.app=Ya;d.ver="1.34.3";d.url=c;d.user=a;d.type="bug";d.data=b;p("http://www.pcjs.org/api/v1/report",d,!0)}}
function zd(a,b,c){var d,e="none";if(a.i)return null;a.i--;var f=new L(a,"1.34.3"),g=new L(a,"1.34.3",nd),h=ta();g.set(pd,h);f.set(pd,h);f.set(Ad,"1.34.3");f.set(Bd,window?window.location.href:null);f.set(Cd,window?window.navigator.userAgent:"");a.j&&a.j.R&&(c&&(b&&(a.j.h.J=a.j.h.B),N(a.j)),d=a.j.R(b,c),"object"===typeof d&&f.set(a.j.id,d),c&&(a.j.h.F=!1,!1===d&&(e=null)));for(var h=w(a.id),m=0;m<h.length;m++){var u=h[m];u.h.F&&(u.R&&(d=u.R(b,c),"object"===typeof d&&f.set(u.id,d)),c&&(u.h.F=!1,!1===
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&Dd(a,a.f,f.toString()),wd(g)&&wd(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Ed),d&&f.clear(h)):e=f.toString());c&&(a.h.F=!1,b=a.m.power)&&(b.textContent="Power");a.i=0;return e}k.reset=function(){this.h.reset=!0;this.s&&this.s.reset&&this.s.reset();this.j&&this.j.reset&&this.j.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c!==this.j&&c.reset&&c.reset()}this.h.reset=!1;Ab(this,-1)};
k.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Ab(this,-1)};k.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Ab(this,-1)};
function Ab(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.l&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);ob(a,a.f);ib(a,a.i)}}
function Ab(a,b){if(a.j){var c=a.j,d=b||0,e=c.m.speed;e&&(0>=d||30<=(c.Ha+=d))&&(e.textContent=c.h.B?c.W.toFixed(2)+"Mhz":"Stopped",c.Ha=0)}if(a.g&&(a=a.g,b=b||0,a.C)){c=a.j.h.B;d=!!(a.j.o&8);if(0>=b||60<=(a.A+=b)){e=a.j.f;if(a.m.PC){var f=a.w&&a.w.l||8,e=e||0,e=8==f?ka(e,void 0):la(e,void 0);a.m.PC.textContent!=e&&(a.m.PC.textContent=e)}a.A=0}-1>b?a.f=a.j.f:0<b&&c&&!d&&(a.f=a.j.ka);ob(a,a.f);ib(a,a.i)}}
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.m[b]=c,c.onclick=function(){d.i||(d.h.F?zd(d,!1,!0):ld(d,d.sa))},!0;case "reset":return this.m[b]=c,c.onclick=function(){if(d.h.F&&!d.i)if(d.a&&!d.o){var a=Oa("Click OK to save changes to this "+Ya+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");zd(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(id)}else d.reset(),d.j&&!d.w&&d.j.J()},!0;case "save":if(oa())c.parentNode.removeChild(c);else return this.m[b]=
c,c.onclick=function(){var a=hd(d,!0);if(a){var b=!!(d.a&&!d.o||d.D),c=zd(d,b);b?Dd(d,a,c):d.G("Resume disabled, machine state not saved")}},!0}return!1};function hd(a,b){var c=a.f;c||((c=xa(xd),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=Fd(a,c))||a.G("The user ID is invalid.")):b&&a.G("Browser local storage is not available"));return c}
function Fd(a,b){a.f=null;b=p(pa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(xd,b.data),a.f=b.data)}catch(d){q(d.message+" ("+c+")")}return a.f}function kd(a){var b=null;a.f&&(b=pa()+"/api/v1/user?req=load&user="+a.f+"&state="+Gd(a,"1.34.3"));return b}