|
|
|
|
@ -27,204 +27,204 @@
|
|
|
|
|
http://pcjs.org/modules/shared/lib/debugger.js (C) Jeff Parsons 2012-2017
|
|
|
|
|
http://pcjs.org/modules/pdp10/lib/debugger.js (C) Jeff Parsons 2012-2017
|
|
|
|
|
*/
|
|
|
|
|
var l,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ca(){ca=function(){};ba.Symbol||(ba.Symbol=da)}var ea=0;function da(a){return"jscomp_symbol_"+(a||"")+ea++}
|
|
|
|
|
function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return 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={cc:0,vb:1,ec:2,fc:3,gc:4,hc:5,ic:6,jc:7,cb:8,kc:9,wb:10,lc:11,mc:12,xb:13,nc:14,oc:15,pc:16,qc:17,rc:18,sc:19,tc:20,uc:21,vc:22,wc:23,xc:24,yc:25,zc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,bb:65,bc:66,dc:67,Ac:68,E:69,Bc:70,Cc:71,Dc:72,Ec:73,Fc:74,Gc:75,Hc:76,Ic:77,Jc:78,Kc:79,Lc:80,Q:81,
|
|
|
|
|
var l,ca="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(c.get||c.set)throw new TypeError("ES3 does not support getters and setters.");a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},da="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global?global:this;function ea(){ea=function(){};da.Symbol||(da.Symbol=fa)}var ga=0;function fa(a){return"jscomp_symbol_"+(a||"")+ga++}
|
|
|
|
|
function ha(){ea();var a=da.Symbol.iterator;a||(a=da.Symbol.iterator=da.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&ca(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ia(this)}});ha=function(){}}function ia(a){var b=0;return ja(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})}function ja(a){ha();a={next:a};a[da.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 ma(a,b){if(b){var c=da;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&&ca(c,a,{configurable:!0,writable:!0,value:b})}}
|
|
|
|
|
ma("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}});ma("Math.log2",function(a){return a?a:function(a){return Math.log(a)/Math.LN2}});
|
|
|
|
|
var na=Math.pow(2,36),oa=-Math.pow(2,35),q={cc:0,vb:1,ec:2,fc:3,gc:4,hc:5,ic:6,jc:7,cb:8,kc:9,wb:10,lc:11,mc:12,xb:13,nc:14,oc:15,pc:16,qc:17,rc:18,sc:19,tc:20,uc:21,vc:22,wc:23,xc:24,yc:25,zc:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,bb:65,bc:66,dc:67,Ac:68,E:69,Bc:70,Cc:71,Dc:72,Ec:73,Fc:74,Gc:75,Hc:76,Ic:77,Jc:78,Kc:79,Lc:80,Q:81,
|
|
|
|
|
Mc:82,Nc:83,Oc:84,Pc:85,Qc:86,Rc:87,Sc:88,Tc:89,zb:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Uc:97,Vc:98,Wc:99,d:100,e:101,Xc:102,Yc:103,Zc:104,$c:105,ad:106,k:107,bd:108,cd:109,n:110,dd:111,p:112,q:113,r:114,ed:115,t:116,gd:117,hd:118,jd:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126,yb:127};
|
|
|
|
|
function 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)}
|
|
|
|
|
function Ca(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Aa={"&":"&","<":"<",">":">",'"':""","'":"'"};function Da(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function Ea(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
|
|
|
|
function 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,
|
|
|
|
|
function pa(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var g,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
|
|
|
|
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(g=parseInt(a,b))&&(c=g)}return c}function qa(a,b,c,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 ra(a,b,c){b?12<b&&(b=12):b=a&-16777216?11:a&-65536?8:6;return qa(a,8,b,c?"0o":"")}function t(a,b,c){b?9<b&&(b=9):b=a&-65536?8:4;return qa(a,16,b,c?"0x":"")}
|
|
|
|
|
function sa(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}function ta(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function za(){var a=Aa();return-1!==a.indexOf("pcjs.org",a.length-8)}function Ba(a){return a.replace(/[&<>"']/g,function(a){return Ca[a]})}function Da(a,b){return(a+" ").slice(0,b)}
|
|
|
|
|
function Ea(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Ca={"&":"&","<":"<",">":">",'"':""","'":"'"};function Fa(a,b,c){var d=0,e=a.length,g=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var f=d+e>>1,h;h=c(b,a[f]);0<h?d=f+1:(e=f,g=!h)}return g?d:~d}function Ga(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
|
|
|
|
function Ha(a,b,c,d){c=void 0===c?!1:c;var e=0,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++]=
|
|
|
|
|
function Ia(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.Ca=e:d.Y=f;d.Y&&(d.Y.length?1==d.Y.length&&(u(d.Y[0]),d=null):(u("Empty resource: "+a),d=null));d.T=f.symbols}catch(h){u("Resource data error ("+a+"): "+h.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){g=parseInt(b[c],16);if(isNaN(g)){u("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(g&255)}c==b.length&&(d.Y=e)}return d}
|
|
|
|
|
function ya(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ha(){if(null==Ia){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}Ia=a}return Ia}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"),fb&&eb("show")):bb=a}function eb(a){$a[a]&&ab($a[a])}var Va=null,$a={init:[],show:[],exit:[]},db=!1,fb=!1,bb=!0,Ia=null;Ya("onload",function(){db=!0;ab($a.init)});Ya("onpageshow",function(){fb=!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.hb=b.comment;this.Bb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Xa:!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 gb(a,b,c){ib[a]&&b&&(ib[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 Aa(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ja(){if(null==Ka){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}Ka=a}return Ka}function Ta(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
|
|
|
|
function Ua(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Va(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 Wa(a){if(!Xa){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," "))}Xa=c}return Xa[a]}function Ya(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
|
|
|
|
function Za(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 $a(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function ab(a){bb.init.push(a)}
|
|
|
|
|
function cb(a){if(db)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 eb(a){!db&&a?(db=!0,fb&&gb("init"),hb&&gb("show")):db=a}function gb(a){bb[a]&&cb(bb[a])}var Xa=null,bb={init:[],show:[],exit:[]},fb=!1,hb=!1,db=!0,Ka=null;$a("onload",function(){fb=!0;cb(bb.init)});$a("onpageshow",function(){hb=!0;cb(bb.show)});$a(Va("Opera")||Va("iOS")?"onunload":"onbeforeunload",function(){cb(bb.exit)});
|
|
|
|
|
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.hb=b.comment;this.Bb=b;this.exports={};this.I=this.bindings={};a=this.id.indexOf(".");0>a?this.Ka=this.id:(this.La=this.id.substr(0,a),this.Ka=this.id.substr(a+1));this.j={ready:!1,Fa:!1,Xa:!1,U:!1,error:!1};this.Ma=null;this.j.error=!1;this.X=c||0;this.C=this.i=this.G=this.F=this.oa=null;w.push(this)}function ib(a,b,c){kb[a]&&b&&(kb[a][b]=c)}function tb(){return Date.now()||+new Date}
|
|
|
|
|
function u(a){window&&window.alert(a)}function ub(a){var b=!1;window&&(b=window.confirm(a));return b}function vb(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 wb(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 xb(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 yb(a,b){var c=y;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;
|
|
|
|
|
function zb(a){for(var b=!0,c=Ab[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],g=null;0<=Bb.indexOf(e)&&(g=function(){return function(){zb(a)}}());var f=Cb[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=xb(d[1],a);if(h)if(f=Db[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 Ab[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.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.da=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.da=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Cb(a,b){a.j.error=!0;a.da(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.Xa=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.Fa}
|
|
|
|
|
function Gb(a,b){if(a.j.Xa)return a.j.Fa=!1,a.j.Xa=!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.nb)}return!1}function Ib(a,b,c,d){a.A&&(!0===c||Hb(a,c|0))&&a.A.message(b,d)}
|
|
|
|
|
l.status=function(a){this.g(this.Ka+": "+a)};l.da=function(a,b,c){c=c||this.type;b||u((c?c+": ":"")+a)};function Eb(a,b){a.j.error=!0;a.da(b)}function Fb(a){return a.j.error?(a.g(a.toString()+" error"),!0):!1}function Gb(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 Hb(a,b){a.j.Fa&&(b?a.j.Xa=!0:void 0===b&&a.g(a.toString()+" busy"));return a.j.Fa}
|
|
|
|
|
function Ib(a,b){if(a.j.Xa)return a.j.Fa=!1,a.j.Xa=!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 Jb(a,b){if(a.C){a===a.C?b|=0:b=b||a.X;var c=a.C.X&b;return!!b&&c===b||!!(c&a.C.nb)}return!1}function Kb(a,b,c,d){a.C&&(!0===c||Jb(a,c|0))&&a.C.message(b,d)}
|
|
|
|
|
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
|
|
|
|
var ib=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}};
|
|
|
|
|
var kb=window?window.PCjs.Machines:{},w=window?window.PCjs.Components:[],Ab=window?window.PCjs.Commands:{},Bb=["hold","sleep","wait"],Cb={alert:function(a){u(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},Db={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),Ub=Math.pow(2,30),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 Vb(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=Wb;this.B={};this.b={START:[1,1,!0,!1,this.Nb],STEP:[1,1,!1,!1,this.Ob],ENABLE:[1,1,!1,!1,this.Ib],CONT:[1,1,!0,!1,this.Gb],DEP:[0,0,!0,!1,this.Hb],EXAM:[1,1,!0,!1,this.Jb],LOAD:[1,1,!0,!1,this.Lb],TEST:[0,0,!0,!1,this.Kb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Mb,a];this.A=this.i=this.G=this.F=null;this.exports={hold:this.Eb,toggle:this.Xb,reset:this.Tb,
|
|
|
|
|
set:this.Wb};D(this)}p(Vb,v);l=Vb.prototype;l.reset=function(a){this.stop();a&&Xb(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(){Yb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Zb(a,b)}}(this,b),a.ontouchstart=
|
|
|
|
|
function(a,b){return function(c){Yb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Zb(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.wa=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.A=d;$b(this);ac(this)};l.pa=function(a,b){if(!b)if(this.W&&bc(),!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])cc(this,this.f=a[0]),Xb(this,this.v=a[1]),dc(this,a[2]);return!0};l.Tb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}ac(this);return!0};function ec(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function $b(a,b){for(var c in a.B)ec(a,c,null!=b?b:a.B[c])}function mc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ac(a){for(var b in a.b)mc(a,b,a.b[b][1])}
|
|
|
|
|
l.Eb=function(a,b,c){if(Yb(this,b)){if(c){var d=this;setTimeout(function(){Zb(d,b);a&&a()},+c);return!1}Zb(this,b)}return!0};l.Wb=function(a,b){if("SR"==a)return dc(this,na(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,mc(this,a,c[1]),!0):!1};l.Xb=function(a){return Yb(this,a)?(Zb(this,a),!0):!1};function Yb(a,b){var c=a.b[b];return c?(mc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=nc&&(a.P=b==oc,a.R=b==pc),!0):!1}
|
|
|
|
|
function Zb(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(mc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Nb=function(a){a||this.i.j.K||(this.i.u=this.f%Kb,this.b[qc]&&this.b[qc][1]&&rc(this.i))};l.Ob=function(){};l.Ib=function(a){a||this.i.V()};
|
|
|
|
|
l.Gb=function(a){if(!a&&!this.i.j.K)if(this.b[qc]&&this.b[qc][1])rc(this.i);else{if((a=this.A)&&!Fb(a,!0))Gb(a,!0),sc(a,0,null),Gb(a,!1);else try{var b=this.i.Ja(1);0<b&&(tc(this.i,b),uc(this.i,b,!0),vc(this.i,b))}catch(c){"number"!=typeof c&&Cb(this.i,c.stack||c.message)}this.stop();this.F&&I(this.F)}};l.Hb=function(a){a&&!this.i.j.K&&(this.P&&wc(this),a=Xb(this,this.v=this.u),this.S==Wb?xc(this.G,this.f,a):this.i.D(this.f,a))};
|
|
|
|
|
l.Jb=function(a){if(!a&&!this.i.j.K){var b;this.R&&wc(this);this.S==Wb?b=yc(this.G,this.f):b=this.i.C(this.f);Xb(this,this.v=b)}};l.Lb=function(a){a||this.i.j.K||cc(this,this.u)};l.Kb=function(a){a?(this.H=!0,$b(this,!0)):(this.H=!1,$b(this),dc(this,0))};l.Mb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function wc(a){var b=1,c=a.G.u;a.b[nc]&&a.b[nc][1]||(b=-b);cc(a,a.f&~c|a.f+b&c)}
|
|
|
|
|
function cc(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||ec(d,e,g)}}}function Xb(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||ec(d,e,g)}}return a.J}function dc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;ac(a);return!0}l.stop=function(){cc(this,this.i.u)};
|
|
|
|
|
function bc(){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 Vb(d,!0));wb(e,c)}}var Wb=7,oc="DEP",qc="ENABLE",pc="EXAM",nc="STEP";Za(bc);function zc(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 Ac(this);Bc(a,this.A);this.b=Array(this.B);for(b=0;b<this.B;b++)this.b[b]=a;D(this)}p(zc,v);l=zc.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,Cc(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 Dc(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 Ec(Fc,e,g)}e=new Ac(a,e,m,16384,d);Bc(e,a.A,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Gc[d]+" at "+pa(b)),!0):Ec(Hc,b,c)}
|
|
|
|
|
function yc(a,b){var c=a.b[(b&a.u)>>>a.f];a.v++;b=c.G(b&16383,b);a.v--;return b}function xc(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.v++;d.F(c,b&16383,b);a.v--}function Cc(a){for(var b=0,c=[],d=0;d<a.B;d++){var e=a.b[d];if(e.Za||e.Cb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
|
|
|
|
l.Db=function(a){this.v||(this.A&&Hb(this.A,4)&&Ib(this.A,"memory fault on "+K(this.A,a),!0,!0),this.i.V())};function Ec(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Fc=1,Hc=2;function Ic(a){v.call(this,"Device",a,256)}p(Ic,v);l=Ic.prototype;l.wa=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 Ic(c),wb(c,d)}}});function Ac(a,b,c,d,e){this.u=a;this.id=Jc+=2;this.w=b;this.Ha=c;this.size=d||0;this.type=e||Kc;this.I=e==Lc;this.b=null;this.C=this.G=this.ab;this.D=this.F=this.Ia;this.i=this.f=0;Bc(this);this.Za=this.Cb=!1;if(this.size){a=this.A=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Mc(this,Nc)}else Mc(this)}l=Ac.prototype;l.save=function(){return this.A};
|
|
|
|
|
l.restore=function(a){return a&&this.size==a.length?(this.A=a,this.Za=!0):!1};function Mc(a,b){b||(b=Oc);Pc(a,b,void 0);Qc(a,b,void 0)}function Pc(a,b,c){c&&a.i||(a.C=b[0]||a.ab);if(c||void 0===c)a.G=b[0]||a.ab}function Qc(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.Da=function(a,b){b?this.f++||Qc(this,Rc,!1):this.i++||Pc(this,Rc,!1)};function Sc(a,b){b?--a.f||(a.D=a.I?a.Ia:a.F):--a.i||(a.C=a.G)}
|
|
|
|
|
function Bc(a,b,c){a.b=b;a.i=a.f=0;c&&((a.i=c.i)&&Pc(a,Rc,!1),(a.f=c.f)&&Qc(a,Rc,!1))}l.ab=function(a,b){this.b&&Hb(this.b,32)&&Ib(this.b,"attempt to read invalid address "+K(this.b,b),!0);this.u.Db(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.Rb=function(a){return this.A[a]};l.$b=function(a,b){this.A[b]!=a&&(this.A[b]=a,this.Za=!0)};
|
|
|
|
|
l.Pb=function(a,b){if(this.b&&null!=this.w){var c=this.b;Tc(c,this.w+a,2,c.M)&&c.V(!1)}return this.G(a,b)};l.Zb=function(a,b,c){if(this.b&&null!=this.w){var d=this.b;Tc(d,this.w+b,2,d.J)&&d.V(!1)}this.I?this.Ia(a,0,c):this.F(a,b,c)};var Kc=0,Lc=2,Gc=["NONE","RAM","ROM"],Jc=0,Oc=[],Nc=[Ac.prototype.Rb,Ac.prototype.$b],Rc=[Ac.prototype.Pb,Ac.prototype.Zb];
|
|
|
|
|
function Uc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Qa=0;this.Va=b;this.aa=c;this.Ta=Math.round(this.Va/1E4)/100;this.W=this.Ta*this.aa;this.Ua=this.va=this.ba=this.Aa=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.ta=this.ia=0;this.ua=+a.csStart;this.ha=+a.csInterval;this.ja=+a.csStop;this.M=[];this.kb=this.Ub.bind(this);this.R=this.L=this.O=this.P=this.J=this.sa=this.N=this.ka=this.Wa=this.S=0;
|
|
|
|
|
this.ya=null;D(this)}p(Uc,v);l=Uc.prototype;l.wa=function(a,b,c,d){this.F=a;this.G=b;this.A=d;this.ya=a.u;for(a=0;a<Vc.length;a++)(b=this.I[Vc[a]])&&this.F.ga(null,Vc[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
|
|
|
|
l.pa=function(a,b){var c=Wc(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){Xc(this);if(!this.restore(a))return!1;Yc(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"),Zc(a),b||$c(a),a.ua&&(b=a.ua,a.ua=null,ad(a,b))):this.status("No debugger detected");this.j.Z||this.g("CPU will not be auto-started "+(this.ya?"(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?(rc(this),!0):!1};l.rb=function(){return 0};function Yc(a){void 0===a.ua&&(a.ua=0);void 0===a.ha&&(a.ha=-1);void 0===a.ja&&(a.ja=-1);a.j.Ea=0<=a.ua&&0<a.ha;a.j.Ea&&(a.ta=0,a.ia=a.ua-a.R)}function vc(a,b){if(a.j.Ea){var c=!1;a.ta=a.ta+a.rb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.ha,c=!0);0<=a.ja&&a.ja<=bd(a)&&(a.ha=a.ja=-1,Yc(a),a.V(),c=!0);c&&a.g(bd(a)+" cycles: checksum="+t(a.ta))}}
|
|
|
|
|
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():rc(d))},!0;case "speed":return this.I[b]=
|
|
|
|
|
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){cd(d,d.aa<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",!0}return!1};function uc(a,b,c){a.R+=b;c&&(a.O=a.P=0)}function dd(a,b){var c=1;b&&1<a.aa&&a.S&&(c=a.S/a.Ta);a.Ua=Math.round(1E3/yd);a.va=Math.floor(a.Va/yd*c);b||(a.ba=a.va);a.Aa=0}function bd(a){return a.R+a.L+a.O-a.P}function Xc(a){a.S=0;a.Wa=0;a.R=a.L=a.O=a.P=0;Yc(a);cd(a,1)}
|
|
|
|
|
function cd(a,b,c){var d=!1;if(void 0!==b){.8>a.S/a.W?b=1:d=!0;a.aa=b;b=a.Ta*a.aa;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.F&&zd(a.F)}uc(a,a.L);a.L=0;a.J=rb();a.N=0;dd(a);return d}function Ad(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function Bd(a){for(var b=[],c=0;c<a.M.length;c++)b.push(a.M[c][0]);return b}
|
|
|
|
|
function tc(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Cd(a,b){var c=a.O-=a.P;a.P=0;b&&(a.O=0);return c}
|
|
|
|
|
l.Ub=function(){if(this.j.K){this.Aa>=this.Va&&dd(this,!0);this.ka=0;this.sa=rb();if(this.N){var a=this.sa-this.N;a>this.Ua&&(this.J+=a,this.J>this.sa&&(this.J=this.sa))}try{do{var b=Ad(this,this.j.Ea?1:this.va);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Cd(this,!0);this.ka+=b;this.L+=b;vc(this,b);tc(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.va;++this.Wa>=Dd&&(this.F&&I(this.F,void 0),this.Wa=0);break}}while(this.j.K)}catch(e){this.V();this.F&&this.F.stop(rb(),bd(this));Cb(this,
|
|
|
|
|
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.kb;this.N=rb();var c=this.Ua;this.ka&&(c=Math.round(c*this.ka/this.va));var c=c-(this.N-this.sa),d=this.N-this.J;d&&(this.S=Math.round(this.L/(10*d))/100,864E5<=d&&(this.R=0,cd(this)));if(0>c||this.S<this.W)-1E3>c&&(this.J-=c),c=0;this.Aa+=this.ka;this.N+=c;a(b,c)}}};
|
|
|
|
|
function rc(a,b){if(!Db(a))if(a.j.K)a.g(a.toString()+" busy");else{cd(a);a.j.K=!0;a.j.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&zd(a.F,!0),a.F.start(a.J,bd(a)));a.A||a.status("Started");setTimeout(a.kb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){Cd(this);uc(this,this.L);this.L=0;this.j.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(rb(),bd(this));b=!0;this.A||this.status("Stopped")}this.j.complete=a;return b};var yd=30,Dd=15,Vc=["power","reset"];
|
|
|
|
|
function Ed(a){var b=+a.model||1001;Uc.call(this,a,1E6);this.jb=b;this.gb=+a.addrReset||0;this.Ab=Fd.bind(this);this.b=L.bind(this);this.la=null;this.fb=[];this.j.complete=!1}p(Ed,Uc);l=Ed.prototype;l.reset=function(){this.status("Model "+this.jb);this.j.K&&this.V();this.f=this.H=this.Ba=0;this.u=this.ra=this.gb;this.Ra=this.ib=this.za=this.ub=this.Sa=!1;this.B=-1;this.qa=this.u;this.v=0;this.C=this.Qb;this.D=this.ac;this.la=null;Xc(this);this.j.error=!1;Uc.prototype.reset.call(this)};l.rb=function(){return 0};
|
|
|
|
|
l.save=function(){var a=new H(this);a.set(0,[this.f,this.H,this.B,this.Ba,this.u,this.ra,this.qa,this.v]);a.set(1,[]);a.set(2,[this.R,this.aa,this.j.Z]);a.set(3,Gd(this));a.set(4,Bd(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.H=b.next().value;this.B=b.next().value;this.Ba=b.next().value;this.u=b.next().value;this.ra=b.next().value;this.qa=b.next().value;this.v=b.next().value;b=a[2];this.R=b[0];cd(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.fb.length;d++){var e=this.fb[d];if(e.Yb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.M.length&&
|
|
|
|
|
b<a.length;b++)this.M[b][0]=a[b];return!0};function Hd(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.Ra=this.za=!0);return a};function Id(a,b){b?b==Pb?a.Ra=a.za=!0:b=Qb-b:a.ib=a.za=!0;return b}function Gd(a){var b=[];for(a=a.la;a;)b.push(a.Yb),a=a.next;return b}l.Qb=function(a){var b=this.G;a=this.qa=a;return b.b[(a&b.u)>>>b.f].C(a&16383,a)};l.ac=function(a,b){var c=this.G;a=this.qa=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?Jd(this.A)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.O=this.P=a;this.v=this.v&-5|(b?4:0);do{if(this.v){if(this.v&4){if(Kd(this.A,this.u,c)){this.V();break}++b||(this.v&=-5);c||c++}if(a=this.v&11)this.v&2?this.la||(this.v&=-3):this.v&1&&this.v++,a=!1;if(a){if(this.v&4&&Kd(this.A,this.u,c)){this.V();break}if(0>c)break}}this.v&=15;this.H=this.H&4194304?this.C(this.f):this.Ba=this.C(this.ra=this.u);this.H&=8388607;this.f=this.H&262143;if(a=
|
|
|
|
|
this.H>>18&15)this.f=this.f+this.C(a)&Lb;this.H&4194304?a=-1:(this.u=(this.u+1)%Kb,a=this.Ba/Tb|0);0<=a&&this.Ab(a)}while(0<this.P);return this.j.complete?this.O-this.P:!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 Ed(d);wb(d,c)}});function Fd(a){Ld[a>>4].call(this,a,a&15)}function M(a){this.b(a)}
|
|
|
|
|
function Md(){var a=0,b=this.C(this.f),c=b/Ub&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Ub+(d<<24)+(b&16777215);a&&(b=(b+a)%Mb);this.D(this.f,b)}function Nd(a,b){a=this.C(this.f);if(0>this.B)this.B=a,this.H=this.f|4194304,Hd(this,-1);else{var c=this.B/Ub&63,d=this.B>>24&63;a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.D(b,a);this.B=-1}}
|
|
|
|
|
function Od(a,b){a=this.C(this.f);if(0>this.B)this.B=a,this.H=this.f|4194304,Hd(this,-1);else{var c=this.B/Ub&63,d=this.B>>24&63;b=this.C(b)%Math.pow(2,d)*Math.pow(2,c)%Mb;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.D(this.f,a);this.B=-1}}function Pd(a,b){var c=this.C(this.f),d=this.C(b);this.D(b,Qd(a,d,c)+(c-(c&262143)))}function Rd(a,b){var c=this.C(b);this.D(b,Qd(a,c,0))}function Sd(a,b){b=this.C(b);var c=this.C(this.f);this.D(this.f,Qd(a,c,b)+(b-(b&262143)))}
|
|
|
|
|
function Td(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 Ud(a,b){var c=(this.C(this.f)&262143)*F,d=this.C(b);this.D(b,Qd(a,d,c)+c)}function Vd(a,b){var c=this.f*F,d=this.C(b);this.D(b,Qd(a,d,c)+c)}function Wd(a,b){b=(this.C(b)&262143)*F;var c=this.C(this.f);this.D(this.f,Qd(a,c,b)+b)}function Xd(a,b){var c=this.C(this.f),d=(c&262143)*F,c=Qd(a,c,d)+d;this.D(this.f,c);b&&this.D(b,c)}
|
|
|
|
|
function Yd(a,b){var c=this.C(this.f)&262143,d=this.C(b);this.D(b,Zd(a,d,c)+c)}function $d(a,b){var c=this.C(b);this.D(b,Zd(a,c,this.f)+this.f)}function ae(a,b){b=this.C(b)&262143;var c=this.C(this.f);this.D(this.f,Zd(a,c,b)+b)}function be(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 ce(a,b){var c=this.C(this.f)/F|0,d=this.C(b);this.D(b,Zd(a,d,c)+c)}
|
|
|
|
|
function de(a,b){var c=this.C(b);this.D(b,Zd(a,c,0))}function ee(a,b){b=this.C(b)/F|0;var c=this.C(this.f);this.D(this.f,Zd(a,c,b)+b)}function fe(a,b){var c=this.C(this.f),d=c/F|0,c=Zd(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));Hd(this,-1);this.V()}function Zd(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 Qd(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 Ld=[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)},Md,function(a,b){0>this.B&&Md.call(this);Nd.call(this,0,b)},Nd,function(a,b){0>this.B&&Md.call(this);Od.call(this,0,b)},Od,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
var y="pdp10",Lb="PDPjs",Mb=Math.pow(2,18),Nb=Math.pow(2,18)-1,Ob=Math.pow(2,36),E=Math.pow(2,36)-1,G=Math.pow(2,18),H=Math.pow(2,18)-1,Pb=Math.pow(2,17)-1,Qb=Math.pow(2,35)-1,Rb=Math.pow(2,35),Sb=Math.pow(2,36),Tb=Math.pow(2,32),Ub=Math.pow(2,21),Vb=Math.pow(2,26),Wb=Math.pow(2,23),Xb=Math.pow(2,30),y="pdp10",Lb="PDPjs",I={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 Yb(a,b){v.call(this,"Panel",a,512);this.L=this.M=0;this.W=b;this.f=this.J=this.u=this.A=0;this.N=this.O=-1;this.P=this.R=this.H=!1;this.S=Zb;this.D={};this.b={START:[1,1,!0,!1,this.Nb],STEP:[1,1,!1,!1,this.Ob],ENABLE:[1,1,!1,!1,this.Ib],CONT:[1,1,!0,!1,this.Gb],DEP:[0,0,!0,!1,this.Hb],EXAM:[1,1,!0,!1,this.Jb],LOAD:[1,1,!0,!1,this.Lb],TEST:[0,0,!0,!1,this.Kb]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Mb,a];this.C=this.i=this.G=this.F=null;this.exports={hold:this.Eb,toggle:this.Xb,reset:this.Tb,
|
|
|
|
|
set:this.Wb};D(this)}p(Yb,v);l=Yb.prototype;l.reset=function(a){this.stop();a&&$b(this,this.A=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.C&&this.C.ga(a,b,c,d))return!0;switch(b){case "PC":return this.I[b]=c,this.M++,!0;default:return"led"==a||"rled"==a?(this.I[b]=c,this.D[b]=d?1:0,this.M++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.I[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){ac(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){bc(a,b)}}(this,b),a.ontouchstart=
|
|
|
|
|
function(a,b){return function(c){ac(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){bc(a,b)}}(this,b),!0):v.prototype.ga.call(this,a,b,c,d)}};l.wa=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.C=d;cc(this);dc(this)};l.pa=function(a,b){if(!b)if(this.W&&ec(),!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 J(this);a.set(0,[this.f,this.A,this.u]);return a.data()};
|
|
|
|
|
l.restore=function(a){if(a=a[0])fc(this,this.f=a[0]),$b(this,this.A=a[1]),gc(this,a[2]);return!0};l.Tb=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}dc(this);return!0};function hc(a,b,c){if(a=a.I[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function cc(a,b){for(var c in a.D)hc(a,c,null!=b?b:a.D[c])}function pc(a,b,c){if(a=a.I[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function dc(a){for(var b in a.b)pc(a,b,a.b[b][1])}
|
|
|
|
|
l.Eb=function(a,b,c){if(ac(this,b)){if(c){var d=this;setTimeout(function(){bc(d,b);a&&a()},+c);return!1}bc(this,b)}return!0};l.Wb=function(a,b){if("SR"==a)return gc(this,pa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,pc(this,a,c[1]),!0):!1};l.Xb=function(a){return ac(this,a)?(bc(this,a),!0):!1};function ac(a,b){var c=a.b[b];return c?(pc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=qc&&(a.P=b==rc,a.R=b==sc),!0):!1}
|
|
|
|
|
function bc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(pc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}l.Nb=function(a){a||this.i.j.K||(this.i.u=this.f%Mb,this.b[tc]&&this.b[tc][1]&&uc(this.i))};l.Ob=function(){};l.Ib=function(a){a||this.i.V()};
|
|
|
|
|
l.Gb=function(a){if(!a&&!this.i.j.K)if(this.b[tc]&&this.b[tc][1])uc(this.i);else{if((a=this.C)&&!Hb(a,!0))Ib(a,!0),vc(a,0,null),Ib(a,!1);else try{var b=this.i.Ja(1);0<b&&(wc(this.i,b),xc(this.i,b,!0),yc(this.i,b))}catch(c){"number"!=typeof c&&Eb(this.i,c.stack||c.message)}this.stop();this.F&&L(this.F)}};l.Hb=function(a){a&&!this.i.j.K&&(this.P&&zc(this),a=$b(this,this.A=this.u),this.S==Zb?Ac(this.G,this.f,a):this.i.v(this.f,a))};
|
|
|
|
|
l.Jb=function(a){if(!a&&!this.i.j.K){var b;this.R&&zc(this);this.S==Zb?b=Bc(this.G,this.f):b=this.i.w(this.f);$b(this,this.A=b)}};l.Lb=function(a){a||this.i.j.K||fc(this,this.u)};l.Kb=function(a){a?(this.H=!0,cc(this,!0)):(this.H=!1,cc(this),gc(this,0))};l.Mb=function(a,b){this.u=a?this.u|1<<b:this.u&~(1<<b)};function zc(a){var b=1,c=a.G.u;a.b[qc]&&a.b[qc][1]||(b=-b);fc(a,a.f&~c|a.f+b&c)}
|
|
|
|
|
function fc(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.D[e]=g;d.H||hc(d,e,g)}}}function $b(a,b){a.J=b%Ob;if(a.O!==a.J){a.O=a.J;b=a.O;for(var c=0;16>c;c++){var d=a,e="D"+c,g=b&1<<c;d.D[e]=g;d.H||hc(d,e,g)}}return a.J}function gc(a,b){a.u=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.u&1<<b?1:0;dc(a);return!0}l.stop=function(){fc(this,this.i.u)};
|
|
|
|
|
function ec(){for(var a=C(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=wb(d.id);e||(e=new Yb(d,!0));yb(e,c)}}var Zb=7,rc="DEP",tc="ENABLE",sc="EXAM",qc="STEP";ab(ec);function Cc(a,b,c){v.call(this,"Bus",a,16);this.i=b;this.C=c;this.J=+a.busWidth||18;this.H=1<<this.J;this.u=this.H-1;this.f=Math.log2(16384);this.D=this.H/16384|0;this.A=0;this.b=[];a=new Dc(this);Ec(a,this.C);this.b=Array(this.D);for(b=0;b<this.D;b++)this.b[b]=a;D(this)}p(Cc,v);l=Cc.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 J(this);a.set(0,Fc(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 Gc(a,b,c,d){for(var e=b,g=c,f=e>>>a.f;0<g&&f<a.b.length;){var h=a.b[f],k=16384*f,m=16384-(e-k);m>g&&(m=g);if(h&&h.size){if(h.type==d){if(e+g<=h.B)return h.Ha+=h.B-e,h.B=e,!0;if(e>=h.B+h.Ha){m=h.size-(e-k);m>g&&(m=g);h.Ha=e-h.B+m;e=k+16384;g-=m;f++;continue}}return Hc(Ic,e,g)}e=new Dc(a,e,m,16384,d);Ec(e,a.C,h);a.b[f++]=e;e=k+16384;g-=m}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Jc[d]+" at "+ra(b)),!0):Hc(Kc,b,c)}
|
|
|
|
|
function Bc(a,b){var c=a.b[(b&a.u)>>>a.f];a.A++;b=c.G(b&16383,b);a.A--;return b}function Ac(a,b,c){var d=a.b[(b&a.u)>>>a.f];a.A++;d.F(c,b&16383,b);a.A--}function Fc(a){for(var b=0,c=[],d=0;d<a.D;d++){var e=a.b[d];if(e.Za||e.Cb){c[b++]=d;var g=b++;if(e=e.save()){for(var f=0,h=0,k=[];f<e.length;){for(var m=e[f],n=f+1;n<e.length&&e[n]===m;)n++;k[h++]=n-f;k[h++]=m;f=n}k.length<e.length&&(e=k)}c[g]=e}}return c}
|
|
|
|
|
l.Db=function(a){this.A||(this.C&&Jb(this.C,4)&&Kb(this.C,"memory fault on "+M(this.C,a),!0,!0),this.i.V())};function Hc(a,b,c){u("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Ic=1,Kc=2;function Lc(a){v.call(this,"Device",a,256)}p(Lc,v);l=Lc.prototype;l.wa=function(a,b,c,d){this.G=b;this.F=a;this.i=c;this.C=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 J(this)).data()};
|
|
|
|
|
l.restore=function(){return!0};ab(function(){for(var a=C(document,y,"device"),b=0;b<a.length;b++){var c,d=a[b];c=x(d);switch(c.type){case "default":c=new Lc(c),yb(c,d)}}});function Dc(a,b,c,d,e){this.u=a;this.id=Mc+=2;this.B=b;this.Ha=c;this.size=d||0;this.type=e||Nc;this.I=e==Oc;this.b=null;this.w=this.G=this.ab;this.v=this.F=this.Ia;this.i=this.f=0;Ec(this);this.Za=this.Cb=!1;if(this.size){a=this.C=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;Pc(this,Qc)}else Pc(this)}l=Dc.prototype;l.save=function(){return this.C};
|
|
|
|
|
l.restore=function(a){return a&&this.size==a.length?(this.C=a,this.Za=!0):!1};function Pc(a,b){b||(b=Rc);Sc(a,b,void 0);Tc(a,b,void 0)}function Sc(a,b,c){c&&a.i||(a.w=b[0]||a.ab);if(c||void 0===c)a.G=b[0]||a.ab}function Tc(a,b,c){c&&a.f||(a.v=!a.I&&b[1]||a.Ia);if(c||void 0===c)a.F=b[1]||a.Ia}l.Da=function(a,b){b?this.f++||Tc(this,Uc,!1):this.i++||Sc(this,Uc,!1)};function Vc(a,b){b?--a.f||(a.v=a.I?a.Ia:a.F):--a.i||(a.w=a.G)}
|
|
|
|
|
function Ec(a,b,c){a.b=b;a.i=a.f=0;c&&((a.i=c.i)&&Sc(a,Uc,!1),(a.f=c.f)&&Tc(a,Uc,!1))}l.ab=function(a,b){this.b&&Jb(this.b,32)&&Kb(this.b,"attempt to read invalid address "+M(this.b,b),!0);this.u.Db(b);return-1};l.Ia=function(a,b,c){this.b&&Jb(this.b,32)&&Kb(this.b,"attempt to write "+M(this.b,a)+" to invalid addresses "+M(this.b,c),!0)};l.Rb=function(a){return this.C[a]};l.$b=function(a,b){this.C[b]!=a&&(this.C[b]=a,this.Za=!0)};
|
|
|
|
|
l.Pb=function(a,b){if(this.b&&null!=this.B){var c=this.b;Wc(c,this.B+a,2,c.M)&&c.V(!1)}return this.G(a,b)};l.Zb=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Wc(d,this.B+b,2,d.J)&&d.V(!1)}this.I?this.Ia(a,0,c):this.F(a,b,c)};var Nc=0,Oc=2,Jc=["NONE","RAM","ROM"],Mc=0,Rc=[],Qc=[Dc.prototype.Rb,Dc.prototype.$b],Uc=[Dc.prototype.Pb,Dc.prototype.Zb];
|
|
|
|
|
function Xc(a,b){v.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.Qa=0;this.Va=b;this.aa=c;this.Ta=Math.round(this.Va/1E4)/100;this.W=this.Ta*this.aa;this.Ua=this.va=this.ba=this.Aa=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.ta=this.ia=0;this.ua=+a.csStart;this.ha=+a.csInterval;this.ja=+a.csStop;this.M=[];this.kb=this.Ub.bind(this);this.R=this.L=this.O=this.P=this.J=this.sa=this.N=this.ka=this.Wa=this.S=0;
|
|
|
|
|
this.ya=null;D(this)}p(Xc,v);l=Xc.prototype;l.wa=function(a,b,c,d){this.F=a;this.G=b;this.C=d;this.ya=a.u;for(a=0;a<Yc.length;a++)(b=this.I[Yc[a]])&&this.F.ga(null,Yc[a],b);D(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
|
|
|
|
|
l.pa=function(a,b){var c=Zc(this.F,"autoStart");null!=c?this.j.Z="true"==c?!0:"false"==c?!1:!!c:null==this.j.Z&&(this.j.Z=!this.C&&void 0===this.I.run);if(!b){if(a){$c(this);if(!this.restore(a))return!1;ad(this)}else this.reset();this.C?(a=this.C,b=this.j.Z,a.ya=!0,a.g("Type ? for help with PDPjs Debugger commands"),bd(a),b||cd(a),a.ua&&(b=a.ua,a.ua=null,dd(a,b))):this.status("No debugger detected");this.j.Z||this.g("CPU will not be auto-started "+(this.ya?"(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?(uc(this),!0):!1};l.rb=function(){return 0};function ad(a){void 0===a.ua&&(a.ua=0);void 0===a.ha&&(a.ha=-1);void 0===a.ja&&(a.ja=-1);a.j.Ea=0<=a.ua&&0<a.ha;a.j.Ea&&(a.ta=0,a.ia=a.ua-a.R)}function yc(a,b){if(a.j.Ea){var c=!1;a.ta=a.ta+a.rb()|0;a.ia-=b;0>=a.ia&&(a.ia+=a.ha,c=!0);0<=a.ja&&a.ja<=ed(a)&&(a.ha=a.ja=-1,ad(a),a.V(),c=!0);c&&a.g(ed(a)+" cycles: checksum="+t(a.ta))}}
|
|
|
|
|
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=vb(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():uc(d))},!0;case "speed":return this.I[b]=
|
|
|
|
|
c,!0;case "setSpeed":return this.I[b]=c,c.onclick=function(){fd(d,d.aa<<1,!0)},c.textContent=this.W.toFixed(2)+"Mhz",!0}return!1};function xc(a,b,c){a.R+=b;c&&(a.O=a.P=0)}function gd(a,b){var c=1;b&&1<a.aa&&a.S&&(c=a.S/a.Ta);a.Ua=Math.round(1E3/hd);a.va=Math.floor(a.Va/hd*c);b||(a.ba=a.va);a.Aa=0}function ed(a){return a.R+a.L+a.O-a.P}function $c(a){a.S=0;a.Wa=0;a.R=a.L=a.O=a.P=0;ad(a);fd(a,1)}
|
|
|
|
|
function fd(a,b,c){var d=!1;if(void 0!==b){.8>a.S/a.W?b=1:d=!0;a.aa=b;b=a.Ta*a.aa;if(a.W!=b){a.W=b;b=a.W.toFixed(2)+"Mhz";var e=a.I.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.F&&id(a.F)}xc(a,a.L);a.L=0;a.J=tb();a.N=0;gd(a);return d}function jd(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function kd(a){for(var b=[],c=0;c<a.M.length;c++)b.push(a.M[c][0]);return b}
|
|
|
|
|
function wc(a,b){for(var c=a.M.length-1;0<=c;c--){var d=a.M[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Fd(a,b){var c=a.O-=a.P;a.P=0;b&&(a.O=0);return c}
|
|
|
|
|
l.Ub=function(){if(this.j.K){this.Aa>=this.Va&&gd(this,!0);this.ka=0;this.sa=tb();if(this.N){var a=this.sa-this.N;a>this.Ua&&(this.J+=a,this.J>this.sa&&(this.J=this.sa))}try{do{var b=jd(this,this.j.Ea?1:this.va);try{this.Ja(b)}catch(e){if("number"!=typeof e)throw e;}b=Fd(this,!0);this.ka+=b;this.L+=b;yc(this,b);wc(this,b);this.ba-=b;if(0>=this.ba){this.ba+=this.va;++this.Wa>=Gd&&(this.F&&L(this.F,void 0),this.Wa=0);break}}while(this.j.K)}catch(e){this.V();this.F&&this.F.stop(tb(),ed(this));Eb(this,
|
|
|
|
|
e.stack||e.message);return}if(this.j.K){a=setTimeout;b=this.kb;this.N=tb();var c=this.Ua;this.ka&&(c=Math.round(c*this.ka/this.va));var c=c-(this.N-this.sa),d=this.N-this.J;d&&(this.S=Math.round(this.L/(10*d))/100,864E5<=d&&(this.R=0,fd(this)));if(0>c||this.S<this.W)-1E3>c&&(this.J-=c),c=0;this.Aa+=this.ka;this.N+=c;a(b,c)}}};
|
|
|
|
|
function uc(a,b){if(!Fb(a))if(a.j.K)a.g(a.toString()+" busy");else{fd(a);a.j.K=!0;a.j.Pa=!0;var c=a.I.run;c&&(c.textContent="Halt");a.F&&(b&&id(a.F,!0),a.F.start(a.J,ed(a)));a.C||a.status("Started");setTimeout(a.kb,0)}}l.Ja=function(){return 0};l.V=function(a){var b=!1;if(this.j.K){Fd(this);xc(this,this.L);this.L=0;this.j.K=!1;if(b=this.I.run)b.textContent="Run";this.F&&this.F.stop(tb(),ed(this));b=!0;this.C||this.status("Stopped")}this.j.complete=a;return b};var hd=30,Gd=15,Yc=["power","reset"];
|
|
|
|
|
function Hd(a){var b=+a.model||1001;Xc.call(this,a,1E6);this.jb=b;this.gb=+a.addrReset||0;this.Ab=Id.bind(this);this.b=N.bind(this);this.la=null;this.fb=[];this.j.complete=!1}p(Hd,Xc);l=Hd.prototype;l.reset=function(){this.status("Model "+this.jb);this.j.K&&this.V();this.f=this.H=this.Ba=0;this.u=this.ra=this.gb;this.Ra=this.ib=this.za=this.ub=this.Sa=!1;this.D=-1;this.qa=this.u;this.A=0;this.w=this.Qb;this.v=this.ac;this.la=null;$c(this);this.j.error=!1;Xc.prototype.reset.call(this)};l.rb=function(){return 0};
|
|
|
|
|
l.save=function(){var a=new J(this);a.set(0,[this.f,this.H,this.D,this.Ba,this.u,this.ra,this.qa,this.A]);a.set(1,[]);a.set(2,[this.R,this.aa,this.j.Z]);a.set(3,Jd(this));a.set(4,kd(this));return a.data()};
|
|
|
|
|
l.restore=function(a){var b;b=a[0];ha();ea();ha();var c=b[Symbol.iterator];b=c?c.call(b):ia(b);this.f=b.next().value;this.H=b.next().value;this.D=b.next().value;this.Ba=b.next().value;this.u=b.next().value;this.ra=b.next().value;this.qa=b.next().value;this.A=b.next().value;b=a[2];this.R=b[0];fd(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.fb.length;d++){var e=this.fb[d];if(e.Yb===b[c]){d=e;break a}}d=null}d&&(d.next=this.la,this.la=d)}a=a[4];for(b=0;b<this.M.length&&
|
|
|
|
|
b<a.length;b++)this.M[b][0]=a[b];return!0};function Kd(a,b){var c=a.u;a.u=(c+b)%Mb;return c}l.abs=function(a){a>Qb&&(a!=Rb?a=Sb-a:this.Ra=this.za=!0);return a};function Ld(a,b){b?b==Rb?a.Ra=a.za=!0:b=Sb-b:a.ib=a.za=!0;return b}function Jd(a){var b=[];for(a=a.la;a;)b.push(a.Yb),a=a.next;return b}l.Qb=function(a){var b=this.G;a=this.qa=a;return b.b[(a&b.u)>>>b.f].w(a&16383,a)};l.ac=function(a,b){var c=this.G;a=this.qa=a;c.b[(a&c.u)>>>c.f].v(b,a&16383,a)};
|
|
|
|
|
l.Ja=function(a){this.j.complete=!0;var b=this.C?Md(this.C)?1:this.j.Pa?-1:0:0,c=a?this.j.Pa?0:1:-1;this.j.Pa=!1;this.O=this.P=a;this.A=this.A&-5|(b?4:0);do{if(this.A){if(this.A&4){if(Nd(this.C,this.u,c)){this.V();break}++b||(this.A&=-5);c||c++}if(a=this.A&11)this.A&2?this.la||(this.A&=-3):this.A&1&&this.A++,a=!1;if(a){if(this.A&4&&Nd(this.C,this.u,c)){this.V();break}if(0>c)break}}this.A&=15;this.H=this.H&4194304?this.w(this.f):this.Ba=this.w(this.ra=this.u);this.H&=8388607;this.f=this.H&262143;if(a=
|
|
|
|
|
this.H>>18&15)this.f=this.f+this.w(a)&Nb;this.H&4194304?a=-1:(this.u=(this.u+1)%Mb,a=this.Ba/Wb|0);0<=a&&this.Ab(a)}while(0<this.P);return this.j.complete?this.O-this.P:!1===this.j.complete?-1:0};ab(function(){for(var a=C(document,y,"cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Hd(d);yb(d,c)}});function Id(a){Od[a>>4].call(this,a,a&15)}function O(a){this.b(a)}
|
|
|
|
|
function Pd(){var a=0,b=this.w(this.f),c=b/Xb&63,d=b>>24&63,c=c-d;0>c&&(a++,c=36-d,0>c&&(c=64-d));b=c*Xb+(d<<24)+(b&16777215);a&&(b=(b+a)%Ob);this.v(this.f,b)}function Qd(a,b){a=this.w(this.f);if(0>this.D)this.D=a,this.H=this.f|4194304,Kd(this,-1);else{var c=this.D/Xb&63,d=this.D>>24&63;a=32>=c+d?(a>>c&(1<<d)-1)>>>0:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d);this.v(b,a);this.D=-1}}
|
|
|
|
|
function Rd(a,b){a=this.w(this.f);if(0>this.D)this.D=a,this.H=this.f|4194304,Kd(this,-1);else{var c=this.D/Xb&63,d=this.D>>24&63;b=this.w(b)%Math.pow(2,d)*Math.pow(2,c)%Ob;a=a-a%Math.pow(2,c+d)+b+a%Math.pow(2,c);this.v(this.f,a);this.D=-1}}function Sd(a,b){this.v(b,this.w(this.f))}function Td(a,b){this.v(b,this.f)}function Ud(a,b){this.v(this.f,this.w(b))}function Vd(a,b){this.v(b,0)}function Wd(a,b){this.v(b,E-this.w(b))}function Xd(a,b){this.v(b,E)}
|
|
|
|
|
function Yd(a,b){var c=this.w(this.f),d=this.w(b);this.v(b,Zd(a,d,c)+(c-(c&H)))}function $d(a,b){var c=this.w(b);this.v(b,Zd(a,c,0))}function ae(a,b){b=this.w(b);var c=this.w(this.f);this.v(this.f,Zd(a,c,b)+(b-(b&H)))}function be(a,b){var c=this.w(this.f),d=c;if(a&=384)switch(d-=d&H,a){case 256:d+=H;break;case 384:d+=c>Qb?H:0}c=d;this.v(this.f,c);b&&this.v(b,c)}function ce(a,b){var c=(this.w(this.f)&H)*G,d=this.w(b);this.v(b,Zd(a,d,c)+c)}
|
|
|
|
|
function de(a,b){var c=this.f*G,d=this.w(b);this.v(b,Zd(a,d,c)+c)}function ee(a,b){b=(this.w(b)&H)*G;var c=this.w(this.f);this.v(this.f,Zd(a,c,b)+b)}function fe(a,b){var c=this.w(this.f),d=(c&H)*G,c=Zd(a,c,d)+d;this.v(this.f,c);b&&this.v(b,c)}function ge(a,b){var c=this.w(this.f)&H,d=this.w(b);this.v(b,he(a,d,c)+c)}function ie(a,b){var c=this.w(b);this.v(b,he(a,c,this.f)+this.f)}function je(a,b){b=this.w(b)&H;var c=this.w(this.f);this.v(this.f,he(a,c,b)+b)}
|
|
|
|
|
function ke(a,b){var c=this.w(this.f),d=c;if(a&=384)switch(d&=H,a){case 256:d+=H*G;break;case 384:d+=c>Pb?H*G:0}c=d;this.v(this.f,c);b&&this.v(b,c)}function le(a,b){var c=this.w(this.f)/G|0,d=this.w(b);this.v(b,he(a,d,c)+c)}function me(a,b){var c=this.w(b);this.v(b,he(a,c,0))}function ne(a,b){b=this.w(b)/G|0;var c=this.w(this.f);this.v(this.f,he(a,c,b)+b)}function oe(a,b){var c=this.w(this.f),d=c/G|0,c=he(a,c,d)+d;this.v(this.f,c);b&&this.v(b,c)}function Q(a){this.b(a)}function pe(){}
|
|
|
|
|
function N(a){this.g("undefined opcode: "+ra(a));Kd(this,-1);this.V()}function he(a,b,c){switch(a&384){case 0:b-=b&H;break;case 128:b=0;break;case 256:b=H*G;break;case 384:b=c>Pb?H*G:0}return b}function Zd(a,b,c){switch(a&384){case 0:b&=H;break;case 128:b=0;break;case 256:b=H;break;case 384:b=c>Qb?H:0}return b}function qe(a,b){return((a/Tb|0)&(b/Tb|0))*Tb+((a&b)>>>0)}
|
|
|
|
|
var Od=[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,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Pd,function(a,b){0>this.D&&Pd.call(this);Qd.call(this,0,b)},Qd,function(a,b){0>this.D&&Pd.call(this);Rd.call(this,0,b)},Rd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.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,Id(this,this.C(this.f)))},function(a,b){this.D(b,this.f?Qb-this.f:0)},function(a,b){this.D(this.f,Id(this,this.C(b)))},function(a,b){a=Id(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||Hd(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.Sa=!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.Sa=!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)},Sd,Td,Ud,function(a,b){b&&this.v(b,this.w(this.f))},function(a,b){a=this.w(this.f);a=(a/G|0)+a%G*G;this.v(b,a)},function(a,b){this.v(b,this.f*G)},function(a,b){a=this.w(b);a=(a/G|0)+a%G*G;this.v(this.f,a)},function(a,b){a=this.w(this.f);a=(a/G|0)+a%G*G;this.v(this.f,a);b&&this.v(b,a)},function(a,b){this.v(b,Ld(this,this.w(this.f)))},function(a,b){this.v(b,this.f?Sb-this.f:0)},function(a,b){this.v(this.f,Ld(this,
|
|
|
|
|
this.w(b)))},function(a,b){a=Ld(this,this.w(this.f));this.v(this.f,a);b&&this.v(b,a)},function(a,b){this.v(b,this.abs(this.w(this.f)))},function(a,b){this.v(b,this.f)},function(a,b){this.v(this.f,this.abs(this.w(b)))},function(a,b){a=this.abs(this.w(this.f));this.v(this.f,a);b&&this.v(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},N,function(a,b){a=this.w(b);this.v(b,this.w(this.f));this.v(this.f,a)},function(a,b){a=!1;for(var c=this.w(b),d=c/G|0,c=c&H;!a;)this.v(c,this.w(d)),c==this.f&&(a=!0),d=d+1&H,c=c+1&H,this.j.K||(this.v(b,
|
|
|
|
|
d*G+c),a||Kd(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)},N,function(a){this.b(a)},function(a,b){a=this.w(b);a+=262145;this.v(a&H,this.w(this.f));a>=Ob&&(a-=Ob);a/G|0||(this.Sa=!0);this.v(b,a)},function(a,b){a=this.w(b);var c=this.w(a&H);this.v(this.f,c);this.f==b&&(a=c);a-=262145;0>a&&(a+=Ob);(a/G|0)==H&&(this.Sa=!0);this.v(b,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Vd,Vd,function(){this.v(this.f,0)},function(a,b){this.v(b,0);this.v(this.f,0)},function(a,b){this.v(b,qe(this.w(b),this.w(this.f)))},function(a,b){this.v(b,qe(this.w(b),this.f))},function(a,b){this.v(this.f,qe(this.w(b),this.w(this.f)))},function(a,b){a=qe(this.w(b),this.w(this.f));this.v(this.f,a);this.v(b,a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},Sd,Td,pe,Sd,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},pe,pe,Ud,Ud,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},Wd,Wd,function(a,b){this.v(this.f,E-this.w(b))},function(a,b){a=E-this.w(b);this.v(b,a);this.v(this.f,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.v(b,E-this.w(this.f))},function(a,b){this.v(b,E-this.f)},function(){this.v(this.f,E-this.w(this.f))},function(a,b){a=E-this.w(this.f);this.v(b,a);this.v(this.f,a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Xd,Xd,function(){this.v(this.f,E)},function(a,b){this.v(b,E);this.v(this.f,E)},Yd,$d,ae,be,ce,de,ee,fe,Yd,$d,ae,be,ce,de,ee,fe,Yd,$d,ae,be,ce,de,ee,fe,Yd,$d,ae,be,ce,de,ee,fe,ge,ie,je,ke,le,me,ne,oe,ge,ie,je,ke,le,me,ne,oe,ge,ie,je,ke,le,me,ne,oe,ge,ie,je,ke,le,me,ne,oe,function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Pd,Rd,Sd,Td,Ud,Vd,Wd,Xd,Pd,Rd,Sd,Td,Ud,Vd,Wd,Xd,Pd,Rd,Sd,Td,Ud,Vd,Wd,Xd,Pd,Rd,Sd,Td,Ud,Vd,Wd,Xd,Yd,$d,ae,be,ce,de,ee,fe,Yd,$d,ae,be,ce,de,ee,fe,Yd,$d,ae,be,ce,de,ee,fe,Yd,$d,ae,be,ce,de,ee,fe,function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(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 ge(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.da("Unable to load ROM resource (error "+g+": "+a+")"),c.v=null):(gb(c.La,a,b),(a=Ga(a,b))?(c.b=a.Y,c.T=a.T):c.v=null);he(c)})}}p(ge,v);
|
|
|
|
|
ge.prototype.wa=function(a,b,c,d){this.G=b;this.i=c;this.A=d;he(this)};ge.prototype.pa=function(){this.T&&(this.A&&ie(this.A,this.id,this.B,this.u,this.T),delete this.T);return!0};ge.prototype.fa=function(){return!0};
|
|
|
|
|
function he(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(Dc(a.G,b,a.u,Lc)){var c;for(c=0;c<a.b.length;c++)xc(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 ge(d);wb(d,c)}});
|
|
|
|
|
function je(a){v.call(this,"RAM",a);this.T=this.Ca=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.da("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(gb(c.La,a,b),(a=Ga(a,b))?(c.Ca=a.Ca,
|
|
|
|
|
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);ke(c)})}}p(je,v);je.prototype.wa=function(a,b,c,d){this.G=b;this.i=c;this.A=d;ke(this)};je.prototype.pa=function(a,b){this.T&&(this.A&&ie(this.A,this.id,this.f,this.u,this.T),delete this.T);b||this.reset();return!0};je.prototype.fa=function(){return!0};
|
|
|
|
|
function ke(a){if(a.G&&(!a.v&&a.u&&(Dc(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.Ca)return;le(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.B+'"'):a.da('Error loading image "'+a.B+'"')}a.H=!0;D(a)}}
|
|
|
|
|
je.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.Ca&&le(this,this.Ca,this.na,this.ma,this.f,!this.A)}this.H=!1};
|
|
|
|
|
function le(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)xc(a.G,c+f,b[f]);f=!0}f&&(null==d&&(a.i.V(),g=!1),null!=d&&(a=a.i,a.gb=d,a.u=d%Kb,g?a.j.U?a.j.K||rc(a):a.j.Z=!0:a.A&&a.j.U?a.V()||a.F.j.reset||(Zc(a.A),I(a.F,-1)):!1===g&&a.V(),!a.j.K&&a.ya&&a.ya.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 je(d);wb(d,c)}});
|
|
|
|
|
function me(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=ne;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.tb,receiveData:this.Na,receiveStatus:this.Sb,setConnection:this.Vb}}p(me,v);l=me.prototype;
|
|
|
|
|
l.ga=function(a,b,c){var d=this;switch(b){case ne:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.cb:q.yb:46==c?b=q.cb:a.ctrlKey&&c>=q.bb&&c<=q.zb&&(b=c-(q.bb-q.vb));b&&(a.preventDefault&&a.preventDefault(),d.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.xb&&(b=q.wb);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.wa=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.A=d;D(this)};
|
|
|
|
|
l.tb=function(a){if(!this.b){var b=Wc(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.tb(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.Sb=function(){};l.Vb=function(a,b){return this.b?!1:(this.b=a,this.B=b,!0)};var ne="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 me(d);wb(d,c)}});function oe(a){v.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.B=0;this.P=!1;this.v=-1;this.u=[];this.W={}}p(oe,v);oe.prototype.sb=function(){return-1};oe.prototype.$a=function(){};
|
|
|
|
|
function pe(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 qe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),g=a.pop();switch(d){case "*":d=g*e;break;case "/":if(!e)return!1;d=g/e;break;case "%":if(!e)return!1;d=g%e;break;case "+":d=g+e;break;case "-":d=g-e;break;case "<<":d=g<<e;break;case ">>":d=g>>e;break;case ">>>":d=g>>>e;break;case "<":d=g<e?1:0;break;case "<=":d=g<=e?1:0;break;case ">":d=g>e?1:0;break;case ">=":d=g>=e?1:0;break;case "==":d=g==e?1:0;break;case "!=":d=g!=e?1:0;break;case "&":d=g&e;break;
|
|
|
|
|
function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},function(a){this.b(a)},Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q];
|
|
|
|
|
function re(a){v.call(this,"ROM",a,128);this.T=this.b=null;this.D=+a.addr;this.u=+a.size;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.A=a.file;this.H=sa(this.A);if(this.A){a=this.A;var b=ta(this.H);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.A+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,g){g?(c.da("Unable to load ROM resource (error "+g+": "+a+")"),c.A=null):(ib(c.La,a,b),(a=Ia(a,b))?(c.b=a.Y,c.T=a.T):c.A=null);se(c)})}}p(re,v);
|
|
|
|
|
re.prototype.wa=function(a,b,c,d){this.G=b;this.i=c;this.C=d;se(this)};re.prototype.pa=function(){this.T&&(this.C&&te(this.C,this.id,this.D,this.u,this.T),delete this.T);return!0};re.prototype.fa=function(){return!0};
|
|
|
|
|
function se(a){if(!Gb(a)){if(a.A){if(!a.b||!a.G)return;a.u||(a.u=a.b.length);if(a.b.length!=a.u)Eb(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.u,8,!0)+")");else{var b;b=a.D;if(Gc(a.G,b,a.u,Oc)){var c;for(c=0;c<a.b.length;c++)Ac(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.D>>>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)}}ab(function(){for(var a=C(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new re(d);yb(d,c)}});
|
|
|
|
|
function ue(a){v.call(this,"RAM",a);this.T=this.Ca=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.A=this.H=!1;this.b=a.file;this.D=sa(this.b);if(this.b){a=this.b;var b=ta(this.D);"json"!=b&&"hex"!=b&&(a=Aa()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ha(a,null,!0,function(a,b,g){g?(c.da("Unable to load RAM resource (error "+g+": "+a+")"),c.b=null):(ib(c.La,a,b),(a=Ia(a,b))?(c.Ca=a.Ca,
|
|
|
|
|
c.T=a.T,null==c.na&&(c.na=a.na),null==c.ma&&(c.ma=a.ma)):c.b=null);ve(c)})}}p(ue,v);ue.prototype.wa=function(a,b,c,d){this.G=b;this.i=c;this.C=d;ve(this)};ue.prototype.pa=function(a,b){this.T&&(this.C&&te(this.C,this.id,this.f,this.u,this.T),delete this.T);b||this.reset();return!0};ue.prototype.fa=function(){return!0};
|
|
|
|
|
function ve(a){if(a.G&&(!a.A&&a.u&&(Gc(a.G,a.f,a.u,1)?a.A=!0:a.u=0),!Gb(a))){if(!a.A)u("No RAM allocated");else if(a.b){if(!a.Ca)return;we(a,a.Ca,a.na,a.ma,a.f)?a.status('Loaded image "'+a.D+'"'):a.da('Error loading image "'+a.D+'"')}a.H=!0;D(a)}}
|
|
|
|
|
ue.prototype.reset=function(){if(this.A&&!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>=oa&&(f+=na);f=Math.trunc(Math.abs(f))%na;void 0===g&&(g=e.size);for(h=d;g--&&h<e.size;h++)e.F(f,d,e.B+d);c-=16384;b++;d=0}this.Ca&&we(this,this.Ca,this.na,this.ma,this.f,!this.C)}this.H=!1};
|
|
|
|
|
function we(a,b,c,d,e,g){var f=!1;null==c&&(c=e);if(null!=c){for(f=0;f<b.length;f++)Ac(a.G,c+f,b[f]);f=!0}f&&(null==d&&(a.i.V(),g=!1),null!=d&&(a=a.i,a.gb=d,a.u=d%Mb,g?a.j.U?a.j.K||uc(a):a.j.Z=!0:a.C&&a.j.U?a.V()||a.F.j.reset||(bd(a.C),L(a.F,-1)):!1===g&&a.V(),!a.j.K&&a.ya&&a.ya.stop()));return f}ab(function(){for(var a=C(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ue(d);yb(d,c)}});
|
|
|
|
|
function xe(a){v.call(this,"SerialPort",a,1048576);this.A=a.upperCase;"string"==typeof this.A&&(this.A="true"==this.A);this.u=!0;this.f=[];var b=a.binding;if("console"!=b){var c;a=ye;b&&(void 0===c&&(c="Panel"),(c=xb(c,this.id))&&(b=c.I[b])&&this.ga(null,a,b))}this.b=this.D=null;this.exports={connect:this.tb,receiveData:this.Na,receiveStatus:this.Sb,setConnection:this.Vb}}p(xe,v);l=xe.prototype;
|
|
|
|
|
l.ga=function(a,b,c){var d=this;switch(b){case ye:return this.I[b]=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.cb:q.yb:46==c?b=q.cb:a.ctrlKey&&c>=q.bb&&c<=q.zb&&(b=c-(q.bb-q.vb));b&&(a.preventDefault&&a.preventDefault(),d.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.xb&&(b=q.wb);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.wa=function(a,b,c,d){this.F=a;this.G=b;this.i=c;this.C=d;D(this)};
|
|
|
|
|
l.tb=function(a){if(!this.b){var b=Zc(this.F,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.Ka)return;c=Ea(c[1]);if(this.b=wb(c)){var e=this.b.exports;if(e){var g=e.connect;g&&g.call(this.b,this.u);if(this.D=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.tb(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 J(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.Sb=function(){};l.Vb=function(a,b){return this.b?!1:(this.b=a,this.D=b,!0)};var ye="buffer";
|
|
|
|
|
ab(function(){for(var a=C(document,y,"serial"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new xe(d);yb(d,c)}});function ze(a){v.call(this,"Debugger",a);this.ca=+a.base||16;this.la=!1;this.D=0;this.P=!1;this.A=-1;this.u=[];this.W={}}p(ze,v);ze.prototype.sb=function(){return-1};ze.prototype.$a=function(){};
|
|
|
|
|
function Ae(a,b,c,d){if(c)if(b){0>a.A&&a.u.length&&(a.A=0);if(0>a.A||b!=a.u[a.A])a.u.splice(0,0,b),a.A=0;a.A--}else a.P?b="end":b=a.u[a.A+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var g=0;g<=b.length;g++){var f=b.charAt(g);if('"'==f||"'"==f)e?f==e&&(e=null):e=f;else if(f==d&&!e||!f)a.push(Ea(b.substring(c,g))),c=g+1}}return a}
|
|
|
|
|
function Be(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=re(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=se(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&&te[n]<te[k[k.length-1]]&&qe(h,k,1);k.push(n);b=b.substr(r+z)}qe(h,k)&&1==h.length||(g=!0);g?c&&a.g("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&ue(a,null,
|
|
|
|
|
d))}return d}function re(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 se(a,b,c,d){var e;null!=b?(e=a.sb(b),0<=e?e=a.$a(e):(e=a.W[b],null==e&&(e=na(b,a.ca))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
|
|
|
|
function ue(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 ve(a,b){if(b)return ue(a,b,a.W[b]);var c=0;for(b in a.W)ue(a,b,a.W[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.ca){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 te={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
|
|
|
|
function we(a){oe.call(this,a);this.ya=!1;this.la=!0;this.va=Q();this.L=Q(0);this.ja=Q(0);this.ba=Q(0);this.H=[];this.b=this.M=this.J=[];xe(this);this.R=this.ka=0;this.f=[];this.sa=void 0;ye(this);this.A=this;this.qa={};this.X=this.nb=0;this.S=null;this.O=[];ze(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=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 ad(b,a)}):void 0===global[B]&&(global[B]=function(a){return ad(b,
|
|
|
|
|
a)})}p(we,oe);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,qb:void 0===b?!1:b,ea:!1,ca:c}}function Ae(a,b,c,d){a.w=b;a.qb=c||!1;a.ea=!1;a.ca=d}function Be(a){return[a.w,a.qb,a.ca,a.ea,a.Oa]}function Ce(a,b){var c=Q(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.lb=pe(a,c.Oa=b[4]));return c}l=we.prototype;
|
|
|
|
|
l.wa=function(a,b,c,d){this.G=b;this.F=a;this.i=c;this.ha=a.u;(a=Wc(a,"messages"))&&ze(this,a);De(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=Gc[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!=Kc&&(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="",ad(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="";ad(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=sc(d,a?1:0,null),Gb(d,!1));return b}),!0}return!1};function $c(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.xa=function(a,b){var c=-1,d=S(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.w&&(a.w+=b||1));return c};l.eb=function(a,b,c){var d=S(a);-1!==d&&(xc(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=re(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&&Ae(c,g,d,e);return c}function Ee(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lb=pe(a,b.Oa=c[2]))}
|
|
|
|
|
function Fe(a){return pa(a/Kb,6)+" "+pa(a%Kb,6)}function ze(a,b){a.A=a;a.X=a.nb=536870916;a.S=null;a.O=[];b=pe(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 De(a,b){for(var c in G)if(16==G[c]){a.qa[c]=b;break}}l.sb=function(a){return Ge.indexOf(a.toUpperCase())};
|
|
|
|
|
l.$a=function(a){var b;switch(a){case He:b=this.i.u;break;case Ie:b=this.i.H;break;case Je:b=this.i.f;break;case Ke:b=this.i.ib?1:0;break;case Le:b=this.i.za?1:0;break;case Me:b=this.i.Ra?1:0;break;case Ne:b=this.i.ub?1:0;break;case Oe:b=this.i.Sa?1:0}return b};
|
|
|
|
|
l.message=function(a,b){b&&(a+=" @"+K(this,Q(this.i.ra).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,Cd(a),a.ba=0,a.F&&I(a.F,void 0))}};
|
|
|
|
|
function ye(a){var b;if(!Jd(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(Pe);for(b=0;b<a.f.length;b++)a.f[b]=Q();a.R=0;a.g("instruction history buffer allocated")}}function Qe(a,b,c){if(!Re(a,c))return!1;rc(a.i,b);return!0}
|
|
|
|
|
function sc(a,b,c,d){if(!Re(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.B=0;b||Jd(a)&&Kd(a,a.i.u,0);try{b=Ad(a.i,b);var g=a.i.Ja(b);0<g&&(tc(a.i,g),a.B+=g,uc(a.i,g,!0),vc(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));Zc(a,c||!1,e);return 0<a.B}l.V=function(a){this.i&&this.i.V(a)};function Zc(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.g(zf+c),Ae(a.L,a.i.u),b&&1!=a.N?Bf(a):Cf(a))}
|
|
|
|
|
function Re(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){ye(this);this.ia=0;this.S=null;this.B=0;Ae(this.L,this.i.u);this.j.K=!1;Df(this);a||Zc(this)};
|
|
|
|
|
l.save=function(){var a=new H(this);a.set(0,Be(this.L));a.set(1,Be(this.ja));a.set(2,Be(this.ba));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=Ce(this,a[b++]),this.ja=Ce(this,a[b++]),this.ba=Ce(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+=" (";Jd(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)}Zc(this,!0);$c(this);Df(this,this.i.u);this.S=null}};function Jd(a){return 1<a.b.length||!!a.ka}
|
|
|
|
|
function Kd(a,b,c){var d=-1;c||(d=a.i.C(b),2756==d>>23&&a.i.ra==b&&(b=Hd(a.i,1)));if(0<c&&(a.ka&&!--a.ka||Tc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.i.C(b)),0<=d&&(Ae(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
|
|
|
|
|
function Ef(a,b,c,d){var e=Q(b.w),g=a.xa(b,1),f,h,k,m=0,n=g/Rb|0,r;for(r in Ff)if(f=Ff[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Gf;m=n&3;break;case 32256:k=Hf;m=n&7;break;case 29248:k=If,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Jf&&(k="B");k=Kf[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+=Fe(g);g=k;f="";h=K(a,e.w)+":";if(-1!==e.w&&-1!==b.w){do if(k=a.xa(e,1),f+=" "+Fe(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="+bd(a.i).toString()+" cs="+t(a.i.ta)):h+(null!=d?"="+d.toString():""));return h}function xe(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=S(c);var d=a.G;Sc(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,Sc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
|
|
|
|
|
l.Da=function(a,b,c){var d=!0;c||Lf(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].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(Mf(this,a,a.length-1,"set"),ye(this)));return d};function Lf(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||Mf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.G,Sc(d.b[c>>>d.f],b==a.J));h.ea||ye(a);break}}return g}
|
|
|
|
|
function Nf(a,b){for(var c=1;c<b.length;c++)Mf(a,b,c);return b.length-1}function Mf(a,b,c,d){c=b[c];a.g(b[0]+" "+K(a,c.w)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Df(a,b){if(void 0!==b)Tc(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(!Lf(a,a.b,c,!0))break;b=0}}}
|
|
|
|
|
function Tc(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&&(Lf(a,d,h,!0),e=!0);if(n=h.lb){for(var g=!1,r=0;r<n.length;r++)if(!Of(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||Mf(a,d,f,"hit");break}}}a.ra--;return g}
|
|
|
|
|
function Pf(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);Ae(e.va,d);g+="="+K(e,e.xa(e.va),36)+" ";c+=g}if(b){b="";for(d=0;d<Ge.length;d++)(e=Ge[d]||"")&&(e+="="+K(a,a.$a(d),d>=Ke?1:d==Ie?23:18)+" "),b+=e;c+="\n"+b}return c}l.ob=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
|
|
|
|
function ie(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.ob);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({fd:b,w:c,Fb:d,T:e,mb:g})}function Qf(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.Fb;if(e>=f&&e<f+h){e=Da(g.mb,[e-f],a.ob);0<=e?Rf(a,b,e,d):c&&(e=~e,Rf(a,b,e-1,d),Rf(a,b,e,d));break}}return d}
|
|
|
|
|
function Rf(a,b,c,d){var e={},g=a.H[b].mb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function Sf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return ve(a)||a.g("no variables"),!0;if(!c[2])return ve(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 Tf(a,b,c){var d=null;if(b=T(a,b)){var e=Qf(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 Bf(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;Ae(a.L,d.u);break;default:a.g("unknown register: "+
|
|
|
|
|
g);return}I(a.F);a.g("updated registers:")}}a.g(Pf(a,e));c&&(Ae(a.L,d.u),Cf(a,K(a,a.L.w)))}}function Uf(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.g(c[2]):ue(a,null,c[2].charCodeAt(0)):P(a,b,!0)}
|
|
|
|
|
function Vf(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=se(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Wa(c,function(){return Gb(a,!0)&&sc(a,e,d,!1)},function(){a.ha&&a.ha.stop();I(a.F,-1);Gb(a,!1)})}}
|
|
|
|
|
function Cf(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=se(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=Qf(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.ba;m=b;h.w=m.w;h.ea=m.ea;h.ca=m.ca;a.g(Ef(a,b,f,g));e-=b.w-k;c++}}}
|
|
|
|
|
function Of(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(zf+b):(a.P&&(a.g("ended assemble at "+K(a,a.ba.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.ba.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.ba);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,Se=f.join(""),y=-1,fc,wg=z.toUpperCase(),ed;for(ed in Ff){var Ja;fc=+ed;var Te=Ff[ed];switch(fc){case 32512:Ja=Gf;break;case 32256:Ja=Hf;break;case 29248:Ja=If;break;default:Ja=[""]}var Ue,fd;for(fd in Te){for(var Ve=Te[fd],Ka=0;Ka<Ja.length;Ka++){var gd=Ja[Ka];"S"==gd&&Ve>Jf&&(gd="B");if(wg==Kf[Ve]+gd){Ue=29248!=fc?Ka:(Ka&3)<<1|(Ka&12)<<2;y=(fd|Ue<<6)*Rb;break}}if(0<=
|
|
|
|
|
y)break}if(0<=y)break}if(0<=y)if(Se)for(var hd=Se.split(","),hb=0;hb<hd.length;hb++){var gc=hd[hb].trim();if(gc){if(1<hb){a.g("too many operands: "+gc);y=-1;break}var V=gc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!V){a.g("unknown operand: "+gc);y=-1;break}var E=P(a,V[2]);if(void 0==E){y=-1;break}if(!hb&&1<hd.length)if(28700==fc){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.eb(r,U),a.g(Ef(a,r)))}}break;case "b":a:{var xg=f[0],La=f[1],yg=b;if("?"==La)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=xg.charAt(1);if("l"==sa){var id;id=0+Nf(a,a.b);id+=Nf(a,a.M);(id+=Nf(a,a.J))||a.g("no breakpoints")}else if("n"==sa){var We=+La||0;La&&(a.ka=We);a.g("break after "+We+" instruction(s)")}else if(void 0===La)a.g("missing breakpoint address");else{var J=Q();if("*"!=La&&(J=T(a,La,a.L),!J))break a;"c"==sa?null==J.w?(xe(a),a.g("all breakpoints cleared")):Lf(a,a.b,J)||Lf(a,a.M,J)||Lf(a,a.J,J)||a.g("breakpoint missing: "+
|
|
|
|
|
K(a,J.w)):null!=J.w&&(Ee(a,J,yg),"p"==sa?a.Da(a.b,J):"r"==sa?a.Da(a.M,J):"w"==sa?a.Da(a.J,J):a.g("unknown breakpoint command: "+sa))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Ma,Na=f[0],W=f[1],ia=f[2],zg=f[3];if("?"==W){var Oa="";for(Ma in G)a.qa[Ma]&&(Oa&&(Oa+=","),Oa+=Ma);Oa+=",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");
|
|
|
|
|
Oa.length&&a.g("dump extension commands:\n\t"+Oa)}else if("state"==W){var jd=Wf(a.F,!0);"console"==ia?console.log(jd):(a.oa&&(a.oa.value=""),jd&&a.g(jd))}else if("symbols"==W)for(var kd=0;kd<a.H.length;kd++){var ld=a.H[kd],Pa;for(Pa in ld.T)if("."!=Pa.charAt(0)){var Xe=ld.T[Pa].o;if(void 0!==Xe){var Ye=ld.T[Pa].l;Ye&&(Pa=Ye);a.g(K(a,Xe)+" "+Pa)}}}else{if("d"==Na){for(Ma in G)if(f[1]==Ma){var Ze=a.qa[Ma];Ze?(f.shift(),f.shift(),Ze(f)):a.g("no dump registered for "+W);break a}W||(Na=a.Ba||"dw")}else a.Ba=
|
|
|
|
|
Na;if("dh"==Na){var $e=W,af=ia,bf="",cf=0,R=a.R,X=a.f;if(X.length){var N=+$e||a.sa,jb=+af||10;isNaN(N)?N=jb:bf="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 md=[];"call"==af&&(jb=1E5,md=["CALL"]);for(void 0!==$e&&a.g(N+" instructions earlier:");0<jb&&R!=a.R;){var df=X[R++];if(null==df.w)break;var kb=Q(df.w),Ag=N--,ef=Ef(a,kb,"history",Ag);(!md.length||0<=ef.indexOf(md[0]))&&a.g(ef);kb.Ya&&(R+=kb.Ya,jb-=kb.Ya,
|
|
|
|
|
N-=kb.Ya);R>=X.length&&(R=0);a.sa=N;cf++;jb--}}cf||(a.g("no "+bf+"history available"),a.sa=void 0)}else{var Qa=T(a,W,a.ja);if(Qa){var ta=0,ff="ds"==Na;if(ia){if("l"==ia.charAt(0))ia=ia.substr(1)||zg,ta=se(a,ia);else{var gf=T(a,ia);gf&&(ta=gf.w-Qa.w)}0>ta&&(ta=0);65536<ta&&(ta=65536)}var Bg=a.ca;Qa.ca&&(a.ca=Qa.ca);for(var hf="db"==Na?1:2,nd=ta||32,od=1==hf?2:4,Cg=(nd+od-1)/od|0||1,ua="";Cg--&&0<nd;){for(var va="",jf="",W=K(a,Qa.w),kf=od;0<kf--&&0<nd--;){var hc=a.xa(Qa,1);ff?(va&&(va+=","),va+=hc):
|
|
|
|
|
(va+=Fe(hc),va+=" ");for(var lf=0;1==hf&&6>lf;lf++)jf+=String.fromCharCode((hc%64|0)+32),hc/=64}ua&&(ua+="\n");ua=ff?ua+(va+","):ua+(W+": "+va+(0>kf?" "+jf:""))}ua&&a.g(ua);a.ca=Bg}}}}break;case "e":if("else"==f[0])break;var mf,nf,of=f[0],pd=f[1];"e"==of||"ew"==of?(mf=a.xa,nf=a.eb):pd=null;if(null==pd)a.g("edit memory commands:"),a.g("\tew [a] [...] edit words at address a");else{var ic=T(a,pd,a.ja);if(ic)for(var jc=2;jc<f.length;jc++){var qd=P(a,f[jc]);if(void 0===qd){a.g("unknown value: "+f[jc]);
|
|
|
|
|
break}a.g("changing "+K(a,ic.w)+" from "+Fe(mf.call(a,ic))+" to "+Fe(qd));nf.call(a,ic,qd,1)}}break;case "g":a:{var pf=f[1],Dg=b;if(void 0!==pf){var rd=T(a,pf);if(!rd)break a;Ee(a,rd,Dg);a.Da(a.b,rd,!0)}Qe(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 sd;var lb=b.substr(2),lb=Ca(lb);P(a,lb)?(c||a.g("true: "+lb),sd=!0):(c||a.g("false: "+lb),sd=!1);sd||(d=!1);break}g=!0;break;case "k":var Eg=f[0];if("?"==f[1])a.g("stack trace commands:"),
|
|
|
|
|
a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var td=0,ud=Q(),mb=Q();for(a.g("stack trace for "+K(a,mb.w));10>td;){for(var wa=null,Fg=256;65536>mb.w>>>0;){ud.w=a.xa(mb,2);if(null==mb.w||!Fg--)break;if(!(ud.w&1)){for(var Gg=a,kc=ud,qf=null,nb=kc.w,rf=nb,vd=1;6>=vd&&nb;vd++){if(2<vd){kc.w=nb;var lc=Ef(Gg,kc);if(0<=lc.indexOf("JSR")){var sf=lc.indexOf(" ");if(nb+(lc.indexOf(" ",sf+1)-sf-1)/2==rf){qf=lc;break}}}nb-=2}kc.w=rf;if(wa=qf)break}}if(!wa||null==wa)break;var tf=null;
|
|
|
|
|
if("ks"==Eg){var uf=wa.match(/[0-9A-F]+$/);uf&&(tf=Tf(a,uf[0]))}wa=Ba(wa,50)+" ;"+(tf||"stack="+K(a,mb.w));a.g(wa);td++}td||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Tf(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 vf=1E3<=a.O.length?a.O.length-1E3:0;vf<a.O.length;)a.g(a.O[vf++]);a.O=[]}}var Hg=0,ob="";for(Y in G)if(!A||A==Y){var Ig=!!(a.X&G[Y]);if(null===Z||Z==Ig)ob&&(ob+=","),++Hg%10||(ob+="\n\t"),"key"==Y&&(Y="keys"),ob+=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")+(ob||"none"));ye(a)}break;
|
|
|
|
|
case "p":if("print"==f[0]){Uf(a,b.substr(5));break}var wf=f[0],xf="p"==wf?0:"pr"==wf?1:-1;if("?"==f[1]||0>xf)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 yf=Q(a.i.u);a.xa(yf);a.N?(a.Da(a.b,yf,!0),Qe(a)||(a.F&&zd(a.F),a.N=0)):Vf(a,xf?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();break}Bf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var pb=+f[2];if(8==pb||10==pb||16==
|
|
|
|
|
pb)a.ca=pb;else{a.g("invalid base: "+pb);break}}a.g("default base: "+a.ca);break;case "cs":var qb;void 0!==f[3]&&(qb=+f[3]);switch(f[2]){case "int":a.i.ha=qb;break;case "start":a.i.ua=qb;break;case "stop":a.i.ja=qb;break;default:a.g("unknown cs option");break a}void 0!==qb&&Yc(a.i);a.g("checksums "+(a.i.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(cd(a.i,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.i.W.toFixed(2)+"Mhz")+" ("+a.i.aa+
|
|
|
|
|
"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":Vf(a,f[0],f[1]);break;case "u":Cf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Sf(a,b.substr(3))||(d=!1);break}if("ver"==f[0]){a.g((Jb||"PDP10")+
|
|
|
|
|
" version 1.34.2 ("+a.i.jb+",RELEASE)");a.g(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){Uf(a,b.substr(1));break}var wd="commands:",xd;for(xd in Xf)wd+="\n"+Ba(xd,9)+Xf[xd];Jd(a)||(wd+="\nnote: history disabled if no exec breakpoints");a.g(wd);break;default:g=!0}g&&(a.g("unknown command: "+b),d=!1)}}catch(Af){a.g("debugger error: "+(Af.stack||Af.message)),d=!1}return d}function ad(a,b,c){b=pe(a,b,c);for(var d in b)if(!Of(a,b[+d]))return!1;return!0}
|
|
|
|
|
var Xf={"?":"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"},Jf=20,Kf=".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(" "),
|
|
|
|
|
He=0,Ie=1,Je=2,Ke=3,Le=4,Me=5,Ne=6,Oe=7,Ge="PC RA EA C0 C1 OV ND PD".split(" "),Yf={},Ff=(Yf[28672]={0:101},Yf[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},Yf[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Jf,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},Yf[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Yf[29248]={24576:79,24640:80,25088:81,25152:82},Yf[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
|
|
|
|
28692:98,28696:99,28700:100},Yf),Gf=["","I","M","S"],Hf=" L E LE A GE N G".split(" "),If="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Pe=1E3,zf=">> ";Za(function(){for(var a=C(document,B,"debugger"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new we(d);wb(d,c)}});
|
|
|
|
|
function Zf(a,b,c){v.call(this,"Computer",a,33554432);this.j.U=!1;this.R=null;$f(this,b);this.O=Wc(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.ba=Wc(this,"url")||"";(Math.random()+.1).toString(36);this.f=ag(this);if(this.i=vb("CPU",this.id)){this.A=vb("Debugger",this.id);this.G=new zc({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.da=this.u.da,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.wa&&d.wa(this,this.G,this.i,this.A);b=null;d=Wc(this,"resume",a);void 0!==d&&(1<d.length?b=this.H=d:this.b=parseInt(d,10));var g;if(a=Wc(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=bg),this.b&&(this.J=new H(this,"1.34.2"),cg(this.J)?b=null:
|
|
|
|
|
delete this.J);!b&&this.b&&(b=dg(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.da("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&&eg(this,this.Ga)}else u("Unable to find CPU component")}p(Zf,v);function $f(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 Wc(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 eg(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(){eg(a,b,c)});return}}b.call(a,c)}
|
|
|
|
|
function fg(a,b){var c=new H(a,"1.34.2",gg);if(cg(c)&&hg(c)){var d=c.get(ig),e=b?b.get(ig):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Zf.prototype;
|
|
|
|
|
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?jg:bg));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==kg)b=!0;else if(a>bg){if(cg(d,this.M)){this.B=new H(this,"1.34.2",lg);cg(this.B)&&(mg(this,d),a=ng,og(this.B));this.B.set(ig,Ea());pg(this.B);var e=this.b&&!this.L;if(a==jg||sb("Click OK to restore the previous "+Jb+" machine state, or CANCEL to reset the machine.")){if(c=hg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?cg(d,f):("error"==g&&"no machine state"!=
|
|
|
|
|
f?(this.da("Error: "+f),"unable to verify user"==f&&(Sa(qg,""),this.f=null)):this.g(g+": "+f),og(d),cg(d)?(c=hg(d),e=!0):c=!1))}e&&fg(this,c?d:null)}else a==ng&&d.clear()}else fg(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=rg(this,f,d,b,c));b=[d,a,c];a!=kg?eg(this,this.pb,b):this.pb(b)}};
|
|
|
|
|
function rg(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=bg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.hb){var f=b.hb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
|
|
|
|
l.pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.i&&(rg(this,this.i,b,c,a),I(this,-2),this.i.Z());this.P&&(mg(this,b),b.clear());!c&&this.B&&(this.B.clear(),delete this.B);this.v=0};
|
|
|
|
|
function mg(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.ba;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 Wf(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",gg),h=Ea();f.set(ig,h);g.set(ig,h);g.set(sg,"1.34.2");g.set(tg,window?window.location.href:null);g.set(ug,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&&vg(a,a.f,g.toString()),pg(f)&&pg(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Jg),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.Qa+=d))&&(e.textContent=c.j.K?c.S.toFixed(2)+"Mhz":"Stopped",c.Qa=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.ca||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.qa);cc(a,a.f);Xb(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?Wf(d,!1,!0):eg(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.");Wf(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(bg)}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=ag(d,!0);if(a){var b=!!(d.b&&!d.H||d.N),c=Wf(d,b);b?vg(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
|
|
|
|
function ag(a,b){var c=a.f;c||((c=Ra(qg),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=Kg(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
|
|
|
|
function Kg(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(qg,b.data),a.f=b.data)}catch(d){u(d.message+" ("+c+")")}return a.f}function dg(a){var b=null;a.f&&(b=ya()+"/api/v1/user?req=load&user="+a.f+"&state="+Lg(a,"1.34.2"));return b}
|
|
|
|
|
function vg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Lg(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.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Sa(qg,""),a.f=null)}}
|
|
|
|
|
function zd(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 lg="failsafe",gg="validate",ig="timestamp",sg="version",tg="url",ug="browser",qg="user",kg=-1,bg=0,jg=1,ng=2,Jg=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 Zf(f,d,!0);wb(f,g);f.O&&eg(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(kg)}});$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&&Wf(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=Lg(a,b,c);og(this,a.Bb)}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 cg(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 hg(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 pg(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 og(a,b){a.i="";a.b={};a.f=a.A=!1;b&&a.set("parms",b)}l.clear=function(a){og(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 Lg(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 Mg=0;
|
|
|
|
|
function Ng(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)):Og(k,a,b,c,d,e,g,f)})}
|
|
|
|
|
function Og(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(gb(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?Pg(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
|
|
|
|
function Pg(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);Pg(a,b,c)}})}else c(a,null)}
|
|
|
|
|
function Qg(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&&(--Mg||cb(!0));m=!1}var h,k,m=!0;Mg++;ib[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?Ng(d,null,a,null,!1,g,function(a,e){e?(gb(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Mg||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),--Mg||
|
|
|
|
|
cb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Ng(c,b,a,e,!0,g,n):Og(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 Qg("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){cb(!1);return Qg("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
|
|
|
|
|
function R(a,b,c){var d;if(b){b=Ce(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=Ea(n);if(!n){g=!0;break}n=De(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++],A=n.length;k.length&&Ee[n]<Ee[k[k.length-1]]&&Be(h,k,1);k.push(n);b=b.substr(r+A)}Be(h,k)&&1==h.length||(g=!0);g?c&&a.g("error parsing '"+f+"' at character "+(f.length-b.length)):(d=h.pop(),c&&Fe(a,null,
|
|
|
|
|
d))}return d}function Ce(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=R(a,c[1]);b=b.replace(d+c[1]+e,null!=f?M(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 De(a,b,c,d){var e;null!=b?(e=a.sb(b),0<=e?e=a.$a(e):(e=a.W[b],null==e&&(e=pa(b,a.ca))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
|
|
|
|
function Fe(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 A=null==k||isNaN(k),W=m=m||n;0<n--;)W||(r=","+r,W=m),r=(A?"?":k&1?"1":"0")+r,k>>=1,W--;f=r+f;d>>=8}d=t(c,0,!0)+" "+c+". "+ra(c,0,!0)+" "+("0b"+f);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.g((null!=b?b+": ":"")+d);return e}
|
|
|
|
|
function Ge(a,b){if(b)return Fe(a,b,a.W[b]);var c=0;for(b in a.W)Fe(a,b,a.W[b]),c++;return 0<c}function M(a,b,c){c=void 0===c?0:c;switch(a.ca){case 8:b=ra(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=qa(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 Ee={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
|
|
|
|
function He(a){ze.call(this,a);this.ya=!1;this.la=!0;this.va=S();this.L=S(0);this.ja=S(0);this.ba=S(0);this.H=[];this.b=this.M=this.J=[];Ie(this);this.R=this.ka=0;this.f=[];this.sa=void 0;Je(this);this.C=this;this.qa={};this.X=this.nb=0;this.S=null;this.O=[];Ke(this,a.messages);this.ua=a.commands;this.N=0;this.Ba=this.ta=null;this.D=this.Aa=this.za=this.ia=this.ra=0;this.ha=this.aa=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return dd(b,a)}):void 0===global[y]&&(global[y]=function(a){return dd(b,
|
|
|
|
|
a)})}p(He,ze);function U(a){a=a&&a.B;null==a&&(a=-1);return a}function S(a,b,c){return{B:void 0===a?null:a,qb:void 0===b?!1:b,ea:!1,ca:c}}function Le(a,b,c,d){a.B=b;a.qb=c||!1;a.ea=!1;a.ca=d}function Me(a){return[a.B,a.qb,a.ca,a.ea,a.Oa]}function Ne(a,b){var c=S(b[0],b[1],b[2]);c.ea=b[3];b[4]&&(c.lb=Ae(a,c.Oa=b[4]));return c}l=He.prototype;
|
|
|
|
|
l.wa=function(a,b,c,d){this.G=b;this.F=a;this.i=c;this.ha=a.u;(a=Zc(a,"messages"))&&Ke(this,a);Oe(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=U(V(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=Jc[c],n&&d.g(t(n.id,8)+" %"+t(e<<d.G.f,8)+" %"+t(n.B,8)+" "+t(n.Ha,
|
|
|
|
|
4,!0)+" "+t(n.size,4,!0)+" "+m),c!=Nc&&(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="",dd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.A<d.u.length-1&&(b=d.u[++d.A])):40==a.keyCode&&(0<d.A?b=d.u[--d.A]:(b="",d.A=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.I[b]=c,Za(c,function(){if(d.aa){var a=d.aa.value;
|
|
|
|
|
d.aa.value="";dd(d,a,!0);return!0}return!1}),!0;case "step":return this.I[b]=c,Za(c,function(a){var b=!1;Hb(d,!0)||(Ib(d,!0),b=vc(d,a?1:0,null),Ib(d,!1));return b}),!0}return!1};function cd(a){if(a.aa){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.aa.focus();window&&window.scrollTo(b,c)}}l.xa=function(a,b){var c=-1,d=U(a);-1!==d&&(c=Bc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};l.eb=function(a,b,c){var d=U(a);-1!==d&&(Ac(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),L(this.F,-1))};
|
|
|
|
|
function V(a,b,c){var d,e;c||(c=S());var g=c.B;if(void 0!==b){b=Ce(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=S(h));if(f)return f;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);g=R(a,b,void 0)}null!=g&&Le(c,g,d,e);return c}function Pe(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.lb=Ae(a,b.Oa=c[2]))}
|
|
|
|
|
function Qe(a){return ra(a/Mb,6)+" "+ra(a%Mb,6)}function Ke(a,b){a.C=a;a.X=a.nb=536870916;a.S=null;a.O=[];b=Ae(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in I){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|=I[c],a.g(c+" messages enabled"))}}function Oe(a,b){for(var c in I)if(16==I[c]){a.qa[c]=b;break}}l.sb=function(a){return Re.indexOf(a.toUpperCase())};
|
|
|
|
|
l.$a=function(a){var b;switch(a){case Se:b=this.i.u;break;case Te:b=this.i.H;break;case Ue:b=this.i.f;break;case Ve:b=this.i.ib?1:0;break;case We:b=this.i.za?1:0;break;case Xe:b=this.i.Ra?1:0;break;case Ye:b=this.i.ub?1:0;break;case Ze:b=this.i.Sa?1:0}return b};
|
|
|
|
|
l.message=function(a,b){b&&(a+=" @"+M(this,S(this.i.ra).B));if(!this.S||a!=this.S)if(this.S=a,this.X&1073741824)this.O.push(a);else{var c;if(this.X&-2147483648&&this.i&&(c=this.i.j.K)||Hb(this,!0))this.V(),c&&(a+=" (cpu halted)");this.g(a);this.i&&(a=this.i,Fd(a),a.ba=0,a.F&&L(a.F,void 0))}};
|
|
|
|
|
function Je(a){var b;if(!Md(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($e);for(b=0;b<a.f.length;b++)a.f[b]=S();a.R=0;a.g("instruction history buffer allocated")}}function af(a,b,c){if(!bf(a,c))return!1;uc(a.i,b);return!0}
|
|
|
|
|
function vc(a,b,c,d){if(!bf(a))return!1;var e="";null===c&&(e=(c=!a.ta||"tr"==a.ta)?"tr":"t");a.D=0;b||Md(a)&&Nd(a,a.i.u,0);try{b=jd(a.i,b);var g=a.i.Ja(b);0<g&&(wc(a.i,g),a.D+=g,xc(a.i,g,!0),yc(a.i,g),a.ia++)}catch(f){"number"!=typeof f&&(a.D=0,Eb(a.i,f.stack||f.message))}!1!==d&&(a.ha&&a.ha.stop(),L(a.F,-1));bd(a,c||!1,e);return 0<a.D}l.V=function(a){this.i&&this.i.V(a)};function bd(a,b,c){b=void 0===b?!0:b;a.ya&&(c&&a.g(Kf+c),Le(a.L,a.i.u),b&&1!=a.N?Mf(a):Nf(a))}
|
|
|
|
|
function bf(a,b){var c;(c=!a.i||!Gb(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):!Fb(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){Je(this);this.ia=0;this.S=null;this.D=0;Le(this.L,this.i.u);this.j.K=!1;Of(this);a||bd(this)};
|
|
|
|
|
l.save=function(){var a=new J(this);a.set(0,Me(this.L));a.set(1,Me(this.ja));a.set(2,Me(this.ba));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=Ne(this,a[b++]),this.ja=Ne(this,a[b++]),this.ba=Ne(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.D=b-this.Aa;if(!this.N){b="stopped";if(this.D){a-=this.za;var c=0<a?Math.round(1E3*this.D/a):0;b+=" (";Md(this)&&(b+=this.ia+" instructions, ",this.ia=0);b+=this.D+" cycles, "+a+" ms, "+c+" hz)"}else Jb(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.g(b)}bd(this,!0);cd(this);Of(this,this.i.u);this.S=null}};function Md(a){return 1<a.b.length||!!a.ka}
|
|
|
|
|
function Nd(a,b,c){var d=-1;c||(d=a.i.w(b),2756==d>>23&&a.i.ra==b&&(b=Kd(a.i,1)));if(0<c&&(a.ka&&!--a.ka||Wc(a,b,1,a.b)))return!0;0<=c&&a.f.length&&(a.ia++,0>d&&(d=a.i.w(b)),0<=d&&(Le(a.f[a.R],b),++a.R==a.f.length&&(a.R=0)));return!1}
|
|
|
|
|
function Pf(a,b,c,d){var e=S(b.B),g=a.xa(b,1),f,h,k,m=0,n=g/Ub|0,r;for(r in Qf)if(f=Qf[r][n&r]){h=+r;n>>=6;switch(h){case 32512:k=Rf;m=n&3;break;case 32256:k=Sf;m=n&7;break;case 29248:k=Tf,m=(n&48)>>2|(n&6)>>1}break}k=k&&k[m]||"";"S"==k&&f>Uf&&(k="B");k=Vf[f||0]+k;k=Da(k,8);f?(k=28700==h?k+M(a,g/Vb&127,-1):k+M(a,g>>23&15,-1),k+=",",g&4194304&&(k+="@"),k+=M(a,g&262143,-1),(g=g>>18&15)&&(k+="("+M(a,g,-1)+")")):k+=Qe(g);g=k;f="";h=M(a,e.B)+":";if(-1!==e.B&&-1!==b.B){do if(k=a.xa(e,1),f+=" "+Qe(k),null==
|
|
|
|
|
e.B)break;while(e.B!=b.B)}h+=Da(f,16)+g;c&&(h=Da(h,48)+";"+(c||""),h=a.i.j.Ea?h+("cycles="+ed(a.i).toString()+" cs="+t(a.i.ta)):h+(null!=d?"="+d.toString():""));return h}function Ie(a){var b,c;a.b=["bp"];if(a.M)for(b=1;b<a.M.length;b++){c=a.M[b];c=U(c);var d=a.G;Vc(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=U(c),d=a.G,Vc(d.b[c>>>d.f],!0);a.J=["bw"];a.ra=0;a.ka=0}
|
|
|
|
|
l.Da=function(a,b,c){var d=!0;c||Wf(this,a,b,!1,!0);if(a!=this.b){var e=U(b);if(-1===e)this.g("invalid address: "+M(this,b.B)),d=!1;else{var g=this.G;g.b[e>>>g.f].Da(e&16383,a==this.J)}}d&&(a.push(b),c?b.ea=!0:(Xf(this,a,a.length-1,"set"),Je(this)));return d};function Wf(a,b,c,d,e){var g=!1;c=U(c);for(var f=1;f<b.length;f++){var h=b[f];if(c==U(h)&&(!d||h.ea)){g=!0;h.ea||e||Xf(a,b,f,"cleared");b.splice(f,1);b!=a.b&&(d=a.G,Vc(d.b[c>>>d.f],b==a.J));h.ea||Je(a);break}}return g}
|
|
|
|
|
function Yf(a,b){for(var c=1;c<b.length;c++)Xf(a,b,c);return b.length-1}function Xf(a,b,c,d){c=b[c];a.g(b[0]+" "+M(a,c.B)+(d?" "+d:c.Oa?' "'+c.Oa+'"':""))}function Of(a,b){if(void 0!==b)Wc(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(!Wf(a,a.b,c,!0))break;b=0}}}
|
|
|
|
|
function Wc(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=U(h)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==k){var n,g=!0;h.ea&&(Wf(a,d,h,!0),e=!0);if(n=h.lb){for(var g=!1,r=0;r<n.length;r++)if(!Zf(a,n[r],!0)){if(n[r].indexOf("if")){g=!0;break}for(var A=r+1;A<n.length&&n[A].indexOf("else");A++)r++;if(A==n.length){g=!0;break}}a.i.j.K||(g=!0)}if(g){e||Xf(a,d,f,"hit");break}}}a.ra--;return g}
|
|
|
|
|
function $f(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=ra(d,2);Le(e.va,d);g+="="+M(e,e.xa(e.va),36)+" ";c+=g}if(b){b="";for(d=0;d<Re.length;d++)(e=Re[d]||"")&&(e+="="+M(a,a.$a(d),d>=Ve?1:d==Te?23:18)+" "),b+=e;c+="\n"+b}return c}l.ob=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
|
|
|
|
function te(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=Fa(n,k,a.ob);0>r&&n.splice(-(r+1),0,k)}m&&(h.a=m.replace(/''/g,'"'))}a.H.push({fd:b,B:c,Fb:d,T:e,mb:g})}function ag(a,b,c){var d=[],e=U(b)>>>0;for(b=0;b<a.H.length;b++){var g=a.H[b],f=g.B>>>0,h=g.Fb;if(e>=f&&e<f+h){e=Fa(g.mb,[e-f],a.ob);0<=e?bg(a,b,e,d):c&&(e=~e,bg(a,b,e-1,d),bg(a,b,e,d));break}}return d}
|
|
|
|
|
function bg(a,b,c,d){var e={},g=a.H[b].mb,f=0,h=null;0<=c&&c<g.length&&(f=g[c][0],h=g[c][1]);h&&(e=a.H[b].T[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(f);d.push(e.a);d.push(e.c)}function cg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ge(a)||a.g("no variables"),!0;if(!c[2])return Ge(a,c[1]);if(!c[3])return delete a.W[c[1]],!0;b=R(a,c[3]);return void 0!==b?(a.W[c[1]]=b,!0):!1}a.g("invalid assignment:"+b);return!1}
|
|
|
|
|
function dg(a,b,c){var d=null;if(b=V(a,b)){var e=ag(a,b,!0);if(e.length){var g,f;e[0]&&(f="",(g=b.B-e[1])&&(f=" + "+t(g,4,!0)),g=e[0]+" ("+M(a,e[1])+")"+f,c&&a.g(g),d=g);4<e.length&&e[4]&&(f="",(g=e[5]-b.B)&&(f=" - "+t(g,4,!0)),g=e[4]+" ("+M(a,e[5])+")"+f,c&&a.g(g),d||(d=g))}else c&&a.g("no symbols")}return d}
|
|
|
|
|
function Mf(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=R(a,b);if(void 0===f)return;switch(g.toUpperCase()){case "PC":d.u=f%Mb;Le(a.L,d.u);break;default:a.g("unknown register: "+
|
|
|
|
|
g);return}L(a.F);a.g("updated registers:")}}a.g($f(a,e));c&&(Le(a.L,d.u),Nf(a,M(a,a.L.B)))}}function eg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.g(c[2]):Fe(a,null,c[2].charCodeAt(0)):R(a,b,!0)}
|
|
|
|
|
function fg(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=De(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Ya(c,function(){return Ib(a,!0)&&vc(a,e,d,!1)},function(){a.ha&&a.ha.stop();L(a.F,-1);Ib(a,!1)})}}
|
|
|
|
|
function Nf(a,b,c,d){if(b=V(a,b,a.L)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=De(a,c.substr(1)),null!=c&&(d=c);else{d=V(a,c);if(!d||d.B<b.B)return;e=d.B-b.B;if(256<e){a.g("range too large");return}d=-1}for(c=0;0<e&&d--;){var g=Hb(a,!1)||a.N?a.D:null,f=null!=g?"cycles":null,h=ag(a,b),k=b.B;if(h[0]&&d&&(!c&&d||0>h[0].indexOf("+"))){var m=h[0]+":";h[2]&&(m+=" "+h[2]);a.g(m)}h[3]&&(f=h[3],g=null);h=a.ba;m=b;h.B=m.B;h.ea=m.ea;h.ca=m.ca;a.g(Pf(a,b,f,g));e-=b.B-k;c++}}}
|
|
|
|
|
function Zf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(Kf+b):(a.P&&(a.g("ended assemble at "+M(a,a.ba.B)),a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Gb(a)&&0<b.length){a.P&&(b="a "+M(a,a.ba.B)+" "+b);var g=!1,f=b.replace(/ +/g," ").split(" ");f[0]=f[0].toLowerCase();if(f&&f.length)for(var h=f[0],k=h.charAt(0),m=1;m<h.length;m++){var n=h.charAt(m);if("?"==k||"r"==k||"a">n||"z"<n){f[0]=h.substr(m);f.unshift(h.substr(0,m));break}}switch(f[0].charAt(0)){case "a":var r=V(a,
|
|
|
|
|
f[1],a.ba);if(r){var A=f[2];if(void 0==A)a.g("begin assemble at "+M(a,r.B)),a.P=!0,L(a.F);else{f.shift();f.shift();f.shift();var W,cf=f.join(""),z=-1,ic,Hg=A.toUpperCase(),ld;for(ld in Qf){var La;ic=+ld;var df=Qf[ld];switch(ic){case 32512:La=Rf;break;case 32256:La=Sf;break;case 29248:La=Tf;break;default:La=[""]}var ef,md;for(md in df){for(var ff=df[md],Ma=0;Ma<La.length;Ma++){var nd=La[Ma];"S"==nd&&ff>Uf&&(nd="B");if(Hg==Vf[ff]+nd){ef=29248!=ic?Ma:(Ma&3)<<1|(Ma&12)<<2;z=(md|ef<<6)*Ub;break}}if(0<=
|
|
|
|
|
z)break}if(0<=z)break}if(0<=z)if(cf)for(var od=cf.split(","),jb=0;jb<od.length;jb++){var jc=od[jb].trim();if(jc){if(1<jb){a.g("too many operands: "+jc);z=-1;break}var X=jc.match(/(@?)([^(]*)\(?([^)]*)\)?/);if(!X){a.g("unknown operand: "+jc);z=-1;break}var F=R(a,X[2]);if(void 0==F){z=-1;break}if(!jb&&1<od.length)if(28700==ic){if(0>F||127<F){a.g("device code out of range: "+X[2]);z=-1;break}z+=F*Vb}else{if(0>F||15<F){a.g("accumulator address out of range: "+X[2]);z=-1;break}z+=F<<23}else{if(0>F||262143<
|
|
|
|
|
F){a.g("memory address out of range: "+X[2]);z=-1;break}z+=F;if(X[3]){F=R(a,X[3]);if(void 0==F){z=-1;break}if(0>F||15<F){a.g("memory index out of range: "+X[3]);z=-1;break}z+=F<<18}X[1]&&(z+=4194304)}}}else a.g("missing operand(s)"),z=-1;else a.g("unknown instruction: "+A);W=z;0<=W&&(a.eb(r,W),a.g(Pf(a,r)))}}break;case "b":a:{var Ig=f[0],Na=f[1],Jg=b;if("?"==Na)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 ua=Ig.charAt(1);if("l"==ua){var pd;pd=0+Yf(a,a.b);pd+=Yf(a,a.M);(pd+=Yf(a,a.J))||a.g("no breakpoints")}else if("n"==ua){var gf=+Na||0;Na&&(a.ka=gf);a.g("break after "+gf+" instruction(s)")}else if(void 0===Na)a.g("missing breakpoint address");else{var K=S();if("*"!=Na&&(K=V(a,Na,a.L),!K))break a;"c"==ua?null==K.B?(Ie(a),a.g("all breakpoints cleared")):Wf(a,a.b,K)||Wf(a,a.M,K)||Wf(a,a.J,K)||a.g("breakpoint missing: "+
|
|
|
|
|
M(a,K.B)):null!=K.B&&(Pe(a,K,Jg),"p"==ua?a.Da(a.b,K):"r"==ua?a.Da(a.M,K):"w"==ua?a.Da(a.J,K):a.g("unknown breakpoint command: "+ua))}}}break;case "c":a.oa&&(a.oa.value="");break;case "d":a:{var Oa,Pa=f[0],Y=f[1],ka=f[2],Kg=f[3];if("?"==Y){var Qa="";for(Oa in I)a.qa[Oa]&&(Qa&&(Qa+=","),Qa+=Oa);Qa+=",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");
|
|
|
|
|
Qa.length&&a.g("dump extension commands:\n\t"+Qa)}else if("state"==Y){var qd=gg(a.F,!0);"console"==ka?console.log(qd):(a.oa&&(a.oa.value=""),qd&&a.g(qd))}else if("symbols"==Y)for(var rd=0;rd<a.H.length;rd++){var sd=a.H[rd],Ra;for(Ra in sd.T)if("."!=Ra.charAt(0)){var hf=sd.T[Ra].o;if(void 0!==hf){var jf=sd.T[Ra].l;jf&&(Ra=jf);a.g(M(a,hf)+" "+Ra)}}}else{if("d"==Pa){for(Oa in I)if(f[1]==Oa){var kf=a.qa[Oa];kf?(f.shift(),f.shift(),kf(f)):a.g("no dump registered for "+Y);break a}Y||(Pa=a.Ba||"dw")}else a.Ba=
|
|
|
|
|
Pa;if("dh"==Pa){var lf=Y,mf=ka,nf="",of=0,T=a.R,Z=a.f;if(Z.length){var P=+lf||a.sa,lb=+mf||10;isNaN(P)?P=lb:nf="more ";P>Z.length&&(a.g("note: only "+Z.length+" available"),P=Z.length);T-=P;0>T&&(null==Z[Z.length-1].B?(P=T+P,T=0):T+=Z.length);var td=[];"call"==mf&&(lb=1E5,td=["CALL"]);for(void 0!==lf&&a.g(P+" instructions earlier:");0<lb&&T!=a.R;){var pf=Z[T++];if(null==pf.B)break;var mb=S(pf.B),Lg=P--,qf=Pf(a,mb,"history",Lg);(!td.length||0<=qf.indexOf(td[0]))&&a.g(qf);mb.Ya&&(T+=mb.Ya,lb-=mb.Ya,
|
|
|
|
|
P-=mb.Ya);T>=Z.length&&(T=0);a.sa=P;of++;lb--}}of||(a.g("no "+nf+"history available"),a.sa=void 0)}else{var Sa=V(a,Y,a.ja);if(Sa){var va=0,rf="ds"==Pa;if(ka){if("l"==ka.charAt(0))ka=ka.substr(1)||Kg,va=De(a,ka);else{var sf=V(a,ka);sf&&(va=sf.B-Sa.B)}0>va&&(va=0);65536<va&&(va=65536)}var Mg=a.ca;Sa.ca&&(a.ca=Sa.ca);for(var tf="db"==Pa?1:2,ud=va||32,vd=1==tf?2:4,Ng=(ud+vd-1)/vd|0||1,wa="";Ng--&&0<ud;){for(var xa="",uf="",Y=M(a,Sa.B),vf=vd;0<vf--&&0<ud--;){var kc=a.xa(Sa,1);rf?(xa&&(xa+=","),xa+=kc):
|
|
|
|
|
(xa+=Qe(kc),xa+=" ");for(var wf=0;1==tf&&6>wf;wf++)uf+=String.fromCharCode((kc%64|0)+32),kc/=64}wa&&(wa+="\n");wa=rf?wa+(xa+","):wa+(Y+": "+xa+(0>vf?" "+uf:""))}wa&&a.g(wa);a.ca=Mg}}}}break;case "e":if("else"==f[0])break;var xf,yf,zf=f[0],wd=f[1];"e"==zf||"ew"==zf?(xf=a.xa,yf=a.eb):wd=null;if(null==wd)a.g("edit memory commands:"),a.g("\tew [a] [...] edit words at address a");else{var lc=V(a,wd,a.ja);if(lc)for(var mc=2;mc<f.length;mc++){var xd=R(a,f[mc]);if(void 0===xd){a.g("unknown value: "+f[mc]);
|
|
|
|
|
break}a.g("changing "+M(a,lc.B)+" from "+Qe(xf.call(a,lc))+" to "+Qe(xd));yf.call(a,lc,xd,1)}}break;case "g":a:{var Af=f[1],Og=b;if(void 0!==Af){var yd=V(a,Af);if(!yd)break a;Pe(a,yd,Og);a.Da(a.b,yd,!0)}af(a,!0,c)}break;case "h":a.j.K?(c||a.g("halting"),a.V()):Hb(a,!0)||c||a.g("already halted");break;case "i":if("if"==f[0]){var zd;var nb=b.substr(2),nb=Ea(nb);R(a,nb)?(c||a.g("true: "+nb),zd=!0):(c||a.g("false: "+nb),zd=!1);zd||(d=!1);break}g=!0;break;case "k":var Pg=f[0];if("?"==f[1])a.g("stack trace commands:"),
|
|
|
|
|
a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var Ad=0,Bd=S(),ob=S();for(a.g("stack trace for "+M(a,ob.B));10>Ad;){for(var ya=null,Qg=256;65536>ob.B>>>0;){Bd.B=a.xa(ob,2);if(null==ob.B||!Qg--)break;if(!(Bd.B&1)){for(var Rg=a,nc=Bd,Bf=null,pb=nc.B,Cf=pb,Cd=1;6>=Cd&&pb;Cd++){if(2<Cd){nc.B=pb;var oc=Pf(Rg,nc);if(0<=oc.indexOf("JSR")){var Df=oc.indexOf(" ");if(pb+(oc.indexOf(" ",Df+1)-Df-1)/2==Cf){Bf=oc;break}}}pb-=2}nc.B=Cf;if(ya=Bf)break}}if(!ya||null==ya)break;var Ef=null;
|
|
|
|
|
if("ks"==Pg){var Ff=ya.match(/[0-9A-F]+$/);Ff&&(Ef=dg(a,Ff[0]))}ya=Da(ya,50)+" ;"+(Ef||"stack="+M(a,ob.B));a.g(ya);Ad++}Ad||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){dg(a,f[1],!0);break}g=!0;break;case "m":a:{var aa,ba=null,B=f[1];"?"==B&&(B=void 0);if(void 0!==B){var la=0;if("all"==B)la=1879046143,B=null;else if("on"==B)ba=!0,B=null;else if("off"==B)ba=!1,B=null;else{"keys"==B&&(B="key");"kbd"==B&&(B="keyboard");for(aa in I)if(B==aa){la=I[aa];ba=!!(a.X&la);break}if(!la){a.g("unknown message category: "+
|
|
|
|
|
B);break a}}if(la)if("on"==f[2])a.X|=la,ba=!0;else if("off"==f[2]&&(a.X&=~la,ba=!1,1073741824==la)){for(var Gf=1E3<=a.O.length?a.O.length-1E3:0;Gf<a.O.length;)a.g(a.O[Gf++]);a.O=[]}}var Sg=0,qb="";for(aa in I)if(!B||B==aa){var Tg=!!(a.X&I[aa]);if(null===ba||ba==Tg)qb&&(qb+=","),++Sg%10||(qb+="\n\t"),"key"==aa&&(aa="keys"),qb+=aa}void 0===B&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==ba?ba?"messages on: ":"messages off: ":"message categories:\n\t")+(qb||
|
|
|
|
|
"none"));Je(a)}break;case "p":if("print"==f[0]){eg(a,b.substr(5));break}var Hf=f[0],If="p"==Hf?0:"pr"==Hf?1:-1;if("?"==f[1]||0>If)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 Jf=S(a.i.u);a.xa(Jf);a.N?(a.Da(a.b,Jf,!0),af(a)||(a.F&&id(a.F),a.N=0)):fg(a,If?"tr":"t")}break;case "r":if("reset"==b){a.F&&a.F.reset();break}Mf(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var rb=+f[2];
|
|
|
|
|
if(8==rb||10==rb||16==rb)a.ca=rb;else{a.g("invalid base: "+rb);break}}a.g("default base: "+a.ca);break;case "cs":var sb;void 0!==f[3]&&(sb=+f[3]);switch(f[2]){case "int":a.i.ha=sb;break;case "start":a.i.ua=sb;break;case "stop":a.i.ja=sb;break;default:a.g("unknown cs option");break a}void 0!==sb&&ad(a.i);a.g("checksums "+(a.i.j.Ea?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(fd(a.i,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.i.W.toFixed(2)+
|
|
|
|
|
"Mhz")+" ("+a.i.aa+"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":fg(a,f[0],f[1]);break;case "u":Nf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){cg(a,b.substr(3))||(d=!1);break}if("ver"==
|
|
|
|
|
f[0]){a.g((Lb||"PDP10")+" version 1.34.2 ("+a.i.jb+",RELEASE)");a.g(window?window.navigator.userAgent:"");break}g=!0;break;case "?":if(f[1]){eg(a,b.substr(1));break}var Dd="commands:",Ed;for(Ed in hg)Dd+="\n"+Da(Ed,9)+hg[Ed];Md(a)||(Dd+="\nnote: history disabled if no exec breakpoints");a.g(Dd);break;default:g=!0}g&&(a.g("unknown command: "+b),d=!1)}}catch(Lf){a.g("debugger error: "+(Lf.stack||Lf.message)),d=!1}return d}
|
|
|
|
|
function dd(a,b,c){b=Ae(a,b,c);for(var d in b)if(!Zf(a,b[+d]))return!1;return!0}
|
|
|
|
|
var hg={"?":"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"},Uf=20,Vf=".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(" "),
|
|
|
|
|
Se=0,Te=1,Ue=2,Ve=3,We=4,Xe=5,Ye=6,Ze=7,Re="PC RA EA C0 C1 OV ND PD".split(" "),ig={},Qf=(ig[28672]={0:101},ig[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},ig[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Uf,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},ig[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},ig[29248]={24576:79,24640:80,25088:81,25152:82},ig[28700]={28672:93,28676:94,28680:95,28684:96,28688:97,
|
|
|
|
|
28692:98,28696:99,28700:100},ig),Rf=["","I","M","S"],Sf=" L E LE A GE N G".split(" "),Tf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),$e=1E3,Kf=">> ";ab(function(){for(var a=C(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new He(d);yb(d,c)}});
|
|
|
|
|
function jg(a,b,c){v.call(this,"Computer",a,33554432);this.j.U=!1;this.R=null;kg(this,b);this.O=Zc(this,"autoPower",a,6);this.A=0;this.aa=+a.busWidth||+a.buswidth;this.M=this.H=this.N=null;this.L=this.W=!1;this.J=this.D=null;this.S=this.P=!1;this.ba=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.f=lg(this);if(this.i=xb("CPU",this.id)){this.C=xb("Debugger",this.id);this.G=new Cc({id:this.La+".bus",busWidth:this.aa},this.i,this.C);var d,e=vb(this.id);if((this.u=xb("Panel",this.id))&&this.u.oa)for(b=
|
|
|
|
|
0;b<e.length;b++)d=e[b],d.da=this.u.da,d.g=this.u.g,d.oa=this.u.oa;this.g(Lb+" 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.wa&&d.wa(this,this.G,this.i,this.C);b=null;d=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.H=d:this.b=parseInt(d,10));var g;if(a=Zc(this,"state")||(g=!0,a.state))this.N=b=a,g||(this.L=!0,this.b=mg),this.b&&(this.J=new J(this,"1.34.2"),ng(this.J)?b=null:
|
|
|
|
|
delete this.J);!b&&this.b&&(b=og(this))&&(this.L=!0);if(b){var f=this;Ha(b,null,!0,function(a,b,c){c?(f.H=null,f.L=!1,f.da("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(f.M=b,f.W=!0);D(f)})}else D(this);this.I.power||(this.O=!0);!c&&this.O&&pg(this,this.Ga)}else u("Unable to find CPU component")}p(jg,v);function kg(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 Zc(a,b,c,d){var e=b.toLowerCase(),e=Wa(b)||Wa(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 pg(a,b,c){for(var d=vb(a.id),e=0;e<=d.length;e++){var g=e<d.length?d[e]:a;if(!Gb(g)){Gb(g,function(){pg(a,b,c)});return}}b.call(a,c)}
|
|
|
|
|
function qg(a,b){var c=new J(a,"1.34.2",rg);if(ng(c)&&sg(c)){var d=c.get(tg),e=b?b.get(tg):"unknown";d!=e&&(a.da("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=jg.prototype;
|
|
|
|
|
l.Ga=function(a){void 0===a&&(a=this.b||(this.M?ug:mg));if(!this.A){this.A++;var b=!1,c=!1;this.P=!1;var d=this.J||new J(this,"1.34.2");if(a==vg)b=!0;else if(a>mg){if(ng(d,this.M)){this.D=new J(this,"1.34.2",wg);ng(this.D)&&(xg(this,d),a=yg,zg(this.D));this.D.set(tg,Ga());Ag(this.D);var e=this.b&&!this.L;if(a==ug||ub("Click OK to restore the previous "+Lb+" machine state, or CANCEL to reset the machine.")){if(c=sg(d)){var g=d.get("code"),f=d.get("data");g&&("ok"==g?ng(d,f):("error"==g&&"no machine state"!=
|
|
|
|
|
f?(this.da("Error: "+f),"unable to verify user"==f&&(Ua(Bg,""),this.f=null)):this.g(g+": "+f),zg(d),ng(d)?(c=sg(d),e=!0):c=!1))}e&&qg(this,c?d:null)}else a==yg&&d.clear()}else qg(this);delete this.M;delete this.J}e=vb(this.id);for(g=0;g<e.length;g++)f=e[g],f!==this&&f!=this.i&&(c=Cg(this,f,d,b,c));b=[d,a,c];a!=vg?pg(this,this.pb,b):this.pb(b)}};
|
|
|
|
|
function Cg(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=mg,window&&window.location.reload()):a.P=!0,b.pa(null),e=!1),!d&&b.hb){var f=b.hb.split("|");for(a=0;a<f.length;a++)b.status(f[a])}}catch(h){u("Error restoring state for "+b.type+" ("+h.message+")")}}return e}
|
|
|
|
|
l.pb=function(a){var b=a[0],c=0>a[1];a=a[2];this.S=!0;this.j.U=!0;var d=this.I.power;d&&(d.textContent="Shutdown");this.i&&(Cg(this,this.i,b,c,a),L(this,-2),this.i.Z());this.P&&(xg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.A=0};
|
|
|
|
|
function xg(a,b){if(ub("There may be a problem with your "+Lb+" machine.\n\nTo help us diagnose it, click OK to send this "+Lb+" machine state to http://www.pcjs.org.")){var c=a.ba;a=a.f||"";b=b.toString();var d={};d.app=Lb;d.ver="1.34.2";d.url=c;d.user=a;d.type="bug";d.data=b;Ha("http://www.pcjs.org/api/v1/report",d,!0)}}
|
|
|
|
|
function gg(a,b,c){var d,e="none";if(a.A)return null;a.A--;var g=new J(a,"1.34.2"),f=new J(a,"1.34.2",rg),h=Ga();f.set(tg,h);g.set(tg,h);g.set(Dg,"1.34.2");g.set(Eg,window?window.location.href:null);g.set(Fg,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=vb(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&&Gg(a,a.f,g.toString()),Ag(f)&&Ag(g)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==Ug),d&&g.clear(h)):e=g.toString());c&&(a.j.U=!1,b=a.I.power)&&(b.textContent="Power");a.A=0;return e}
|
|
|
|
|
l.reset=function(){this.j.reset=!0;this.G&&this.G.reset&&(Kb(this,"Resetting "+this.G.type),this.G.reset());this.i&&this.i.reset&&(Kb(this,"Resetting "+this.i.type),this.i.reset());for(var a=vb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.i&&c.reset&&(Kb(this,"Resetting "+c.type),c.reset())}this.j.reset=!1;L(this,-1)};l.start=function(a,b){for(var c=vb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}L(this,-1)};
|
|
|
|
|
l.stop=function(a,b){for(var c=vb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}L(this,-1)};
|
|
|
|
|
function L(a,b){if(a.i){var c=a.i,d=b||0,e=c.I.speed;e&&(0>=d||30<=(c.Qa+=d))&&(e.textContent=c.j.K?c.S.toFixed(2)+"Mhz":"Stopped",c.Qa=0)}if(a.u&&(a=a.u,b=b||0,a.M)){c=a.i.j.K;d=!!(a.i.A&8);if(0>=b||60<=(a.L+=b)){e=a.i.u;if(a.I.PC){var g=a.C&&a.C.ca||8,e=e||0,e=8==g?ra(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.qa);fc(a,a.f);$b(a,a.A)}}
|
|
|
|
|
l.ga=function(a,b,c){var d=this;switch(b){case "power":return this.I[b]=c,c.onclick=function(){d.A||(d.j.U?gg(d,!1,!0):pg(d,d.Ga))},!0;case "reset":return this.I[b]=c,c.onclick=function(){if(d.j.U&&!d.A)if(d.b&&!d.H){var a=ub("Click OK to save changes to this "+Lb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");gg(d,a,!0);!a&&d.N?window&&window.location.reload():d.Ga(mg)}else d.reset(),d.i&&!d.C&&d.i.Z()},!0;case "save":if(za())c.parentNode.removeChild(c);else return this.I[b]=
|
|
|
|
|
c,c.onclick=function(){var a=lg(d,!0);if(a){var b=!!(d.b&&!d.H||d.N),c=gg(d,b);b?Gg(d,a,c):d.da("Resume disabled, machine state not saved")}},!0}return!1};
|
|
|
|
|
function lg(a,b){var c=a.f;c||((c=Ta(Bg),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=Vg(a,c))||a.da("The user ID is invalid.")):b&&a.da("Browser local storage is not available"));return c}
|
|
|
|
|
function Vg(a,b){a.f=null;b=Ha(Aa()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ua(Bg,b.data),a.f=b.data)}catch(d){u(d.message+" ("+c+")")}return a.f}function og(a){var b=null;a.f&&(b=Aa()+"/api/v1/user?req=load&user="+a.f+"&state="+Wg(a,"1.34.2"));return b}
|
|
|
|
|
function Gg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Wg(a,"1.34.2");d.data=c;b=Ha(Aa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.da("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.da(c),Ua(Bg,""),a.f=null)}}
|
|
|
|
|
function id(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 wg="failsafe",rg="validate",tg="timestamp",Dg="version",Eg="url",Fg="browser",Bg="user",vg=-1,mg=0,ug=1,yg=2,Ug=3;ab(function(){for(var a=C(document,y+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=C(c,y,"computer"),e=0;e<c.length;e++){var g=c[e],f=x(g),f=new jg(f,d,!0);yb(f,g);f.O&&pg(f,f.Ga)}});
|
|
|
|
|
bb.show.push(function(){for(var a=C(document,y,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=xb("Computer",c.id))&&c.S&&!c.j.U&&c.Ga(vg)}});bb.exit.push(function(){for(var a=C(document,y,"computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=xb("Computer",c.id))&&c.j.U&&gg(c,!(!c.b||c.H),!0)}});function J(a,b,c){this.id=a.id;this.i="";this.b={};this.f=this.C=!1;this.key=Wg(a,b,c);zg(this,a.Bb)}l=J.prototype;l.set=function(a,b){try{this.b[a]=b}catch(c){}};l.get=function(a){return this.b[a]||null};
|
|
|
|
|
l.data=function(){return this.b};function ng(a,b){return b?(a.i=b,a.f=!0,a.C=!1,!0):a.f?!0:Ja()&&(b=Ta(a.key))?(a.i=b,a.f=!0):!1}function sg(a){var b=!0;if(!a.C)try{a.b=JSON.parse(a.i),a.C=!0}catch(c){u(c.message||c),b=!1}return b}function Ag(a){var b=!0;if(Ja()){var c=JSON.stringify(a.b);Ua(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 zg(a,b){a.i="";a.b={};a.f=a.C=!1;b&&a.set("parms",b)}l.clear=function(a){zg(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 Wg(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 Xg=0;
|
|
|
|
|
function Yg(a,b,c,d,e,g,f){g("Loading "+a+"...");Ha(a,null,!0,function(h,k,m){m?(k||(k="unable to load "+a+" ("+m+")"),f(k,null)):Zg(k,a,b,c,d,e,g,f)})}
|
|
|
|
|
function Zg(a,b,c,d,e,g,f,h){function k(a,f){if(f)h(f,null);else{c&&(ib(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?$g(a,f,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
|
|
|
|
function $g(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ha(e,null,!0,function(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);$g(a,b,c)}})}else c(a,null)}
|
|
|
|
|
function ah(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=Ba(a))}function f(a){g("Error: "+a);m&&(--Xg||eb(!0));m=!1}var h,k,m=!0;Xg++;kb[b]={};try{if(h=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var r=document.head||document.getElementsByTagName("head")[0],A=document.createElement("style");A.type="text/css";A.styleSheet?A.styleSheet.cssText=n:A.appendChild(document.createTextNode(n));r.appendChild(A)}d||
|
|
|
|
|
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,k){k?Yg(d,null,a,null,!1,g,function(a,e){e?(ib(b,d,a),g("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=k.transformNode(e))?(h.outerHTML=e,--Xg||eb(!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),--Xg||
|
|
|
|
|
eb(!0)):f("invalid machine element: "+b):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(a)}):f(e)};"<"!=c.charAt(0)?Yg(c,b,a,e,!0,g,n):Zg(c,null,b,a,e,!1,g,n)}else f("missing machine element: "+b)}catch(W){f(W.message)}return m}window.embedPDP10=function(a,b,c,d){eb(!1);return ah("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){eb(!1);return ah("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return xb(b,a+".machine")};
|
|
|
|
|
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!Ab[a]){for(var c=!0,d=Ab,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;zb(a)||(c=!1)}return c};window.enableEvents=eb;window.sendEvent=gb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp10-dbg.map
|
|
|
|
|
|