Added disassembly of basic PDP-10 operations
This commit is contained in:
parent
da3bb4740c
commit
3b27f45b76
7 changed files with 511 additions and 381 deletions
|
|
@ -31,175 +31,175 @@ var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function ha(){ea();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return pa(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function pa(a){ha();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function r(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function qa(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
qa("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});qa("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var ra=Math.pow(2,36),sa=-Math.pow(2,35),t={Vb:0,jb:1,Xb:2,Yb:3,Zb:4,$b:5,ac:6,bc:7,Wa:8,cc:9,kb:10,dc:11,ec:12,lb:13,fc:14,gc:15,hc:16,ic:17,jc:18,kc:19,lc:20,mc:21,nc:22,oc:23,pc:24,qc:25,rc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Va:65,Ub:66,Wb:67,sc:68,E:69,tc:70,uc:71,vc:72,wc:73,xc:74,yc:75,zc:76,Ac:77,Bc:78,Cc:79,Dc:80,Q:81,
|
||||
var ra=Math.pow(2,36),sa=-Math.pow(2,35),t={Vb:0,jb:1,Xb:2,Yb:3,Zb:4,$b:5,ac:6,bc:7,Ua:8,cc:9,kb:10,dc:11,ec:12,lb:13,fc:14,gc:15,hc:16,ic:17,jc:18,kc:19,lc:20,mc:21,nc:22,oc:23,pc:24,qc:25,rc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Ta:65,Ub:66,Wb:67,sc:68,E:69,tc:70,uc:71,vc:72,wc:73,xc:74,yc:75,zc:76,Ac:77,Bc:78,Cc:79,Dc:80,Q:81,
|
||||
Ec:82,Fc:83,Gc:84,Hc:85,Ic:86,Jc:87,Kc:88,Lc:89,ob:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Mc:97,Nc:98,Oc:99,d:100,e:101,Pc:102,Qc:103,Rc:104,Sc:105,Tc:106,k:107,Uc:108,Vc:109,n:110,Wc:111,p:112,q:113,r:114,Xc:115,t:116,Zc:117,$c:118,ad:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,mb:127};
|
||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ya=b.comment;this.nb=b;this.exports={};this.F=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.i={ready:!1,Ea:!1,Sa:!1,T:!1,error:!1};this.Oa=null;this.i.error=!1;this.V=c||0;this.A=this.b=this.C=this.D=this.ja=null;v.push(this)}function ta(a,b,c){ua[a]&&b&&(ua[a][b]=c)}function va(){return Date.now()||+new Date}
|
||||
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ya=b.comment;this.nb=b;this.exports={};this.F=this.bindings={};a=this.id.indexOf(".");0>a?this.Ja=this.id:(this.Ka=this.id.substr(0,a),this.Ja=this.id.substr(a+1));this.i={ready:!1,Da:!1,Qa:!1,T:!1,error:!1};this.Ma=null;this.i.error=!1;this.V=c||0;this.A=this.b=this.C=this.D=this.ja=null;v.push(this)}function ta(a,b,c){ua[a]&&b&&(ua[a][b]=c)}function va(){return Date.now()||+new Date}
|
||||
function x(a){window&&window.alert(a)}function wa(a){var b=!1;window&&(b=window.confirm(a));return b}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function xa(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
|
||||
function z(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
|
||||
function B(a,b){var c=C;b=D(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=A(f))&&h.binding&&a.da(h.type,h.binding,f,h.value),m=k.length}}}}
|
||||
function B(a,b){var c=C;b=D(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=A(g))&&h.binding&&a.da(h.type,h.binding,g,h.value),m=k.length}}}}
|
||||
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
function ya(a){for(var b=!0,c=Aa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Ga.indexOf(e)&&(g=function(){return function(){ya(a)}}());var f=Ha[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=z(d[1],a);if(h)if(f=Ia[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){x("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete Aa[a];return b}l=u.prototype;
|
||||
function ya(a){for(var b=!0,c=Aa[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Ga.indexOf(e)&&(f=function(){return function(){ya(a)}}());var g=Ha[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,h=z(d[1],a);if(h)if(g=Ia[e])b=g(h,d[2],d[3]);else{var k=h.exports;if(k&&(g=k[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){x("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Aa[a];return b}l=u.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.da=function(a,b,c){switch(b){case "clear":return this.F[b]||(this.F[b]=c,c.onclick=function(a){return function(){a.F.print&&(a.F.print.value="")}}(this)),!0;case "print":return this.F[b]||(this.ja=this.F[b]=c,c.value="",this.f=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.Y=function(a){this.f(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
||||
l.status=function(a){this.f(this.Ka+": "+a)};l.Y=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function Ja(a,b){a.i.error=!0;a.Y(b)}function Ka(a){return a.i.error?(a.f(a.toString()+" error"),!0):!1}function La(a,b){b&&(a.i.ready?b():a.Oa=b);return a.i.ready}function E(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Oa;a.Oa=null;b&&b()}}function Ma(a,b){a.i.Ea&&(b?a.i.Sa=!0:void 0===b&&a.f(a.toString()+" busy"));return a.i.Ea}
|
||||
function Na(a,b){if(a.i.Sa)return a.i.Ea=!1,a.i.Sa=!1;if(a.i.error)return a.f(a.toString()+" error"),!1;a.i.Ea=b;return a.i.Ea}l.la=function(){return this.i.T=!0};l.ca=function(a,b){b&&(this.i.T=!1);return!0};function Oa(a,b){if(a.A){a===a.A?b|=0:b=b||a.V;var c=a.A.V&b;return!!b&&c===b||!!(c&a.A.cb)}return!1}function G(a,b,c,d){a.A&&(!0===c||Oa(a,c|0))&&a.A.message(b,d)}
|
||||
l.da=function(a,b,c){switch(b){case "clear":return this.F[b]||(this.F[b]=c,c.onclick=function(a){return function(){a.F.print&&(a.F.print.value="")}}(this)),!0;case "print":return this.F[b]||(this.ja=this.F[b]=c,c.value="",this.f=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.Y=function(a){this.f(a,this.Ja)}),!0;default:return!1}};l.log=function(){};l.f=function(){};
|
||||
l.status=function(a){this.f(this.Ja+": "+a)};l.Y=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function Ja(a,b){a.i.error=!0;a.Y(b)}function Ka(a){return a.i.error?(a.f(a.toString()+" error"),!0):!1}function La(a,b){b&&(a.i.ready?b():a.Ma=b);return a.i.ready}function E(a){if(!a.i.error&&(a.i.ready=!0,a.i.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Ma(a,b){a.i.Da&&(b?a.i.Qa=!0:void 0===b&&a.f(a.toString()+" busy"));return a.i.Da}
|
||||
function Na(a,b){if(a.i.Qa)return a.i.Da=!1,a.i.Qa=!1;if(a.i.error)return a.f(a.toString()+" error"),!1;a.i.Da=b;return a.i.Da}l.la=function(){return this.i.T=!0};l.ca=function(a,b){b&&(this.i.T=!1);return!0};function Oa(a,b){if(a.A){a===a.A?b|=0:b=b||a.V;var c=a.A.V&b;return!!b&&c===b||!!(c&a.A.cb)}return!1}function G(a,b,c,d){a.A&&(!0===c||Oa(a,c|0))&&a.A.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var ua=window?window.PCjs.Machines:{},v=window?window.PCjs.Components:[],Aa=window?window.PCjs.Commands:{},Ga=["hold","sleep","wait"],Ha={alert:function(a){x(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Ia={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
function Pa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var g,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
||||
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c}function Qa(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
|
||||
function Pa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
||||
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return c}function Qa(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
|
||||
function H(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function I(a){return H(a,4,!0)}function Ra(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function Sa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
|
||||
function Ta(){var a=Ua();return-1!==a.indexOf("pcjs.org",a.length-8)}function Va(a){return a.replace(/[&<>"']/g,function(a){return Wa[a]})}function Xa(a,b){return(a+" ").slice(0,b)}function fb(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Wa={"&":"&","<":"<",">":">",'"':""","'":"'"};
|
||||
function gb(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function hb(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function J(a,b,c,d){c=void 0===c?!1:c;var e=0,g=null,f=null;if("object"==typeof resources&&(g=resources[a]))return d&&d(a,g,e),[g,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),f;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(g=h.responseText,200==h.status||!h.status&&g.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
||||
g,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(g=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,g,e),f=[g,e]);return f}
|
||||
function ib(a,b){var c,d={W:null,S:null,ia:null,ha: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")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ia=f.load;d.ha=f.exec;if(e=f.bytes)d.W=e;else if(e=f.words)for(d.W=Array(2*e.length),g=c=0;c<e.length;c++)d.W[g++]=e[c]&255,d.W[g++]=e[c]>>8&255;else if(e=f.data)for(d.W=Array(4*e.length),g=c=0;c<e.length;c++)d.W[g++]=e[c]&255,
|
||||
d.W[g++]=e[c]>>8&255,d.W[g++]=e[c]>>16&255,d.W[g++]=e[c]>>24&255;else d.W=f;d.S=f.symbols;d.W.length?1==d.W.length&&(x(d.W[0]),d=null):(x("Empty resource: "+a),d=null)}catch(h){x("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){x("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.W=e)}return d}
|
||||
function Ta(){var a=Ua();return-1!==a.indexOf("pcjs.org",a.length-8)}function Va(a){return a.replace(/[&<>"']/g,function(a){return Wa[a]})}function Xa(a,b){return(a+" ").slice(0,b)}function Ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Wa={"&":"&","<":"<",">":">",'"':""","'":"'"};
|
||||
function gb(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,h;h=c(b,a[g]);0<h?d=g+1:(e=g,f=!h)}return f?d:~d}function hb(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
function J(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,
|
||||
f,e))});if(b&&"object"==typeof b){var k="",m;for(m in b)b.hasOwnProperty(m)&&(k&&(k+="&"),k+=m+"="+encodeURIComponent(b[m]));k=k.replace(/%20/g,"+");h.open("POST",a,c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(f=h.responseText,200!=h.status&&(e=h.status||-1),d&&d(a,f,e),g=[f,e]);return g}
|
||||
function ib(a,b){var c,d={W:null,S:null,ia:null,ha:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ia=g.load;d.ha=g.exec;if(e=g.bytes)d.W=e;else if(e=g.words)for(d.W=Array(2*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,d.W[f++]=e[c]>>8&255;else if(e=g.data)for(d.W=Array(4*e.length),f=c=0;c<e.length;c++)d.W[f++]=e[c]&255,
|
||||
d.W[f++]=e[c]>>8&255,d.W[f++]=e[c]>>16&255,d.W[f++]=e[c]>>24&255;else d.W=g;d.S=g.symbols;d.W.length?1==d.W.length&&(x(d.W[0]),d=null):(x("Empty resource: "+a),d=null)}catch(h){x("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){x("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.W=e)}return d}
|
||||
function Ua(){return"http://"+(window?window.location.host:"www.pcjs.org")}function jb(){if(null==kb){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}kb=a}return kb}function lb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function mb(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function nb(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
|
||||
function ob(a){if(!pb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,g=/([^&=]+)=?([^&]*)/g;d=g.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}pb=c}return pb[a]}function qb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function rb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,g=!1;a.onmousedown=function(){g||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);g=!0}}function sb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function M(a){tb.init.push(a)}
|
||||
function ob(a){if(!pb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}pb=c}return pb[a]}function qb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function rb(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function sb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function M(a){tb.init.push(a)}
|
||||
function ub(a){if(vb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function wb(a){!vb&&a?(vb=!0,xb&&yb("init"),zb&&yb("show")):vb=a}function yb(a){tb[a]&&ub(tb[a])}var pb=null,tb={init:[],show:[],exit:[]},xb=!1,zb=!1,vb=!0,kb=null;sb("onload",function(){xb=!0;ub(tb.init)});sb("onpageshow",function(){zb=!0;ub(tb.show)});sb(nb("Opera")||nb("iOS")?"onunload":"onbeforeunload",function(){ub(tb.exit)});
|
||||
var C="pdp10",Fb="PDPjs",Gb=Math.pow(2,18),Hb=Math.pow(2,36),C="pdp10",Fb="PDPjs",N={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Ib(a,b){u.call(this,"Panel",a,512);this.I=this.K=0;this.U=b;this.j=this.H=this.u=this.w=0;this.L=this.M=-1;this.N=this.O=this.G=!1;this.P=Jb;this.B={};this.g={START:[1,1,!0,!1,this.Bb],STEP:[1,1,!1,!1,this.Cb],ENABLE:[1,1,!1,!1,this.wb],CONT:[1,1,!0,!1,this.ub],DEP:[0,0,!0,!1,this.vb],EXAM:[1,1,!0,!1,this.xb],LOAD:[1,1,!0,!1,this.zb],TEST:[0,0,!0,!1,this.yb]};for(a=0;22>a;a++)this.g["S"+a]=[0,0,!1,!1,this.Ab,a];this.A=this.b=this.C=this.D=null;this.exports={hold:this.sb,toggle:this.Nb,reset:this.Jb,
|
||||
set:this.Mb};E(this)}r(Ib,u);l=Ib.prototype;l.reset=function(a){this.stop();a&&Kb(this,this.w=0)};
|
||||
l.da=function(a,b,c,d){if(this.D&&this.D.da(a,b,c,d)||this.b&&this.b.da(a,b,c,d)||this.A&&this.A.da(a,b,c,d))return!0;switch(b){case "PC":return this.F[b]=c,this.K++,!0;default:return"led"==a||"rled"==a?(this.F[b]=c,this.B[b]=d?1:0,this.K++,!0):"switch"==a?(void 0===this.g[b]&&(this.g[b]=[d?1:0,d?1:0]),this.F[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Lb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Mb(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){Lb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Mb(a,b)}}(this,b),!0):u.prototype.da.call(this,a,b,c,d)}};l.sa=function(a,b,c,d){this.D=a;this.C=b;this.b=c;this.A=d;Nb(this);Ob(this)};l.la=function(a,b){if(!b)if(this.U&&Pb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ca=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,[this.j,this.w,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])Qb(this,this.j=a[0]),Kb(this,this.w=a[1]),Rb(this,a[2]);return!0};l.Jb=function(){for(var a in this.g){var b=this.g[a];b[1]=b[0]}Ob(this);return!0};function Sb(a,b,c){if(a=a.F[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Nb(a,b){for(var c in a.B)Sb(a,c,null!=b?b:a.B[c])}function Tb(a,b,c){if(a=a.F[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ob(a){for(var b in a.g)Tb(a,b,a.g[b][1])}
|
||||
l.sb=function(a,b,c){if(Lb(this,b)){if(c){var d=this;setTimeout(function(){Mb(d,b);a&&a()},+c);return!1}Mb(this,b)}return!0};l.Mb=function(a,b){if("SR"==a)return Rb(this,Pa(b,8));var c=this.g[a];return c?(c[1]=+b?1:0,Tb(this,a,c[1]),!0):!1};l.Nb=function(a){return Lb(this,a)?(Mb(this,a),!0):!1};function Lb(a,b){var c=a.g[b];return c?(Tb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=Ub&&(a.N=b==Vb,a.O=b==Wb),!0):!1}
|
||||
function Mb(a,b){var c=a.g[b];c&&(c[2]&&c[3]&&(Tb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Bb=function(a){a||this.b.i.J||(this.b.g=this.j%Gb,this.g[Xb]&&this.g[Xb][1]&&Yb(this.b))};l.Cb=function(){};l.wb=function(a){a||this.b.R()};
|
||||
l.ub=function(a){if(!a&&!this.b.i.J)if(this.g[Xb]&&this.g[Xb][1])Yb(this.b);else{if((a=this.A)&&!Ma(a,!0))Na(a,!0),Zb(a,0,null),Na(a,!1);else try{var b=this.b.Ja(1);0<b&&($b(this.b,b),ac(this.b,b,!0),bc(this.b,b))}catch(c){"number"!=typeof c&&Ja(this.b,c.stack||c.message)}this.stop();this.D&&Q(this.D)}};l.vb=function(a){a&&!this.b.i.J&&(this.N&&cc(this),a=Kb(this,this.w=this.u),this.P==Jb?dc(this.C,this.j,a):this.b.Ia(this.j,a))};
|
||||
l.xb=function(a){if(!a&&!this.b.i.J){var b;this.O&&cc(this);this.P==Jb?b=ec(this.C,this.j):b=this.b.ta(this.j);Kb(this,this.w=b)}};l.zb=function(a){a||this.b.i.J||Qb(this,this.u)};l.yb=function(a){a?(this.G=!0,Nb(this,!0)):(this.G=!1,Nb(this),Rb(this,0))};l.Ab=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function cc(a){var b=1,c=a.C.u;a.g[Ub]&&a.g[Ub][1]||(b=-b);Qb(a,a.j&~c|a.j+b&c)}
|
||||
function Qb(a,b){a.j=b&a.C.u;if(a.L!==a.j){a.L=a.j;b=a.L;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.G||Sb(d,e,g)}}}function Kb(a,b){a.H=b%Hb;if(a.M!==a.H){a.M=a.H;b=a.M;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.G||Sb(d,e,g)}}return a.H}function Rb(a,b){a.u=b|0;for(b=0;22>b;b++)a.g["S"+b][1]=a.u&1<<b?1:0;Ob(a);return!0}l.stop=function(){Qb(this,this.b.g)};
|
||||
function Pb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=xa(d.id);e||(e=new Ib(d,!0));B(e,c)}}var Jb=7,Vb="DEP",Xb="ENABLE",Wb="EXAM",Ub="STEP";M(Pb);function fc(a,b,c){u.call(this,"Bus",a,16);this.b=b;this.A=c;this.H=+a.busWidth||18;this.G=1<<this.H;this.u=this.G-1;this.j=Math.log2(16384);this.B=this.G/16384|0;this.w=0;this.g=[];a=new V(this);gc(a,this.A);this.g=Array(this.B);for(b=0;b<this.B;b++)this.g[b]=a;E(this)}r(fc,u);l=fc.prototype;l.reset=function(){};
|
||||
l.la=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ca=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,hc(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.g[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function ic(a,b,c,d){for(var e=b,g=c,f=e>>>a.j;0<g&&f<a.g.length;){var h=a.g[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.v)return h.Ha+=h.v-e,h.v=e,!0;if(e>=h.v+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.v+m;e=k+16384;g-=m;f++;continue}}return jc(kc,e,g)}e=new V(a,e,m,16384,d);gc(e,a.A,h);a.g[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+lc[d]+" at "+Qa(b)),!0):jc(mc,b,c)}
|
||||
function ec(a,b){var c=a.g[(b&a.u)>>>a.j];a.w++;b=c.j(b&16383,b);a.w--;return b}function dc(a,b,c){var d=a.g[(b&a.u)>>>a.j];a.w++;d.F(c,b&16383,b);a.w--}function hc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.g[d];if(e.Na||e.pb){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.rb=function(a){!this.w&&this.A&&Oa(this.A,4)&&(G(this.A,"memory fault on "+W(this.A,a),!0,!0),this.A.R())};function jc(a,b,c){x("Memory block error ("+a+": "+H(b)+","+H(c)+")");return!1}var kc=1,mc=2;function nc(a){u.call(this,"Device",a,256)}r(nc,u);l=nc.prototype;l.sa=function(a,b,c,d){this.C=b;this.D=a;this.b=c;this.A=d;E(this)};l.la=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ca=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new O(this)).data()};
|
||||
l.restore=function(){return!0};M(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new nc(c),B(c,d)}}});function V(a,b,c,d,e){this.B=a;this.id=Ec+=2;this.v=b;this.Ha=c;this.size=d||0;this.type=e||Fc;this.g=e==Gc;this.b=null;this.ta=this.j=this.u=this.Ga;this.Ia=this.F=this.w=this.ua;this.C=this.D=0;gc(this);this.Na=this.pb=!1;if(this.size){a=this.A=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Hc(this,Ic)}else Hc(this)}l=V.prototype;
|
||||
l.save=function(){return this.A};l.restore=function(a){return a&&this.size==a.length?(this.A=a,this.Na=!0):!1};function Hc(a,b){b||(b=Jc);Kc(a,b,void 0);Lc(a,b,void 0)}function Kc(a,b,c){c&&a.C||(a.ta=b[2]||a.Ga);if(c||void 0===c)a.u=b[0]||a.Ga,a.j=b[2]||a.Ga}function Lc(a,b,c){c&&a.D||(a.Ia=!a.g&&b[3]||a.ua);if(c||void 0===c)a.w=b[1]||a.ua,a.F=b[3]||a.ua}l.va=function(a,b){b?this.D++||Lc(this,Mc,!1):this.C++||Kc(this,Mc,!1)};function Nc(a,b){b?--a.D||(a.Ia=a.g?a.ua:a.F):--a.C||(a.ta=a.j)}
|
||||
function gc(a,b,c){a.b=b;a.C=a.D=0;c&&((a.C=c.C)&&Kc(a,Mc,!1),(a.D=c.D)&&Lc(a,Mc,!1))}l.Ga=function(a,b){this.b&&Oa(this.b,32)&&G(this.b,"attempt to read invalid address "+W(this.b,b),!0);this.B.rb(b);return-1};l.ua=function(a,b,c){this.b&&Oa(this.b,32)&&G(this.b,"attempt to write "+W(this.b,a)+" to invalid addresses "+W(this.b,c),!0)};l.Eb=function(a,b,c,d){a=this.A[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};l.Hb=function(a){return this.A[a]};
|
||||
l.Qb=function(a,b,c,d,e){c=this.A[b];var g=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*g+d%g;this.A[b]!=c&&(this.A[b]=c,this.Na=!0)};l.Sb=function(a,b){this.A[b]=a;this.Na=!0};l.Db=function(a,b,c,d){if(this.b&&null!=this.v){var e=this.b;Oc(e,this.v+a,1,e.K)&&e.R(!1)}return this.u(a,b,c,d)};l.Fb=function(a,b){if(this.b&&null!=this.v){var c=this.b;Oc(c,this.v+a,2,c.K)&&c.R(!1)}return this.j(a,b)};
|
||||
l.Pb=function(a,b,c,d,e){if(this.b&&null!=this.v){var g=this.b;Oc(g,this.v+b,1,g.G)&&g.R(!1)}this.g?this.ua(a,0,c):this.w(a,b,c,d,e)};l.Rb=function(a,b,c){if(this.b&&null!=this.v){var d=this.b;Oc(d,this.v+b,2,d.G)&&d.R(!1)}this.g?this.ua(a,0,c):this.F(a,b,c)};var Fc=0,Gc=2,lc=["NONE","RAM","ROM"],Ec=0,Jc=[],Ic=[V.prototype.Eb,V.prototype.Qb,V.prototype.Hb,V.prototype.Sb],Mc=[V.prototype.Db,V.prototype.Pb,V.prototype.Fb,V.prototype.Rb];
|
||||
function Pc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Aa=b;this.N=c;this.ya=Math.round(this.Aa/1E4)/100;this.M=this.ya*this.N;this.za=this.oa=this.O=this.qa=0;this.i.J=this.i.Ra=!1;this.i.X=a.autoStart;"string"==typeof this.i.X&&(this.i.X="true"==this.i.X);this.i.Ca=!1;this.ma=this.U=0;this.na=+a.csStart;this.P=+a.csInterval;this.Z=+a.csStop;this.B=[];this.$a=this.Kb.bind(this);this.K=this.w=this.H=this.I=this.u=this.ga=this.G=this.aa=this.Ba=this.L=0;this.pa=
|
||||
null;E(this)}r(Pc,u);l=Pc.prototype;l.sa=function(a,b,c,d){this.D=a;this.C=b;this.A=d;this.pa=a.u;for(a=0;a<Qc.length;a++)(b=this.F[Qc[a]])&&this.D.da(null,Qc[a],b);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.la=function(a,b){var c=Rc(this.D,"autoStart");null!=c?this.i.X="true"==c?!0:"false"==c?!1:!!c:null==this.i.X&&(this.i.X=!this.A&&void 0===this.F.run);if(!b){if(a){Sc(this);if(!this.restore(a))return!1;Tc(this)}else this.reset();this.A?(a=this.A,b=this.i.X,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),Uc(a),b||Vc(a),a.ra&&(b=a.ra,a.ra=null,Wc(a,b))):this.status("No debugger detected");this.i.X||this.f("CPU will not be auto-started "+(this.pa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ca=function(a){return a?this.save():!0};l.X=function(){return this.i.J?!0:this.i.X?(Yb(this),!0):!1};l.gb=function(){return 0};function Tc(a){void 0===a.na&&(a.na=0);void 0===a.P&&(a.P=-1);void 0===a.Z&&(a.Z=-1);a.i.Ca=0<=a.na&&0<a.P;a.i.Ca&&(a.ma=0,a.U=a.na-a.K)}function bc(a,b){if(a.i.Ca){var c=!1;a.ma=a.ma+a.gb()|0;a.U-=b;0>=a.U&&(a.U+=a.P,c=!0);0<=a.Z&&a.Z<=Xc(a)&&(a.P=a.Z=-1,Tc(a),a.R(),c=!0);c&&a.f(Xc(a)+" cycles: checksum="+H(a.ma))}}
|
||||
l.da=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.F[b]=c,!0;case "run":return this.F[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.T)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.T);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.Oa?" (waiting for notification)":""))+".");a=!1}a&&(d.i.J?d.R():Yb(d))},!0;case "speed":return this.F[b]=
|
||||
c,!0;case "setSpeed":return this.F[b]=c,c.onclick=function(){Yc(d,d.N<<1,!0)},c.textContent=this.M.toFixed(2)+"Mhz",!0}return!1};function ac(a,b,c){a.K+=b;c&&(a.H=a.I=0)}function Zc(a,b){var c=1;b&&1<a.N&&a.L&&(c=a.L/a.ya);a.za=Math.round(1E3/$c);a.oa=Math.floor(a.Aa/$c*c);b||(a.O=a.oa);a.qa=0}function Xc(a){return a.K+a.w+a.H-a.I}function Sc(a){a.L=0;a.Ba=0;a.K=a.w=a.H=a.I=0;Tc(a);Yc(a,1)}
|
||||
function Yc(a,b,c){var d=!1;if(void 0!==b){.8>a.L/a.M?b=1:d=!0;a.N=b;b=a.ya*a.N;if(a.M!=b){a.M=b;b=a.M.toFixed(2)+"Mhz";var e=a.F.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.D&&ad(a.D)}ac(a,a.w);a.w=0;a.u=va();a.G=0;Zc(a);return d}function bd(a,b){for(var c=a.B.length-1;0<=c;c--){var d=a.B[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function cd(a){for(var b=[],c=0;c<a.B.length;c++)b.push(a.B[c][0]);return b}
|
||||
function $b(a,b){for(var c=a.B.length-1;0<=c;c--){var d=a.B[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function dd(a,b){var c=a.H-=a.I;a.I=0;b&&(a.H=0);return c}
|
||||
l.Kb=function(){if(this.i.J){this.qa>=this.Aa&&Zc(this,!0);this.aa=0;this.ga=va();if(this.G){var a=this.ga-this.G;a>this.za&&(this.u+=a,this.u>this.ga&&(this.u=this.ga))}try{do{var b=bd(this,this.i.Ca?1:this.oa);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=dd(this,!0);this.aa+=b;this.w+=b;bc(this,b);$b(this,b);this.O-=b;if(0>=this.O){this.O+=this.oa;++this.Ba>=ed&&(this.D&&Q(this.D,void 0),this.Ba=0);break}}while(this.i.J)}catch(e){this.R();this.D&&this.D.stop(va(),Xc(this));Ja(this,e.stack||
|
||||
e.message);return}if(this.i.J){a=setTimeout;b=this.$a;this.G=va();var c=this.za;this.aa&&(c=Math.round(c*this.aa/this.oa));var c=c-(this.G-this.ga),d=this.G-this.u;d&&(this.L=Math.round(this.w/(10*d))/100,864E5<=d&&(this.K=0,Yc(this)));if(0>c||this.L<this.M)-1E3>c&&(this.u-=c),c=0;this.qa+=this.aa;this.G+=c;a(b,c)}}};
|
||||
function Yb(a,b){if(!Ka(a))if(a.i.J)a.f(a.toString()+" busy");else{Yc(a);a.i.J=!0;a.i.Ra=!0;var c=a.F.run;c&&(c.textContent="Halt");a.D&&(b&&ad(a.D,!0),a.D.start(a.u,Xc(a)));a.A||a.status("Started");setTimeout(a.$a,0)}}l.Ja=function(){return 0};l.R=function(a){var b=!1;if(this.i.J){dd(this);ac(this,this.w);this.w=0;this.i.J=!1;if(b=this.F.run)b.textContent="Run";this.D&&this.D.stop(va(),Xc(this));b=!0;this.A||this.status("Stopped")}this.i.complete=a;return b};var $c=30,ed=15,Qc=["power","reset"];
|
||||
function fd(a){var b=+a.model||1001;Pc.call(this,a,1E6);this.Za=b;this.Ma=+a.addrReset||0;this.fa=null;this.Da=[];this.i.complete=!1}r(fd,Pc);l=fd.prototype;l.reset=function(){this.status("Model "+this.Za);this.i.J&&this.R();this.ea=this.g=this.ra=this.Ma;this.j=0;this.ta=this.Gb;this.Ia=this.Tb;this.fa=null;Sc(this);this.i.error=!1;Pc.prototype.reset.call(this)};l.gb=function(){return 0};
|
||||
l.save=function(){var a=new O(this);a.set(0,[this.g,this.ra,this.ea,this.j]);a.set(1,[]);a.set(2,[this.K,this.N,this.i.X]);a.set(3,gd(this));a.set(4,cd(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ea();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.g=b.next().value;this.ra=b.next().value;this.ea=b.next().value;this.j=b.next().value;b=a[2];this.K=b[0];Yc(this,b[1]);this.i.X=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Da.length;d++){var e=this.Da[d];if(e.Ob===b[c]){d=e;break a}}d=null}d&&(d.next=this.fa,this.fa=d)}a=a[4];for(b=0;b<this.B.length&&b<a.length;b++)this.B[b][0]=a[b];return!0};
|
||||
function gd(a){var b=[];for(a=a.fa;a;)b.push(a.Ob),a=a.next;return b}l.Gb=function(a){var b=this.C;a=this.ea=a;return b.g[(a&b.u)>>>b.j].ta(a&16383,a)};l.Tb=function(a,b){var c=this.C;a=this.ea=a;c.g[(a&c.u)>>>c.j].Ia(b,a&16383,a)};
|
||||
l.Ja=function(a){this.i.complete=!0;var b=this.A?hd(this.A)?1:this.i.Ra?-1:0:0,c=a?this.i.Ra?0:1:-1;this.i.Ra=!1;this.H=this.I=a;this.j=this.j&-5|(b?4:0);do{if(this.j){if(this.j&4){if(id(this.A,this.g,c)){this.R();break}++b||(this.j&=-5);c||c++}if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&id(this.A,this.g,c)){this.R();break}if(0>c)break}}this.j&=15;a=this.g;this.ta(a);this.g=(a+1)%Gb}while(0<this.I);return this.i.complete?this.H-this.I:!1===this.i.complete?
|
||||
-1:0};M(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new fd(d);B(d,c)}});
|
||||
function jd(a){u.call(this,"ROM",a,128);this.S=this.g=null;this.B=+a.addr;this.u=+a.size;this.j=a.alias;"string"==typeof this.j&&(this.j=eval(this.j));this.w=a.file;this.G=Ra(this.w);if(this.w){a=this.w;var b=Sa(this.G);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;J(a,null,!0,function(a,b,g){g?(c.Y("Unable to load ROM resource (error "+g+": "+a+")"),c.w=null):(ta(c.La,a,b),(a=ib(a,b))?(c.g=a.W,c.S=a.S):c.w=null);kd(c)})}}r(jd,u);
|
||||
jd.prototype.sa=function(a,b,c,d){this.C=b;this.b=c;this.A=d;kd(this)};jd.prototype.la=function(){this.S&&(this.A&&ld(this.A,this.id,this.B,this.u,this.S),delete this.S);return!0};jd.prototype.ca=function(){return!0};
|
||||
function kd(a){if(!La(a)){if(a.w){if(!a.g||!a.C)return;a.u||(a.u=a.g.length);if(a.g.length!=a.u)Ja(a,"ROM size ("+H(a.g.length,8,!0)+") does not match specified size ("+H(a.u,8,!0)+")");else{var b;b=a.B;if(ic(a.C,b,a.u,Gc)){var c;for(c=0;c<a.g.length;c++)dc(a.C,b+c,a.g[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.j?b.push(a.j):null!=a.j&&a.j.length&&(b=a.j);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.C,f=d.u,h=[],k=d.B>>>g.j;0<f&&k<g.g.length;)h.push(g.g[k++]),f-=16384;g=d.C;d=d.u;f=0;for(e>>>=
|
||||
g.j;0<d&&e<g.g.length;){k=h[f++];if(!k)break;g.g[e++]=k;d-=16384}}delete a.g}}}E(a)}}M(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new jd(d);B(d,c)}});
|
||||
function md(a){u.call(this,"RAM",a);this.S=this.j=null;this.u=+a.addr;this.w=+a.size;this.ia=a.load;this.ha=a.exec;null!=this.ia&&(this.ia=+this.ia);null!=this.ha&&(this.ha=+this.ha);this.B=!1;this.g=a.file;this.G=Ra(this.g);if(this.g){a=this.g;var b=Sa(this.G);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;J(a,null,!0,function(a,b,g){g?(c.Y("Unable to load RAM resource (error "+g+": "+a+")"),c.g=null):(ta(c.La,a,b),(a=ib(a,b))?(c.j=a.W,c.S=a.S,null==
|
||||
c.ia&&(c.ia=a.ia),null==c.ha&&(c.ha=a.ha)):c.g=null);nd(c)})}}r(md,u);md.prototype.sa=function(a,b,c,d){this.C=b;this.b=c;this.A=d;nd(this)};md.prototype.la=function(a,b){this.S&&(this.A&&ld(this.A,this.id,this.u,this.w,this.S),delete this.S);b||this.reset();return!0};md.prototype.ca=function(){return!0};
|
||||
function nd(a){if(a.C&&(!a.B&&a.w&&(ic(a.C,a.u,a.w,1)?a.B=!0:a.w=0),!La(a))){if(!a.B)x("No RAM allocated");else if(a.g){if(!a.j||!a.C)return;od(a,a.j,a.ia,a.ha,a.u)?a.status('Loaded image "'+a.G+'"'):a.Y('Error loading image "'+a.G+'"')}E(a)}}
|
||||
md.prototype.reset=function(){if(this.B){for(var a=this.C,b=this.u,c=this.w,d=b&16383,b=b>>>a.j;0<c&&b<a.g.length;){var e=a.g[b],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.v+d);c-=16384;b++;d=0}this.j&&od(this,this.j,this.ia,this.ha,this.u,!this.A)}};
|
||||
function od(a,b,c,d,e,g){var f=!1,h=!1;if(null==c)for(var k=0;k<b.length-1;){var m=b[k]&255|(b[k+1]&255)<<8;if(m)if(m&255){var n=k;if(1!=m){G(a,"invalid signature ("+I(m)+") at offset "+I(n),4096);break}if(k+6>=b.length){G(a,"invalid block at offset "+I(n),4096);break}for(var k=k+2,p=b[k++]&255|(b[k++]&255)<<8,q=b[k++]&255|(b[k++]&255)<<8,m=m+((p&255)+(p>>8)+(q&255)+(q>>8)),K=k,za=p-=6;0<p&&k<b.length;)m+=b[k++]&255,p--;if(p||k>=b.length){G(a,"insufficient data for block at offset "+I(n),4096);break}m+=
|
||||
b[k++]&255;if(m&255){G(a,"invalid checksum ("+H(m,2,!0)+") for block at offset "+I(n),4096);break}if(za)for(G(a,"loading "+I(za)+" bytes at "+I(q)+"-"+I(q+za),4096);za--;)dc(a.C,q++,b[K++]);else q&1?f=!0:null==d&&(d=q),null!=d&&G(a,"starting address: "+I(d),4096);h=!0}else k++;else k+=2}if(!h&&(null==c&&(c=e),null!=c)){for(h=0;h<b.length;h++)dc(a.C,c+h,b[h]);h=!0}if(h){if(null==d||f)a.b.R(),g=!1;null!=d&&(a=a.b,a.Ma=d,a.g=d%Gb,g?a.i.T?a.i.J||Yb(a):a.i.X=!0:a.A&&a.i.T?a.R()||a.D.i.reset||(Uc(a.A),
|
||||
Q(a.D,-1)):!1===g&&a.R(),!a.i.J&&a.pa&&a.pa.stop())}return h}M(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new md(d);B(d,c)}});
|
||||
function pd(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.j=[];var b=a.binding;if("console"!=b){var c;a=qd;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.F[b])&&this.da(null,a,b))}this.g=this.B=null;this.exports={connect:this.ib,receiveData:this.Pa,receiveStatus:this.Ib,setConnection:this.Lb}}r(pd,u);l=pd.prototype;
|
||||
l.da=function(a,b,c){var d=this;switch(b){case qd:return this.F[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?t.Wa:t.mb:46==c?b=t.Wa:a.ctrlKey&&c>=t.Va&&c<=t.ob&&(b=c-(t.Va-t.jb));b&&(a.preventDefault&&a.preventDefault(),d.Pa(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==t.lb&&(b=t.kb);d.Pa(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.Pa(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.sa=function(a,b,c,d){this.D=a;this.C=b;this.b=c;this.A=d;E(this)};
|
||||
l.ib=function(a){if(!this.g){var b=Rc(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=fb(c[0]);if(d!=this.Ka)return;c=fb(c[1]);if(this.g=xa(c)){var e=this.g.exports;if(e){var g=e.connect;g&&g.call(this.g,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.la=function(a,b){if(!b)if(this.ib(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ca=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new O(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Pa=function(a){if("number"==typeof a)this.j.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.j.push(b)}else this.j=this.j.concat(a);return!0};l.Ib=function(){};l.Lb=function(a,b){return this.g?!1:(this.g=a,this.B=b,!0)};var qd="buffer";
|
||||
M(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new pd(d);B(d,c)}});function rd(a){u.call(this,"Debugger",a);this.ba=+a.base||16;this.ma=!1;this.B=0;this.O=!1;this.w=-1;this.u=[];this.Z={}}r(rd,u);rd.prototype.hb=function(){return-1};rd.prototype.Ua=function(){};
|
||||
function sd(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.O?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(fb(b.substring(c,g))),c=g+1}}return a}
|
||||
function td(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 ud(a,b,c){var d;if(b){b=vd(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],p=n.length,n=fb(n);if(!n){g=!0;break}n=wd(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++],q=n.length;k.length&&xd[n]<xd[k[k.length-1]]&&td(h,k,1);k.push(n);b=b.substr(p+q)}td(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&yd(a,null,
|
||||
d))}return d}function vd(a,b){for(var c,d=a.ma?"(":"{",e=a.ma?")":"}",g=new RegExp(a.ma?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=ud(a,c[1]);b=b.replace(d+c[1]+e,null!=f?W(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 wd(a,b,c,d){var e;null!=b?(e=a.hb(b),0<=e?e=a.Ua(e):(e=a.Z[b],null==e&&(e=Pa(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function yd(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,p="";n?32<n&&(n=32):n=32;for(var q=null==k||isNaN(k),K=m=m||n;0<n--;)K||(p=","+p,K=m),p=(q?"?":k&1?"1":"0")+p,k>>=1,K--;f=p+f;d>>=8}d=H(c,0,!0)+" "+c+". "+Qa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function zd(a,b){if(b)return yd(a,b,a.Z[b]);var c=0;for(b in a.Z)yd(a,b,a.Z[b]),c++;return 0<c}function W(a,b){var c;c=void 0===c?0:c;switch(a.ba){case 8:a=Qa(b,0<c?(c+2)/3|0:0);break;case 10:a=b;b=0<c?Math.ceil(.3*c):0;var d="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode(a%10+48)+d,a/=10;a=d;break;default:a=H(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
||||
var xd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Ad(a){rd.call(this,a);this.ya=!1;this.ma=!0;this.I=X();this.xa=X();this.N=X();this.H=[];this.g=this.K=this.G=[];Bd(this);this.P=this.ga=0;this.j=[];this.pa=void 0;Cd(this);this.A=this;this.na={};this.V=this.cb=0;this.U=null;this.M=[];Dd(this,a.messages);this.ra=a.commands;this.Ba=Ed;this.Ma=[];this.L=0;this.Da=this.qa=null;this.B=this.Aa=this.za=this.fa=this.oa=0;this.ea=this.aa=null;var b=this;window?void 0===window[C]&&(window[C]=function(a){return Wc(b,a)}):void 0===global[C]&&(global[C]=
|
||||
function(a){return Wc(b,a)})}r(Ad,rd);function Y(a){a=a&&a.v;null==a&&(a=-1);return a}function X(a,b,c){return{v:void 0===a?null:a,qb:void 0===b?!1:b,ka:!1,ba:c}}function Fd(a){return[a.v,a.qb,a.ba,a.ka,a.Qa]}function Gd(a,b){var c=X(b[0],b[1],b[2]);c.ka=b[3];b[4]&&(c.ab=sd(a,c.Qa=b[4]));return c}l=Ad.prototype;
|
||||
l.sa=function(a,b,c,d){this.C=b;this.D=a;this.b=c;this.ea=a.u;(a=Rc(a,"messages"))&&Dd(this,a);Hd(this,function(a){a:{var b=d.C.g,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.C.j;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=lc[c],n&&d.f(H(n.id,8)+" %"+H(e<<d.C.j,8)+" %"+H(n.v,8)+" "+I(n.Ha)+" "+
|
||||
I(n.size)+" "+m),c!=Fc&&(c=-1),m=0);a+=16384;e++}}});E(this)};
|
||||
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.F[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Wc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.F[b]=c,rb(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";Wc(d,a,!0);return!0}return!1}),!0;case "step":return this.F[b]=c,rb(c,function(a){var b=!1;Ma(d,!0)||(Na(d,!0),b=Zb(d,a?1:0,null),Na(d,!1));return b}),!0}return!1};function Vc(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=ec(this.C,d),b&&null!=a.v&&(a.v+=b||1));return c};l.Xa=function(a,b,c){var d=Y(a);-1!==d&&(dc(this.C,d,b),c&&null!=a.v&&(a.v+=c||1),Q(this.D,-1))};
|
||||
function Z(a,b,c){var d;c=(c?a.I:a.xa).v;var e,g;if(void 0!==b){b=vd(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var f,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var k=a.H[c].S[d];if(null!=k){h=k.o;break}}null!=h&&(f=X(h));if(d=f)return d;0<=b.indexOf("0x")?g=16:0<=b.indexOf("0o")?g=8:0<=b.indexOf(".")&&(g=10);c=ud(a,b,void 0)}null!=c&&(d=X(c,e,g));return d}function Id(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ab=sd(a,b.Qa=c[2]))}
|
||||
function Jd(a){return Qa(a/Gb,6)+" "+Qa(a%Gb,6)}function Dd(a,b){a.A=a;a.V=a.cb=536870916;a.U=null;a.M=[];b=sd(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in N){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.V|=N[c],a.f(c+" messages enabled"))}}function Hd(a,b){for(var c in N)if(16==N[c]){a.na[c]=b;break}}l.hb=function(a){return Kd.indexOf(a.toUpperCase())};
|
||||
l.Ua=function(a){var b;switch(a){case Ld:b=this.b.g}return b};l.message=function(a,b){b&&(a+=" @"+W(this,X(this.b.ra).v));if(!this.U||a!=this.U)if(this.U=a,this.V&1073741824)this.M.push(a);else{var c;if(this.V&-2147483648&&this.b&&(c=this.b.i.J)||Ma(this,!0))this.R(),c&&(a+=" (cpu halted)");this.f(a);this.b&&(a=this.b,dd(a),a.O=0,a.D&&Q(a.D,void 0))}};
|
||||
function Cd(a){var b;if(!hd(a))a.j&&a.j.length&&a.f("instruction history buffer freed"),a.P=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(Md);for(b=0;b<a.j.length;b++)a.j[b]=X();a.P=0;a.f("instruction history buffer allocated")}}function Nd(a,b,c){if(!Od(a,c))return!1;Yb(a.b,b);return!0}
|
||||
function Zb(a,b,c,d){if(!Od(a))return!1;var e="";null===c&&(e=(c=!a.qa||"tr"==a.qa)?"tr":"t");a.B=0;b||hd(a)&&id(a,a.b.g,0);try{b=bd(a.b,b);var g=a.b.Ja(b);0<g&&($b(a.b,g),a.B+=g,ac(a.b,g,!0),bc(a.b,g),a.fa++)}catch(f){"number"!=typeof f&&(a.B=0,Ja(a.b,f.stack||f.message))}!1!==d&&(a.ea&&a.ea.stop(),Q(a.D,-1));Uc(a,c||!1,e);return 0<a.B}l.R=function(a){this.b&&this.b.R(a)};function Uc(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(Pd+c),a.I=X(a.b.g),b&&1!=a.L?Qd(a):re(a))}
|
||||
function Od(a,b){var c;(c=!a.b||!La(a.b))||(c=a.b,c.i.T?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.i.J?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ka(a.b)}l.la=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ca=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Cd(this);this.fa=0;this.U=null;this.B=0;this.I=X(this.b.g);this.i.J=!1;te(this);a||Uc(this)};
|
||||
l.save=function(){var a=new O(this);a.set(0,Fd(this.I));a.set(1,Fd(this.N));a.set(2,[this.u,this.O,this.V]);a.set(3,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.I=Gd(this,a[b++]),this.N=Gd(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.O=a[b][1],this.V|=a[b][2]);a[3]&&(this.H=a[3]);return!0};l.start=function(a,b){this.L||this.f("running");this.i.J=!0;this.za=a;this.Aa=b};
|
||||
l.stop=function(a,b){if(this.i.J){this.i.J=!1;this.B=b-this.Aa;if(!this.L){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";hd(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Oa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}Uc(this,!0);Vc(this);te(this,this.b.g);this.U=null}};function hd(a){return 1<a.g.length||!!a.ga}
|
||||
function id(a,b,c){var d=-1;if(!c&&(d=a.b.ta(b),23119003648==(d&68711088128)&&a.b.ra==b)){b=a.b;var e=b.g;b.g=(e+1)%Gb;b=e}if(0<c&&(a.ga&&!--a.ga||Oc(a,b,1,a.g)))return!0;0<=c&&a.j.length&&(a.fa++,0>d&&(d=a.b.ta(b)),68719476735!=(d&65535)&&(c=a.j[a.P],c.v=b,c.ka=!1,c.ba=void 0,++a.P==a.j.length&&(a.P=0)));return!1}
|
||||
function Bd(a){var b,c;a.g=["bp"];if(a.K)for(b=1;b<a.K.length;b++){c=a.K[b];c=Y(c);var d=a.C;Nc(d.g[c>>>d.j],!1)}a.K=["br"];if(a.G)for(b=1;b<a.G.length;b++)c=a.G[b],c=Y(c),d=a.C,Nc(d.g[c>>>d.j],!0);a.G=["bw"];a.oa=0;a.ga=0}l.va=function(a,b,c){var d=!0;c||ue(this,a,b,!1,!0);if(a!=this.g){var e=Y(b);if(-1===e)this.f("invalid address: "+W(this,b.v)),d=!1;else{var g=this.C;g.g[e>>>g.j].va(e&16383,a==this.G)}}d&&(a.push(b),c?b.ka=!0:(ve(this,a,a.length-1,"set"),Cd(this)));return d};
|
||||
function ue(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.ka)){g=!0;h.ka||e||ve(a,b,f,"cleared");b.splice(f,1);b!=a.g&&(d=a.C,Nc(d.g[c>>>d.j],b==a.G));h.ka||Cd(a);break}}return g}function we(a,b){for(var c=1;c<b.length;c++)ve(a,b,c);return b.length-1}function ve(a,b,c,d){c=b[c];a.f(b[0]+" "+W(a,c.v)+(d?" "+d:c.Qa?' "'+c.Qa+'"':""))}
|
||||
function te(a,b){if(void 0!==b)Oc(a,b,1,a.g,!0),a.L=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.ka){if(!ue(a,a.g,c,!0))break;b=0}}}
|
||||
function Oc(a,b,c,d,e){var g=!1;if(!a.oa++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ka)for(var k=Y(h)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ka&&(ue(a,d,h,!0),e=!0);if(n=h.ab){for(var g=!1,p=0;p<n.length;p++)if(!xe(a,n[p],!0)){if(n[p].indexOf("if")){g=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){g=!0;break}}a.b.i.J||(g=!0)}if(g){e||ve(a,d,f,"hit");break}}}a.oa--;return g}
|
||||
function ye(a,b,c,d){var e=X(b.v),g=a.wa(b,1),f,h;for(h in a.Ba)if(f=a.Ba[h][g&h])break;f||(f=ze);var k=f[0];0<=a.Ma.indexOf(k)&&(f=ze,k=f[0]);var m=h="",n=Ae[k],p=f.length-1;k||p||(h=Jd(g));for(g=1;g<=p;g++)if(void 0!==f[g]){k="";if(!k||!k.length){h="INVALID";break}"string"!=typeof k&&(m=k[1],k=k[0]);0<h.length&&(h+=",");h+=k||"???"}f="";p=W(a,e.v)+":";if(-1!==e.v&&-1!==b.v){do if(g=a.wa(e,1),f+=" "+Jd(g),null==e.v)break;while(e.v!=b.v)}p+=Xa(f,16);p+=Xa(n,5);h&&(p+=" "+h);if(c||m)p=Xa(p,60)+";"+
|
||||
(c||""),p=a.b.i.Ca?p+("cycles="+Xc(a.b).toString()+" cs="+H(a.b.ma)):p+(null!=d?"="+d.toString():""),m&&(";"!=p.slice(-1)&&(p+=" "),p+=m);return p}l.eb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function ld(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],p=gb(n,k,a.eb);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Yc:b,v:c,tb:d,S:e,bb:g})}
|
||||
function Be(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.H.length;b++){var g=a.H[b],f=g.v>>>0,h=g.tb;if(e>=f&&e<f+h){e=gb(g.bb,[e-f],a.eb);0<=e?Ce(a,b,e,d):c&&(e=~e,Ce(a,b,e-1,d),Ce(a,b,e,d));break}}return d}function Ce(a,b,c,d){var e={},g=a.H[b].bb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].S[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}
|
||||
function De(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return zd(a)||a.f("no variables"),!0;if(!c[2])return zd(a,c[1]);if(!c[3])return delete a.Z[c[1]],!0;b=ud(a,c[3]);return void 0!==b?(a.Z[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function Ee(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=Be(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.v-e[1])&&(f=" + "+I(g)),g=e[0]+" ("+W(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.v)&&(f=" - "+I(g)),g=e[4]+" ("+W(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function Qd(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)d=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=ud(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":e.g=f%Gb;a.I=X(e.g);break;default:a.f("unknown register: "+
|
||||
g);return}Q(a.D);a.f("updated registers:")}}g=Ld;(f=Kd[g]||"")&&(f+="="+W(a,a.Ua(g))+" ");g=""+f;d&&(g+="\n");a.f(g);c&&(a.I=X(e.g),re(a,W(a,a.I.v)))}}function Fe(a,b){b=fb(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):yd(a,null,c[2].charCodeAt(0)):ud(a,b,!0)}
|
||||
function Ge(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=wd(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.qa=b;qb(c,function(){return Na(a,!0)&&Zb(a,e,d,!1)},function(){a.ea&&a.ea.stop();Q(a.D,-1);Na(a,!1)})}}
|
||||
function re(a,b,c,d){if(b=Z(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=wd(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.v<b.v)return;e=d.v-b.v;if(256<e){a.f("range too large");return}d=-1}c=0;for(var g;0<e&&d--;){g=Ma(a,!1)||a.L?a.B:null;var f=null!=g?"cycles":null,h=Be(a,b),k=b.v;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(f=h[3],g=null);g=ye(a,b,f,g);a.f(g);a.I=b;e-=b.v-k;c++}}}
|
||||
function xe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Pd+b):(a.O&&(a.f("ended assemble at "+W(a,a.N.v)),a.I=a.N,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(La(a)&&0<b.length){a.O&&(b="a "+W(a,a.N.v)+" "+b);var 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 p=
|
||||
Z(a,f[1],!0);if(p)if(a.N=p,void 0===f[2])a.f("begin assemble at "+W(a,p.v)),a.O=!0,Q(a.D);else{var q;a.f("not supported yet");q=[];if(q.length){for(var K=0;K<q.length;K++)a.Xa(p,q[K],1);a.f(ye(a,a.N))}}break;case "b":a:{var za=f[0],Ba=f[1],gf=b;if("?"==Ba)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var ja=za.charAt(1);if("l"==ja){var oc;oc=0+we(a,a.g);oc+=we(a,a.K);(oc+=we(a,a.G))||a.f("no breakpoints")}else if("n"==ja){var Rd=+Ba||0;Ba&&(a.ga=Rd);a.f("break after "+Rd+" instruction(s)")}else if(void 0===Ba)a.f("missing breakpoint address");else{var F=X();if("*"!=Ba&&(F=Z(a,Ba,!0),!F))break a;"c"==ja?null==F.v?(Bd(a),a.f("all breakpoints cleared")):ue(a,a.g,F)||ue(a,a.K,F)||ue(a,a.G,F)||a.f("breakpoint missing: "+W(a,F.v)):null!=F.v&&(Id(a,F,gf),"p"==ja?a.va(a.g,F):"r"==ja?a.va(a.K,F):
|
||||
"w"==ja?a.va(a.G,F):a.f("unknown breakpoint command: "+ja))}}}break;case "c":a.ja&&(a.ja.value="");break;case "d":a:{var Ca,Da=f[0],R=f[1],ca=f[2],hf=f[3];if("?"==R){var Ea="";for(Ca in N)a.na[Ca]&&(Ea&&(Ea+=","),Ea+=Ca);Ea+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");Ea.length&&a.f("dump extension commands:\n\t"+Ea)}else if("state"==
|
||||
R){var pc=He(a.D,!0);"console"==ca?console.log(pc):(a.ja&&(a.ja.value=""),pc&&a.f(pc))}else if("symbols"==R)for(var qc=0;qc<a.H.length;qc++){var rc=a.H[qc],Fa;for(Fa in rc.S)if("."!=Fa.charAt(0)){var Sd=rc.S[Fa].o;if(void 0!==Sd){var Td=rc.S[Fa].l;Td&&(Fa=Td);a.f(W(a,Sd)+" "+Fa)}}}else{if("d"==Da){for(Ca in N)if(f[1]==Ca){var Ud=a.na[Ca];Ud?(f.shift(),f.shift(),Ud(f)):a.f("no dump registered for "+R);break a}R||(Da=a.Da||"dw")}else a.Da=Da;if("dh"==Da){var Vd=R,Wd=ca,Xd="",Yd=0,P=a.P,S=a.j;if(S.length){var L=
|
||||
+Vd||a.pa,Ya=+Wd||10;isNaN(L)?L=Ya:Xd="more ";L>S.length&&(a.f("note: only "+S.length+" available"),L=S.length);P-=L;0>P&&(null==S[S.length-1].v?(L=P+L,P=0):P+=S.length);var sc=[];"call"==Wd&&(Ya=1E5,sc=["CALL"]);for(void 0!==Vd&&a.f(L+" instructions earlier:");0<Ya&&P!=a.P;){var Zd=S[P++];if(null==Zd.v)break;var Za=X(Zd.v),jf=L--,$d=ye(a,Za,"history",jf);(!sc.length||0<=$d.indexOf(sc[0]))&&a.f($d);Za.Ta&&(P+=Za.Ta,Ya-=Za.Ta,L-=Za.Ta);P>=S.length&&(P=0);a.pa=L;Yd++;Ya--}}Yd||(a.f("no "+Xd+"history available"),
|
||||
a.pa=void 0)}else{var ka=Z(a,R);if(ka){var la=0,ae="ds"==Da;if(ca){if("l"==ca.charAt(0))ca=ca.substr(1)||hf,la=wd(a,ca);else{var be=Z(a,ca);be&&(la=be.v-ka.v)}0>la&&(la=0);65536<la&&(la=65536)}var kf=a.ba;ka.ba&&(a.ba=ka.ba);for(var ce="db"==Da?1:2,tc=la||32,uc=1==ce?2:4,lf=(tc+uc-1)/uc|0||1,ma="";lf--&&0<tc;){for(var na="",de="",R=W(a,ka.v),ee=uc;0<ee--&&0<tc--;){var Ab=a.wa(ka,1);ae?(na&&(na+=","),na+=Ab):(na+=Jd(Ab),na+=" ");for(var fe=0;1==ce&&6>fe;fe++)de+=String.fromCharCode((Ab%64|0)+32),
|
||||
Ab/=64}ma&&(ma+="\n");ma=ae?ma+(na+","):ma+(R+": "+na+(0>ee?" "+de:""))}ma&&a.f(ma);a.xa=ka;a.ba=kf}}}}break;case "e":if("else"==f[0])break;var ge,he,ie=f[0],vc=f[1];"e"==ie||"ew"==ie?(ge=a.wa,he=a.Xa):vc=null;if(null==vc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Bb=Z(a,vc);if(Bb)for(var Cb=2;Cb<f.length;Cb++){var wc=ud(a,f[Cb]);if(void 0===wc){a.f("unrecognized value: "+f[Cb]);break}a.f("changing "+W(a,Bb.v)+" from "+Jd(ge.call(a,Bb))+" to "+Jd(wc));he.call(a,
|
||||
Bb,wc,1)}}break;case "g":a:{var je=f[1],mf=b;if(void 0!==je){var xc=Z(a,je,!0);if(!xc)break a;Id(a,xc,mf);a.va(a.g,xc,!0)}Nd(a,!0,c)}break;case "h":a.i.J?(c||a.f("halting"),a.R()):Ma(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var yc;var $a=b.substr(2),$a=fb($a);ud(a,$a)?(c||a.f("true: "+$a),yc=!0):(c||a.f("false: "+$a),yc=!1);yc||(d=!1);break}g=!0;break;case "k":var nf=f[0];if("?"==f[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
||||
else{var zc=0,Ac=X(),ab=X();for(a.f("stack trace for "+W(a,ab.v));10>zc;){for(var oa=null,of=256;65536>ab.v>>>0;){Ac.v=a.wa(ab,2);if(null==ab.v||!of--)break;if(!(Ac.v&1)){for(var pf=a,Db=Ac,ke=null,bb=Db.v,le=bb,Bc=1;6>=Bc&&bb;Bc++){if(2<Bc){Db.v=bb;var Eb=ye(pf,Db);if(0<=Eb.indexOf("JSR")){var me=Eb.indexOf(" ");if(bb+(Eb.indexOf(" ",me+1)-me-1)/2==le){ke=Eb;break}}}bb-=2}Db.v=le;if(oa=ke)break}}if(!oa||null==oa)break;var ne=null;if("ks"==nf){var oe=oa.match(/[0-9A-F]+$/);oe&&(ne=Ee(a,oe[0]))}oa=
|
||||
Xa(oa,50)+" ;"+(ne||"stack="+W(a,ab.v));a.f(oa);zc++}zc||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Ee(a,f[1],!0);break}g=!0;break;case "m":a:{var T,U=null,w=f[1];"?"==w&&(w=void 0);if(void 0!==w){var da=0;if("all"==w)da=1879046143,w=null;else if("on"==w)U=!0,w=null;else if("off"==w)U=!1,w=null;else{"keys"==w&&(w="key");"kbd"==w&&(w="keyboard");for(T in N)if(w==T){da=N[T];U=!!(a.V&da);break}if(!da){a.f("unknown message category: "+w);break a}}if(da)if("on"==f[2])a.V|=da,U=!0;
|
||||
else if("off"==f[2]&&(a.V&=~da,U=!1,1073741824==da)){for(var pe=1E3<=a.M.length?a.M.length-1E3:0;pe<a.M.length;)a.f(a.M[pe++]);a.M=[]}}var qf=0,cb="";for(T in N)if(!w||w==T){var rf=!!(a.V&N[T]);if(null===U||U==rf)cb&&(cb+=","),++qf%10||(cb+="\n\t"),"key"==T&&(T="keys"),cb+=T}void 0===w&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==U?U?"messages on: ":"messages off: ":"message categories:\n\t")+(cb||"none"));Cd(a)}break;case "p":if("print"==f[0]){Fe(a,b.substr(5));
|
||||
break}var sf=f[0];if("?"==f[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var tf="pr"==sf?1:0;if(a.L)a.f("step in progress");else{var qe=X(a.b.g);a.wa(qe);a.L?(a.va(a.g,qe,!0),Nd(a)||(a.D&&ad(a.D),a.L=0)):Ge(a,tf?"tr":"t")}}break;case "r":if("reset"==b){a.D&&a.D.reset();break}Qd(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var db=+f[2];if(8==db||10==db||16==db)a.ba=db;else{a.f("invalid base: "+db);break}}a.f("default base: "+
|
||||
a.ba);break;case "cs":var eb;void 0!==f[3]&&(eb=+f[3]);switch(f[2]){case "int":a.b.P=eb;break;case "start":a.b.na=eb;break;case "stop":a.b.Z=eb;break;default:a.f("unknown cs option");break a}void 0!==eb&&Tc(a.b);a.f("checksums "+(a.b.i.Ca?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(Yc(a.b,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.b.M.toFixed(2)+"Mhz")+" ("+a.b.N+"x)");break;default:if(f[1]){a.f("unknown option: "+f[1]);break}case "?":a.f("debugger options:"),
|
||||
a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Ge(a,f[0],f[1]);break;case "u":re(a,f[1],f[2],8);break;case "v":if("var"==f[0]){De(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Fb||"PDP10")+" version 1.34.0 ("+a.b.Za+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;
|
||||
break;case "?":if(f[1]){Fe(a,b.substr(1));break}var Cc="commands:",Dc;for(Dc in Ie)Cc+="\n"+Xa(Dc,9)+Ie[Dc];hd(a)||(Cc+="\nnote: history disabled if no exec breakpoints");a.f(Cc);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(se){a.f("debugger error: "+(se.stack||se.message)),d=!1}return d}function Wc(a,b,c){b=sd(a,b,c);for(var d in b)if(!xe(a,b[+d]))return!1;return!0}
|
||||
var Ie={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ae=[".WORD"],Ld=0,Kd=["PC"],Ed={},ze=[0],Md=1E3,Pd=">> ";
|
||||
M(function(){for(var a=D(document,C,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ad(d);B(d,c)}});
|
||||
function Je(a,b,c){u.call(this,"Computer",a,33554432);this.i.T=!1;this.O=null;Ke(this,b);this.M=Rc(this,"autoPower",a,6);this.w=0;this.Z=+a.busWidth||+a.buswidth;this.K=this.G=this.L=null;this.I=this.U=!1;this.H=this.B=null;this.P=this.N=!1;this.aa=Rc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Le(this);if(this.b=z("CPU",this.id)){this.A=z("Debugger",this.id);this.C=new fc({id:this.La+".bus",busWidth:this.Z},this.b,this.A);var d,e=y(this.id);if((this.u=z("Panel",this.id))&&this.u.ja)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.Y=this.u.Y,d.f=this.u.f,d.ja=this.u.ja;this.f(Fb+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.sa&&d.sa(this,this.C,this.b,this.A);b=null;d=Rc(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.g=parseInt(d,10));var g;if(a=Rc(this,"state")||(g=!0,a.state))this.L=b=a,g||(this.I=!0,this.g=Me),this.g&&(this.H=new O(this,"1.34.0"),Ne(this.H)?b=null:
|
||||
delete this.H);!b&&this.g&&(b=Oe(this))&&(this.I=!0);if(b){var f=this;J(b,null,!0,function(a,b,c){c?(f.G=null,f.I=!1,f.Y("Unable to load machine state from server (error "+c+(b?": "+fb(b):"")+")")):(f.K=b,f.U=!0);E(f)})}else E(this);this.F.power||(this.M=!0);!c&&this.M&&Pe(this,this.Fa)}else x("Unable to find CPU component")}r(Je,u);function Ke(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.O=b}
|
||||
function Rc(a,b,c,d){var e=b.toLowerCase(),e=ob(b)||ob(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Pe(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!La(g)){La(g,function(){Pe(a,b,c)});return}}b.call(a,c)}
|
||||
function Qe(a,b){var c=new O(a,"1.34.0",Re);if(Ne(c)&&Se(c)){var d=c.get(Te),e=b?b.get(Te):"unknown";d!=e&&(a.Y("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Je.prototype;
|
||||
l.Fa=function(a){void 0===a&&(a=this.g||(this.K?Ue:Me));if(!this.w){this.w++;var b=!1,c=!1;this.N=!1;var d=this.H||new O(this,"1.34.0");if(a==Ve)b=!0;else if(a>Me){if(Ne(d,this.K)){this.B=new O(this,"1.34.0",We);Ne(this.B)&&(Xe(this,d),a=Ye,Ze(this.B));this.B.set(Te,hb());$e(this.B);var e=this.g&&!this.I;if(a==Ue||wa("Click OK to restore the previous "+Fb+" machine state, or CANCEL to reset the machine.")){if(c=Se(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Ne(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.Y("Error: "+f),"unable to verify user"==f&&(mb(af,""),this.j=null)):this.f(g+": "+f),Ze(d),Ne(d)?(c=Se(d),e=!0):c=!1))}e&&Qe(this,c?d:null)}else a==Ye&&d.clear()}else Qe(this);delete this.K;delete this.H}e=y(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.b&&(c=bf(this,f,d,b,c));b=[d,a,c];a!=Ve?Pe(this,this.fb,b):this.fb(b)}};
|
||||
function bf(a,b,c,d,e){if(!b.i.T){b.i.T=!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.la(g,d)&&g&&(x("Unable to restore state for "+b.type),a.L&&!a.U?(c.clear(),a.g=Me,window&&window.location.reload()):a.N=!0,b.la(null),e=!1),!d&&b.Ya){var f=b.Ya.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.fb=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.i.T=!0;var d=this.F.power;d&&(d.textContent="Shutdown");this.b&&(bf(this,this.b,b,c,a),Q(this,-2),this.b.X());this.N&&(Xe(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0};
|
||||
function Xe(a,b){if(wa("There may be a problem with your "+Fb+" machine.\n\nTo help us diagnose it, click OK to send this "+Fb+" machine state to http://www.pcjs.org.")){var c=a.aa;a=a.j||"";b=b.toString();var d={};d.app=Fb;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;J("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function He(a,b,c){var d,e="none";if(a.w)return null;a.w--;var g=new O(a,"1.34.0"),f=new O(a,"1.34.0",Re),h=hb();f.set(Te,h);g.set(Te,h);g.set(cf,"1.34.0");g.set(df,window?window.location.href:null);g.set(ef,window?window.navigator.userAgent:"");a.b&&a.b.ca&&(c&&(b&&(a.b.i.X=a.b.i.J),a.b.R()),d=a.b.ca(b,c),"object"===typeof d&&g.set(a.b.id,d),c&&(a.b.i.T=!1,!1===d&&(e=null)));for(var h=y(a.id),k=0;k<h.length;k++){var m=h[k];m.i.T&&(m.ca&&(d=m.ca(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.i.T=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.j&&ff(a,a.j,g.toString()),$e(f)&&$e(g)||(e=null,d=h=!0)):a.g&&(d=!0,h=a.g==uf),d&&g.clear(h)):e=g.toString());c&&(a.i.T=!1,b=a.F.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
var C="pdp10",Ab="PDPjs",Gb=Math.pow(2,18),Hb=Math.pow(2,36),Ib=Math.pow(2,27),Jb=Math.pow(2,23),C="pdp10",Ab="PDPjs",N={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Kb(a,b){u.call(this,"Panel",a,512);this.I=this.K=0;this.U=b;this.j=this.H=this.u=this.w=0;this.L=this.M=-1;this.N=this.O=this.G=!1;this.P=Lb;this.B={};this.g={START:[1,1,!0,!1,this.Bb],STEP:[1,1,!1,!1,this.Cb],ENABLE:[1,1,!1,!1,this.wb],CONT:[1,1,!0,!1,this.ub],DEP:[0,0,!0,!1,this.vb],EXAM:[1,1,!0,!1,this.xb],LOAD:[1,1,!0,!1,this.zb],TEST:[0,0,!0,!1,this.yb]};for(a=0;22>a;a++)this.g["S"+a]=[0,0,!1,!1,this.Ab,a];this.A=this.b=this.C=this.D=null;this.exports={hold:this.sb,toggle:this.Nb,reset:this.Jb,
|
||||
set:this.Mb};E(this)}r(Kb,u);l=Kb.prototype;l.reset=function(a){this.stop();a&&Mb(this,this.w=0)};
|
||||
l.da=function(a,b,c,d){if(this.D&&this.D.da(a,b,c,d)||this.b&&this.b.da(a,b,c,d)||this.A&&this.A.da(a,b,c,d))return!0;switch(b){case "PC":return this.F[b]=c,this.K++,!0;default:return"led"==a||"rled"==a?(this.F[b]=c,this.B[b]=d?1:0,this.K++,!0):"switch"==a?(void 0===this.g[b]&&(this.g[b]=[d?1:0,d?1:0]),this.F[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Nb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Ob(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){Nb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Ob(a,b)}}(this,b),!0):u.prototype.da.call(this,a,b,c,d)}};l.sa=function(a,b,c,d){this.D=a;this.C=b;this.b=c;this.A=d;Pb(this);Qb(this)};l.la=function(a,b){if(!b)if(this.U&&Rb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.ca=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,[this.j,this.w,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])Sb(this,this.j=a[0]),Mb(this,this.w=a[1]),Tb(this,a[2]);return!0};l.Jb=function(){for(var a in this.g){var b=this.g[a];b[1]=b[0]}Qb(this);return!0};function Ub(a,b,c){if(a=a.F[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Pb(a,b){for(var c in a.B)Ub(a,c,null!=b?b:a.B[c])}function Vb(a,b,c){if(a=a.F[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Qb(a){for(var b in a.g)Vb(a,b,a.g[b][1])}
|
||||
l.sb=function(a,b,c){if(Nb(this,b)){if(c){var d=this;setTimeout(function(){Ob(d,b);a&&a()},+c);return!1}Ob(this,b)}return!0};l.Mb=function(a,b){if("SR"==a)return Tb(this,Pa(b,8));var c=this.g[a];return c?(c[1]=+b?1:0,Vb(this,a,c[1]),!0):!1};l.Nb=function(a){return Nb(this,a)?(Ob(this,a),!0):!1};function Nb(a,b){var c=a.g[b];return c?(Vb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=Wb&&(a.N=b==Xb,a.O=b==Yb),!0):!1}
|
||||
function Ob(a,b){var c=a.g[b];c&&(c[2]&&c[3]&&(Vb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Bb=function(a){a||this.b.i.J||(this.b.g=this.j%Gb,this.g[Zb]&&this.g[Zb][1]&&$b(this.b))};l.Cb=function(){};l.wb=function(a){a||this.b.R()};
|
||||
l.ub=function(a){if(!a&&!this.b.i.J)if(this.g[Zb]&&this.g[Zb][1])$b(this.b);else{if((a=this.A)&&!Ma(a,!0))Na(a,!0),ac(a,0,null),Na(a,!1);else try{var b=this.b.Ia(1);0<b&&(bc(this.b,b),cc(this.b,b,!0),dc(this.b,b))}catch(c){"number"!=typeof c&&Ja(this.b,c.stack||c.message)}this.stop();this.D&&Q(this.D)}};l.vb=function(a){a&&!this.b.i.J&&(this.N&&ec(this),a=Mb(this,this.w=this.u),this.P==Lb?fc(this.C,this.j,a):this.b.Ha(this.j,a))};
|
||||
l.xb=function(a){if(!a&&!this.b.i.J){var b;this.O&&ec(this);this.P==Lb?b=gc(this.C,this.j):b=this.b.ta(this.j);Mb(this,this.w=b)}};l.zb=function(a){a||this.b.i.J||Sb(this,this.u)};l.yb=function(a){a?(this.G=!0,Pb(this,!0)):(this.G=!1,Pb(this),Tb(this,0))};l.Ab=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function ec(a){var b=1,c=a.C.u;a.g[Wb]&&a.g[Wb][1]||(b=-b);Sb(a,a.j&~c|a.j+b&c)}
|
||||
function Sb(a,b){a.j=b&a.C.u;if(a.L!==a.j){a.L=a.j;b=a.L;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.B[e]=f;d.G||Ub(d,e,f)}}}function Mb(a,b){a.H=b%Hb;if(a.M!==a.H){a.M=a.H;b=a.M;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.B[e]=f;d.G||Ub(d,e,f)}}return a.H}function Tb(a,b){a.u=b|0;for(b=0;22>b;b++)a.g["S"+b][1]=a.u&1<<b?1:0;Qb(a);return!0}l.stop=function(){Sb(this,this.b.g)};
|
||||
function Rb(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=xa(d.id);e||(e=new Kb(d,!0));B(e,c)}}var Lb=7,Xb="DEP",Zb="ENABLE",Yb="EXAM",Wb="STEP";M(Rb);function hc(a,b,c){u.call(this,"Bus",a,16);this.b=b;this.A=c;this.H=+a.busWidth||18;this.G=1<<this.H;this.u=this.G-1;this.j=Math.log2(16384);this.B=this.G/16384|0;this.w=0;this.g=[];a=new V(this);ic(a,this.A);this.g=Array(this.B);for(b=0;b<this.B;b++)this.g[b]=a;E(this)}r(hc,u);l=hc.prototype;l.reset=function(){};
|
||||
l.la=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ca=function(a){return a?this.save():!0};l.save=function(){var a=new O(this);a.set(0,jc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.g[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function kc(a,b,c,d){for(var e=b,f=c,g=e>>>a.j;0<f&&g<a.g.length;){var h=a.g[g],k=16384*g,m=16384-(e-k);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.v)return h.Ga+=h.v-e,h.v=e,!0;if(e>=h.v+h.Ga){m=h.size-(e-k);m>f&&(m=f);h.Ga=e-h.v+m;e=k+16384;f-=m;g++;continue}}return lc(mc,e,f)}e=new V(a,e,m,16384,d);ic(e,a.A,h);a.g[g++]=e;e=k+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+nc[d]+" at "+Qa(b)),!0):lc(oc,b,c)}
|
||||
function gc(a,b){var c=a.g[(b&a.u)>>>a.j];a.w++;b=c.j(b&16383,b);a.w--;return b}function fc(a,b,c){var d=a.g[(b&a.u)>>>a.j];a.w++;d.F(c,b&16383,b);a.w--}function jc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.g[d];if(e.La||e.pb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,k=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;k[h++]=n-g;k[h++]=m;g=n}k.length<e.length&&(e=k)}c[f]=e}}return c}
|
||||
l.rb=function(a){this.w||(this.A&&Oa(this.A,4)&&G(this.A,"memory fault on "+W(this.A,a),!0,!0),this.b.R())};function lc(a,b,c){x("Memory block error ("+a+": "+H(b)+","+H(c)+")");return!1}var mc=1,oc=2;function Fc(a){u.call(this,"Device",a,256)}r(Fc,u);l=Fc.prototype;l.sa=function(a,b,c,d){this.C=b;this.D=a;this.b=c;this.A=d;E(this)};l.la=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.ca=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new O(this)).data()};
|
||||
l.restore=function(){return!0};M(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new Fc(c),B(c,d)}}});function V(a,b,c,d,e){this.B=a;this.id=Gc+=2;this.v=b;this.Ga=c;this.size=d||0;this.type=e||Hc;this.g=e==Ic;this.b=null;this.ta=this.j=this.u=this.Fa;this.Ha=this.F=this.w=this.ua;this.C=this.D=0;ic(this);this.La=this.pb=!1;if(this.size){a=this.A=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Jc(this,Kc)}else Jc(this)}l=V.prototype;
|
||||
l.save=function(){return this.A};l.restore=function(a){return a&&this.size==a.length?(this.A=a,this.La=!0):!1};function Jc(a,b){b||(b=Lc);Mc(a,b,void 0);Nc(a,b,void 0)}function Mc(a,b,c){c&&a.C||(a.ta=b[2]||a.Fa);if(c||void 0===c)a.u=b[0]||a.Fa,a.j=b[2]||a.Fa}function Nc(a,b,c){c&&a.D||(a.Ha=!a.g&&b[3]||a.ua);if(c||void 0===c)a.w=b[1]||a.ua,a.F=b[3]||a.ua}l.va=function(a,b){b?this.D++||Nc(this,Oc,!1):this.C++||Mc(this,Oc,!1)};function Pc(a,b){b?--a.D||(a.Ha=a.g?a.ua:a.F):--a.C||(a.ta=a.j)}
|
||||
function ic(a,b,c){a.b=b;a.C=a.D=0;c&&((a.C=c.C)&&Mc(a,Oc,!1),(a.D=c.D)&&Nc(a,Oc,!1))}l.Fa=function(a,b){this.b&&Oa(this.b,32)&&G(this.b,"attempt to read invalid address "+W(this.b,b),!0);this.B.rb(b);return-1};l.ua=function(a,b,c){this.b&&Oa(this.b,32)&&G(this.b,"attempt to write "+W(this.b,a)+" to invalid addresses "+W(this.b,c),!0)};l.Eb=function(a,b,c,d){a=this.A[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};l.Hb=function(a){return this.A[a]};
|
||||
l.Qb=function(a,b,c,d,e){c=this.A[b];var f=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*f+d%f;this.A[b]!=c&&(this.A[b]=c,this.La=!0)};l.Sb=function(a,b){this.A[b]=a;this.La=!0};l.Db=function(a,b,c,d){if(this.b&&null!=this.v){var e=this.b;Qc(e,this.v+a,1,e.K)&&e.R(!1)}return this.u(a,b,c,d)};l.Fb=function(a,b){if(this.b&&null!=this.v){var c=this.b;Qc(c,this.v+a,2,c.K)&&c.R(!1)}return this.j(a,b)};
|
||||
l.Pb=function(a,b,c,d,e){if(this.b&&null!=this.v){var f=this.b;Qc(f,this.v+b,1,f.G)&&f.R(!1)}this.g?this.ua(a,0,c):this.w(a,b,c,d,e)};l.Rb=function(a,b,c){if(this.b&&null!=this.v){var d=this.b;Qc(d,this.v+b,2,d.G)&&d.R(!1)}this.g?this.ua(a,0,c):this.F(a,b,c)};var Hc=0,Ic=2,nc=["NONE","RAM","ROM"],Gc=0,Lc=[],Kc=[V.prototype.Eb,V.prototype.Qb,V.prototype.Hb,V.prototype.Sb],Oc=[V.prototype.Db,V.prototype.Pb,V.prototype.Fb,V.prototype.Rb];
|
||||
function Rc(a,b){u.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Aa=b;this.N=c;this.ya=Math.round(this.Aa/1E4)/100;this.M=this.ya*this.N;this.za=this.oa=this.O=this.ra=0;this.i.J=this.i.Pa=!1;this.i.X=a.autoStart;"string"==typeof this.i.X&&(this.i.X="true"==this.i.X);this.i.Ca=!1;this.ma=this.U=0;this.na=+a.csStart;this.P=+a.csInterval;this.Z=+a.csStop;this.B=[];this.$a=this.Kb.bind(this);this.K=this.w=this.H=this.I=this.u=this.ga=this.G=this.aa=this.Ba=this.L=0;this.qa=
|
||||
null;E(this)}r(Rc,u);l=Rc.prototype;l.sa=function(a,b,c,d){this.D=a;this.C=b;this.A=d;this.qa=a.u;for(a=0;a<Sc.length;a++)(b=this.F[Sc[a]])&&this.D.da(null,Sc[a],b);E(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.la=function(a,b){var c=Tc(this.D,"autoStart");null!=c?this.i.X="true"==c?!0:"false"==c?!1:!!c:null==this.i.X&&(this.i.X=!this.A&&void 0===this.F.run);if(!b){if(a){Uc(this);if(!this.restore(a))return!1;Vc(this)}else this.reset();this.A?(a=this.A,b=this.i.X,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),Wc(a),b||Xc(a),a.ra&&(b=a.ra,a.ra=null,Yc(a,b))):this.status("No debugger detected");this.i.X||this.f("CPU will not be auto-started "+(this.qa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.ca=function(a){return a?this.save():!0};l.X=function(){return this.i.J?!0:this.i.X?($b(this),!0):!1};l.gb=function(){return 0};function Vc(a){void 0===a.na&&(a.na=0);void 0===a.P&&(a.P=-1);void 0===a.Z&&(a.Z=-1);a.i.Ca=0<=a.na&&0<a.P;a.i.Ca&&(a.ma=0,a.U=a.na-a.K)}function dc(a,b){if(a.i.Ca){var c=!1;a.ma=a.ma+a.gb()|0;a.U-=b;0>=a.U&&(a.U+=a.P,c=!0);0<=a.Z&&a.Z<=Zc(a)&&(a.P=a.Z=-1,Vc(a),a.R(),c=!0);c&&a.f(Zc(a)+" cycles: checksum="+H(a.ma))}}
|
||||
l.da=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.F[b]=c,!0;case "run":return this.F[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.i.T)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.i.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.i.T);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.i.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.i.J?d.R():$b(d))},!0;case "speed":return this.F[b]=
|
||||
c,!0;case "setSpeed":return this.F[b]=c,c.onclick=function(){$c(d,d.N<<1,!0)},c.textContent=this.M.toFixed(2)+"Mhz",!0}return!1};function cc(a,b,c){a.K+=b;c&&(a.H=a.I=0)}function ad(a,b){var c=1;b&&1<a.N&&a.L&&(c=a.L/a.ya);a.za=Math.round(1E3/bd);a.oa=Math.floor(a.Aa/bd*c);b||(a.O=a.oa);a.ra=0}function Zc(a){return a.K+a.w+a.H-a.I}function Uc(a){a.L=0;a.Ba=0;a.K=a.w=a.H=a.I=0;Vc(a);$c(a,1)}
|
||||
function $c(a,b,c){var d=!1;if(void 0!==b){.8>a.L/a.M?b=1:d=!0;a.N=b;b=a.ya*a.N;if(a.M!=b){a.M=b;b=a.M.toFixed(2)+"Mhz";var e=a.F.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.D&&cd(a.D)}cc(a,a.w);a.w=0;a.u=va();a.G=0;ad(a);return d}function dd(a,b){for(var c=a.B.length-1;0<=c;c--){var d=a.B[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function ed(a){for(var b=[],c=0;c<a.B.length;c++)b.push(a.B[c][0]);return b}
|
||||
function bc(a,b){for(var c=a.B.length-1;0<=c;c--){var d=a.B[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function fd(a,b){var c=a.H-=a.I;a.I=0;b&&(a.H=0);return c}
|
||||
l.Kb=function(){if(this.i.J){this.ra>=this.Aa&&ad(this,!0);this.aa=0;this.ga=va();if(this.G){var a=this.ga-this.G;a>this.za&&(this.u+=a,this.u>this.ga&&(this.u=this.ga))}try{do{var b=dd(this,this.i.Ca?1:this.oa);try{this.Ia(b)}catch(e){if("number"!=typeof e)throw e;}b=fd(this,!0);this.aa+=b;this.w+=b;dc(this,b);bc(this,b);this.O-=b;if(0>=this.O){this.O+=this.oa;++this.Ba>=gd&&(this.D&&Q(this.D,void 0),this.Ba=0);break}}while(this.i.J)}catch(e){this.R();this.D&&this.D.stop(va(),Zc(this));Ja(this,e.stack||
|
||||
e.message);return}if(this.i.J){a=setTimeout;b=this.$a;this.G=va();var c=this.za;this.aa&&(c=Math.round(c*this.aa/this.oa));var c=c-(this.G-this.ga),d=this.G-this.u;d&&(this.L=Math.round(this.w/(10*d))/100,864E5<=d&&(this.K=0,$c(this)));if(0>c||this.L<this.M)-1E3>c&&(this.u-=c),c=0;this.ra+=this.aa;this.G+=c;a(b,c)}}};
|
||||
function $b(a,b){if(!Ka(a))if(a.i.J)a.f(a.toString()+" busy");else{$c(a);a.i.J=!0;a.i.Pa=!0;var c=a.F.run;c&&(c.textContent="Halt");a.D&&(b&&cd(a.D,!0),a.D.start(a.u,Zc(a)));a.A||a.status("Started");setTimeout(a.$a,0)}}l.Ia=function(){return 0};l.R=function(a){var b=!1;if(this.i.J){fd(this);cc(this,this.w);this.w=0;this.i.J=!1;if(b=this.F.run)b.textContent="Run";this.D&&this.D.stop(va(),Zc(this));b=!0;this.A||this.status("Stopped")}this.i.complete=a;return b};var bd=30,gd=15,Sc=["power","reset"];
|
||||
function hd(a){var b=+a.model||1001;Rc.call(this,a,1E6);this.Za=b;this.Xa=+a.addrReset||0;this.fa=null;this.Wa=[];this.i.complete=!1}r(hd,Rc);l=hd.prototype;l.reset=function(){this.status("Model "+this.Za);this.i.J&&this.R();this.ea=this.g=this.pa=this.Xa;this.j=0;this.ta=this.Gb;this.Ha=this.Tb;this.fa=null;Uc(this);this.i.error=!1;Rc.prototype.reset.call(this)};l.gb=function(){return 0};
|
||||
l.save=function(){var a=new O(this);a.set(0,[this.g,this.pa,this.ea,this.j]);a.set(1,[]);a.set(2,[this.K,this.N,this.i.X]);a.set(3,id(this));a.set(4,ed(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];ha();ea();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.g=b.next().value;this.pa=b.next().value;this.ea=b.next().value;this.j=b.next().value;b=a[2];this.K=b[0];$c(this,b[1]);this.i.X=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Wa.length;d++){var e=this.Wa[d];if(e.Ob===b[c]){d=e;break a}}d=null}d&&(d.next=this.fa,this.fa=d)}a=a[4];for(b=0;b<this.B.length&&b<a.length;b++)this.B[b][0]=a[b];return!0};
|
||||
function id(a){var b=[];for(a=a.fa;a;)b.push(a.Ob),a=a.next;return b}l.Gb=function(a){var b=this.C;a=this.ea=a;return b.g[(a&b.u)>>>b.j].ta(a&16383,a)};l.Tb=function(a,b){var c=this.C;a=this.ea=a;c.g[(a&c.u)>>>c.j].Ha(b,a&16383,a)};
|
||||
l.Ia=function(a){this.i.complete=!0;var b=this.A?jd(this.A)?1:this.i.Pa?-1:0:0,c=a?this.i.Pa?0:1:-1;this.i.Pa=!1;this.H=this.I=a;this.j=this.j&-5|(b?4:0);do{if(this.j){if(this.j&4){if(kd(this.A,this.g,c)){this.R();break}++b||(this.j&=-5);c||c++}if(a=this.j&11)this.j&2?this.fa||(this.j&=-3):this.j&1&&this.j++,a=!1;if(a){if(this.j&4&&kd(this.A,this.g,c)){this.R();break}if(0>c)break}}this.j&=15;a=this.pa=this.g;this.ta(a);this.g=(a+1)%Gb}while(0<this.I);return this.i.complete?this.H-this.I:!1===this.i.complete?
|
||||
-1:0};M(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new hd(d);B(d,c)}});
|
||||
function ld(a){u.call(this,"ROM",a,128);this.S=this.g=null;this.B=+a.addr;this.u=+a.size;this.j=a.alias;"string"==typeof this.j&&(this.j=eval(this.j));this.w=a.file;this.G=Ra(this.w);if(this.w){a=this.w;var b=Sa(this.G);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.w+"&format=bytes&decimal=true");var c=this;J(a,null,!0,function(a,b,f){f?(c.Y("Unable to load ROM resource (error "+f+": "+a+")"),c.w=null):(ta(c.Ka,a,b),(a=ib(a,b))?(c.g=a.W,c.S=a.S):c.w=null);md(c)})}}r(ld,u);
|
||||
ld.prototype.sa=function(a,b,c,d){this.C=b;this.b=c;this.A=d;md(this)};ld.prototype.la=function(){this.S&&(this.A&&nd(this.A,this.id,this.B,this.u,this.S),delete this.S);return!0};ld.prototype.ca=function(){return!0};
|
||||
function md(a){if(!La(a)){if(a.w){if(!a.g||!a.C)return;a.u||(a.u=a.g.length);if(a.g.length!=a.u)Ja(a,"ROM size ("+H(a.g.length,8,!0)+") does not match specified size ("+H(a.u,8,!0)+")");else{var b;b=a.B;if(kc(a.C,b,a.u,Ic)){var c;for(c=0;c<a.g.length;c++)fc(a.C,b+c,a.g[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.j?b.push(a.j):null!=a.j&&a.j.length&&(b=a.j);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.C,g=d.u,h=[],k=d.B>>>f.j;0<g&&k<f.g.length;)h.push(f.g[k++]),g-=16384;f=d.C;d=d.u;g=0;for(e>>>=
|
||||
f.j;0<d&&e<f.g.length;){k=h[g++];if(!k)break;f.g[e++]=k;d-=16384}}delete a.g}}}E(a)}}M(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new ld(d);B(d,c)}});
|
||||
function od(a){u.call(this,"RAM",a);this.S=this.j=null;this.u=+a.addr;this.w=+a.size;this.ia=a.load;this.ha=a.exec;null!=this.ia&&(this.ia=+this.ia);null!=this.ha&&(this.ha=+this.ha);this.B=!1;this.g=a.file;this.G=Ra(this.g);if(this.g){a=this.g;var b=Sa(this.G);"json"!=b&&"hex"!=b&&(a=Ua()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;J(a,null,!0,function(a,b,f){f?(c.Y("Unable to load RAM resource (error "+f+": "+a+")"),c.g=null):(ta(c.Ka,a,b),(a=ib(a,b))?(c.j=a.W,c.S=a.S,null==
|
||||
c.ia&&(c.ia=a.ia),null==c.ha&&(c.ha=a.ha)):c.g=null);pd(c)})}}r(od,u);od.prototype.sa=function(a,b,c,d){this.C=b;this.b=c;this.A=d;pd(this)};od.prototype.la=function(a,b){this.S&&(this.A&&nd(this.A,this.id,this.u,this.w,this.S),delete this.S);b||this.reset();return!0};od.prototype.ca=function(){return!0};
|
||||
function pd(a){if(a.C&&(!a.B&&a.w&&(kc(a.C,a.u,a.w,1)?a.B=!0:a.w=0),!La(a))){if(!a.B)x("No RAM allocated");else if(a.g){if(!a.j||!a.C)return;qd(a,a.j,a.ia,a.ha,a.u)?a.status('Loaded image "'+a.G+'"'):a.Y('Error loading image "'+a.G+'"')}E(a)}}
|
||||
od.prototype.reset=function(){if(this.B){for(var a=this.C,b=this.u,c=this.w,d=b&16383,b=b>>>a.j;0<c&&b<a.g.length;){var e=a.g[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=sa&&(g+=ra);g=Math.trunc(Math.abs(g))%ra;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.F(g,d,e.v+d);c-=16384;b++;d=0}this.j&&qd(this,this.j,this.ia,this.ha,this.u,!this.A)}};
|
||||
function qd(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var k=0;k<b.length-1;){var m=b[k]&255|(b[k+1]&255)<<8;if(m)if(m&255){var n=k;if(1!=m){G(a,"invalid signature ("+I(m)+") at offset "+I(n),4096);break}if(k+6>=b.length){G(a,"invalid block at offset "+I(n),4096);break}for(var k=k+2,p=b[k++]&255|(b[k++]&255)<<8,q=b[k++]&255|(b[k++]&255)<<8,m=m+((p&255)+(p>>8)+(q&255)+(q>>8)),K=k,za=p-=6;0<p&&k<b.length;)m+=b[k++]&255,p--;if(p||k>=b.length){G(a,"insufficient data for block at offset "+I(n),4096);break}m+=
|
||||
b[k++]&255;if(m&255){G(a,"invalid checksum ("+H(m,2,!0)+") for block at offset "+I(n),4096);break}if(za)for(G(a,"loading "+I(za)+" bytes at "+I(q)+"-"+I(q+za),4096);za--;)fc(a.C,q++,b[K++]);else q&1?g=!0:null==d&&(d=q),null!=d&&G(a,"starting address: "+I(d),4096);h=!0}else k++;else k+=2}if(!h&&(null==c&&(c=e),null!=c)){for(h=0;h<b.length;h++)fc(a.C,c+h,b[h]);h=!0}if(h){if(null==d||g)a.b.R(),f=!1;null!=d&&(a=a.b,a.Xa=d,a.g=d%Gb,f?a.i.T?a.i.J||$b(a):a.i.X=!0:a.A&&a.i.T?a.R()||a.D.i.reset||(Wc(a.A),
|
||||
Q(a.D,-1)):!1===f&&a.R(),!a.i.J&&a.qa&&a.qa.stop())}return h}M(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new od(d);B(d,c)}});
|
||||
function rd(a){u.call(this,"SerialPort",a,1048576);this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.u=!0;this.j=[];var b=a.binding;if("console"!=b){var c;a=sd;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.F[b])&&this.da(null,a,b))}this.g=this.B=null;this.exports={connect:this.ib,receiveData:this.Na,receiveStatus:this.Ib,setConnection:this.Lb}}r(rd,u);l=rd.prototype;
|
||||
l.da=function(a,b,c){var d=this;switch(b){case sd:return this.F[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?t.Ua:t.mb:46==c?b=t.Ua:a.ctrlKey&&c>=t.Ta&&c<=t.ob&&(b=c-(t.Ta-t.jb));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==t.lb&&(b=t.kb);d.Na(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Na(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};l.sa=function(a,b,c,d){this.D=a;this.C=b;this.b=c;this.A=d;E(this)};
|
||||
l.ib=function(a){if(!this.g){var b=Tc(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ya(c[0]);if(d!=this.Ja)return;c=Ya(c[1]);if(this.g=xa(c)){var e=this.g.exports;if(e){var f=e.connect;f&&f.call(this.g,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.Ka+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.la=function(a,b){if(!b)if(this.ib(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.ca=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new O(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.j.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.j.push(b)}else this.j=this.j.concat(a);return!0};l.Ib=function(){};l.Lb=function(a,b){return this.g?!1:(this.g=a,this.B=b,!0)};var sd="buffer";
|
||||
M(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new rd(d);B(d,c)}});function td(a){u.call(this,"Debugger",a);this.ba=+a.base||16;this.ma=!1;this.B=0;this.O=!1;this.w=-1;this.u=[];this.Z={}}r(td,u);td.prototype.hb=function(){return-1};td.prototype.Sa=function(){};
|
||||
function ud(a,b,c,d){if(c)if(b){0>a.w&&a.u.length&&(a.w=0);if(0>a.w||b!=a.u[a.w])a.u.splice(0,0,b),a.w=0;a.w--}else a.O?b="end":b=a.u[a.w+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(Ya(b.substring(c,f))),c=f+1}}return a}
|
||||
function vd(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function wd(a,b,c){var d;if(b){b=xd(a,b);for(var e=0,f=!1,g=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],p=n.length,n=Ya(n);if(!n){f=!0;break}n=yd(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==m.length)break;var n=m[e++],q=n.length;k.length&&zd[n]<zd[k[k.length-1]]&&vd(h,k,1);k.push(n);b=b.substr(p+q)}vd(h,k)&&1==h.length||(f=!0);f?c&&a.f("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Ad(a,null,
|
||||
d))}return d}function xd(a,b){for(var c,d=a.ma?"(":"{",e=a.ma?")":"}",f=new RegExp(a.ma?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=wd(a,c[1]);b=b.replace(d+c[1]+e,null!=g?W(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function yd(a,b,c,d){var e;null!=b?(e=a.hb(b),0<=e?e=a.Sa(e):(e=a.Z[b],null==e&&(e=Pa(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function Ad(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var h=0;h<f;h++){g&&(g=","+g);var k=d&255,m=void 0,n=8,p="";n?32<n&&(n=32):n=32;for(var q=null==k||isNaN(k),K=m=m||n;0<n--;)K||(p=","+p,K=m),p=(q?"?":k&1?"1":"0")+p,k>>=1,K--;g=p+g;d>>=8}d=H(c,0,!0)+" "+c+". "+Qa(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function Bd(a,b){if(b)return Ad(a,b,a.Z[b]);var c=0;for(b in a.Z)Ad(a,b,a.Z[b]),c++;return 0<c}function W(a,b){var c;c=void 0===c?0:c;switch(a.ba){case 8:a=Qa(b,0<c?(c+2)/3|0:0);break;case 10:a=b;b=0<c?Math.ceil(.3*c):0;var d="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(0>a&&-1<a&&(a=-1);0<b--;)d=String.fromCharCode(a%10+48)+d,a/=10;a=d;break;default:a=H(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}
|
||||
var zd={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Cd(a){td.call(this,a);this.ya=!1;this.ma=!0;this.I=X();this.xa=X();this.N=X();this.H=[];this.g=this.K=this.G=[];Dd(this);this.P=this.ga=0;this.j=[];this.pa=void 0;Ed(this);this.A=this;this.na={};this.V=this.cb=0;this.U=null;this.M=[];Fd(this,a.messages);this.ra=a.commands;this.L=0;this.Ba=this.qa=null;this.B=this.Aa=this.za=this.fa=this.oa=0;this.ea=this.aa=null;var b=this;window?void 0===window[C]&&(window[C]=function(a){return Yc(b,a)}):void 0===global[C]&&(global[C]=function(a){return Yc(b,
|
||||
a)})}r(Cd,td);function Y(a){a=a&&a.v;null==a&&(a=-1);return a}function X(a,b,c){return{v:void 0===a?null:a,qb:void 0===b?!1:b,ka:!1,ba:c}}function Gd(a){return[a.v,a.qb,a.ba,a.ka,a.Oa]}function Hd(a,b){var c=X(b[0],b[1],b[2]);c.ka=b[3];b[4]&&(c.ab=ud(a,c.Oa=b[4]));return c}l=Cd.prototype;
|
||||
l.sa=function(a,b,c,d){this.C=b;this.D=a;this.b=c;this.ea=a.u;(a=Tc(a,"messages"))&&Fd(this,a);Id(this,function(a){a:{var b=d.C.g,c=a[0],e=a=0,k=b.length;if(c){a=Y(Z(d,c));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.C.j;k=1}d.f("blockid physical blockaddr used size type");d.f("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.f("..."):(c=n.type,m=nc[c],n&&d.f(H(n.id,8)+" %"+H(e<<d.C.j,8)+" %"+H(n.v,8)+" "+I(n.Ga)+" "+
|
||||
I(n.size)+" "+m),c!=Hc&&(c=-1),m=0);a+=16384;e++}}});E(this)};
|
||||
l.da=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.F[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",Yc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.w<d.u.length-1&&(b=d.u[++d.w])):40==a.keyCode&&(0<d.w?b=d.u[--d.w]:(b="",d.w=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.F[b]=c,rb(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";Yc(d,a,!0);return!0}return!1}),!0;case "step":return this.F[b]=c,rb(c,function(a){var b=!1;Ma(d,!0)||(Na(d,!0),b=ac(d,a?1:0,null),Na(d,!1));return b}),!0}return!1};function Xc(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.wa=function(a,b){var c=-1,d=Y(a);-1!==d&&(c=gc(this.C,d),b&&null!=a.v&&(a.v+=b||1));return c};l.Va=function(a,b,c){var d=Y(a);-1!==d&&(fc(this.C,d,b),c&&null!=a.v&&(a.v+=c||1),Q(this.D,-1))};
|
||||
function Z(a,b,c){var d;c=(c?a.I:a.xa).v;var e,f;if(void 0!==b){b=xd(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,h;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.H.length;c++){var k=a.H[c].S[d];if(null!=k){h=k.o;break}}null!=h&&(g=X(h));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=wd(a,b,void 0)}null!=c&&(d=X(c,e,f));return d}function Jd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.ab=ud(a,b.Oa=c[2]))}
|
||||
function Kd(a){return Qa(a/Gb,6)+" "+Qa(a%Gb,6)}function Fd(a,b){a.A=a;a.V=a.cb=536870916;a.U=null;a.M=[];b=ud(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in N){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.V|=N[c],a.f(c+" messages enabled"))}}function Id(a,b){for(var c in N)if(16==N[c]){a.na[c]=b;break}}l.hb=function(a){return Ld.indexOf(a.toUpperCase())};
|
||||
l.Sa=function(a){var b;switch(a){case Md:b=this.b.g}return b};l.message=function(a,b){b&&(a+=" @"+W(this,X(this.b.pa).v));if(!this.U||a!=this.U)if(this.U=a,this.V&1073741824)this.M.push(a);else{var c;if(this.V&-2147483648&&this.b&&(c=this.b.i.J)||Ma(this,!0))this.R(),c&&(a+=" (cpu halted)");this.f(a);this.b&&(a=this.b,fd(a),a.O=0,a.D&&Q(a.D,void 0))}};
|
||||
function Ed(a){var b;if(!jd(a))a.j&&a.j.length&&a.f("instruction history buffer freed"),a.P=0,a.j=[];else if(!a.j||!a.j.length){a.j=Array(Nd);for(b=0;b<a.j.length;b++)a.j[b]=X();a.P=0;a.f("instruction history buffer allocated")}}function Od(a,b,c){if(!Pd(a,c))return!1;$b(a.b,b);return!0}
|
||||
function ac(a,b,c,d){if(!Pd(a))return!1;var e="";null===c&&(e=(c=!a.qa||"tr"==a.qa)?"tr":"t");a.B=0;b||jd(a)&&kd(a,a.b.g,0);try{b=dd(a.b,b);var f=a.b.Ia(b);0<f&&(bc(a.b,f),a.B+=f,cc(a.b,f,!0),dc(a.b,f),a.fa++)}catch(g){"number"!=typeof g&&(a.B=0,Ja(a.b,g.stack||g.message))}!1!==d&&(a.ea&&a.ea.stop(),Q(a.D,-1));Wc(a,c||!1,e);return 0<a.B}l.R=function(a){this.b&&this.b.R(a)};function Wc(a,b,c){a.ya&&(void 0===b&&(b=!0),c&&a.f(Qd+c),a.I=X(a.b.g),b&&1!=a.L?Rd(a):Sd(a))}
|
||||
function Pd(a,b){var c;(c=!a.b||!La(a.b))||(c=a.b,c.i.T?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.b.i.J?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Ka(a.b)}l.la=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.ca=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Ed(this);this.fa=0;this.U=null;this.B=0;this.I=X(this.b.g);this.i.J=!1;te(this);a||Wc(this)};
|
||||
l.save=function(){var a=new O(this);a.set(0,Gd(this.I));a.set(1,Gd(this.N));a.set(2,[this.u,this.O,this.V]);a.set(3,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.I=Hd(this,a[b++]),this.N=Hd(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.O=a[b][1],this.V|=a[b][2]);a[3]&&(this.H=a[3]);return!0};l.start=function(a,b){this.L||this.f("running");this.i.J=!0;this.za=a;this.Aa=b};
|
||||
l.stop=function(a,b){if(this.i.J){this.i.J=!1;this.B=b-this.Aa;if(!this.L){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";jd(this)&&(b+=this.fa+" instructions, ",this.fa=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Oa(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}Wc(this,!0);Xc(this);te(this,this.b.g);this.U=null}};function jd(a){return 1<a.g.length||!!a.ga}
|
||||
function kd(a,b,c){var d=-1;if(!c&&(d=a.b.ta(b),d/Jb|0&&a.b.pa==b)){b=a.b;var e=b.g;b.g=(e+1)%Gb;b=e}if(0<c&&(a.ga&&!--a.ga||Qc(a,b,1,a.g)))return!0;0<=c&&a.j.length&&(a.fa++,0>d&&(d=a.b.ta(b)),68719476735!=(d&65535)&&(c=a.j[a.P],c.v=b,c.ka=!1,c.ba=void 0,++a.P==a.j.length&&(a.P=0)));return!1}
|
||||
function ve(a,b,c,d){var e=X(b.v),f,g,h,k=0,m=a.wa(b,1),n=m/Ib|0;for(g in we)if(f=we[g][n&g]){g=+g;switch(g){case 508:h=xe;k=n&3;break;case 504:h=ye;k=n&7;break;case 393:h=ze,k=(n&48)>>2|(n&6)>>1}break}n="";h=h&&h[k]||"";"S"==h&&f>Ae&&(h="B");h=Be[f]+h;f||(n=Kd(m));f="";m=W(a,e.v)+":";if(-1!==e.v&&-1!==b.v){do if(k=a.wa(e,1),f+=" "+Kd(k),null==e.v)break;while(e.v!=b.v)}m+=Xa(f,16);m+=Xa(h,5);n&&(m+=" "+n);c&&(m=Xa(m,60)+";"+(c||""),m=a.b.i.Ca?m+("cycles="+Zc(a.b).toString()+" cs="+H(a.b.ma)):m+(null!=
|
||||
d?"="+d.toString():""));return m}function Dd(a){var b,c;a.g=["bp"];if(a.K)for(b=1;b<a.K.length;b++){c=a.K[b];c=Y(c);var d=a.C;Pc(d.g[c>>>d.j],!1)}a.K=["br"];if(a.G)for(b=1;b<a.G.length;b++)c=a.G[b],c=Y(c),d=a.C,Pc(d.g[c>>>d.j],!0);a.G=["bw"];a.oa=0;a.ga=0}
|
||||
l.va=function(a,b,c){var d=!0;c||Ce(this,a,b,!1,!0);if(a!=this.g){var e=Y(b);if(-1===e)this.f("invalid address: "+W(this,b.v)),d=!1;else{var f=this.C;f.g[e>>>f.j].va(e&16383,a==this.G)}}d&&(a.push(b),c?b.ka=!0:(De(this,a,a.length-1,"set"),Ed(this)));return d};function Ce(a,b,c,d,e){var f=!1;c=Y(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==Y(h)&&(!d||h.ka)){f=!0;h.ka||e||De(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(d=a.C,Pc(d.g[c>>>d.j],b==a.G));h.ka||Ed(a);break}}return f}
|
||||
function Ee(a,b){for(var c=1;c<b.length;c++)De(a,b,c);return b.length-1}function De(a,b,c,d){c=b[c];a.f(b[0]+" "+W(a,c.v)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function te(a,b){if(void 0!==b)Qc(a,b,1,a.g,!0),a.L=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.ka){if(!Ce(a,a.g,c,!0))break;b=0}}}
|
||||
function Qc(a,b,c,d,e){var f=!1;if(!a.oa++)for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.ka)for(var k=Y(h)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==k){var n,f=!0;h.ka&&(Ce(a,d,h,!0),e=!0);if(n=h.ab){for(var f=!1,p=0;p<n.length;p++)if(!Fe(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){f=!0;break}}a.b.i.J||(f=!0)}if(f){e||De(a,d,g,"hit");break}}}a.oa--;return f}l.eb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function nd(a,b,c,d,e){var f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=f,k=[k>>>0,g],p=gb(n,k,a.eb);0>p&&n.splice(-(p+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({Yc:b,v:c,tb:d,S:e,bb:f})}function Ge(a,b,c){var d=[],e=Y(b)>>>0;for(b=0;b<a.H.length;b++){var f=a.H[b],g=f.v>>>0,h=f.tb;if(e>=g&&e<g+h){e=gb(f.bb,[e-g],a.eb);0<=e?He(a,b,e,d):c&&(e=~e,He(a,b,e-1,d),He(a,b,e,d));break}}return d}
|
||||
function He(a,b,c,d){var e={},f=a.H[b].bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.H[b].S[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}function Ie(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Bd(a)||a.f("no variables"),!0;if(!c[2])return Bd(a,c[1]);if(!c[3])return delete a.Z[c[1]],!0;b=wd(a,c[3]);return void 0!==b?(a.Z[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function Je(a,b,c){var d=null;if(b=Z(a,b,!0)){var e=Ge(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.v-e[1])&&(g=" + "+I(f)),f=e[0]+" ("+W(a,e[1])+")"+g,c&&a.f(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.v)&&(g=" - "+I(f)),f=e[4]+" ("+W(a,e[5])+")"+g,c&&a.f(f),d||(d=f))}else c&&a.f("no symbols")}return d}
|
||||
function Rd(a,b){var c;if(b&&"?"==b[1])a.f("register commands:"),a.f("\tr\tdump registers"),a.f("\trm\tdump misc registers"),a.f("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.b;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}g=wd(a,b);if(void 0===g)return;switch(f.toUpperCase()){case "PC":e.g=g%Gb;a.I=X(e.g);break;default:a.f("unknown register: "+
|
||||
f);return}Q(a.D);a.f("updated registers:")}}f=Md;(g=Ld[f]||"")&&(g+="="+W(a,a.Sa(f))+" ");f=""+g;d&&(f+="\n");a.f(f);c&&(a.I=X(e.g),Sd(a,W(a,a.I.v)))}}function Ke(a,b){b=Ya(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):Ad(a,null,c[2].charCodeAt(0)):wd(a,b,!0)}
|
||||
function Le(a,b,c){if("?"==c)a.f("trace commands:"),a.f("\tt [#]\ttrace # instructions"),a.f("\ttr [#]\ttrace # instructions with register updates"),a.f("\ttc [#]\ttrace # cycles"),a.f("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=yd(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.qa=b;qb(c,function(){return Na(a,!0)&&ac(a,e,d,!1)},function(){a.ea&&a.ea.stop();Q(a.D,-1);Na(a,!1)})}}
|
||||
function Sd(a,b,c,d){if(b=Z(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=yd(a,c.substr(1)),null!=c&&(d=c);else{d=Z(a,c,!0);if(!d||d.v<b.v)return;e=d.v-b.v;if(256<e){a.f("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Ma(a,!1)||a.L?a.B:null;var g=null!=f?"cycles":null,h=Ge(a,b),k=b.v;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.f(m)}h[3]&&(g=h[3],f=null);f=ve(a,b,g,f);a.f(f);a.I=b;e-=b.v-k;c++}}}
|
||||
function Fe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(Qd+b):(a.O&&(a.f("ended assemble at "+W(a,a.N.v)),a.I=a.N,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.U=null;if(La(a)&&0<b.length){a.O&&(b="a "+W(a,a.N.v)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var h=g[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){g[0]=h.substr(m);g.unshift(h.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var p=
|
||||
Z(a,g[1],!0);if(p)if(a.N=p,void 0===g[2])a.f("begin assemble at "+W(a,p.v)),a.O=!0,Q(a.D);else{var q;a.f("not supported yet");q=[];if(q.length){for(var K=0;K<q.length;K++)a.Va(p,q[K],1);a.f(ve(a,a.N))}}break;case "b":a:{var za=g[0],Ba=g[1],nf=b;if("?"==Ba)a.f("breakpoint commands:"),a.f("\tbp #\tset exec breakpoint"),a.f("\tbr #\tset read breakpoint"),a.f("\tbw #\tset write breakpoint"),a.f("\tbc #\tclear breakpoint (* to clear all)"),a.f("\tbl\tlist all breakpoints"),a.f("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var ja=za.charAt(1);if("l"==ja){var pc;pc=0+Ee(a,a.g);pc+=Ee(a,a.K);(pc+=Ee(a,a.G))||a.f("no breakpoints")}else if("n"==ja){var Td=+Ba||0;Ba&&(a.ga=Td);a.f("break after "+Td+" instruction(s)")}else if(void 0===Ba)a.f("missing breakpoint address");else{var F=X();if("*"!=Ba&&(F=Z(a,Ba,!0),!F))break a;"c"==ja?null==F.v?(Dd(a),a.f("all breakpoints cleared")):Ce(a,a.g,F)||Ce(a,a.K,F)||Ce(a,a.G,F)||a.f("breakpoint missing: "+W(a,F.v)):null!=F.v&&(Jd(a,F,nf),"p"==ja?a.va(a.g,F):"r"==ja?a.va(a.K,F):
|
||||
"w"==ja?a.va(a.G,F):a.f("unknown breakpoint command: "+ja))}}}break;case "c":a.ja&&(a.ja.value="");break;case "d":a:{var Ca,Da=g[0],R=g[1],ca=g[2],of=g[3];if("?"==R){var Ea="";for(Ca in N)a.na[Ca]&&(Ea&&(Ea+=","),Ea+=Ca);Ea+=",state,symbols";a.f("dump memory commands:");a.f("\tdw [a] [n] dump n words at address a");a.f("\tds [a] [n] dump n words at address a as JSON");a.f("\tdh [p] [n] dump n instructions from history position p");Ea.length&&a.f("dump extension commands:\n\t"+Ea)}else if("state"==
|
||||
R){var qc=Me(a.D,!0);"console"==ca?console.log(qc):(a.ja&&(a.ja.value=""),qc&&a.f(qc))}else if("symbols"==R)for(var rc=0;rc<a.H.length;rc++){var sc=a.H[rc],Fa;for(Fa in sc.S)if("."!=Fa.charAt(0)){var Ud=sc.S[Fa].o;if(void 0!==Ud){var Vd=sc.S[Fa].l;Vd&&(Fa=Vd);a.f(W(a,Ud)+" "+Fa)}}}else{if("d"==Da){for(Ca in N)if(g[1]==Ca){var Wd=a.na[Ca];Wd?(g.shift(),g.shift(),Wd(g)):a.f("no dump registered for "+R);break a}R||(Da=a.Ba||"dw")}else a.Ba=Da;if("dh"==Da){var Xd=R,Yd=ca,Zd="",$d=0,P=a.P,S=a.j;if(S.length){var L=
|
||||
+Xd||a.pa,Za=+Yd||10;isNaN(L)?L=Za:Zd="more ";L>S.length&&(a.f("note: only "+S.length+" available"),L=S.length);P-=L;0>P&&(null==S[S.length-1].v?(L=P+L,P=0):P+=S.length);var tc=[];"call"==Yd&&(Za=1E5,tc=["CALL"]);for(void 0!==Xd&&a.f(L+" instructions earlier:");0<Za&&P!=a.P;){var ae=S[P++];if(null==ae.v)break;var $a=X(ae.v),pf=L--,be=ve(a,$a,"history",pf);(!tc.length||0<=be.indexOf(tc[0]))&&a.f(be);$a.Ra&&(P+=$a.Ra,Za-=$a.Ra,L-=$a.Ra);P>=S.length&&(P=0);a.pa=L;$d++;Za--}}$d||(a.f("no "+Zd+"history available"),
|
||||
a.pa=void 0)}else{var ka=Z(a,R);if(ka){var la=0,ce="ds"==Da;if(ca){if("l"==ca.charAt(0))ca=ca.substr(1)||of,la=yd(a,ca);else{var de=Z(a,ca);de&&(la=de.v-ka.v)}0>la&&(la=0);65536<la&&(la=65536)}var qf=a.ba;ka.ba&&(a.ba=ka.ba);for(var ee="db"==Da?1:2,uc=la||32,vc=1==ee?2:4,rf=(uc+vc-1)/vc|0||1,ma="";rf--&&0<uc;){for(var na="",fe="",R=W(a,ka.v),ge=vc;0<ge--&&0<uc--;){var Bb=a.wa(ka,1);ce?(na&&(na+=","),na+=Bb):(na+=Kd(Bb),na+=" ");for(var he=0;1==ee&&6>he;he++)fe+=String.fromCharCode((Bb%64|0)+32),
|
||||
Bb/=64}ma&&(ma+="\n");ma=ce?ma+(na+","):ma+(R+": "+na+(0>ge?" "+fe:""))}ma&&a.f(ma);a.xa=ka;a.ba=qf}}}}break;case "e":if("else"==g[0])break;var ie,je,ke=g[0],wc=g[1];"e"==ke||"ew"==ke?(ie=a.wa,je=a.Va):wc=null;if(null==wc)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var Cb=Z(a,wc);if(Cb)for(var Db=2;Db<g.length;Db++){var xc=wd(a,g[Db]);if(void 0===xc){a.f("unrecognized value: "+g[Db]);break}a.f("changing "+W(a,Cb.v)+" from "+Kd(ie.call(a,Cb))+" to "+Kd(xc));je.call(a,
|
||||
Cb,xc,1)}}break;case "g":a:{var le=g[1],sf=b;if(void 0!==le){var yc=Z(a,le,!0);if(!yc)break a;Jd(a,yc,sf);a.va(a.g,yc,!0)}Od(a,!0,c)}break;case "h":a.i.J?(c||a.f("halting"),a.R()):Ma(a,!0)||c||a.f("already halted");break;case "i":if("if"==g[0]){var zc;var ab=b.substr(2),ab=Ya(ab);wd(a,ab)?(c||a.f("true: "+ab),zc=!0):(c||a.f("false: "+ab),zc=!1);zc||(d=!1);break}f=!0;break;case "k":var tf=g[0];if("?"==g[1])a.f("stack trace commands:"),a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");
|
||||
else{var Ac=0,Bc=X(),bb=X();for(a.f("stack trace for "+W(a,bb.v));10>Ac;){for(var oa=null,uf=256;65536>bb.v>>>0;){Bc.v=a.wa(bb,2);if(null==bb.v||!uf--)break;if(!(Bc.v&1)){for(var vf=a,Eb=Bc,me=null,cb=Eb.v,ne=cb,Cc=1;6>=Cc&&cb;Cc++){if(2<Cc){Eb.v=cb;var Fb=ve(vf,Eb);if(0<=Fb.indexOf("JSR")){var oe=Fb.indexOf(" ");if(cb+(Fb.indexOf(" ",oe+1)-oe-1)/2==ne){me=Fb;break}}}cb-=2}Eb.v=ne;if(oa=me)break}}if(!oa||null==oa)break;var pe=null;if("ks"==tf){var qe=oa.match(/[0-9A-F]+$/);qe&&(pe=Je(a,qe[0]))}oa=
|
||||
Xa(oa,50)+" ;"+(pe||"stack="+W(a,bb.v));a.f(oa);Ac++}Ac||a.f("no return addresses found")}break;case "l":if("ln"==g[0]){Je(a,g[1],!0);break}f=!0;break;case "m":a:{var T,U=null,w=g[1];"?"==w&&(w=void 0);if(void 0!==w){var da=0;if("all"==w)da=1879046143,w=null;else if("on"==w)U=!0,w=null;else if("off"==w)U=!1,w=null;else{"keys"==w&&(w="key");"kbd"==w&&(w="keyboard");for(T in N)if(w==T){da=N[T];U=!!(a.V&da);break}if(!da){a.f("unknown message category: "+w);break a}}if(da)if("on"==g[2])a.V|=da,U=!0;
|
||||
else if("off"==g[2]&&(a.V&=~da,U=!1,1073741824==da)){for(var re=1E3<=a.M.length?a.M.length-1E3:0;re<a.M.length;)a.f(a.M[re++]);a.M=[]}}var wf=0,db="";for(T in N)if(!w||w==T){var xf=!!(a.V&N[T]);if(null===U||U==xf)db&&(db+=","),++wf%10||(db+="\n\t"),"key"==T&&(T="keys"),db+=T}void 0===w&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==U?U?"messages on: ":"messages off: ":"message categories:\n\t")+(db||"none"));Ed(a)}break;case "p":if("print"==g[0]){Ke(a,b.substr(5));
|
||||
break}var yf=g[0];if("?"==g[1])a.f("step commands:"),a.f("\tp\tstep over instruction"),a.f("\tpr\tstep over instruction with register update");else{var zf="pr"==yf?1:0;if(a.L)a.f("step in progress");else{var se=X(a.b.g);a.wa(se);a.L?(a.va(a.g,se,!0),Od(a)||(a.D&&cd(a.D),a.L=0)):Le(a,zf?"tr":"t")}}break;case "r":if("reset"==b){a.D&&a.D.reset();break}Rd(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var eb=+g[2];if(8==eb||10==eb||16==eb)a.ba=eb;else{a.f("invalid base: "+eb);break}}a.f("default base: "+
|
||||
a.ba);break;case "cs":var fb;void 0!==g[3]&&(fb=+g[3]);switch(g[2]){case "int":a.b.P=fb;break;case "start":a.b.na=fb;break;case "stop":a.b.Z=fb;break;default:a.f("unknown cs option");break a}void 0!==fb&&Vc(a.b);a.f("checksums "+(a.b.i.Ca?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&($c(a.b,+g[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.b.M.toFixed(2)+"Mhz")+" ("+a.b.N+"x)");break;default:if(g[1]){a.f("unknown option: "+g[1]);break}case "?":a.f("debugger options:"),
|
||||
a.f("\tbase #\t\tset default base to #"),a.f("\tcs int #\tset checksum cycle interval to #"),a.f("\tcs start #\tset checksum cycle start count to #"),a.f("\tcs stop #\tset checksum cycle stop count to #"),a.f("\tsp #\t\tset speed multiplier to #")}break;case "t":Le(a,g[0],g[1]);break;case "u":Sd(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Ie(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.f((Ab||"PDP10")+" version 1.34.0 ("+a.b.Za+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}f=!0;
|
||||
break;case "?":if(g[1]){Ke(a,b.substr(1));break}var Dc="commands:",Ec;for(Ec in Ne)Dc+="\n"+Xa(Ec,9)+Ne[Ec];jd(a)||(Dc+="\nnote: history disabled if no exec breakpoints");a.f(Dc);break;default:f=!0}f&&(a.f("unknown command: "+b),d=!1)}}catch(ue){a.f("debugger error: "+(ue.stack||ue.message)),d=!1}return d}function Yc(a,b,c){b=ud(a,b,c);for(var d in b)if(!Fe(a,b[+d]))return!1;return!0}
|
||||
var Ne={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ae=20,Be=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOV MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ UUO".split(" "),
|
||||
Md=0,Ld=["PC"],Oe={},we=(Oe[511]={88:64,89:63,90:58,91:27,92:28,93:25,94:29,95:26,160:56,161:48,162:46,163:84,164:57,165:49,166:47,168:21,169:22,170:69,171:70,172:88,173:85,174:83,176:91,177:23,178:24,179:92,180:86,181:87,182:89,183:90},Oe[508]={96:65,100:59,104:66,108:60,112:67,116:61,120:68,124:62,128:17,132:18,136:19,140:Ae,144:53,148:52,152:55,156:54,184:50,188:51,256:30,260:36,264:37,268:34,272:38,276:32,280:44,284:40,288:39,292:45,296:33,300:41,304:35,308:42,312:43,316:31,320:1,324:5,328:2,
|
||||
332:6,336:3,340:7,344:4,348:8,352:9,356:13,360:10,364:14,368:11,372:15,376:12,380:16},Oe[504]={192:71,200:72,208:73,216:74,224:75,232:76,240:77,248:78},Oe[393]={384:79,385:80,392:81,393:82},Oe[448]={0:93},Oe),xe=["","I","M","S"],ye=" L E LE A GE N G".split(" "),ze="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Nd=1E3,Qd=">> ";M(function(){for(var a=D(document,C,"debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Cd(d);B(d,c)}});
|
||||
function Pe(a,b,c){u.call(this,"Computer",a,33554432);this.i.T=!1;this.O=null;Qe(this,b);this.M=Tc(this,"autoPower",a,6);this.w=0;this.Z=+a.busWidth||+a.buswidth;this.K=this.G=this.L=null;this.I=this.U=!1;this.H=this.B=null;this.P=this.N=!1;this.aa=Tc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Re(this);if(this.b=z("CPU",this.id)){this.A=z("Debugger",this.id);this.C=new hc({id:this.Ka+".bus",busWidth:this.Z},this.b,this.A);var d,e=y(this.id);if((this.u=z("Panel",this.id))&&this.u.ja)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.Y=this.u.Y,d.f=this.u.f,d.ja=this.u.ja;this.f(Ab+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.sa&&d.sa(this,this.C,this.b,this.A);b=null;d=Tc(this,"resume",a);void 0!==d&&(1<d.length?b=this.G=d:this.g=parseInt(d,10));var f;if(a=Tc(this,"state")||(f=!0,a.state))this.L=b=a,f||(this.I=!0,this.g=Se),this.g&&(this.H=new O(this,"1.34.0"),Te(this.H)?b=null:
|
||||
delete this.H);!b&&this.g&&(b=Ue(this))&&(this.I=!0);if(b){var g=this;J(b,null,!0,function(a,b,c){c?(g.G=null,g.I=!1,g.Y("Unable to load machine state from server (error "+c+(b?": "+Ya(b):"")+")")):(g.K=b,g.U=!0);E(g)})}else E(this);this.F.power||(this.M=!0);!c&&this.M&&Ve(this,this.Ea)}else x("Unable to find CPU component")}r(Pe,u);function Qe(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.O=b}
|
||||
function Tc(a,b,c,d){var e=b.toLowerCase(),e=ob(b)||ob(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Ve(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!La(f)){La(f,function(){Ve(a,b,c)});return}}b.call(a,c)}
|
||||
function We(a,b){var c=new O(a,"1.34.0",Xe);if(Te(c)&&Ye(c)){var d=c.get(Ze),e=b?b.get(Ze):"unknown";d!=e&&(a.Y("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Pe.prototype;
|
||||
l.Ea=function(a){void 0===a&&(a=this.g||(this.K?$e:Se));if(!this.w){this.w++;var b=!1,c=!1;this.N=!1;var d=this.H||new O(this,"1.34.0");if(a==af)b=!0;else if(a>Se){if(Te(d,this.K)){this.B=new O(this,"1.34.0",bf);Te(this.B)&&(cf(this,d),a=df,ef(this.B));this.B.set(Ze,hb());ff(this.B);var e=this.g&&!this.I;if(a==$e||wa("Click OK to restore the previous "+Ab+" machine state, or CANCEL to reset the machine.")){if(c=Ye(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Te(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.Y("Error: "+g),"unable to verify user"==g&&(mb(gf,""),this.j=null)):this.f(f+": "+g),ef(d),Te(d)?(c=Ye(d),e=!0):c=!1))}e&&We(this,c?d:null)}else a==df&&d.clear()}else We(this);delete this.K;delete this.H}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.b&&(c=hf(this,g,d,b,c));b=[d,a,c];a!=af?Ve(this,this.fb,b):this.fb(b)}};
|
||||
function hf(a,b,c,d,e){if(!b.i.T){b.i.T=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.la(f,d)&&f&&(x("Unable to restore state for "+b.type),a.L&&!a.U?(c.clear(),a.g=Se,window&&window.location.reload()):a.N=!0,b.la(null),e=!1),!d&&b.Ya){var g=b.Ya.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.fb=function(a){var b=a[0],c=0>a[1];a=a[2];this.P=!0;this.i.T=!0;var d=this.F.power;d&&(d.textContent="Shutdown");this.b&&(hf(this,this.b,b,c,a),Q(this,-2),this.b.X());this.N&&(cf(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.w=0};
|
||||
function cf(a,b){if(wa("There may be a problem with your "+Ab+" machine.\n\nTo help us diagnose it, click OK to send this "+Ab+" machine state to http://www.pcjs.org.")){var c=a.aa;a=a.j||"";b=b.toString();var d={};d.app=Ab;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;J("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Me(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new O(a,"1.34.0"),g=new O(a,"1.34.0",Xe),h=hb();g.set(Ze,h);f.set(Ze,h);f.set(jf,"1.34.0");f.set(kf,window?window.location.href:null);f.set(lf,window?window.navigator.userAgent:"");a.b&&a.b.ca&&(c&&(b&&(a.b.i.X=a.b.i.J),a.b.R()),d=a.b.ca(b,c),"object"===typeof d&&f.set(a.b.id,d),c&&(a.b.i.T=!1,!1===d&&(e=null)));for(var h=y(a.id),k=0;k<h.length;k++){var m=h[k];m.i.T&&(m.ca&&(d=m.ca(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.i.T=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.j&&mf(a,a.j,f.toString()),ff(g)&&ff(f)||(e=null,d=h=!0)):a.g&&(d=!0,h=a.g==Af),d&&f.clear(h)):e=f.toString());c&&(a.i.T=!1,b=a.F.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
l.reset=function(){this.i.reset=!0;this.C&&this.C.reset&&(G(this,"Resetting "+this.C.type),this.C.reset());this.b&&this.b.reset&&(G(this,"Resetting "+this.b.type),this.b.reset());for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.C&&c!==this.b&&c.reset&&(G(this,"Resetting "+c.type),c.reset())}this.i.reset=!1;Q(this,-1)};l.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Q(this,-1)};
|
||||
l.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Q(this,-1)};
|
||||
function Q(a,b){if(a.b){var c=a.b,d=b||0,e=c.F.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.i.J?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.u&&(a=a.u,b=b||0,a.K)){c=a.b.i.J;d=!!(a.b.j&8);if(0>=b||60<=(a.I+=b)){e=a.b.g;if(a.F.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?Qa(e,void 0):H(e,void 0);a.F.PC.textContent!=e&&(a.F.PC.textContent=e)}a.I=0}-1>b?a.j=a.b.g:0<b&&c&&!d&&(a.j=a.b.ea);Qb(a,a.j);Kb(a,a.w)}}
|
||||
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.F[b]=c,c.onclick=function(){d.w||(d.i.T?He(d,!1,!0):Pe(d,d.Fa))},!0;case "reset":return this.F[b]=c,c.onclick=function(){if(d.i.T&&!d.w)if(d.g&&!d.G){var a=wa("Click OK to save changes to this "+Fb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");He(d,a,!0);!a&&d.L?window&&window.location.reload():d.Fa(Me)}else d.reset(),d.b&&!d.A&&d.b.X()},!0;case "save":if(Ta())c.parentNode.removeChild(c);else return this.F[b]=
|
||||
c,c.onclick=function(){var a=Le(d,!0);if(a){var b=!!(d.g&&!d.G||d.L),c=He(d,b);b?ff(d,a,c):d.Y("Resume disabled, machine state not saved")}},!0}return!1};function Le(a,b){var c=a.j;c||((c=lb(af),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=vf(a,c))||a.Y("The user ID is invalid.")):b&&a.Y("Browser local storage is not available"));return c}
|
||||
function vf(a,b){a.j=null;b=J(Ua()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(mb(af,b.data),a.j=b.data)}catch(d){x(d.message+" ("+c+")")}return a.j}function Oe(a){var b=null;a.j&&(b=Ua()+"/api/v1/user?req=load&user="+a.j+"&state="+wf(a,"1.34.0"));return b}
|
||||
function ff(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=wf(a,"1.34.0");d.data=c;b=J(Ua()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Y("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Y(c),mb(af,""),a.j=null)}}
|
||||
function ad(a,b){if(a.ja){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ja.focus();!b&&window&&window.scrollTo(c,d)}}var We="failsafe",Re="validate",Te="timestamp",cf="version",df="url",ef="browser",af="user",Ve=-1,Me=0,Ue=1,Ye=2,uf=3;M(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var g=c[e],f=A(g),f=new Je(f,d,!0);B(f,g);f.M&&Pe(f,f.Fa)}});
|
||||
tb.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.P&&!c.i.T&&c.Fa(Ve)}});tb.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.i.T&&He(c,!(!c.g||c.G),!0)}});function O(a,b,c){this.id=a.id;this.A="";this.b={};this.C=this.D=!1;this.key=wf(a,b,c);Ze(this,a.nb)}l=O.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function Ne(a,b){return b?(a.A=b,a.C=!0,a.D=!1,!0):a.C?!0:jb()&&(b=lb(a.key))?(a.A=b,a.C=!0):!1}function Se(a){var b=!0;if(!a.D)try{a.b=JSON.parse(a.A),a.D=!0}catch(c){x(c.message||c),b=!1}return b}function $e(a){var b=!0;if(jb()){var c=JSON.stringify(a.b);mb(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.A};
|
||||
function Ze(a,b){a.A="";a.b={};a.C=a.D=!1;b&&a.set("parms",b)}l.clear=function(a){Ze(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 wf(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 xf=0;
|
||||
function yf(a,b,c,d,e,g,f){g("Loading "+a+"...");J(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):zf(k,a,b,c,d,e,g,f)})}
|
||||
function zf(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(ta(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Af(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Af(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");J(e,null,!0,function(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);Af(a,b,c)}})}else c(a,null)}
|
||||
function Bf(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&D(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Va(a))}function f(a){g("Error: "+a);m&&(--xf||wb(!0));m=!1}var h,k,m=!0;xf++;ua[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=n:q.appendChild(document.createTextNode(n));p.appendChild(q)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?yf(d,null,a,null,!1,g,function(a,e){e?(ta(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--xf||wb(!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),--xf||
|
||||
wb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?yf(c,b,a,e,!0,g,n):zf(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(K){f(K.message)}return m}window.embedPDP10=function(a,b,c,d){wb(!1);return Bf("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){wb(!1);return Bf("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Aa[a]){for(var c=!0,d=Aa,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var p=b[n];if('"'==p||"'"==p)m&&p!=m?k+=p:(m?m=null:m=p,k&&(h.push(k),k=""));else{if(!m){if("\r"==p||"\n"==p)p=";";if(" "==p||"\t"==p||";"==p){k&&(h.push(k),k="");";"==p&&h.length&&(f.push(h),h=[]);continue}}k+=p}}k&&h.push(k);h.length&&f.push(h);d[e]=f;ya(a)||(c=!1)}return c};window.enableEvents=wb;window.sendEvent=yb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|
||||
function Q(a,b){if(a.b){var c=a.b,d=b||0,e=c.F.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.i.J?c.L.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.u&&(a=a.u,b=b||0,a.K)){c=a.b.i.J;d=!!(a.b.j&8);if(0>=b||60<=(a.I+=b)){e=a.b.g;if(a.F.PC){var f=a.A&&a.A.ba||8,e=e||0,e=8==f?Qa(e,void 0):H(e,void 0);a.F.PC.textContent!=e&&(a.F.PC.textContent=e)}a.I=0}-1>b?a.j=a.b.g:0<b&&c&&!d&&(a.j=a.b.ea);Sb(a,a.j);Mb(a,a.w)}}
|
||||
l.da=function(a,b,c){var d=this;switch(b){case "power":return this.F[b]=c,c.onclick=function(){d.w||(d.i.T?Me(d,!1,!0):Ve(d,d.Ea))},!0;case "reset":return this.F[b]=c,c.onclick=function(){if(d.i.T&&!d.w)if(d.g&&!d.G){var a=wa("Click OK to save changes to this "+Ab+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Me(d,a,!0);!a&&d.L?window&&window.location.reload():d.Ea(Se)}else d.reset(),d.b&&!d.A&&d.b.X()},!0;case "save":if(Ta())c.parentNode.removeChild(c);else return this.F[b]=
|
||||
c,c.onclick=function(){var a=Re(d,!0);if(a){var b=!!(d.g&&!d.G||d.L),c=Me(d,b);b?mf(d,a,c):d.Y("Resume disabled, machine state not saved")}},!0}return!1};function Re(a,b){var c=a.j;c||((c=lb(gf),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=Bf(a,c))||a.Y("The user ID is invalid.")):b&&a.Y("Browser local storage is not available"));return c}
|
||||
function Bf(a,b){a.j=null;b=J(Ua()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(mb(gf,b.data),a.j=b.data)}catch(d){x(d.message+" ("+c+")")}return a.j}function Ue(a){var b=null;a.j&&(b=Ua()+"/api/v1/user?req=load&user="+a.j+"&state="+Cf(a,"1.34.0"));return b}
|
||||
function mf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Cf(a,"1.34.0");d.data=c;b=J(Ua()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Y("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Y(c),mb(gf,""),a.j=null)}}
|
||||
function cd(a,b){if(a.ja){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.ja.focus();!b&&window&&window.scrollTo(c,d)}}var bf="failsafe",Xe="validate",Ze="timestamp",jf="version",kf="url",lf="browser",gf="user",af=-1,Se=0,$e=1,df=2,Af=3;M(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new Pe(g,d,!0);B(g,f);g.M&&Ve(g,g.Ea)}});
|
||||
tb.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.P&&!c.i.T&&c.Ea(af)}});tb.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.i.T&&Me(c,!(!c.g||c.G),!0)}});function O(a,b,c){this.id=a.id;this.A="";this.b={};this.C=this.D=!1;this.key=Cf(a,b,c);ef(this,a.nb)}l=O.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
||||
l.data=function(){return this.b};function Te(a,b){return b?(a.A=b,a.C=!0,a.D=!1,!0):a.C?!0:jb()&&(b=lb(a.key))?(a.A=b,a.C=!0):!1}function Ye(a){var b=!0;if(!a.D)try{a.b=JSON.parse(a.A),a.D=!0}catch(c){x(c.message||c),b=!1}return b}function ff(a){var b=!0;if(jb()){var c=JSON.stringify(a.b);mb(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.A};
|
||||
function ef(a,b){a.A="";a.b={};a.C=a.D=!1;b&&a.set("parms",b)}l.clear=function(a){ef(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function Cf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var Df=0;
|
||||
function Ef(a,b,c,d,e,f,g){f("Loading "+a+"...");J(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),g(k,null)):Ff(k,a,b,c,d,e,f,g)})}
|
||||
function Ff(a,b,c,d,e,f,g,h){function k(a,g){if(g)h(g,null);else{c&&(ta(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){g=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?f?Gf(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Gf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");J(e,null,!0,function(f,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(f=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)k=0>k.indexOf(m[1])?k.replace(">",m[0]+">"):k.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Gf(a,b,c)}})}else c(a,null)}
|
||||
function Hf(a,b,c,d,e){function f(a){if(void 0===k){var b=h&&D(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=Va(a))}function g(a){f("Error: "+a);m&&(--Df||wb(!0));m=!1}var h,k,m=!0;Df++;ua[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=n:q.appendChild(document.createTextNode(n));p.appendChild(q)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.0/components.xsl");n=function(e,k){k?Ef(d,null,a,null,!1,f,function(a,e){e?(ta(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Df||wb(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(k,document))?h.parentNode?(h.parentNode.replaceChild(e,h),--Df||
|
||||
wb(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?Ef(c,b,a,e,!0,f,n):Ff(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(K){g(K.message)}return m}window.embedPDP10=function(a,b,c,d){wb(!1);return Hf("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){wb(!1);return Hf("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return z(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Aa[a]){for(var c=!0,d=Aa,e=a,f=b.length,g=[],h=[],k="",m=null,n=0;n<f;n++){var p=b[n];if('"'==p||"'"==p)m&&p!=m?k+=p:(m?m=null:m=p,k&&(h.push(k),k=""));else{if(!m){if("\r"==p||"\n"==p)p=";";if(" "==p||"\t"==p||";"==p){k&&(h.push(k),k="");";"==p&&h.length&&(g.push(h),h=[]);continue}}k+=p}}k&&h.push(k);h.length&&g.push(h);d[e]=g;ya(a)||(c=!1)}return c};window.enableEvents=wb;window.sendEvent=yb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.0/pdp10-dbg.map
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function ea(){ba();var a=q.Symbol.iterator;a||(a=q.Symbol.iterator=q.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ga(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ga(a){ea();a={next:a};a[q.Symbol.iterator]=function(){return this};return a}
|
||||
function r(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ha(a,b){if(b){var c=q;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ha("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var ia=Math.pow(2,36),ja=-Math.pow(2,35),t={yb:0,Oa:1,Ab:2,Bb:3,Cb:4,Db:5,Eb:6,Fb:7,Fa:8,Gb:9,Pa:10,Hb:11,Ib:12,Qa:13,Jb:14,Kb:15,Lb:16,Mb:17,Nb:18,Ob:19,Pb:20,Qb:21,Rb:22,Sb:23,Tb:24,Ub:25,Vb: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,Ea:65,xb:66,zb:67,Wb:68,E:69,Xb:70,Yb:71,Zb:72,$b:73,ac:74,bc:75,cc:76,dc:77,ec:78,fc:79,gc:80,Q:81,
|
||||
hc:82,ic:83,jc:84,kc:85,lc:86,mc:87,nc:88,oc:89,Ua:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,pc:97,qc:98,rc:99,d:100,e:101,sc:102,tc:103,uc:104,vc:105,wc:106,k:107,xc:108,yc:109,n:110,zc:111,p:112,q:113,r:114,Ac:115,t:116,Bc:117,Cc:118,Dc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Ra:127};
|
||||
function u(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ia=b.comment;this.Ta=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.ia=this.id:(this.ja=this.id.substr(0,a),this.ia=this.id.substr(a+1));this.b={ready:!1,na:!1,Ba:!1,w:!1,error:!1};this.qa=null;this.b.error=!1;this.o=this.c=this.j=this.m=this.Y=null;v.push(this)}function ka(a,b,c){la[a]&&b&&(la[a][b]=c)}function w(){return Date.now()||+new Date}
|
||||
var ia=Math.pow(2,36),ja=-Math.pow(2,35),t={wb:0,Ma:1,yb:2,zb:3,Ab:4,Bb:5,Cb:6,Db:7,Ea:8,Eb:9,Na:10,Fb:11,Gb:12,Oa:13,Hb:14,Ib:15,Jb:16,Kb:17,Lb:18,Mb:19,Nb:20,Ob:21,Pb:22,Qb:23,Rb:24,Sb:25,Tb:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Da:65,vb:66,xb:67,Ub:68,E:69,Vb:70,Wb:71,Xb:72,Yb:73,Zb:74,$b:75,ac:76,bc:77,cc:78,dc:79,ec:80,Q:81,
|
||||
fc:82,gc:83,hc:84,ic:85,jc:86,kc:87,lc:88,mc:89,Sa:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,nc:97,oc:98,pc:99,d:100,e:101,qc:102,rc:103,sc:104,tc:105,uc:106,k:107,vc:108,wc:109,n:110,xc:111,p:112,q:113,r:114,yc:115,t:116,zc:117,Ac:118,Bc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Pa:127};
|
||||
function u(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ha=b.comment;this.Ra=b;this.exports={};this.i=this.bindings={};a=this.id.indexOf(".");0>a?this.ia=this.id:(this.ja=this.id.substr(0,a),this.ia=this.id.substr(a+1));this.b={ready:!1,na:!1,Ba:!1,w:!1,error:!1};this.qa=null;this.b.error=!1;this.o=this.c=this.l=this.m=this.Y=null;v.push(this)}function ka(a,b,c){la[a]&&b&&(la[a][b]=c)}function w(){return Date.now()||+new Date}
|
||||
function x(a){window&&window.alert(a)}function ma(a){var b=!1;window&&(b=window.confirm(a));return b}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<v.length;b++){var d=v[b];a&&d.id.indexOf(a)||c.push(d)}return c}function na(a){if(void 0!==a){var b;for(b=0;b<v.length;b++)if(v[b].id===a)return v[b]}return null}
|
||||
function z(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<v.length;d++)if(c)c==v[d]&&(c=null);else if(!(a!=v[d].type||b&&v[d].id.indexOf(b)))return v[d]}return null}function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
|
||||
function B(a,b){var c=C;b=D(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),m=0;m<l.length;m++)switch(h=l[m],h){case c+"-binding":(h=A(g))&&h.binding&&a.S(h.type,h.binding,g,h.value),m=l.length}}}}
|
||||
|
|
@ -58,79 +58,79 @@ function Ia(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return
|
|||
function Ka(a){if(!La){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}La=c}return La[a]}function Ma(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function I(a){J.init.push(a)}
|
||||
function Na(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){x(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function K(a){!Oa&&a?(Oa=!0,Pa&&Qa("init"),Ra&&Qa("show")):Oa=a}function Qa(a){J[a]&&Na(J[a])}var La=null,J={init:[],show:[],exit:[]},Pa=!1,Ra=!1,Oa=!0,Ga=null;Ma("onload",function(){Pa=!0;Na(J.init)});Ma("onpageshow",function(){Ra=!0;Na(J.show)});Ma(Ja("Opera")||Ja("iOS")?"onunload":"onbeforeunload",function(){Na(J.exit)});
|
||||
var C="pdp10",L="PDPjs",Sa=Math.pow(2,18),Ta=Math.pow(2,36),C="pdp10",L="PDPjs";
|
||||
function Ua(a,b){u.call(this,"Panel",a);this.A=this.B=0;this.O=b;this.f=this.v=this.g=this.h=0;this.F=this.H=-1;this.K=this.L=this.s=!1;this.M=Va;this.l={};this.a={START:[1,1,!0,!1,this.eb],STEP:[1,1,!1,!1,this.fb],ENABLE:[1,1,!1,!1,this.Za],CONT:[1,1,!0,!1,this.Xa],DEP:[0,0,!0,!1,this.Ya],EXAM:[1,1,!0,!1,this.$a],LOAD:[1,1,!0,!1,this.bb],TEST:[0,0,!0,!1,this.ab]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.cb,a];this.o=this.c=this.j=this.m=null;this.exports={hold:this.Wa,toggle:this.qb,reset:this.mb,
|
||||
set:this.pb};E(this)}r(Ua,u);k=Ua.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
|
||||
k.S=function(a,b,c,d){if(this.m&&this.m.S(a,b,c,d)||this.c&&this.c.S(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.B++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.l[b]=d?1:0,this.B++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Wa(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){O(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wa(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){O(a,b)}}(this,b),!0):u.prototype.S.call(this,a,b,c,d)}};k.U=function(a,b,c,d){this.m=a;this.j=b;this.c=c;this.o=d;Xa(this);Ya(this)};k.T=function(a,b){if(!b)if(this.O&&Za(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.N=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.f,this.h,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])Q(this,this.f=a[0]),N(this,this.h=a[1]),$a(this,a[2]);return!0};k.mb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}Ya(this);return!0};function ab(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Xa(a,b){for(var c in a.l)ab(a,c,null!=b?b:a.l[c])}function bb(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ya(a){for(var b in a.a)bb(a,b,a.a[b][1])}
|
||||
k.Wa=function(a,b,c){if(Wa(this,b)){if(c){var d=this;setTimeout(function(){O(d,b);a&&a()},+c);return!1}O(this,b)}return!0};
|
||||
k.pb=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):
|
||||
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return $a(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,bb(this,a,c[1]),!0):!1};k.qb=function(a){return Wa(this,a)?(O(this,a),!0):!1};function Wa(a,b){var c=a.a[b];return c?(bb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=cb&&(a.K=b==db,a.L=b==eb),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(bb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.eb=function(a){a||this.c.b.u||(this.c.f=this.f%Sa,this.a[fb]&&this.a[fb][1]&&R(this.c))};k.fb=function(){};k.Za=function(a){a||S(this.c)};k.Xa=function(a){if(!a&&!this.c.b.u)if(this.a[fb]&&this.a[fb][1])R(this.c);else{a=this.o;var b;if(b=a)a.b.na&&(a.b.Ba=!0),b=!a.b.na;if(b)va(a,!0),a.f(0,null),va(a,!1);else try{var c=this.c.va(1);0<c&&(gb(this.c,c),hb(this.c,c,!0),ib(this.c,c))}catch(d){"number"!=typeof d&&(c=this.c,a=d.stack||d.message,c.b.error=!0,c.C(a))}this.stop();this.m&&T(this.m)}};
|
||||
k.Ya=function(a){a&&!this.c.b.u&&(this.K&&jb(this),a=N(this,this.h=this.g),this.M==Va?kb(this.j,this.f,a):this.c.ta(this.f,a))};k.$a=function(a){if(!a&&!this.c.b.u){this.L&&jb(this);if(this.M==Va){a=this.j;var b=this.f;a=a.a[(b&a.g)>>>a.f].Ca(b&16383,b)}else a=this.c.ba(this.f);N(this,this.h=a)}};k.bb=function(a){a||this.c.b.u||Q(this,this.g)};k.ab=function(a){a?(this.s=!0,Xa(this,!0)):(this.s=!1,Xa(this),$a(this,0))};k.cb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function jb(a){var b=1,c=a.j.g;a.a[cb]&&a.a[cb][1]||(b=-b);Q(a,a.f&~c|a.f+b&c)}function Q(a,b){a.f=b&a.j.g;if(a.F!==a.f){a.F=a.f;b=a.F;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.l[e]=f;d.s||ab(d,e,f)}}}function N(a,b){a.v=b%Ta;if(a.H!==a.v){a.H=a.v;b=a.H;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.l[e]=f;d.s||ab(d,e,f)}}return a.v}function $a(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;Ya(a);return!0}k.stop=function(){Q(this,this.c.f)};
|
||||
function Za(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=na(d.id);e||(e=new Ua(d,!0));B(e,c)}}var Va=7,db="DEP",fb="ENABLE",eb="EXAM",cb="STEP";I(Za);function lb(a,b,c){u.call(this,"Bus",a);this.c=b;this.o=c;this.s=+a.busWidth||18;this.l=1<<this.s;this.g=this.l-1;this.f=Math.log2(16384);this.h=this.l/16384|0;this.a=[];a=new U;mb(a);this.a=Array(this.h);for(b=0;b<this.h;b++)this.a[b]=a;E(this)}r(lb,u);k=lb.prototype;k.reset=function(){};
|
||||
function Ua(a,b){u.call(this,"Panel",a);this.A=this.B=0;this.O=b;this.f=this.u=this.g=this.h=0;this.F=this.H=-1;this.K=this.L=this.s=!1;this.M=Va;this.j={};this.a={START:[1,1,!0,!1,this.bb],STEP:[1,1,!1,!1,this.cb],ENABLE:[1,1,!1,!1,this.Xa],CONT:[1,1,!0,!1,this.Va],DEP:[0,0,!0,!1,this.Wa],EXAM:[1,1,!0,!1,this.Ya],LOAD:[1,1,!0,!1,this.$a],TEST:[0,0,!0,!1,this.Za]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.ab,a];this.o=this.c=this.l=this.m=null;this.exports={hold:this.Ua,toggle:this.ob,reset:this.kb,
|
||||
set:this.nb};E(this)}r(Ua,u);k=Ua.prototype;k.reset=function(a){this.stop();a&&N(this,this.h=0)};
|
||||
k.S=function(a,b,c,d){if(this.m&&this.m.S(a,b,c,d)||this.c&&this.c.S(a,b,c,d))return!0;switch(b){case "PC":return this.i[b]=c,this.B++,!0;default:return"led"==a||"rled"==a?(this.i[b]=c,this.j[b]=d?1:0,this.B++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.i[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Wa(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){O(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wa(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){O(a,b)}}(this,b),!0):u.prototype.S.call(this,a,b,c,d)}};k.U=function(a,b,c,d){this.m=a;this.l=b;this.c=c;this.o=d;Xa(this);Ya(this)};k.T=function(a,b){if(!b)if(this.O&&Za(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.N=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,[this.f,this.h,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])Q(this,this.f=a[0]),N(this,this.h=a[1]),$a(this,a[2]);return!0};k.kb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}Ya(this);return!0};function ab(a,b,c){if(a=a.i[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Xa(a,b){for(var c in a.j)ab(a,c,null!=b?b:a.j[c])}function bb(a,b,c){if(a=a.i[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function Ya(a){for(var b in a.a)bb(a,b,a.a[b][1])}
|
||||
k.Ua=function(a,b,c){if(Wa(this,b)){if(c){var d=this;setTimeout(function(){O(d,b);a&&a()},+c);return!1}O(this,b)}return!0};
|
||||
k.nb=function(a,b){if("SR"==a){a=b;b=8;var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):
|
||||
2==e&&d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f)}return $a(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,bb(this,a,c[1]),!0):!1};k.ob=function(a){return Wa(this,a)?(O(this,a),!0):!1};function Wa(a,b){var c=a.a[b];return c?(bb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=cb&&(a.K=b==db,a.L=b==eb),!0):!1}function O(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(bb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.bb=function(a){a||this.c.b.v||(this.c.f=this.f%Sa,this.a[fb]&&this.a[fb][1]&&R(this.c))};k.cb=function(){};k.Xa=function(a){a||S(this.c)};k.Va=function(a){if(!a&&!this.c.b.v)if(this.a[fb]&&this.a[fb][1])R(this.c);else{a=this.o;var b;if(b=a)a.b.na&&(a.b.Ba=!0),b=!a.b.na;if(b)va(a,!0),a.f(0,null),va(a,!1);else try{var c=this.c.ua(1);0<c&&(gb(this.c,c),hb(this.c,c,!0),ib(this.c,c))}catch(d){"number"!=typeof d&&(c=this.c,a=d.stack||d.message,c.b.error=!0,c.C(a))}this.stop();this.m&&T(this.m)}};
|
||||
k.Wa=function(a){a&&!this.c.b.v&&(this.K&&jb(this),a=N(this,this.h=this.g),this.M==Va?kb(this.l,this.f,a):this.c.ta(this.f,a))};k.Ya=function(a){if(!a&&!this.c.b.v){this.L&&jb(this);if(this.M==Va){a=this.l;var b=this.f,c=a.a[(b&a.g)>>>a.f];a.h++;b=c.a(b&16383,b);a.h--;a=b}else a=this.c.ba(this.f);N(this,this.h=a)}};k.$a=function(a){a||this.c.b.v||Q(this,this.g)};k.Za=function(a){a?(this.s=!0,Xa(this,!0)):(this.s=!1,Xa(this),$a(this,0))};k.ab=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function jb(a){var b=1,c=a.l.g;a.a[cb]&&a.a[cb][1]||(b=-b);Q(a,a.f&~c|a.f+b&c)}function Q(a,b){a.f=b&a.l.g;if(a.F!==a.f){a.F=a.f;b=a.F;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.j[e]=f;d.s||ab(d,e,f)}}}function N(a,b){a.u=b%Ta;if(a.H!==a.u){a.H=a.u;b=a.H;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.j[e]=f;d.s||ab(d,e,f)}}return a.u}function $a(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;Ya(a);return!0}k.stop=function(){Q(this,this.c.f)};
|
||||
function Za(){for(var a=D(document,C,"panel"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=na(d.id);e||(e=new Ua(d,!0));B(e,c)}}var Va=7,db="DEP",fb="ENABLE",eb="EXAM",cb="STEP";I(Za);function lb(a,b,c){u.call(this,"Bus",a);this.c=b;this.o=c;this.u=+a.busWidth||18;this.s=1<<this.u;this.g=this.s-1;this.f=Math.log2(16384);this.j=this.s/16384|0;this.h=0;this.a=[];a=new U(this);mb(a);this.a=Array(this.j);for(b=0;b<this.j;b++)this.a[b]=a;E(this)}r(lb,u);k=lb.prototype;k.reset=function(){};
|
||||
k.T=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.N=function(a){return a?this.save():!0};k.save=function(){var a=new P(this);a.set(0,nb(this));return a.data()};k.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],l=d[g++];h--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){x("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function ob(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,m=16384-(e-l);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.X)return h.sa+=h.X-e,h.X=e,!0;if(e>=h.X+h.sa){m=h.size-(e-l);m>f&&(m=f);h.sa=e-h.X+m;e=l+16384;f-=m;g++;continue}}return pb(qb,e,f)}e=new U(0,e,m,16384,d);mb(e,h);a.a[g++]=e;e=l+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+rb[d]+" at "+wa(b)),!0):pb(sb,b,c)}function kb(a,b,c){a.a[(b&a.g)>>>a.f].ua(c,b&16383,b)}
|
||||
function nb(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.pa||e.Va){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function pb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var qb=1,sb=2;function tb(a){u.call(this,"Device",a)}r(tb,u);k=tb.prototype;k.U=function(a,b,c,d){this.j=b;this.m=a;this.c=c;this.o=d;E(this)};
|
||||
function ob(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,m=16384-(e-l);m>f&&(m=f);if(h&&h.size){if(h.type==d){if(e+f<=h.X)return h.sa+=h.X-e,h.X=e,!0;if(e>=h.X+h.sa){m=h.size-(e-l);m>f&&(m=f);h.sa=e-h.X+m;e=l+16384;f-=m;g++;continue}}return pb(qb,e,f)}e=new U(a,e,m,16384,d);mb(e,h);a.a[g++]=e;e=l+16384;f-=m}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+rb[d]+" at "+wa(b)),!0):pb(sb,b,c)}function kb(a,b,c){var d=a.a[(b&a.g)>>>a.f];a.h++;d.m(c,b&16383,b);a.h--}
|
||||
function nb(a){for(var b=0,c=[],d=0;d<a.j;d++){var e=a.a[d];if(e.pa||e.Ta){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function pb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var qb=1,sb=2;function tb(a){u.call(this,"Device",a)}r(tb,u);k=tb.prototype;k.U=function(a,b,c,d){this.l=b;this.m=a;this.c=c;this.o=d;E(this)};
|
||||
k.T=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.N=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new tb(c),B(c,d)}}});
|
||||
function U(a,b,c,d,e){this.id=ub+=2;this.X=b;this.sa=c;this.size=d||0;this.type=e||vb;this.m=e==wb;this.ba=this.Ca=this.o=this.aa;this.ta=this.ua=this.a=this.da;this.i=this.j=0;mb(this);this.pa=this.Va=!1;if(this.size){a=this.c=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;xb(this,yb)}else xb(this)}k=U.prototype;k.save=function(){return this.c};k.restore=function(a){return a&&this.size==a.length?(this.c=a,this.pa=!0):!1};function xb(a,b){b||(b=zb);Ab(a,b,void 0);Bb(a,b,void 0)}
|
||||
function Ab(a,b,c){c&&a.i||(a.ba=b[2]||a.aa);if(c||void 0===c)a.o=b[0]||a.aa,a.Ca=b[2]||a.aa}function Bb(a,b,c){c&&a.j||(a.ta=!a.m&&b[3]||a.da);if(c||void 0===c)a.a=b[1]||a.da,a.ua=b[3]||a.da}function mb(a,b){a.i=a.j=0;b&&((a.i=b.i)&&Ab(a,Cb,!1),(a.j=b.j)&&Bb(a,Cb,!1))}k.aa=function(){return-1};k.da=function(){};k.hb=function(a,b,c,d){a=this.c[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};k.kb=function(a){return this.c[a]};
|
||||
k.tb=function(a,b,c,d,e){c=this.c[b];var f=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*f+d%f;this.c[b]!=c&&(this.c[b]=c,this.pa=!0)};k.vb=function(a,b){this.c[b]=a;this.pa=!0};k.gb=function(a,b,c,d){return this.o(a,b,c,d)};k.ib=function(a,b){return this.Ca(a,b)};k.sb=function(a,b,c,d,e){this.m||this.a(a,b,c,d,e)};k.ub=function(a,b,c){this.m||this.ua(a,b,c)};
|
||||
var vb=0,wb=2,rb=["NONE","RAM","ROM"],ub=0,zb=[],yb=[U.prototype.hb,U.prototype.tb,U.prototype.kb,U.prototype.vb],Cb=[U.prototype.gb,U.prototype.sb,U.prototype.ib,U.prototype.ub];
|
||||
function V(a,b){u.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.wa=0;this.za=b;this.L=c;this.xa=Math.round(this.za/1E4)/100;this.H=this.xa*this.L;this.ya=this.ga=this.M=this.ma=0;this.b.u=this.b.Da=!1;this.b.G=a.autoStart;"string"==typeof this.b.G&&(this.b.G="true"==this.b.G);this.b.oa=!1;this.ka=this.K=0;this.la=+a.csStart;this.ea=+a.csInterval;this.fa=+a.csStop;this.l=[];this.Ja=this.nb.bind(this);this.B=this.h=this.v=this.A=this.g=this.ca=this.s=this.O=this.Aa=this.F=0;this.ha=
|
||||
null;E(this)}r(V,u);k=V.prototype;k.U=function(a,b,c,d){this.m=a;this.j=b;this.o=d;this.ha=a.g;for(a=0;a<Db.length;a++)(b=this.i[Db[a]])&&this.m.S(null,Db[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.T=function(a,b){var c=W(this.m,"autoStart");null!=c?this.b.G="true"==c?!0:"false"==c?!1:!!c:null==this.b.G&&(this.b.G=void 0===this.i.run);if(!b){if(a){Eb(this);if(!this.restore(a))return!1;Fb(this)}else this.reset();this.status("No debugger detected");this.b.G||this.J("CPU will not be auto-started "+(this.ha?"(click Run to start)":"(type 'go' to start)"))}return!0};k.N=function(a){return a?this.save():!0};k.G=function(){return this.b.u?!0:this.b.G?(R(this),!0):!1};k.Ma=function(){return 0};
|
||||
function Fb(a){void 0===a.la&&(a.la=0);void 0===a.ea&&(a.ea=-1);void 0===a.fa&&(a.fa=-1);a.b.oa=0<=a.la&&0<a.ea;a.b.oa&&(a.ka=0,a.K=a.la-a.B)}function ib(a,b){if(a.b.oa){var c=!1;a.ka=a.ka+a.Ma()|0;a.K-=b;0>=a.K&&(a.K+=a.ea,c=!0);0<=a.fa&&a.fa<=X(a)&&(a.ea=a.fa=-1,Fb(a),S(a),c=!0);c&&a.J(X(a)+" cycles: checksum="+F(a.ka))}}
|
||||
k.S=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.m)if(a=d.m,a.b.w)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.w);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.qa?" (waiting for notification)":""))+".");a=!1}a&&(d.b.u?S(d):R(d))},!0;case "speed":return this.i[b]=
|
||||
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Gb(d,d.L<<1,!0)},c.textContent=this.H.toFixed(2)+"Mhz",!0}return!1};function hb(a,b,c){a.B+=b;c&&(a.v=a.A=0)}function Hb(a,b){var c=1;b&&1<a.L&&a.F&&(c=a.F/a.xa);a.ya=Math.round(1E3/Ib);a.ga=Math.floor(a.za/Ib*c);b||(a.M=a.ga);a.ma=0}function X(a){return a.B+a.h+a.v-a.A}function Eb(a){a.F=0;a.Aa=0;a.B=a.h=a.v=a.A=0;Fb(a);Gb(a,1)}
|
||||
function Gb(a,b,c){if(void 0!==b){.8>a.F/a.H&&(b=1);a.L=b;b=a.xa*a.L;if(a.H!=b){a.H=b;b=a.H.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.J("target speed: "+b)}c&&a.m&&(c=a.m,c.Y&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.Y.focus(),window&&window.scrollTo(b,d)))}hb(a,a.h);a.h=0;a.g=w();a.s=0;Hb(a)}function Jb(a){for(var b=[],c=0;c<a.l.length;c++)b.push(a.l[c][0]);return b}
|
||||
function gb(a,b){for(var c=a.l.length-1;0<=c;c--){var d=a.l[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Kb(a,b){var c=a.v-=a.A;a.A=0;b&&(a.v=0);return c}
|
||||
k.nb=function(){if(this.b.u){this.ma>=this.za&&Hb(this,!0);this.O=0;this.ca=w();if(this.s){var a=this.ca-this.s;a>this.ya&&(this.g+=a,this.g>this.ca&&(this.g=this.ca))}try{do{for(var b,c=this.b.oa?1:this.ga,d=this.l.length-1;0<=d;d--){var e=this.l[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.va(b)}catch(f){if("number"!=typeof f)throw f;}b=Kb(this,!0);this.O+=b;this.h+=b;ib(this,b);gb(this,b);this.M-=b;if(0>=this.M){this.M+=this.ga;++this.Aa>=Lb&&(this.m&&T(this.m,void 0),this.Aa=0);break}}while(this.b.u)}catch(f){S(this);
|
||||
this.m&&this.m.stop(w(),X(this));a=f.stack||f.message;this.b.error=!0;this.C(a);return}if(this.b.u){a=setTimeout;b=this.Ja;this.s=w();c=this.ya;this.O&&(c=Math.round(c*this.O/this.ga));c-=this.s-this.ca;if(d=this.s-this.g)this.F=Math.round(this.h/(10*d))/100,864E5<=d&&(this.B=0,Gb(this));if(0>c||this.F<this.H)-1E3>c&&(this.g-=c),c=0;this.ma+=this.O;this.s+=c;a(b,c)}}};
|
||||
function R(a){var b;a.b.error?(a.J(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.u)a.J(a.toString()+" busy");else{Gb(a);a.b.u=!0;a.b.Da=!0;if(b=a.i.run)b.textContent="Halt";a.m&&a.m.start(a.g,X(a));a.o||a.status("Started");setTimeout(a.Ja,0)}}k.va=function(){return 0};function S(a){var b=!1;if(a.b.u){Kb(a);hb(a,a.h);a.h=0;a.b.u=!1;if(b=a.i.run)b.textContent="Run";a.m&&a.m.stop(w(),X(a));b=!0;a.o||a.status("Stopped")}a.b.complete=void 0;return b}var Ib=30,Lb=15,Db=["power","reset"];
|
||||
function Mb(a){var b=+a.model||1001;V.call(this,a,1E6);this.Sa=b;this.Ha=+a.addrReset||0;this.W=null;this.Ga=[];this.b.complete=!1}r(Mb,V);k=Mb.prototype;k.reset=function(){this.status("Model "+this.Sa);this.b.u&&S(this);this.V=this.f=this.Ka=this.Ha;this.a=0;this.ba=this.jb;this.ta=this.wb;this.W=null;Eb(this);this.b.error=!1;V.prototype.reset.call(this)};k.Ma=function(){return 0};
|
||||
k.save=function(){var a=new P(this);a.set(0,[this.f,this.Ka,this.V,this.a]);a.set(1,[]);a.set(2,[this.B,this.L,this.b.G]);a.set(3,Nb(this));a.set(4,Jb(this));return a.data()};
|
||||
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.f=b.next().value;this.Ka=b.next().value;this.V=b.next().value;this.a=b.next().value;b=a[2];this.B=b[0];Gb(this,b[1]);this.b.G=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ga.length;d++){var e=this.Ga[d];if(e.rb===b[c]){d=e;break a}}d=null}d&&(d.next=this.W,this.W=d)}a=a[4];for(b=0;b<this.l.length&&b<a.length;b++)this.l[b][0]=a[b];return!0};
|
||||
function Nb(a){var b=[];for(a=a.W;a;)b.push(a.rb),a=a.next;return b}k.jb=function(a){var b=this.j;a=this.V=a;return b.a[(a&b.g)>>>b.f].ba(a&16383,a)};k.wb=function(a,b){var c=this.j;a=this.V=a;c.a[(a&c.g)>>>c.f].ta(b,a&16383,a)};
|
||||
k.va=function(a){this.b.complete=!0;var b=a?this.b.Da?0:1:-1;this.b.Da=!1;this.v=this.A=a;this.a=this.a&-5|0;do{if(a=this.a)if(a=this.a&11)this.a&2?this.W||(this.a&=-3):this.a&1&&this.a++,a=!1;if(a){if(this.a&4&&this.o.h(this.f,b)){S(this);break}if(0>b)break}this.a&=15;a=this.f;this.ba(a);this.f=(a+1)%Sa}while(0<this.A);return this.b.complete?this.v-this.A:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Mb(d);B(d,c)}});
|
||||
function Ob(a){u.call(this,"ROM",a);this.I=this.a=null;this.l=+a.addr;this.g=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.h=a.file;this.s=xa(this.h);if(this.h){a=this.h;var b=ya(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.C("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(ka(c.ja,a,b),(a=Ea(a,b))?(c.a=a.D,c.I=a.I):c.h=null);Pb(c)})}}r(Ob,u);
|
||||
Ob.prototype.U=function(a,b,c,d){this.j=b;this.c=c;this.o=d;Pb(this)};Ob.prototype.T=function(){this.I&&(this.o&&this.o.a(this.id,this.l,this.g,this.I),delete this.I);return!0};Ob.prototype.N=function(){return!0};
|
||||
function Pb(a){if(!ua(a)){if(a.h){if(!a.a||!a.j)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.C(b)}else{b=a.l;if(ob(a.j,b,a.g,wb)){var c;for(c=0;c<a.a.length;c++)kb(a.j,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.j,g=d.g,h=[],l=d.l>>>f.f;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.j;
|
||||
function U(a,b,c,d,e){this.h=a;this.id=ub+=2;this.X=b;this.sa=c;this.size=d||0;this.type=e||vb;this.o=e==wb;this.ba=this.a=this.f=this.aa;this.ta=this.m=this.g=this.da;this.i=this.l=0;mb(this);this.pa=this.Ta=!1;if(this.size){a=this.c=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;xb(this,yb)}else xb(this)}k=U.prototype;k.save=function(){return this.c};k.restore=function(a){return a&&this.size==a.length?(this.c=a,this.pa=!0):!1};function xb(a,b){b||(b=zb);Ab(a,b,void 0);Bb(a,b,void 0)}
|
||||
function Ab(a,b,c){c&&a.i||(a.ba=b[2]||a.aa);if(c||void 0===c)a.f=b[0]||a.aa,a.a=b[2]||a.aa}function Bb(a,b,c){c&&a.l||(a.ta=!a.o&&b[3]||a.da);if(c||void 0===c)a.g=b[1]||a.da,a.m=b[3]||a.da}function mb(a,b){a.i=a.l=0;b&&((a.i=b.i)&&Ab(a,Cb,!1),(a.l=b.l)&&Bb(a,Cb,!1))}k.aa=function(){var a=this.h;a.h||S(a.c);return-1};k.da=function(){};k.fb=function(a,b,c,d){a=this.c[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};k.ib=function(a){return this.c[a]};
|
||||
k.rb=function(a,b,c,d,e){c=this.c[b];var f=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*f+d%f;this.c[b]!=c&&(this.c[b]=c,this.pa=!0)};k.tb=function(a,b){this.c[b]=a;this.pa=!0};k.eb=function(a,b,c,d){return this.f(a,b,c,d)};k.gb=function(a,b){return this.a(a,b)};k.qb=function(a,b,c,d,e){this.o||this.g(a,b,c,d,e)};k.sb=function(a,b,c){this.o||this.m(a,b,c)};
|
||||
var vb=0,wb=2,rb=["NONE","RAM","ROM"],ub=0,zb=[],yb=[U.prototype.fb,U.prototype.rb,U.prototype.ib,U.prototype.tb],Cb=[U.prototype.eb,U.prototype.qb,U.prototype.gb,U.prototype.sb];
|
||||
function V(a,b){u.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.va=0;this.ya=b;this.L=c;this.wa=Math.round(this.ya/1E4)/100;this.H=this.wa*this.L;this.xa=this.ga=this.M=this.ma=0;this.b.v=this.b.Ca=!1;this.b.G=a.autoStart;"string"==typeof this.b.G&&(this.b.G="true"==this.b.G);this.b.oa=!1;this.ka=this.K=0;this.la=+a.csStart;this.ea=+a.csInterval;this.fa=+a.csStop;this.j=[];this.Ia=this.lb.bind(this);this.B=this.h=this.u=this.A=this.g=this.ca=this.s=this.O=this.za=this.F=0;this.ha=
|
||||
null;E(this)}r(V,u);k=V.prototype;k.U=function(a,b,c,d){this.m=a;this.l=b;this.o=d;this.ha=a.g;for(a=0;a<Db.length;a++)(b=this.i[Db[a]])&&this.m.S(null,Db[a],b);E(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.T=function(a,b){var c=W(this.m,"autoStart");null!=c?this.b.G="true"==c?!0:"false"==c?!1:!!c:null==this.b.G&&(this.b.G=void 0===this.i.run);if(!b){if(a){Eb(this);if(!this.restore(a))return!1;Fb(this)}else this.reset();this.status("No debugger detected");this.b.G||this.J("CPU will not be auto-started "+(this.ha?"(click Run to start)":"(type 'go' to start)"))}return!0};k.N=function(a){return a?this.save():!0};k.G=function(){return this.b.v?!0:this.b.G?(R(this),!0):!1};k.Ka=function(){return 0};
|
||||
function Fb(a){void 0===a.la&&(a.la=0);void 0===a.ea&&(a.ea=-1);void 0===a.fa&&(a.fa=-1);a.b.oa=0<=a.la&&0<a.ea;a.b.oa&&(a.ka=0,a.K=a.la-a.B)}function ib(a,b){if(a.b.oa){var c=!1;a.ka=a.ka+a.Ka()|0;a.K-=b;0>=a.K&&(a.K+=a.ea,c=!0);0<=a.fa&&a.fa<=X(a)&&(a.ea=a.fa=-1,Fb(a),S(a),c=!0);c&&a.J(X(a)+" cycles: checksum="+F(a.ka))}}
|
||||
k.S=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.i[b]=c,!0;case "run":return this.i[b]=c,c.onclick=function(){var a;if(a=d.m)if(a=d.m,a.b.w)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.b.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.b.w);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.b.ready?"powered yet":"ready yet"+(b.qa?" (waiting for notification)":""))+".");a=!1}a&&(d.b.v?S(d):R(d))},!0;case "speed":return this.i[b]=
|
||||
c,!0;case "setSpeed":return this.i[b]=c,c.onclick=function(){Gb(d,d.L<<1,!0)},c.textContent=this.H.toFixed(2)+"Mhz",!0}return!1};function hb(a,b,c){a.B+=b;c&&(a.u=a.A=0)}function Hb(a,b){var c=1;b&&1<a.L&&a.F&&(c=a.F/a.wa);a.xa=Math.round(1E3/Ib);a.ga=Math.floor(a.ya/Ib*c);b||(a.M=a.ga);a.ma=0}function X(a){return a.B+a.h+a.u-a.A}function Eb(a){a.F=0;a.za=0;a.B=a.h=a.u=a.A=0;Fb(a);Gb(a,1)}
|
||||
function Gb(a,b,c){if(void 0!==b){.8>a.F/a.H&&(b=1);a.L=b;b=a.wa*a.L;if(a.H!=b){a.H=b;b=a.H.toFixed(2)+"Mhz";var d=a.i.setSpeed;d&&(d.textContent=b);a.J("target speed: "+b)}c&&a.m&&(c=a.m,c.Y&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.Y.focus(),window&&window.scrollTo(b,d)))}hb(a,a.h);a.h=0;a.g=w();a.s=0;Hb(a)}function Jb(a){for(var b=[],c=0;c<a.j.length;c++)b.push(a.j[c][0]);return b}
|
||||
function gb(a,b){for(var c=a.j.length-1;0<=c;c--){var d=a.j[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Kb(a,b){var c=a.u-=a.A;a.A=0;b&&(a.u=0);return c}
|
||||
k.lb=function(){if(this.b.v){this.ma>=this.ya&&Hb(this,!0);this.O=0;this.ca=w();if(this.s){var a=this.ca-this.s;a>this.xa&&(this.g+=a,this.g>this.ca&&(this.g=this.ca))}try{do{for(var b,c=this.b.oa?1:this.ga,d=this.j.length-1;0<=d;d--){var e=this.j[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.ua(b)}catch(f){if("number"!=typeof f)throw f;}b=Kb(this,!0);this.O+=b;this.h+=b;ib(this,b);gb(this,b);this.M-=b;if(0>=this.M){this.M+=this.ga;++this.za>=Lb&&(this.m&&T(this.m,void 0),this.za=0);break}}while(this.b.v)}catch(f){S(this);
|
||||
this.m&&this.m.stop(w(),X(this));a=f.stack||f.message;this.b.error=!0;this.C(a);return}if(this.b.v){a=setTimeout;b=this.Ia;this.s=w();c=this.xa;this.O&&(c=Math.round(c*this.O/this.ga));c-=this.s-this.ca;if(d=this.s-this.g)this.F=Math.round(this.h/(10*d))/100,864E5<=d&&(this.B=0,Gb(this));if(0>c||this.F<this.H)-1E3>c&&(this.g-=c),c=0;this.ma+=this.O;this.s+=c;a(b,c)}}};
|
||||
function R(a){var b;a.b.error?(a.J(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.b.v)a.J(a.toString()+" busy");else{Gb(a);a.b.v=!0;a.b.Ca=!0;if(b=a.i.run)b.textContent="Halt";a.m&&a.m.start(a.g,X(a));a.o||a.status("Started");setTimeout(a.Ia,0)}}k.ua=function(){return 0};function S(a){var b=!1;if(a.b.v){Kb(a);hb(a,a.h);a.h=0;a.b.v=!1;if(b=a.i.run)b.textContent="Run";a.m&&a.m.stop(w(),X(a));b=!0;a.o||a.status("Stopped")}a.b.complete=void 0;return b}var Ib=30,Lb=15,Db=["power","reset"];
|
||||
function Mb(a){var b=+a.model||1001;V.call(this,a,1E6);this.Qa=b;this.Ga=+a.addrReset||0;this.W=null;this.Fa=[];this.b.complete=!1}r(Mb,V);k=Mb.prototype;k.reset=function(){this.status("Model "+this.Qa);this.b.v&&S(this);this.V=this.f=this.Aa=this.Ga;this.a=0;this.ba=this.hb;this.ta=this.ub;this.W=null;Eb(this);this.b.error=!1;V.prototype.reset.call(this)};k.Ka=function(){return 0};
|
||||
k.save=function(){var a=new P(this);a.set(0,[this.f,this.Aa,this.V,this.a]);a.set(1,[]);a.set(2,[this.B,this.L,this.b.G]);a.set(3,Nb(this));a.set(4,Jb(this));return a.data()};
|
||||
k.restore=function(a){var b;b=a[0];ea();ba();ea();var c=b[Symbol.iterator];b=c?c.call(b):fa(b);this.f=b.next().value;this.Aa=b.next().value;this.V=b.next().value;this.a=b.next().value;b=a[2];this.B=b[0];Gb(this,b[1]);this.b.G=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Fa.length;d++){var e=this.Fa[d];if(e.pb===b[c]){d=e;break a}}d=null}d&&(d.next=this.W,this.W=d)}a=a[4];for(b=0;b<this.j.length&&b<a.length;b++)this.j[b][0]=a[b];return!0};
|
||||
function Nb(a){var b=[];for(a=a.W;a;)b.push(a.pb),a=a.next;return b}k.hb=function(a){var b=this.l;a=this.V=a;return b.a[(a&b.g)>>>b.f].ba(a&16383,a)};k.ub=function(a,b){var c=this.l;a=this.V=a;c.a[(a&c.g)>>>c.f].ta(b,a&16383,a)};
|
||||
k.ua=function(a){this.b.complete=!0;var b=a?this.b.Ca?0:1:-1;this.b.Ca=!1;this.u=this.A=a;this.a=this.a&-5|0;do{if(a=this.a)if(a=this.a&11)this.a&2?this.W||(this.a&=-3):this.a&1&&this.a++,a=!1;if(a){if(this.a&4&&this.o.h(this.f,b)){S(this);break}if(0>b)break}this.a&=15;a=this.Aa=this.f;this.ba(a);this.f=(a+1)%Sa}while(0<this.A);return this.b.complete?this.u-this.A:!1===this.b.complete?-1:0};I(function(){for(var a=D(document,C,"cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Mb(d);B(d,c)}});
|
||||
function Ob(a){u.call(this,"ROM",a);this.I=this.a=null;this.j=+a.addr;this.g=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.h=a.file;this.s=xa(this.h);if(this.h){a=this.h;var b=ya(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.C("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(ka(c.ja,a,b),(a=Ea(a,b))?(c.a=a.D,c.I=a.I):c.h=null);Pb(c)})}}r(Ob,u);
|
||||
Ob.prototype.U=function(a,b,c,d){this.l=b;this.c=c;this.o=d;Pb(this)};Ob.prototype.T=function(){this.I&&(this.o&&this.o.a(this.id,this.j,this.g,this.I),delete this.I);return!0};Ob.prototype.N=function(){return!0};
|
||||
function Pb(a){if(!ua(a)){if(a.h){if(!a.a||!a.l)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+F(a.a.length,8,!0)+") does not match specified size ("+F(a.g,8,!0)+")";a.b.error=!0;a.C(b)}else{b=a.j;if(ob(a.l,b,a.g,wb)){var c;for(c=0;c<a.a.length;c++)kb(a.l,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.l,g=d.g,h=[],l=d.j>>>f.f;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.l;
|
||||
d=d.g;g=0;for(e>>>=f.f;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}E(a)}}I(function(){for(var a=D(document,C,"rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ob(d);B(d,c)}});
|
||||
function Y(a){u.call(this,"RAM",a);this.I=this.f=null;this.g=+a.addr;this.h=+a.size;this.R=a.load;this.P=a.exec;null!=this.R&&(this.R=+this.R);null!=this.P&&(this.P=+this.P);this.l=!1;this.a=a.file;this.s=xa(this.a);if(this.a){a=this.a;var b=ya(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.C("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(ka(c.ja,a,b),(a=Ea(a,b))?(c.f=a.D,c.I=a.I,null==c.R&&
|
||||
(c.R=a.R),null==c.P&&(c.P=a.P)):c.a=null);Qb(c)})}}r(Y,u);Y.prototype.U=function(a,b,c,d){this.j=b;this.c=c;this.o=d;Qb(this)};Y.prototype.T=function(a,b){this.I&&(this.o&&this.o.a(this.id,this.g,this.h,this.I),delete this.I);b||this.reset();return!0};Y.prototype.N=function(){return!0};
|
||||
function Qb(a){if(a.j&&(!a.l&&a.h&&(ob(a.j,a.g,a.h,1)?a.l=!0:a.h=0),!ua(a))){if(!a.l)x("No RAM allocated");else if(a.a){if(!a.f||!a.j)return;Rb(a,a.f,a.R,a.P,a.g)?a.status('Loaded image "'+a.s+'"'):a.C('Error loading image "'+a.s+'"')}E(a)}}
|
||||
Y.prototype.reset=function(){if(this.l){for(var a=this.j,b=this.g,c=this.h,d=b&16383,b=b>>>a.f;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.ua(g,d,e.X+d);c-=16384;b++;d=0}this.f&&Rb(this,this.f,this.R,this.P,this.g,!this.o)}};
|
||||
function Rb(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,n=b[l++]&255|(b[l++]&255)<<8,p=b[l++]&255|(b[l++]&255)<<8,m=m+((n&255)+(n>>8)+(p&255)+(p>>8)),M=l,qa=n-=6;0<n&&l<b.length;)m+=b[l++]&255,n--;if(n||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(qa)for(;qa--;)kb(a.j,p++,b[M++]);else p&1?g=!0:null==d&&(d=p);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(h=0;h<b.length;h++)kb(a.j,
|
||||
c+h,b[h]);h=!0}if(h){if(null==d||g)S(a.c),f=!1;null!=d&&(a=a.c,a.Ha=d,a.f=d%Sa,f?a.b.w?a.b.u||R(a):a.b.G=!0:a.o&&a.b.w?S(a)||a.m.b.reset||(a.o.g(),T(a.m,-1)):!1===f&&S(a),!a.b.u&&a.ha&&a.ha.stop())}return h}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
|
||||
function Sb(a){u.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Tb;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.S(null,a,b))}this.a=this.l=null;this.exports={connect:this.Na,receiveData:this.ra,receiveStatus:this.lb,setConnection:this.ob}}r(Sb,u);k=Sb.prototype;
|
||||
k.S=function(a,b,c){var d=this;switch(b){case Tb:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?t.Fa:t.Ra:46==c?b=t.Fa:a.ctrlKey&&c>=t.Ea&&c<=t.Ua&&(b=c-(t.Ea-t.Oa));b&&(a.preventDefault&&a.preventDefault(),d.ra(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==t.Qa&&(b=t.Pa);d.ra(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ra(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.U=function(a,b,c,d){this.m=a;this.j=b;this.c=c;this.o=d;E(this)};
|
||||
k.Na=function(a){if(!this.a){var b=W(this.m,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ia)return;c=Ca(c[1]);if(this.a=na(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.l=e.receiveData){this.g=a;this.status("Connected "+this.ja+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.T=function(a,b){if(!b)if(this.Na(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.N=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ra=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};k.lb=function(){};k.ob=function(a,b){return this.a?!1:(this.a=a,this.l=b,!0)};var Tb="buffer";
|
||||
function Y(a){u.call(this,"RAM",a);this.I=this.f=null;this.g=+a.addr;this.h=+a.size;this.R=a.load;this.P=a.exec;null!=this.R&&(this.R=+this.R);null!=this.P&&(this.P=+this.P);this.j=!1;this.a=a.file;this.s=xa(this.a);if(this.a){a=this.a;var b=ya(this.s);"json"!=b&&"hex"!=b&&(a=G()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;H(a,null,!0,function(a,b,f){f?(c.C("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(ka(c.ja,a,b),(a=Ea(a,b))?(c.f=a.D,c.I=a.I,null==c.R&&
|
||||
(c.R=a.R),null==c.P&&(c.P=a.P)):c.a=null);Qb(c)})}}r(Y,u);Y.prototype.U=function(a,b,c,d){this.l=b;this.c=c;this.o=d;Qb(this)};Y.prototype.T=function(a,b){this.I&&(this.o&&this.o.a(this.id,this.g,this.h,this.I),delete this.I);b||this.reset();return!0};Y.prototype.N=function(){return!0};
|
||||
function Qb(a){if(a.l&&(!a.j&&a.h&&(ob(a.l,a.g,a.h,1)?a.j=!0:a.h=0),!ua(a))){if(!a.j)x("No RAM allocated");else if(a.a){if(!a.f||!a.l)return;Rb(a,a.f,a.R,a.P,a.g)?a.status('Loaded image "'+a.s+'"'):a.C('Error loading image "'+a.s+'"')}E(a)}}
|
||||
Y.prototype.reset=function(){if(this.j){for(var a=this.l,b=this.g,c=this.h,d=b&16383,b=b>>>a.f;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.m(g,d,e.X+d);c-=16384;b++;d=0}this.f&&Rb(this,this.f,this.R,this.P,this.g,!this.o)}};
|
||||
function Rb(a,b,c,d,e,f){var g=!1,h=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,n=b[l++]&255|(b[l++]&255)<<8,p=b[l++]&255|(b[l++]&255)<<8,m=m+((n&255)+(n>>8)+(p&255)+(p>>8)),M=l,qa=n-=6;0<n&&l<b.length;)m+=b[l++]&255,n--;if(n||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(qa)for(;qa--;)kb(a.l,p++,b[M++]);else p&1?g=!0:null==d&&(d=p);h=!0}else l++;else l+=2}if(!h&&(null==c&&(c=e),null!=c)){for(h=0;h<b.length;h++)kb(a.l,
|
||||
c+h,b[h]);h=!0}if(h){if(null==d||g)S(a.c),f=!1;null!=d&&(a=a.c,a.Ga=d,a.f=d%Sa,f?a.b.w?a.b.v||R(a):a.b.G=!0:a.o&&a.b.w?S(a)||a.m.b.reset||(a.o.g(),T(a.m,-1)):!1===f&&S(a),!a.b.v&&a.ha&&a.ha.stop())}return h}I(function(){for(var a=D(document,C,"ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Y(d);B(d,c)}});
|
||||
function Sb(a){u.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=Tb;b&&(void 0===c&&(c="Panel"),(c=z(c,this.id))&&(b=c.i[b])&&this.S(null,a,b))}this.a=this.j=null;this.exports={connect:this.La,receiveData:this.ra,receiveStatus:this.jb,setConnection:this.mb}}r(Sb,u);k=Sb.prototype;
|
||||
k.S=function(a,b,c){var d=this;switch(b){case Tb:return this.i[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?t.Ea:t.Pa:46==c?b=t.Ea:a.ctrlKey&&c>=t.Da&&c<=t.Sa&&(b=c-(t.Da-t.Ma));b&&(a.preventDefault&&a.preventDefault(),d.ra(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==t.Oa&&(b=t.Na);d.ra(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.ra(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.U=function(a,b,c,d){this.m=a;this.l=b;this.c=c;this.o=d;E(this)};
|
||||
k.La=function(a){if(!this.a){var b=W(this.m,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.ia)return;c=Ca(c[1]);if(this.a=na(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.j=e.receiveData){this.g=a;this.status("Connected "+this.ja+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.T=function(a,b){if(!b)if(this.La(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.N=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new P(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ra=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};k.jb=function(){};k.mb=function(a,b){return this.a?!1:(this.a=a,this.j=b,!0)};var Tb="buffer";
|
||||
I(function(){for(var a=D(document,C,"serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Sb(d);B(d,c)}});
|
||||
function Ub(a,b,c){u.call(this,"Computer",a);this.b.w=!1;this.L=null;Vb(this,b);this.H=W(this,"autoPower",a,6);this.h=0;this.V=+a.busWidth||+a.buswidth;this.B=this.s=this.F=null;this.A=this.O=!1;this.v=this.l=null;this.M=this.K=!1;this.W=W(this,"url")||"";(Math.random()+.1).toString(36);this.f=Wb(this);if(this.c=z("CPU",this.id)){this.o=z("Debugger",this.id);this.j=new lb({id:this.ja+".bus",busWidth:this.V},this.c,this.o);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.Y)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.C=this.g.C,d.J=this.g.J,d.Y=this.g.Y;this.J(L+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.U&&d.U(this,this.j,this.c,this.o);b=null;d=W(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=W(this,"state")||(f=!0,a.state))this.F=b=a,f||(this.A=!0,this.a=Xb),this.a&&(this.v=new P(this,"1.34.0"),Z(this.v)?b=null:delete this.v);!b&&this.a&&
|
||||
function Ub(a,b,c){u.call(this,"Computer",a);this.b.w=!1;this.L=null;Vb(this,b);this.H=W(this,"autoPower",a,6);this.h=0;this.V=+a.busWidth||+a.buswidth;this.B=this.s=this.F=null;this.A=this.O=!1;this.u=this.j=null;this.M=this.K=!1;this.W=W(this,"url")||"";(Math.random()+.1).toString(36);this.f=Wb(this);if(this.c=z("CPU",this.id)){this.o=z("Debugger",this.id);this.l=new lb({id:this.ja+".bus",busWidth:this.V},this.c,this.o);var d,e=y(this.id);if((this.g=z("Panel",this.id))&&this.g.Y)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.C=this.g.C,d.J=this.g.J,d.Y=this.g.Y;this.J(L+" v1.34.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.U&&d.U(this,this.l,this.c,this.o);b=null;d=W(this,"resume",a);void 0!==d&&(1<d.length?b=this.s=d:this.a=parseInt(d,10));var f;if(a=W(this,"state")||(f=!0,a.state))this.F=b=a,f||(this.A=!0,this.a=Xb),this.a&&(this.u=new P(this,"1.34.0"),Z(this.u)?b=null:delete this.u);!b&&this.a&&
|
||||
(b=Yb(this))&&(this.A=!0);if(b){var g=this;H(b,null,!0,function(a,b,c){c?(g.s=null,g.A=!1,g.C("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(g.B=b,g.O=!0);E(g)})}else E(this);this.i.power||(this.H=!0);!c&&this.H&&Zb(this,this.Z)}else x("Unable to find CPU component")}r(Ub,u);function Vb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.L=b}
|
||||
function W(a,b,c,d){var e=b.toLowerCase(),e=Ka(b)||Ka(e);void 0===e&&a.L&&(e=a.L[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Zb(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ua(f)){ua(f,function(){Zb(a,b,c)});return}}b.call(a,c)}
|
||||
function $b(a,b){var c=new P(a,"1.34.0",ac);if(Z(c)&&bc(c)){var d=c.get(cc),e=b?b.get(cc):"unknown";d!=e&&(a.C("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=Ub.prototype;
|
||||
k.Z=function(a){void 0===a&&(a=this.a||(this.B?dc:Xb));if(!this.h){this.h++;var b=!1,c=!1;this.K=!1;var d=this.v||new P(this,"1.34.0");if(a==ec)b=!0;else if(a>Xb){if(Z(d,this.B)){this.l=new P(this,"1.34.0",fc);Z(this.l)&&(gc(this,d),a=hc,ic(this.l));this.l.set(cc,Da());jc(this.l);var e=this.a&&!this.A;if(a==dc||ma("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=bc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.C("Error: "+g),"unable to verify user"==g&&(Ia(kc,""),this.f=null)):this.J(f+": "+g),ic(d),Z(d)?(c=bc(d),e=!0):c=!1))}e&&$b(this,c?d:null)}else a==hc&&d.clear()}else $b(this);delete this.B;delete this.v}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=lc(this,g,d,b,c));b=[d,a,c];a!=ec?Zb(this,this.La,b):this.La(b)}};
|
||||
function lc(a,b,c,d,e){if(!b.b.w){b.b.w=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.T(f,d)&&f&&(x("Unable to restore state for "+b.type),a.F&&!a.O?(c.clear(),a.a=Xb,window&&window.location.reload()):a.K=!0,b.T(null),e=!1),!d&&b.Ia){var g=b.Ia.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
k.La=function(a){var b=a[0],c=0>a[1];a=a[2];this.M=!0;this.b.w=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.c&&(lc(this,this.c,b,c,a),T(this,-2),this.c.G());this.K&&(gc(this,b),b.clear());!c&&this.l&&(this.l.clear(),delete this.l);this.h=0};
|
||||
k.Z=function(a){void 0===a&&(a=this.a||(this.B?dc:Xb));if(!this.h){this.h++;var b=!1,c=!1;this.K=!1;var d=this.u||new P(this,"1.34.0");if(a==ec)b=!0;else if(a>Xb){if(Z(d,this.B)){this.j=new P(this,"1.34.0",fc);Z(this.j)&&(gc(this,d),a=hc,ic(this.j));this.j.set(cc,Da());jc(this.j);var e=this.a&&!this.A;if(a==dc||ma("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=bc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.C("Error: "+g),"unable to verify user"==g&&(Ia(kc,""),this.f=null)):this.J(f+": "+g),ic(d),Z(d)?(c=bc(d),e=!0):c=!1))}e&&$b(this,c?d:null)}else a==hc&&d.clear()}else $b(this);delete this.B;delete this.u}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=lc(this,g,d,b,c));b=[d,a,c];a!=ec?Zb(this,this.Ja,b):this.Ja(b)}};
|
||||
function lc(a,b,c,d,e){if(!b.b.w){b.b.w=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.T(f,d)&&f&&(x("Unable to restore state for "+b.type),a.F&&!a.O?(c.clear(),a.a=Xb,window&&window.location.reload()):a.K=!0,b.T(null),e=!1),!d&&b.Ha){var g=b.Ha.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){x("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
k.Ja=function(a){var b=a[0],c=0>a[1];a=a[2];this.M=!0;this.b.w=!0;var d=this.i.power;d&&(d.textContent="Shutdown");this.c&&(lc(this,this.c,b,c,a),T(this,-2),this.c.G());this.K&&(gc(this,b),b.clear());!c&&this.j&&(this.j.clear(),delete this.j);this.h=0};
|
||||
function gc(a,b){if(ma("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.W;a=a.f||"";b=b.toString();var d={};d.app=L;d.ver="1.34.0";d.url=c;d.user=a;d.type="bug";d.data=b;H("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function mc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",ac),h=Da();g.set(cc,h);f.set(cc,h);f.set(nc,"1.34.0");f.set(oc,window?window.location.href:null);f.set(pc,window?window.navigator.userAgent:"");a.c&&a.c.N&&(c&&(b&&(a.c.b.G=a.c.b.u),S(a.c)),d=a.c.N(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.b.w=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var m=h[l];m.b.w&&(m.N&&(d=m.N(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.b.w=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&qc(a,a.f,f.toString()),jc(g)&&jc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==rc),d&&f.clear(h)):e=f.toString());c&&(a.b.w=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.j&&this.j.reset&&this.j.reset();this.c&&this.c.reset&&this.c.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.j&&c!==this.c&&c.reset&&c.reset()}this.b.reset=!1;T(this,-1)};
|
||||
function mc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new P(a,"1.34.0"),g=new P(a,"1.34.0",ac),h=Da();g.set(cc,h);f.set(cc,h);f.set(nc,"1.34.0");f.set(oc,window?window.location.href:null);f.set(pc,window?window.navigator.userAgent:"");a.c&&a.c.N&&(c&&(b&&(a.c.b.G=a.c.b.v),S(a.c)),d=a.c.N(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.b.w=!1,!1===d&&(e=null)));for(var h=y(a.id),l=0;l<h.length;l++){var m=h[l];m.b.w&&(m.N&&(d=m.N(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.b.w=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&qc(a,a.f,f.toString()),jc(g)&&jc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==rc),d&&f.clear(h)):e=f.toString());c&&(a.b.w=!1,b=a.i.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.b.reset=!0;this.l&&this.l.reset&&this.l.reset();this.c&&this.c.reset&&this.c.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.l&&c!==this.c&&c.reset&&c.reset()}this.b.reset=!1;T(this,-1)};
|
||||
k.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}T(this,-1)};k.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}T(this,-1)};
|
||||
function T(a,b){if(a.c){var c=a.c,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.wa+=d))&&(e.textContent=c.b.u?c.F.toFixed(2)+"Mhz":"Stopped",c.wa=0)}if(a.g&&(a=a.g,b=b||0,a.B)){c=a.c.b.u;d=!!(a.c.a&8);if(0>=b||60<=(a.A+=b)){e=a.c.f;if(a.i.PC){var f=a.o&&a.o.l||8,e=e||0,e=8==f?wa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.A=0}-1>b?a.f=a.c.f:0<b&&c&&!d&&(a.f=a.c.V);Q(a,a.f);N(a,a.h)}}
|
||||
function T(a,b){if(a.c){var c=a.c,d=b||0,e=c.i.speed;e&&(0>=d||30<=(c.va+=d))&&(e.textContent=c.b.v?c.F.toFixed(2)+"Mhz":"Stopped",c.va=0)}if(a.g&&(a=a.g,b=b||0,a.B)){c=a.c.b.v;d=!!(a.c.a&8);if(0>=b||60<=(a.A+=b)){e=a.c.f;if(a.i.PC){var f=a.o&&a.o.j||8,e=e||0,e=8==f?wa(e,void 0):F(e,void 0);a.i.PC.textContent!=e&&(a.i.PC.textContent=e)}a.A=0}-1>b?a.f=a.c.f:0<b&&c&&!d&&(a.f=a.c.V);Q(a,a.f);N(a,a.h)}}
|
||||
k.S=function(a,b,c){var d=this;switch(b){case "power":return this.i[b]=c,c.onclick=function(){d.h||(d.b.w?mc(d,!1,!0):Zb(d,d.Z))},!0;case "reset":return this.i[b]=c,c.onclick=function(){if(d.b.w&&!d.h)if(d.a&&!d.s){var a=ma("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");mc(d,a,!0);!a&&d.F?window&&window.location.reload():d.Z(Xb)}else d.reset(),d.c&&!d.o&&d.c.G()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.i[b]=
|
||||
c,c.onclick=function(){var a=Wb(d,!0);if(a){var b=!!(d.a&&!d.s||d.F),c=mc(d,b);b?qc(d,a,c):d.C("Resume disabled, machine state not saved")}},!0}return!1};function Wb(a,b){var c=a.f;c||((c=Ha(kc),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=sc(a,c))||a.C("The user ID is invalid.")):b&&a.C("Browser local storage is not available"));return c}
|
||||
function sc(a,b){a.f=null;b=H(G()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ia(kc,b.data),a.f=b.data)}catch(d){x(d.message+" ("+c+")")}return a.f}function Yb(a){var b=null;a.f&&(b=G()+"/api/v1/user?req=load&user="+a.f+"&state="+tc(a,"1.34.0"));return b}
|
||||
function qc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=tc(a,"1.34.0");d.data=c;b=H(G()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.C("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.C(c),Ia(kc,""),a.f=null)}}
|
||||
var fc="failsafe",ac="validate",cc="timestamp",nc="version",oc="url",pc="browser",kc="user",ec=-1,Xb=0,dc=1,hc=2,rc=3;I(function(){for(var a=D(document,C+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,C,"computer"),e=0;e<c.length;e++){var f=c[e],g=A(f),g=new Ub(g,d,!0);B(g,f);g.H&&Zb(g,g.Z)}});J.show.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.M&&!c.b.w&&c.Z(ec)}});
|
||||
J.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.b.w&&mc(c,!(!c.a||c.s),!0)}});function P(a,b,c){this.id=a.id;this.i="";this.c={};this.j=this.m=!1;this.key=tc(a,b,c);ic(this,a.Ta)}k=P.prototype;k.set=function(a,b){try{this.c[a]=b}catch(c){}};k.get=function(a){return this.c[a]||null};k.data=function(){return this.c};function Z(a,b){return b?(a.i=b,a.j=!0,a.m=!1,!0):a.j?!0:Fa()&&(b=Ha(a.key))?(a.i=b,a.j=!0):!1}
|
||||
function bc(a){var b=!0;if(!a.m)try{a.c=JSON.parse(a.i),a.m=!0}catch(c){x(c.message||c),b=!1}return b}function jc(a){var b=!0;if(Fa()){var c=JSON.stringify(a.c);Ia(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.c?JSON.stringify(this.c):this.i};function ic(a,b){a.i="";a.c={};a.j=a.m=!1;b&&a.set("parms",b)}
|
||||
J.exit.push(function(){for(var a=D(document,C,"computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=z("Computer",c.id))&&c.b.w&&mc(c,!(!c.a||c.s),!0)}});function P(a,b,c){this.id=a.id;this.i="";this.c={};this.l=this.m=!1;this.key=tc(a,b,c);ic(this,a.Ra)}k=P.prototype;k.set=function(a,b){try{this.c[a]=b}catch(c){}};k.get=function(a){return this.c[a]||null};k.data=function(){return this.c};function Z(a,b){return b?(a.i=b,a.l=!0,a.m=!1,!0):a.l?!0:Fa()&&(b=Ha(a.key))?(a.i=b,a.l=!0):!1}
|
||||
function bc(a){var b=!0;if(!a.m)try{a.c=JSON.parse(a.i),a.m=!0}catch(c){x(c.message||c),b=!1}return b}function jc(a){var b=!0;if(Fa()){var c=JSON.stringify(a.c);Ia(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.c?JSON.stringify(this.c):this.i};function ic(a,b){a.i="";a.c={};a.l=a.m=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){ic(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function tc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var uc=0;
|
||||
function vc(a,b,c,d,e,f,g){f("Loading "+a+"...");H(a,null,!0,function(h,l,m){m?(l||(l="unable to load "+a+" ("+m+")"),g(l,null)):wc(l,a,b,c,d,e,f,g)})}
|
||||
function wc(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(ka(c,b,a),(g=b)&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+g+'"}',"object"==typeof resources&&(g=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(g?' url="'+g+'"':"")));f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
|
|
|
|||
Loading…
Reference in a new issue