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