pcjs/versions/pdpjs/1.34.2/pdp10-dbg.js

241 lines
90 KiB
JavaScript

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