Finished PDP-10 logical operations

This commit is contained in:
Jeff 2017-03-03 15:58:15 -08:00 committed by Jeff Parsons
commit b8a38c8ac6
5 changed files with 700 additions and 401 deletions

File diff suppressed because it is too large Load diff

View file

@ -769,10 +769,12 @@ class CPUStatePDP10 extends CPUPDP10 {
* @this {CPUStatePDP10}
* @param {number} addr
* @param {number} data
* @return {number} (we return the data back to the caller to permit nested writes)
*/
writeWordToPhysical(addr, data)
{
this.bus.setWord(this.lastAddr = addr, data);
return data;
}
/**

View file

@ -3898,7 +3898,7 @@ if (DEBUGGER) {
0o42000: DebuggerPDP10.OPS.ANDCM,
0o42400: DebuggerPDP10.OPS.SETA,
0o43000: DebuggerPDP10.OPS.XOR,
0o43400: DebuggerPDP10.OPS.IOR,
0o43400: DebuggerPDP10.OPS.IOR, // MACRO alias: OR
0o44000: DebuggerPDP10.OPS.ANDCB,
0o44400: DebuggerPDP10.OPS.EQV,
0o45000: DebuggerPDP10.OPS.SETCA,

View file

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

View file

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