Documented a (mildly) interesting MACRO-10 bug
This commit is contained in:
parent
1d1ac0cb7b
commit
c6de12287c
5 changed files with 526 additions and 490 deletions
|
|
@ -167,128 +167,128 @@ m.ta=function(a,b,c){var d=this;switch(b){case He:return this.J[b]=c,c.onkeydown
|
|||
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=Zc(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 He="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 Ge(d);sb(d,c)}});function Ie(a){r.call(this,"Debugger",a);this.T=+a.base||16;this.L=32;this.ka=null;this.ba=["{","}"];this.ua=["[","]"];this.C=0;this.U=!1;this.w=-1;this.j=[];this.I={}}ka(Ie,r);Ie.prototype.sb=function(){return-1};Ie.prototype.tb=function(){};
|
||||
function Je(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.U?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 Ke(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)&(c/Le|0))*Le+((b&c)>>>0)}
|
||||
Xa(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Ge(d);sb(d,c)}});function Ie(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(Ie,r);Ie.prototype.sb=function(){return-1};Ie.prototype.tb=function(){};
|
||||
function Je(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 Ke(a,b,c){if(32>=a.L)return b&c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)&(c/Le|0))*Le+((b&c)>>>0)}
|
||||
function Me(a,b,c){if(32>=a.L)return b|c;b=Y(a,b,0,!0);c=Y(a,c,0,!0);return((b/Le|0)^(c/Le|0))*Le+((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 Ne(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=Ke(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/Le|0|g/Le|0)*Le+((f|g)>>>0));break;case "^!":f=Me(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 Oe(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=Pe(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=Oe(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;D.length&&Qe[k]<=Qe[D[D.length-1]]&&Ne(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Ne(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 Re(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 Se(a,b,c){var d=void 0;a.ka=null;if(b){"{"!=a.ba[0]&&(b=b.split(a.ba[0]).join("{").split(a.ba[1]).join("}"));b=Re(a,b,'"',7,5,c);if(!b)return d;b=Re(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=Oe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Te(a,null,d)}return d}
|
||||
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]?Qe:Re;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Ne(a,u,D,1);D.push(k);a.T="^_"==k?10:e;p=0}if(l||!Ne(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 Se(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 Te(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=Se(a,b,'"',7,5,c);if(!b)return d;b=Se(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=Oe(a,b,0,b.length,a.T,c);void 0!==d&&!1===c&&Ue(a,null,d)}return d}
|
||||
function Pe(a,b,c,d,e){e=void 0===e?0:e;var f;if(null!=b)if(f=a.sb(b),0<=f?f=a.tb(f):(f=a.I[b],null==f&&(f=sa(b,1<b.length?a.T:10))),null!=f){for(;e;){switch(e&3){case 1:f=-Y(a,f);break;case 2:f=Me(a,f,-1);break;case 3:for(b=35;0<=b&&!Ke(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 Te(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 Ue(a){var b=a.I;a.I={};return b}function Ve(a,b){if(b)return Te(a,b,a.I[b]);var c=0;for(b in a.I)Te(a,b,a.I[b]),c++;return 0<c}
|
||||
function Ue(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 Ve(a){var b=a.I;a.I={};return b}function We(a,b){if(b)return Ue(a,b,a.I[b]);var c=0;for(b in a.I)Ue(a,b,a.I[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 Qe={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11},Le=Math.pow(2,32);
|
||||
function We(a){Ie.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.ba=["<",">"];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=[];Xe(this);this.V=this.qa=0;this.i=[];this.Ea=void 0;Ye(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.X=null;this.S=[];Ze(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 dd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return dd(b,a)})}ka(We,Ie);function $e(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 af(a,b,c,d){a.B=b;a.eb=c||!1;a.ra=!1;a.T=d}function bf(a){return[a.B,a.eb,a.ra,a.T,a.hb]}function cf(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.zb=Je(a,c.hb=b[4]));return c}m=We.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=Zc(a,"messages"))&&Ze(this,b);if(a=Zc(a,"commands"))this.va=a;df(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=$e(ef(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=Gc[c],p&&d.u(n(p.id,8)+" %"+
|
||||
var Re={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Qe={"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"%":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Le=Math.pow(2,32);
|
||||
function Xe(a){Ie.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=[];Ye(this);this.X=this.qa=0;this.i=[];this.Ea=void 0;Ze(this);this.D=this;this.xa={};this.ca=this.Eb=0;this.ba=null;this.S=[];$e(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 dd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return dd(b,a)})}ka(Xe,Ie);function af(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 bf(a,b,c,d){a.B=b;a.eb=c||!1;a.ra=!1;a.T=d}function cf(a){return[a.B,a.eb,a.ra,a.T,a.hb]}function df(a,b){var c=Z(b[0],b[1],b[2]);c.ra=b[3];b[4]&&(c.zb=Je(a,c.hb=b[4]));return c}m=Xe.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=Zc(a,"messages"))&&$e(this,b);if(a=Zc(a,"commands"))this.va=a;ef(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=af(ff(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=Gc[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!=Nc&&(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="",dd(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="";dd(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=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function cd(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=$e(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=$e(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
|
||||
function ef(a,b,c){var d,e;c||(c=Z());var f=c.B;if(void 0!==b){a:{var g,f=a.ba[0],h=a.ba[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=Se(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=Se(a,b)}null!=f&&(f=ff(f,a.Ga),af(c,f,d,e));return c}function gf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Je(a,b.hb=c[2]))}
|
||||
function ff(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function hf(a,b){return K(a,b/Tb,18)+" "+K(a,b%Tb,18)}
|
||||
function Ze(a,b){a.D=a;a.ca=a.Eb=536870916;a.X=null;a.S=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){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|=ac[c],a.u(c+" messages enabled"))}}function df(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}m.sb=function(a){return jf.indexOf(a.toUpperCase())};
|
||||
m.tb=function(a){var b,c=this.v;switch(a){case kf:b=c.i;break;case lf:b=c.I;break;case mf:b=c.b;break;case nf:b=c.j&x;break;case of:b=c.j&131072?1:0;break;case pf:b=c.j&65536?1:0;break;case qf:b=c.j&32768?1:0;break;case rf:b=c.j&32?1:0;break;case sf: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.X||a!=this.X)if(this.X=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,ld(a),a.ka=0,a.H&&J(a.H,void 0))}};
|
||||
function Ye(a){var b;if(!sd(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.V=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(tf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.V=0;a.u("instruction history buffer allocated")}}function uf(a,b,c){if(!vf(a,c))return!1;rc(a.v,b);return!0}
|
||||
function sc(a,b,c,d){if(!vf(a))return!1;var e="";null===c&&(e=(c=!a.Fa||"tr"==a.Fa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=jd(a.v,b);var f=a.v.$a(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(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));bd(a,c||!1,e);return 0<a.C}m.W=function(a){this.v&&this.v.W(a)};function bd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(wf+c),af(a.M,a.v.i),b&&1!=a.P?xf(a):yf(a))}
|
||||
function vf(a,b){var c;(c=!a.v||!Lb(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):!Ab(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){Ye(this);this.oa=0;this.X=null;this.C=0;af(this.M,this.v.i);this.A.O=!1;zf(this);a||bd(this)};
|
||||
m.save=function(){var a=new F(this);a.set(0,bf(this.M));a.set(1,bf(this.pa));a.set(2,bf(this.ja));a.set(3,[this.j,this.U,this.ca]);a.set(4,this.F);return a.data()};m.restore=function(a){var b=0;void 0!==a[3]&&(this.M=cf(this,a[b++]),this.pa=cf(this,a[b++]),this.ja=cf(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.U=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+=" (";sd(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)}bd(this,!0);cd(this);zf(this,this.v.i);this.X=null}};function sd(a){return 1<a.b.length||!!a.qa}
|
||||
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=rd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Wc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(af(a.i[a.V],b),++a.V==a.i.length&&(a.V=0)));return!1}
|
||||
function Af(a,b,c,d){var e=Z(b.B),f=a.Ma(b,1),g,h,k,l=0,p=f/Xb|0,u;for(u in Bf)if(g=Bf[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Cf;l=p&3;break;case 32256:k=Df;l=p&7;break;case 29248:k=Ef,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Ff&&(k="B");k=Gf[g||0]+k;if(g){if(28700==h)h=f/Yb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<Hf.length;p++)if(g==Hf[p][0]&&(u=Hf[p][h])){k=Gf[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)+hf(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+=" "+hf(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="+ed(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function If(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),l=0;l<Hf.length;l++)for(var p in Hf[l])if(+p&&(h=Hf[l][p],k==Gf[h])){k=Gf[Hf[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Bf){g=+u;p=Bf[u];switch(g){case 32512:l=Cf;break;case 32256:l=Df;break;case 29248:l=Ef;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>Ff&&(P="B");if(k==Gf[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Xb;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=Se(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=Se(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*Yb}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 Xe(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=$e(c);var d=a.G;Vc(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=$e(c),d=a.G,Vc(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||Jf(this,a,b,!1,!0);if(a!=this.b){var e=$e(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:(Kf(this,a,a.length-1,"set"),Ye(this)));return d};function Jf(a,b,c,d,e){var f=!1;c=$e(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==$e(h)&&(!d||h.ra)){f=!0;h.ra||e||Kf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Vc(d.b[c>>>d.i],b==a.K));h.ra||Ye(a);break}}return f}
|
||||
function Lf(a,b){for(var c=1;c<b.length;c++)Kf(a,b,c);return b.length-1}function Kf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function zf(a,b){if(void 0!==b)Wc(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(!Jf(a,a.b,c,!0))break;b=0}}}
|
||||
function Wc(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=$e(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Jf(a,d,h,!0),e=!0);if(p=h.zb){for(var f=!1,u=0;u<p.length;u++)if(!Mf(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||Kf(a,d,g,"hit");break}}}a.Da--;return f}
|
||||
function mg(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);af(e.Ia,d);f+="="+K(e,e.Ma(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<jf.length;d++)(e=jf[d]||"")&&(e+="="+K(a,a.tb(d),d>=of?1:d==lf?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 Ce(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 og(a,b,c){var d=[],e=$e(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?pg(a,b,e,d):c&&(e=~e,pg(a,b,e-1,d),pg(a,b,e,d));break}}return d}
|
||||
function qg(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),bd(a)):a.u("no data")}function pg(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 rg(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=ef(a,d,a.ja);if(!e)return a.u("begin assemble at "+K(a,f.B,18)),a.U=!0,J(a.H),!0;var g=e.match(/^(['"]?)(.*\.mac|.*\.html|.*\.txt)\1$/i);if(g){f=ef(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new sg(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);qg(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||dd(a)});return!1}b.shift();b.shift();b.shift();b=If(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Af(a,f)));return!0}function tg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.u("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.I[c[1]],!0;b=Se(a,c[3]);return void 0!==b?(a.I[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
|
||||
function ug(a,b,c){var d=null;b=ef(a,b);var e=og(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 xf(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=Se(a,b);if(void 0===g)return;b=a.sb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case kf:G(h,
|
||||
g);af(a.M,h.i);break;case nf:qd(h,g);break;case of:f=131072;break;case pf:f=65536;break;case qf:f=32768;break;case rf:f=32;break;case sf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(mg(a,e));c&&(af(a.M,0<=d.P?d.P:d.i),yf(a,K(a,a.M.B,18)))}}function vg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Te(a,null,c[2].charCodeAt(0)):Se(a,b,!1)}
|
||||
function wg(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=Pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Fa=b;Ua(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
|
||||
function yf(a,b,c,d){b=ef(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Pe(a,c.substr(1)),null!=c&&(d=c);else{d=ef(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=og(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(Af(a,b,g,f));e-=b.B-k;c++}}
|
||||
function Mf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(wf+b):(a.U&&(a.u("ended assemble at "+K(a,a.ja.B,18)),a.U=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.X=null;if(Lb(a)&&0<b.length){a.U&&(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=
|
||||
rg(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 eb;eb=0+Lf(a,a.b);eb+=Lf(a,a.N);(eb+=Lf(a,a.K))||a.u("no breakpoints")}else if("n"==P){var zb=+D||0;D&&(a.qa=zb);a.u("break after "+zb+" instruction(s)")}else if(void 0===
|
||||
D)a.u("missing breakpoint address");else{var I="*"==D?Z():ef(a,D,a.M);"c"==P?null==I.B?(Xe(a),a.u("all breakpoints cleared")):Jf(a,a.b,I)||Jf(a,a.N,I)||Jf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(gf(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 fb,gb=g[0],na=g[1],Da=g[2],Dh=g[3];if("?"==na){var hb="";for(fb in ac)a.xa[fb]&&(hb&&(hb+=","),hb+=fb);hb+=",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");hb.length&&a.u("dump extension commands:\n\t"+hb)}else if("state"==na){var Kd=xg(a.H,!0);"console"==Da?console.log(Kd):(a.za&&(a.za.value=""),Kd&&a.u(Kd))}else if("symbols"==na)for(var Ld=0;Ld<a.F.length;Ld++){var Md=a.F[Ld],ib;for(ib in Md.Y)if("."!=ib.charAt(0)){var Nf=Md.Y[ib].o;if(void 0!==Nf){var Of=
|
||||
Md.Y[ib].l;Of&&(ib=Of);a.u(K(a,Nf,18)+" "+ib)}}}else{if("d"==gb){for(fb in ac)if(g[1]==fb){var Pf=a.xa[fb];Pf?(g.shift(),g.shift(),Pf(g)):a.u("no dump registered for "+na);break a}na||(gb=a.Oa||"dw")}else a.Oa=gb;if("dh"==gb){var Qf=na,Rf=Da,Sf="",Tf=0,ja=a.V,oa=a.i;if(oa.length){var ea=+Qf||a.Ea,Bb=+Rf||10;isNaN(ea)?ea=Bb:Sf="more ";ea>oa.length&&(a.u("note: only "+oa.length+" available"),ea=oa.length);ja-=ea;0>ja&&(null==oa[oa.length-1].B?(ea=ja+ea,ja=0):ja+=oa.length);var Nd=[];"call"==Rf&&(Bb=
|
||||
1E5,Nd=["CALL"]);for(void 0!==Qf&&a.u(ea+" instructions earlier:");0<Bb&&ja!=a.V;){var Uf=oa[ja++];if(null==Uf.B)break;var Cb=Z(Uf.B),Eh=ea--,Vf=Af(a,Cb,"history",Eh);(!Nd.length||0<=Vf.indexOf(Nd[0]))&&a.u(Vf);Cb.qb&&(ja+=Cb.qb,Bb-=Cb.qb,ea-=Cb.qb);ja>=oa.length&&(ja=0);a.Ea=ea;Tf++;Bb--}}Tf||(a.u("no "+Sf+"history available"),a.Ea=void 0)}else{var Ma=0,Wf="ds"==gb,Db=ef(a,na,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Dh,Ma=Pe(a,Da)):Ma=ef(a,Da).B-Db.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Fh=
|
||||
a.T;Db.T&&(a.T=Db.T);for(var Xf="db"==gb?1:2,Od=Ma||32,Pd=1==Xf?1:4,Gh=(Od+Pd-1)/Pd|0||1,Na="";Gh--&&0<Od;){for(var pa="",Qd="",na=K(a,Db.B,18),Yf=Pd;0<Yf--&&0<Od--;){var Rd=a.Ma(Db,1);Wf?(pa&&(pa+=","),pa+=Rd):(pa+=hf(a,Rd),pa+=" ");for(var Hc=29,Hh=0;1==Xf&&0<=Hc;Hh++)var Eb=Rd/Math.pow(2,Hc)%Math.pow(2,7),pa=pa+(K(a,Eb,7)+" "),Eb=Eb+0,Qd=Qd+(32>Eb?".":String.fromCharCode(Eb)),Hc=Hc-7}Na&&(Na+="\n");Na=Wf?Na+(pa+","):Na+(na+": "+pa+(0>Yf?" "+Qd:""))}Na&&a.u(Na);a.T=Fh}}}break;case "e":if("else"==
|
||||
g[0])break;var Zf,$f,ag=g[0],Sd=g[1];"e"==ag||"ew"==ag?(Zf=a.Ma,$f=a.yb):Sd=null;if(null==Sd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Td=ef(a,Sd,a.pa),Ud=2;Ud<g.length;Ud++){var Fb=Se(a,g[Ud]);if(void 0===Fb)break;Fb=ff(Fb);a.u("changing "+K(a,Td.B,18)+" from "+hf(a,Zf.call(a,Td))+" to "+hf(a,Fb));$f.call(a,Td,Fb,1)}break;case "g":var bg=g[1],Ih=b;if(void 0!==bg){var cg=ef(a,bg);gf(a,cg,Ih);a.Ra(a.b,cg,!0)}uf(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 Vd;var Gb=b.substr(2),Gb=Ca(Gb);Se(a,Gb)?(c||a.u("true: "+Gb),Vd=!0):(c||a.u("false: "+Gb),Vd=!1);Vd||(d=!1);break}f=!0;break;case "k":var Jh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Wd=0,Xd=Z(),Hb=Z();for(a.u("stack trace for "+K(a,Hb.B,18));10>Wd;){for(var Oa=null,Kh=256;65536>Hb.B>>>0;){Xd.B=a.Ma(Hb,2);if(null==Hb.B||!Kh--)break;if(!(Xd.B&
|
||||
1)){for(var Lh=a,Ic=Xd,dg=null,Ib=Ic.B,eg=Ib,Yd=1;6>=Yd&&Ib;Yd++){if(2<Yd){Ic.B=Ib;var Jc=Af(Lh,Ic);if(0<=Jc.indexOf("JSR")){var fg=Jc.indexOf(" ");if(Ib+(Jc.indexOf(" ",fg+1)-fg-1)/2==eg){dg=Jc;break}}}Ib-=2}Ic.B=eg;if(Oa=dg)break}}if(!Oa||null==Oa)break;var gg=null;if("ks"==Jh){var hg=Oa.match(/[0-9A-F]+$/);hg&&(gg=ug(a,hg[0]))}Oa=Ba(Oa,50)+" ;"+(gg||"stack="+K(a,Hb.B,18));a.u(Oa);Wd++}Wd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){ug(a,g[1],!0);break}f=!0;break;case "m":a:{var qa,
|
||||
ra=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)ra=!0,M=null;else if("off"==M)ra=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(qa in ac)if(M==qa){Ea=ac[qa];ra=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,ra=!0;else if("off"==g[2]&&(a.ca&=~Ea,ra=!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 Mh=0,Jb="";for(qa in ac)if(!M||
|
||||
M==qa){var Nh=!!(a.ca&ac[qa]);if(null===ra||ra==Nh)Jb&&(Jb+=","),++Mh%10||(Jb+="\n\t"),"key"==qa&&(qa="keys"),Jb+=qa}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ra?ra?"messages on: ":"messages off: ":"message categories:\n\t")+(Jb||"none"));Ye(a)}break;case "p":if("print"==g[0]){vg(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),uf(a)||(a.H&&id(a.H),a.P=0)):wg(a,kg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}xf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var jb=+g[2];if(2==jb||8==jb||10==jb||16==jb)a.T=jb;else{a.u("invalid base: "+jb);break}}a.u("default base: "+a.T);break;case "cs":var Kb;void 0!==g[3]&&(Kb=+g[3]);switch(g[2]){case "int":a.v.oa=Kb;break;case "start":a.v.Ha=Kb;break;case "stop":a.v.qa=Kb;
|
||||
d.ia.value="";dd(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=sc(d,a?1:0,null),Ob(d,!1));return b}),!0}return!1};function cd(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=af(a);-1!==d&&(c=yc(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=af(a);-1!==d&&(xc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),J(this.H,-1))};
|
||||
function ff(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=Te(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=Te(a,b)}null!=f&&(f=gf(f,a.Ga),bf(c,f,d,e));return c}function hf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Je(a,b.hb=c[2]))}
|
||||
function gf(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function jf(a,b){return K(a,b/Tb,18)+" "+K(a,b%Tb,18)}
|
||||
function $e(a,b){a.D=a;a.ca=a.Eb=536870916;a.ba=null;a.S=[];b=Je(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in ac){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|=ac[c],a.u(c+" messages enabled"))}}function ef(a,b){for(var c in ac)if(16==ac[c]){a.xa[c]=b;break}}m.sb=function(a){return kf.indexOf(a.toUpperCase())};
|
||||
m.tb=function(a){var b,c=this.v;switch(a){case lf:b=c.i;break;case mf:b=c.I;break;case nf:b=c.b;break;case of:b=c.j&x;break;case pf:b=c.j&131072?1:0;break;case qf:b=c.j&65536?1:0;break;case rf:b=c.j&32768?1:0;break;case sf:b=c.j&32?1:0;break;case tf: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,ld(a),a.ka=0,a.H&&J(a.H,void 0))}};
|
||||
function Ze(a){var b;if(!sd(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(uf);for(b=0;b<a.i.length;b++)a.i[b]=Z();a.X=0;a.u("instruction history buffer allocated")}}function vf(a,b,c){if(!wf(a,c))return!1;rc(a.v,b);return!0}
|
||||
function sc(a,b,c,d){if(!wf(a))return!1;var e="";null===c&&(e=(c=!a.Fa||"tr"==a.Fa)?"tr":"t");a.C=0;b||sd(a)&&td(a,a.v.i,0);try{b=jd(a.v,b);var f=a.v.$a(b);0<f&&(tc(a.v,f),a.C+=f,uc(a.v,f,!0),vc(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));bd(a,c||!1,e);return 0<a.C}m.W=function(a){this.v&&this.v.W(a)};function bd(a,b,c){b=void 0===b?!0:b;a.Ja&&(c&&a.u(xf+c),bf(a.M,a.v.i),b&&1!=a.P?yf(a):zf(a))}
|
||||
function wf(a,b){var c;(c=!a.v||!Lb(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):!Ab(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){Ze(this);this.oa=0;this.ba=null;this.C=0;bf(this.M,this.v.i);this.A.O=!1;Af(this);a||bd(this)};
|
||||
m.save=function(){var a=new F(this);a.set(0,cf(this.M));a.set(1,cf(this.pa));a.set(2,cf(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=df(this,a[b++]),this.pa=df(this,a[b++]),this.ja=df(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+=" (";sd(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)}bd(this,!0);cd(this);Af(this,this.v.i);this.ba=null}};function sd(a){return 1<a.b.length||!!a.qa}
|
||||
function td(a,b,c){var d=-1;c||(d=a.v.f(b),2756==d>>23&&a.v.Ea==b&&(b=rd(a.v,1)));if(0<c&&(a.qa&&!--a.qa||Wc(a,b,1,a.b)))return!0;0<=c&&a.i.length&&(a.oa++,0>d&&(d=a.v.f(b)),0<=d&&(bf(a.i[a.X],b),++a.X==a.i.length&&(a.X=0)));return!1}
|
||||
function Bf(a,b,c,d){var e=Z(b.B),f=a.Ma(b,1),g,h,k,l=0,p=f/Xb|0,u;for(u in Cf)if(g=Cf[u][p&u]){h=+u;p>>=6;switch(h){case 32512:k=Df;l=p&3;break;case 32256:k=Ef;l=p&7;break;case 29248:k=Ff,l=(p&48)>>2|(p&6)>>1}break}k=k&&k[l]||"";"S"==k&&g>Gf&&(k="B");k=Hf[g||0]+k;if(g){if(28700==h)h=f/Yb&127,l=K(a,h,-1);else for(h=f>>23&15,l=K(a,h,-1),p=0;l&&p<If.length;p++)if(g==If[p][0]&&(u=If[p][h])){k=Hf[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)+jf(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+=" "+jf(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="+ed(a.v).toString()+" cs="+n(a.v.Ga)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Jf(a,b,c,d,e){var f=-1,g,h;a.ka=null;if(b){for(var k=b.toUpperCase(),l=0;l<If.length;l++)for(var p in If[l])if(+p&&(h=If[l][p],k==Hf[h])){k=Hf[If[l][0]];c&&(c=K(a,+p)+","+c);break}for(var u in Cf){g=+u;p=Cf[u];switch(g){case 32512:l=Df;break;case 32256:l=Ef;break;case 29248:l=Ff;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>Gf&&(P="B");if(k==Hf[h]+P){f=29248!=g?H:(H&3)<<1|(H&12)<<2;f=(D|f<<6)*Xb;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=Te(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=Te(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*Yb}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 Ye(a){var b,c;a.b=["bp"];if(a.N)for(b=1;b<a.N.length;b++){c=a.N[b];c=af(c);var d=a.G;Vc(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=af(c),d=a.G,Vc(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||Kf(this,a,b,!1,!0);if(a!=this.b){var e=af(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:(Lf(this,a,a.length-1,"set"),Ze(this)));return d};function Kf(a,b,c,d,e){var f=!1;c=af(c);for(var g=1;g<b.length;g++){var h=b[g];if(c==af(h)&&(!d||h.ra)){f=!0;h.ra||e||Lf(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(d=a.G,Vc(d.b[c>>>d.i],b==a.K));h.ra||Ze(a);break}}return f}
|
||||
function lg(a,b){for(var c=1;c<b.length;c++)Lf(a,b,c);return b.length-1}function Lf(a,b,c,d){c=b[c];a.u(b[0]+" "+K(a,c.B,18)+(d?" "+d:c.hb?' "'+c.hb+'"':""))}function Af(a,b){if(void 0!==b)Wc(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(!Kf(a,a.b,c,!0))break;b=0}}}
|
||||
function Wc(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=af(h)&(d==a.b?65535:-1),l=0;l<c;l++)if(b+l==k){var p,f=!0;h.ra&&(Kf(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||Lf(a,d,g,"hit");break}}}a.Da--;return f}
|
||||
function og(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);bf(e.Ia,d);f+="="+K(e,e.Ma(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<kf.length;d++)(e=kf[d]||"")&&(e+="="+K(a,a.tb(d),d>=pf?1:d==mf?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 Ce(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 pg(a,b,c){var d=[],e=af(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?qg(a,b,e,d):c&&(e=~e,qg(a,b,e-1,d),qg(a,b,e,d));break}}return d}
|
||||
function rg(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),bd(a)):a.u("no data")}function qg(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 sg(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=ff(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=ff(a,d);if(a.Ca)a.u("assembly already in progress");else var h=g[2],k=f.B,l=a.Ca=new tg(h,k,c,a,function(b,c){if(!b)try{var d=l.G;null==d&&(d=k);rg(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||dd(a)});return!1}b.shift();b.shift();b.shift();b=Jf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Bf(a,f)));return!0}function ug(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return We(a)||a.u("no variables"),!0;if(!c[2])return We(a,c[1]);if(!c[3])return delete a.I[c[1]],!0;b=Te(a,c[3]);return void 0!==b?(a.I[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
|
||||
function vg(a,b,c){var d=null;b=ff(a,b);var e=pg(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 yf(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=Te(a,b);if(void 0===g)return;b=a.sb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case lf:G(h,
|
||||
g);bf(a.M,h.i);break;case of:qd(h,g);break;case pf:f=131072;break;case qf:f=65536;break;case rf:f=32768;break;case sf:f=32;break;case tf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);J(a.H);a.u("updated registers:")}}a.u(og(a,e));c&&(bf(a.M,0<=d.P?d.P:d.i),zf(a,K(a,a.M.B,18)))}}function wg(a,b){b=Ca(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):Ue(a,null,c[2].charCodeAt(0)):Te(a,b,!1)}
|
||||
function xg(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=Pe(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Fa=b;Ua(c,function(){return Ob(a,!0)&&sc(a,e,d,!1)},function(){a.na&&a.na.stop();J(a.H,-1);Ob(a,!1)})}}
|
||||
function zf(a,b,c,d){b=ff(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Pe(a,c.substr(1)),null!=c&&(d=c);else{d=ff(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=pg(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(Bf(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(xf+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(Lb(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=
|
||||
sg(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 eb;eb=0+lg(a,a.b);eb+=lg(a,a.N);(eb+=lg(a,a.K))||a.u("no breakpoints")}else if("n"==P){var zb=+D||0;D&&(a.qa=zb);a.u("break after "+zb+" instruction(s)")}else if(void 0===
|
||||
D)a.u("missing breakpoint address");else{var I="*"==D?Z():ff(a,D,a.M);"c"==P?null==I.B?(Ye(a),a.u("all breakpoints cleared")):Kf(a,a.b,I)||Kf(a,a.N,I)||Kf(a,a.K,I)||a.u("breakpoint missing: "+K(a,I.B,18)):null!=I.B&&(hf(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 fb,gb=g[0],na=g[1],Da=g[2],Eh=g[3];if("?"==na){var hb="";for(fb in ac)a.xa[fb]&&(hb&&(hb+=","),hb+=fb);hb+=",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");hb.length&&a.u("dump extension commands:\n\t"+hb)}else if("state"==na){var Kd=yg(a.H,!0);"console"==Da?console.log(Kd):(a.za&&(a.za.value=""),Kd&&a.u(Kd))}else if("symbols"==na)for(var Ld=0;Ld<a.F.length;Ld++){var Md=a.F[Ld],ib;for(ib in Md.Y)if("."!=ib.charAt(0)){var Mf=Md.Y[ib].o;if(void 0!==Mf){var Nf=
|
||||
Md.Y[ib].l;Nf&&(ib=Nf);a.u(K(a,Mf,18)+" "+ib)}}}else{if("d"==gb){for(fb in ac)if(g[1]==fb){var Of=a.xa[fb];Of?(g.shift(),g.shift(),Of(g)):a.u("no dump registered for "+na);break a}na||(gb=a.Oa||"dw")}else a.Oa=gb;if("dh"==gb){var Pf=na,Qf=Da,Rf="",Sf=0,ja=a.X,oa=a.i;if(oa.length){var ea=+Pf||a.Ea,Bb=+Qf||10;isNaN(ea)?ea=Bb:Rf="more ";ea>oa.length&&(a.u("note: only "+oa.length+" available"),ea=oa.length);ja-=ea;0>ja&&(null==oa[oa.length-1].B?(ea=ja+ea,ja=0):ja+=oa.length);var Nd=[];"call"==Qf&&(Bb=
|
||||
1E5,Nd=["CALL"]);for(void 0!==Pf&&a.u(ea+" instructions earlier:");0<Bb&&ja!=a.X;){var Tf=oa[ja++];if(null==Tf.B)break;var Cb=Z(Tf.B),Fh=ea--,Uf=Bf(a,Cb,"history",Fh);(!Nd.length||0<=Uf.indexOf(Nd[0]))&&a.u(Uf);Cb.qb&&(ja+=Cb.qb,Bb-=Cb.qb,ea-=Cb.qb);ja>=oa.length&&(ja=0);a.Ea=ea;Sf++;Bb--}}Sf||(a.u("no "+Rf+"history available"),a.Ea=void 0)}else{var Ma=0,Vf="ds"==gb,Db=ff(a,na,a.pa);Da&&("l"==Da.charAt(0)?(Da=Da.substr(1)||Eh,Ma=Pe(a,Da)):Ma=ff(a,Da).B-Db.B,0>Ma&&(Ma=0),65536<Ma&&(Ma=65536));var Gh=
|
||||
a.T;Db.T&&(a.T=Db.T);for(var Wf="db"==gb?1:2,Od=Ma||32,Pd=1==Wf?1:4,Hh=(Od+Pd-1)/Pd|0||1,Na="";Hh--&&0<Od;){for(var pa="",Qd="",na=K(a,Db.B,18),Xf=Pd;0<Xf--&&0<Od--;){var Rd=a.Ma(Db,1);Vf?(pa&&(pa+=","),pa+=Rd):(pa+=jf(a,Rd),pa+=" ");for(var Hc=29,Ih=0;1==Wf&&0<=Hc;Ih++)var Eb=Rd/Math.pow(2,Hc)%Math.pow(2,7),pa=pa+(K(a,Eb,7)+" "),Eb=Eb+0,Qd=Qd+(32>Eb?".":String.fromCharCode(Eb)),Hc=Hc-7}Na&&(Na+="\n");Na=Vf?Na+(pa+","):Na+(na+": "+pa+(0>Xf?" "+Qd:""))}Na&&a.u(Na);a.T=Gh}}}break;case "e":if("else"==
|
||||
g[0])break;var Yf,Zf,$f=g[0],Sd=g[1];"e"==$f||"ew"==$f?(Yf=a.Ma,Zf=a.yb):Sd=null;if(null==Sd)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var Td=ff(a,Sd,a.pa),Ud=2;Ud<g.length;Ud++){var Fb=Te(a,g[Ud]);if(void 0===Fb)break;Fb=gf(Fb);a.u("changing "+K(a,Td.B,18)+" from "+jf(a,Yf.call(a,Td))+" to "+jf(a,Fb));Zf.call(a,Td,Fb,1)}break;case "g":var ag=g[1],Jh=b;if(void 0!==ag){var bg=ff(a,ag);hf(a,bg,Jh);a.Ra(a.b,bg,!0)}vf(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 Vd;var Gb=b.substr(2),Gb=Ca(Gb);Te(a,Gb)?(c||a.u("true: "+Gb),Vd=!0):(c||a.u("false: "+Gb),Vd=!1);Vd||(d=!1);break}f=!0;break;case "k":var Kh=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");else{var Wd=0,Xd=Z(),Hb=Z();for(a.u("stack trace for "+K(a,Hb.B,18));10>Wd;){for(var Oa=null,Lh=256;65536>Hb.B>>>0;){Xd.B=a.Ma(Hb,2);if(null==Hb.B||!Lh--)break;if(!(Xd.B&
|
||||
1)){for(var Mh=a,Ic=Xd,cg=null,Ib=Ic.B,dg=Ib,Yd=1;6>=Yd&&Ib;Yd++){if(2<Yd){Ic.B=Ib;var Jc=Bf(Mh,Ic);if(0<=Jc.indexOf("JSR")){var eg=Jc.indexOf(" ");if(Ib+(Jc.indexOf(" ",eg+1)-eg-1)/2==dg){cg=Jc;break}}}Ib-=2}Ic.B=dg;if(Oa=cg)break}}if(!Oa||null==Oa)break;var fg=null;if("ks"==Kh){var gg=Oa.match(/[0-9A-F]+$/);gg&&(fg=vg(a,gg[0]))}Oa=Ba(Oa,50)+" ;"+(fg||"stack="+K(a,Hb.B,18));a.u(Oa);Wd++}Wd||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){vg(a,g[1],!0);break}f=!0;break;case "m":a:{var qa,
|
||||
ra=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)ra=!0,M=null;else if("off"==M)ra=!1,M=null;else{"keys"==M&&(M="key");"kbd"==M&&(M="keyboard");for(qa in ac)if(M==qa){Ea=ac[qa];ra=!!(a.ca&Ea);break}if(!Ea){a.u("unknown message category: "+M);break a}}if(Ea)if("on"==g[2])a.ca|=Ea,ra=!0;else if("off"==g[2]&&(a.ca&=~Ea,ra=!1,1073741824==Ea)){for(var hg=1E3<=a.S.length?a.S.length-1E3:0;hg<a.S.length;)a.u(a.S[hg++]);a.S=[]}}var Nh=0,Jb="";for(qa in ac)if(!M||
|
||||
M==qa){var Oh=!!(a.ca&ac[qa]);if(null===ra||ra==Oh)Jb&&(Jb+=","),++Nh%10||(Jb+="\n\t"),"key"==qa&&(qa="keys"),Jb+=qa}void 0===M&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==ra?ra?"messages on: ":"messages off: ":"message categories:\n\t")+(Jb||"none"));Ze(a)}break;case "p":if("print"==g[0]){wg(a,b.substr(5));break}var ig=g[0],jg="p"==ig?0:"pr"==ig?1:-1;if("?"==g[1]||0>jg)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 kg=Z(a.v.i);a.Ma(kg);a.P?(a.Ra(a.b,kg,!0),vf(a)||(a.H&&id(a.H),a.P=0)):xg(a,jg?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}yf(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var jb=+g[2];if(2==jb||8==jb||10==jb||16==jb)a.T=jb;else{a.u("invalid base: "+jb);break}}a.u("default base: "+a.T);break;case "cs":var Kb;void 0!==g[3]&&(Kb=+g[3]);switch(g[2]){case "int":a.v.oa=Kb;break;case "start":a.v.Ha=Kb;break;case "stop":a.v.qa=Kb;
|
||||
break;default:a.u("unknown cs option");break a}void 0!==Kb&&ad(a.v);a.u("checksums "+(a.v.A.Va?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(fd(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 #"),
|
||||
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":wg(a,g[0],g[1]);break;case "u":yf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){tg(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.Db+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){vg(a,b.substr(1));break}var Zd="commands:",$d;for($d in yg)Zd+="\n"+Ba($d,9)+yg[$d];sd(a)||(Zd+="\nnote: history disabled if no exec breakpoints");
|
||||
a.u(Zd);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 dd(a,b,c){null!=b&&(a.Ha=Je(a,b,c));for(;b=a.Ha.shift();)if(!Mf(a,b))return!1;return!0}
|
||||
var yg={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},Ff=20,Gf=".WORD HLL HLLZ HLLO HLLE HRL HRLZ HRLO HRLE HRR HRRZ HRRO HRRE HLR HLRZ HLRO HLRE MOVE MOVS MOVN MOVM EXCH BLT PUSH POP LDB DPB IBP ILDB IDPB SETZ SETO SETA SETCA SETM SETCM AND ANDCA ANDCM ANDCB IOR ORCA ORCM ORCB XOR EQV LSH LSHC ROT ROTC ADD SUB MUL IMUL DIV IDIV ASH ASHC FSC FADR FSBR FMPR FDVR DFN UFA FAD FSB FMP FDV AOBJP AOBJN CAI 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(" "),
|
||||
kf=0,lf=1,mf=2,nf=3,of=4,pf=5,qf=6,rf=7,sf=8,jf="PC RA EA PS OV C0 C1 ND PD".split(" "),zg={},Bf=(zg[28672]={0:101},zg[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},zg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Ff,9216:53,
|
||||
9472:52,9728:55,9984:54,11776:50,12032:51,16384:30,16640:36,16896:37,17152:34,17408:38,17664:32,17920:44,18176:40,18432:39,18688:45,18944:33,19200:41,19456:35,19712:42,19968:43,20224:31,20480:1,20736:5,20992:2,21248:6,21504:3,21760:7,22016:4,22272:8,22528:9,22784:13,23040:10,23296:14,23552:11,23808:15,24064:12,24320:16},zg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},zg[29248]={24576:79,24640:80,25088:81,25152:82},zg[28700]={28672:93,28676:94,28680:95,28684:96,
|
||||
28688:97,28692:98,28696:99,28700:100},zg),Cf=["","I","M","S"],Df=" L E LE A GE N G".split(" "),Ef="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Hf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],tf=1E3,wf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new We(d);sb(d,c)}});
|
||||
function sg(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(";");Ag(this)}
|
||||
function Ag(a){if(a.S==a.P.length)a.done(Bg(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))&&Cg(a,"unrecognized HTML entity: "+c[0])}a.H=a.H.concat(e.split(/(\r?\n)/));
|
||||
setTimeout(function(){Ag(a)},0)}})}}
|
||||
function Bg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=Ue(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Dg(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){Eg(a,c.Aa.name,f,Fg);c.Aa=null;break}}c.Aa&&(Eg(a,c.Aa.name,a.Z,Fg),c.Aa.R.forEach(function(b){return function(c,d){Gg(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?Hg(a,k.ma):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Ig(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Jg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.I=b;return a.U}
|
||||
function Dg(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=Kg(a,b)),a.i))return!0;null!=a.D&&(b=Lg(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==Mg||f==Ng)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,eb="",zb="";H&&(eb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(zb=b[P]).match(/[0-9A-Z$%.]/i)||("'"==eb&&H--,"'"==zb&&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),Eg(a,d,a.Z,Fg));var I;f&&(I=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=I[1],b=I[2],"=="==f?e|=Og:"=:"==f&&(e|=Pg),Eg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.K=f;for((I=Qg(a,b))&&(b=b.replace(I,Rg(a,Sg,Qg(a,h))));I=Tg(a,b);)b=b.replace(I,I.slice(0,-1));
|
||||
if(!Ug(a,f,b))switch(f){case Vg:case Wg:case Xg:Lg(a,h);break;case Yg:(f=b)?(a.G=Ig(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.la;break;case Zg:$g(a,b);break;case ah:a.Z=Ig(a,b)||0;break;case bh:$g(a,b.replace(",",",,"));break;case ch:case dh:case eh:case fh:case gh:case Mg:case Ng:case hh:case ih:Rg(a,f,h);break;case jh:case kh:case lh:case mh:case nh:case oh:case ph:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=If(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=Ig(a,h,
|
||||
!0)),void 0!==I?Gg(a,I,a.b.ka):a.error("unrecognized expression: "+h)}return!0}
|
||||
function Ug(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c){if(d.Sa==qh){var e=a.Z;Hg(a,d.ma);if(e<a.Z){rh(a);Hg(a,c);var d=a.R[0],f=a.fa[0];sh(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=th(a,c,!0);Hg(a,d.ma,d.Ua,d.Qa,d.Ab);a.v=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case dh:d.Sa||Hg(a,d.ma);break;case eh:0<d.Sa&&Hg(a,d.ma);break;case fh:0>d.Sa&&Hg(a,d.ma);break;case gh:d.Sa&&
|
||||
Hg(a,d.ma);break;case Mg:case Ng:for(b=0;b<d.Qa.length;b++)Hg(a,d.ma,d.Ua,[d.Qa[b]],[]);break;case ih:for(;0<d.Sa--;)Hg(a,d.ma);break;default:c=d.ma,rh(a,b),Hg(a,c),sh(a)}return!0}function Hg(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Dg(a,b[f]+"\r\n",c,d,e);f++);}function rh(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 sh(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")}sg.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Cg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
|
||||
function uh(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 Ig(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Ig(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Ig(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=Se(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 Qg(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 Tg(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:vh,Ua:e,Ab:f,Qa:g,ma:b+": 0",da:a.da};a.L.push(d)}}return c}
|
||||
function th(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=uh(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
|
||||
function Lg(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==Wg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Xg&&(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&&(Gg(a,d),b=0)}b&&Gg(a,d)}return c}
|
||||
function Rg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==ch){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=th(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=wh;c=3}else if(b==hh){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=qh;c=2}else if(b==Sg)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=xh,c=0;else if(b==Mg||b==Ng){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==Ng?k=a.v.Qa[d].split(""):k=th(a,a.v.Qa[d]);b=k.length;
|
||||
c=2}else{d=uh(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=Ig(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,Kg(a,e[c+1]));return f}function Kg(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,Ug(a,d));return c}
|
||||
function Eg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Fg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Ig(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 $g(a,b){var c=Ig(a,b,!0);void 0!==c?Gg(a,c,a.b.ka):a.error("unrecognized expression: "+b)}function Gg(a,b,c){a.R[a.Z]=Jg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
|
||||
function Jg(a,b,c){c=void 0===c?a.Z:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Cg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}sg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
|
||||
var Fg=1,Og=2,Pg=4,Vg="ASCII",Wg="ASCIZ",ch="DEFINE",Yg="END",Zg="EXP",dh="IFE",eh="IFG",fh="IFL",gh="IFN",Mg="IRP",Ng="IRPC",jh="LALL",Sg="LITERAL",kh="LIST",ah="LOC",lh="NOSYM",hh="OPDEF",mh="PAGE",ih="REPEAT",Xg="SIXBIT",nh="SUBTTL",oh="TITLE",bh="XWD",ph="XLIST",wh=-1,qh=-2,xh=-3,vh=-4;
|
||||
function yh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;zh(this,b);this.N=Zc(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=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Ah(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new zc({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=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Zc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Bh),this.b&&(this.I=new F(this,"1.34.3"),Ch(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Oh(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&&Ph(this,this.Xa)}else q("Unable to find CPU component")}ka(yh,r);function zh(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 Zc(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 Ph(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){Ph(a,b,c)});return}}b.call(a,c)}
|
||||
function Qh(a,b){var c=new F(a,"1.34.3",Rh);if(Ch(c)&&Sh(c)){var d=c.get(Th),e=b?b.get(Th):"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=yh.prototype;
|
||||
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Uh:Bh));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==Vh)b=!0;else if(a>Bh){if(Ch(d,this.L)){this.C=new F(this,"1.34.3",Wh);Ch(this.C)&&(Xh(this,d),a=Yh,Zh(this.C));this.C.set(Th,Ga());$h(this.C);var e=this.b&&!this.K;if(a==Uh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Sh(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ch(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(ai,""),this.i=null)):this.u(f+": "+g),Zh(d),Ch(d)?(c=Sh(d),e=!0):c=!1))}e&&Qh(this,c?d:null)}else a==Yh&&d.clear()}else Qh(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=bi(this,g,d,b,c));b=[d,a,c];a!=Vh?Ph(this,this.Hb,b):this.Hb(b)}};
|
||||
function bi(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=Bh,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Cb){var g=b.Cb.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&&(bi(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&(Xh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function Xh(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 xg(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",Rh),h=Ga();g.set(Th,h);f.set(Th,h);f.set(ci,"1.34.3");f.set(di,window?window.location.href:null);f.set(ei,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&&fi(a,a.i,f.toString()),$h(g)&&$h(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==gi),d&&f.clear(h)):e=f.toString());c&&(a.A.aa=!1,b=a.J.power)&&(b.textContent="Power");a.w=0;return e}
|
||||
a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":xg(a,g[0],g[1]);break;case "u":zf(a,g[1],g[2],8);break;case "v":if("var"==g[0]){ug(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Rb||"PDP10")+" version 1.34.3 ("+a.v.Db+",RELEASE)");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){wg(a,b.substr(1));break}var Zd="commands:",$d;for($d in zg)Zd+="\n"+Ba($d,9)+zg[$d];sd(a)||(Zd+="\nnote: history disabled if no exec breakpoints");
|
||||
a.u(Zd);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(mg){a.u("Debugger "+(mg.stack||mg.message)),d=!1}return d}function dd(a,b,c){null!=b&&(a.Ha=Je(a,b,c));for(;b=a.Ha.shift();)if(!ng(a,b))return!1;return!0}
|
||||
var zg={"?":"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"},Gf=20,Hf=".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(" "),
|
||||
lf=0,mf=1,nf=2,of=3,pf=4,qf=5,rf=6,sf=7,tf=8,kf="PC RA EA PS OV C0 C1 ND PD".split(" "),Ag={},Cf=(Ag[28672]={0:101},Ag[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},Ag[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Gf,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},Ag[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Ag[29248]={24576:79,24640:80,25088:81,25152:82},Ag[28700]={28672:93,28676:94,28680:95,28684:96,
|
||||
28688:97,28692:98,28696:99,28700:100},Ag),Df=["","I","M","S"],Ef=" L E LE A GE N G".split(" "),Ff="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),If=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],uf=1E3,xf=">> ";Xa(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=t(c),d=new Xe(d);sb(d,c)}});
|
||||
function tg(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(";");Bg(this)}
|
||||
function Bg(a){if(a.S==a.P.length)a.done(Cg(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))&&Dg(a,"unrecognized HTML entity: "+c[0])}a.H=a.H.concat(e.split(/(\r?\n)/));
|
||||
setTimeout(function(){Bg(a)},0)}})}}
|
||||
function Cg(a){if(0<=a.ba.indexOf("p"))return a.u(a.H.join("")),0;var b=Ve(a.b);try{for(var c=0;c<a.H.length;c+=2){a.da++;if(!Eg(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){Fg(a,c.Aa.name,f,Gg);c.Aa=null;break}}c.Aa&&(Fg(a,c.Aa.name,a.Z,Gg),c.Aa.R.forEach(function(b){return function(c,d){Hg(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?Ig(a,k.ma):a.error("missing definition for variable: "+h)}a.fa.forEach(function(b,c){var d=Jg(a,b,void 0,c);void 0===d?a.error("unable to parse expression: "+b):(d+=a.R[c],a.R[c]=Kg(a,d,c))})}catch(l){a.u(l.message),a.U=-1}a.b.I=b;return a.U}
|
||||
function Eg(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=Lg(a,b)),a.i))return!0;null!=a.D&&(b=Mg(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==Ng||f==Og)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,eb="",zb="";H&&(eb=b[H-1]).match(/[0-9A-Z$%.]/i)||!(P>=b.length)&&(zb=b[P]).match(/[0-9A-Z$%.]/i)||("'"==eb&&H--,"'"==zb&&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),Fg(a,d,a.Z,Gg));var I;f&&(I=b.match(/^([=:]+)(.*)/))&&(e=0,d=f,f=I[1],b=I[2],"=="==f?e|=Pg:"=:"==f&&(e|=Qg),Fg(a,d,b,e),f=b="");if(!f&&!b)return!0;a.K=f;for((I=Rg(a,b))&&(b=b.replace(I,Sg(a,Tg,Rg(a,h))));I=Ug(a,b);)b=b.replace(I,I.slice(0,-1));
|
||||
if(!Vg(a,f,b))switch(f){case Wg:case Xg:case Yg:Mg(a,h);break;case Zg:(f=b)?(a.G=Jg(a,f,!0),void 0===a.G&&a.error("unrecognized expression: "+f)):a.G=a.la;break;case $g:ah(a,b);break;case bh:a.Z=Jg(a,b)||0;break;case ch:ah(a,b.replace(",",",,"));break;case dh:case eh:case fh:case gh:case hh:case Ng:case Og:case ih:case jh:Sg(a,f,h);break;case kh:case lh:case mh:case nh:case oh:case ph:case qh:break;default:I=-1,h=(f+c+b).trim(),0>b.indexOf(",,")&&(I=Jf(a.b,f,b,0<=a.wa?a.wa:a.Z,!0)),0>I&&(I=Jg(a,h,
|
||||
!0)),void 0!==I?Hg(a,I,a.b.ka):a.error("unrecognized expression: "+h)}return!0}
|
||||
function Vg(a,b,c){var d=a.j[b];if(!d)return!1;if(null!=c){if(d.Sa==rh){var e=a.Z;Ig(a,d.ma);if(e<a.Z){sh(a);Ig(a,c);var d=a.R[0],f=a.fa[0];th(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=uh(a,c,!0);Ig(a,d.ma,d.Ua,d.Qa,d.Ab);a.v=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case eh:d.Sa||Ig(a,d.ma);break;case fh:0<d.Sa&&Ig(a,d.ma);break;case gh:0>d.Sa&&Ig(a,d.ma);break;case hh:d.Sa&&
|
||||
Ig(a,d.ma);break;case Ng:case Og:for(b=0;b<d.Qa.length;b++)Ig(a,d.ma,d.Ua,[d.Qa[b]],[]);break;case jh:for(;0<d.Sa--;)Ig(a,d.ma);break;default:c=d.ma,sh(a,b),Ig(a,c),th(a)}return!0}function Ig(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Eg(a,b[f]+"\r\n",c,d,e);f++);}function sh(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 th(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")}tg.prototype.error=function(a){throw Error("error"+(this.da?" at line "+va(this.da):"")+": "+a);};function Dg(a,b){a.u("warning"+(a.da?" at line "+va(a.da):"")+": "+b)}
|
||||
function vh(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 Jg(a,b,c,d){var e,f=b.match(/^([^,]*),,([^,]*)$/);f?(b=f[1]?Jg(a,f[1],c,d):0,void 0!==b&&(c=f[2]?Jg(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=Te(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 Rg(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 Ug(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:wh,Ua:e,Ab:f,Qa:g,ma:b+": 0",da:a.da};a.L.push(d)}}return c}
|
||||
function uh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=vh(a,b);if(!c)break;d.push(c);b=b.substr(c.length+1)}return d}
|
||||
function Mg(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==Xg&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.K==Yg&&(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&&(Hg(a,d),b=0)}b&&Hg(a,d)}return c}
|
||||
function Sg(a,b,c){var d,e,f,g,h,k;a.J="<";a.F=">";g=h=k=[];if(b==dh){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=uh(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=xh;c=3}else if(b==ih){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=rh;c=2}else if(b==Tg)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=yh,c=0;else if(b==Ng||b==Og){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==Og?k=a.v.Qa[d].split(""):k=uh(a,a.v.Qa[d]);b=k.length;
|
||||
c=2}else{d=vh(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=Jg(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,Lg(a,e[c+1]));return f}function Lg(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,Vg(a,d));return c}
|
||||
function Fg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&Gg&&a.N[b])a.error("label "+b+" redefined");else{if("string"==typeof c){var e=Jg(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 ah(a,b){var c=Jg(a,b,!0);void 0!==c?Hg(a,c,a.b.ka):a.error("unrecognized expression: "+b)}function Hg(a,b,c){a.R[a.Z]=Kg(a,b);null!=c&&(a.fa[a.Z]=c);a.Z++}
|
||||
function Kg(a,b,c){c=void 0===c?a.Z:c;var d=Y(a.b,b||0,36,!0);(b<-A||b>=C)&&Dg(a,"truncated value "+ua(b)+" at location "+ua(c)+" to "+ua(d));return d}tg.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
|
||||
var Gg=1,Pg=2,Qg=4,Wg="ASCII",Xg="ASCIZ",dh="DEFINE",Zg="END",$g="EXP",eh="IFE",fh="IFG",gh="IFL",hh="IFN",Ng="IRP",Og="IRPC",kh="LALL",Tg="LITERAL",lh="LIST",bh="LOC",mh="NOSYM",ih="OPDEF",nh="PAGE",jh="REPEAT",Yg="SIXBIT",oh="SUBTTL",ph="TITLE",ch="XWD",qh="XLIST",xh=-1,rh=-2,yh=-3,wh=-4;
|
||||
function zh(a,b,c){r.call(this,"Computer",a,33554432);this.A.aa=!1;this.S=null;Ah(this,b);this.N=Zc(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=Zc(this,"url")||"";(Math.random()+.1).toString(36);this.i=Bh(this);if(this.v=rb("CPU",this.id)){this.D=rb("Debugger",this.id);this.G=new zc({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=Zc(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=Zc(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=Ch),this.b&&(this.I=new F(this,"1.34.3"),Dh(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=Ph(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&&Qh(this,this.Xa)}else q("Unable to find CPU component")}ka(zh,r);function Ah(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 Zc(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 Qh(a,b,c){for(var d=pb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Lb(f)){Lb(f,function(){Qh(a,b,c)});return}}b.call(a,c)}
|
||||
function Rh(a,b){var c=new F(a,"1.34.3",Sh);if(Dh(c)&&Th(c)){var d=c.get(Uh),e=b?b.get(Uh):"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=zh.prototype;
|
||||
m.Xa=function(a){void 0===a&&(a=this.b||(this.L?Vh:Ch));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==Wh)b=!0;else if(a>Ch){if(Dh(d,this.L)){this.C=new F(this,"1.34.3",Xh);Dh(this.C)&&(Yh(this,d),a=Zh,$h(this.C));this.C.set(Uh,Ga());ai(this.C);var e=this.b&&!this.K;if(a==Vh||ob("Click OK to restore the previous "+Rb+" machine state, or CANCEL to reset the machine.")){if(c=Th(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Dh(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.ha("Error: "+g),"unable to verify user"==g&&(Qa(bi,""),this.i=null)):this.u(f+": "+g),$h(d),Dh(d)?(c=Th(d),e=!0):c=!1))}e&&Rh(this,c?d:null)}else a==Zh&&d.clear()}else Rh(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=ci(this,g,d,b,c));b=[d,a,c];a!=Wh?Qh(this,this.Hb,b):this.Hb(b)}};
|
||||
function ci(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=Ch,window&&window.location.reload()):a.P=!0,b.Ba(null),e=!1),!d&&b.Cb){var g=b.Cb.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&&(ci(this,this.v,b,c,a),J(this,-2),this.v.ga());this.P&&(Yh(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function Yh(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 yg(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",Sh),h=Ga();g.set(Uh,h);f.set(Uh,h);f.set(di,"1.34.3");f.set(ei,window?window.location.href:null);f.set(fi,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&&gi(a,a.i,f.toString()),ai(g)&&ai(f)||(e=null,d=h=!0)):a.b&&(d=!0,h=a.b==hi),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.jb+=d))&&(e.textContent=c.A.O?c.ba.toFixed(2)+"Mhz":"Stopped",c.jb=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);jc(a,a.i);dc(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?xg(d,!1,!0):Ph(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.");xg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Bh)}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=Ah(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=xg(d,b);b?fi(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Ah(a,b){var c=a.i;c||((c=Pa(ai),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=hi(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
|
||||
function hi(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(ai,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Oh(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+ii(a,"1.34.3"));return b}
|
||||
function fi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ii(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(ai,""),a.i=null)}}
|
||||
function id(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 Wh="failsafe",Rh="validate",Th="timestamp",ci="version",di="url",ei="browser",ai="user",Vh=-1,Bh=0,Uh=1,Yh=2,gi=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 yh(g,d,!0);sb(g,f);g.N&&Ph(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(Vh)}});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&&xg(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=ii(a,b,c);Zh(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 Ch(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 Sh(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 $h(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 Zh(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){Zh(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 ii(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 ji=0;
|
||||
function ki(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)):li(k,a,b,c,d,e,f,g)})}
|
||||
function li(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?mi(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function mi(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);mi(a,b,c)}})}else c(a,null)}
|
||||
function ni(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&&(--ji||ab(!0));l=!1}var h,k,l=!0;ji++;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?ki(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,--ji||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),--ji||
|
||||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?ki(c,b,a,e,!0,f,p):li(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 ni("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return ni("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?yg(d,!1,!0):Qh(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.");yg(d,a,!0);!a&&d.M?window&&window.location.reload():d.Xa(Ch)}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=Bh(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=yg(d,b);b?gi(d,a,c):d.ha("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function Bh(a,b){var c=a.i;c||((c=Pa(bi),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=ii(a,c))||a.ha("The user ID is invalid.")):b&&a.ha("Browser local storage is not available"));return c}
|
||||
function ii(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(bi,b.data),a.i=b.data)}catch(d){q(d.message+" ("+c+")")}return a.i}function Ph(a){var b=null;a.i&&(b=Ja()+"/api/v1/user?req=load&user="+a.i+"&state="+ji(a,"1.34.3"));return b}
|
||||
function gi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ji(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(bi,""),a.i=null)}}
|
||||
function id(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 Xh="failsafe",Sh="validate",Uh="timestamp",di="version",ei="url",fi="browser",bi="user",Wh=-1,Ch=0,Vh=1,Zh=2,hi=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 zh(g,d,!0);sb(g,f);g.N&&Qh(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(Wh)}});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&&yg(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=ji(a,b,c);$h(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 Dh(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 Th(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 ai(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 $h(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){$h(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 ji(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 ki=0;
|
||||
function li(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)):mi(k,a,b,c,d,e,f,g)})}
|
||||
function mi(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?ni(a,g,k):k(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function ni(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);ni(a,b,c)}})}else c(a,null)}
|
||||
function oi(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&&(--ki||ab(!0));l=!1}var h,k,l=!0;ki++;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?li(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,--ki||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),--ki||
|
||||
ab(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?li(c,b,a,e,!0,f,p):mi(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 oi("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){ab(!1);return oi("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
|
||||
|
|
|
|||
Loading…
Reference in a new issue