Added preliminary PDP-10 opcode decoding

This commit is contained in:
Jeff Parsons 2017-02-26 09:25:44 -08:00 committed by Jeff Parsons
commit 0451774bc6
5 changed files with 380 additions and 345 deletions

View file

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

View file

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

View file

@ -40,7 +40,7 @@ function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.protot
ja("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});ja("Array.prototype.fill",function(a){return a?a:function(a,c,d){var b=this.length||0;0>c&&(c=Math.max(0,b+c));if(null==d||d>b)d=b;d=Number(d);0>d&&(d=Math.max(0,b+d));for(c=Number(c||0);c<d;c++)this[c]=a;return this}});
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Ai:0,Fe:1,Hi:2,Ii:3,Ji:4,Ki:5,Li:6,Mi:7,Nd:8,Ni:9,Ge:10,Oi:11,Pi:12,He:13,Qi:14,Ri:15,Si:16,Ti:17,Ui:18,Vi:19,Wi:20,Xi:21,Yi:22,Zi:23,$i:24,aj:25,bj: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,Jd:65,wi:66,Ci:67,cj:68,E:69,ij:70,lj:71,xj:72,zj:73,Aj:74,Bj:75,Cj:76,Fj:77,Hj:78,Nj:79,Qj:80,Q:81,Sj:82,Vj:83,dk:84,fk:85,hk:86,ik:87,mk:88,nk:89,xf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pk:97,qk:98,tk:99,d:100,e:101,uk:102,vk:103,wk:104,xk:105,Bk:106,k:107,Ck:108,Dk:109,n:110,Ek:111,p:112,q:113,r:114,Fk:115,t:116,Ik:117,Jk:118,Kk:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,cc:127};function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Wd=b.comment;this.vf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Mb=this.id:(this.vb=this.id.substr(0,a),this.Mb=this.id.substr(a+1));this.A={ready:!1,eb:!1,wd:!1,aa:!1,error:!1};this.Nc=null;this.A.error=!1;this.ha=c||0;this.F=this.f=this.D=this.J=this.Ta=null;ma.push(this)}function na(a,b,c){pa[a]&&b&&(pa[a][b]=c)}
y:121,z:122,"{":123,"|":124,"}":125,"~":126,cc:127};function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Vd=b.comment;this.vf=b;this.exports={};this.H=this.bindings={};a=this.id.indexOf(".");0>a?this.Mb=this.id:(this.vb=this.id.substr(0,a),this.Mb=this.id.substr(a+1));this.A={ready:!1,eb:!1,wd:!1,aa:!1,error:!1};this.Nc=null;this.A.error=!1;this.ha=c||0;this.F=this.f=this.D=this.J=this.Ta=null;ma.push(this)}function na(a,b,c){pa[a]&&b&&(pa[a][b]=c)}
function qa(){return Date.now()||+new Date}function v(a){window&&window.alert(a)}function ra(a){var b=!1;window&&(b=window.confirm(a));return b}function ta(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<ma.length;b++){var d=ma[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ua(a){if(void 0!==a){var b;for(b=0;b<ma.length;b++)if(ma[b].id===a)return ma[b]}return null}
function va(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<ma.length;d++)if(c)c==ma[d]&&(c=null);else if(!(a!=ma[d].type||b&&ma[d].id.indexOf(b)))return ma[d]}return null}function wa(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function xa(a,b){var c=w;b=x(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 k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=wa(g))&&k.binding&&a.va(k.type,k.binding,g,k.value),m=l.length}}}}
@ -125,7 +125,7 @@ h.oh=function(a,b,c){this.f&&null!=this.K&&ae(this.f,this.K+a);this.j?this.Yb(0,
h.ah=function(a,b){Jb&&a&1&&this.D.Na(b,64,2);a=!Kb&&a&1?this.g[a]|this.g[a+1]<<8:this.G[a>>1];this.f&&z(this.f,32)&&C(this.f,"Memory.readWord("+K(this.f,b)+"): "+K(this.f,a),!0);return a};h.nh=function(a,b){this.g[a]=b;this.fb=!0};h.ph=function(a,b,c){this.g[a]=b;this.fb=!0;this.f&&z(this.f,32)&&C(this.f,"Memory.writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0)};h.ni=function(a,b,c){Jb&&a&1&&this.D.Na(c,64,4);this.w.setUint16(a,b,!0);this.fb=!0};
h.pi=function(a,b,c){Jb&&a&1&&this.D.Na(c,64,4);!Kb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.fb=!0;this.f&&z(this.f,32)&&C(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Gd=0,hd=1,Hd=2,Yc=4,cd=["NONE","RAM","ROM","VID","H/W"],Fd=0,Vd=[],Ud=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri],Yd=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi];
if(Fb)var Td=[I.prototype.Vf,I.prototype.nh,I.prototype.Xg,I.prototype.ni],Kd=[I.prototype.Xf,I.prototype.ph,I.prototype.ah,I.prototype.pi];var be;if(Fb){var ce=new ArrayBuffer(2);(new DataView(ce)).setUint16(0,256,!0);be=256===(new Uint16Array(ce))[0]}else be=!1;var Jd=be;
function de(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.$c=0;this.Xc=b;this.mb=c;this.ld=Math.round(this.Xc/1E4)/100;this.xb=this.ld*this.mb;this.md=this.qc=this.Ab=this.Yc=0;this.A.V=this.A.Sc=!1;this.A.qa=a.autoStart;"string"==typeof this.A.qa&&(this.A.qa="true"==this.A.qa);this.A.Nb=!1;this.oc=this.Qb=0;this.pc=+a.csStart;this.Ob=+a.csInterval;this.Rb=+a.csStop;this.ia=[];this.be=this.hh.bind(this);this.nb=this.Ka=this.lb=this.b=this.la=this.Ja=this.nc=this.kb=this.Sb=
function de(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.$c=0;this.Xc=b;this.mb=c;this.ld=Math.round(this.Xc/1E4)/100;this.xb=this.ld*this.mb;this.md=this.qc=this.Ab=this.Yc=0;this.A.V=this.A.Sc=!1;this.A.qa=a.autoStart;"string"==typeof this.A.qa&&(this.A.qa="true"==this.A.qa);this.A.Nb=!1;this.oc=this.Qb=0;this.pc=+a.csStart;this.Ob=+a.csInterval;this.Rb=+a.csStop;this.ia=[];this.Zd=this.hh.bind(this);this.nb=this.Ka=this.lb=this.b=this.la=this.Ja=this.nc=this.kb=this.Sb=
this.nd=this.wb=0;this.sa=null;y(this)}p(de,u);h=de.prototype;h.za=function(a,b,c,d){this.J=a;this.D=b;this.F=d;this.sa=a.i;for(a=0;a<ee.length;a++)(b=this.H[ee[a]])&&this.J.va(null,ee[a],b);y(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.Ca=function(a,b){var c=fe(this.J,"autoStart");null!=c?this.A.qa="true"==c?!0:"false"==c?!1:!!c:null==this.A.qa&&(this.A.qa=!this.F&&void 0===this.H.run);if(!b){if(a){ge(this);if(!this.restore(a))return!1;he(this)}else this.reset();this.F?(a=this.F,b=this.A.qa,a.Ga=!0,a.v("Type ? for help with PDPjs Debugger commands"),ie(a),b||je(a),a.ta&&(b=a.ta,a.ta=null,ke(a,b))):this.status("No debugger detected");this.A.qa||this.v("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.Ba=function(a){return a?this.save():!0};h.qa=function(){return this.A.V?!0:this.A.qa?(tc(this),!0):!1};h.qe=function(){return 0};function he(a){void 0===a.pc&&(a.pc=0);void 0===a.Ob&&(a.Ob=-1);void 0===a.Rb&&(a.Rb=-1);a.A.Nb=0<=a.pc&&0<a.Ob;a.A.Nb&&(a.oc=0,a.Qb=a.pc-a.nb)}function xc(a,b){if(a.A.Nb){var c=!1;a.oc=a.oc+a.qe()|0;a.Qb-=b;0>=a.Qb&&(a.Qb+=a.Ob,c=!0);0<=a.Rb&&a.Rb<=le(a)&&(a.Ob=a.Rb=-1,he(a),a.ba(),c=!0);c&&a.v(le(a)+" cycles: checksum="+F(a.oc))}}
@ -134,16 +134,16 @@ case "speed":return this.H[b]=c,!0;case "setSpeed":return this.H[b]=c,c.onclick=
function me(a,b,c){var d=!1;if(void 0!==b){.8>a.wb/a.xb?b=1:d=!0;a.mb=b;b=a.ld*a.mb;if(a.xb!=b){a.xb=b;b=a.xb.toFixed(2)+"Mhz";var e=a.H.setSpeed;e&&(e.textContent=b);a.v("target speed: "+b)}c&&a.J&&pe(a.J)}wc(a,a.Ka);a.Ka=0;a.Ja=qa();a.kb=0;ne(a);return d}function ld(a,b){var c=a.ia.length;a.ia.push([-1,b]);return c}function nd(a,b,c,d){0<=b&&b<a.ia.length&&(d||0>a.ia[b][0])&&(c=a.Xc*a.mb/1E3*c|0,a.A.V&&(c+=qe(a)),a.ia[b][0]=c)}
function re(a,b){for(var c=a.ia.length-1;0<=c;c--){var d=a.ia[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function se(a){for(var b=[],c=0;c<a.ia.length;c++)b.push(a.ia[c][0]);return b}function vc(a,b){for(var c=a.ia.length-1;0<=c;c--){var d=a.ia[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function qe(a,b){var c=a.lb-=a.b;a.b=a.la=0;b&&(a.lb=0);return c}
h.hh=function(){if(this.A.V){this.Yc>=this.Xc&&ne(this,!0);this.Sb=0;this.nc=qa();if(this.kb){var a=this.nc-this.kb;a>this.md&&(this.Ja+=a,this.Ja>this.nc&&(this.Ja=this.nc))}try{do{var b=re(this,this.A.Nb?1:this.qc);try{this.Cc(b)}catch(e){if("number"!=typeof e)throw e;}b=qe(this,!0);this.Sb+=b;this.Ka+=b;xc(this,b);vc(this,b);this.Ab-=b;if(0>=this.Ab){this.Ab+=this.qc;++this.nd>=te&&(this.J&&H(this.J,void 0),this.nd=0);break}}while(this.A.V)}catch(e){this.ba();this.J&&this.J.stop(qa(),le(this));
Ea(this,e.stack||e.message);return}if(this.A.V){a=setTimeout;b=this.be;this.kb=qa();var c=this.md;this.Sb&&(c=Math.round(c*this.Sb/this.qc));var c=c-(this.kb-this.nc),d=this.kb-this.Ja;d&&(this.wb=Math.round(this.Ka/(10*d))/100,864E5<=d&&(this.nb=0,me(this)));if(0>c||this.wb<this.xb)-1E3>c&&(this.Ja-=c),c=0;this.Yc+=this.Sb;this.kb+=c;a(b,c)}}};
function tc(a,b){if(!Fa(a))if(a.A.V)a.v(a.toString()+" busy");else{me(a);a.A.V=!0;a.A.Sc=!0;var c=a.H.run;c&&(c.textContent="Halt");a.J&&(b&&pe(a.J,!0),a.J.start(a.Ja,le(a)));a.F||a.status("Started");setTimeout(a.be,0)}}h.Cc=function(){return 0};h.ba=function(a){var b=!1;if(this.A.V){qe(this);wc(this,this.Ka);this.Ka=0;this.A.V=!1;if(b=this.H.run)b.textContent="Run";this.J&&this.J.stop(qa(),le(this));b=!0;this.F||this.status("Stopped")}this.A.complete=a;return b};var oe=30,te=15,ee=["power","reset"];
function ue(a){var b=+a.model||1170;de.call(this,a,6666667);this.ka=b;this.Vd=+a.addrReset||0;this.bb=this.w=this.N=this.C=this.G=this.L=this.I=0;this.g=this.ta=this.X=[];this.M=this.B=this.Ha=this.xc=[];this.ib=this.O=this.Td=this.yb=this.zb=this.rb=this.jb=this.P=this.uc=this.ob=this.Ga=this.S=this.vc=this.wc=this.W=this.i=0;this.Yd=[4,2,0,1];this.zc=0;this.Zd=255;1120>=this.ka?(this.Sd=ve.bind(this),this.Lb=this.Cf,this.zc=8,this.Zd=-1,this.fe=255,this.ee=0):(this.Sd=we.bind(this),this.Lb=this.Df,
Ea(this,e.stack||e.message);return}if(this.A.V){a=setTimeout;b=this.Zd;this.kb=qa();var c=this.md;this.Sb&&(c=Math.round(c*this.Sb/this.qc));var c=c-(this.kb-this.nc),d=this.kb-this.Ja;d&&(this.wb=Math.round(this.Ka/(10*d))/100,864E5<=d&&(this.nb=0,me(this)));if(0>c||this.wb<this.xb)-1E3>c&&(this.Ja-=c),c=0;this.Yc+=this.Sb;this.kb+=c;a(b,c)}}};
function tc(a,b){if(!Fa(a))if(a.A.V)a.v(a.toString()+" busy");else{me(a);a.A.V=!0;a.A.Sc=!0;var c=a.H.run;c&&(c.textContent="Halt");a.J&&(b&&pe(a.J,!0),a.J.start(a.Ja,le(a)));a.F||a.status("Started");setTimeout(a.Zd,0)}}h.Cc=function(){return 0};h.ba=function(a){var b=!1;if(this.A.V){qe(this);wc(this,this.Ka);this.Ka=0;this.A.V=!1;if(b=this.H.run)b.textContent="Run";this.J&&this.J.stop(qa(),le(this));b=!0;this.F||this.status("Stopped")}this.A.complete=a;return b};var oe=30,te=15,ee=["power","reset"];
function ue(a){var b=+a.model||1170;de.call(this,a,6666667);this.ka=b;this.Td=+a.addrReset||0;this.bb=this.w=this.N=this.C=this.G=this.L=this.I=0;this.g=this.ta=this.X=[];this.M=this.B=this.Ha=this.xc=[];this.ib=this.O=this.Sd=this.yb=this.zb=this.rb=this.jb=this.P=this.uc=this.ob=this.Ga=this.S=this.vc=this.wc=this.W=this.i=0;this.Wd=[4,2,0,1];this.zc=0;this.Yd=255;1120>=this.ka?(this.be=ve.bind(this),this.Lb=this.Cf,this.zc=8,this.Yd=-1,this.fe=255,this.ee=0):(this.be=we.bind(this),this.Lb=this.Df,
this.fe=~(1792|(1140>=this.ka?2048:0))&65535,this.ee=1140<this.ka?2048:0);this.Dc=this.Ac=this.pa=0;this.R=null;this.mc=[];this.jc=this.ad=this.pe;this.kc=this.cd=this.te;this.Tc=this.dd=this.ze;this.lc=this.jd=this.Ae;this.Ia=this.ub=this.sc=this.tc=0;this.Fa=this.se;this.oa=this.Ed;this.Hb=this.Id;this.u=this.j=this.Wc=this.U=this.Y=0;this.A.complete=!1}p(ue,de);h=ue.prototype;
h.za=function(a,b,c,d){de.prototype.za.call(this,a,b,c,d);this.ad=b.Kd.bind(b);this.cd=b.Bc.bind(b);this.dd=b.Ld.bind(b);this.jd=b.ac.bind(b)};h.Ca=function(a,b){for(var c=192,d=0;d<this.mc.length;d++){var e=this.mc[d];0>e.Fb&&(e.Fb=c,c+=4)}return de.prototype.Ca.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ka);this.A.V&&this.ba();this.C=65536;this.G=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Vd,-1,-2,-3,-4,-5,-6,-7,-8];this.ta=[0,0,0,0,0,0];this.X=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.xc=[0,0,0,0,0,0,0,0];this.N=0;this.bb=-1;this.u=this.j=this.Wc=this.U=this.Y=this.i=this.uc=0;rc(this);ge(this);this.A.error=!1;de.prototype.reset.call(this)};function rc(a){a.S=0;a.vc=0;a.wc=0;a.W=0;a.P=0;a.ob=0;a.Ga=255;a.yb=0;a.zb=0;a.rb=0;a.jb=262143;a.ib=a.g[7];a.O=0;a.R=null;a.D&&(xe(a),a.Td=gd(a.D))}
h.reset=function(){this.status("Model "+this.ka);this.A.V&&this.ba();this.C=65536;this.G=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Td,-1,-2,-3,-4,-5,-6,-7,-8];this.ta=[0,0,0,0,0,0];this.X=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.xc=[0,0,0,0,0,0,0,0];this.N=0;this.bb=-1;this.u=this.j=this.Wc=this.U=this.Y=this.i=this.uc=0;rc(this);ge(this);this.A.error=!1;de.prototype.reset.call(this)};function rc(a){a.S=0;a.vc=0;a.wc=0;a.W=0;a.P=0;a.ob=0;a.Ga=255;a.yb=0;a.zb=0;a.rb=0;a.jb=262143;a.ib=a.g[7];a.O=0;a.R=null;a.D&&(xe(a),a.Sd=gd(a.D))}
function xe(a){a.jc=a.ad;a.kc=a.cd;a.Tc=a.dd;a.lc=a.jd;a.sc&&(a.jc=a.pe,a.kc=a.te);a.tc&&(a.Tc=a.ze,a.lc=a.Ae);a.yb?(a.Ia=65536,a.ub=a.W&16?4186112:253952,a.Fa=a.se,a.oa=a.sc?a.$g:a.Ed,a.Hb=a.tc?a.ti:a.Id,Zc(a.D,a.W&16?22:18)):(a.Ia=0,a.ub=57344,a.Fa=a.Gf,a.oa=a.sc?a.Zg:a.ye,a.Hb=a.tc?a.si:a.De,Zc(a.D,16))}function td(a){var b=a.S;b&57344||(b=b&-3199|a.zb<<5|a.rb<<1);return b}
function ud(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.vc=a.O>>16&65535,a.wc=a.O&65535);a.S=b;a.zb=(b&96)>>5;a.rb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.yb!=c&&(a.yb=c,xe(a))}}function vd(a){a.S&57344||(a.vc=a.O>>16&65535);a=a.vc;a&65280&&(a=(a<<8|a>>8)&65535);return a}function wd(a){a.S&57344||(a.wc=a.O&65535);return a.wc}function xd(a,b){1170>a.ka&&(b&=-49);a.W!=b&&(a.W=b,a.jb=b&16?4194303:262143,xe(a))}
function ye(a,b,c,d){a.Vd=b;qc(a,b);Ad(a,0);a.D.reset();rc(a);if(c){a.g[0]=d||0;for(b=1;5>=b;b++)a.g[b]=0;a.g[6]=1024;a.A.aa?a.A.V||tc(a):a.A.qa=!0}else a.F&&a.A.aa?a.ba()||a.J.A.reset||(ie(a.F),H(a.J,-1)):!1===c&&a.ba();!a.A.V&&a.sa&&a.sa.stop()}h.qe=function(){return 0};
function ye(a,b,c,d){a.Td=b;qc(a,b);Ad(a,0);a.D.reset();rc(a);if(c){a.g[0]=d||0;for(b=1;5>=b;b++)a.g[b]=0;a.g[6]=1024;a.A.aa?a.A.V||tc(a):a.A.qa=!0}else a.F&&a.A.aa?a.ba()||a.J.A.reset||(ie(a.F),H(a.J,-1)):!1===c&&a.ba();!a.A.V&&a.sa&&a.sa.stop()}h.qe=function(){return 0};
h.save=function(){var a=new G(this);a.set(0,[this.g,this.ta,this.X,this.M,this.B,this.Ha,this.xc,this.P,this.uc,this.ob,this.Ga,this.zb,this.rb,this.ib,this.i,this.O,this.bb,this.Ac,this.Dc]);a.set(1,[zd(this),td(this),vd(this),wd(this),this.W]);a.set(2,[this.nb,this.mb,this.A.qa]);a.set(3,ze(this));a.set(4,se(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.g=b.next().value;this.ta=b.next().value;this.X=b.next().value;this.M=b.next().value;this.B=b.next().value;this.Ha=b.next().value;this.xc=b.next().value;this.P=b.next().value;this.uc=b.next().value;this.ob=b.next().value;this.Ga=b.next().value;this.zb=b.next().value;this.rb=b.next().value;this.ib=b.next().value;this.i=b.next().value;this.O=b.next().value;this.bb=b.next().value;this.Ac=b.next().value;this.Dc=b.next().value;b=a[1];Ad(this,b[0]);ud(this,b[1]);
this.vc=b[2];this.wc=b[3];xd(this,b[4]);b=a[2];this.nb=b[0];me(this,b[1]);this.A.qa=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.mc.length;d++){var e=this.mc[d];if(e.Fb===b[c]){d=e;break a}}d=null}d&&(d.next=this.R,this.R=d)}a=a[4];for(b=0;b<this.ia.length&&b<a.length;b++)this.ia[b][0]=a[b];return!0};function Ae(a){return a.C&65536?1:0}function Be(a){return a.G&32768?2:0}function Ce(a){return a.L&65535?0:4}function De(a){return a.I&32768?8:0}
@ -153,19 +153,19 @@ function He(a){return a.i&64?(a.ra(168,64,-6),!0):a.i&32?(a.ra(4,32,-5),!0):a.i&
h.Da=function(a){this.I=this.L=a;this.G=0};h.qb=function(a,b){this.I=this.L=this.C=a;this.G=b||0};function Ie(a,b){a.I=a.L=a.C=b;a.G=a.I^a.C>>1}function Je(a,b,c,d){a.I=a.L=a.C=b;a.G=(c^d)&(d^b)}
h.ra=function(a,b,c){if(!this.pa){0>this.bb?this.bb=zd(this):this.N||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.P|=4,this.g[6]=a=4);if(-1!=c){this.O=a|4143316992;this.N=0;var d=this.oa(a|this.Ia),e=this.oa(a+2&65535|this.Ia);Ad(this,e&-12289|this.bb>>2&12288);Ke(this,this.bb);Ke(this,this.g[7]);qc(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.bb=-1;this.Ac=c;this.Dc=a;-1==c&&this.ba();if(-4<=c)throw a;}};
function Le(a){var b=Me(a),c=Me(a);a.w&49152&&(c=c&-225|a.w&63712);qc(a,b);Ad(a,c);a.i&=-17}function Ne(a,b){var c=b>>13&31;31>c&&(b=a.W&32?a.Ha[c]+(b&8191)&4194303:b&-3932161);return b}
function Oe(a,b,c){var d=[];if(c){c=Ne(a,b);var e=b>>13&31;d.push(c);d.push(e);a.W&32&&(d.push(a.Ha[e]),d.push(b&8191))}else if(a.yb){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.W&a.Yd[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.jb;3932160<=c&&(c=Ne(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.jb)}else c=b&65535,57344<=c&&(c|=a.ub),d.push(c);return d}
function Ac(a,b,c){var d,e,f;if(!(c&a.yb))return f=b&65535,57344<=f&&(f|=a.ub),f;d=b>>13;a.W&a.Yd[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.jb;3932160<=f&&(f=Ne(a,f));if(a.pa)return f;f>=a.Td&&f<a.ub?(a.P|=32,a.ra(4,0,f)):f&1&&!(c&1)&&(a.P|=64,a.ra(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
function Oe(a,b,c){var d=[];if(c){c=Ne(a,b);var e=b>>13&31;d.push(c);d.push(e);a.W&32&&(d.push(a.Ha[e]),d.push(b&8191))}else if(a.yb){var e=a.N<<1,f=b>>13;7<f&&(e|=1);a.W&a.Wd[a.N]||(f&=7);b&=8191;var g=a.M[a.N][f]<<6;c=g+b&a.jb;3932160<=c&&(c=Ne(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.jb)}else c=b&65535,57344<=c&&(c|=a.ub),d.push(c);return d}
function Ac(a,b,c){var d,e,f;if(!(c&a.yb))return f=b&65535,57344<=f&&(f|=a.ub),f;d=b>>13;a.W&a.Wd[a.N]||(d&=7);e=a.B[a.N][d];f=(a.M[a.N][d]<<6)+(b&8191)&a.jb;3932160<=f&&(f=Ne(a,f));if(a.pa)return f;f>=a.Sd&&f<a.ub?(a.P|=32,a.ra(4,0,f)):f&1&&!(c&1)&&(a.P|=64,a.ra(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.N][d]=e;if(f!=(4194170&a.jb)||a.N)a.zb=a.N,a.rb=d;g&&(g&57344&&(0<=a.bb&&(g|=128),a.S&57344||(g|=a.S&4096|a.zb<<5|a.rb<<1,ud(a,a.S&-61695|g&61694)),a.ra(168,64,-2)),a.S&61440||!(f<(4191360&a.jb)||f>(4194239&a.jb))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Me(a){var b=a.oa(a.g[6]|a.Ia);a.g[6]=a.g[6]+2&65535;return b}function Ke(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.O=a.O&65535|(a.O&-65536)<<8|16121856;a.i&256||a.Lb(4,-2,c);a.Hb(c,b)}
function Pe(a,b,c,d){var e,f,g=d&8?0:a.Ia;switch(b){case 0:return a.ra(4,0,-3),0;case 1:return 6==c&&a.Lb(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Lb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.oa(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Lb(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.oa(e)|g;a.b-=8;break;case 6:return e=a.oa(Ee(a,2)),e=e+a.g[c]&65535,6==c&&a.Lb(d,
0,e),a.b-=6,e|g;case 7:return e=a.oa(Ee(a,2)),e=e+a.g[c]&65535,e=a.oa(e|a.Ia),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.O=a.O&65535|(a.O&-65536)<<8|(f<<3&248|c)<<16;return e}h.Cf=function(a,b,c){!this.N&&0>=b&&c<=this.Ga&&(this.i|=32)};h.Df=function(a,b,c){this.N||(65534<=c&&(c|=-65536),a&4&&c<=this.Ga&&(c<=this.Ga-32?this.ra(4,0,-4):(this.P|=8,this.i|=32)))};h.pe=function(a){this.F&&$d(this.F,a,1);return this.ad(a)};h.te=function(a){this.F&&$d(this.F,a,2);return this.cd(a)};
h.ze=function(a,b){this.F&&ae(this.F,a,1);this.dd(a,b)};h.Ae=function(a,b){this.F&&ae(this.F,a,2);this.jd(a,b)};function Cc(a,b){a.pa++;b=a.D.Bc(Ac(a,b,2));a.pa--;return b}function Qe(a,b){(b?--a.tc:--a.sc)||xe(a)}h.Gf=function(a,b,c){return Pe(this,a,b,c)};h.se=function(a,b,c){return Ac(this,Pe(this,a,b,c),c)};h.ye=function(a){return this.D.Bc(this.ib=a)};h.Zg=function(a){this.F&&$d(this.F,a,2);return this.ye(a)};h.Ed=function(a){return this.D.Bc(this.ib=Ac(this,a,2))};
h.$g=function(a){this.F&&$d(this.F,a,2);return this.Ed(a)};h.De=function(a,b){this.D.ac(this.ib=a,b)};h.si=function(a,b){this.F&&ae(this.F,a,2);this.De(a,b)};h.Id=function(a,b){this.D.ac(this.ib=Ac(this,a,4),b)};h.ti=function(a,b){this.F&&ae(this.F,a,2);this.Id(a,b)};function Re(a,b,c){var d=a.j=b&7;(b=a.u=(b&56)>>3)?(d=Pe(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.N=a.w>>12&3,c=a.oa(d|c&a.Ia),a.N=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.X[a.w>>12&3];return c}
function Se(a,b,c,d){a.O=a.O&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Pe(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Ac(a,e|c&65536,4),a.N=a.w>>14&3,a.lc(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.X[a.w>>12&3]=d}function Te(a,b){b>>=6;var c=a.Y=b&7;return(b=a.U=(b&56)>>3)?a.jc(a.Fa(b,c,3)):a.g[c+a.zc]&a.Zd}function Ue(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.U=(b&56)>>3)?c=a.kc(a.Fa(b,d,2)):c=a.g[d+a.zc];return c}function Ve(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Pe(a,b,c,8)}
function Se(a,b,c,d){a.O=a.O&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Pe(a,b,e,4),c&65536||(e&=65535),a.N=a.w>>12&3,e=Ac(a,e|c&65536,4),a.N=a.w>>14&3,a.lc(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.X[a.w>>12&3]=d}function Te(a,b){b>>=6;var c=a.Y=b&7;return(b=a.U=(b&56)>>3)?a.jc(a.Fa(b,c,3)):a.g[c+a.zc]&a.Yd}function Ue(a,b){var c;b>>=6;var d=a.Y=b&7;(b=a.U=(b&56)>>3)?c=a.kc(a.Fa(b,d,2)):c=a.g[d+a.zc];return c}function Ve(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Pe(a,b,c,8)}
function We(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.jc(a.Fa(b,c,3)):a.g[c]&255}function Xe(a,b){var c,d=a.j=b&7;(b=a.u=(b&56)>>3)?c=a.kc(a.Fa(b,d,2)):c=a.g[d];return c}function Ye(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Wc=a.Fa(b,e,7),c=0>c?a.g[-c-1]&255:c,a.Tc(e,d.call(a,c,a.jc(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Fa(b,e,6),a.lc(e,d.call(a,0>c?a.g[-c-1]:c,a.kc(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function Ze(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.Fa(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.Tc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function $e(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Fa(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.lc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.Cc=function(a){this.A.complete=!0;var b=this.F?af(this.F)?1:this.A.Sc?-1:0:0,c=a?this.A.Sc?0:1:-1;this.A.Sc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(bf(this.F,this.g[7],c)){this.ba();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Fb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Ee(this,2),this.i&=-9),this.ra(d,0,-10),e=!0):e=!1;e&&(f&&Ge(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&bf(this.F,this.g[7],c)){this.ba();break}if(0>c)break}if(this.i&112&&He(this)){if(this.i&4&&bf(this.F,this.g[7],c)){this.ba();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.oa(a);this.g[7]=a+2&65535;this.Sd(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};rb(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=wa(c),d=new ue(d);xa(d,c)}});
1&&this.i++;if(a){if(this.i&4&&bf(this.F,this.g[7],c)){this.ba();break}if(0>c)break}if(this.i&112&&He(this)){if(this.i&4&&bf(this.F,this.g[7],c)){this.ba();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.oa(a);this.g[7]=a+2&65535;this.be(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};rb(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=wa(c),d=new ue(d);xa(d,c)}});
function cf(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function zf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function Af(a,b){a=b<<1;Ie(this,a);return a&65535}function Bf(a,b){a=b<<1;Ie(this,a<<8);return a&255}function Cf(a,b){a=b&32768|b>>1|b<<16;Ie(this,a);return a&65535}function Df(a,b){a=b&128|b>>1|b<<8;Ie(this,a<<8);return a&255}function Ef(a,b){a=b&~a;this.Da(a);return a}function Ff(a,b){a=b&~a;this.Da(a<<8);return a}
function Gf(a,b){a|=b;this.Da(a);return a}function Hf(a,b){a|=b;this.Da(a<<8);return a}function If(a,b){a=~b|65536;this.qb(a);return a&65535}function Jf(a,b){a=~b|256;this.qb(a<<8);return a&255}function Kf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Lf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Mf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Nf(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
function Of(a,b){a=-b;this.qb(a,a&b&32768);return a&65535}function Pf(a,b){a=-b;this.qb(a<<8,(a&b&128)<<8);return a&255}function Qf(a,b){a=b<<1|this.C>>16&1;Ie(this,a);return a&65535}function Rf(a,b){a=b<<1|this.C>>16&1;Ie(this,a<<8);return a&255}function Sf(a,b){a=(this.C&65536|b)>>1|b<<16;Ie(this,a);return a&65535}function Tf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Ie(this,a<<8);return a&255}function Uf(a,b){var c=b-a;Je(this,c,a,b);return c&65535}
@ -362,7 +362,7 @@ function Sk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms)
h.yc=function(a,b){for(var c=this,d=ta(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Ga(f)){Ga(f,function(){c.yc(a,b)});return}}a.call(this,b)};function Xk(a,b){var c=new G(a,"1.34.0",Yk);if(Vk(c)&&Zk(c)){var d=c.get($k),e=b?b.get($k):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
h.rc=function(a){void 0===a&&(a=this.b||(this.G?al:Uk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.0");if(a==bl)b=!0;else if(a>Uk){if(Vk(d,this.G)){this.u=new G(this,"1.34.0",cl);Vk(this.u)&&(dl(this,d),a=el,fl(this.u));this.u.set($k,ab());gl(this.u);var e=this.b&&!this.C;if(a==al||ra("Click OK to restore the previous "+Gb+" machine state, or CANCEL to reset the machine.")){if(c=Zk(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Vk(d,g):("error"==f&&"no machine state"!=
g?(this.T("Error: "+g),"unable to verify user"==g&&(hb(hl,""),this.g=null)):this.v(f+": "+g),fl(d),Vk(d)?(c=Zk(d),e=!0):c=!1))}e&&Xk(this,c?d:null)}else a==el&&d.clear()}else Xk(this);delete this.G;delete this.B}e=ta(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=il(this,g,d,b,c));b=[d,a,c];a!=bl?this.yc(this.ne,b):this.ne(b)}};
function il(a,b,c,d,e){if(!b.A.aa){b.A.aa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ca(f,d)&&f&&(v("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Uk,window&&window.location.reload()):a.N=!0,b.Ca(null),e=!1),!d&&b.Wd){var g=b.Wd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
function il(a,b,c,d,e){if(!b.A.aa){b.A.aa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.Ca(f,d)&&f&&(v("Unable to restore state for "+b.type),a.I&&!a.R?(c.clear(),a.b=Uk,window&&window.location.reload()):a.N=!0,b.Ca(null),e=!1),!d&&b.Vd){var g=b.Vd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ne=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.A.aa=!0;var d=this.H.power;d&&(d.textContent="Shutdown");this.f&&(il(this,this.f,b,c,a),H(this,-2),this.f.qa());this.N&&(dl(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function dl(a,b){if(ra("There may be a problem with your "+Gb+" machine.\n\nTo help us diagnose it, click OK to send this "+Gb+" machine state to http://www.pcjs.org.")){var c=a.U;a=a.g||"";b=b.toString();var d={};d.app=Gb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;bb("http://www.pcjs.org/api/v1/report",d,!0)}}
function Ok(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new G(a,"1.34.0"),g=new G(a,"1.34.0",Yk),k=ab();g.set($k,k);f.set($k,k);f.set(jl,"1.34.0");f.set(kl,window?window.location.href:null);f.set(ll,window?window.navigator.userAgent:"");a.f&&a.f.Ba&&(c&&(b&&(a.f.A.qa=a.f.A.V),a.f.ba()),d=a.f.Ba(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.aa=!1,!1===d&&(e=null)));for(var k=ta(a.id),l=0;l<k.length;l++){var m=k[l];m.A.aa&&(m.Ba&&(d=m.Ba(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.aa=

View file

@ -40,7 +40,7 @@ function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.protot
ja("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});ja("Array.prototype.fill",function(a){return a?a:function(a,c,d){var b=this.length||0;0>c&&(c=Math.max(0,b+c));if(null==d||d>b)d=b;d=Number(d);0>d&&(d=Math.max(0,b+d));for(c=Number(c||0);c<d;c++)this[c]=a;return this}});
var ka={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],256256:[77,1,26,128],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},la={Ph:0,Ud:1,Wh:2,Xh:3,Yh:4,Zh:5,$h:6,ai:7,kd:8,bi:9,Vd:10,ci:11,di:12,Wd:13,ei:14,fi:15,gi:16,hi:17,ii:18,ji:19,ki:20,li:21,mi:22,ni:23,oi:24,pi:25,ri: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,hd:65,Lh:66,Rh:67,si:68,E:69,yi:70,Bi:71,Ni:72,Pi:73,Qi:74,Ri:75,Si:76,Vi:77,Xi:78,cj:79,fj:80,Q:81,hj:82,kj:83,tj:84,vj:85,xj:86,yj:87,Cj:88,Dj:89,Ke:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ej:97,Fj:98,Ij:99,d:100,e:101,Jj:102,Kj:103,Lj:104,Mj:105,Qj:106,k:107,Rj:108,Sj:109,n:110,Tj:111,p:112,q:113,r:114,Uj:115,t:116,Wj:117,Xj:118,Yj:119,x:120,
y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127};function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.sd=b.comment;this.Ie=b;this.exports={};this.o=this.bindings={};a=this.id.indexOf(".");0>a?this.ib=this.id:(this.Ua=this.id.substr(0,a),this.ib=this.id.substr(a+1));this.j={ready:!1,Ra:!1,Wc:!1,R:!1,error:!1};this.ic=null;this.j.error=!1;this.qd=c||0;this.D=this.c=this.u=this.A=this.ob=null;t.push(this)}function na(a,b,c){oa[a]&&b&&(oa[a][b]=c)}
y:121,z:122,"{":123,"|":124,"}":125,"~":126,Cb:127};function r(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.qd=b.comment;this.Ie=b;this.exports={};this.o=this.bindings={};a=this.id.indexOf(".");0>a?this.ib=this.id:(this.Ua=this.id.substr(0,a),this.ib=this.id.substr(a+1));this.j={ready:!1,Ra:!1,Wc:!1,R:!1,error:!1};this.ic=null;this.j.error=!1;this.pd=c||0;this.D=this.c=this.u=this.A=this.ob=null;t.push(this)}function na(a,b,c){oa[a]&&b&&(oa[a][b]=c)}
function pa(){return Date.now()||+new Date}function u(a){window&&window.alert(a)}function qa(a){var b=!1;window&&(b=window.confirm(a));return b}function ra(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<t.length;b++){var d=t[b];a&&d.id.indexOf(a)||c.push(d)}return c}function sa(a){if(void 0!==a){var b;for(b=0;b<t.length;b++)if(t[b].id===a)return t[b]}return null}
function ta(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<t.length;d++)if(c)c==t[d]&&(c=null);else if(!(a!=t[d].type||b&&t[d].id.indexOf(b)))return t[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
function x(a,b){var c=z;b=A(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=w(g))&&k.binding&&a.ma(k.type,k.binding,g,k.value),m=l.length}}}}
@ -90,7 +90,7 @@ h.Xb=function(a){var b=a&this.f,c=(a&this.i)>>>this.h;return ib||b!=this.f?this.
function Ob(a,b){var c;a.l=!1;a.m++;var d=b&a.f,e=fc(a,b);ib||d!=a.f?c=e.D(d,b):c=e.i(d,b)|fc(a,b+1).i(0,b+1)<<8;a.m--;return c}function gc(a,b,c){a.l=!1;a.m++;fc(a,b).o(b&a.f,c&255,b);a.m--}function Mb(a,b,c){a.l=!1;a.m++;var d=b&a.f,e=fc(a,b);ib||d!=a.f?e.m(d,c&65535,b):(e.o(d,c&255,b),fc(a,b+1).o(0,c>>8&255,b+1));a.m--}
function ac(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.a[d];if(e.Ha||e.Se){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function hc(a){for(var b=ic,c=0,d=0;d<a.a.length;d++){var e=a.a[d];e.type==b&&(c=e.ab+e.Tb)}return c}
function jc(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&kc;if(void 0!==a.Qa[p])return u("I/O address already registered: "+Da(b,8,!0)),!1;var q=l||"unknown";q&&0<=m&&(q+=m++);a.Qa[p]=[d,e,f,g,q,k||16,!1]}return!0}
function qb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.sa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var q=g[4],v=g[5]||1,y=0;y<v;y++,f+=2)if(q&&1<v&&(q=g[4]+y),!jc(a,f,f,k,l,m,p,g[7]||b.qd,q||b.ib))return!1}}return!0}
function qb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.sa)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,p=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var q=g[4],v=g[5]||1,y=0;y<v;y++,f+=2)if(q&&1<v&&(q=g[4]+y),!jc(a,f,f,k,l,m,p,g[7]||b.pd,q||b.ib))return!1}}return!0}
function sb(a,b){a.F.push(b)}function I(a,b,c){a.l=!0;a.m||(c&&(a.c.F|=c),J(a.c,4,0,b))}function lc(a){var b=a.l;a.l=!1;return b}function bc(a,b,c){u("Memory block error ("+a+": "+Da(b)+","+Da(c)+")");return!1}var Sb=8192,kc=Sb-1,cc=1,ec=2;function Tb(a,b){var c=-1,d=this.controller,e=d.Qa[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Qa[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;I(d,b,16);return 255}
function Ub(a,b,c){var d=!1,e=this.controller,f=e.Qa[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Qa[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d||I(e,c,16)}function Vb(a,b){var c=-1,d=this.controller;a=d.Qa[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return c;I(d,b,16);return 65535}
function Wb(a,b,c){var d=!1,e=this.controller;a=e.Qa[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d||I(e,c,16)}function K(a){r.call(this,"Device",a,256);this.a={Ia:128,dd:-1}}n(K,r);h=K.prototype;h.ja=function(a,b,c,d){this.u=b;this.A=a;this.c=c;this.D=d;var e=this;this.a.dd=mc(c,function(){e.a.Ia|=128;e.a.Ia&64&&nc(e.c,e.a.qa);e.A&&Kb(e.A,1);oc(e.c,e.a.dd,1E3/60)});this.a.qa=pc(c,64,6,2097152);qb(b,this,qc);sb(b,this.reset.bind(this));B(this)};
@ -116,7 +116,7 @@ function Xb(a,b){a.g=a.h=0;b&&((a.g=b.g)&&Lc(a,Nc,!1),(a.h=b.h)&&Mc(a,Nc,!1))}h.
h.Gg=function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.Ha=!0};h.Hh=function(a,b,c){hb&&a&1&&I(this.b,c,64);c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.Ha=!0};h.kf=function(a,b){return this.i(a,b)};h.ng=function(a,b){return this.D(a,b)};h.Eg=function(a,b,c){this.A?this.Wb(0,0,c):this.o(a,b,c)};h.Fh=function(a,b,c){this.A?this.Wb(0,0,c):this.m(a,b,c)};h.jf=function(a){return this.a[a]};
h.lf=function(a){return this.a[a]};h.mg=function(a,b){hb&&a&1&&I(this.b,b,64);return this.u.getUint16(a,!0)};h.pg=function(a,b){hb&&a&1&&I(this.b,b,64);return!ib&&a&1?this.a[a]|this.a[a+1]<<8:this.l[a>>1]};h.Dg=function(a,b){this.a[a]=b;this.Ha=!0};h.Fg=function(a,b){this.a[a]=b;this.Ha=!0};h.Eh=function(a,b,c){hb&&a&1&&I(this.b,c,64);this.u.setUint16(a,b,!0);this.Ha=!0};h.Gh=function(a,b,c){hb&&a&1&&I(this.b,c,64);!ib&&a&1?(this.a[a]=b,this.a[a+1]=b>>8):this.l[a>>1]=b;this.Ha=!0};
var Dc=0,ic=1,Ec=2,Zb=4,dc=["NONE","RAM","ROM","VID","H/W"],Cc=0,Kc=[],Jc=[H.prototype.mf,H.prototype.Gg,H.prototype.qg,H.prototype.Hh],Nc=[H.prototype.kf,H.prototype.Eg,H.prototype.ng,H.prototype.Fh];if(fb)var Ic=[H.prototype.jf,H.prototype.Dg,H.prototype.mg,H.prototype.Eh],Hc=[H.prototype.lf,H.prototype.Fg,H.prototype.pg,H.prototype.Gh];var Oc;if(fb){var Qc=new ArrayBuffer(2);(new DataView(Qc)).setUint16(0,256,!0);Oc=256===(new Uint16Array(Qc))[0]}else Oc=!1;var Gc=Oc;
function Rc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.fd=0;this.tc=b;this.Za=c;this.Dc=Math.round(this.tc/1E4)/100;this.jb=this.Dc*this.Za;this.Fc=this.Nb=this.mb=this.uc=0;this.j.M=this.j.cd=!1;this.j.Y=a.autoStart;"string"==typeof this.j.Y&&(this.j.Y="true"==this.j.Y);this.j.gc=!1;this.rc=this.lb=0;this.sc=+a.csStart;this.Lb=+a.csInterval;this.Mb=+a.csStop;this.X=[];this.vd=this.vg.bind(this);this.Na=this.Da=this.Ma=this.a=this.ba=this.Ca=this.Kb=this.La=this.nb=this.Gc=
function Rc(a,b){r.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.fd=0;this.tc=b;this.Za=c;this.Dc=Math.round(this.tc/1E4)/100;this.jb=this.Dc*this.Za;this.Fc=this.Nb=this.mb=this.uc=0;this.j.M=this.j.cd=!1;this.j.Y=a.autoStart;"string"==typeof this.j.Y&&(this.j.Y="true"==this.j.Y);this.j.gc=!1;this.rc=this.lb=0;this.sc=+a.csStart;this.Lb=+a.csInterval;this.Mb=+a.csStop;this.X=[];this.td=this.vg.bind(this);this.Na=this.Da=this.Ma=this.a=this.ba=this.Ca=this.Kb=this.La=this.nb=this.Gc=
this.Wa=0;this.pa=null;B(this)}n(Rc,r);h=Rc.prototype;h.ja=function(a,b,c,d){this.A=a;this.u=b;this.D=d;this.pa=a.f;for(a=0;a<Sc.length;a++)(b=this.o[Sc[a]])&&this.A.ma(null,Sc[a],b);B(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.la=function(a,b){var c=Tc(this.A,"autoStart");null!=c?this.j.Y="true"==c?!0:"false"==c?!1:!!c:null==this.j.Y&&(this.j.Y=void 0===this.o.run);if(!b){if(a){Uc(this);if(!this.restore(a))return!1;Vc(this)}else this.reset();this.status("No debugger detected");this.j.Y||this.aa("CPU will not be auto-started "+(this.pa?"(click Run to start)":"(type 'go' to start)"))}return!0};h.ka=function(a){return a?this.save():!0};h.Y=function(){return this.j.M?!0:this.j.Y?(Gb(this),!0):!1};h.Hd=function(){return 0};
function Vc(a){void 0===a.sc&&(a.sc=0);void 0===a.Lb&&(a.Lb=-1);void 0===a.Mb&&(a.Mb=-1);a.j.gc=0<=a.sc&&0<a.Lb;a.j.gc&&(a.rc=0,a.lb=a.sc-a.Na)}function Jb(a,b){if(a.j.gc){var c=!1;a.rc=a.rc+a.Hd()|0;a.lb-=b;0>=a.lb&&(a.lb+=a.Lb,c=!0);0<=a.Mb&&a.Mb<=Wc(a)&&(a.Lb=a.Mb=-1,Vc(a),G(a),c=!0);c&&a.aa(Wc(a)+" cycles: checksum="+Da(a.rc))}}
@ -125,15 +125,15 @@ c,!0;case "setSpeed":return this.o[b]=c,c.onclick=function(){Xc(d,d.Za<<1,!0)},c
function Xc(a,b,c){if(void 0!==b){.8>a.Wa/a.jb&&(b=1);a.Za=b;b=a.Dc*a.Za;if(a.jb!=b){a.jb=b;b=a.jb.toFixed(2)+"Mhz";var d=a.o.setSpeed;d&&(d.textContent=b);a.aa("target speed: "+b)}c&&a.A&&$c(a.A)}Ib(a,a.Da);a.Da=0;a.Ca=pa();a.La=0;Yc(a)}function mc(a,b){var c=a.X.length;a.X.push([-1,b]);return c}function oc(a,b,c,d){0<=b&&b<a.X.length&&(d||0>a.X[b][0])&&(c=a.tc*a.Za/1E3*c|0,a.j.M&&(c+=ad(a)),a.X[b][0]=c)}function bd(a){for(var b=[],c=0;c<a.X.length;c++)b.push(a.X[c][0]);return b}
function Hb(a,b){for(var c=a.X.length-1;0<=c;c--){var d=a.X[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ad(a,b){var c=a.Ma-=a.a;a.a=a.ba=0;b&&(a.Ma=0);return c}
h.vg=function(){if(this.j.M){this.uc>=this.tc&&Yc(this,!0);this.nb=0;this.Kb=pa();if(this.La){var a=this.Kb-this.La;a>this.Fc&&(this.Ca+=a,this.Ca>this.Kb&&(this.Ca=this.Kb))}try{do{for(var b,c=this.j.gc?1:this.Nb,d=this.X.length-1;0<=d;d--){var e=this.X[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.zc(b)}catch(f){if("number"!=typeof f)throw f;}b=ad(this,!0);this.nb+=b;this.Da+=b;Jb(this,b);Hb(this,b);this.mb-=b;if(0>=this.mb){this.mb+=this.Nb;++this.Gc>=cd&&(this.A&&Kb(this.A,void 0),this.Gc=0);break}}while(this.j.M)}catch(f){G(this);
this.A&&this.A.stop(pa(),Wc(this));a=f.stack||f.message;this.j.error=!0;this.G(a);return}if(this.j.M){a=setTimeout;b=this.vd;this.La=pa();c=this.Fc;this.nb&&(c=Math.round(c*this.nb/this.Nb));c-=this.La-this.Kb;if(d=this.La-this.Ca)this.Wa=Math.round(this.Da/(10*d))/100,864E5<=d&&(this.Na=0,Xc(this));if(0>c||this.Wa<this.jb)-1E3>c&&(this.Ca-=c),c=0;this.uc+=this.nb;this.La+=c;a(b,c)}}};
function Gb(a){var b;a.j.error?(a.aa(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.j.M)a.aa(a.toString()+" busy");else{Xc(a);a.j.M=!0;a.j.cd=!0;if(b=a.o.run)b.textContent="Halt";a.A&&a.A.start(a.Ca,Wc(a));a.D||a.status("Started");setTimeout(a.vd,0)}}h.zc=function(){return 0};function G(a){var b=!1;if(a.j.M){ad(a);Ib(a,a.Da);a.Da=0;a.j.M=!1;if(b=a.o.run)b.textContent="Run";a.A&&a.A.stop(pa(),Wc(a));b=!0;a.D||a.status("Stopped")}a.j.complete=void 0;return b}var Zc=30,cd=15,Sc=["power","reset"];
function dd(a){var b=+a.model||1170;Rc.call(this,a,6666667);this.sa=b;this.pd=+a.addrReset||0;this.Ea=this.i=this.B=this.v=this.m=this.l=this.w=0;this.b=this.ua=this.ga=[];this.H=this.s=this.Pa=this.Rb=[];this.Ka=this.C=this.od=this.kb=this.Xa=this.Ya=this.cb=this.F=this.Ob=this.$a=this.Oa=this.J=this.Pb=this.Qb=this.ta=this.g=0;this.He=[4,2,0,1];this.wc=0;this.td=255;1120>=this.sa?(this.nd=ed.bind(this),this.hb=this.Pe,this.wc=8,this.td=-1,this.zd=255,this.wd=0):(this.nd=fd.bind(this),this.hb=this.Qe,
this.A&&this.A.stop(pa(),Wc(this));a=f.stack||f.message;this.j.error=!0;this.G(a);return}if(this.j.M){a=setTimeout;b=this.td;this.La=pa();c=this.Fc;this.nb&&(c=Math.round(c*this.nb/this.Nb));c-=this.La-this.Kb;if(d=this.La-this.Ca)this.Wa=Math.round(this.Da/(10*d))/100,864E5<=d&&(this.Na=0,Xc(this));if(0>c||this.Wa<this.jb)-1E3>c&&(this.Ca-=c),c=0;this.uc+=this.nb;this.La+=c;a(b,c)}}};
function Gb(a){var b;a.j.error?(a.aa(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.j.M)a.aa(a.toString()+" busy");else{Xc(a);a.j.M=!0;a.j.cd=!0;if(b=a.o.run)b.textContent="Halt";a.A&&a.A.start(a.Ca,Wc(a));a.D||a.status("Started");setTimeout(a.td,0)}}h.zc=function(){return 0};function G(a){var b=!1;if(a.j.M){ad(a);Ib(a,a.Da);a.Da=0;a.j.M=!1;if(b=a.o.run)b.textContent="Run";a.A&&a.A.stop(pa(),Wc(a));b=!0;a.D||a.status("Stopped")}a.j.complete=void 0;return b}var Zc=30,cd=15,Sc=["power","reset"];
function dd(a){var b=+a.model||1170;Rc.call(this,a,6666667);this.sa=b;this.od=+a.addrReset||0;this.Ea=this.i=this.B=this.v=this.m=this.l=this.w=0;this.b=this.ua=this.ga=[];this.H=this.s=this.Pa=this.Rb=[];this.Ka=this.C=this.nd=this.kb=this.Xa=this.Ya=this.cb=this.F=this.Ob=this.$a=this.Oa=this.J=this.Pb=this.Qb=this.ta=this.g=0;this.He=[4,2,0,1];this.wc=0;this.sd=255;1120>=this.sa?(this.vd=ed.bind(this),this.hb=this.Pe,this.wc=8,this.sd=-1,this.zd=255,this.wd=0):(this.vd=fd.bind(this),this.hb=this.Qe,
this.zd=~(1792|(1140>=this.sa?2048:0))&65535,this.wd=1140<this.sa?2048:0);this.Nc=this.Lc=this.pb=0;this.I=null;this.Ib=[];this.kc=this.gd=this.Te;this.lc=this.xc=this.Ve;this.yc=this.Ac=this.xg;this.mc=this.Cc=this.Ag;this.Aa=this.jc=0;this.ra=this.Id;this.W=this.Nd;this.Ab=this.Qd;this.h=this.f=this.qc=this.K=this.S=0;this.j.complete=!1}n(dd,Rc);h=dd.prototype;h.ja=function(a,b,c,d){Rc.prototype.ja.call(this,a,b,c,d);this.gd=b.Rd.bind(b);this.xc=b.Xb.bind(b);this.Ac=b.Sd.bind(b);this.Cc=b.Yb.bind(b)};
h.la=function(a,b){for(var c=192,d=0;d<this.Ib.length;d++){var e=this.Ib[d];0>e.Ub&&(e.Ub=c,c+=4)}return Rc.prototype.la.call(this,a,b)};
h.reset=function(){this.status("Model "+this.sa);this.j.M&&G(this);this.v=65536;this.m=32768;this.l=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.pd,-1,-2,-3,-4,-5,-6,-7,-8];this.ua=[0,0,0,0,0,0];this.ga=[0,0,0,0];this.H=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.s=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Pa=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Rb=[0,0,0,0,0,0,0,0];this.B=0;this.Ea=-1;this.h=this.f=this.qc=this.K=this.S=this.g=this.Ob=0;Eb(this);Uc(this);this.j.error=!1;Rc.prototype.reset.call(this)};function Eb(a){a.J=0;a.Pb=0;a.Qb=0;a.ta=0;a.F=0;a.$a=0;a.Oa=255;a.kb=0;a.Xa=0;a.Ya=0;a.cb=262143;a.Ka=a.b[7];a.C=0;a.I=null;a.u&&(gd(a),a.od=hc(a.u))}
h.reset=function(){this.status("Model "+this.sa);this.j.M&&G(this);this.v=65536;this.m=32768;this.l=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.od,-1,-2,-3,-4,-5,-6,-7,-8];this.ua=[0,0,0,0,0,0];this.ga=[0,0,0,0];this.H=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.s=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Pa=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.Rb=[0,0,0,0,0,0,0,0];this.B=0;this.Ea=-1;this.h=this.f=this.qc=this.K=this.S=this.g=this.Ob=0;Eb(this);Uc(this);this.j.error=!1;Rc.prototype.reset.call(this)};function Eb(a){a.J=0;a.Pb=0;a.Qb=0;a.ta=0;a.F=0;a.$a=0;a.Oa=255;a.kb=0;a.Xa=0;a.Ya=0;a.cb=262143;a.Ka=a.b[7];a.C=0;a.I=null;a.u&&(gd(a),a.nd=hc(a.u))}
function gd(a){a.kc=a.gd;a.lc=a.xc;a.yc=a.Ac;a.mc=a.Cc;a.kb?(a.Aa=65536,a.jc=a.ta&16?4186112:253952,a.ra=a.Id,a.W=a.Nd,a.Ab=a.Qd,$b(a.u,a.ta&16?22:18)):(a.Aa=0,a.jc=57344,a.ra=a.Ue,a.W=a.og,a.Ab=a.Ih,$b(a.u,16))}function sc(a){var b=a.J;b&57344||(b=b&-3199|a.Xa<<5|a.Ya<<1);return b}function tc(a,b){b&=-3073;if(a.J!=b){b&57344&&!(a.J&57344)&&(a.Pb=a.C>>16&65535,a.Qb=a.C&65535);a.J=b;a.Xa=(b&96)>>5;a.Ya=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.kb!=c&&(a.kb=c,gd(a))}}
function uc(a){a.J&57344||(a.Pb=a.C>>16&65535);a=a.Pb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function vc(a){a.J&57344||(a.Qb=a.C&65535);return a.Qb}function wc(a,b){1170>a.sa&&(b&=-49);a.ta!=b&&(a.ta=b,a.cb=b&16?4194303:262143,gd(a))}function hd(a,b,c,d){a.pd=b;F(a,b);zc(a,0);a.u.reset();Eb(a);if(c){a.b[0]=d||0;for(b=1;5>=b;b++)a.b[b]=0;a.b[6]=1024;a.j.R?a.j.M||Gb(a):a.j.Y=!0}else a.D&&a.j.R?G(a)||a.A.j.reset||(a.D.g(),Kb(a.A,-1)):!1===c&&G(a);!a.j.M&&a.pa&&a.pa.stop()}h.Hd=function(){return 0};
function uc(a){a.J&57344||(a.Pb=a.C>>16&65535);a=a.Pb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function vc(a){a.J&57344||(a.Qb=a.C&65535);return a.Qb}function wc(a,b){1170>a.sa&&(b&=-49);a.ta!=b&&(a.ta=b,a.cb=b&16?4194303:262143,gd(a))}function hd(a,b,c,d){a.od=b;F(a,b);zc(a,0);a.u.reset();Eb(a);if(c){a.b[0]=d||0;for(b=1;5>=b;b++)a.b[b]=0;a.b[6]=1024;a.j.R?a.j.M||Gb(a):a.j.Y=!0}else a.D&&a.j.R?G(a)||a.A.j.reset||(a.D.g(),Kb(a.A,-1)):!1===c&&G(a);!a.j.M&&a.pa&&a.pa.stop()}h.Hd=function(){return 0};
h.save=function(){var a=new E(this);a.set(0,[this.b,this.ua,this.ga,this.H,this.s,this.Pa,this.Rb,this.F,this.Ob,this.$a,this.Oa,this.Xa,this.Ya,this.Ka,this.g,this.C,this.Ea,this.Lc,this.Nc]);a.set(1,[xc(this),sc(this),uc(this),vc(this),this.ta]);a.set(2,[this.Na,this.Za,this.j.Y]);a.set(3,id(this));a.set(4,bd(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.b=b.next().value;this.ua=b.next().value;this.ga=b.next().value;this.H=b.next().value;this.s=b.next().value;this.Pa=b.next().value;this.Rb=b.next().value;this.F=b.next().value;this.Ob=b.next().value;this.$a=b.next().value;this.Oa=b.next().value;this.Xa=b.next().value;this.Ya=b.next().value;this.Ka=b.next().value;this.g=b.next().value;this.C=b.next().value;this.Ea=b.next().value;this.Lc=b.next().value;this.Nc=b.next().value;b=a[1];zc(this,b[0]);tc(this,b[1]);
this.Pb=b[2];this.Qb=b[3];wc(this,b[4]);b=a[2];this.Na=b[0];Xc(this,b[1]);this.j.Y=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ib.length;d++){var e=this.Ib[d];if(e.Ub===b[c]){d=e;break a}}d=null}d&&(d.next=this.I,this.I=d)}a=a[4];for(b=0;b<this.X.length&&b<a.length;b++)this.X[b][0]=a[b];return!0};function jd(a){return a.v&65536?1:0}function kd(a){return a.w&32768?8:0}function ld(a,b){var c=a.b[7];a.b[7]=c+b&65535;return c}
@ -142,17 +142,17 @@ function id(a){var b=[];for(a=a.I;a;)b.push(a.Ub),a=a.next;return b}function md(
h.fa=function(a){this.w=this.l=a;this.m=0};h.Sa=function(a,b){this.w=this.l=this.v=a;this.m=b||0};function nd(a,b){a.w=a.l=a.v=b;a.m=a.w^a.v>>1}function od(a,b,c,d){a.w=a.l=a.v=b;a.m=(c^d)&(d^b)}
function J(a,b,c,d){if(!a.pb){0>a.Ea?a.Ea=xc(a):a.B||(d=-4);-4==d&&(a.g&256&&(d=-1),a.g|=256,a.F|=4,a.b[6]=b=4);if(-1!=d){a.C=b|4143316992;a.B=0;var e=a.W(b|a.Aa),f=a.W(b+2&65535|a.Aa);zc(a,f&-12289|a.Ea>>2&12288);pd(a,a.Ea);pd(a,a.b[7]);F(a,e)}a.a-=5;a.g&=~(c|19);a.g|=129;a.Ea=-1;a.Lc=d;a.Nc=b;-1==d&&G(a);if(-4<=d)throw b;}}function qd(a){var b=rd(a),c=rd(a);a.i&49152&&(c=c&-225|a.i&63712);F(a,b);zc(a,c);a.g&=-17}
function sd(a,b){var c=b>>13&31;31>c&&(b=a.ta&32?a.Pa[c]+(b&8191)&4194303:b&-3932161);return b}
function Nb(a,b,c){var d,e,f;if(!(c&a.kb))return f=b&65535,57344<=f&&(f|=a.jc),f;d=b>>13;a.ta&a.He[a.B]||(d&=7);e=a.s[a.B][d];f=(a.H[a.B][d]<<6)+(b&8191)&a.cb;3932160<=f&&(f=sd(a,f));if(a.pb)return f;f>=a.od&&f<a.jc?(a.F|=32,J(a,4,0,f)):f&1&&!(c&1)&&(a.F|=64,J(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
function Nb(a,b,c){var d,e,f;if(!(c&a.kb))return f=b&65535,57344<=f&&(f|=a.jc),f;d=b>>13;a.ta&a.He[a.B]||(d&=7);e=a.s[a.B][d];f=(a.H[a.B][d]<<6)+(b&8191)&a.cb;3932160<=f&&(f=sd(a,f));if(a.pb)return f;f>=a.nd&&f<a.jc?(a.F|=32,J(a,4,0,f)):f&1&&!(c&1)&&(a.F|=64,J(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.s[a.B][d]=e;if(f!=(4194170&a.cb)||a.B)a.Xa=a.B,a.Ya=d;g&&(g&57344&&(0<=a.Ea&&(g|=128),a.J&57344||(g|=a.J&4096|a.Xa<<5|a.Ya<<1,tc(a,a.J&-61695|g&61694)),J(a,168,64,-2)),a.J&61440||!(f<(4191360&a.cb)||f>(4194239&a.cb))||(a.J|=4096,a.J&512&&(a.g|=64)));return f}function rd(a){var b=a.W(a.b[6]|a.Aa);a.b[6]=a.b[6]+2&65535;return b}function pd(a,b){var c=a.b[6]-2&65535;a.b[6]=c;a.C=a.C&65535|(a.C&-65536)<<8|16121856;a.g&256||a.hb(4,-2,c);a.Ab(c,b)}
function td(a,b,c,d){var e,f,g=d&8?0:a.Aa;switch(b){case 0:return J(a,4,0,-3),0;case 1:return 6==c&&a.hb(d,0,a.b[6]),a.a-=3,7==c?a.b[c]:a.b[c]|g;case 2:f=2;e=a.b[c];6==c&&a.hb(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.b[c];7!=c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.b[c]+f&65535;6==c&&a.hb(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.b[c]-2&65535;7!=c&&(e|=g);e=a.W(e)|g;a.a-=8;break;case 6:return e=a.W(ld(a,2)),e=e+a.b[c]&65535,6==c&&a.hb(d,0,
e),a.a-=6,e|g;case 7:return e=a.W(ld(a,2)),e=e+a.b[c]&65535,e=a.W(e|a.Aa),a.a-=10,e|g}a.b[c]=a.b[c]+f&65535;a.C=a.C&65535|(a.C&-65536)<<8|(f<<3&248|c)<<16;return e}h.Pe=function(a,b,c){!this.B&&0>=b&&c<=this.Oa&&(this.g|=32)};h.Qe=function(a,b,c){this.B||(65534<=c&&(c|=-65536),a&4&&c<=this.Oa&&(c<=this.Oa-32?J(this,4,0,-4):(this.F|=8,this.g|=32)))};h.Te=function(a){return this.gd(a)};h.Ve=function(a){return this.xc(a)};h.xg=function(a,b){this.Ac(a,b)};h.Ag=function(a,b){this.Cc(a,b)};
h.Ue=function(a,b,c){return td(this,a,b,c)};h.Id=function(a,b,c){return Nb(this,td(this,a,b,c),c)};h.og=function(a){return this.u.Xb(this.Ka=a)};h.Nd=function(a){return this.u.Xb(this.Ka=Nb(this,a,2))};h.Ih=function(a,b){this.u.Yb(this.Ka=a,b)};h.Qd=function(a,b){this.u.Yb(this.Ka=Nb(this,a,4),b)};
function ud(a,b,c){var d=a.f=b&7;(b=a.h=(b&56)>>3)?(d=td(a,b,d,2),c&65536||61440!==(a.i&61440)&&(d&=65535),a.B=a.i>>12&3,c=a.W(d|c&a.Aa),a.B=a.i>>14&3):c=6!=d||(a.i>>2&12288)===(a.i&12288)?a.b[d]:a.ga[a.i>>12&3];return c}function vd(a,b,c,d){a.C=a.C&65535|1441792;var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=td(a,b,e,4),c&65536||(e&=65535),a.B=a.i>>12&3,e=Nb(a,e|c&65536,4),a.B=a.i>>14&3,a.mc(e,d)):6!=e||(a.i>>2&12288)===(a.i&12288)?a.b[e]=d:a.ga[a.i>>12&3]=d}
function wd(a,b){b>>=6;var c=a.S=b&7;return(b=a.K=(b&56)>>3)?a.kc(a.ra(b,c,3)):a.b[c+a.wc]&a.td}function xd(a,b){var c;b>>=6;var d=a.S=b&7;(b=a.K=(b&56)>>3)?c=a.lc(a.ra(b,d,2)):c=a.b[d+a.wc];return c}function yd(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return td(a,b,c,8)}function zd(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.kc(a.ra(b,c,3)):a.b[c]&255}function Ad(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.lc(a.ra(b,d,2)):c=a.b[d];return c}
function wd(a,b){b>>=6;var c=a.S=b&7;return(b=a.K=(b&56)>>3)?a.kc(a.ra(b,c,3)):a.b[c+a.wc]&a.sd}function xd(a,b){var c;b>>=6;var d=a.S=b&7;(b=a.K=(b&56)>>3)?c=a.lc(a.ra(b,d,2)):c=a.b[d+a.wc];return c}function yd(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return td(a,b,c,8)}function zd(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.kc(a.ra(b,c,3)):a.b[c]&255}function Ad(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.lc(a.ra(b,d,2)):c=a.b[d];return c}
function P(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.qc=a.ra(b,e,7),c=0>c?a.b[-c-1]&255:c,a.yc(e,d.call(a,c,a.kc(e))),e&1&&a.a--):(b=a.b[e],c=0>c?a.b[-c-1]&255:c,a.b[e]=b&65280|d.call(a,c,b&255))}function Q(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.ra(b,e,6),a.mc(e,d.call(a,0>c?a.b[-c-1]:c,a.lc(e)))):a.b[e]=d.call(a,0>c?a.b[-c-1]:c,a.b[e])}
function Bd(a,b,c,d,e){var f=a.f=b&7;(b=a.h=(b&56)>>3)?(d=a.ra(b,f,5),e.call(a,(c=0>c?a.b[-c-1]&255:c)<<8),a.yc(d,c),d&1&&a.a--):(c?(c=0>c?a.b[-c-1]&255:c,a.b[f]=a.b[f]&~d|c<<24>>24&d):a.b[f]&=~d,e.call(a,c<<8))}function Cd(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.ra(b,e,4),d.call(a,c=0>c?a.b[-c-1]:c),a.mc(e,c)):(a.b[e]=c=0>c?a.b[-c-1]:c,d.call(a,c))}
h.zc=function(a){this.j.complete=!0;var b=a?this.j.cd?0:1:-1;this.j.cd=!1;this.Ma=this.a=a;this.g=this.g&-5|0;do{if(this.g){if(a=this.g&11)if(a=!1,this.g&2){var c=160,d=(this.$a&224)>>5,e=this.I&&this.I.sb>d?this.I:null;e&&(c=e.Ub,d=e.sb);d>(this.i&224)>>5?(this.g&8&&(ld(this,2),this.g&=-9),J(this,c,0,-10),d=!0):d=!1;d&&(e&&rc(this,e),a=!0);this.I||this.$a||(this.g&=-3)}else this.g&1&&this.g++;if(a){if(this.g&4&&this.D.b(this.b[7],b)){G(this);break}if(0>b)break}if(this.g&112&&md(this)){if(this.g&
4&&this.D.b(this.b[7],b)){G(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.C=this.b[7];e=this.W(a);this.b[7]=a+2&65535;this.nd(e)}while(0<this.a);return this.j.complete?this.Ma-this.a:!1===this.j.complete?-1:0};Ya(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new dd(d);x(d,c)}});function Dd(a,b){var c=b+a;this.w=this.l=this.v=c;this.m=(a^c)&(b^c);return c&65535}
4&&this.D.b(this.b[7],b)){G(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.C=this.b[7];e=this.W(a);this.b[7]=a+2&65535;this.vd(e)}while(0<this.a);return this.j.complete?this.Ma-this.a:!1===this.j.complete?-1:0};Ya(function(){for(var a=A(document,z,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new dd(d);x(d,c)}});function Dd(a,b){var c=b+a;this.w=this.l=this.v=c;this.m=(a^c)&(b^c);return c&65535}
function Ed(a,b){var c=b+a,d=c<<8;this.w=this.l=this.v=d;this.m=(a<<8^d)&(b<<8^d);return c&255}function Fd(a,b){a=b<<1;nd(this,a);return a&65535}function Gd(a,b){a=b<<1;nd(this,a<<8);return a&255}function Hd(a,b){a=b&32768|b>>1|b<<16;nd(this,a);return a&65535}function Id(a,b){a=b&128|b>>1|b<<8;nd(this,a<<8);return a&255}function Jd(a,b){a=b&~a;this.fa(a);return a}function Kd(a,b){a=b&~a;this.fa(a<<8);return a}function Ld(a,b){a|=b;this.fa(a);return a}function Md(a,b){a|=b;this.fa(a<<8);return a}
function Nd(a,b){a=~b|65536;this.Sa(a);return a&65535}function Od(a,b){a=~b|256;this.Sa(a<<8);return a&255}function Pd(a,b){this.w=this.l=a=b-a;this.m=b&(b^a);return a&65535}function Qd(a,b){a=b-a;var c=a<<8;b<<=8;this.w=this.l=c;this.m=b&(b^c);return a&255}function Rd(a,b){this.w=this.l=a=b+a;this.m=a&(b^a);return a&65535}function Sd(a,b){a=b+a;var c=a<<8;this.w=this.l=c;this.m=c&(b<<8^c);return a&255}function Td(a,b){a=-b;this.Sa(a,a&b&32768);return a&65535}
function Ud(a,b){a=-b;this.Sa(a<<8,(a&b&128)<<8);return a&255}function Vd(a,b){a=b<<1|this.v>>16&1;nd(this,a);return a&65535}function Wd(a,b){a=b<<1|this.v>>16&1;nd(this,a<<8);return a&255}function Xd(a,b){a=(this.v&65536|b)>>1|b<<16;nd(this,a);return a&65535}function Yd(a,b){a=((this.v&65536)>>8|b)>>1|b<<8;nd(this,a<<8);return a&255}function Zd(a,b){var c=b-a;od(this,c,a,b);return c&65535}function $d(a,b){var c=b-a;od(this,c<<8,a<<8,b<<8);return c&255}
@ -231,7 +231,7 @@ function vg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){u(a.typ
h.ma=function(a,b,c){var d=this;switch(b){case "listDisks":return this.o[b]=c,c.onchange=function(){wg(d)},!0;case "descDisk":case "listDrives":return this.o[b]=c,c.onchange=function(){var a=Ba(c.value,10);null!=a&&xg(d,a)},!0;case "loadDisk":return this.o[b]=c,c.onclick=function(){d.Zc()},!0;case "bootDisk":return this.o[b]=c,c.onclick=function(){d.Ed()},!0;case "saveDisk":if(!this.F){c.parentNode.removeChild(c);break}this.o[b]=c;c.onclick=function(){var a=d.o.listDrives;if(a&&a.options&&d.b)if(a=
d.b[Ba(a.value,10)||0])if(a=a.O){var b;b="";for(var c=0,k;k=rg(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(sg(a,k,l));b=btoa(b);a=a.bd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
(a?" ("+a+")":"")+".");u(a)}else d.G("No disk loaded in drive.");else d.G("No disk drive selected.")};return!0;case "mountDisk":if(this.F)return this.o[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Zc(Ea(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ja=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;if(a=vg(this,Tc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.C[e]=a[e]);this.reset();this.qa=pc(this.c,this.I.Uc,this.I.Qc,this.qd);qb(b,this,this.K);sb(b,this.reset.bind(this));yg(this,"None",zg,!0);this.F&&yg(this,"Local Disk",Ag);yg(this,"Remote Disk",Bg);Cg(this)||B(this)};
h.ja=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.D=d;if(a=vg(this,Tc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.C[e]=a[e]);this.reset();this.qa=pc(this.c,this.I.Uc,this.I.Qc,this.pd);qb(b,this,this.K);sb(b,this.reset.bind(this));yg(this,"None",zg,!0);this.F&&yg(this,"Local Disk",Ag);yg(this,"Remote Disk",Bg);Cg(this)||B(this)};
h.la=function(a,b){if(!b){if(!a){if(this.reset(),this.A.B){this.m=[];for(a=0;a<this.b.length;a++)Dg(this,a,!0);Cg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.o.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.H;b++){var c=document.createElement("option");c.value=b;c.text=this.b[b].oc||"---";a.appendChild(c)}0<this.H&&(a.value="0",xg(this,0))}}return!0};h.ka=function(a){return a?this.save():!0};h.reset=function(){this.bb();Eg(this)};
h.save=function(){var a=new E(this);a.set(0,this.pc());a.set(1,Fg(this));a.set(2,Gg(this));return a.data()};h.restore=function(a){var b=!0;this.bb(a[0])||(b=!1);var c=a[1];c&&(this.m=c);Eg(this,a[2])||(b=!1);return b};h.bb=function(){return!0};h.pc=function(){return[]};
function Eg(a,b){for(var c=0;c<a.b.length;c++){var d=a.b[c];void 0===d&&(d=a.b[c]={});var e=a,f=d,d=c,g=a.J,k=b&&b[c],l=0;f.rb=d;f.name=e.ib;f.hc=f.qb=!1;f.Jb=null;f.Yc=!0;f.oc=g[l++]+d;f.L=g[l++];f.T=g[l++];f.P=g[l++];f.Z=g[l++];f.Xe=g[l++];f.Ye=g[l++];f.Ze=g[l++];f.Oe=g[l++];f.status=g[l++];f.Hj=0;f.Gj=0;f.Dd=1;f.Ne=f.P;f.Kd=f.Z;f.Pj=0;f.Vj=null;f.O||(f.oa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.b[d],Dg(e,d,!0),g.qb=!0,d=new kg(e,g,"preload"),e.Gd(g,d,f,k,!0)):Hg(e,d,l,g,!0)?f.O&&g&&Ig(e,l,g,f.O):
@ -275,7 +275,7 @@ function dh(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms)
h.Vb=function(a,b){for(var c=this,d=ra(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!za(f)){za(f,function(){c.Vb(a,b)});return}}a.call(this,b)};function ih(a,b){var c=new E(a,"1.34.0",jh);if(gh(c)&&kh(c)){var d=c.get(lh),e=b?b.get(lh):"unknown";d!=e&&(a.G("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
h.Sb=function(a){void 0===a&&(a=this.a||(this.s?mh:fh));if(!this.g){this.g++;var b=!1,c=!1;this.C=!1;var d=this.m||new E(this,"1.34.0");if(a==nh)b=!0;else if(a>fh){if(gh(d,this.s)){this.h=new E(this,"1.34.0",qh);gh(this.h)&&(rh(this,d),a=sh,th(this.h));this.h.set(lh,La());uh(this.h);var e=this.a&&!this.l;if(a==mh||qa("Click OK to restore the previous "+gb+" machine state, or CANCEL to reset the machine.")){if(c=kh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?gh(d,g):("error"==f&&"no machine state"!=
g?(this.G("Error: "+g),"unable to verify user"==g&&(Sa(vh,""),this.b=null)):this.aa(f+": "+g),th(d),gh(d)?(c=kh(d),e=!0):c=!1))}e&&ih(this,c?d:null)}else a==sh&&d.clear()}else ih(this);delete this.s;delete this.m}e=ra(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=wh(this,g,d,b,c));b=[d,a,c];a!=nh?this.Vb(this.Fd,b):this.Fd(b)}};
function wh(a,b,c,d,e){if(!b.j.R){b.j.R=!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.la(f,d)&&f&&(u("Unable to restore state for "+b.type),a.v&&!a.I?(c.clear(),a.a=fh,window&&window.location.reload()):a.C=!0,b.la(null),e=!1),!d&&b.sd){var g=b.sd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){u("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
function wh(a,b,c,d,e){if(!b.j.R){b.j.R=!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.la(f,d)&&f&&(u("Unable to restore state for "+b.type),a.v&&!a.I?(c.clear(),a.a=fh,window&&window.location.reload()):a.C=!0,b.la(null),e=!1),!d&&b.qd){var g=b.qd.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){u("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.Fd=function(a){var b=a[0],c=0>a[1];a=a[2];this.H=!0;this.j.R=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.c&&(wh(this,this.c,b,c,a),Kb(this,-2),this.c.Y());this.C&&(rh(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.g=0};
function rh(a,b){if(qa("There may be a problem with your "+gb+" machine.\n\nTo help us diagnose it, click OK to send this "+gb+" machine state to http://www.pcjs.org.")){var c=a.K;a=a.b||"";b=b.toString();var d={};d.app=gb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;Ma("http://www.pcjs.org/api/v1/report",d,!0)}}
function xh(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new E(a,"1.34.0"),g=new E(a,"1.34.0",jh),k=La();g.set(lh,k);f.set(lh,k);f.set(yh,"1.34.0");f.set(zh,window?window.location.href:null);f.set(Ah,window?window.navigator.userAgent:"");a.c&&a.c.ka&&(c&&(b&&(a.c.j.Y=a.c.j.M),G(a.c)),d=a.c.ka(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.j.R=!1,!1===d&&(e=null)));for(var k=ra(a.id),l=0;l<k.length;l++){var m=k[l];m.j.R&&(m.ka&&(d=m.ka(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.j.R=