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