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