Finished the PDP-10 Move Magnitude opcodes, along with the Push Down and Pop Up opcodes (uncovering some SIMH weirdness along the way)
This commit is contained in:
parent
85a338b8c4
commit
affaa1075c
8 changed files with 398 additions and 224 deletions
|
|
@ -31,8 +31,8 @@ var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ga(this)}});fa=function(){}}function ga(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ha(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a}
|
||||
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ka(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ka("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ka("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={ac:0,tb:1,cc:2,dc:3,ec:4,fc:5,gc:6,hc:7,$a:8,ic:9,ub:10,jc:11,kc:12,vb:13,lc:14,mc:15,nc:16,oc:17,pc:18,qc:19,rc:20,sc:21,tc:22,uc:23,vc:24,wc:25,xc: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,Za:65,$b:66,bc:67,yc:68,E:69,zc:70,Ac:71,Bc:72,Cc:73,Dc:74,Ec:75,Fc:76,Gc:77,Hc:78,Ic:79,Jc:80,Q:81,
|
||||
Kc:82,Lc:83,Mc:84,Nc:85,Oc:86,Pc:87,Qc:88,Rc:89,yb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Sc:97,Tc:98,Uc:99,d:100,e:101,Vc:102,Wc:103,Xc:104,Yc:105,Zc:106,k:107,$c:108,ad:109,n:110,bd:111,p:112,q:113,r:114,cd:115,t:116,ed:117,fd:118,gd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,wb:127};
|
||||
var la=Math.pow(2,36),ma=-Math.pow(2,35),q={bc:0,ub:1,dc:2,ec:3,fc:4,gc:5,hc:6,ic:7,bb:8,jc:9,vb:10,kc:11,lc:12,wb:13,mc:14,nc:15,oc:16,pc:17,qc:18,rc:19,sc:20,tc:21,uc:22,vc:23,wc:24,xc:25,yc: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,ab:65,ac:66,cc:67,zc:68,E:69,Ac:70,Bc:71,Cc:72,Dc:73,Ec:74,Fc:75,Gc:76,Hc:77,Ic:78,Jc:79,Kc:80,Q:81,
|
||||
Lc:82,Mc:83,Nc:84,Oc:85,Pc:86,Qc:87,Rc:88,Sc:89,yb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Tc:97,Uc:98,Vc:99,d:100,e:101,Wc:102,Xc:103,Yc:104,Zc:105,$c:106,k:107,ad:108,bd:109,n:110,cd:111,p:112,q:113,r:114,dd:115,t:116,fd:117,gd:118,hd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,xb:127};
|
||||
function na(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 oa(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var g=a%b,g=g+(0<=g&&9>=g?48:55),e=String.fromCharCode(g)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function pa(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return oa(a,8,b,c?"0o":"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return oa(a,16,b,c?"0x":"")}
|
||||
function qa(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 ra(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function xa(){var a=ya();return-1!==a.indexOf("pcjs.org",a.length-8)}function za(a){return a.replace(/[&<>"']/g,function(a){return Aa[a]})}function Ba(a,b){return(a+" ").slice(0,b)}
|
||||
|
|
@ -40,188 +40,189 @@ function Ca(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
|
|||
function Fa(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 Ga(a,b){var c,d={Y:null,T:null,na:null,ma:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,g,f;if("<"==b.substr(0,1))throw Error(b);f=0>b.indexOf("0x")&&0>b.indexOf("0o")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.na=f.load;d.ma=f.exec;if(e=f.bytes)d.Y=e;else if(e=f.words)for(d.Y=Array(2*e.length),g=c=0;c<e.length;c++)d.Y[g++]=e[c]&255,d.Y[g++]=e[c]>>8&255;else if(e=f.longs)for(d.Y=Array(4*e.length),g=c=0;c<e.length;c++)d.Y[g++]=
|
||||
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Aa=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(u(d.Y[0]),d=null):(u("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){u("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
|
||||
e[c]&255,d.Y[g++]=e[c]>>8&255,d.Y[g++]=e[c]>>16&255,d.Y[g++]=e[c]>>24&255;else(e=f.data)?d.Ba=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(u(d.Y[0]),d=null):(u("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){u("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
|
||||
function ya(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ha(){if(null==Qa){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}Qa=a}return Qa}function Ra(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function Sa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Ta(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 Ua(a){if(!Va){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," "))}Va=c}return Va[a]}function Wa(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Xa(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 Ya(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Za(a){$a.init.push(a)}
|
||||
function ab(a){if(bb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){u(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function cb(a){!bb&&a?(bb=!0,db&&eb("init"),gb&&eb("show")):bb=a}function eb(a){$a[a]&&ab($a[a])}var Va=null,$a={init:[],show:[],exit:[]},db=!1,gb=!1,bb=!0,Qa=null;Ya("onload",function(){db=!0;ab($a.init)});Ya("onpageshow",function(){gb=!0;ab($a.show)});Ya(Ta("Opera")||Ta("iOS")?"onunload":"onbeforeunload",function(){ab($a.exit)});
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.eb=b.comment;this.sb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Ua:!1,U:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.i=this.F=this.D=this.oa=null;w.push(this)}function pb(a,b,c){qb[a]&&b&&(qb[a][b]=c)}function rb(){return Date.now()||+new Date}
|
||||
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.gb=b.comment;this.Ab=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Wa:!1,U:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.A=this.i=this.G=this.F=this.oa=null;w.push(this)}function pb(a,b,c){qb[a]&&b&&(qb[a][b]=c)}function rb(){return Date.now()||+new Date}
|
||||
function u(a){window&&window.alert(a)}function sb(a){var b=!1;window&&(b=window.confirm(a));return b}function tb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}function ub(a){if(void 0!==a){var b;for(b=0;b<w.length;b++)if(w[b].id===a)return w[b]}return null}
|
||||
function vb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function x(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){u(c.message+" ("+a+")")}return b}
|
||||
function wb(a,b){var c=B;b=C(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,g=0;g<e.length;g++){var f=e[g];if(1===f.nodeType){var h=f.getAttribute("class");if(h)for(var k=h.split(" "),m=0;m<k.length;m++)switch(h=k[m],h){case c+"-binding":(h=x(f))&&h.binding&&a.ga(h.type,h.binding,f,h.value),m=k.length}}}}
|
||||
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
function xb(a){for(var b=!0,c=yb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=zb.indexOf(e)&&(g=function(){return function(){xb(a)}}());var f=Ab[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=vb(d[1],a);if(h)if(f=Bb[e])b=f(h,d[2],d[3]);else{var k=h.exports;if(k&&(f=k[e]))if(b=!0,!g)b=f.call(h,d[2],d[3]);else if(!f.call(h,g,d[2],d[3]))break}}if(!b){u("Script error: "+e+(f?" failed":" unrecognized"));break}}c&&!c.length&&delete yb[a];return b}l=v.prototype;
|
||||
l.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
l.ga=function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.oa=this.I[b]=c,c.value="",this.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.ca=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.ca=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Cb(a,b){a.j.error=!0;a.ca(b)}function Db(a){return a.j.error?(a.f(a.toString()+" error"),!0):!1}function Eb(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Fb(a,b){a.j.Fa&&(b?a.j.Ua=!0:void 0===b&&a.f(a.toString()+" busy"));return a.j.Fa}
|
||||
function Gb(a,b){if(a.j.Ua)return a.j.Fa=!1,a.j.Ua=!1;if(a.j.error)return a.f(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}l.pa=function(){return this.j.U=!0};l.fa=function(a,b){b&&(this.j.U=!1);return!0};function Hb(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.lb)}return!1}function Ib(a,b,c,d){a.A&&(!0===c||Hb(a,c|0))&&a.A.message(b,d)}
|
||||
l.ga=function(a,b,c){switch(b){case "clear":return this.I[b]||(this.I[b]=c,c.onclick=function(a){return function(){a.I.print&&(a.I.print.value="")}}(this)),!0;case "print":return this.I[b]||(this.oa=this.I[b]=c,c.value="",this.g=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.ca=function(a){this.g(a,this.Ka)}),!0;default:return!1}};l.log=function(){};l.g=function(){};
|
||||
l.status=function(a){this.g(this.Ka+": "+a)};l.ca=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Cb(a,b){a.j.error=!0;a.ca(b)}function Db(a){return a.j.error?(a.g(a.toString()+" error"),!0):!1}function Eb(a,b){b&&(a.j.ready?b():a.Ma=b);return a.j.ready}function D(a){if(!a.j.error&&(a.j.ready=!0,a.j.ready)){var b=a.Ma;a.Ma=null;b&&b()}}function Fb(a,b){a.j.Fa&&(b?a.j.Wa=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.Fa}
|
||||
function Gb(a,b){if(a.j.Wa)return a.j.Fa=!1,a.j.Wa=!1;if(a.j.error)return a.g(a.toString()+" error"),!1;a.j.Fa=b;return a.j.Fa}l.pa=function(){return this.j.U=!0};l.fa=function(a,b){b&&(this.j.U=!1);return!0};function Hb(a,b){if(a.A){a===a.A?b|=0:b=b||a.X;var c=a.A.X&b;return!!b&&c===b||!!(c&a.A.mb)}return!1}function Ib(a,b,c,d){a.A&&(!0===c||Hb(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 qb=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],yb=window?window.PCjs.Commands:{},zb=["hold","sleep","wait"],Ab={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Bb={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
|
||||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
var B="pdp10",Jb="PDPjs",Kb=Math.pow(2,18),Lb=Math.pow(2,18)-1,Mb=Math.pow(2,36),F=Math.pow(2,18),Nb=Math.pow(2,17)-1,Ob=Math.pow(2,35)-1,Pb=Math.pow(2,35),Qb=Math.pow(2,36),Rb=Math.pow(2,21),Sb=Math.pow(2,26),Tb=Math.pow(2,23),B="pdp10",Jb="PDPjs",G={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 Ub(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.g=this.J=this.u=this.v=0;this.N=this.O=-1;this.P=this.R=this.H=!1;this.S=Vb;this.B={};this.b={START:[1,1,!0,!1,this.Lb],STEP:[1,1,!1,!1,this.Mb],ENABLE:[1,1,!1,!1,this.Gb],CONT:[1,1,!0,!1,this.Eb],DEP:[0,0,!0,!1,this.Fb],EXAM:[1,1,!0,!1,this.Hb],LOAD:[1,1,!0,!1,this.Jb],TEST:[0,0,!0,!1,this.Ib]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Kb,a];this.A=this.i=this.F=this.D=null;this.exports={hold:this.Cb,toggle:this.Vb,reset:this.Rb,
|
||||
set:this.Ub};D(this)}p(Ub,v);l=Ub.prototype;l.reset=function(a){this.stop();a&&Wb(this,this.v=0)};
|
||||
l.ga=function(a,b,c,d){if(this.D&&this.D.ga(a,b,c,d)||this.i&&this.i.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Xb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Yb(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){Xb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Yb(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.D=a;this.F=b;this.i=c;this.A=d;Zb(this);$b(this)};l.pa=function(a,b){if(!b)if(this.W&&ac(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.g,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])bc(this,this.g=a[0]),Wb(this,this.v=a[1]),jc(this,a[2]);return!0};l.Rb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}$b(this);return!0};function kc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Zb(a,b){for(var c in a.B)kc(a,c,null!=b?b:a.B[c])}function lc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function $b(a){for(var b in a.b)lc(a,b,a.b[b][1])}
|
||||
l.Cb=function(a,b,c){if(Xb(this,b)){if(c){var d=this;setTimeout(function(){Yb(d,b);a&&a()},+c);return!1}Yb(this,b)}return!0};l.Ub=function(a,b){if("SR"==a)return jc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.Vb=function(a){return Xb(this,a)?(Yb(this,a),!0):!1};function Xb(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1}
|
||||
function Yb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Lb=function(a){a||this.i.j.K||(this.i.u=this.g%Kb,this.b[pc]&&this.b[pc][1]&&qc(this.i))};l.Mb=function(){};l.Gb=function(a){a||this.i.V()};
|
||||
l.Eb=function(a){if(!a&&!this.i.j.K)if(this.b[pc]&&this.b[pc][1])qc(this.i);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),rc(a,0,null),Gb(a,!1);else try{var b=this.i.Ja(1);0<b&&(sc(this.i,b),tc(this.i,b,!0),uc(this.i,b))}catch(c){"number"!=typeof c&&Cb(this.i,c.stack||c.message)}this.stop();this.D&&I(this.D)}};l.Fb=function(a){a&&!this.i.j.K&&(this.P&&vc(this),a=Wb(this,this.v=this.u),this.S==Vb?wc(this.F,this.g,a):this.i.G(this.g,a))};
|
||||
l.Hb=function(a){if(!a&&!this.i.j.K){var b;this.R&&vc(this);this.S==Vb?b=xc(this.F,this.g):b=this.i.C(this.g);Wb(this,this.v=b)}};l.Jb=function(a){a||this.i.j.K||bc(this,this.u)};l.Ib=function(a){a?(this.H=!0,Zb(this,!0)):(this.H=!1,Zb(this),jc(this,0))};l.Kb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function vc(a){var b=1,c=a.F.u;a.b[mc]&&a.b[mc][1]||(b=-b);bc(a,a.g&~c|a.g+b&c)}
|
||||
function bc(a,b){a.g=b&a.F.u;if(a.N!==a.g){a.N=a.g;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.H||kc(d,e,g)}}}function Wb(a,b){a.J=b%Mb;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.H||kc(d,e,g)}}return a.J}function jc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;$b(a);return!0}l.stop=function(){bc(this,this.i.u)};
|
||||
function ac(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=ub(d.id);e||(e=new Ub(d,!0));wb(e,c)}}var Vb=7,nc="DEP",pc="ENABLE",oc="EXAM",mc="STEP";Za(ac);function yc(a,b,c){v.call(this,"Bus",a,16);this.i=b;this.A=c;this.J=+a.busWidth||18;this.H=1<<this.J;this.u=this.H-1;this.g=Math.log2(16384);this.B=this.H/16384|0;this.v=0;this.b=[];a=new zc(this);Ac(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;D(this)}p(yc,v);l=yc.prototype;l.reset=function(){};
|
||||
function Ub(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.u=this.v=0;this.N=this.O=-1;this.P=this.R=this.H=!1;this.S=Vb;this.B={};this.b={START:[1,1,!0,!1,this.Mb],STEP:[1,1,!1,!1,this.Nb],ENABLE:[1,1,!1,!1,this.Hb],CONT:[1,1,!0,!1,this.Fb],DEP:[0,0,!0,!1,this.Gb],EXAM:[1,1,!0,!1,this.Ib],LOAD:[1,1,!0,!1,this.Kb],TEST:[0,0,!0,!1,this.Jb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Lb,a];this.A=this.i=this.G=this.F=null;this.exports={hold:this.Db,toggle:this.Wb,reset:this.Sb,
|
||||
set:this.Vb};D(this)}p(Ub,v);l=Ub.prototype;l.reset=function(a){this.stop();a&&Wb(this,this.v=0)};
|
||||
l.ga=function(a,b,c,d){if(this.F&&this.F.ga(a,b,c,d)||this.i&&this.i.ga(a,b,c,d)||this.A&&this.A.ga(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.B[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){Xb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Yb(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){Xb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Yb(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.va=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.A=d;Zb(this);$b(this)};l.pa=function(a,b){if(!b)if(this.W&&ac(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,[this.f,this.v,this.u]);return a.data()};
|
||||
l.restore=function(a){if(a=a[0])bc(this,this.f=a[0]),Wb(this,this.v=a[1]),cc(this,a[2]);return!0};l.Sb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}$b(this);return!0};function kc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function Zb(a,b){for(var c in a.B)kc(a,c,null!=b?b:a.B[c])}function lc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function $b(a){for(var b in a.b)lc(a,b,a.b[b][1])}
|
||||
l.Db=function(a,b,c){if(Xb(this,b)){if(c){var d=this;setTimeout(function(){Yb(d,b);a&&a()},+c);return!1}Yb(this,b)}return!0};l.Vb=function(a,b){if("SR"==a)return cc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,lc(this,a,c[1]),!0):!1};l.Wb=function(a){return Xb(this,a)?(Yb(this,a),!0):!1};function Xb(a,b){var c=a.b[b];return c?(lc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=mc&&(a.P=b==nc,a.R=b==oc),!0):!1}
|
||||
function Yb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(lc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Mb=function(a){a||this.i.j.K||(this.i.u=this.f%Kb,this.b[pc]&&this.b[pc][1]&&qc(this.i))};l.Nb=function(){};l.Hb=function(a){a||this.i.V()};
|
||||
l.Fb=function(a){if(!a&&!this.i.j.K)if(this.b[pc]&&this.b[pc][1])qc(this.i);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),rc(a,0,null),Gb(a,!1);else try{var b=this.i.Ja(1);0<b&&(sc(this.i,b),tc(this.i,b,!0),uc(this.i,b))}catch(c){"number"!=typeof c&&Cb(this.i,c.stack||c.message)}this.stop();this.F&&I(this.F)}};l.Gb=function(a){a&&!this.i.j.K&&(this.P&&vc(this),a=Wb(this,this.v=this.u),this.S==Vb?wc(this.G,this.f,a):this.i.D(this.f,a))};
|
||||
l.Ib=function(a){if(!a&&!this.i.j.K){var b;this.R&&vc(this);this.S==Vb?b=xc(this.G,this.f):b=this.i.C(this.f);Wb(this,this.v=b)}};l.Kb=function(a){a||this.i.j.K||bc(this,this.u)};l.Jb=function(a){a?(this.H=!0,Zb(this,!0)):(this.H=!1,Zb(this),cc(this,0))};l.Lb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function vc(a){var b=1,c=a.G.u;a.b[mc]&&a.b[mc][1]||(b=-b);bc(a,a.f&~c|a.f+b&c)}
|
||||
function bc(a,b){a.f=b&a.G.u;if(a.N!==a.f){a.N=a.f;b=a.N;for(var c=0;22>c;c++){var d=a,e="A"+c,g=b&1<<c;d.B[e]=g;d.H||kc(d,e,g)}}}function Wb(a,b){a.J=b%Mb;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.B[e]=g;d.H||kc(d,e,g)}}return a.J}function cc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;$b(a);return!0}l.stop=function(){bc(this,this.i.u)};
|
||||
function ac(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=ub(d.id);e||(e=new Ub(d,!0));wb(e,c)}}var Vb=7,nc="DEP",pc="ENABLE",oc="EXAM",mc="STEP";Za(ac);function yc(a,b,c){v.call(this,"Bus",a,16);this.i=b;this.A=c;this.J=+a.busWidth||18;this.H=1<<this.J;this.u=this.H-1;this.f=Math.log2(16384);this.B=this.H/16384|0;this.v=0;this.b=[];a=new zc(this);Ac(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;D(this)}p(yc,v);l=yc.prototype;l.reset=function(){};
|
||||
l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.save=function(){var a=new H(this);a.set(0,Bc(this));return a.data()};l.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,g=Array(4096),f=0;f<d.length-1;)for(var h=d[f++],k=d[f++];h--;)g[e++]=k;d=g}e=this.b[c];if(!e||!e.restore(d)){u("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Cc(a,b,c,d){for(var e=b,g=c,f=e>>>a.g;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Dc(Ec,e,g)}e=new zc(a,e,m,16384,d);Ac(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Fc[d]+" at "+pa(b)),!0):Dc(Gc,b,c)}
|
||||
function xc(a,b){var c=a.b[(b&a.u)>>>a.g];a.v++;b=c.F(b&16383,b);a.v--;return b}function wc(a,b,c){var d=a.b[(b&a.u)>>>a.g];a.v++;d.D(c,b&16383,b);a.v--}function Bc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Wa||e.Ab){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.Bb=function(a){this.v||(this.A&&Hb(this.A,4)&&Ib(this.A,"memory fault on "+K(this.A,a),!0,!0),this.i.V())};function Dc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Ec=1,Gc=2;function Hc(a){v.call(this,"Device",a,256)}p(Hc,v);l=Hc.prototype;l.va=function(a,b,c,d){this.F=b;this.D=a;this.i=c;this.A=d;D(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
|
||||
l.restore=function(){return!0};Za(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=x(d);switch(c.type){case "default":c=new Hc(c),wb(c,d)}}});function zc(a,b,c,d,e){this.u=a;this.id=Ic+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Jc;this.I=e==Kc;this.b=null;this.C=this.F=this.Ya;this.G=this.D=this.Ia;this.i=this.g=0;Ac(this);this.Wa=this.Ab=!1;if(this.size){a=this.A=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Lc(this,Mc)}else Lc(this)}l=zc.prototype;l.save=function(){return this.A};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.A=a,this.Wa=!0):!1};function Lc(a,b){b||(b=Nc);Oc(a,b,void 0);Pc(a,b,void 0)}function Oc(a,b,c){c&&a.i||(a.C=b[0]||a.Ya);if(c||void 0===c)a.F=b[0]||a.Ya}function Pc(a,b,c){c&&a.g||(a.G=!a.I&&b[1]||a.Ia);if(c||void 0===c)a.D=b[1]||a.Ia}l.Ba=function(a,b){b?this.g++||Pc(this,Qc,!1):this.i++||Oc(this,Qc,!1)};function Rc(a,b){b?--a.g||(a.G=a.I?a.Ia:a.D):--a.i||(a.C=a.F)}
|
||||
function Ac(a,b,c){a.b=b;a.i=a.g=0;c&&((a.i=c.i)&&Oc(a,Qc,!1),(a.g=c.g)&&Pc(a,Qc,!1))}l.Ya=function(a,b){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.Bb(b);return-1};l.Ia=function(a,b,c){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Pb=function(a){return this.A[a]};l.Yb=function(a,b){this.A[b]!=a&&(this.A[b]=a,this.Wa=!0)};
|
||||
l.Nb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Sc(c,this.w+a,2,c.M)&&c.V(!1)}return this.F(a,b)};l.Xb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Sc(d,this.w+b,2,d.J)&&d.V(!1)}this.I?this.Ia(a,0,c):this.D(a,b,c)};var Jc=0,Kc=2,Fc=["NONE","RAM","ROM"],Ic=0,Nc=[],Mc=[zc.prototype.Pb,zc.prototype.Yb],Qc=[zc.prototype.Nb,zc.prototype.Xb];
|
||||
function Tc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Ca=0;this.Sa=b;this.W=c;this.Qa=Math.round(this.Sa/1E4)/100;this.S=this.Qa*this.W;this.Ra=this.ua=this.aa=this.ya=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.L=[];this.ib=this.Sb.bind(this);this.P=this.J=this.N=this.O=this.H=this.ra=this.M=this.ja=this.Ta=this.R=0;this.xa=
|
||||
null;D(this)}p(Tc,v);l=Tc.prototype;l.va=function(a,b,c,d){this.D=a;this.F=b;this.A=d;this.xa=a.u;for(a=0;a<Uc.length;a++)(b=this.I[Uc[a]])&&this.D.ga(null,Uc[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.pa=function(a,b){var c=Vc(this.D,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.I.run);if(!b){if(a){Wc(this);if(!this.restore(a))return!1;Xc(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.f("Type ? for help with PDPjs Debugger commands"),Yc(a),b||Zc(a),a.ua&&(b=a.ua,a.ua=null,td(a,b))):this.status("No debugger detected");this.j.Z||this.f("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(qc(this),!0):!1};l.pb=function(){return 0};function Xc(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.P)}function uc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.pb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=ud(a)&&(a.da=a.ia=-1,Xc(a),a.V(),c=!0);c&&a.f(ud(a)+" cycles: checksum="+t(a.sa))}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.D)if(a=d.D,a.j.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.V():qc(d))},!0;case "speed":return this.I[b]=
|
||||
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){vd(d,d.W<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function tc(a,b,c){a.P+=b;c&&(a.N=a.O=0)}function wd(a,b){var c=1;b&&1<a.W&&a.R&&(c=a.R/a.Qa);a.Ra=Math.round(1E3/xd);a.ua=Math.floor(a.Sa/xd*c);b||(a.aa=a.ua);a.ya=0}function ud(a){return a.P+a.J+a.N-a.O}function Wc(a){a.R=0;a.Ta=0;a.P=a.J=a.N=a.O=0;Xc(a);vd(a,1)}
|
||||
function vd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.W=b;b=a.Qa*a.W;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.f("target speed: "+b)}c&&a.D&&yd(a.D)}tc(a,a.J);a.J=0;a.H=rb();a.M=0;wd(a);return d}function zd(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ad(a){for(var b=[],c=0;c<a.L.length;c++)b.push(a.L[c][0]);return b}
|
||||
function Cc(a,b,c,d){for(var e=b,g=c,f=e>>>a.f;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.w)return h.Ha+=h.w-e,h.w=e,!0;if(e>=h.w+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.w+m;e=k+16384;g-=m;f++;continue}}return Dc(Ec,e,g)}e=new zc(a,e,m,16384,d);Ac(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Fc[d]+" at "+pa(b)),!0):Dc(Gc,b,c)}
|
||||
function xc(a,b){var c=a.b[(b&a.u)>>>a.f];a.v++;b=c.G(b&16383,b);a.v--;return b}function wc(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.v++;d.F(c,b&16383,b);a.v--}function Bc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Ya||e.Bb){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.Cb=function(a){this.v||(this.A&&Hb(this.A,4)&&Ib(this.A,"memory fault on "+K(this.A,a),!0,!0),this.i.V())};function Dc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Ec=1,Gc=2;function Hc(a){v.call(this,"Device",a,256)}p(Hc,v);l=Hc.prototype;l.va=function(a,b,c,d){this.G=b;this.F=a;this.i=c;this.A=d;D(this)};l.pa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){return(new H(this)).data()};
|
||||
l.restore=function(){return!0};Za(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=x(d);switch(c.type){case "default":c=new Hc(c),wb(c,d)}}});function zc(a,b,c,d,e){this.u=a;this.id=Ic+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Jc;this.I=e==Kc;this.b=null;this.C=this.G=this.$a;this.D=this.F=this.Ia;this.i=this.f=0;Ac(this);this.Ya=this.Bb=!1;if(this.size){a=this.A=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Lc(this,Mc)}else Lc(this)}l=zc.prototype;l.save=function(){return this.A};
|
||||
l.restore=function(a){return a&&this.size==a.length?(this.A=a,this.Ya=!0):!1};function Lc(a,b){b||(b=Nc);Oc(a,b,void 0);Pc(a,b,void 0)}function Oc(a,b,c){c&&a.i||(a.C=b[0]||a.$a);if(c||void 0===c)a.G=b[0]||a.$a}function Pc(a,b,c){c&&a.f||(a.D=!a.I&&b[1]||a.Ia);if(c||void 0===c)a.F=b[1]||a.Ia}l.Ca=function(a,b){b?this.f++||Pc(this,Qc,!1):this.i++||Oc(this,Qc,!1)};function Rc(a,b){b?--a.f||(a.D=a.I?a.Ia:a.F):--a.i||(a.C=a.G)}
|
||||
function Ac(a,b,c){a.b=b;a.i=a.f=0;c&&((a.i=c.i)&&Oc(a,Qc,!1),(a.f=c.f)&&Pc(a,Qc,!1))}l.$a=function(a,b){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.Cb(b);return-1};l.Ia=function(a,b,c){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to write "+K(this.b,a)+" to invalid addresses "+K(this.b,c),!0)};l.Qb=function(a){return this.A[a]};l.Zb=function(a,b){this.A[b]!=a&&(this.A[b]=a,this.Ya=!0)};
|
||||
l.Ob=function(a,b){if(this.b&&null!=this.w){var c=this.b;Sc(c,this.w+a,2,c.M)&&c.V(!1)}return this.G(a,b)};l.Yb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Sc(d,this.w+b,2,d.J)&&d.V(!1)}this.I?this.Ia(a,0,c):this.F(a,b,c)};var Jc=0,Kc=2,Fc=["NONE","RAM","ROM"],Ic=0,Nc=[],Mc=[zc.prototype.Qb,zc.prototype.Zb],Qc=[zc.prototype.Ob,zc.prototype.Yb];
|
||||
function Tc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Da=0;this.Ua=b;this.W=c;this.Sa=Math.round(this.Ua/1E4)/100;this.S=this.Sa*this.W;this.Ta=this.ua=this.aa=this.za=0;this.j.K=this.j.Pa=!1;this.j.Z=a.autoStart;"string"==typeof this.j.Z&&(this.j.Z="true"==this.j.Z);this.j.Ea=!1;this.sa=this.ha=0;this.ta=+a.csStart;this.da=+a.csInterval;this.ia=+a.csStop;this.L=[];this.jb=this.Tb.bind(this);this.P=this.J=this.N=this.O=this.H=this.ra=this.M=this.ja=this.Va=this.R=0;this.xa=
|
||||
null;D(this)}p(Tc,v);l=Tc.prototype;l.va=function(a,b,c,d){this.F=a;this.G=b;this.A=d;this.xa=a.u;for(a=0;a<Uc.length;a++)(b=this.I[Uc[a]])&&this.F.ga(null,Uc[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
||||
l.pa=function(a,b){var c=Vc(this.F,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.A&&void 0===this.I.run);if(!b){if(a){Wc(this);if(!this.restore(a))return!1;Xc(this)}else this.reset();this.A?(a=this.A,b=this.j.Z,a.ya=!0,a.g("Type ? for help with PDPjs Debugger commands"),Yc(a),b||Zc(a),a.ua&&(b=a.ua,a.ua=null,$c(a,b))):this.status("No debugger detected");this.j.Z||this.g("CPU will not be auto-started "+(this.xa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.Z=function(){return this.j.K?!0:this.j.Z?(qc(this),!0):!1};l.qb=function(){return 0};function Xc(a){void 0===a.ta&&(a.ta=0);void 0===a.da&&(a.da=-1);void 0===a.ia&&(a.ia=-1);a.j.Ea=0<=a.ta&&0<a.da;a.j.Ea&&(a.sa=0,a.ha=a.ta-a.P)}function uc(a,b){if(a.j.Ea){var c=!1;a.sa=a.sa+a.qb()|0;a.ha-=b;0>=a.ha&&(a.ha+=a.da,c=!0);0<=a.ia&&a.ia<=ad(a)&&(a.da=a.ia=-1,Xc(a),a.V(),c=!0);c&&a.g(ad(a)+" cycles: checksum="+t(a.sa))}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.I[b]=c,!0;case "run":return this.I[b]=c,c.onclick=function(){var a;if(a=d.F)if(a=d.F,a.j.U)a=!0;else{var b=null,c,h=tb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.j.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.j.U);c++);c==h.length&&(b=a);u("The "+b.type+" component ("+b.id+") is not "+(b.j.ready?"powered yet":"ready yet"+(b.Ma?" (waiting for notification)":""))+".");a=!1}a&&(d.j.K?d.V():qc(d))},!0;case "speed":return this.I[b]=
|
||||
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){bd(d,d.W<<1,!0)},c.textContent=this.S.toFixed(2)+"Mhz",!0}return!1};function tc(a,b,c){a.P+=b;c&&(a.N=a.O=0)}function wd(a,b){var c=1;b&&1<a.W&&a.R&&(c=a.R/a.Sa);a.Ta=Math.round(1E3/xd);a.ua=Math.floor(a.Ua/xd*c);b||(a.aa=a.ua);a.za=0}function ad(a){return a.P+a.J+a.N-a.O}function Wc(a){a.R=0;a.Va=0;a.P=a.J=a.N=a.O=0;Xc(a);bd(a,1)}
|
||||
function bd(a,b,c){var d=!1;if(void 0!==b){.8>a.R/a.S?b=1:d=!0;a.W=b;b=a.Sa*a.W;if(a.S!=b){a.S=b;b=a.S.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.F&&yd(a.F)}tc(a,a.J);a.J=0;a.H=rb();a.M=0;wd(a);return d}function zd(a,b){for(var c=a.L.length-1;0<=c;c--){var d=a.L[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Ad(a){for(var b=[],c=0;c<a.L.length;c++)b.push(a.L[c][0]);return b}
|
||||
function sc(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 Bd(a,b){var c=a.N-=a.O;a.O=0;b&&(a.N=0);return c}
|
||||
l.Sb=function(){if(this.j.K){this.ya>=this.Sa&&wd(this,!0);this.ja=0;this.ra=rb();if(this.M){var a=this.ra-this.M;a>this.Ra&&(this.H+=a,this.H>this.ra&&(this.H=this.ra))}try{do{var b=zd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Bd(this,!0);this.ja+=b;this.J+=b;uc(this,b);sc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Ta>=Cd&&(this.D&&I(this.D,void 0),this.Ta=0);break}}while(this.j.K)}catch(e){this.V();this.D&&this.D.stop(rb(),ud(this));Cb(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.ib;this.M=rb();var c=this.Ra;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.M-this.ra),d=this.M-this.H;d&&(this.R=Math.round(this.J/(10*d))/100,864E5<=d&&(this.P=0,vd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.H-=c),c=0;this.ya+=this.ja;this.M+=c;a(b,c)}}};
|
||||
function qc(a,b){if(!Db(a))if(a.j.K)a.f(a.toString()+" busy");else{vd(a);a.j.K=!0;a.j.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.D&&(b&&yd(a.D,!0),a.D.start(a.H,ud(a)));a.A||a.status("Started");setTimeout(a.ib,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){Bd(this);tc(this,this.J);this.J=0;this.j.K=!1;if(b=this.I.run)b.textContent="Run";this.D&&this.D.stop(rb(),ud(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var xd=30,Cd=15,Uc=["power","reset"];
|
||||
function Dd(a){var b=+a.model||1001;Tc.call(this,a,1E6);this.hb=b;this.cb=+a.addrReset||0;this.zb=Ed.bind(this);this.b=L.bind(this);this.ka=null;this.bb=[];this.j.complete=!1}p(Dd,Tc);l=Dd.prototype;l.reset=function(){this.status("Model "+this.hb);this.j.K&&this.V();this.g=this.B=this.za=0;this.u=this.qa=this.cb;this.gb=this.fb=this.Da=this.xb=!1;this.la=this.u;this.v=0;this.C=this.Ob;this.G=this.Zb;this.ka=null;Wc(this);this.j.error=!1;Tc.prototype.reset.call(this)};l.pb=function(){return 0};
|
||||
l.save=function(){var a=new H(this);a.set(0,[this.g,this.B,this.za,this.u,this.qa,this.la,this.v]);a.set(1,[]);a.set(2,[this.P,this.W,this.j.Z]);a.set(3,Fd(this));a.set(4,Ad(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.g=b.next().value;this.B=b.next().value;this.za=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.la=b.next().value;this.v=b.next().value;b=a[2];this.P=b[0];vd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.bb.length;d++){var e=this.bb[d];if(e.Wb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ka,this.ka=d)}a=a[4];for(b=0;b<this.L.length&&b<a.length;b++)this.L[b][0]=
|
||||
a[b];return!0};function Gd(a,b){var c=a.u;a.u=(c+b)%Kb;return c}function Hd(a,b){b?b==Pb?a.gb=a.Da=!0:b=Qb-b:a.fb=a.Da=!0;return b}function Fd(a){var b=[];for(a=a.ka;a;)b.push(a.Wb),a=a.next;return b}l.Ob=function(a){var b=this.F;a=this.la=a;return b.b[(a&b.u)>>>b.g].C(a&16383,a)};l.Zb=function(a,b){var c=this.F;a=this.la=a;c.b[(a&c.u)>>>c.g].G(b,a&16383,a)};
|
||||
l.Ja=function(a){this.j.complete=!0;var b=this.A?Id(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.N=this.O=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Jd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.ka||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Jd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.B=this.B&4194304?this.C(this.g):this.za=this.C(this.qa=this.u);this.B&=8388607;this.g=this.B&262143;if(a=
|
||||
this.B>>18&15)this.g=this.g+this.C(a)&Lb;this.B&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.za/Tb|0);0<=a&&this.zb(a)}while(0<this.O);return this.j.complete?this.N-this.O:!1===this.j.complete?-1:0};Za(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Dd(d);wb(d,c)}});function Ed(a){Kd[a>>4].call(this,a,a&15)}function M(a){this.b(a)}function Ld(a,b){var c=this.C(this.g),d=this.C(b);this.G(b,Md(a,d,c)+(c-(c&262143)))}
|
||||
function Nd(a,b){var c=this.C(b);this.G(b,Md(a,c,0))}function Od(a,b){b=this.C(b);var c=this.C(this.g);this.G(this.g,Md(a,c,b)+(b-(b&262143)))}function Pd(a,b){var c=this.C(this.g),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Ob?262143:0}c=d;this.G(this.g,c);b&&this.G(b,c)}function Qd(a,b){var c=(this.C(this.g)&262143)*F,d=this.C(b);this.G(b,Md(a,d,c)+c)}function Rd(a,b){var c=this.g*F,d=this.C(b);this.G(b,Md(a,d,c)+c)}
|
||||
function Sd(a,b){b=(this.C(b)&262143)*F;var c=this.C(this.g);this.G(this.g,Md(a,c,b)+b)}function Td(a,b){var c=this.C(this.g),d=(c&262143)*F,c=Md(a,c,d)+d;this.G(this.g,c);b&&this.G(b,c)}function Ud(a,b){var c=this.C(this.g)&262143,d=this.C(b);this.G(b,Vd(a,d,c)+c)}function Wd(a,b){var c=this.C(b);this.G(b,Vd(a,c,this.g)+this.g)}function Xd(a,b){b=this.C(b)&262143;var c=this.C(this.g);this.G(this.g,Vd(a,c,b)+b)}
|
||||
function Yd(a,b){var c=this.C(this.g),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*F;break;case 384:d+=c>Nb?262143*F:0}c=d;this.G(this.g,c);b&&this.G(b,c)}function Zd(a,b){var c=this.C(this.g)/F|0,d=this.C(b);this.G(b,Vd(a,d,c)+c)}function $d(a,b){var c=this.C(b);this.G(b,Vd(a,c,0))}function ae(a,b){b=this.C(b)/F|0;var c=this.C(this.g);this.G(this.g,Vd(a,c,b)+b)}function be(a,b){var c=this.C(this.g),d=c/F|0,c=Vd(a,c,d)+d;this.G(this.g,c);b&&this.G(b,c)}function O(a){this.b(a)}
|
||||
function L(a){this.f("undefined opcode: "+pa(a));Gd(this,-1);this.V()}function Vd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Md(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Ob?262143:0}return b}
|
||||
l.Tb=function(){if(this.j.K){this.za>=this.Ua&&wd(this,!0);this.ja=0;this.ra=rb();if(this.M){var a=this.ra-this.M;a>this.Ta&&(this.H+=a,this.H>this.ra&&(this.H=this.ra))}try{do{var b=zd(this,this.j.Ea?1:this.ua);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Bd(this,!0);this.ja+=b;this.J+=b;uc(this,b);sc(this,b);this.aa-=b;if(0>=this.aa){this.aa+=this.ua;++this.Va>=Cd&&(this.F&&I(this.F,void 0),this.Va=0);break}}while(this.j.K)}catch(e){this.V();this.F&&this.F.stop(rb(),ad(this));Cb(this,
|
||||
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.jb;this.M=rb();var c=this.Ta;this.ja&&(c=Math.round(c*this.ja/this.ua));var c=c-(this.M-this.ra),d=this.M-this.H;d&&(this.R=Math.round(this.J/(10*d))/100,864E5<=d&&(this.P=0,bd(this)));if(0>c||this.R<this.S)-1E3>c&&(this.H-=c),c=0;this.za+=this.ja;this.M+=c;a(b,c)}}};
|
||||
function qc(a,b){if(!Db(a))if(a.j.K)a.g(a.toString()+" busy");else{bd(a);a.j.K=!0;a.j.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&yd(a.F,!0),a.F.start(a.H,ad(a)));a.A||a.status("Started");setTimeout(a.jb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){Bd(this);tc(this,this.J);this.J=0;this.j.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(rb(),ad(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var xd=30,Cd=15,Uc=["power","reset"];
|
||||
function Dd(a){var b=+a.model||1001;Tc.call(this,a,1E6);this.ib=b;this.fb=+a.addrReset||0;this.tb=Ed.bind(this);this.b=L.bind(this);this.ka=null;this.eb=[];this.j.complete=!1}p(Dd,Tc);l=Dd.prototype;l.reset=function(){this.status("Model "+this.ib);this.j.K&&this.V();this.f=this.B=this.Aa=0;this.u=this.qa=this.fb;this.Qa=this.hb=this.ya=this.zb=this.Ra=!1;this.la=this.u;this.v=0;this.C=this.Pb;this.D=this.$b;this.ka=null;Wc(this);this.j.error=!1;Tc.prototype.reset.call(this)};l.qb=function(){return 0};
|
||||
l.save=function(){var a=new H(this);a.set(0,[this.f,this.B,this.Aa,this.u,this.qa,this.la,this.v]);a.set(1,[]);a.set(2,[this.P,this.W,this.j.Z]);a.set(3,Fd(this));a.set(4,Ad(this));return a.data()};
|
||||
l.restore=function(a){var b;b=a[0];fa();ca();fa();var c=b[Symbol.iterator];b=c?c.call(b):ga(b);this.f=b.next().value;this.B=b.next().value;this.Aa=b.next().value;this.u=b.next().value;this.qa=b.next().value;this.la=b.next().value;this.v=b.next().value;b=a[2];this.P=b[0];bd(this,b[1]);this.j.Z=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.eb.length;d++){var e=this.eb[d];if(e.Xb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ka,this.ka=d)}a=a[4];for(b=0;b<this.L.length&&b<a.length;b++)this.L[b][0]=
|
||||
a[b];return!0};function Gd(a,b){var c=a.u;a.u=(c+b)%Kb;return c}l.abs=function(a){a>Ob&&(a!=Pb?a=Qb-a:this.Qa=this.ya=!0);return a};function Hd(a,b){b?b==Pb?a.Qa=a.ya=!0:b=Qb-b:a.hb=a.ya=!0;return b}function Fd(a){var b=[];for(a=a.ka;a;)b.push(a.Xb),a=a.next;return b}l.Pb=function(a){var b=this.G;a=this.la=a;return b.b[(a&b.u)>>>b.f].C(a&16383,a)};l.$b=function(a,b){var c=this.G;a=this.la=a;c.b[(a&c.u)>>>c.f].D(b,a&16383,a)};
|
||||
l.Ja=function(a){this.j.complete=!0;var b=this.A?Id(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.N=this.O=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Jd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.ka||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Jd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.B=this.B&4194304?this.C(this.f):this.Aa=this.C(this.qa=this.u);this.B&=8388607;this.f=this.B&262143;if(a=
|
||||
this.B>>18&15)this.f=this.f+this.C(a)&Lb;this.B&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.Aa/Tb|0);0<=a&&this.tb(a)}while(0<this.O);return this.j.complete?this.N-this.O:!1===this.j.complete?-1:0};Za(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Dd(d);wb(d,c)}});function Ed(a){Kd[a>>4].call(this,a,a&15)}function M(a){this.b(a)}function Ld(a,b){var c=this.C(this.f),d=this.C(b);this.D(b,Md(a,d,c)+(c-(c&262143)))}
|
||||
function Nd(a,b){var c=this.C(b);this.D(b,Md(a,c,0))}function Od(a,b){b=this.C(b);var c=this.C(this.f);this.D(this.f,Md(a,c,b)+(b-(b&262143)))}function Pd(a,b){var c=this.C(this.f),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Ob?262143:0}c=d;this.D(this.f,c);b&&this.D(b,c)}function Qd(a,b){var c=(this.C(this.f)&262143)*F,d=this.C(b);this.D(b,Md(a,d,c)+c)}function Rd(a,b){var c=this.f*F,d=this.C(b);this.D(b,Md(a,d,c)+c)}
|
||||
function Sd(a,b){b=(this.C(b)&262143)*F;var c=this.C(this.f);this.D(this.f,Md(a,c,b)+b)}function Td(a,b){var c=this.C(this.f),d=(c&262143)*F,c=Md(a,c,d)+d;this.D(this.f,c);b&&this.D(b,c)}function Ud(a,b){var c=this.C(this.f)&262143,d=this.C(b);this.D(b,Vd(a,d,c)+c)}function Wd(a,b){var c=this.C(b);this.D(b,Vd(a,c,this.f)+this.f)}function Xd(a,b){b=this.C(b)&262143;var c=this.C(this.f);this.D(this.f,Vd(a,c,b)+b)}
|
||||
function Yd(a,b){var c=this.C(this.f),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*F;break;case 384:d+=c>Nb?262143*F:0}c=d;this.D(this.f,c);b&&this.D(b,c)}function Zd(a,b){var c=this.C(this.f)/F|0,d=this.C(b);this.D(b,Vd(a,d,c)+c)}function $d(a,b){var c=this.C(b);this.D(b,Vd(a,c,0))}function ae(a,b){b=this.C(b)/F|0;var c=this.C(this.f);this.D(this.f,Vd(a,c,b)+b)}function be(a,b){var c=this.C(this.f),d=c/F|0,c=Vd(a,c,d)+d;this.D(this.f,c);b&&this.D(b,c)}function O(a){this.b(a)}
|
||||
function L(a){this.g("undefined opcode: "+pa(a));Gd(this,-1);this.V()}function Vd(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*F;break;case 384:b=c>Nb?262143*F:0}return b}function Md(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Ob?262143:0}return b}
|
||||
var Kd=[M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.G(b,this.C(this.g))},function(a,b){this.G(b,this.g)},function(a,b){this.G(this.g,this.C(b))},function(a,b){b&&this.G(b,this.C(this.g))},function(a,b){a=this.C(this.g);a=a/F|(a&262143)*F;this.G(b,a)},function(a,b){this.G(b,this.g*F)},function(a,b){a=this.C(b);a=a/F|(a&262143)*F;this.G(this.g,a)},function(a,b){a=this.C(this.g);a=a/F|(a&262143)*F;this.G(this.g,a);b&&this.G(b,a)},function(a,
|
||||
b){this.G(b,Hd(this,this.C(this.g)))},function(a,b){this.G(b,this.g?Qb-this.g:0)},function(a,b){this.G(this.g,Hd(this,this.C(b)))},function(a,b){a=Hd(this,this.C(this.g));this.G(this.g,a);b&&this.G(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a,b){a=this.C(b);this.G(b,this.C(this.g));this.G(this.g,a)},function(a,b){a=!1;for(var c=this.C(b),d=c/F|0,c=c&262143;!a;)this.G(c,this.C(d)),c==this.g&&(a=!0),d=d+1&262143,
|
||||
c=c+1&262143,this.j.K||(this.G(b,d*F+c),a||Gd(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a,b){this.D(b,this.C(this.f))},function(a,b){this.D(b,this.f)},function(a,b){this.D(this.f,this.C(b))},function(a,b){b&&this.D(b,this.C(this.f))},function(a,b){a=this.C(this.f);a=a/F|(a&262143)*F;this.D(b,a)},function(a,b){this.D(b,this.f*F)},function(a,b){a=this.C(b);a=a/F|(a&262143)*F;this.D(this.f,a)},function(a,b){a=this.C(this.f);a=a/F|(a&262143)*F;this.D(this.f,a);b&&this.D(b,a)},function(a,
|
||||
b){this.D(b,Hd(this,this.C(this.f)))},function(a,b){this.D(b,this.f?Qb-this.f:0)},function(a,b){this.D(this.f,Hd(this,this.C(b)))},function(a,b){a=Hd(this,this.C(this.f));this.D(this.f,a);b&&this.D(b,a)},function(a,b){this.D(b,this.abs(this.C(this.f)))},function(a,b){this.D(b,this.f)},function(a,b){this.D(this.f,this.abs(this.C(b)))},function(a,b){a=this.abs(this.C(this.f));this.D(this.f,a);b&&this.D(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a,b){a=this.C(b);this.D(b,this.C(this.f));this.D(this.f,
|
||||
a)},function(a,b){a=!1;for(var c=this.C(b),d=c/F|0,c=c&262143;!a;)this.D(c,this.C(d)),c==this.f&&(a=!0),d=d+1&262143,c=c+1&262143,this.j.K||(this.D(b,d*F+c),a||Gd(this,-1),a=!0)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},L,function(a){this.b(a)},function(a,b){a=this.C(b);a+=262145;this.D(a&262143,this.C(this.f));a>=Mb&&(a-=Mb);a/F|0||(this.Ra=!0);this.D(b,a)},function(a,b){a=this.C(b);var c=this.C(a&262143);this.D(this.f,c);
|
||||
this.f==b&&(a=c);a-=262145;0>a&&(a+=Mb);262143==(a/F|0)&&(this.Ra=!0);this.D(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,
|
||||
Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ld,Nd,Od,Pd,Qd,Rd,Sd,Td,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,Ud,Wd,Xd,Yd,Zd,$d,ae,be,function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
|
||||
function ce(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.g=a.alias;"string"==typeof this.g&&(this.g=eval(this.g));this.v=a.file;this.H=qa(this.v);if(this.v){a=this.v;var b=ra(this.H);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.b=a.Y,c.T=a.T):c.v=null);de(c)})}}p(ce,v);
|
||||
ce.prototype.va=function(a,b,c,d){this.F=b;this.i=c;this.A=d;de(this)};ce.prototype.pa=function(){this.T&&(this.A&&ee(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};ce.prototype.fa=function(){return!0};
|
||||
function de(a){if(!Eb(a)){if(a.v){if(!a.b||!a.F)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Cb(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.u,8,!0)+")");else{var b;b=a.B;if(Cc(a.F,b,a.u,Kc)){var c;for(c=0;c<a.b.length;c++)wc(a.F,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.g?b.push(a.g):null!=a.g&&a.g.length&&(b=a.g);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.F,f=d.u,h=[],k=d.B>>>g.g;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.F;d=d.u;f=0;for(e>>>=
|
||||
g.g;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}D(a)}}Za(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ce(d);wb(d,c)}});
|
||||
function fe(a){v.call(this,"RAM",a);this.T=this.Aa=null;this.g=+a.addr;this.u=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.v=this.H=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.Aa=a.Aa,
|
||||
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);ge(c)})}}p(fe,v);fe.prototype.va=function(a,b,c,d){this.F=b;this.i=c;this.A=d;ge(this)};fe.prototype.pa=function(a,b){this.T&&(this.A&&ee(this.A,this.id,this.g,this.u,this.T),delete this.T);b||this.reset();return!0};fe.prototype.fa=function(){return!0};
|
||||
function ge(a){if(a.F&&(!a.v&&a.u&&(Cc(a.F,a.g,a.u,1)?a.v=!0:a.u=0),!Eb(a))){if(!a.v)u("No RAM allocated");else if(a.b){if(!a.Aa)return;he(a,a.Aa,a.na,a.ma,a.g)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.H=!0;D(a)}}
|
||||
fe.prototype.reset=function(){if(this.v&&!this.H){for(var a=this.F,b=this.g,c=this.u,d=b&16383,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.D(f,d,e.w+d);c-=16384;b++;d=0}this.Aa&&he(this,this.Aa,this.na,this.ma,this.g,!this.A)}this.H=!1};
|
||||
function he(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)wc(a.F,c+f,b[f]);f=!0}f&&(null==d&&(a.i.V(),g=!1),null!=d&&(a=a.i,a.cb=d,a.u=d%Kb,g?a.j.U?a.j.K||qc(a):a.j.Z=!0:a.A&&a.j.U?a.V()||a.D.j.reset||(Yc(a.A),I(a.D,-1)):!1===g&&a.V(),!a.j.K&&a.xa&&a.xa.stop()));return f}Za(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new fe(d);wb(d,c)}});
|
||||
function ie(a){v.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.g=[];var b=a.binding;if("console"!=b){var c;a=je;b&&(void 0===c&&(c="Panel"),(c=vb(c,this.id))&&(b=c.I[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.rb,receiveData:this.Na,receiveStatus:this.Qb,setConnection:this.Tb}}p(ie,v);l=ie.prototype;
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case je:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.$a:q.wb:46==c?b=q.$a:a.ctrlKey&&c>=q.Za&&c<=q.yb&&(b=c-(q.Za-q.tb));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.vb&&(b=q.ub);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.va=function(a,b,c,d){this.D=a;this.F=b;this.i=c;this.A=d;D(this)};
|
||||
l.rb=function(a){if(!this.b){var b=Vc(this.D,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.Ka)return;c=Ca(c[1]);if(this.b=ub(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.rb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.g.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.g.push(b)}else this.g=this.g.concat(a);return!0};l.Qb=function(){};l.Tb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var je="buffer";
|
||||
Za(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ie(d);wb(d,c)}});function ke(a){v.call(this,"Debugger",a);this.ba=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.v=-1;this.u=[];this.W={}}p(ke,v);ke.prototype.qb=function(){return-1};ke.prototype.Xa=function(){};
|
||||
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,
|
||||
O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O];
|
||||
function ce(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.B=+a.addr;this.u=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.v=a.file;this.H=qa(this.v);if(this.v){a=this.v;var b=ra(this.H);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.v+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.b=a.Y,c.T=a.T):c.v=null);de(c)})}}p(ce,v);
|
||||
ce.prototype.va=function(a,b,c,d){this.G=b;this.i=c;this.A=d;de(this)};ce.prototype.pa=function(){this.T&&(this.A&&ee(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};ce.prototype.fa=function(){return!0};
|
||||
function de(a){if(!Eb(a)){if(a.v){if(!a.b||!a.G)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Cb(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.u,8,!0)+")");else{var b;b=a.B;if(Cc(a.G,b,a.u,Kc)){var c;for(c=0;c<a.b.length;c++)wc(a.G,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],g=d.G,f=d.u,h=[],k=d.B>>>g.f;0<f&&k<g.b.length;)h.push(g.b[k++]),f-=16384;g=d.G;d=d.u;f=0;for(e>>>=
|
||||
g.f;0<d&&e<g.b.length;){k=h[f++];if(!k)break;g.b[e++]=k;d-=16384}}delete a.b}}}D(a)}}Za(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ce(d);wb(d,c)}});
|
||||
function fe(a){v.call(this,"RAM",a);this.T=this.Ba=null;this.f=+a.addr;this.u=+a.size;this.na=a.load;this.ma=a.exec;null!=this.na&&(this.na=+this.na);null!=this.ma&&(this.ma=+this.ma);this.v=this.H=!1;this.b=a.file;this.B=qa(this.b);if(this.b){a=this.b;var b=ra(this.B);"json"!=b&&"hex"!=b&&(a=ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Fa(a,null,!0,function(a,b,g){g?(c.ca("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(pb(c.La,a,b),(a=Ga(a,b))?(c.Ba=a.Ba,
|
||||
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);ge(c)})}}p(fe,v);fe.prototype.va=function(a,b,c,d){this.G=b;this.i=c;this.A=d;ge(this)};fe.prototype.pa=function(a,b){this.T&&(this.A&&ee(this.A,this.id,this.f,this.u,this.T),delete this.T);b||this.reset();return!0};fe.prototype.fa=function(){return!0};
|
||||
function ge(a){if(a.G&&(!a.v&&a.u&&(Cc(a.G,a.f,a.u,1)?a.v=!0:a.u=0),!Eb(a))){if(!a.v)u("No RAM allocated");else if(a.b){if(!a.Ba)return;he(a,a.Ba,a.na,a.ma,a.f)?a.status('Loaded image "'+a.B+'"'):a.ca('Error loading image "'+a.B+'"')}a.H=!0;D(a)}}
|
||||
fe.prototype.reset=function(){if(this.v&&!this.H){for(var a=this.G,b=this.f,c=this.u,d=b&16383,b=b>>>a.f;0<c&&b<a.b.length;){var e=a.b[b],g=c,f=0,h,d=d||0,f=f||0;0>f&&f>=ma&&(f+=la);f=Math.trunc(Math.abs(f))%la;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.w+d);c-=16384;b++;d=0}this.Ba&&he(this,this.Ba,this.na,this.ma,this.f,!this.A)}this.H=!1};
|
||||
function he(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)wc(a.G,c+f,b[f]);f=!0}f&&(null==d&&(a.i.V(),g=!1),null!=d&&(a=a.i,a.fb=d,a.u=d%Kb,g?a.j.U?a.j.K||qc(a):a.j.Z=!0:a.A&&a.j.U?a.V()||a.F.j.reset||(Yc(a.A),I(a.F,-1)):!1===g&&a.V(),!a.j.K&&a.xa&&a.xa.stop()));return f}Za(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new fe(d);wb(d,c)}});
|
||||
function ie(a){v.call(this,"SerialPort",a,1048576);this.v=a.upperCase;"string"==typeof this.v&&(this.v="true"==this.v);this.u=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=je;b&&(void 0===c&&(c="Panel"),(c=vb(c,this.id))&&(b=c.I[b])&&this.ga(null,a,b))}this.b=this.B=null;this.exports={connect:this.sb,receiveData:this.Na,receiveStatus:this.Rb,setConnection:this.Ub}}p(ie,v);l=ie.prototype;
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case je:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.bb:q.xb:46==c?b=q.bb:a.ctrlKey&&c>=q.ab&&c<=q.yb&&(b=c-(q.ab-q.ub));b&&(a.preventDefault&&a.preventDefault(),d.Na(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.wb&&(b=q.vb);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.va=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.A=d;D(this)};
|
||||
l.sb=function(a){if(!this.b){var b=Vc(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ca(c[0]);if(d!=this.Ka)return;c=Ca(c[1]);if(this.b=ub(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.B=e.receiveData){this.u=a;this.status("Connected "+this.La+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};l.pa=function(a,b){if(!b)if(this.sb(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
l.fa=function(a){return a?this.save():!0};l.reset=function(){};l.save=function(){var a=new H(this);a.set(0,[]);return a.data()};l.restore=function(){return!0};l.Na=function(a){if("number"==typeof a)this.f.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.f.push(b)}else this.f=this.f.concat(a);return!0};l.Rb=function(){};l.Ub=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var je="buffer";
|
||||
Za(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ie(d);wb(d,c)}});function ke(a){v.call(this,"Debugger",a);this.ba=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.v=-1;this.u=[];this.W={}}p(ke,v);ke.prototype.rb=function(){return-1};ke.prototype.Za=function(){};
|
||||
function le(a,b,c,d){if(c)if(b){0>a.v&&a.u.length&&(a.v=0);if(0>a.v||b!=a.u[a.v])a.u.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.u[a.v+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(Ca(b.substring(c,g))),c=g+1}}return a}
|
||||
function me(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 P(a,b,c){var d;if(b){b=ne(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ca(n);if(!n){g=!0;break}n=oe(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++],z=n.length;k.length&&pe[n]<pe[k[k.length-1]]&&me(h,k,1);k.push(n);b=b.substr(r+z)}me(h,k)&&1==h.length||(g=!0);g?c&&a.f("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&qe(a,null,
|
||||
function P(a,b,c){var d;if(b){b=ne(a,b);for(var e=0,g=!1,f=b,h=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Ca(n);if(!n){g=!0;break}n=oe(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++],z=n.length;k.length&&pe[n]<pe[k[k.length-1]]&&me(h,k,1);k.push(n);b=b.substr(r+z)}me(h,k)&&1==h.length||(g=!0);g?c&&a.g("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&qe(a,null,
|
||||
d))}return d}function ne(a,b){for(var c,d=a.la?"(":"{",e=a.la?")":"}",g=new RegExp(a.la?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(g))&&!(0<=c[1].indexOf(d));){var f=P(a,c[1]);b=b.replace(d+c[1]+e,null!=f?K(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 oe(a,b,c,d){var e;null!=b?(e=a.qb(b),0<=e?e=a.Xa(e):(e=a.W[b],null==e&&(e=na(b,a.ba))),null!=e||d||a.f("invalid "+(c?c:"value")+": "+b)):d||a.f("missing "+(c||"value"));return e}
|
||||
function qe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var z=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(z?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.f((null!=b?b+": ":"")+d);return e}
|
||||
function oe(a,b,c,d){var e;null!=b?(e=a.rb(b),0<=e?e=a.Za(e):(e=a.W[b],null==e&&(e=na(b,a.ba))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function qe(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var g=4,f="";if(!g||4<g)g=4;for(var h=0;h<g;h++){f&&(f=","+f);var k=d&255,m=void 0,n=8,r="";n?32<n&&(n=32):n=32;for(var z=null==k||isNaN(k),U=m=m||n;0<n--;)U||(r=","+r,U=m),r=(z?"?":k&1?"1":"0")+r,k>>=1,U--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+pa(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}
|
||||
function re(a,b){if(b)return qe(a,b,a.W[b]);var c=0;for(b in a.W)qe(a,b,a.W[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ba){case 8:b=pa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=oa(b,10,a);break;default:b=t(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var pe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function se(a){ke.call(this,a);this.ya=!1;this.la=!0;this.xa=Q();this.L=Q(0);this.ja=Q(0);this.da=Q(0);this.H=[];this.b=this.M=this.J=[];te(this);this.R=this.ka=0;this.g=[];this.sa=void 0;ue(this);this.A=this;this.qa={};this.X=this.lb=0;this.S=null;this.O=[];ve(this,a.messages);this.ua=a.commands;this.N=0;this.Da=this.ta=null;this.B=this.Ca=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return td(b,a)}):void 0===global[B]&&(global[B]=function(a){return td(b,
|
||||
a)})}p(se,ke);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function Q(a,b,c){return{w:void 0===a?null:a,ob:void 0===b?!1:b,ea:!1,ba:c}}function we(a,b,c,d){a.w=b;a.ob=c||!1;a.ea=!1;a.ba=d}function xe(a){return[a.w,a.ob,a.ba,a.ea,a.Oa]}function ye(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.jb=le(a,c.Oa=b[4]));return c}l=se.prototype;
|
||||
l.va=function(a,b,c,d){this.F=b;this.D=a;this.i=c;this.ha=a.u;(a=Vc(a,"messages"))&&ve(this,a);ze(this,function(a){a:{var b=d.F.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c,d.ja));if(-1===a){d.f("invalid address: "+c);break a}e=a>>>d.F.g;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=Fc[c],n&&d.f(t(n.id,8)+" %"+t(e<<d.F.g,8)+" %"+t(n.w,8)+" "+t(n.Ha,
|
||||
function se(a){ke.call(this,a);this.ya=!1;this.la=!0;this.xa=Q();this.L=Q(0);this.ja=Q(0);this.da=Q(0);this.H=[];this.b=this.M=this.J=[];te(this);this.R=this.ka=0;this.f=[];this.sa=void 0;ue(this);this.A=this;this.qa={};this.X=this.mb=0;this.S=null;this.O=[];ve(this,a.messages);this.ua=a.commands;this.N=0;this.Da=this.ta=null;this.B=this.Aa=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[B]&&(window[B]=function(a){return $c(b,a)}):void 0===global[B]&&(global[B]=function(a){return $c(b,
|
||||
a)})}p(se,ke);function S(a){a=a&&a.w;null==a&&(a=-1);return a}function Q(a,b,c){return{w:void 0===a?null:a,pb:void 0===b?!1:b,ea:!1,ba:c}}function we(a,b,c,d){a.w=b;a.pb=c||!1;a.ea=!1;a.ba=d}function xe(a){return[a.w,a.pb,a.ba,a.ea,a.Oa]}function ye(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.kb=le(a,c.Oa=b[4]));return c}l=se.prototype;
|
||||
l.va=function(a,b,c,d){this.G=b;this.F=a;this.i=c;this.ha=a.u;(a=Vc(a,"messages"))&&ve(this,a);ze(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=S(T(d,c,d.ja));if(-1===a){d.g("invalid address: "+c);break a}e=a>>>d.G.f;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;k--;){var n=b[e];n.type==c?m++||d.g("..."):(c=n.type,m=Fc[c],n&&d.g(t(n.id,8)+" %"+t(e<<d.G.f,8)+" %"+t(n.w,8)+" "+t(n.Ha,
|
||||
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=Jc&&(c=-1),m=0);a+=16384;e++}}});D(this)};
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",td(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Xa(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";td(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Xa(c,function(a){var b=!1;Fb(d,!0)||(Gb(d,!0),b=rc(d,a?1:0,null),Gb(d,!1));return b}),!0}return!1};function Zc(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=S(a);-1!==d&&(c=xc(this.F,d),b&&null!=a.w&&(a.w+=b||1));return c};l.ab=function(a,b,c){var d=S(a);-1!==d&&(wc(this.F,d,b),c&&null!=a.w&&(a.w+=c||1),I(this.D,-1))};
|
||||
function T(a,b,c){var d,e;c||(c=Q());var g=c.w;if(void 0!==b){b=ne(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.H.length;k++){var m=a.H[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=Q(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=P(a,b,void 0)}null!=g&&we(c,g,d,e);return c}function Ae(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.jb=le(a,b.Oa=c[2]))}
|
||||
function Be(a){return pa(a/Kb,6)+" "+pa(a%Kb,6)}function ve(a,b){a.A=a;a.X=a.lb=536870916;a.S=null;a.O=[];b=le(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.f(c+" messages enabled"))}}function ze(a,b){for(var c in G)if(16==G[c]){a.qa[c]=b;break}}l.qb=function(a){return Ce.indexOf(a.toUpperCase())};
|
||||
l.Xa=function(a){var b;switch(a){case De:b=this.i.u;break;case Ee:b=this.i.B;break;case Fe:b=this.i.g;break;case Ge:b=this.i.fb?1:0;break;case He:b=this.i.Da?1:0;break;case Ie:b=this.i.gb?1:0;break;case Je:b=this.i.xb?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+K(this,Q(this.i.qa).w));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.i&&(c=this.i.j.K)||Fb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.f(a);this.i&&(a=this.i,Bd(a),a.aa=0,a.D&&I(a.D,void 0))}};
|
||||
function ue(a){var b;if(!Id(a))a.g&&a.g.length&&a.f("instruction history buffer freed"),a.R=0,a.g=[];else if(!a.g||!a.g.length){a.g=Array(Ke);for(b=0;b<a.g.length;b++)a.g[b]=Q();a.R=0;a.f("instruction history buffer allocated")}}function Le(a,b,c){if(!rf(a,c))return!1;qc(a.i,b);return!0}
|
||||
function rc(a,b,c,d){if(!rf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||Id(a)&&Jd(a,a.i.u,0);try{b=zd(a.i,b);var g=a.i.Ja(b);0<g&&(sc(a.i,g),a.B+=g,tc(a.i,g,!0),uc(a.i,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Cb(a.i,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),I(a.D,-1));Yc(a,c||!1,e);return 0<a.B}l.V=function(a){this.i&&this.i.V(a)};function Yc(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.f(tf+c),we(a.L,a.i.u),b&&1!=a.N?uf(a):vf(a))}
|
||||
function rf(a,b){var c;(c=!a.i||!Eb(a.i))||(c=a.i,c.j.U?c=!0:(c.f(c.toString()+" not powered"),c=!1),c=!c);return c||a.i.j.K?(b||a.f("cpu busy or unavailable, command ignored"),!1):!Db(a.i)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.f(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ue(this);this.ia=0;this.S=null;this.B=0;we(this.L,this.i.u);this.j.K=!1;wf(this);a||Yc(this)};
|
||||
l.save=function(){var a=new H(this);a.set(0,xe(this.L));a.set(1,xe(this.ja));a.set(2,xe(this.da));a.set(3,[this.u,this.P,this.X]);a.set(4,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=ye(this,a[b++]),this.ja=ye(this,a[b++]),this.da=ye(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.H=a[4]);return!0};l.start=function(a,b){this.N||this.f("running");this.j.K=!0;this.za=a;this.Ca=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Ca;if(!this.N){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Id(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Hb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.f(b)}Yc(this,!0);Zc(this);wf(this,this.i.u);this.S=null}};function Id(a){return 1<a.b.length||!!a.ka}
|
||||
function Jd(a,b,c){var d=-1;c||(d=a.i.C(b),2756==d>>23&&a.i.qa==b&&(b=Gd(a.i,1)));if(0<c&&(a.ka&&!--a.ka||Sc(a,b,1,a.b)))return!0;0<=c&&a.g.length&&(a.ia++,0>d&&(d=a.i.C(b)),0<=d&&(we(a.g[a.R],b),++a.R==a.g.length&&(a.R=0)));return!1}
|
||||
function xf(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Rb|0,r;for(r in yf)if(f=yf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=zf;m=n&3;break;case 32256:k=Af;m=n&7;break;case 29248:k=Bf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Cf&&(k="B");k=Df[f||0]+k;k=Ba(k,8);f?(k=28700==h?k+K(a,g/Sb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=Be(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+Be(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=Ba(f,16)+g;c&&(h=Ba(h,48)+";"+(c||""),h=a.i.j.Ea?h+("cycles="+ud(a.i).toString()+" cs="+t(a.i.sa)):h+(null!=d?"="+d.toString():""));return h}function te(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=S(c);var d=a.F;Rc(d.b[c>>>d.g],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=S(c),d=a.F,Rc(d.b[c>>>d.g],!0);a.J=["bw"];a.ra=0;a.ka=0}
|
||||
l.Ba=function(a,b,c){var d=!0;c||Ef(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.f("invalid address: "+K(this,b.w)),d=!1;else{var g=this.F;g.b[e>>>g.g].Ba(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(Ff(this,a,a.length-1,"set"),ue(this)));return d};function Ef(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||Ff(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.F,Rc(d.b[c>>>d.g],b==a.J));h.ea||ue(a);break}}return g}
|
||||
function Gf(a,b){for(var c=1;c<b.length;c++)Ff(a,b,c);return b.length-1}function Ff(a,b,c,d){c=b[c];a.f(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function wf(a,b){if(void 0!==b)Sc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!Ef(a,a.b,c,!0))break;b=0}}}
|
||||
function Sc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Ef(a,d,h,!0),e=!0);if(n=h.jb){for(var g=!1,r=0;r<n.length;r++)if(!Hf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var z=r+1;z<n.length&&n[z].indexOf("else");z++)r++;if(z==n.length){g=!0;break}}a.i.j.K||(g=!0)}if(g){e||Ff(a,d,f,"hit");break}}}a.ra--;return g}
|
||||
function If(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=pa(d,2);we(e.xa,d);g+="="+K(e,e.wa(e.xa),36)+" ";c+=g}if(b){b="";for(d=0;d<Ce.length;d++)(e=Ce[d]||"")&&(e+="="+K(a,a.Xa(d),d>=Ge?1:d==Ee?23:18)+" "),b+=e;c+="\n"+b}return c}l.mb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function ee(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Da(n,k,a.mb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({dd:b,w:c,Db:d,T:e,kb:g})}function Jf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.H.length;b++){var g=a.H[b],f=g.w>>>0,h=g.Db;if(e>=f&&e<f+h){e=Da(g.kb,[e-f],a.mb);0<=e?Kf(a,b,e,d):c&&(e=~e,Kf(a,b,e-1,d),Kf(a,b,e,d));break}}return d}
|
||||
function Kf(a,b,c,d){var e={},g=a.H[b].kb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Lf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return re(a)||a.f("no variables"),!0;if(!c[2])return re(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.f("invalid assignment:"+b);return!1}
|
||||
function Mf(a,b,c){var d=null;if(b=T(a,b)){var e=Jf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.f(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.f(g),d||(d=g))}else c&&a.f("no symbols")}return d}
|
||||
function uf(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=a.i,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.f("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.u=f%Kb;we(a.L,d.u);break;default:a.f("unknown register: "+
|
||||
g);return}I(a.D);a.f("updated registers:")}}a.f(If(a,e));c&&(we(a.L,d.u),vf(a,K(a,a.L.w)))}}function Nf(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.f(c[2]):qe(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
|
||||
function Of(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=oe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Wa(c,function(){return Gb(a,!0)&&rc(a,e,d,!1)},function(){a.ha&&a.ha.stop();I(a.D,-1);Gb(a,!1)})}}
|
||||
function vf(a,b,c,d){if(b=T(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=oe(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.f("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Fb(a,!1)||a.N?a.B:null,f=null!=g?"cycles":null,h=Jf(a,b),k=b.w;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);h=a.da;m=b;h.w=m.w;h.ea=m.ea;h.ba=m.ba;a.f(xf(a,b,f,g));e-=b.w-k;c++}}}
|
||||
function Hf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.f(tf+b):(a.P&&(a.f("ended assemble at "+K(a,a.da.w)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Eb(a)&&0<b.length){a.P&&(b="a "+K(a,a.da.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=T(a,
|
||||
f[1],a.da);if(r){var z=f[2];if(void 0==z)a.f("begin assemble at "+K(a,r.w)),a.P=!0,I(a.D);else{f.shift();f.shift();f.shift();var U,Me=f.join(""),y=-1,cc,pg=z.toUpperCase(),$c;for($c in yf){var Ia;cc=+$c;var Ne=yf[$c];switch(cc){case 32512:Ia=zf;break;case 32256:Ia=Af;break;case 29248:Ia=Bf;break;default:Ia=[""]}var Oe,ad;for(ad in Ne){for(var Pe=Ne[ad],Ja=0;Ja<Ia.length;Ja++){var bd=Ia[Ja];"S"==bd&&Pe>Cf&&(bd="B");if(pg==Df[Pe]+bd){Oe=29248!=cc?Ja:(Ja&3)<<1|(Ja&12)<<2;y=(ad|Oe<<6)*Rb;break}}if(0<=
|
||||
y)break}if(0<=y)break}if(0<=y)if(Me)for(var cd=Me.split(","),fb=0;fb<cd.length;fb++){var dc=cd[fb].trim();if(dc){if(1<fb){a.f("too many operands: "+dc);y=-1;break}var V=dc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.f("unknown operand: "+dc);y=-1;break}var E=P(a,V[2]);if(void 0==E){y=-1;break}if(!fb&&1<cd.length)if(28700==cc){if(0>E||127<E){a.f("device code out of range: "+V[2]);y=-1;break}y+=E*Sb}else{if(0>E||15<E){a.f("accumulator address out of range: "+V[2]);y=-1;break}y+=E<<23}else{if(0>E||262143<
|
||||
E){a.f("memory address out of range: "+V[2]);y=-1;break}y+=E;if(V[3]){E=P(a,V[3]);if(void 0==E){y=-1;break}if(0>E||15<E){a.f("memory index out of range: "+V[3]);y=-1;break}y+=E<<18}V[1]&&(y+=4194304)}}}else a.f("missing operand(s)"),y=-1;else a.f("unknown instruction: "+z);U=y;0<=U&&(a.ab(r,U),a.f(xf(a,r)))}}break;case "b":a:{var qg=f[0],Ka=f[1],rg=b;if("?"==Ka)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 sa=qg.charAt(1);if("l"==sa){var dd;dd=0+Gf(a,a.b);dd+=Gf(a,a.M);(dd+=Gf(a,a.J))||a.f("no breakpoints")}else if("n"==sa){var Qe=+Ka||0;Ka&&(a.ka=Qe);a.f("break after "+Qe+" instruction(s)")}else if(void 0===Ka)a.f("missing breakpoint address");else{var J=Q();if("*"!=Ka&&(J=T(a,Ka,a.L),!J))break a;"c"==sa?null==J.w?(te(a),a.f("all breakpoints cleared")):Ef(a,a.b,J)||Ef(a,a.M,J)||Ef(a,a.J,J)||a.f("breakpoint missing: "+
|
||||
K(a,J.w)):null!=J.w&&(Ae(a,J,rg),"p"==sa?a.Ba(a.b,J):"r"==sa?a.Ba(a.M,J):"w"==sa?a.Ba(a.J,J):a.f("unknown breakpoint command: "+sa))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var La,Ma=f[0],W=f[1],ia=f[2],sg=f[3];if("?"==W){var Na="";for(La in G)a.qa[La]&&(Na&&(Na+=","),Na+=La);Na+=",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");
|
||||
Na.length&&a.f("dump extension commands:\n\t"+Na)}else if("state"==W){var ed=Pf(a.D,!0);"console"==ia?console.log(ed):(a.oa&&(a.oa.value=""),ed&&a.f(ed))}else if("symbols"==W)for(var fd=0;fd<a.H.length;fd++){var gd=a.H[fd],Oa;for(Oa in gd.T)if("."!=Oa.charAt(0)){var Re=gd.T[Oa].o;if(void 0!==Re){var Se=gd.T[Oa].l;Se&&(Oa=Se);a.f(K(a,Re)+" "+Oa)}}}else{if("d"==Ma){for(La in G)if(f[1]==La){var Te=a.qa[La];Te?(f.shift(),f.shift(),Te(f)):a.f("no dump registered for "+W);break a}W||(Ma=a.Da||"dw")}else a.Da=
|
||||
Ma;if("dh"==Ma){var Ue=W,Ve=ia,We="",Xe=0,R=a.R,X=a.g;if(X.length){var N=+Ue||a.sa,hb=+Ve||10;isNaN(N)?N=hb:We="more ";N>X.length&&(a.f("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var hd=[];"call"==Ve&&(hb=1E5,hd=["CALL"]);for(void 0!==Ue&&a.f(N+" instructions earlier:");0<hb&&R!=a.R;){var Ye=X[R++];if(null==Ye.w)break;var ib=Q(Ye.w),tg=N--,Ze=xf(a,ib,"history",tg);(!hd.length||0<=Ze.indexOf(hd[0]))&&a.f(Ze);ib.Va&&(R+=ib.Va,hb-=ib.Va,
|
||||
N-=ib.Va);R>=X.length&&(R=0);a.sa=N;Xe++;hb--}}Xe||(a.f("no "+We+"history available"),a.sa=void 0)}else{var Pa=T(a,W,a.ja);if(Pa){var ta=0,$e="ds"==Ma;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||sg,ta=oe(a,ia);else{var af=T(a,ia);af&&(ta=af.w-Pa.w)}0>ta&&(ta=0);65536<ta&&(ta=65536)}var ug=a.ba;Pa.ba&&(a.ba=Pa.ba);for(var bf="db"==Ma?1:2,id=ta||32,jd=1==bf?2:4,vg=(id+jd-1)/jd|0||1,ua="";vg--&&0<id;){for(var va="",cf="",W=K(a,Pa.w),df=jd;0<df--&&0<id--;){var ec=a.wa(Pa,1);$e?(va&&(va+=","),va+=ec):
|
||||
(va+=Be(ec),va+=" ");for(var ef=0;1==bf&&6>ef;ef++)cf+=String.fromCharCode((ec%64|0)+32),ec/=64}ua&&(ua+="\n");ua=$e?ua+(va+","):ua+(W+": "+va+(0>df?" "+cf:""))}ua&&a.f(ua);a.ba=ug}}}}break;case "e":if("else"==f[0])break;var ff,gf,hf=f[0],kd=f[1];"e"==hf||"ew"==hf?(ff=a.wa,gf=a.ab):kd=null;if(null==kd)a.f("edit memory commands:"),a.f("\tew [a] [...] edit words at address a");else{var fc=T(a,kd,a.ja);if(fc)for(var gc=2;gc<f.length;gc++){var ld=P(a,f[gc]);if(void 0===ld){a.f("unknown value: "+f[gc]);
|
||||
break}a.f("changing "+K(a,fc.w)+" from "+Be(ff.call(a,fc))+" to "+Be(ld));gf.call(a,fc,ld,1)}}break;case "g":a:{var jf=f[1],wg=b;if(void 0!==jf){var md=T(a,jf);if(!md)break a;Ae(a,md,wg);a.Ba(a.b,md,!0)}Le(a,!0,c)}break;case "h":a.j.K?(c||a.f("halting"),a.V()):Fb(a,!0)||c||a.f("already halted");break;case "i":if("if"==f[0]){var nd;var jb=b.substr(2),jb=Ca(jb);P(a,jb)?(c||a.f("true: "+jb),nd=!0):(c||a.f("false: "+jb),nd=!1);nd||(d=!1);break}g=!0;break;case "k":var xg=f[0];if("?"==f[1])a.f("stack trace commands:"),
|
||||
a.f("\tk\tshow frame addresses"),a.f("\tks\tshow symbol information");else{var od=0,pd=Q(),kb=Q();for(a.f("stack trace for "+K(a,kb.w));10>od;){for(var wa=null,yg=256;65536>kb.w>>>0;){pd.w=a.wa(kb,2);if(null==kb.w||!yg--)break;if(!(pd.w&1)){for(var zg=a,hc=pd,kf=null,lb=hc.w,lf=lb,qd=1;6>=qd&&lb;qd++){if(2<qd){hc.w=lb;var ic=xf(zg,hc);if(0<=ic.indexOf("JSR")){var mf=ic.indexOf(" ");if(lb+(ic.indexOf(" ",mf+1)-mf-1)/2==lf){kf=ic;break}}}lb-=2}hc.w=lf;if(wa=kf)break}}if(!wa||null==wa)break;var nf=null;
|
||||
if("ks"==xg){var of=wa.match(/[0-9A-F]+$/);of&&(nf=Mf(a,of[0]))}wa=Ba(wa,50)+" ;"+(nf||"stack="+K(a,kb.w));a.f(wa);od++}od||a.f("no return addresses found")}break;case "l":if("ln"==f[0]){Mf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,A=f[1];"?"==A&&(A=void 0);if(void 0!==A){var ja=0;if("all"==A)ja=1879046143,A=null;else if("on"==A)Z=!0,A=null;else if("off"==A)Z=!1,A=null;else{"keys"==A&&(A="key");"kbd"==A&&(A="keyboard");for(Y in G)if(A==Y){ja=G[Y];Z=!!(a.X&ja);break}if(!ja){a.f("unknown message category: "+
|
||||
A);break a}}if(ja)if("on"==f[2])a.X|=ja,Z=!0;else if("off"==f[2]&&(a.X&=~ja,Z=!1,1073741824==ja)){for(var pf=1E3<=a.O.length?a.O.length-1E3:0;pf<a.O.length;)a.f(a.O[pf++]);a.O=[]}}var Ag=0,mb="";for(Y in G)if(!A||A==Y){var Bg=!!(a.X&G[Y]);if(null===Z||Z==Bg)mb&&(mb+=","),++Ag%10||(mb+="\n\t"),"key"==Y&&(Y="keys"),mb+=Y}void 0===A&&a.f("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.f((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));ue(a)}break;
|
||||
case "p":if("print"==f[0]){Nf(a,b.substr(5));break}var Cg=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 Dg="pr"==Cg?1:0;if(a.N)a.f("step in progress");else{var qf=Q(a.i.u);a.wa(qf);a.N?(a.Ba(a.b,qf,!0),Le(a)||(a.D&&yd(a.D),a.N=0)):Of(a,Dg?"tr":"t")}}break;case "r":if("reset"==b){a.D&&a.D.reset();break}uf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==nb)a.ba=nb;
|
||||
else{a.f("invalid base: "+nb);break}}a.f("default base: "+a.ba);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.i.da=ob;break;case "start":a.i.ta=ob;break;case "stop":a.i.ia=ob;break;default:a.f("unknown cs option");break a}void 0!==ob&&Xc(a.i);a.f("checksums "+(a.i.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(vd(a.i,+f[2])||a.f("warning: using 1x multiplier, previous target not reached"));a.f("target speed: "+(a.i.S.toFixed(2)+"Mhz")+" ("+a.i.W+"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":Of(a,f[0],f[1]);break;case "u":vf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Lf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.f((Jb||"PDP10")+" version 1.34.2 ("+
|
||||
a.i.hb+",RELEASE)");a.f(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Nf(a,b.substr(1));break}var rd="commands:",sd;for(sd in Qf)rd+="\n"+Ba(sd,9)+Qf[sd];Id(a)||(rd+="\nnote: history disabled if no exec breakpoints");a.f(rd);break;default:g=!0}g&&(a.f("unknown command: "+b),d=!1)}}catch(sf){a.f("debugger error: "+(sf.stack||sf.message)),d=!1}return d}function td(a,b,c){b=le(a,b,c);for(var d in b)if(!Hf(a,b[+d]))return!1;return!0}
|
||||
var Qf={"?":"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"},Cf=20,Df=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
|
||||
De=0,Ee=1,Fe=2,Ge=3,He=4,Ie=5,Je=6,Ce="PC RA EA C0 C1 OV ND".split(" "),Rf={},yf=(Rf[28672]={0:101},Rf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Rf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Cf,9216:53,9472:52,9728:55,
|
||||
9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Rf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Rf[29248]={24576:79,24640:80,25088:81,25152:82},Rf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,28692:98,
|
||||
28696:99,28700:100},Rf),zf=["","I","M","S"],Af=" L E LE A GE N G".split(" "),Bf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Ke=1E3,tf=">> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new se(d);wb(d,c)}});
|
||||
function Sf(a,b,c){v.call(this,"Computer",a,33554432);this.j.U=!1;this.R=null;Tf(this,b);this.O=Vc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.H=this.N=null;this.L=this.W=!1;this.J=this.B=null;this.S=this.P=!1;this.da=Vc(this,"url")||"";(Math.random()+.1).toString(36);this.g=Uf(this);if(this.i=vb("CPU",this.id)){this.A=vb("Debugger",this.id);this.F=new yc({id:this.La+".bus",busWidth:this.aa},this.i,this.A);var d,e=tb(this.id);if((this.u=vb("Panel",this.id))&&this.u.oa)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.f=this.u.f,d.oa=this.u.oa;this.f(Jb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.F,this.i,this.A);b=null;d=Vc(this,"resume",a);void 0!==d&&(1<d.length?b=this.H=d:this.b=parseInt(d,10));var g;if(a=Vc(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=Vf),this.b&&(this.J=new H(this,"1.34.2"),Wf(this.J)?b=null:
|
||||
delete this.J);!b&&this.b&&(b=Xf(this))&&(this.L=!0);if(b){var f=this;Fa(b,null,!0,function(a,b,c){c?(f.H=null,f.L=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(f.M=b,f.W=!0);D(f)})}else D(this);this.I.power||(this.O=!0);!c&&this.O&&Yf(this,this.Ga)}else u("Unable to find CPU component")}p(Sf,v);function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
|
||||
function Vc(a,b,c,d){var e=b.toLowerCase(),e=Ua(b)||Ua(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function Yf(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Eb(g)){Eb(g,function(){Yf(a,b,c)});return}}b.call(a,c)}
|
||||
function Zf(a,b){var c=new H(a,"1.34.2",$f);if(Wf(c)&&ag(c)){var d=c.get(bg),e=b?b.get(bg):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Sf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?cg:Vf));if(!this.v){this.v++;var b=!1,c=!1;this.P=!1;var d=this.J||new H(this,"1.34.2");if(a==dg)b=!0;else if(a>Vf){if(Wf(d,this.M)){this.B=new H(this,"1.34.2",eg);Wf(this.B)&&(fg(this,d),a=gg,hg(this.B));this.B.set(bg,Ea());ig(this.B);var e=this.b&&!this.L;if(a==cg||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=ag(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Wf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ca("Error: "+f),"unable to verify user"==f&&(Sa(jg,""),this.g=null)):this.f(g+": "+f),hg(d),Wf(d)?(c=ag(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else a==gg&&d.clear()}else Zf(this);delete this.M;delete this.J}e=tb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.i&&(c=kg(this,f,d,b,c));b=[d,a,c];a!=dg?Yf(this,this.nb,b):this.nb(b)}};
|
||||
function kg(a,b,c,d,e){if(!b.j.U){b.j.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(u("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Vf,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.eb){var f=b.eb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.nb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.i&&(kg(this,this.i,b,c,a),I(this,-2),this.i.Z());this.P&&(fg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function fg(a,b){if(sb("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.g||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Pf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.2"),f=new H(a,"1.34.2",$f),h=Ea();f.set(bg,h);g.set(bg,h);g.set(lg,"1.34.2");g.set(mg,window?window.location.href:null);g.set(ng,window?window.navigator.userAgent:"");a.i&&a.i.fa&&(c&&(b&&(a.i.j.Z=a.i.j.K),a.i.V()),d=a.i.fa(b,c),"object"===typeof d&&g.set(a.i.id,d),c&&(a.i.j.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k<h.length;k++){var m=h[k];m.j.U&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.U=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.g&&og(a,a.g,g.toString()),ig(f)&&ig(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Eg),d&&g.clear(h)):e=g.toString());c&&(a.j.U=!1,b=a.I.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
l.reset=function(){this.j.reset=!0;this.F&&this.F.reset&&(Ib(this,"Resetting "+this.F.type),this.F.reset());this.i&&this.i.reset&&(Ib(this,"Resetting "+this.i.type),this.i.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.F&&c!==this.i&&c.reset&&(Ib(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "debugInput":return this.aa=this.I[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",$c(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.u.length-1&&(b=d.u[++d.v])):40==a.keyCode&&(0<d.v?b=d.u[--d.v]:(b="",d.v=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Xa(c,function(){if(d.aa){var a=d.aa.value;
|
||||
d.aa.value="";$c(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Xa(c,function(a){var b=!1;Fb(d,!0)||(Gb(d,!0),b=rc(d,a?1:0,null),Gb(d,!1));return b}),!0}return!1};function Zc(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=S(a);-1!==d&&(c=xc(this.G,d),b&&null!=a.w&&(a.w+=b||1));return c};l.cb=function(a,b,c){var d=S(a);-1!==d&&(wc(this.G,d,b),c&&null!=a.w&&(a.w+=c||1),I(this.F,-1))};
|
||||
function T(a,b,c){var d,e;c||(c=Q());var g=c.w;if(void 0!==b){b=ne(a,b);"%"==b.charAt(0)&&(d=!0,b=b.substr(1));var f,g=b,h;if(g.match(/^[a-z_][a-z0-9_]*$/i))for(var g=g.toUpperCase(),k=0;k<a.H.length;k++){var m=a.H[k].T[g];if(null!=m){h=m.o;break}}null!=h&&(f=Q(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=P(a,b,void 0)}null!=g&&we(c,g,d,e);return c}function Ae(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.kb=le(a,b.Oa=c[2]))}
|
||||
function Be(a){return pa(a/Kb,6)+" "+pa(a%Kb,6)}function ve(a,b){a.A=a;a.X=a.mb=536870916;a.S=null;a.O=[];b=le(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in G){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.X|=G[c],a.g(c+" messages enabled"))}}function ze(a,b){for(var c in G)if(16==G[c]){a.qa[c]=b;break}}l.rb=function(a){return Ce.indexOf(a.toUpperCase())};
|
||||
l.Za=function(a){var b;switch(a){case De:b=this.i.u;break;case Ee:b=this.i.B;break;case Fe:b=this.i.f;break;case Ge:b=this.i.hb?1:0;break;case He:b=this.i.ya?1:0;break;case Ie:b=this.i.Qa?1:0;break;case Je:b=this.i.zb?1:0;break;case Ke:b=this.i.Ra?1:0}return b};
|
||||
l.message=function(a,b){b&&(a+=" @"+K(this,Q(this.i.qa).w));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.i&&(c=this.i.j.K)||Fb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.g(a);this.i&&(a=this.i,Bd(a),a.aa=0,a.F&&I(a.F,void 0))}};
|
||||
function ue(a){var b;if(!Id(a))a.f&&a.f.length&&a.g("instruction history buffer freed"),a.R=0,a.f=[];else if(!a.f||!a.f.length){a.f=Array(Le);for(b=0;b<a.f.length;b++)a.f[b]=Q();a.R=0;a.g("instruction history buffer allocated")}}function Me(a,b,c){if(!Ne(a,c))return!1;qc(a.i,b);return!0}
|
||||
function rc(a,b,c,d){if(!Ne(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||Id(a)&&Jd(a,a.i.u,0);try{b=zd(a.i,b);var g=a.i.Ja(b);0<g&&(sc(a.i,g),a.B+=g,tc(a.i,g,!0),uc(a.i,g),a.ia++)}catch(f){"number"!=typeof f&&(a.B=0,Cb(a.i,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),I(a.F,-1));Yc(a,c||!1,e);return 0<a.B}l.V=function(a){this.i&&this.i.V(a)};function Yc(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.g(vf+c),we(a.L,a.i.u),b&&1!=a.N?xf(a):yf(a))}
|
||||
function Ne(a,b){var c;(c=!a.i||!Eb(a.i))||(c=a.i,c.j.U?c=!0:(c.g(c.toString()+" not powered"),c=!1),c=!c);return c||a.i.j.K?(b||a.g("cpu busy or unavailable, command ignored"),!1):!Db(a.i)}l.pa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};l.fa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){ue(this);this.ia=0;this.S=null;this.B=0;we(this.L,this.i.u);this.j.K=!1;zf(this);a||Yc(this)};
|
||||
l.save=function(){var a=new H(this);a.set(0,xe(this.L));a.set(1,xe(this.ja));a.set(2,xe(this.da));a.set(3,[this.u,this.P,this.X]);a.set(4,this.H);return a.data()};l.restore=function(a){var b=0;void 0!==a[3]&&(this.L=ye(this,a[b++]),this.ja=ye(this,a[b++]),this.da=ye(this,a[b++]),this.u=a[b][0],"string"==typeof this.u&&(this.u=[this.u]),this.P=a[b][1],this.X|=a[b][2]);a[4]&&(this.H=a[4]);return!0};l.start=function(a,b){this.N||this.g("running");this.j.K=!0;this.za=a;this.Aa=b};
|
||||
l.stop=function(a,b){if(this.j.K){this.j.K=!1;this.B=b-this.Aa;if(!this.N){b="stopped";if(this.B){a-=this.za;var c=0<a?Math.round(1E3*this.B/a):0;b+=" (";Id(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.B+" cycles, "+a+" ms, "+c+" hz)"}else Hb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}Yc(this,!0);Zc(this);zf(this,this.i.u);this.S=null}};function Id(a){return 1<a.b.length||!!a.ka}
|
||||
function Jd(a,b,c){var d=-1;c||(d=a.i.C(b),2756==d>>23&&a.i.qa==b&&(b=Gd(a.i,1)));if(0<c&&(a.ka&&!--a.ka||Sc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.i.C(b)),0<=d&&(we(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
|
||||
function Af(a,b,c,d){var e=Q(b.w),g=a.wa(b,1),f,h,k,m=0,n=g/Rb|0,r;for(r in Bf)if(f=Bf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Cf;m=n&3;break;case 32256:k=Df;m=n&7;break;case 29248:k=Ef,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Ff&&(k="B");k=Gf[f||0]+k;k=Ba(k,8);f?(k=28700==h?k+K(a,g/Sb&127,-1):k+K(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=K(a,g&262143,-1),(g=g>>18&15)&&(k+="("+K(a,g,-1)+")")):k+=Be(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.wa(e,1),f+=" "+Be(k),null==
|
||||
e.w)break;while(e.w!=b.w)}h+=Ba(f,16)+g;c&&(h=Ba(h,48)+";"+(c||""),h=a.i.j.Ea?h+("cycles="+ad(a.i).toString()+" cs="+t(a.i.sa)):h+(null!=d?"="+d.toString():""));return h}function te(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=S(c);var d=a.G;Rc(d.b[c>>>d.f],!1)}a.M=["br"];if(a.J)for(b=1;b<a.J.length;b++)c=a.J[b],c=S(c),d=a.G,Rc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
|
||||
l.Ca=function(a,b,c){var d=!0;c||Hf(this,a,b,!1,!0);if(a!=this.b){var e=S(b);if(-1===e)this.g("invalid address: "+K(this,b.w)),d=!1;else{var g=this.G;g.b[e>>>g.f].Ca(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(If(this,a,a.length-1,"set"),ue(this)));return d};function Hf(a,b,c,d,e){var g=!1;c=S(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==S(h)&&(!d||h.ea)){g=!0;h.ea||e||If(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.G,Rc(d.b[c>>>d.f],b==a.J));h.ea||ue(a);break}}return g}
|
||||
function Jf(a,b){for(var c=1;c<b.length;c++)If(a,b,c);return b.length-1}function If(a,b,c,d){c=b[c];a.g(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function zf(a,b){if(void 0!==b)Sc(a,b,1,a.b,!0),a.N=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.ea){if(!Hf(a,a.b,c,!0))break;b=0}}}
|
||||
function Sc(a,b,c,d,e){var g=!1;if(!a.ra++)for(var f=1;!g&&f<d.length;f++){var h=d[f];if(!e||h.ea)for(var k=S(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Hf(a,d,h,!0),e=!0);if(n=h.kb){for(var g=!1,r=0;r<n.length;r++)if(!Kf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var z=r+1;z<n.length&&n[z].indexOf("else");z++)r++;if(z==n.length){g=!0;break}}a.i.j.K||(g=!0)}if(g){e||If(a,d,f,"hit");break}}}a.ra--;return g}
|
||||
function Lf(a,b){b=void 0===b?!0:b;for(var c="",d=0;16>d;d++){!d||d&3||(c+="\n");var e=a,g=pa(d,2);we(e.xa,d);g+="="+K(e,e.wa(e.xa),36)+" ";c+=g}if(b){b="";for(d=0;d<Ce.length;d++)(e=Ce[d]||"")&&(e+="="+K(a,a.Za(d),d>=Ge?1:d==Ee?23:18)+" "),b+=e;c+="\n"+b}return c}l.nb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function ee(a,b,c,d,e){var g=[],f;for(f in e){var h=e[f];"number"==typeof h&&(e[f]=h={o:h});var k=h.o,m=h.a;if(void 0!==k){var n=g,k=[k>>>0,f],r=Da(n,k,a.nb);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({ed:b,w:c,Eb:d,T:e,lb:g})}function Mf(a,b,c){var d=[],e=S(b)>>>0;for(b=0;b<a.H.length;b++){var g=a.H[b],f=g.w>>>0,h=g.Eb;if(e>=f&&e<f+h){e=Da(g.lb,[e-f],a.nb);0<=e?Nf(a,b,e,d):c&&(e=~e,Nf(a,b,e-1,d),Nf(a,b,e,d));break}}return d}
|
||||
function Nf(a,b,c,d){var e={},g=a.H[b].lb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Of(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return re(a)||a.g("no variables"),!0;if(!c[2])return re(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=P(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function Pf(a,b,c){var d=null;if(b=T(a,b)){var e=Mf(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.w-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+K(a,e[1])+")"+f,c&&a.g(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.w)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+K(a,e[5])+")"+f,c&&a.g(g),d||(d=g))}else c&&a.g("no symbols")}return d}
|
||||
function xf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trm\tdump misc registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.i,e=void 0;null==c&&(c=!0);if(b&&1<b.length){var g=b[1];if("m"==g)e=!0;else{var f=g.indexOf("=");if(0<f)b=g.substr(f+1),g=g.substr(0,f);else if(2<b.length)b=b[2];else{a.g("missing value for "+b[1]);return}f=P(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.u=f%Kb;we(a.L,d.u);break;default:a.g("unknown register: "+
|
||||
g);return}I(a.F);a.g("updated registers:")}}a.g(Lf(a,e));c&&(we(a.L,d.u),yf(a,K(a,a.L.w)))}}function Qf(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.g(c[2]):qe(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
|
||||
function Rf(a,b,c){if("?"==c)a.g("trace commands:"),a.g("\tt [#]\ttrace # instructions"),a.g("\ttr [#]\ttrace # instructions with register updates"),a.g("\ttc [#]\ttrace # cycles"),a.g("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=oe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Wa(c,function(){return Gb(a,!0)&&rc(a,e,d,!1)},function(){a.ha&&a.ha.stop();I(a.F,-1);Gb(a,!1)})}}
|
||||
function yf(a,b,c,d){if(b=T(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=oe(a,c.substr(1)),null!=c&&(d=c);else{d=T(a,c);if(!d||d.w<b.w)return;e=d.w-b.w;if(256<e){a.g("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Fb(a,!1)||a.N?a.B:null,f=null!=g?"cycles":null,h=Mf(a,b),k=b.w;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(f=h[3],g=null);h=a.da;m=b;h.w=m.w;h.ea=m.ea;h.ba=m.ba;a.g(Af(a,b,f,g));e-=b.w-k;c++}}}
|
||||
function Kf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(vf+b):(a.P&&(a.g("ended assemble at "+K(a,a.da.w)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Eb(a)&&0<b.length){a.P&&(b="a "+K(a,a.da.w)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=T(a,
|
||||
f[1],a.da);if(r){var z=f[2];if(void 0==z)a.g("begin assemble at "+K(a,r.w)),a.P=!0,I(a.F);else{f.shift();f.shift();f.shift();var U,Oe=f.join(""),y=-1,dc,sg=z.toUpperCase(),cd;for(cd in Bf){var Ia;dc=+cd;var Pe=Bf[cd];switch(dc){case 32512:Ia=Cf;break;case 32256:Ia=Df;break;case 29248:Ia=Ef;break;default:Ia=[""]}var Qe,dd;for(dd in Pe){for(var Re=Pe[dd],Ja=0;Ja<Ia.length;Ja++){var ed=Ia[Ja];"S"==ed&&Re>Ff&&(ed="B");if(sg==Gf[Re]+ed){Qe=29248!=dc?Ja:(Ja&3)<<1|(Ja&12)<<2;y=(dd|Qe<<6)*Rb;break}}if(0<=
|
||||
y)break}if(0<=y)break}if(0<=y)if(Oe)for(var fd=Oe.split(","),fb=0;fb<fd.length;fb++){var ec=fd[fb].trim();if(ec){if(1<fb){a.g("too many operands: "+ec);y=-1;break}var V=ec.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.g("unknown operand: "+ec);y=-1;break}var E=P(a,V[2]);if(void 0==E){y=-1;break}if(!fb&&1<fd.length)if(28700==dc){if(0>E||127<E){a.g("device code out of range: "+V[2]);y=-1;break}y+=E*Sb}else{if(0>E||15<E){a.g("accumulator address out of range: "+V[2]);y=-1;break}y+=E<<23}else{if(0>E||262143<
|
||||
E){a.g("memory address out of range: "+V[2]);y=-1;break}y+=E;if(V[3]){E=P(a,V[3]);if(void 0==E){y=-1;break}if(0>E||15<E){a.g("memory index out of range: "+V[3]);y=-1;break}y+=E<<18}V[1]&&(y+=4194304)}}}else a.g("missing operand(s)"),y=-1;else a.g("unknown instruction: "+z);U=y;0<=U&&(a.cb(r,U),a.g(Af(a,r)))}}break;case "b":a:{var tg=f[0],Ka=f[1],ug=b;if("?"==Ka)a.g("breakpoint commands:"),a.g("\tbp #\tset exec breakpoint"),a.g("\tbr #\tset read breakpoint"),a.g("\tbw #\tset write breakpoint"),a.g("\tbc #\tclear breakpoint (* to clear all)"),
|
||||
a.g("\tbl\tlist all breakpoints"),a.g("\tbn [#]\tbreak after # instruction(s)");else{var sa=tg.charAt(1);if("l"==sa){var gd;gd=0+Jf(a,a.b);gd+=Jf(a,a.M);(gd+=Jf(a,a.J))||a.g("no breakpoints")}else if("n"==sa){var Se=+Ka||0;Ka&&(a.ka=Se);a.g("break after "+Se+" instruction(s)")}else if(void 0===Ka)a.g("missing breakpoint address");else{var J=Q();if("*"!=Ka&&(J=T(a,Ka,a.L),!J))break a;"c"==sa?null==J.w?(te(a),a.g("all breakpoints cleared")):Hf(a,a.b,J)||Hf(a,a.M,J)||Hf(a,a.J,J)||a.g("breakpoint missing: "+
|
||||
K(a,J.w)):null!=J.w&&(Ae(a,J,ug),"p"==sa?a.Ca(a.b,J):"r"==sa?a.Ca(a.M,J):"w"==sa?a.Ca(a.J,J):a.g("unknown breakpoint command: "+sa))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var La,Ma=f[0],W=f[1],ia=f[2],vg=f[3];if("?"==W){var Na="";for(La in G)a.qa[La]&&(Na&&(Na+=","),Na+=La);Na+=",state,symbols";a.g("dump memory commands:");a.g("\tdw [a] [n] dump n words at address a");a.g("\tds [a] [n] dump n words at address a as JSON");a.g("\tdh [p] [n] dump n instructions from history position p");
|
||||
Na.length&&a.g("dump extension commands:\n\t"+Na)}else if("state"==W){var hd=Sf(a.F,!0);"console"==ia?console.log(hd):(a.oa&&(a.oa.value=""),hd&&a.g(hd))}else if("symbols"==W)for(var id=0;id<a.H.length;id++){var jd=a.H[id],Oa;for(Oa in jd.T)if("."!=Oa.charAt(0)){var Te=jd.T[Oa].o;if(void 0!==Te){var Ue=jd.T[Oa].l;Ue&&(Oa=Ue);a.g(K(a,Te)+" "+Oa)}}}else{if("d"==Ma){for(La in G)if(f[1]==La){var Ve=a.qa[La];Ve?(f.shift(),f.shift(),Ve(f)):a.g("no dump registered for "+W);break a}W||(Ma=a.Da||"dw")}else a.Da=
|
||||
Ma;if("dh"==Ma){var We=W,Xe=ia,Ye="",Ze=0,R=a.R,X=a.f;if(X.length){var N=+We||a.sa,hb=+Xe||10;isNaN(N)?N=hb:Ye="more ";N>X.length&&(a.g("note: only "+X.length+" available"),N=X.length);R-=N;0>R&&(null==X[X.length-1].w?(N=R+N,R=0):R+=X.length);var kd=[];"call"==Xe&&(hb=1E5,kd=["CALL"]);for(void 0!==We&&a.g(N+" instructions earlier:");0<hb&&R!=a.R;){var $e=X[R++];if(null==$e.w)break;var ib=Q($e.w),wg=N--,af=Af(a,ib,"history",wg);(!kd.length||0<=af.indexOf(kd[0]))&&a.g(af);ib.Xa&&(R+=ib.Xa,hb-=ib.Xa,
|
||||
N-=ib.Xa);R>=X.length&&(R=0);a.sa=N;Ze++;hb--}}Ze||(a.g("no "+Ye+"history available"),a.sa=void 0)}else{var Pa=T(a,W,a.ja);if(Pa){var ta=0,bf="ds"==Ma;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||vg,ta=oe(a,ia);else{var cf=T(a,ia);cf&&(ta=cf.w-Pa.w)}0>ta&&(ta=0);65536<ta&&(ta=65536)}var xg=a.ba;Pa.ba&&(a.ba=Pa.ba);for(var df="db"==Ma?1:2,ld=ta||32,md=1==df?2:4,yg=(ld+md-1)/md|0||1,ua="";yg--&&0<ld;){for(var va="",ef="",W=K(a,Pa.w),ff=md;0<ff--&&0<ld--;){var fc=a.wa(Pa,1);bf?(va&&(va+=","),va+=fc):
|
||||
(va+=Be(fc),va+=" ");for(var gf=0;1==df&&6>gf;gf++)ef+=String.fromCharCode((fc%64|0)+32),fc/=64}ua&&(ua+="\n");ua=bf?ua+(va+","):ua+(W+": "+va+(0>ff?" "+ef:""))}ua&&a.g(ua);a.ba=xg}}}}break;case "e":if("else"==f[0])break;var hf,jf,kf=f[0],nd=f[1];"e"==kf||"ew"==kf?(hf=a.wa,jf=a.cb):nd=null;if(null==nd)a.g("edit memory commands:"),a.g("\tew [a] [...] edit words at address a");else{var gc=T(a,nd,a.ja);if(gc)for(var hc=2;hc<f.length;hc++){var od=P(a,f[hc]);if(void 0===od){a.g("unknown value: "+f[hc]);
|
||||
break}a.g("changing "+K(a,gc.w)+" from "+Be(hf.call(a,gc))+" to "+Be(od));jf.call(a,gc,od,1)}}break;case "g":a:{var lf=f[1],zg=b;if(void 0!==lf){var pd=T(a,lf);if(!pd)break a;Ae(a,pd,zg);a.Ca(a.b,pd,!0)}Me(a,!0,c)}break;case "h":a.j.K?(c||a.g("halting"),a.V()):Fb(a,!0)||c||a.g("already halted");break;case "i":if("if"==f[0]){var qd;var jb=b.substr(2),jb=Ca(jb);P(a,jb)?(c||a.g("true: "+jb),qd=!0):(c||a.g("false: "+jb),qd=!1);qd||(d=!1);break}g=!0;break;case "k":var Ag=f[0];if("?"==f[1])a.g("stack trace commands:"),
|
||||
a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var rd=0,sd=Q(),kb=Q();for(a.g("stack trace for "+K(a,kb.w));10>rd;){for(var wa=null,Bg=256;65536>kb.w>>>0;){sd.w=a.wa(kb,2);if(null==kb.w||!Bg--)break;if(!(sd.w&1)){for(var Cg=a,ic=sd,mf=null,lb=ic.w,nf=lb,td=1;6>=td&&lb;td++){if(2<td){ic.w=lb;var jc=Af(Cg,ic);if(0<=jc.indexOf("JSR")){var of=jc.indexOf(" ");if(lb+(jc.indexOf(" ",of+1)-of-1)/2==nf){mf=jc;break}}}lb-=2}ic.w=nf;if(wa=mf)break}}if(!wa||null==wa)break;var pf=null;
|
||||
if("ks"==Ag){var qf=wa.match(/[0-9A-F]+$/);qf&&(pf=Pf(a,qf[0]))}wa=Ba(wa,50)+" ;"+(pf||"stack="+K(a,kb.w));a.g(wa);rd++}rd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Pf(a,f[1],!0);break}g=!0;break;case "m":a:{var Y,Z=null,A=f[1];"?"==A&&(A=void 0);if(void 0!==A){var ja=0;if("all"==A)ja=1879046143,A=null;else if("on"==A)Z=!0,A=null;else if("off"==A)Z=!1,A=null;else{"keys"==A&&(A="key");"kbd"==A&&(A="keyboard");for(Y in G)if(A==Y){ja=G[Y];Z=!!(a.X&ja);break}if(!ja){a.g("unknown message category: "+
|
||||
A);break a}}if(ja)if("on"==f[2])a.X|=ja,Z=!0;else if("off"==f[2]&&(a.X&=~ja,Z=!1,1073741824==ja)){for(var rf=1E3<=a.O.length?a.O.length-1E3:0;rf<a.O.length;)a.g(a.O[rf++]);a.O=[]}}var Dg=0,mb="";for(Y in G)if(!A||A==Y){var Eg=!!(a.X&G[Y]);if(null===Z||Z==Eg)mb&&(mb+=","),++Dg%10||(mb+="\n\t"),"key"==Y&&(Y="keys"),mb+=Y}void 0===A&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Z?Z?"messages on: ":"messages off: ":"message categories:\n\t")+(mb||"none"));ue(a)}break;
|
||||
case "p":if("print"==f[0]){Qf(a,b.substr(5));break}var sf=f[0],tf="p"==sf?0:"pr"==sf?1:-1;if("?"==f[1]||0>tf)a.g("step commands:"),a.g("\tp\tstep over instruction"),a.g("\tpr\tstep over instruction with register update");else if(a.N)a.g("step in progress");else{var uf=Q(a.i.u);a.wa(uf);a.N?(a.Ca(a.b,uf,!0),Me(a)||(a.F&&yd(a.F),a.N=0)):Rf(a,tf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();break}xf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var nb=+f[2];if(8==nb||10==nb||16==
|
||||
nb)a.ba=nb;else{a.g("invalid base: "+nb);break}}a.g("default base: "+a.ba);break;case "cs":var ob;void 0!==f[3]&&(ob=+f[3]);switch(f[2]){case "int":a.i.da=ob;break;case "start":a.i.ta=ob;break;case "stop":a.i.ia=ob;break;default:a.g("unknown cs option");break a}void 0!==ob&&Xc(a.i);a.g("checksums "+(a.i.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(bd(a.i,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.i.S.toFixed(2)+"Mhz")+" ("+a.i.W+
|
||||
"x)");break;default:if(f[1]){a.g("unknown option: "+f[1]);break}case "?":a.g("debugger options:"),a.g("\tbase #\t\tset default base to #"),a.g("\tcs int #\tset checksum cycle interval to #"),a.g("\tcs start #\tset checksum cycle start count to #"),a.g("\tcs stop #\tset checksum cycle stop count to #"),a.g("\tsp #\t\tset speed multiplier to #")}break;case "t":Rf(a,f[0],f[1]);break;case "u":yf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Of(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.g((Jb||"PDP10")+
|
||||
" version 1.34.2 ("+a.i.ib+",RELEASE)");a.g(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Qf(a,b.substr(1));break}var ud="commands:",vd;for(vd in Tf)ud+="\n"+Ba(vd,9)+Tf[vd];Id(a)||(ud+="\nnote: history disabled if no exec breakpoints");a.g(ud);break;default:g=!0}g&&(a.g("unknown command: "+b),d=!1)}}catch(wf){a.g("debugger error: "+(wf.stack||wf.message)),d=!1}return d}function $c(a,b,c){b=le(a,b,c);for(var d in b)if(!Kf(a,b[+d]))return!1;return!0}
|
||||
var Tf={"?":"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"},Ff=20,Gf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI CA JUMP SKIP AOJ AOS SOJ SOS TR TL TD TS XCT JFFO JFCL JSR JSP JRST JSA JRA PUSHJ POPJ BLKI DATAI BLKO DATAO CONO CONI CONSZ CONSO UUO".split(" "),
|
||||
De=0,Ee=1,Fe=2,Ge=3,He=4,Ie=5,Je=6,Ke=7,Ce="PC RA EA C0 C1 OV ND PD".split(" "),Uf={},Bf=(Uf[28672]={0:101},Uf[32704]={5632:64,5696:63,5760:58,5824:27,5888:28,5952:25,6016:29,6080:26,10240:56,10304:48,10368:46,10432:84,10496:57,10560:49,10624:47,10752:21,10816:22,10880:69,10944:70,11008:88,11072:85,11136:83,11264:91,11328:23,11392:24,11456:92,11520:86,11584:87,11648:89,11712:90},Uf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ff,9216:53,9472:52,
|
||||
9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},Uf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Uf[29248]={24576:79,24640:80,25088:81,25152:82},Uf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
||||
28692:98,28696:99,28700:100},Uf),Cf=["","I","M","S"],Df=" L E LE A GE N G".split(" "),Ef="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Le=1E3,vf=">> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new se(d);wb(d,c)}});
|
||||
function Vf(a,b,c){v.call(this,"Computer",a,33554432);this.j.U=!1;this.R=null;Wf(this,b);this.O=Vc(this,"autoPower",a,6);this.v=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.H=this.N=null;this.L=this.W=!1;this.J=this.B=null;this.S=this.P=!1;this.da=Vc(this,"url")||"";(Math.random()+.1).toString(36);this.f=Xf(this);if(this.i=vb("CPU",this.id)){this.A=vb("Debugger",this.id);this.G=new yc({id:this.La+".bus",busWidth:this.aa},this.i,this.A);var d,e=tb(this.id);if((this.u=vb("Panel",this.id))&&this.u.oa)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ca=this.u.ca,d.g=this.u.g,d.oa=this.u.oa;this.g(Jb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.va&&d.va(this,this.G,this.i,this.A);b=null;d=Vc(this,"resume",a);void 0!==d&&(1<d.length?b=this.H=d:this.b=parseInt(d,10));var g;if(a=Vc(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=Yf),this.b&&(this.J=new H(this,"1.34.2"),Zf(this.J)?b=null:
|
||||
delete this.J);!b&&this.b&&(b=$f(this))&&(this.L=!0);if(b){var f=this;Fa(b,null,!0,function(a,b,c){c?(f.H=null,f.L=!1,f.ca("Unable to load machine state from server (error "+c+(b?": "+Ca(b):"")+")")):(f.M=b,f.W=!0);D(f)})}else D(this);this.I.power||(this.O=!0);!c&&this.O&&ag(this,this.Ga)}else u("Unable to find CPU component")}p(Vf,v);function Wf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){u(d.message+" ("+c+")")}}a.R=b}
|
||||
function Vc(a,b,c,d){var e=b.toLowerCase(),e=Ua(b)||Ua(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function ag(a,b,c){for(var d=tb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Eb(g)){Eb(g,function(){ag(a,b,c)});return}}b.call(a,c)}
|
||||
function bg(a,b){var c=new H(a,"1.34.2",cg);if(Zf(c)&&dg(c)){var d=c.get(eg),e=b?b.get(eg):"unknown";d!=e&&(a.ca("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Vf.prototype;
|
||||
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?fg:Yf));if(!this.v){this.v++;var b=!1,c=!1;this.P=!1;var d=this.J||new H(this,"1.34.2");if(a==gg)b=!0;else if(a>Yf){if(Zf(d,this.M)){this.B=new H(this,"1.34.2",hg);Zf(this.B)&&(ig(this,d),a=jg,kg(this.B));this.B.set(eg,Ea());lg(this.B);var e=this.b&&!this.L;if(a==fg||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=dg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?Zf(d,f):("error"==g&&"no machine state"!=
|
||||
f?(this.ca("Error: "+f),"unable to verify user"==f&&(Sa(mg,""),this.f=null)):this.g(g+": "+f),kg(d),Zf(d)?(c=dg(d),e=!0):c=!1))}e&&bg(this,c?d:null)}else a==jg&&d.clear()}else bg(this);delete this.M;delete this.J}e=tb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.i&&(c=ng(this,f,d,b,c));b=[d,a,c];a!=gg?ag(this,this.ob,b):this.ob(b)}};
|
||||
function ng(a,b,c,d,e){if(!b.j.U){b.j.U=!0;var g=null;try{if(e&&((g=c.get(b.id))||(g=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof g&&(g=null),!b.pa(g,d)&&g&&(u("Unable to restore state for "+b.type),a.N&&!a.W?(c.clear(),a.b=Yf,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.gb){var f=b.gb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
||||
l.ob=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.i&&(ng(this,this.i,b,c,a),I(this,-2),this.i.Z());this.P&&(ig(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
||||
function ig(a,b){if(sb("There may be a problem with your "+Jb+" machine.\n\nTo help us diagnose it, click OK to send this "+Jb+" machine state to http://www.pcjs.org.")){var c=a.da;a=a.f||"";b=b.toString();var d={};d.app=Jb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Fa("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Sf(a,b,c){var d,e="none";if(a.v)return null;a.v--;var g=new H(a,"1.34.2"),f=new H(a,"1.34.2",cg),h=Ea();f.set(eg,h);g.set(eg,h);g.set(og,"1.34.2");g.set(pg,window?window.location.href:null);g.set(qg,window?window.navigator.userAgent:"");a.i&&a.i.fa&&(c&&(b&&(a.i.j.Z=a.i.j.K),a.i.V()),d=a.i.fa(b,c),"object"===typeof d&&g.set(a.i.id,d),c&&(a.i.j.U=!1,!1===d&&(e=null)));for(var h=tb(a.id),k=0;k<h.length;k++){var m=h[k];m.j.U&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&g.set(m.id,d)),c&&(m.j.U=
|
||||
!1,!1===d&&(e=null)))}e&&(c?(h=d=!1,b?(a.f&&rg(a,a.f,g.toString()),lg(f)&&lg(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Fg),d&&g.clear(h)):e=g.toString());c&&(a.j.U=!1,b=a.I.power)&&(b.textContent="Power");a.v=0;return e}
|
||||
l.reset=function(){this.j.reset=!0;this.G&&this.G.reset&&(Ib(this,"Resetting "+this.G.type),this.G.reset());this.i&&this.i.reset&&(Ib(this,"Resetting "+this.i.type),this.i.reset());for(var a=tb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.i&&c.reset&&(Ib(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;I(this,-1)};l.start=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}I(this,-1)};
|
||||
l.stop=function(a,b){for(var c=tb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}I(this,-1)};
|
||||
function I(a,b){if(a.i){var c=a.i,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Ca+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Ca=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.i.j.K;d=!!(a.i.v&8);if(0>=b||60<=(a.L+=b)){e=a.i.u;if(a.I.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?pa(e,void 0):t(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.g=a.i.u:0<b&&c&&!d&&(a.g=a.i.la);bc(a,a.g);Wb(a,a.v)}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.v||(d.j.U?Pf(d,!1,!0):Yf(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.j.U&&!d.v)if(d.b&&!d.H){var a=sb("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Pf(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(Vf)}else d.reset(),d.i&&!d.A&&d.i.Z()},!0;case "save":if(xa())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=Uf(d,!0);if(a){var b=!!(d.b&&!d.H||d.N),c=Pf(d,b);b?og(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Uf(a,b){var c=a.g;c||((c=Ra(jg),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=Fg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
|
||||
function Fg(a,b){a.g=null;b=Fa(ya()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Sa(jg,b.data),a.g=b.data)}catch(d){u(d.message+" ("+c+")")}return a.g}function Xf(a){var b=null;a.g&&(b=ya()+"/api/v1/user?req=load&user="+a.g+"&state="+Gg(a,"1.34.2"));return b}
|
||||
function og(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Gg(a,"1.34.2");d.data=c;b=Fa(ya()+"/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.ca("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.ca(c),Sa(jg,""),a.g=null)}}
|
||||
function yd(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var eg="failsafe",$f="validate",bg="timestamp",lg="version",mg="url",ng="browser",jg="user",dg=-1,Vf=0,cg=1,gg=2,Eg=3;Za(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var g=c[e],f=x(g),f=new Sf(f,d,!0);wb(f,g);f.O&&Yf(f,f.Ga)}});
|
||||
$a.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=vb("Computer",c.id))&&c.S&&!c.j.U&&c.Ga(dg)}});$a.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=vb("Computer",c.id))&&c.j.U&&Pf(c,!(!c.b||c.H),!0)}});function H(a,b,c){this.id=a.id;this.i="";this.b={};this.g=this.A=!1;this.key=Gg(a,b,c);hg(this,a.sb)}l=H.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 Wf(a,b){return b?(a.i=b,a.g=!0,a.A=!1,!0):a.g?!0:Ha()&&(b=Ra(a.key))?(a.i=b,a.g=!0):!1}function ag(a){var b=!0;if(!a.A)try{a.b=JSON.parse(a.i),a.A=!0}catch(c){u(c.message||c),b=!1}return b}function ig(a){var b=!0;if(Ha()){var c=JSON.stringify(a.b);Sa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function hg(a,b){a.i="";a.b={};a.g=a.A=!1;b&&a.set("parms",b)}l.clear=function(a){hg(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 Gg(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 Hg=0;
|
||||
function Ig(a,b,c,d,e,g,f){g("Loading "+a+"...");Fa(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Jg(k,a,b,c,d,e,g,f)})}
|
||||
function Jg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(pb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Kg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Kg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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);Kg(a,b,c)}})}else c(a,null)}
|
||||
function Lg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function f(a){g("Error: "+a);m&&(--Hg||cb(!0));m=!1}var h,k,m=!0;Hg++;qb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=n:z.appendChild(document.createTextNode(n));r.appendChild(z)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Ig(d,null,a,null,!1,g,function(a,e){e?(pb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Hg||cb(!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),--Hg||
|
||||
cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Ig(c,b,a,e,!0,g,n):Jg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){cb(!1);return Lg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Lg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
|
||||
function I(a,b){if(a.i){var c=a.i,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Da+=d))&&(e.textContent=c.j.K?c.R.toFixed(2)+"Mhz":"Stopped",c.Da=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.i.j.K;d=!!(a.i.v&8);if(0>=b||60<=(a.L+=b)){e=a.i.u;if(a.I.PC){var g=a.A&&a.A.ba||8,e=e||0,e=8==g?pa(e,void 0):t(e,void 0);a.I.PC.textContent!=e&&(a.I.PC.textContent=e)}a.L=0}-1>b?a.f=a.i.u:0<b&&c&&!d&&(a.f=a.i.la);bc(a,a.f);Wb(a,a.v)}}
|
||||
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.v||(d.j.U?Sf(d,!1,!0):ag(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.j.U&&!d.v)if(d.b&&!d.H){var a=sb("Click OK to save changes to this "+Jb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Sf(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(Yf)}else d.reset(),d.i&&!d.A&&d.i.Z()},!0;case "save":if(xa())c.parentNode.removeChild(c);else return this.I[b]=
|
||||
c,c.onclick=function(){var a=Xf(d,!0);if(a){var b=!!(d.b&&!d.H||d.N),c=Sf(d,b);b?rg(d,a,c):d.ca("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Xf(a,b){var c=a.f;c||((c=Ra(mg),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=Gg(a,c))||a.ca("The user ID is invalid.")):b&&a.ca("Browser local storage is not available"));return c}
|
||||
function Gg(a,b){a.f=null;b=Fa(ya()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Sa(mg,b.data),a.f=b.data)}catch(d){u(d.message+" ("+c+")")}return a.f}function $f(a){var b=null;a.f&&(b=ya()+"/api/v1/user?req=load&user="+a.f+"&state="+Hg(a,"1.34.2"));return b}
|
||||
function rg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Hg(a,"1.34.2");d.data=c;b=Fa(ya()+"/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.ca("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.ca(c),Sa(mg,""),a.f=null)}}
|
||||
function yd(a,b){if(a.oa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.oa.focus();!b&&window&&window.scrollTo(c,d)}}var hg="failsafe",cg="validate",eg="timestamp",og="version",pg="url",qg="browser",mg="user",gg=-1,Yf=0,fg=1,jg=2,Fg=3;Za(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var g=c[e],f=x(g),f=new Vf(f,d,!0);wb(f,g);f.O&&ag(f,f.Ga)}});
|
||||
$a.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=vb("Computer",c.id))&&c.S&&!c.j.U&&c.Ga(gg)}});$a.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=vb("Computer",c.id))&&c.j.U&&Sf(c,!(!c.b||c.H),!0)}});function H(a,b,c){this.id=a.id;this.i="";this.b={};this.f=this.A=!1;this.key=Hg(a,b,c);kg(this,a.Ab)}l=H.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 Zf(a,b){return b?(a.i=b,a.f=!0,a.A=!1,!0):a.f?!0:Ha()&&(b=Ra(a.key))?(a.i=b,a.f=!0):!1}function dg(a){var b=!0;if(!a.A)try{a.b=JSON.parse(a.i),a.A=!0}catch(c){u(c.message||c),b=!1}return b}function lg(a){var b=!0;if(Ha()){var c=JSON.stringify(a.b);Sa(a.key,c)||(u("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}l.toString=function(){return this.b?JSON.stringify(this.b):this.i};
|
||||
function kg(a,b){a.i="";a.b={};a.f=a.A=!1;b&&a.set("parms",b)}l.clear=function(a){kg(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 Hg(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 Ig=0;
|
||||
function Jg(a,b,c,d,e,g,f){g("Loading "+a+"...");Fa(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Kg(k,a,b,c,d,e,g,f)})}
|
||||
function Kg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(pb(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),e?"}"==e.slice(-1)?(e=e.slice(0,-1),1<e.length&&(e+=",")):e='{state:"'+e+'",':e="{",e+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(e?" parms='"+e+"'":"")+(f?' url="'+f+'"':"")));g||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
|
||||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));f=null;if("<"==a.charAt(0))try{g||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(r){f=null,a=r.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,f)}}a?g?Lg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Lg(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Fa(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);Lg(a,b,c)}})}else c(a,null)}
|
||||
function Mg(a,b,c,d,e){function g(a){if(void 0===k){var b=h&&C(h,"machine-warning");k=b&&b[0]||h}k&&(k.innerHTML=za(a))}function f(a){g("Error: "+a);m&&(--Ig||cb(!0));m=!1}var h,k,m=!0;Ig++;qb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],z=document.createElement("style");z.type="text/css";z.styleSheet?z.styleSheet.cssText=n:z.appendChild(document.createTextNode(n));r.appendChild(z)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Jg(d,null,a,null,!1,g,function(a,e){e?(pb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Ig||cb(!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),--Ig||
|
||||
cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Jg(c,b,a,e,!0,g,n):Kg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(U){f(U.message)}return m}window.embedPDP10=function(a,b,c,d){cb(!1);return Mg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Mg("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return vb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!yb[a]){for(var c=!0,d=yb,e=a,g=b.length,f=[],h=[],k="",m=null,n=0;n<g;n++){var r=b[n];if('"'==r||"'"==r)m&&r!=m?k+=r:(m?m=null:m=r,k&&(h.push(k),k=""));else{if(!m){if("\r"==r||"\n"==r)r=";";if(" "==r||"\t"==r||";"==r){k&&(h.push(k),k="");";"==r&&h.length&&(f.push(h),h=[]);continue}}k+=r}}k&&h.push(k);h.length&&f.push(h);d[e]=f;xb(a)||(c=!1)}return c};window.enableEvents=cb;window.sendEvent=eb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ var k,aa="function"==typeof Object.defineProperties?Object.defineProperty:functi
|
|||
function ea(){ba();var a=m.Symbol.iterator;a||(a=m.Symbol.iterator=m.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(this)}});ea=function(){}}function fa(a){var b=0;return ga(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ga(a){ea();a={next:a};a[m.Symbol.iterator]=function(){return this};return a}
|
||||
function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}function ha(a,b){if(b){var c=m;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}
|
||||
ha("Math.trunc",function(a){return a?a:function(a){a=Number(a);if(isNaN(a)||Infinity===a||-Infinity===a||!a)return a;var b=Math.floor(Math.abs(a));return 0>a?-b:b}});ha("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
||||
var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={Bb:0,Sa:1,Db:2,Eb:3,Fb:4,Gb:5,Hb:6,Ib:7,Ja:8,Jb:9,Ta:10,Kb:11,Lb:12,Ua:13,Mb:14,Nb:15,Ob:16,Pb:17,Qb:18,Rb:19,Sb:20,Tb:21,Ub:22,Vb:23,Wb:24,Xb:25,Yb: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,Ia:65,Ab:66,Cb:67,Zb:68,E:69,$b:70,ac:71,bc:72,cc:73,dc:74,ec:75,fc:76,gc:77,hc:78,ic:79,jc:80,Q:81,
|
||||
kc:82,lc:83,mc:84,nc:85,oc:86,pc:87,qc:88,rc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,sc:97,tc:98,uc:99,d:100,e:101,vc:102,wc:103,xc:104,yc:105,zc:106,k:107,Ac:108,Bc:109,n:110,Cc:111,p:112,q:113,r:114,Dc:115,t:116,Ec:117,Fc:118,Gc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Va:127};
|
||||
var ia=Math.pow(2,36),ja=-Math.pow(2,35),q={Bb:0,Ta:1,Db:2,Eb:3,Fb:4,Gb:5,Hb:6,Ib:7,Ka:8,Jb:9,Ua:10,Kb:11,Lb:12,Va:13,Mb:14,Nb:15,Ob:16,Pb:17,Qb:18,Rb:19,Sb:20,Tb:21,Ub:22,Vb:23,Wb:24,Xb:25,Yb: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,Ja:65,Ab:66,Cb:67,Zb:68,E:69,$b:70,ac:71,bc:72,cc:73,dc:74,ec:75,fc:76,gc:77,hc:78,ic:79,jc:80,Q:81,
|
||||
kc:82,lc:83,mc:84,nc:85,oc:86,pc:87,qc:88,rc:89,$a:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,sc:97,tc:98,uc:99,d:100,e:101,vc:102,wc:103,xc:104,yc:105,zc:106,k:107,Ac:108,Bc:109,n:110,Cc:111,p:112,q:113,r:114,Dc:115,t:116,Ec:117,Fc:118,Gc:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,Wa:127};
|
||||
function ka(a,b,c,d){var e="";if(null==a||isNaN(a))for(;0<c--;)e="?"+e;else for(0>a&&-1<a&&(a=-1);0<c--;){var f=a%b,f=f+(0<=f&&9>=f?48:55),e=String.fromCharCode(f)+e;a=Math.trunc(a/b)}return(void 0===d?"":d)+e}function ma(a,b){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return ka(a,8,b,"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return ka(a,16,b,c?"0x":"")}function na(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 oa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function pa(){var a=u();return-1!==a.indexOf("pcjs.org",a.length-8)}function qa(a){return a.replace(/[&<>"']/g,function(a){return ra[a]})}function sa(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var ra={"&":"&","<":"<",">":">",'"':""","'":"'"};
|
||||
function ta(){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())}
|
||||
|
|
@ -44,15 +44,15 @@ function u(){return"http://"+(window?window.location.host:"www.pcjs.org")}functi
|
|||
function ya(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function za(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
|
||||
function Aa(a){if(!Ba){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," "))}Ba=c}return Ba[a]}function Ca(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function y(a){z.init.push(a)}
|
||||
function Da(a){if(Ea)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 A(a){!Ea&&a?(Ea=!0,Fa&&Ga("init"),Ha&&Ga("show")):Ea=a}function Ga(a){z[a]&&Da(z[a])}var Ba=null,z={init:[],show:[],exit:[]},Fa=!1,Ha=!1,Ea=!0,wa=null;Ca("onload",function(){Fa=!0;Da(z.init)});Ca("onpageshow",function(){Ha=!0;Da(z.show)});Ca(za("Opera")||za("iOS")?"onunload":"onbeforeunload",function(){Da(z.exit)});
|
||||
function B(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Ma=b.comment;this.ab=b;this.exports={};this.j=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Da:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.v=this.f=this.o=this.s=this.ba=null;C.push(this)}function Ia(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function D(){return Date.now()||+new Date}
|
||||
function B(a,b){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Na=b.comment;this.ab=b;this.exports={};this.l=this.bindings={};a=this.id.indexOf(".");0>a?this.la=this.id:(this.ma=this.id.substr(0,a),this.la=this.id.substr(a+1));this.c={ready:!1,ra:!1,Ea:!1,B:!1,error:!1};this.ta=null;this.c.error=!1;this.v=this.f=this.o=this.s=this.ba=null;C.push(this)}function Ia(a,b,c){Ja[a]&&b&&(Ja[a][b]=c)}function D(){return Date.now()||+new Date}
|
||||
function x(a){window&&window.alert(a)}function Ka(a){var b=!1;window&&(b=window.confirm(a));return b}function E(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<C.length;b++){var d=C[b];a&&d.id.indexOf(a)||c.push(d)}return c}function La(a){if(void 0!==a){var b;for(b=0;b<C.length;b++)if(C[b].id===a)return C[b]}return null}
|
||||
function F(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<C.length;d++)if(c)c==C[d]&&(c=null);else if(!(a!=C[d].type||b&&C[d].id.indexOf(b)))return C[d]}return null}function G(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){x(c.message+" ("+a+")")}return b}
|
||||
function H(a,b){var c=I;b=J(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var l=h.split(" "),p=0;p<l.length;p++)switch(h=l[p],h){case c+"-binding":(h=G(g))&&h.binding&&a.U(h.type,h.binding,g,h.value),p=l.length}}}}
|
||||
function J(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 Ma(a){for(var b=!0,c=Na[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=Oa.indexOf(e)&&(f=function(){return function(){Ma(a)}}());var g=Pa[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=F(d[1],a);if(h)if(g=Qa[e])b=g(h,d[2],d[3]);else{var l=h.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(h,d[2],d[3]);else if(!g.call(h,f,d[2],d[3]))break}}if(!b){x("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete Na[a];return b}k=B.prototype;
|
||||
k.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
k.U=function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.ba=this.j[b]=c,c.value="",this.L=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.F=function(a){this.L(a,this.la)}),!0;default:return!1}};k.log=function(){};k.L=function(){};
|
||||
k.status=function(a){this.L(this.la+": "+a)};k.F=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function Ra(a,b){b&&(a.c.ready?b():a.ta=b);return a.c.ready}function K(a){if(!a.c.error&&(a.c.ready=!0,a.c.ready)){var b=a.ta;a.ta=null;b&&b()}}function Sa(a,b){a.c.Da?(a.c.ra=!1,a.c.Da=!1):a.c.error?a.L(a.toString()+" error"):a.c.ra=b}k.V=function(){return this.c.B=!0};k.P=function(a,b){b&&(this.c.B=!1);return!0};
|
||||
k.U=function(a,b,c){switch(b){case "clear":return this.l[b]||(this.l[b]=c,c.onclick=function(a){return function(){a.l.print&&(a.l.print.value="")}}(this)),!0;case "print":return this.l[b]||(this.ba=this.l[b]=c,c.value="",this.L=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.F=function(a){this.L(a,this.la)}),!0;default:return!1}};k.log=function(){};k.L=function(){};
|
||||
k.status=function(a){this.L(this.la+": "+a)};k.F=function(a,b,c){c=c||this.type;b||x((c?c+": ":"")+a)};function Ra(a,b){b&&(a.c.ready?b():a.ta=b);return a.c.ready}function K(a){if(!a.c.error&&(a.c.ready=!0,a.c.ready)){var b=a.ta;a.ta=null;b&&b()}}function Sa(a,b){a.c.Ea?(a.c.ra=!1,a.c.Ea=!1):a.c.error?a.L(a.toString()+" error"):a.c.ra=b}k.V=function(){return this.c.B=!0};k.P=function(a,b){b&&(this.c.B=!1);return!0};
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var Ja=window?window.PCjs.Machines:{},C=window?window.PCjs.Components:[],Na=window?window.PCjs.Commands:{},Oa=["hold","sleep","wait"],Pa={alert:function(a){x(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Qa={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)});
|
||||
|
|
@ -60,96 +60,96 @@ Function.prototype.bind||(Function.prototype.bind=function(a){function b(){retur
|
|||
var I="pdp10",L="PDPjs",M=Math.pow(2,18),Ta=Math.pow(2,18)-1,Ua=Math.pow(2,36),N=Math.pow(2,18),Va=Math.pow(2,17)-1,Wa=Math.pow(2,35)-1,Xa=Math.pow(2,35),Ya=Math.pow(2,36),Za=Math.pow(2,23),I="pdp10",L="PDPjs";
|
||||
function $a(a,b){B.call(this,"Panel",a);this.C=this.D=0;this.R=b;this.b=this.w=this.g=this.h=0;this.G=this.I=-1;this.K=this.M=this.u=!1;this.O=ab;this.m={};this.a={START:[1,1,!0,!1,this.lb],STEP:[1,1,!1,!1,this.mb],ENABLE:[1,1,!1,!1,this.gb],CONT:[1,1,!0,!1,this.eb],DEP:[0,0,!0,!1,this.fb],EXAM:[1,1,!0,!1,this.hb],LOAD:[1,1,!0,!1,this.jb],TEST:[0,0,!0,!1,this.ib]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.kb,a];this.v=this.f=this.o=this.s=null;this.exports={hold:this.cb,toggle:this.vb,reset:this.rb,
|
||||
set:this.ub};K(this)}n($a,B);k=$a.prototype;k.reset=function(a){this.stop();a&&bb(this,this.h=0)};
|
||||
k.U=function(a,b,c,d){if(this.s&&this.s.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.j[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.m[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){db(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){cb(a,
|
||||
k.U=function(a,b,c,d){if(this.s&&this.s.U(a,b,c,d)||this.f&&this.f.U(a,b,c,d))return!0;switch(b){case "PC":return this.l[b]=c,this.D++,!0;default:return"led"==a||"rled"==a?(this.l[b]=c,this.m[b]=d?1:0,this.D++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.l[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){cb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){db(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){cb(a,
|
||||
b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){db(a,b)}}(this,b),!0):B.prototype.U.call(this,a,b,c,d)}};k.Z=function(a,b,c,d){this.s=a;this.o=b;this.f=c;this.v=d;eb(this);fb(this)};k.V=function(a,b){if(!b)if(this.R&&gb(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,[this.b,this.h,this.g]);return a.data()};
|
||||
k.restore=function(a){if(a=a[0])hb(this,this.b=a[0]),bb(this,this.h=a[1]),ib(this,a[2]);return!0};k.rb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}fb(this);return!0};function jb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function eb(a,b){for(var c in a.m)jb(a,c,null!=b?b:a.m[c])}function kb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fb(a){for(var b in a.a)kb(a,b,a.a[b][1])}
|
||||
k.restore=function(a){if(a=a[0])hb(this,this.b=a[0]),bb(this,this.h=a[1]),ib(this,a[2]);return!0};k.rb=function(){for(var a in this.a){var b=this.a[a];b[1]=b[0]}fb(this);return!0};function jb(a,b,c){if(a=a.l[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function eb(a,b){for(var c in a.m)jb(a,c,null!=b?b:a.m[c])}function kb(a,b,c){if(a=a.l[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function fb(a){for(var b in a.a)kb(a,b,a.a[b][1])}
|
||||
k.cb=function(a,b,c){if(cb(this,b)){if(c){var d=this;setTimeout(function(){db(d,b);a&&a()},+c);return!1}db(this,b)}return!0};
|
||||
k.ub=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 ib(this,c)}return(c=this.a[a])?(c[1]=+b?1:0,kb(this,a,c[1]),!0):!1};k.vb=function(a){return cb(this,a)?(db(this,a),!0):!1};function cb(a,b){var c=a.a[b];return c?(kb(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=lb&&(a.K=b==mb,a.M=b==nb),!0):!1}function db(a,b){var c=a.a[b];c&&(c[2]&&c[3]&&(kb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}
|
||||
k.lb=function(a){a||this.f.c.A||(this.f.g=this.b%M,this.a[ob]&&this.a[ob][1]&&pb(this.f))};k.mb=function(){};k.gb=function(a){a||P(this.f)};k.eb=function(a){if(!a&&!this.f.c.A)if(this.a[ob]&&this.a[ob][1])pb(this.f);else{a=this.v;var b;if(b=a)a.c.ra&&(a.c.Da=!0),b=!a.c.ra;if(b)Sa(a,!0),a.b(0,null),Sa(a,!1);else try{var c=this.f.wa(1);0<c&&(qb(this.f,c),rb(this.f,c,!0),sb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.c.error=!0,c.F(a))}this.stop();this.s&&Q(this.s)}};
|
||||
k.fb=function(a){a&&!this.f.c.A&&(this.K&&tb(this),a=bb(this,this.h=this.g),this.O==ab?ub(this.o,this.b,a):this.f.l(this.b,a))};k.hb=function(a){if(!a&&!this.f.c.A){this.M&&tb(this);if(this.O==ab){a=this.o;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.i(this.b);bb(this,this.h=a)}};k.jb=function(a){a||this.f.c.A||hb(this,this.g)};k.ib=function(a){a?(this.u=!0,eb(this,!0)):(this.u=!1,eb(this),ib(this,0))};k.kb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
k.lb=function(a){a||this.f.c.A||(this.f.g=this.b%M,this.a[ob]&&this.a[ob][1]&&pb(this.f))};k.mb=function(){};k.gb=function(a){a||P(this.f)};k.eb=function(a){if(!a&&!this.f.c.A)if(this.a[ob]&&this.a[ob][1])pb(this.f);else{a=this.v;var b;if(b=a)a.c.ra&&(a.c.Ea=!0),b=!a.c.ra;if(b)Sa(a,!0),a.b(0,null),Sa(a,!1);else try{var c=this.f.wa(1);0<c&&(qb(this.f,c),rb(this.f,c,!0),sb(this.f,c))}catch(d){"number"!=typeof d&&(c=this.f,a=d.stack||d.message,c.c.error=!0,c.F(a))}this.stop();this.s&&Q(this.s)}};
|
||||
k.fb=function(a){a&&!this.f.c.A&&(this.K&&tb(this),a=bb(this,this.h=this.g),this.O==ab?ub(this.o,this.b,a):this.f.j(this.b,a))};k.hb=function(a){if(!a&&!this.f.c.A){this.M&&tb(this);if(this.O==ab){a=this.o;var b=this.b,c=a.a[(b&a.g)>>>a.b];a.h++;b=c.o(b&16383,b);a.h--;a=b}else a=this.f.i(this.b);bb(this,this.h=a)}};k.jb=function(a){a||this.f.c.A||hb(this,this.g)};k.ib=function(a){a?(this.u=!0,eb(this,!0)):(this.u=!1,eb(this),ib(this,0))};k.kb=function(a,b){this.g=a?this.g|1<<b:this.g&~(1<<b)};
|
||||
function tb(a){var b=1,c=a.o.g;a.a[lb]&&a.a[lb][1]||(b=-b);hb(a,a.b&~c|a.b+b&c)}function hb(a,b){a.b=b&a.o.g;if(a.G!==a.b){a.G=a.b;b=a.G;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.m[e]=f;d.u||jb(d,e,f)}}}function bb(a,b){a.w=b%Ua;if(a.I!==a.w){a.I=a.w;b=a.I;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.m[e]=f;d.u||jb(d,e,f)}}return a.w}function ib(a,b){a.g=b|0;for(b=0;22>b;b++)a.a["S"+b][1]=a.g&1<<b?1:0;fb(a);return!0}k.stop=function(){hb(this,this.f.g)};
|
||||
function gb(){for(var a=J(document,I,"panel"),b=0;b<a.length;b++){var c=a[b],d=G(c),e=La(d.id);e||(e=new $a(d,!0));H(e,c)}}var ab=7,mb="DEP",ob="ENABLE",nb="EXAM",lb="STEP";y(gb);function vb(a,b,c){B.call(this,"Bus",a);this.f=b;this.v=c;this.w=+a.busWidth||18;this.u=1<<this.w;this.g=this.u-1;this.b=Math.log2(16384);this.m=this.u/16384|0;this.h=0;this.a=[];a=new R(this);wb(a);this.a=Array(this.m);for(b=0;b<this.m;b++)this.a[b]=a;K(this)}n(vb,B);k=vb.prototype;k.reset=function(){};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.save=function(){var a=new O(this);a.set(0,xb(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 yb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return zb(Ab,e,f)}e=new R(a,e,p,16384,d);wb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Bb[d]+" at "+ma(b)),!0):zb(Cb,b,c)}function ub(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.j(c,b&16383,b);a.h--}
|
||||
function xb(a){for(var b=0,c=[],d=0;d<a.m;d++){var e=a.a[d];if(e.Ea||e.bb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function zb(a,b,c){x("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Ab=1,Cb=2;function Db(a){B.call(this,"Device",a)}n(Db,B);k=Db.prototype;k.Z=function(a,b,c,d){this.o=b;this.s=a;this.f=c;this.v=d;K(this)};
|
||||
function yb(a,b,c,d){for(var e=b,f=c,g=e>>>a.b;0<f&&g<a.a.length;){var h=a.a[g],l=16384*g,p=16384-(e-l);p>f&&(p=f);if(h&&h.size){if(h.type==d){if(e+f<=h.aa)return h.va+=h.aa-e,h.aa=e,!0;if(e>=h.aa+h.va){p=h.size-(e-l);p>f&&(p=f);h.va=e-h.aa+p;e=l+16384;f-=p;g++;continue}}return zb(Ab,e,f)}e=new R(a,e,p,16384,d);wb(e,h);a.a[g++]=e;e=l+16384;f-=p}return 0>=f?(a.status("Added "+(c>>10)+"Kb "+Bb[d]+" at "+ma(b)),!0):zb(Cb,b,c)}function ub(a,b,c){var d=a.a[(b&a.g)>>>a.b];a.h++;d.l(c,b&16383,b);a.h--}
|
||||
function xb(a){for(var b=0,c=[],d=0;d<a.m;d++){var e=a.a[d];if(e.Fa||e.bb){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var p=e[g],r=g+1;r<e.length&&e[r]===p;)r++;l[h++]=r-g;l[h++]=p;g=r}l.length<e.length&&(e=l)}c[f]=e}}return c}function zb(a,b,c){x("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Ab=1,Cb=2;function Db(a){B.call(this,"Device",a)}n(Db,B);k=Db.prototype;k.Z=function(a,b,c,d){this.o=b;this.s=a;this.f=c;this.v=d;K(this)};
|
||||
k.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new O(this)).data()};k.restore=function(){return!0};y(function(){for(var a=J(document,I,"device"),b=0;b<a.length;b++){var c,d=a[b];c=G(d);switch(c.type){case "default":c=new Db(c),H(c,d)}}});
|
||||
function R(a,b,c,d,e){this.v=a;this.id=Eb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Fb;this.s=e==Gb;this.i=this.o=this.Fa;this.l=this.j=this.Ha;this.f=this.b=0;wb(this);this.Ea=this.bb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Hb(this,Ib)}else Hb(this)}k=R.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Ea=!0):!1};function Hb(a,b){b||(b=Jb);Kb(a,b,void 0);Lb(a,b,void 0)}
|
||||
function Kb(a,b,c){c&&a.f||(a.i=b[0]||a.Fa);if(c||void 0===c)a.o=b[0]||a.Fa}function Lb(a,b,c){c&&a.b||(a.l=!a.s&&b[1]||a.Ha);if(c||void 0===c)a.j=b[1]||a.Ha}function wb(a,b){a.f=a.b=0;b&&((a.f=b.f)&&Kb(a,Mb,!1),(a.b=b.b)&&Lb(a,Mb,!1))}k.Fa=function(){var a=this.v;a.h||P(a.f);return-1};k.Ha=function(){};k.pb=function(a){return this.a[a]};k.yb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Ea=!0)};k.nb=function(a,b){return this.o(a,b)};k.xb=function(a,b,c){this.s||this.j(a,b,c)};
|
||||
function R(a,b,c,d,e){this.v=a;this.id=Eb+=2;this.aa=b;this.va=c;this.size=d||0;this.type=e||Fb;this.s=e==Gb;this.i=this.o=this.Ga;this.j=this.l=this.Ia;this.f=this.b=0;wb(this);this.Fa=this.bb=!1;if(this.size){a=this.a=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Hb(this,Ib)}else Hb(this)}k=R.prototype;k.save=function(){return this.a};k.restore=function(a){return a&&this.size==a.length?(this.a=a,this.Fa=!0):!1};function Hb(a,b){b||(b=Jb);Kb(a,b,void 0);Lb(a,b,void 0)}
|
||||
function Kb(a,b,c){c&&a.f||(a.i=b[0]||a.Ga);if(c||void 0===c)a.o=b[0]||a.Ga}function Lb(a,b,c){c&&a.b||(a.j=!a.s&&b[1]||a.Ia);if(c||void 0===c)a.l=b[1]||a.Ia}function wb(a,b){a.f=a.b=0;b&&((a.f=b.f)&&Kb(a,Mb,!1),(a.b=b.b)&&Lb(a,Mb,!1))}k.Ga=function(){var a=this.v;a.h||P(a.f);return-1};k.Ia=function(){};k.pb=function(a){return this.a[a]};k.yb=function(a,b){this.a[b]!=a&&(this.a[b]=a,this.Fa=!0)};k.nb=function(a,b){return this.o(a,b)};k.xb=function(a,b,c){this.s||this.l(a,b,c)};
|
||||
var Fb=0,Gb=2,Bb=["NONE","RAM","ROM"],Eb=0,Jb=[],Ib=[R.prototype.pb,R.prototype.yb],Mb=[R.prototype.nb,R.prototype.xb];
|
||||
function Nb(a,b){B.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ba=b;this.W=c;this.za=Math.round(this.Ba/1E4)/100;this.O=this.za*this.W;this.Aa=this.fa=this.X=this.pa=0;this.c.A=this.c.Ga=!1;this.c.J=a.autoStart;"string"==typeof this.c.J&&(this.c.J="true"==this.c.J);this.c.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.C=[];this.Oa=this.sb.bind(this);this.K=this.u=this.G=this.I=this.m=this.ja=this.D=this.ca=this.Ca=this.M=0;this.ka=
|
||||
null;K(this)}n(Nb,B);k=Nb.prototype;k.Z=function(a,b,c,d){this.s=a;this.o=b;this.v=d;this.ka=a.g;for(a=0;a<Ob.length;a++)(b=this.j[Ob[a]])&&this.s.U(null,Ob[a],b);K(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=S(this.s,"autoStart");null!=c?this.c.J="true"==c?!0:"false"==c?!1:!!c:null==this.c.J&&(this.c.J=void 0===this.j.run);if(!b){if(a){Pb(this);if(!this.restore(a))return!1;Qb(this)}else this.reset();this.status("No debugger detected");this.c.J||this.L("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.c.A?!0:this.c.J?(pb(this),!0):!1};k.Qa=function(){return 0};
|
||||
function Qb(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.c.sa=0<=a.oa&&0<a.da;a.c.sa&&(a.na=0,a.R=a.oa-a.K)}function sb(a,b){if(a.c.sa){var c=!1;a.na=a.na+a.Qa()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Rb(a)&&(a.da=a.ea=-1,Qb(a),P(a),c=!0);c&&a.L(Rb(a)+" cycles: checksum="+t(a.na))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.c.B)a=!0;else{var b=null,c,h=E(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.c.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.c.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.c.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.c.A?P(d):pb(d))},!0;case "speed":return this.j[b]=
|
||||
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Sb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function rb(a,b,c){a.K+=b;c&&(a.G=a.I=0)}function Tb(a,b){var c=1;b&&1<a.W&&a.M&&(c=a.M/a.za);a.Aa=Math.round(1E3/Ub);a.fa=Math.floor(a.Ba/Ub*c);b||(a.X=a.fa);a.pa=0}function Rb(a){return a.K+a.u+a.G-a.I}function Pb(a){a.M=0;a.Ca=0;a.K=a.u=a.G=a.I=0;Qb(a);Sb(a,1)}
|
||||
function Sb(a,b,c){if(void 0!==b){.8>a.M/a.O&&(b=1);a.W=b;b=a.za*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.L("target speed: "+b)}c&&a.s&&(c=a.s,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}rb(a,a.u);a.u=0;a.m=D();a.D=0;Tb(a)}function Vb(a){for(var b=[],c=0;c<a.C.length;c++)b.push(a.C[c][0]);return b}
|
||||
function Nb(a,b){B.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.xa=0;this.Ca=b;this.W=c;this.Aa=Math.round(this.Ca/1E4)/100;this.O=this.Aa*this.W;this.Ba=this.fa=this.X=this.pa=0;this.c.A=this.c.Ha=!1;this.c.J=a.autoStart;"string"==typeof this.c.J&&(this.c.J="true"==this.c.J);this.c.sa=!1;this.na=this.R=0;this.oa=+a.csStart;this.da=+a.csInterval;this.ea=+a.csStop;this.C=[];this.Pa=this.sb.bind(this);this.K=this.u=this.G=this.I=this.m=this.ja=this.D=this.ca=this.Da=this.M=0;this.ka=
|
||||
null;K(this)}n(Nb,B);k=Nb.prototype;k.Z=function(a,b,c,d){this.s=a;this.o=b;this.v=d;this.ka=a.g;for(a=0;a<Ob.length;a++)(b=this.l[Ob[a]])&&this.s.U(null,Ob[a],b);K(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};
|
||||
k.V=function(a,b){var c=S(this.s,"autoStart");null!=c?this.c.J="true"==c?!0:"false"==c?!1:!!c:null==this.c.J&&(this.c.J=void 0===this.l.run);if(!b){if(a){Pb(this);if(!this.restore(a))return!1;Qb(this)}else this.reset();this.status("No debugger detected");this.c.J||this.L("CPU will not be auto-started "+(this.ka?"(click Run to start)":"(type 'go' to start)"))}return!0};k.P=function(a){return a?this.save():!0};k.J=function(){return this.c.A?!0:this.c.J?(pb(this),!0):!1};k.Ra=function(){return 0};
|
||||
function Qb(a){void 0===a.oa&&(a.oa=0);void 0===a.da&&(a.da=-1);void 0===a.ea&&(a.ea=-1);a.c.sa=0<=a.oa&&0<a.da;a.c.sa&&(a.na=0,a.R=a.oa-a.K)}function sb(a,b){if(a.c.sa){var c=!1;a.na=a.na+a.Ra()|0;a.R-=b;0>=a.R&&(a.R+=a.da,c=!0);0<=a.ea&&a.ea<=Rb(a)&&(a.da=a.ea=-1,Qb(a),P(a),c=!0);c&&a.L(Rb(a)+" cycles: checksum="+t(a.na))}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.l[b]=c,!0;case "run":return this.l[b]=c,c.onclick=function(){var a;if(a=d.s)if(a=d.s,a.c.B)a=!0;else{var b=null,c,h=E(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.c.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.c.B);c++);c==h.length&&(b=a);x("The "+b.type+" component ("+b.id+") is not "+(b.c.ready?"powered yet":"ready yet"+(b.ta?" (waiting for notification)":""))+".");a=!1}a&&(d.c.A?P(d):pb(d))},!0;case "speed":return this.l[b]=
|
||||
c,!0;case "setSpeed":return this.l[b]=c,c.onclick=function(){Sb(d,d.W<<1,!0)},c.textContent=this.O.toFixed(2)+"Mhz",!0}return!1};function rb(a,b,c){a.K+=b;c&&(a.G=a.I=0)}function Tb(a,b){var c=1;b&&1<a.W&&a.M&&(c=a.M/a.Aa);a.Ba=Math.round(1E3/Ub);a.fa=Math.floor(a.Ca/Ub*c);b||(a.X=a.fa);a.pa=0}function Rb(a){return a.K+a.u+a.G-a.I}function Pb(a){a.M=0;a.Da=0;a.K=a.u=a.G=a.I=0;Qb(a);Sb(a,1)}
|
||||
function Sb(a,b,c){if(void 0!==b){.8>a.M/a.O&&(b=1);a.W=b;b=a.Aa*a.W;if(a.O!=b){a.O=b;b=a.O.toFixed(2)+"Mhz";var d=a.l.setSpeed;d&&(d.textContent=b);a.L("target speed: "+b)}c&&a.s&&(c=a.s,c.ba&&(d=b=0,window&&(b=window.scrollX,d=window.scrollY),c.ba.focus(),window&&window.scrollTo(b,d)))}rb(a,a.u);a.u=0;a.m=D();a.D=0;Tb(a)}function Vb(a){for(var b=[],c=0;c<a.C.length;c++)b.push(a.C[c][0]);return b}
|
||||
function qb(a,b){for(var c=a.C.length-1;0<=c;c--){var d=a.C[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Wb(a,b){var c=a.G-=a.I;a.I=0;b&&(a.G=0);return c}
|
||||
k.sb=function(){if(this.c.A){this.pa>=this.Ba&&Tb(this,!0);this.ca=0;this.ja=D();if(this.D){var a=this.ja-this.D;a>this.Aa&&(this.m+=a,this.m>this.ja&&(this.m=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.C.length-1;0<=d;d--){var e=this.C[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Wb(this,!0);this.ca+=b;this.u+=b;sb(this,b);qb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Ca>=Xb&&(this.s&&Q(this.s,void 0),this.Ca=0);break}}while(this.c.A)}catch(f){P(this);
|
||||
this.s&&this.s.stop(D(),Rb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Oa;this.D=D();c=this.Aa;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.D-this.ja;if(d=this.D-this.m)this.M=Math.round(this.u/(10*d))/100,864E5<=d&&(this.K=0,Sb(this));if(0>c||this.M<this.O)-1E3>c&&(this.m-=c),c=0;this.pa+=this.ca;this.D+=c;a(b,c)}}};
|
||||
function pb(a){var b;a.c.error?(a.L(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.L(a.toString()+" busy");else{Sb(a);a.c.A=!0;a.c.Ga=!0;if(b=a.j.run)b.textContent="Halt";a.s&&a.s.start(a.m,Rb(a));a.v||a.status("Started");setTimeout(a.Oa,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Wb(a);rb(a,a.u);a.u=0;a.c.A=!1;if(b=a.j.run)b.textContent="Run";a.s&&a.s.stop(D(),Rb(a));b=!0;a.v||a.status("Stopped")}a.c.complete=void 0;return b}var Ub=30,Xb=15,Ob=["power","reset"];
|
||||
function Yb(a){var b=+a.model||1001;Nb.call(this,a,1E6);this.Ya=b;this.La=+a.addrReset||0;this.Za=Zb.bind(this);this.a=T.bind(this);this.ha=null;this.Ka=[];this.c.complete=!1}n(Yb,Nb);k=Yb.prototype;k.reset=function(){this.status("Model "+this.Ya);this.c.A&&P(this);this.b=this.w=this.qa=0;this.g=this.ya=this.La;this.Xa=this.Wa=this.Na=!1;this.ia=this.g;this.h=0;this.i=this.ob;this.l=this.zb;this.ha=null;Pb(this);this.c.error=!1;Nb.prototype.reset.call(this)};k.Qa=function(){return 0};
|
||||
k.save=function(){var a=new O(this);a.set(0,[this.b,this.w,this.qa,this.g,this.ya,this.ia,this.h]);a.set(1,[]);a.set(2,[this.K,this.W,this.c.J]);a.set(3,$b(this));a.set(4,Vb(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.b=b.next().value;this.w=b.next().value;this.qa=b.next().value;this.g=b.next().value;this.ya=b.next().value;this.ia=b.next().value;this.h=b.next().value;b=a[2];this.K=b[0];Sb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Ka.length;d++){var e=this.Ka[d];if(e.wb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.C.length&&b<a.length;b++)this.C[b][0]=
|
||||
a[b];return!0};function ac(a,b){b?b==Xa?a.Xa=a.Na=!0:b=Ya-b:a.Wa=a.Na=!0;return b}function $b(a){var b=[];for(a=a.ha;a;)b.push(a.wb),a=a.next;return b}k.ob=function(a){var b=this.o;a=this.ia=a;return b.a[(a&b.g)>>>b.b].i(a&16383,a)};k.zb=function(a,b){var c=this.o;a=this.ia=a;c.a[(a&c.g)>>>c.b].l(b,a&16383,a)};
|
||||
k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ga?0:1:-1;this.c.Ga=!1;this.G=this.I=a;this.h=this.h&-5|0;do{if(a=this.h)if(a=this.h&11)this.h&2?this.ha||(this.h&=-3):this.h&1&&this.h++,a=!1;if(a){if(this.h&4&&this.v.h(this.g,b)){P(this);break}if(0>b)break}this.h&=15;this.w=this.w&4194304?this.i(this.b):this.qa=this.i(this.ya=this.g);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.i(a)&Ta;this.w&4194304?a=-1:(this.g=(this.g+1)%M,a=this.qa/Za|0);0<=a&&this.Za(a)}while(0<
|
||||
this.I);return this.c.complete?this.G-this.I:!1===this.c.complete?-1:0};y(function(){for(var a=J(document,I,"cpu"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Yb(d);H(d,c)}});function Zb(a){bc[a>>4].call(this,a,a&15)}function U(a){this.a(a)}function cc(a,b){var c=this.i(this.b),d=this.i(b);this.l(b,V(a,d,c)+(c-(c&262143)))}function dc(a,b){var c=this.i(b);this.l(b,V(a,c,0))}function ec(a,b){b=this.i(b);var c=this.i(this.b);this.l(this.b,V(a,c,b)+(b-(b&262143)))}
|
||||
function fc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Wa?262143:0}c=d;this.l(this.b,c);b&&this.l(b,c)}function gc(a,b){var c=(this.i(this.b)&262143)*N,d=this.i(b);this.l(b,V(a,d,c)+c)}function hc(a,b){var c=this.b*N,d=this.i(b);this.l(b,V(a,d,c)+c)}function ic(a,b){b=(this.i(b)&262143)*N;var c=this.i(this.b);this.l(this.b,V(a,c,b)+b)}function jc(a,b){var c=this.i(this.b),d=(c&262143)*N,c=V(a,c,d)+d;this.l(this.b,c);b&&this.l(b,c)}
|
||||
function kc(a,b){var c=this.i(this.b)&262143,d=this.i(b);this.l(b,W(a,d,c)+c)}function lc(a,b){var c=this.i(b);this.l(b,W(a,c,this.b)+this.b)}function mc(a,b){b=this.i(b)&262143;var c=this.i(this.b);this.l(this.b,W(a,c,b)+b)}function nc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*N;break;case 384:d+=c>Va?262143*N:0}c=d;this.l(this.b,c);b&&this.l(b,c)}function oc(a,b){var c=this.i(this.b)/N|0,d=this.i(b);this.l(b,W(a,d,c)+c)}
|
||||
function pc(a,b){var c=this.i(b);this.l(b,W(a,c,0))}function qc(a,b){b=this.i(b)/N|0;var c=this.i(this.b);this.l(this.b,W(a,c,b)+b)}function rc(a,b){var c=this.i(this.b),d=c/N|0,c=W(a,c,d)+d;this.l(this.b,c);b&&this.l(b,c)}function X(a){this.a(a)}function T(a){this.L("undefined opcode: "+ma(a));this.g=(this.g+-1)%M;P(this)}function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*N;break;case 384:b=c>Va?262143*N:0}return b}
|
||||
k.sb=function(){if(this.c.A){this.pa>=this.Ca&&Tb(this,!0);this.ca=0;this.ja=D();if(this.D){var a=this.ja-this.D;a>this.Ba&&(this.m+=a,this.m>this.ja&&(this.m=this.ja))}try{do{for(var b,c=this.c.sa?1:this.fa,d=this.C.length-1;0<=d;d--){var e=this.C[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.wa(b)}catch(f){if("number"!=typeof f)throw f;}b=Wb(this,!0);this.ca+=b;this.u+=b;sb(this,b);qb(this,b);this.X-=b;if(0>=this.X){this.X+=this.fa;++this.Da>=Xb&&(this.s&&Q(this.s,void 0),this.Da=0);break}}while(this.c.A)}catch(f){P(this);
|
||||
this.s&&this.s.stop(D(),Rb(this));a=f.stack||f.message;this.c.error=!0;this.F(a);return}if(this.c.A){a=setTimeout;b=this.Pa;this.D=D();c=this.Ba;this.ca&&(c=Math.round(c*this.ca/this.fa));c-=this.D-this.ja;if(d=this.D-this.m)this.M=Math.round(this.u/(10*d))/100,864E5<=d&&(this.K=0,Sb(this));if(0>c||this.M<this.O)-1E3>c&&(this.m-=c),c=0;this.pa+=this.ca;this.D+=c;a(b,c)}}};
|
||||
function pb(a){var b;a.c.error?(a.L(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.c.A)a.L(a.toString()+" busy");else{Sb(a);a.c.A=!0;a.c.Ha=!0;if(b=a.l.run)b.textContent="Halt";a.s&&a.s.start(a.m,Rb(a));a.v||a.status("Started");setTimeout(a.Pa,0)}}k.wa=function(){return 0};function P(a){var b=!1;if(a.c.A){Wb(a);rb(a,a.u);a.u=0;a.c.A=!1;if(b=a.l.run)b.textContent="Run";a.s&&a.s.stop(D(),Rb(a));b=!0;a.v||a.status("Stopped")}a.c.complete=void 0;return b}var Ub=30,Xb=15,Ob=["power","reset"];
|
||||
function Yb(a){var b=+a.model||1001;Nb.call(this,a,1E6);this.Ya=b;this.Ma=+a.addrReset||0;this.Za=Zb.bind(this);this.a=T.bind(this);this.ha=null;this.La=[];this.c.complete=!1}n(Yb,Nb);k=Yb.prototype;k.reset=function(){this.status("Model "+this.Ya);this.c.A&&P(this);this.b=this.w=this.qa=0;this.g=this.za=this.Ma;this.Oa=this.Xa=this.ya=!1;this.ia=this.g;this.h=0;this.i=this.ob;this.j=this.zb;this.ha=null;Pb(this);this.c.error=!1;Nb.prototype.reset.call(this)};k.Ra=function(){return 0};
|
||||
k.save=function(){var a=new O(this);a.set(0,[this.b,this.w,this.qa,this.g,this.za,this.ia,this.h]);a.set(1,[]);a.set(2,[this.K,this.W,this.c.J]);a.set(3,$b(this));a.set(4,Vb(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.b=b.next().value;this.w=b.next().value;this.qa=b.next().value;this.g=b.next().value;this.za=b.next().value;this.ia=b.next().value;this.h=b.next().value;b=a[2];this.K=b[0];Sb(this,b[1]);this.c.J=b[2];b=a[3];for(c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.La.length;d++){var e=this.La[d];if(e.wb===b[c]){d=e;break a}}d=null}d&&(d.next=this.ha,this.ha=d)}a=a[4];for(b=0;b<this.C.length&&b<a.length;b++)this.C[b][0]=
|
||||
a[b];return!0};k.abs=function(a){a>Wa&&(a!=Xa?a=Ya-a:this.Oa=this.ya=!0);return a};function ac(a,b){b?b==Xa?a.Oa=a.ya=!0:b=Ya-b:a.Xa=a.ya=!0;return b}function $b(a){var b=[];for(a=a.ha;a;)b.push(a.wb),a=a.next;return b}k.ob=function(a){var b=this.o;a=this.ia=a;return b.a[(a&b.g)>>>b.b].i(a&16383,a)};k.zb=function(a,b){var c=this.o;a=this.ia=a;c.a[(a&c.g)>>>c.b].j(b,a&16383,a)};
|
||||
k.wa=function(a){this.c.complete=!0;var b=a?this.c.Ha?0:1:-1;this.c.Ha=!1;this.G=this.I=a;this.h=this.h&-5|0;do{if(a=this.h)if(a=this.h&11)this.h&2?this.ha||(this.h&=-3):this.h&1&&this.h++,a=!1;if(a){if(this.h&4&&this.v.h(this.g,b)){P(this);break}if(0>b)break}this.h&=15;this.w=this.w&4194304?this.i(this.b):this.qa=this.i(this.za=this.g);this.w&=8388607;this.b=this.w&262143;if(a=this.w>>18&15)this.b=this.b+this.i(a)&Ta;this.w&4194304?a=-1:(this.g=(this.g+1)%M,a=this.qa/Za|0);0<=a&&this.Za(a)}while(0<
|
||||
this.I);return this.c.complete?this.G-this.I:!1===this.c.complete?-1:0};y(function(){for(var a=J(document,I,"cpu"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Yb(d);H(d,c)}});function Zb(a){bc[a>>4].call(this,a,a&15)}function U(a){this.a(a)}function cc(a,b){var c=this.i(this.b),d=this.i(b);this.j(b,V(a,d,c)+(c-(c&262143)))}function dc(a,b){var c=this.i(b);this.j(b,V(a,c,0))}function ec(a,b){b=this.i(b);var c=this.i(this.b);this.j(this.b,V(a,c,b)+(b-(b&262143)))}
|
||||
function fc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d-=d&262143,a){case 256:d+=262143;break;case 384:d+=c>Wa?262143:0}c=d;this.j(this.b,c);b&&this.j(b,c)}function gc(a,b){var c=(this.i(this.b)&262143)*N,d=this.i(b);this.j(b,V(a,d,c)+c)}function hc(a,b){var c=this.b*N,d=this.i(b);this.j(b,V(a,d,c)+c)}function ic(a,b){b=(this.i(b)&262143)*N;var c=this.i(this.b);this.j(this.b,V(a,c,b)+b)}function jc(a,b){var c=this.i(this.b),d=(c&262143)*N,c=V(a,c,d)+d;this.j(this.b,c);b&&this.j(b,c)}
|
||||
function kc(a,b){var c=this.i(this.b)&262143,d=this.i(b);this.j(b,W(a,d,c)+c)}function lc(a,b){var c=this.i(b);this.j(b,W(a,c,this.b)+this.b)}function mc(a,b){b=this.i(b)&262143;var c=this.i(this.b);this.j(this.b,W(a,c,b)+b)}function nc(a,b){var c=this.i(this.b),d=c;if(a&=384)switch(d&=262143,a){case 256:d+=262143*N;break;case 384:d+=c>Va?262143*N:0}c=d;this.j(this.b,c);b&&this.j(b,c)}function oc(a,b){var c=this.i(this.b)/N|0,d=this.i(b);this.j(b,W(a,d,c)+c)}
|
||||
function pc(a,b){var c=this.i(b);this.j(b,W(a,c,0))}function qc(a,b){b=this.i(b)/N|0;var c=this.i(this.b);this.j(this.b,W(a,c,b)+b)}function rc(a,b){var c=this.i(this.b),d=c/N|0,c=W(a,c,d)+d;this.j(this.b,c);b&&this.j(b,c)}function X(a){this.a(a)}function T(a){this.L("undefined opcode: "+ma(a));this.g=(this.g+-1)%M;P(this)}function W(a,b,c){switch(a&384){case 0:b-=b&262143;break;case 128:b=0;break;case 256:b=262143*N;break;case 384:b=c>Va?262143*N:0}return b}
|
||||
function V(a,b,c){switch(a&384){case 0:b&=262143;break;case 128:b=0;break;case 256:b=262143;break;case 384:b=c>Wa?262143:0}return b}
|
||||
var bc=[U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.l(b,this.i(this.b))},function(a,b){this.l(b,this.b)},function(a,b){this.l(this.b,this.i(b))},function(a,b){b&&this.l(b,this.i(this.b))},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.l(b,a)},function(a,b){this.l(b,this.b*N)},function(a,b){a=this.i(b);a=a/N|(a&262143)*N;this.l(this.b,a)},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.l(this.b,a);b&&this.l(b,a)},function(a,
|
||||
b){this.l(b,ac(this,this.i(this.b)))},function(a,b){this.l(b,this.b?Ya-this.b:0)},function(a,b){this.l(this.b,ac(this,this.i(b)))},function(a,b){a=ac(this,this.i(this.b));this.l(this.b,a);b&&this.l(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a,b){a=this.i(b);this.l(b,this.i(this.b));this.l(this.b,a)},function(a,b){a=!1;for(var c=this.i(b),d=c/N|0,c=c&262143;!a;)this.l(c,this.i(d)),c==this.b&&(a=!0),d=d+1&262143,
|
||||
c=c+1&262143,this.c.A||(this.l(b,d*N+c),a||(this.g=(this.g+-1)%M),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a,b){this.j(b,this.i(this.b))},function(a,b){this.j(b,this.b)},function(a,b){this.j(this.b,this.i(b))},function(a,b){b&&this.j(b,this.i(this.b))},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.j(b,a)},function(a,b){this.j(b,this.b*N)},function(a,b){a=this.i(b);a=a/N|(a&262143)*N;this.j(this.b,a)},function(a,b){a=this.i(this.b);a=a/N|(a&262143)*N;this.j(this.b,a);b&&this.j(b,a)},function(a,
|
||||
b){this.j(b,ac(this,this.i(this.b)))},function(a,b){this.j(b,this.b?Ya-this.b:0)},function(a,b){this.j(this.b,ac(this,this.i(b)))},function(a,b){a=ac(this,this.i(this.b));this.j(this.b,a);b&&this.j(b,a)},function(a,b){this.j(b,this.abs(this.i(this.b)))},function(a,b){this.j(b,this.b)},function(a,b){this.j(this.b,this.abs(this.i(b)))},function(a,b){a=this.abs(this.i(this.b));this.j(this.b,a);b&&this.j(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a,b){a=this.i(b);this.j(b,this.i(this.b));this.j(this.b,
|
||||
a)},function(a,b){a=!1;for(var c=this.i(b),d=c/N|0,c=c&262143;!a;)this.j(c,this.i(d)),c==this.b&&(a=!0),d=d+1&262143,c=c+1&262143,this.c.A||(this.j(b,d*N+c),a||(this.g=(this.g+-1)%M),a=!0)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},T,function(a){this.a(a)},function(a,b){a=this.i(b);a+=262145;this.j(a&262143,this.i(this.b));a>=Ua&&(a-=Ua);this.j(b,a)},function(a,b){a=this.i(b);var c=this.i(a&262143);this.j(this.b,c);this.b==b&&
|
||||
(a=c);a-=262145;0>a&&(a+=Ua);this.j(b,a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,
|
||||
ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,cc,dc,ec,fc,gc,hc,ic,jc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,kc,lc,mc,nc,oc,pc,qc,rc,function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X];
|
||||
function sc(a){B.call(this,"ROM",a);this.N=this.a=null;this.m=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.u=na(this.h);if(this.h){a=this.h;var b=oa(this.u);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.h=null);tc(c)})}}n(sc,B);
|
||||
function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},function(a){this.a(a)},X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
|
||||
X,X,X,X,X,X,X,X,X];function sc(a){B.call(this,"ROM",a);this.N=this.a=null;this.m=+a.addr;this.g=+a.size;this.b=a.alias;"string"==typeof this.b&&(this.b=eval(this.b));this.h=a.file;this.u=na(this.h);if(this.h){a=this.h;var b=oa(this.u);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.h+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.F("Unable to load ROM resource (error "+f+": "+a+")"),c.h=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.a=a.H,c.N=a.N):c.h=null);tc(c)})}}n(sc,B);
|
||||
sc.prototype.Z=function(a,b,c,d){this.o=b;this.f=c;this.v=d;tc(this)};sc.prototype.V=function(){this.N&&(this.v&&this.v.a(this.id,this.m,this.g,this.N),delete this.N);return!0};sc.prototype.P=function(){return!0};
|
||||
function tc(a){if(!Ra(a)){if(a.h){if(!a.a||!a.o)return;a.g||(a.g=a.a.length);if(a.a.length!=a.g){var b="ROM size ("+t(a.a.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")";a.c.error=!0;a.F(b)}else{b=a.m;if(yb(a.o,b,a.g,Gb)){var c;for(c=0;c<a.a.length;c++)ub(a.o,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.b?b.push(a.b):null!=a.b&&a.b.length&&(b=a.b);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.o,g=d.g,h=[],l=d.m>>>f.b;0<g&&l<f.a.length;)h.push(f.a[l++]),g-=16384;f=d.o;
|
||||
d=d.g;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){l=h[g++];if(!l)break;f.a[e++]=l;d-=16384}}delete a.a}}}K(a)}}y(function(){for(var a=J(document,I,"rom"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new sc(d);H(d,c)}});
|
||||
function Y(a){B.call(this,"RAM",a);this.N=this.Y=null;this.b=+a.addr;this.g=+a.size;this.T=a.load;this.S=a.exec;null!=this.T&&(this.T=+this.T);null!=this.S&&(this.S=+this.S);this.h=this.u=!1;this.a=a.file;this.m=na(this.a);if(this.a){a=this.a;var b=oa(this.m);"json"!=b&&"hex"!=b&&(a=u()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;v(a,null,!0,function(a,b,f){f?(c.F("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(Ia(c.ma,a,b),(a=ua(a,b))?(c.Y=a.Y,c.N=a.N,null==
|
||||
c.T&&(c.T=a.T),null==c.S&&(c.S=a.S)):c.a=null);uc(c)})}}n(Y,B);Y.prototype.Z=function(a,b,c,d){this.o=b;this.f=c;this.v=d;uc(this)};Y.prototype.V=function(a,b){this.N&&(this.v&&this.v.a(this.id,this.b,this.g,this.N),delete this.N);b||this.reset();return!0};Y.prototype.P=function(){return!0};
|
||||
function uc(a){if(a.o&&(!a.h&&a.g&&(yb(a.o,a.b,a.g,1)?a.h=!0:a.g=0),!Ra(a))){if(!a.h)x("No RAM allocated");else if(a.a){if(!a.Y)return;vc(a,a.Y,a.T,a.S,a.b)?a.status('Loaded image "'+a.m+'"'):a.F('Error loading image "'+a.m+'"')}a.u=!0;K(a)}}
|
||||
Y.prototype.reset=function(){if(this.h&&!this.u){for(var a=this.o,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;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.j(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&vc(this,this.Y,this.T,this.S,this.b,!this.v)}this.u=!1};
|
||||
function vc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)ub(a.o,c+g,b[g]);g=!0}g&&(null==d&&(P(a.f),f=!1),null!=d&&(a=a.f,a.La=d,a.g=d%M,f?a.c.B?a.c.A||pb(a):a.c.J=!0:a.v&&a.c.B?P(a)||a.s.c.reset||(a.v.g(),Q(a.s,-1)):!1===f&&P(a),!a.c.A&&a.ka&&a.ka.stop()));return g}y(function(){for(var a=J(document,I,"ram"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Y(d);H(d,c)}});
|
||||
function wc(a){B.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=xc;b&&(void 0===c&&(c="Panel"),(c=F(c,this.id))&&(b=c.j[b])&&this.U(null,a,b))}this.a=this.m=null;this.exports={connect:this.Ra,receiveData:this.ua,receiveStatus:this.qb,setConnection:this.tb}}n(wc,B);k=wc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case xc:return this.j[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ja:q.Va:46==c?b=q.Ja:a.ctrlKey&&c>=q.Ia&&c<=q.$a&&(b=c-(q.Ia-q.Sa));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Ua&&(b=q.Ta);d.ua(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
Y.prototype.reset=function(){if(this.h&&!this.u){for(var a=this.o,b=this.b,c=this.g,d=b&16383,b=b>>>a.b;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,h,d=d||0,g=g||0;0>g&&g>=ja&&(g+=ia);g=Math.trunc(Math.abs(g))%ia;void 0===f&&(f=e.size);for(h=d;f--&&h<e.size;h++)e.l(g,d,e.aa+d);c-=16384;b++;d=0}this.Y&&vc(this,this.Y,this.T,this.S,this.b,!this.v)}this.u=!1};
|
||||
function vc(a,b,c,d,e,f){var g=!1;null==c&&(c=e);if(null!=c){for(g=0;g<b.length;g++)ub(a.o,c+g,b[g]);g=!0}g&&(null==d&&(P(a.f),f=!1),null!=d&&(a=a.f,a.Ma=d,a.g=d%M,f?a.c.B?a.c.A||pb(a):a.c.J=!0:a.v&&a.c.B?P(a)||a.s.c.reset||(a.v.g(),Q(a.s,-1)):!1===f&&P(a),!a.c.A&&a.ka&&a.ka.stop()));return g}y(function(){for(var a=J(document,I,"ram"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new Y(d);H(d,c)}});
|
||||
function wc(a){B.call(this,"SerialPort",a);this.h=a.upperCase;"string"==typeof this.h&&(this.h="true"==this.h);this.g=!0;this.b=[];var b=a.binding;if("console"!=b){var c;a=xc;b&&(void 0===c&&(c="Panel"),(c=F(c,this.id))&&(b=c.l[b])&&this.U(null,a,b))}this.a=this.m=null;this.exports={connect:this.Sa,receiveData:this.ua,receiveStatus:this.qb,setConnection:this.tb}}n(wc,B);k=wc.prototype;
|
||||
k.U=function(a,b,c){var d=this;switch(b){case xc:return this.l[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.Ka:q.Wa:46==c?b=q.Ka:a.ctrlKey&&c>=q.Ja&&c<=q.$a&&(b=c-(q.Ja-q.Ta));b&&(a.preventDefault&&a.preventDefault(),d.ua(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Va&&(b=q.Ua);d.ua(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.ua(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};k.Z=function(a,b,c,d){this.s=a;this.o=b;this.f=c;this.v=d;K(this)};
|
||||
k.Ra=function(a){if(!this.a){var b=S(this.s,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.la)return;c=sa(c[1]);if(this.a=La(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.m=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Ra(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.Sa=function(a){if(!this.a){var b=S(this.s,"connection");if(b){var c=b.split("->");if(2==c.length){var d=sa(c[0]);if(d!=this.la)return;c=sa(c[1]);if(this.a=La(c)){var e=this.a.exports;if(e){var f=e.connect;f&&f.call(this.a,this.g);if(this.m=e.receiveData){this.g=a;this.status("Connected "+this.ma+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};k.V=function(a,b){if(!b)if(this.Sa(this.g),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
k.P=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){var a=new O(this);a.set(0,[]);return a.data()};k.restore=function(){return!0};k.ua=function(a){if("number"==typeof a)this.b.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.b.push(b)}else this.b=this.b.concat(a);return!0};k.qb=function(){};k.tb=function(a,b){return this.a?!1:(this.a=a,this.m=b,!0)};var xc="buffer";
|
||||
y(function(){for(var a=J(document,I,"serial"),b=0;b<a.length;b++){var c=a[b],d=G(c),d=new wc(d);H(d,c)}});
|
||||
function yc(a,b,c){B.call(this,"Computer",a);this.c.B=!1;this.M=null;zc(this,b);this.I=S(this,"autoPower",a,6);this.h=0;this.W=+a.busWidth||+a.buswidth;this.D=this.u=this.G=null;this.C=this.R=!1;this.w=this.m=null;this.O=this.K=!1;this.X=S(this,"url")||"";(Math.random()+.1).toString(36);this.b=Ac(this);if(this.f=F("CPU",this.id)){this.v=F("Debugger",this.id);this.o=new vb({id:this.ma+".bus",busWidth:this.W},this.f,this.v);var d,e=E(this.id);if((this.g=F("Panel",this.id))&&this.g.ba)for(b=0;b<e.length;b++)d=
|
||||
e[b],d.F=this.g.F,d.L=this.g.L,d.ba=this.g.ba;this.L(L+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Z&&d.Z(this,this.o,this.f,this.v);b=null;d=S(this,"resume",a);void 0!==d&&(1<d.length?b=this.u=d:this.a=parseInt(d,10));var f;if(a=S(this,"state")||(f=!0,a.state))this.G=b=a,f||(this.C=!0,this.a=Bc),this.a&&(this.w=new O(this,"1.34.2"),Z(this.w)?b=null:delete this.w);!b&&this.a&&
|
||||
(b=Cc(this))&&(this.C=!0);if(b){var g=this;v(b,null,!0,function(a,b,c){c?(g.u=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.D=b,g.R=!0);K(g)})}else K(this);this.j.power||(this.I=!0);!c&&this.I&&Dc(this,this.ga)}else x("Unable to find CPU component")}n(yc,B);function zc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
|
||||
(b=Cc(this))&&(this.C=!0);if(b){var g=this;v(b,null,!0,function(a,b,c){c?(g.u=null,g.C=!1,g.F("Unable to load machine state from server (error "+c+(b?": "+sa(b):"")+")")):(g.D=b,g.R=!0);K(g)})}else K(this);this.l.power||(this.I=!0);!c&&this.I&&Dc(this,this.ga)}else x("Unable to find CPU component")}n(yc,B);function zc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){x(d.message+" ("+c+")")}}a.M=b}
|
||||
function S(a,b,c,d){var e=b.toLowerCase(),e=Aa(b)||Aa(e);void 0===e&&a.M&&(e=a.M[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 Dc(a,b,c){for(var d=E(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ra(f)){Ra(f,function(){Dc(a,b,c)});return}}b.call(a,c)}
|
||||
function Ec(a,b){var c=new O(a,"1.34.2",Fc);if(Z(c)&&Gc(c)){var d=c.get(Hc),e=b?b.get(Hc):"unknown";d!=e&&(a.F("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}k=yc.prototype;
|
||||
k.ga=function(a){void 0===a&&(a=this.a||(this.D?Ic:Bc));if(!this.h){this.h++;var b=!1,c=!1;this.K=!1;var d=this.w||new O(this,"1.34.2");if(a==Jc)b=!0;else if(a>Bc){if(Z(d,this.D)){this.m=new O(this,"1.34.2",Kc);Z(this.m)&&(Lc(this,d),a=Mc,Nc(this.m));this.m.set(Hc,ta());Oc(this.m);var e=this.a&&!this.C;if(a==Ic||Ka("Click OK to restore the previous "+L+" machine state, or CANCEL to reset the machine.")){if(c=Gc(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Z(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.F("Error: "+g),"unable to verify user"==g&&(ya(Pc,""),this.b=null)):this.L(f+": "+g),Nc(d),Z(d)?(c=Gc(d),e=!0):c=!1))}e&&Ec(this,c?d:null)}else a==Mc&&d.clear()}else Ec(this);delete this.D;delete this.w}e=E(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Qc(this,g,d,b,c));b=[d,a,c];a!=Jc?Dc(this,this.Pa,b):this.Pa(b)}};
|
||||
function Qc(a,b,c,d,e){if(!b.c.B){b.c.B=!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.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=Bc,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Ma){var g=b.Ma.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.Pa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.f&&(Qc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.K&&(Lc(this,b),b.clear());!c&&this.m&&(this.m.clear(),delete this.m);this.h=0};
|
||||
g?(this.F("Error: "+g),"unable to verify user"==g&&(ya(Pc,""),this.b=null)):this.L(f+": "+g),Nc(d),Z(d)?(c=Gc(d),e=!0):c=!1))}e&&Ec(this,c?d:null)}else a==Mc&&d.clear()}else Ec(this);delete this.D;delete this.w}e=E(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Qc(this,g,d,b,c));b=[d,a,c];a!=Jc?Dc(this,this.Qa,b):this.Qa(b)}};
|
||||
function Qc(a,b,c,d,e){if(!b.c.B){b.c.B=!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.V(f,d)&&f&&(x("Unable to restore state for "+b.type),a.G&&!a.R?(c.clear(),a.a=Bc,window&&window.location.reload()):a.K=!0,b.V(null),e=!1),!d&&b.Na){var g=b.Na.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.Qa=function(a){var b=a[0],c=0>a[1];a=a[2];this.O=!0;this.c.B=!0;var d=this.l.power;d&&(d.textContent="Shutdown");this.f&&(Qc(this,this.f,b,c,a),Q(this,-2),this.f.J());this.K&&(Lc(this,b),b.clear());!c&&this.m&&(this.m.clear(),delete this.m);this.h=0};
|
||||
function Lc(a,b){if(Ka("There may be a problem with your "+L+" machine.\n\nTo help us diagnose it, click OK to send this "+L+" machine state to http://www.pcjs.org.")){var c=a.X;a=a.b||"";b=b.toString();var d={};d.app=L;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;v("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Rc(a,b,c){var d,e="none";if(a.h)return null;a.h--;var f=new O(a,"1.34.2"),g=new O(a,"1.34.2",Fc),h=ta();g.set(Hc,h);f.set(Hc,h);f.set(Sc,"1.34.2");f.set(Tc,window?window.location.href:null);f.set(Uc,window?window.navigator.userAgent:"");a.f&&a.f.P&&(c&&(b&&(a.f.c.J=a.f.c.A),P(a.f)),d=a.f.P(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.c.B=!1,!1===d&&(e=null)));for(var h=E(a.id),l=0;l<h.length;l++){var p=h[l];p.c.B&&(p.P&&(d=p.P(b,c),"object"===typeof d&&f.set(p.id,d)),c&&(p.c.B=!1,!1===
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&Vc(a,a.b,f.toString()),Oc(g)&&Oc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Wc),d&&f.clear(h)):e=f.toString());c&&(a.c.B=!1,b=a.j.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.c.reset=!0;this.o&&this.o.reset&&this.o.reset();this.f&&this.f.reset&&this.f.reset();for(var a=E(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c!==this.f&&c.reset&&c.reset()}this.c.reset=!1;Q(this,-1)};
|
||||
d&&(e=null)))}e&&(c?(h=d=!1,b?(a.b&&Vc(a,a.b,f.toString()),Oc(g)&&Oc(f)||(e=null,d=h=!0)):a.a&&(d=!0,h=a.a==Wc),d&&f.clear(h)):e=f.toString());c&&(a.c.B=!1,b=a.l.power)&&(b.textContent="Power");a.h=0;return e}k.reset=function(){this.c.reset=!0;this.o&&this.o.reset&&this.o.reset();this.f&&this.f.reset&&this.f.reset();for(var a=E(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c!==this.f&&c.reset&&c.reset()}this.c.reset=!1;Q(this,-1)};
|
||||
k.start=function(a,b){for(var c=E(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)};k.stop=function(a,b){for(var c=E(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.f){var c=a.f,d=b||0,e=c.j.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.M.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.h&8);if(0>=b||60<=(a.C+=b)){e=a.f.g;if(a.j.PC){var f=a.v&&a.v.m||8,e=e||0,e=8==f?ma(e,void 0):t(e,void 0);a.j.PC.textContent!=e&&(a.j.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.g:0<b&&c&&!d&&(a.b=a.f.ia);hb(a,a.b);bb(a,a.h)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.h||(d.c.B?Rc(d,!1,!0):Dc(d,d.ga))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.c.B&&!d.h)if(d.a&&!d.u){var a=Ka("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(Bc)}else d.reset(),d.f&&!d.v&&d.f.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.j[b]=
|
||||
function Q(a,b){if(a.f){var c=a.f,d=b||0,e=c.l.speed;e&&(0>=d||30<=(c.xa+=d))&&(e.textContent=c.c.A?c.M.toFixed(2)+"Mhz":"Stopped",c.xa=0)}if(a.g&&(a=a.g,b=b||0,a.D)){c=a.f.c.A;d=!!(a.f.h&8);if(0>=b||60<=(a.C+=b)){e=a.f.g;if(a.l.PC){var f=a.v&&a.v.m||8,e=e||0,e=8==f?ma(e,void 0):t(e,void 0);a.l.PC.textContent!=e&&(a.l.PC.textContent=e)}a.C=0}-1>b?a.b=a.f.g:0<b&&c&&!d&&(a.b=a.f.ia);hb(a,a.b);bb(a,a.h)}}
|
||||
k.U=function(a,b,c){var d=this;switch(b){case "power":return this.l[b]=c,c.onclick=function(){d.h||(d.c.B?Rc(d,!1,!0):Dc(d,d.ga))},!0;case "reset":return this.l[b]=c,c.onclick=function(){if(d.c.B&&!d.h)if(d.a&&!d.u){var a=Ka("Click OK to save changes to this "+L+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rc(d,a,!0);!a&&d.G?window&&window.location.reload():d.ga(Bc)}else d.reset(),d.f&&!d.v&&d.f.J()},!0;case "save":if(pa())c.parentNode.removeChild(c);else return this.l[b]=
|
||||
c,c.onclick=function(){var a=Ac(d,!0);if(a){var b=!!(d.a&&!d.u||d.G),c=Rc(d,b);b?Vc(d,a,c):d.F("Resume disabled, machine state not saved")}},!0}return!1};function Ac(a,b){var c=a.b;c||((c=xa(Pc),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=Xc(a,c))||a.F("The user ID is invalid.")):b&&a.F("Browser local storage is not available"));return c}
|
||||
function Xc(a,b){a.b=null;b=v(u()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ya(Pc,b.data),a.b=b.data)}catch(d){x(d.message+" ("+c+")")}return a.b}function Cc(a){var b=null;a.b&&(b=u()+"/api/v1/user?req=load&user="+a.b+"&state="+Yc(a,"1.34.2"));return b}
|
||||
function Vc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Yc(a,"1.34.2");d.data=c;b=v(u()+"/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.F("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.F(c),ya(Pc,""),a.b=null)}}
|
||||
var Kc="failsafe",Fc="validate",Hc="timestamp",Sc="version",Tc="url",Uc="browser",Pc="user",Jc=-1,Bc=0,Ic=1,Mc=2,Wc=3;y(function(){for(var a=J(document,I+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=G(c),c=J(c,I,"computer"),e=0;e<c.length;e++){var f=c[e],g=G(f),g=new yc(g,d,!0);H(g,f);g.I&&Dc(g,g.ga)}});z.show.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.O&&!c.c.B&&c.ga(Jc)}});
|
||||
z.exit.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.c.B&&Rc(c,!(!c.a||c.u),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.a={};this.b=this.j=!1;this.key=Yc(a,b,c);Nc(this,a.ab)}k=O.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.b=!0,a.j=!1,!0):a.b?!0:va()&&(b=xa(a.key))?(a.f=b,a.b=!0):!1}
|
||||
function Gc(a){var b=!0;if(!a.j)try{a.a=JSON.parse(a.f),a.j=!0}catch(c){x(c.message||c),b=!1}return b}function Oc(a){var b=!0;if(va()){var c=JSON.stringify(a.a);ya(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Nc(a,b){a.f="";a.a={};a.b=a.j=!1;b&&a.set("parms",b)}
|
||||
z.exit.push(function(){for(var a=J(document,I,"computer"),b=0;b<a.length;b++){var c=G(a[b]);(c=F("Computer",c.id))&&c.c.B&&Rc(c,!(!c.a||c.u),!0)}});function O(a,b,c){this.id=a.id;this.f="";this.a={};this.b=this.l=!1;this.key=Yc(a,b,c);Nc(this,a.ab)}k=O.prototype;k.set=function(a,b){try{this.a[a]=b}catch(c){}};k.get=function(a){return this.a[a]||null};k.data=function(){return this.a};function Z(a,b){return b?(a.f=b,a.b=!0,a.l=!1,!0):a.b?!0:va()&&(b=xa(a.key))?(a.f=b,a.b=!0):!1}
|
||||
function Gc(a){var b=!0;if(!a.l)try{a.a=JSON.parse(a.f),a.l=!0}catch(c){x(c.message||c),b=!1}return b}function Oc(a){var b=!0;if(va()){var c=JSON.stringify(a.a);ya(a.key,c)||(x("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}k.toString=function(){return this.a?JSON.stringify(this.a):this.f};function Nc(a,b){a.f="";a.a={};a.b=a.l=!1;b&&a.set("parms",b)}
|
||||
k.clear=function(a){Nc(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 Yc(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 Zc=0;
|
||||
function $c(a,b,c,d,e,f,g){f("Loading "+a+"...");v(a,null,!0,function(h,l,p){p?(l||(l="unable to load "+a+" ("+p+")"),g(l,null)):ad(l,a,b,c,d,e,f,g)})}
|
||||
function ad(a,b,c,d,e,f,g,h){function l(a,g){if(g)h(g,null);else{c&&(Ia(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