Implemented all four primary half-word moves (HLL, HLR, HRL, HRR) but none of the flavors (Z, O, E); need to test the primary instructions first

This commit is contained in:
Jeff Parsons 2017-02-27 09:50:28 -08:00 • committed by Jeff Parsons
commit 0255b7b891
7 changed files with 507 additions and 359 deletions

View file

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