Merge branch 'master' into gh-pages
This commit is contained in:
commit
0e177eb0fd
3 changed files with 37 additions and 37 deletions
|
|
@ -723,7 +723,7 @@ f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;b
|
|||
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.D;for(a.D=e;c<d;){var G;h=b[c++].trim();k=c<d?b[c++]:"";if(h)G=$x(a,h,null,f,p);else if("{"==k){h=1;for(G=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;G=Zx(a,b,G,c-1,a.D,f);null!=G&&p&&(G=ay(G,p));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.D=2;continue}if("^O"==k){a.D=8;continue}if("^D"==k){a.D=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}}m=!0;break}if(void 0===G)if(f)f.push(h),G=0;else{m=!0;f=[];break}v.push(Xx(G));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{m=!0;break}if(!k)break;p="<"==a.ha[0]?by:cy;if(!p[k]){m=!0;break}u.length&&p[k]<=p[u[u.length-1]]&&Yx(v,u,1);u.push(k);a.D="^_"==k?10:e;p=0}if(m||!Yx(v,u)||1!=v.length)m=!0;m?f||a.P("parse error ("+(h||k)+")"):g=v.pop();a.D=E;return g}
|
||||
function dy(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var m=b[h++];if(m==c){k=-1;break}if(!k)break;k--;m=m.charCodeAt(0);7==d?m&=127:m=m-32&63;g=Xx(g*Math.pow(2,d)+m,d*e,!0)}if(0<=k){a.P("parse error ("+c+b+c+")");return}b=b.substr(0,f)+ey(a,g,-1)+b.substr(h)}return b}
|
||||
function fy(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=dy(a,b,'"',7,5);if(!b)return d;b=dy(a,b,"'",6,6);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=Zx(a,b,0,b.length,a.D,c);void 0!==d&&e&&gy(a,null,d)}return d}
|
||||
function fy(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.ha[0]&&(b=b.split(a.ha[0]).join("{").split(a.ha[1]).join("}"));b=dy(a,b,'"',7,5);if(!b)return d;b=dy(a,b,"'",6,6);if(!b)return d;16!=a.D&&(b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," "));b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Zx(a,b,0,b.length,a.D,c);void 0!==d&&e&&gy(a,null,d)}return d}
|
||||
function hy(a,b){var c,d=a.ha[0],e=a.ha[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=fy(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ey(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Qk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Z-a.la}if(null==
|
||||
e)break;b=b.replace(d[0],e.toString())}return b}function ay(a,b){for(;b;){switch(b&3){case 1:a=-Xx(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a}
|
||||
function $x(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.hh(b);if(0<=f)f=a.ih(f);else if(f=b,a.I[f]?f=a.I[f].value:(f=f.substr(0,6),f=a.I[f]&&a.I[f].value),null!=f){var h=a.I[b]&&a.I[b].So;h&&(g?g.push(h):(g=fy(a,h,d),void 0!==g?f+=g:(d||a.P("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=oa(b,1<b.length||10<a.D?a.D:10);null!=f?f=Xx(ay(f,e)):d||a.P("invalid "+(c||"value")+": "+b)}else d||a.P("missing "+(c||"value"));return f}
|
||||
|
|
|
|||
|
|
@ -64,15 +64,15 @@ Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c
|
|||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
var v="pdp10",Sb="PDPjs",Tb=Math.pow(2,18)-1,Ub=Math.pow(2,18),Vb=Math.pow(2,17)-1,Wb=Math.pow(2,17),x=Math.pow(2,18)-1,y=Math.pow(2,18),z=Math.pow(2,35)-1,A=Math.pow(2,35),B=Math.pow(2,36)-1,C=Math.pow(2,36),E=Math.pow(2,32),Xb=Math.pow(2,34),Yb=Math.pow(2,36),Zb=Math.pow(2,21),$b=Math.pow(2,26),ac=Math.pow(2,23),bc=Math.pow(2,30),v="pdp10",Sb="PDPjs",cc={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,paper:4096,read:16384,write:32768,serial:1048576,
|
||||
timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function dc(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.S=ec;this.C={};this.b={START:[1,1,!0,!1,this.ec],STEP:[1,1,!1,!1,this.fc],ENABLE:[1,1,!1,!1,this.$b],CONT:[1,1,!0,!1,this.Yb],DEP:[0,0,!0,!1,this.Zb],EXAM:[1,1,!0,!1,this.ac],LOAD:[1,1,!0,!1,this.cc],TEST:[0,0,!0,!1,this.bc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc,
|
||||
function dc(a,b){t.call(this,"Panel",a,512);this.K=this.L=0;this.V=b;this.i=this.I=this.j=this.w=0;this.M=this.N=-1;this.O=this.R=this.F=!1;this.T=ec;this.C={};this.b={START:[1,1,!0,!1,this.ec],STEP:[1,1,!1,!1,this.fc],ENABLE:[1,1,!1,!1,this.$b],CONT:[1,1,!0,!1,this.Yb],DEP:[0,0,!0,!1,this.Zb],EXAM:[1,1,!0,!1,this.ac],LOAD:[1,1,!0,!1,this.cc],TEST:[0,0,!0,!1,this.bc]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.dc,a];this.D=this.v=this.G=this.H=null;this.exports={hold:this.Vb,toggle:this.oc,reset:this.kc,
|
||||
set:this.nc};Db(this)}la(dc,t);m=dc.prototype;m.reset=function(a){this.stop();a&&fc(this,this.w=0)};
|
||||
m.sa=function(a,b,c,d){if(this.H&&this.H.sa(a,b,c,d)||this.v&&this.v.sa(a,b,c,d)||this.D&&this.D.sa(a,b,c,d))return!0;switch(b){case "PC":return this.J[b]=c,this.L++,!0;default:return"led"==a||"rled"==a?(this.J[b]=c,this.C[b]=d?1:0,this.L++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.J[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){gc(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){hc(a,b)}}(this,b),a.ontouchstart=
|
||||
function(a,b){return function(c){gc(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){hc(a,b)}}(this,b),!0):t.prototype.sa.call(this,a,b,c,d)}};m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;ic(this);jc(this)};m.Ba=function(a,b){if(!b)if(this.V&&kc(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,[this.i,this.w,this.j]);return a.data()};
|
||||
m.restore=function(a){if(a=a[0])lc(this,this.i=a[0]),fc(this,this.w=a[1]),mc(this,a[2]);return!0};m.kc=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}jc(this);return!0};function nc(a,b,c){if(a=a.J[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ic(a,b){for(var c in a.C)nc(a,c,null!=b?b:a.C[c])}function oc(a,b,c){if(a=a.J[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function jc(a){for(var b in a.b)oc(a,b,a.b[b][1])}
|
||||
m.Vb=function(a,b,c){if(gc(this,b)){if(c){var d=this;setTimeout(function(){hc(d,b);a&&a()},+c);return!1}hc(this,b)}return!0};m.nc=function(a,b){if("SR"==a)return mc(this,oa(b,8));var c=this.b[a];return c?(c[1]=+b?1:0,oc(this,a,c[1]),!0):!1};m.oc=function(a){return gc(this,a)?(hc(this,a),!0):!1};function gc(a,b){var c=a.b[b];return c?(oc(a,b,c[1]=1-c[1]),c[3]=!0,c[4]&&c[4].call(a,c[1],c[5]),b!=pc&&(a.O=b==qc,a.R=b==rc),!0):!1}
|
||||
function hc(a,b){var c=a.b[b];c&&(c[2]&&c[3]&&(oc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5])),c[3]=!1)}m.ec=function(a){a||this.v.A.P||(H(this.v,this.i),this.b[sc]&&this.b[sc][1]&&tc(this.v))};m.fc=function(){};m.$b=function(a){a||this.v.Y()};
|
||||
m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[sc]&&this.b[sc][1])tc(this.v);else{if((a=this.D)&&!Eb(a,!0))Pb(a,!0),uc(a,0,null),Pb(a,!1);else try{var b=this.v.Za(1);0<b&&(vc(this.v,b),wc(this.v,b,!0),xc(this.v,b))}catch(c){"number"!=typeof c&&Ab(this.v,c.stack||c.message)}this.stop();this.H&&K(this.H)}};m.Zb=function(a){a&&!this.v.A.P&&(this.O&&yc(this),a=fc(this,this.w=this.j),this.S==ec?zc(this.G,this.i,a):this.v.g(this.i,a))};
|
||||
m.ac=function(a){if(!a&&!this.v.A.P){var b;this.R&&yc(this);this.S==ec?b=Ac(this.G,this.i):b=this.v.f(this.i);fc(this,this.w=b)}};m.cc=function(a){a||this.v.A.P||lc(this,this.j)};m.bc=function(a){a?(this.F=!0,ic(this,!0)):(this.F=!1,ic(this),mc(this,0))};m.dc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function yc(a){var b=1,c=a.G.j;a.b[pc]&&a.b[pc][1]||(b=-b);lc(a,a.i&~c|a.i+b&c)}
|
||||
m.Yb=function(a){if(!a&&!this.v.A.P)if(this.b[sc]&&this.b[sc][1])tc(this.v);else{if((a=this.D)&&!Eb(a,!0))Pb(a,!0),uc(a,0,null),Pb(a,!1);else try{var b=this.v.Za(1);0<b&&(vc(this.v,b),wc(this.v,b,!0),xc(this.v,b))}catch(c){"number"!=typeof c&&Ab(this.v,c.stack||c.message)}this.stop();this.H&&K(this.H)}};m.Zb=function(a){a&&!this.v.A.P&&(this.O&&yc(this),a=fc(this,this.w=this.j),this.T==ec?zc(this.G,this.i,a):this.v.g(this.i,a))};
|
||||
m.ac=function(a){if(!a&&!this.v.A.P){var b;this.R&&yc(this);this.T==ec?b=Ac(this.G,this.i):b=this.v.f(this.i);fc(this,this.w=b)}};m.cc=function(a){a||this.v.A.P||lc(this,this.j)};m.bc=function(a){a?(this.F=!0,ic(this,!0)):(this.F=!1,ic(this),mc(this,0))};m.dc=function(a,b){this.j=a?this.j|1<<b:this.j&~(1<<b)};function yc(a){var b=1,c=a.G.j;a.b[pc]&&a.b[pc][1]||(b=-b);lc(a,a.i&~c|a.i+b&c)}
|
||||
function lc(a,b){a.i=b&a.G.j;if(a.M!==a.i){a.M=a.i;b=a.M;for(var c=0;22>c;c++){var d=a,e="A"+c,f=b&1<<c;d.C[e]=f;d.F||nc(d,e,f)}}}function fc(a,b){a.I=b%C;if(a.N!==a.I){a.N=a.I;b=a.N;for(var c=0;16>c;c++){var d=a,e="D"+c,f=b&1<<c;d.C[e]=f;d.F||nc(d,e,f)}}return a.I}function mc(a,b){a.j=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.j&1<<b?1:0;jc(a);return!0}m.stop=function(){lc(this,this.v.i)};
|
||||
function kc(){for(var a=w(document,v,"panel"),b=0;b<a.length;b++){var c=a[b],d=u(c),e=sb(d.id);e||(e=new dc(d,!0));ub(e,c)}}var ec=7,qc="DEP",sc="ENABLE",rc="EXAM",pc="STEP";$a(kc);function Bc(a,b,c){t.call(this,"Bus",a,16);this.v=b;this.D=c;this.F=+a.busWidth||18;this.I=1<<this.F;this.j=this.I-1;this.i=Math.log2(16384);this.C=this.I/16384|0;this.w=0;this.b=[];a=new Cc(this);Dc(a,this.D);this.b=Array(this.C);for(b=0;b<this.C;b++)this.b[b]=a;Db(this)}la(Bc,t);m=Bc.prototype;m.reset=function(){};
|
||||
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ra=function(a){return a?this.save():!0};m.save=function(){var a=new G(this);a.set(0,Ec(this));return a.data()};m.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&4096>d.length){for(var e=0,f=Array(4096),g=0;g<d.length-1;)for(var h=d[g++],k=d[g++];h--;)f[e++]=k;d=f}e=this.b[c];if(!e||!e.restore(d)){r("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
|
|
@ -84,16 +84,16 @@ function Cc(a,b,c,d,e){this.H=a;this.id=Pc+=2;this.B=b;this.Xa=c;this.size=d||0;
|
|||
function Vc(a,b,c){c&&a.i||(a.f=b[0]||a.vb);if(c||void 0===c)a.w=b[0]||a.vb}function Wc(a,b,c){c&&a.v||(a.g=!a.G&&b[1]||a.Ya);if(c||void 0===c)a.D=b[1]||a.Ya}m.Sa=function(a,b){b?this.v++||Wc(this,Xc,!1):this.i++||Vc(this,Xc,!1)};function Yc(a,b){b?--a.v||(a.g=a.G?a.Ya:a.D):--a.i||(a.f=a.w)}function Dc(a,b,c){a.b=b;a.i=a.v=0;c&&((a.i=c.i)&&Vc(a,Xc,!1),(a.v=c.v)&&Wc(a,Xc,!1))}m.vb=function(a,b){this.b&&Qb(this.b,32)&&Rb(this.b,"attempt to read invalid address "+L(this.b,b),!0);this.H.Jb(b);return-1};
|
||||
m.Ya=function(a,b,c){this.b&&Qb(this.b,32)&&Rb(this.b,"attempt to write "+L(this.b,a)+" to invalid addresses "+L(this.b,c),!0);this.H.Jb(c)};m.ic=function(a){return this.j[a]};m.rc=function(a,b){this.j[b]!=a&&(this.j[b]=a,this.sb=!0)};m.gc=function(a,b){if(this.b&&null!=this.B){var c=this.b;Zc(c,this.B+a,2,c.N)&&c.Y(!1)}return this.w(a,b)};m.qc=function(a,b,c){if(this.b&&null!=this.B){var d=this.b;Zc(d,this.B+b,2,d.K)&&d.Y(!1)}this.G?this.Ya(a,0,c):this.D(a,b,c)};
|
||||
var Qc=0,Rc=2,Ic=["NONE","RAM","ROM"],Pc=0,Uc=[],Tc=[Cc.prototype.ic,Cc.prototype.rc],Xc=[Cc.prototype.gc,Cc.prototype.qc];
|
||||
function $c(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ha=c;this.lb=Math.round(this.ob/1E4)/100;this.ga=this.lb*this.ha;this.nb=this.Ja=this.ma=this.cb=0;this.A.P=this.A.ib=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Ua=!1;this.Ha=this.ta=0;this.Ia=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Fb=this.lc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Ga=this.S=this.va=this.pb=this.Z=
|
||||
function $c(a,b){t.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.kb=0;this.ob=b;this.ha=c;this.lb=Math.round(this.ob/1E4)/100;this.ga=this.lb*this.ha;this.nb=this.Ja=this.ma=this.cb=0;this.A.P=this.A.ib=!1;this.A.fa=a.autoStart;"string"==typeof this.A.fa&&(this.A.fa="true"==this.A.fa);this.A.Ua=!1;this.Ha=this.ta=0;this.Ia=+a.csStart;this.pa=+a.csInterval;this.ua=+a.csStop;this.R=[];this.Fb=this.lc.bind(this);this.W=this.M=this.V=this.N=this.L=this.Ga=this.T=this.va=this.pb=this.Z=
|
||||
0;this.Oa=null;Db(this)}la($c,t);m=$c.prototype;m.Ma=function(a,b,c,d){this.H=a;this.G=b;this.D=d;this.Oa=a.j;for(a=0;a<ad.length;a++)(b=this.J[ad[a]])&&this.H.sa(null,ad[a],b);Db(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
|
||||
m.Ba=function(a,b){var c=bd(this.H,"autoStart");null!=c?this.A.fa="true"==c?!0:"false"==c?!1:!!c:null==this.A.fa&&(this.A.fa=!this.D&&void 0===this.J.run);if(!b){if(a){cd(this);if(!this.restore(a))return!1;dd(this)}else this.reset();this.D?(a=this.D,b=this.A.fa,a.Ja=!0,a.u("Type ? for help with PDPjs Debugger commands"),ed(a),b||fd(a),a.ua&&(b=a.ua,a.ua=null,gd(a,b,!0))):this.status("No debugger detected");this.A.fa||this.u("CPU will not be auto-started "+(this.Oa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
m.ra=function(a){return a?this.save():!0};m.fa=function(){return this.A.P?!0:this.A.fa?(tc(this),!0):!1};m.Kb=function(){return 0};function dd(a){void 0===a.Ia&&(a.Ia=0);void 0===a.pa&&(a.pa=-1);void 0===a.ua&&(a.ua=-1);a.A.Ua=0<=a.Ia&&0<a.pa;a.A.Ua&&(a.Ha=0,a.ta=a.Ia-a.W)}function xc(a,b){if(a.A.Ua){var c=!1;a.Ha=a.Ha+a.Kb()|0;a.ta-=b;0>=a.ta&&(a.ta+=a.pa,c=!0);0<=a.ua&&a.ua<=hd(a)&&(a.pa=a.ua=-1,dd(a),a.Y(),c=!0);c&&a.u(hd(a)+" cycles: checksum="+n(a.Ha))}}
|
||||
m.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.J[b]=c,!0;case "run":return this.J[b]=c,c.onclick=function(){var a;if(a=d.H)if(a=d.H,a.A.ba)a=!0;else{var b=null,c,h=rb(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.A.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.A.ba);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.fb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.P?d.Y():tc(d))},!0;
|
||||
case "speed":return this.J[b]=c,!0;case "setSpeed":return this.J[b]=c,c.onclick=function(){id(d,d.ha<<1,!0)},c.textContent=this.ga.toFixed(2)+"Mhz",!0}return!1};function wc(a,b,c){a.W+=b;c&&(a.V=a.N=0)}function jd(a,b){var c=1;b&&1<a.ha&&a.Z&&(c=a.Z/a.lb);a.nb=Math.round(1E3/kd);a.Ja=Math.floor(a.ob/kd*c);b||(a.ma=a.Ja);a.cb=0}function hd(a){return a.W+a.M+a.V-a.N}function cd(a){a.Z=0;a.pb=0;a.W=a.M=a.V=a.N=0;dd(a);id(a,1)}
|
||||
function id(a,b,c){var d=!1;if(void 0!==b){.8>a.Z/a.ga?b=1:d=!0;a.ha=b;b=a.lb*a.ha;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&ld(a.H)}wc(a,a.M);a.M=0;a.L=pb();a.S=0;jd(a);return d}function md(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
|
||||
function id(a,b,c){var d=!1;if(void 0!==b){.8>a.Z/a.ga?b=1:d=!0;a.ha=b;b=a.lb*a.ha;if(a.ga!=b){a.ga=b;b=a.ga.toFixed(2)+"Mhz";var e=a.J.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.H&&ld(a.H)}wc(a,a.M);a.M=0;a.L=pb();a.T=0;jd(a);return d}function md(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function nd(a){for(var b=[],c=0;c<a.R.length;c++)b.push(a.R[c][0]);return b}
|
||||
function vc(a,b){for(var c=a.R.length-1;0<=c;c--){var d=a.R[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function od(a,b){var c=a.V-=a.N;a.N=0;b&&(a.V=0);return c}
|
||||
m.lc=function(){if(this.A.P){this.cb>=this.ob&&jd(this,!0);this.va=0;this.Ga=pb();if(this.S){var a=this.Ga-this.S;a>this.nb&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=md(this,this.A.Ua?1:this.Ja);try{this.Za(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.va+=b;this.M+=b;xc(this,b);vc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ja;++this.pb>=pd&&(this.H&&K(this.H,void 0),this.pb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(pb(),hd(this));Ab(this,
|
||||
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.S=pb();var c=this.nb;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.S-this.Ga),d=this.S-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,id(this)));if(0>c||this.Z<this.ga)-1E3>c&&(this.L-=c),c=0;this.cb+=this.va;this.S+=c;a(b,c)}}};
|
||||
m.lc=function(){if(this.A.P){this.cb>=this.ob&&jd(this,!0);this.va=0;this.Ga=pb();if(this.T){var a=this.Ga-this.T;a>this.nb&&(this.L+=a,this.L>this.Ga&&(this.L=this.Ga))}try{do{var b=md(this,this.A.Ua?1:this.Ja);try{this.Za(b)}catch(e){if("number"!=typeof e)throw e;}b=od(this,!0);this.va+=b;this.M+=b;xc(this,b);vc(this,b);this.ma-=b;if(0>=this.ma){this.ma+=this.Ja;++this.pb>=pd&&(this.H&&K(this.H,void 0),this.pb=0);break}}while(this.A.P)}catch(e){this.Y();this.H&&this.H.stop(pb(),hd(this));Ab(this,
|
||||
e.stack||e.message);return}if(this.A.P){a=setTimeout;b=this.Fb;this.T=pb();var c=this.nb;this.va&&(c=Math.round(c*this.va/this.Ja));var c=c-(this.T-this.Ga),d=this.T-this.L;d&&(this.Z=Math.round(this.M/(10*d))/100,864E5<=d&&(this.W=0,id(this)));if(0>c||this.Z<this.ga)-1E3>c&&(this.L-=c),c=0;this.cb+=this.va;this.T+=c;a(b,c)}}};
|
||||
function tc(a,b){if(!Bb(a))if(a.A.P)a.u(a.toString()+" busy");else{id(a);a.A.P=!0;a.A.ib=!0;var c=a.J.run;c&&(c.textContent="Halt");a.H&&(b&&ld(a.H,!0),a.H.start(a.L,hd(a)));a.D||a.status("Started");setTimeout(a.Fb,0)}}m.Za=function(){return 0};m.Y=function(a){var b=!1;if(this.A.P){od(this);wc(this,this.M);this.M=0;this.A.P=!1;if(b=this.J.run)b.textContent="Run";this.H&&this.H.stop(pb(),hd(this));b=!0;this.D||this.status("Stopped")}this.A.complete=a;return b};var kd=30,pd=15,ad=["power","reset"];
|
||||
function qd(a){var b=+a.model||1001;$c.call(this,a,1E6);this.mb=b;this.$a=+a.addrReset||0;this.Sb=rd.bind(this);this.w=M.bind(this);this.Da=null;this.Cb=[];this.A.complete=!1}la(qd,$c);m=qd.prototype;
|
||||
m.reset=function(){this.status("Model "+this.mb);this.A.P&&this.Y();this.Ka=this.La=this.b=this.I=0;this.i=this.oa=this.$a;this.K=this.O=-1;this.F=this.j=0;this.jb=[0,0];this.wa=[0,0];this.na=[0,0];this.xa=[0,0];this.Ca=this.i;this.C=0;this.f=this.hc;this.g=this.sc;this.Da=null;cd(this);this.A.error=!1;$c.prototype.reset.call(this)};m.Kb=function(){return 0};
|
||||
|
|
@ -168,28 +168,28 @@ m.sa=function(a,b,c){var d=this;switch(b){case Ne: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.Ma=function(a,b,c,d){this.H=a;this.G=b;this.v=c;this.D=d;Db(this)};
|
||||
m.Lb=function(a){if(!this.b){var b=bd(this.H,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ea(c[0]);if(d!=this.ab)return;c=Ea(c[1]);if(this.b=sb(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.Lb(this.j),!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
m.ra=function(a){return a?this.save():!0};m.reset=function(){};m.save=function(){var a=new G(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.jc=function(){};m.mc=function(a,b){return this.b?!1:(this.b=a,this.C=b,!0)};var Ne="buffer";
|
||||
$a(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Me(d);ub(d,c)}});function Oe(a){t.call(this,"Debugger",a);this.U=+a.base||16;this.L=32;this.S=["{","}"];this.ta=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.b={}}la(Oe,t);Oe.prototype.tb=function(){return-1};Oe.prototype.ub=function(){};
|
||||
$a(function(){for(var a=w(document,v,"serial"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Me(d);ub(d,c)}});function Oe(a){t.call(this,"Debugger",a);this.S=+a.base||16;this.L=32;this.T=["{","}"];this.ta=["[","]"];this.F=0;this.V=!1;this.C=-1;this.w=[];this.b={}}la(Oe,t);Oe.prototype.tb=function(){return-1};Oe.prototype.ub=function(){};
|
||||
function Pe(a,b,c,d){if(c)if(b){0>a.C&&a.w.length&&(a.C=0);if(0>a.C||b!=a.w[a.C])a.w.splice(0,0,b),a.C=0;a.C--}else a.V?b="end":b=a.w[a.C+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(Ea(b.substring(c,f))),c=f+1}}return a}function Qe(a,b,c){if(32>=a.L)return b&c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Re|0)&(c/Re|0))*Re+((b&c)>>>0)}
|
||||
function Se(a,b,c){if(32>=a.L)return b|c;b=X(a,b,0,!0);c=X(a,c,0,!0);return((b/Re|0)^(c/Re|0))*Re+((b^c)>>>0)}Oe.prototype.Ib=function(a,b){return a*b};function X(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<<32-c>>32-c:(a=Math.pow(2,c-1),b>=a?(e=b%a,(b/a|0)&1&&(e-=a)):b<-a&&(e=b%a,((-b-1)/a|0)&1?e&&(e+=a):e||(e-=a)));b!=e&&(b=e);return b}
|
||||
function Te(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=a.Ib(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=Qe(a,f,g);break;case "!":case "|":e=a;32>=e.L?f|=g:(f=X(e,f,0,!0),g=X(e,g,0,!0),f=(f/Re|0|g/Re|0)*Re+((f|g)>>>0));break;case "^!":f=Se(a,f,g);break;case "&&":f=f&&g?1:0;break;case "||":f=f||g?1:0;break;case ",,":f=X(a,f,18,!0)*Math.pow(2,18)+X(a,g,18,!0);break;case "_":case "^_":"^_"==e&&(g=35-(g&255));g&&(f=X(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(X(a,f))}return!0}
|
||||
function Ue(a,b,c,d,e,f){var g,h,k,l=!1,p=0,q=[],D=[],F=a.U;for(a.U=e;c<d;){var J;h=b[c++].trim();k=c<d?b[c++]:"";if(h)J=Ve(a,h,null,f,p);else if("{"==k){h=1;for(J=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;J=Ue(a,b,J,c-1,a.U,f);null!=J&&p&&(J=We(a,J,p));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.U=2;continue}if("^O"==k){a.U=8;continue}if("^D"==k){a.U=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===J)if(f)f.push(h),J=0;else{l=!0;f=[];break}q.push(X(a,J));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.S[0]?Xe:Ye;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Te(a,q,D,1);D.push(k);a.U="^_"==k?10:e;p=0}if(l||!Te(a,q,D)||1!=q.length)l=!0;l?f||a.u("parse error ("+(h||k)+")"):g=q.pop();a.U=F;return g}
|
||||
function Ue(a,b,c,d,e,f){var g,h,k,l=!1,p=0,q=[],D=[],F=a.S;for(a.S=e;c<d;){var J;h=b[c++].trim();k=c<d?b[c++]:"";if(h)J=Ve(a,h,null,f,p);else if("{"==k){h=1;for(J=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;J=Ue(a,b,J,c-1,a.S,f);null!=J&&p&&(J=We(a,J,p));h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if(" "==k)continue;if("^B"==k){a.S=2;continue}if("^O"==k){a.S=8;continue}if("^D"==k){a.S=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===J)if(f)f.push(h),J=0;else{l=!0;f=[];break}q.push(X(a,J));if(" "==k)if(c<b.length-1&&!b[c])c++,k=b[c++];else{l=!0;break}if(!k)break;p="<"==a.T[0]?Xe:Ye;if(!p[k]){l=!0;break}D.length&&p[k]<=p[D[D.length-1]]&&Te(a,q,D,1);D.push(k);a.S="^_"==k?10:e;p=0}if(l||!Te(a,q,D)||1!=q.length)l=!0;l?f||a.u("parse error ("+(h||k)+")"):g=q.pop();a.S=F;return g}
|
||||
function Ze(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,h=f+1,k=e;h<b.length;){var l=b[h++];if(l==c){k=-1;break}if(!k)break;k--;l=l.charCodeAt(0);7==d?l&=127:l=l-32&63;g=X(a,g*Math.pow(2,d)+l,d*e,!0)}if(0<=k){a.u("parse error ("+c+b+c+")");return}b=b.substr(0,f)+L(a,g,-1)+b.substr(h)}return b}
|
||||
function $e(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.S[0]&&(b=b.split(a.S[0]).join("{").split(a.S[1]).join("}"));b=Ze(a,b,'"',7,5);if(!b)return d;b=Ze(a,b,"'",6,6);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=Ue(a,b,0,b.length,a.U,c);void 0!==d&&e&&af(a,null,d)}return d}
|
||||
function $e(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.T[0]&&(b=b.split(a.T[0]).join("{").split(a.T[1]).join("}"));b=Ze(a,b,'"',7,5);if(!b)return d;b=Ze(a,b,"'",6,6);if(!b)return d;16!=a.S&&(b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," "));b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Ue(a,b,0,b.length,a.S,c);void 0!==d&&e&&af(a,null,d)}return d}
|
||||
function We(a,b,c){for(;c;){switch(c&3){case 1:b=-X(a,b);break;case 2:b=Se(a,b,-1);break;case 3:for(var d=35;0<=d&&!Qe(a,b,Math.pow(2,d));)d--;b=35-d}c>>>=2}return b}
|
||||
function Ve(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.tb(b);if(0<=f)f=a.ub(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(g=$e(a,h,d),void 0!==g?f+=g:(d||a.u("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=oa(b,1<b.length||10<a.U?a.U:10);null!=f?f=X(a,We(a,f,e)):d||a.u("invalid "+(c||"value")+": "+b)}else d||a.u("missing "+(c||"value"));return f}
|
||||
function af(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.U?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(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 bf(a){var b=a.b;a.b={};return b}function cf(a,b){var c=0;if(a.b){if(b)return af(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d<b.length;d++)af(a,b[d],a.b[b[d]].value),c++}return 0<c}
|
||||
function L(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.U){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=wa(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=xa(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}
|
||||
function Ve(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.tb(b);if(0<=f)f=a.ub(f);else if(f=b,a.b[f]?f=a.b[f].value:(f=f.substr(0,6),f=a.b[f]&&a.b[f].value),null!=f){var h=a.b[b]&&a.b[b].Mb;h&&(g?g.push(h):(g=$e(a,h,d),void 0!==g?f+=g:(d||a.u("undefined "+(c||"value")+": "+b+" ("+h+")"),f=void 0)))}else f=oa(b,1<b.length||10<a.S?a.S:10);null!=f?f=X(a,We(a,f,e)):d||a.u("invalid "+(c||"value")+": "+b)}else d||a.u("missing "+(c||"value"));return f}
|
||||
function af(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.S?L(a,c,a.L,8,1)+" "+c+".":L(a,c,a.L,16,1)+" "+L(a,c,a.L,8,1)+" "+L(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 bf(a){var b=a.b;a.b={};return b}function cf(a,b){var c=0;if(a.b){if(b)return af(a,b,a.b[b]&&a.b[b].value);b=Object.keys(a.b);b.sort();for(var d=0;d<b.length;d++)af(a,b[d],a.b[b[d]].value),c++}return 0<c}
|
||||
function L(a,b,c,d,e){c=void 0===c?0:c;e=void 0===e?0:e;switch((void 0===d?0:d)||a.S){case 2:(a=0<c?c:0)?36<a&&(a=36):(a=Math.abs(b),a=255>=a?8:262143>=a?18:36);b=pa(b,2,a,"",e);break;case 8:b=wa(b,0<c?(c+2)/3|0:0,!!e);break;case 10:b=xa(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 Ye={"||":5,"&&":6,"!":7,"|":7,"^!":8,"&":9,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,_:19,"^_":19,"{":20,"}":20},Xe={",,":1,"||":5,"&&":6,"!=":10,"==":10,">=":11,">":11,"<=":11,"<":11,">>>":12,">>":12,"<<":12,"-":13,"+":13,"^/":14,"/":14,"*":14,"!":15,"|":15,"^!":15,"&":15,_:19,"^_":19,"{":20,"}":20},Re=Math.pow(2,32);
|
||||
function df(a){Oe.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.S=["<",">"];this.ta=[];this.Ia=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];ef(this);this.W=this.pa=0;this.j=[];this.Ca=void 0;ff(this);this.D=this;this.va={};this.ca=this.Eb=0;this.Z=null;this.R=[];gf(this,a.messages);this.ua=a.commands;this.Ha=[];this.O=0;this.Oa=this.Da=null;this.F=this.La=this.Ka=this.na=this.xa=0;this.wa=this.ma=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return gd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return gd(b,a)})}la(df,Oe);function hf(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,qa:!1,U:c}}function jf(a,b,c,d){a.B=b;a.eb=c||!1;a.qa=!1;a.U=d}function kf(a){return[a.B,a.eb,a.qa,a.U,a.hb]}function lf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Pe(a,c.hb=b[4]));return c}m=df.prototype;
|
||||
function df(a){Oe.call(this,a);this.Ja=!1;this.Ga=18;this.L=36;this.T=["<",">"];this.ta=[];this.Ia=Y();this.M=Y(0);this.oa=Y(0);this.ha=Y(0);this.I=[];this.i=this.N=this.K=[];ef(this);this.W=this.pa=0;this.j=[];this.Ca=void 0;ff(this);this.D=this;this.va={};this.ca=this.Eb=0;this.Z=null;this.R=[];gf(this,a.messages);this.ua=a.commands;this.Ha=[];this.O=0;this.Oa=this.Da=null;this.F=this.La=this.Ka=this.na=this.xa=0;this.wa=this.ma=this.ga=null;var b=this;window?void 0===window[v]&&(window[v]=function(a){return gd(b,
|
||||
a)}):void 0===global[v]&&(global[v]=function(a){return gd(b,a)})}la(df,Oe);function hf(a){a=a&&a.B;null==a&&(a=-1);return a}function Y(a,b,c){return{B:void 0===a?null:a,eb:void 0===b?!1:b,qa:!1,S:c}}function jf(a,b,c,d){a.B=b;a.eb=c||!1;a.qa=!1;a.S=d}function kf(a){return[a.B,a.eb,a.qa,a.S,a.hb]}function lf(a,b){var c=Y(b[0],b[1],b[2]);c.qa=b[3];b[4]&&(c.zb=Pe(a,c.hb=b[4]));return c}m=df.prototype;
|
||||
m.Ma=function(a,b,c,d){this.G=b;this.H=a;this.v=c;this.ma=a.j;this.Ga=b.F;(b=bd(a,"messages"))&&gf(this,b);if(a=bd(a,"commands"))this.ua=a;mf(this,function(a){a:{var b=d.G.b,c=a[0],e=a=0,k=b.length;if(c){a=hf(nf(d,c,d.oa));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=Ic[c],p&&d.u(n(p.id,8)+" %"+
|
||||
n(e<<d.G.i,8)+" %"+n(p.B,8)+" "+n(p.Xa,4,!0)+" "+n(p.size,4,!0)+" "+l),c!=Qc&&(c=-1),l=0);a+=16384;e++}}});Db(this)};
|
||||
m.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ga=this.J[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",gd(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.C<d.w.length-1&&(b=d.w[++d.C])):40==a.keyCode&&(0<d.C?b=d.w[--d.C]:(b="",d.C=-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,Ya(c,function(){if(d.ga){var a=d.ga.value;
|
||||
d.ga.value="";gd(d,a,!0);return!0}return!1}),!0;case "step":return this.J[b]=c,Ya(c,function(a){var b=!1;Eb(d,!0)||(Pb(d,!0),b=uc(d,a?1:0,null),Pb(d,!1));return b}),!0}return!1};function fd(a){if(a.ga){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.ga.focus();window&&window.scrollTo(b,c)}}m.Na=function(a,b){var c=-1,d=hf(a);-1!==d&&(c=Ac(this.G,d),b&&null!=a.B&&(a.B+=b||1));return c};m.yb=function(a,b,c){var d=hf(a);-1!==d&&(zc(this.G,d,b),c&&null!=a.B&&(a.B+=c||1),K(this.H,-1))};
|
||||
m.Ib=function(a,b){0>a&&(a+=C);0>b&&(b+=C);a=Be.call(this.v,a,b,!1,!0);a>=A&&(a-=C);return a};
|
||||
function nf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.S[0],h=a.S[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=$e(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[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=
|
||||
function nf(a,b,c){var d,e;c||(c=Y());var f=c.B;if(void 0!==b){a:{var g,f=a.T[0],h=a.T[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=$e(a,g[1]);if(void 0===l){b=void 0;break a}b=b.replace(f+g[1]+h,null!=l?L(a,l):"undefined")}if(a.ta.length)for(f=a.ta[0],h=a.ta[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,q;if(f.match(/^[a-z_][a-z0-9_]*$/i))for(f=f.toUpperCase(),h=0;h<a.I.length;h++)if(g=a.I[h].aa[f],null!=g){q=g.o;break}null!=q&&(p=Y(q));if(p)return p;0<=b.indexOf("0x")?e=16:0<=b.indexOf("0o")?e=8:0<=b.indexOf(".")&&(e=10);f=$e(a,b)}null!=f&&(f=of(f,a.Ga),jf(c,f,d,e));return c}function pf(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.zb=Pe(a,b.hb=c[2]))}
|
||||
function of(a,b){0>a&&a>=-A&&(a+=C);return Math.trunc(Math.abs(a))%Math.pow(2,void 0===b?36:b)}function qf(a,b){return L(a,b/Ub,18)+" "+L(a,b%Ub,18)}
|
||||
function gf(a,b){a.D=a;a.ca=a.Eb=536870916;a.Z=null;a.R=[];b=Pe(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in cc){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|=cc[c],a.u(c+" messages enabled"))}}function mf(a,b){for(var c in cc)if(16==cc[c]){a.va[c]=b;break}}m.tb=function(a){return rf.indexOf(a.toUpperCase())};
|
||||
|
|
@ -212,63 +212,63 @@ function Zc(a,b,c,d,e){var f=!1;if(!a.xa++)for(var g=1;!f&&g<d.length;g++){var h
|
|||
function Wf(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=wa(d,2);jf(e.Ia,d);f+="="+L(e,e.Na(e.Ia),36)+" ";c+=f}if(b){b="";for(d=0;d<rf.length;d++)(e=rf[d]||"")&&(e+="="+L(a,a.ub(d),d>=wf?1:d==tf?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 Ie(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],q=Fa(p,k,a.Gb);0>q&&p.splice(-(q+1),0,k)}l&&(h.a=l.replace(/''/g,'"'))}a.I.push({yd:b,B:c,Wb:d,aa:e,Bb:f})}function Xf(a,b,c){var d=[],e=hf(b)>>>0;for(b=0;b<a.I.length;b++){var f=a.I[b],g=f.B>>>0,h=f.Wb;if(e>=g&&e<g+h){e=Fa(f.Bb,[e-g],a.Gb);0<=e?Yf(a,b,e,d):c&&(e=~e,Yf(a,b,e-1,d),Yf(a,b,e,d));break}}return d}
|
||||
function Zf(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?(b="start address ",null!=c?(H(a.v,c),b+=L(a,c)):b+="unspecified",a.u(e+" words loaded at "+L(a,f)+"-"+L(a,g)+", "+b),ed(a)):a.u("no data")}function Yf(a,b,c,d){var e={},f=a.I[b].Bb,g=0,h=null;0<=c&&c<f.length&&(g=f[c][0],h=f[c][1]);h&&(e=a.I[b].aa[h],h="."==h.charAt(0)?null:e.l||h);d.push(h);d.push(g);d.push(e.a);d.push(e.c)}
|
||||
function $f(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=nf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.H),!0;var g=e.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i);if(g&&(g[1]||g[3])){f=nf(a,d);if(a.wa)a.u("assembly already in progress");else{var h=g[2]+g[3];g[3]||(c+="s");var k=f.B,l=a.wa=new ag(a);Cg(l,h,k,c,function(b,c){if(!b)try{var d=l.J;null==d&&(d=k);Zf(a,l.T,d)}catch(F){"number"==typeof F?b=F||-1:(a.u(F.message),
|
||||
function $f(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=nf(a,d,a.ha);if(!e)return a.u("begin assemble at "+L(a,f.B,18)),a.V=!0,K(a.H),!0;var g=e.match(/^(['"]?)(.*?)(\.klm|\.mac|\.html|\.txt|)\1$/i);if(g&&(g[1]||g[3])){f=nf(a,d);if(a.wa)a.u("assembly already in progress");else{var h=g[2]+g[3];g[3]||(c+="s");var k=f.B,l=a.wa=new ag(a);Cg(l,h,k,c,function(b,c){if(!b)try{var d=l.J;null==d&&(d=k);Zf(a,l.U,d)}catch(F){"number"==typeof F?b=F||-1:(a.u(F.message),
|
||||
b=-1)}b&&a.u("error ("+b+") processing "+(c||h));a.wa=null;b||gd(a)})}return!1}b.shift();b.shift();b.shift();b=Rf(a,e,b.join(""),f.B||0);0<=b&&(a.yb(f,b),a.u(Jf(a,f)));return!0}function Eg(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return cf(a)||a.u("no variables"),!0;if(!c[2])return cf(a,c[1]);if(!c[3])return delete a.b[c[1]],!0;b=$e(a,c[3]);return void 0!==b?(a.b[c[1]]={value:b,Mb:void 0},!0):!1}a.u("invalid assignment:"+b);return!1}
|
||||
function Fg(a,b,c){var d=null;b=nf(a,b);var e=Xf(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]+" ("+L(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]+" ("+L(a,e[5],18)+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols");return d}
|
||||
function Gf(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=$e(a,b);if(void 0===g)return;b=a.tb(f);if(0>b){a.u("unknown register: "+f);return}var f=0,h=a.v;switch(b){case sf:H(h,
|
||||
g);jf(a.M,h.i);break;case vf:td(h,g);break;case wf:f=131072;break;case xf:f=65536;break;case yf:f=32768;break;case zf:f=8192;break;case Af:f=32;break;case Bf:f=262144}f&&(h.j=g?h.j|f:h.j&~f);K(a.H);a.u("updated registers:")}}a.u(Wf(a,e));c&&(jf(a.M,vd(d)),Hf(a,L(a,a.M.B,18)))}}function Gg(a,b){b=Ea(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):af(a,null,c[2].charCodeAt(0)):$e(a,b,!1)}
|
||||
function Hg(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=Ve(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.Da=b;Xa(c,function(){return Pb(a,!0)&&uc(a,e,d,!1)},function(){a.ma&&a.ma.stop();K(a.H,-1);Pb(a,!1)})}}
|
||||
function Hf(a,b,c,d){b=nf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ve(a,c.substr(1)),null!=c&&(d=c);else{d=nf(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=Eb(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Xf(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.ha;l=b;h.B=l.B;h.eb=l.eb;h.qa=l.qa;h.U=l.U;a.u(Jf(a,b,g,f));e-=b.B-k;c++}}
|
||||
function Hf(a,b,c,d){b=nf(a,b,a.M);void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Ve(a,c.substr(1)),null!=c&&(d=c);else{d=nf(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=Eb(a,!1)||a.O?a.F:null,g=null!=f?"cycles":null,h=Xf(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.ha;l=b;h.B=l.B;h.eb=l.eb;h.qa=l.qa;h.S=l.S;a.u(Jf(a,b,g,f));e-=b.B-k;c++}}
|
||||
function Vf(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Ff+b):(a.V&&(a.u("ended assemble at "+L(a,a.ha.B,18)),a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Z=null;if(Cb(a)&&0<b.length){a.V&&(b="a "+L(a,a.ha.B,18)+" "+b);var f=!1,g=b,h;h=void 0===h?" ":h;for(var k=[],l="",p=0,q=0;p<g.length;){var D=g[p++];l?D==l&&(l="",k.push(g.substr(q,p-q)),q=p):'"'==D||"'"==D?l=D:0<=h.indexOf(D)&&(k.push(g.substr(q,p-q-1)),q=p)}q<p&&k.push(g.substr(q,p-q));k[0]=k[0].toLowerCase();if(k&&k.length)for(var F=
|
||||
k[0],J=F.charAt(0),p=1;p<F.length;p++)if(D=F.charAt(p),"?"==J||"r"==J||"a">D||"z"<D){k[0]=F.substr(p);k.unshift(F.substr(0,p));break}switch(k[0].charAt(0)){case "a":d=$f(a,k);break;case "b":var Lc=k[0],qa=k[1],I=b;if("?"==qa)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 Pa=Lc.charAt(1);
|
||||
if("l"==Pa){var Rd;Rd=0+Uf(a,a.i);Rd+=Uf(a,a.N);(Rd+=Uf(a,a.K))||a.u("no breakpoints")}else if("n"==Pa){var bg=+qa||0;qa&&(a.pa=bg);a.u("break after "+bg+" instruction(s)")}else if(void 0===qa)a.u("missing breakpoint address");else{var ja="*"==qa?Y():nf(a,qa,a.M);"c"==Pa?null==ja.B?(ef(a),a.u("all breakpoints cleared")):Sf(a,a.i,ja)||Sf(a,a.N,ja)||Sf(a,a.K,ja)||a.u("breakpoint missing: "+L(a,ja.B,18)):null!=ja.B&&(pf(a,ja,I),"p"==Pa?a.Sa(a.i,ja):"r"==Pa?a.Sa(a.N,ja):"w"==Pa?a.Sa(a.K,ja):a.u("unknown breakpoint command: "+
|
||||
Pa))}}break;case "c":a.za&&(a.za.value="");break;case "d":a:{var kb,lb=k[0],ra=k[1],Ga=k[2],Zh=k[3];if("?"==ra){var mb="";for(kb in cc)a.va[kb]&&(mb&&(mb+=","),mb+=kb);mb+=",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");mb.length&&a.u("dump extension commands:\n\t"+mb)}else if("state"==ra){var Sd=Ig(a.H,!0);"console"==Ga?console.log(Sd):
|
||||
(a.za&&(a.za.value=""),Sd&&a.u(Sd))}else if("symbols"==ra)for(var Td=0;Td<a.I.length;Td++){var Ud=a.I[Td],nb;for(nb in Ud.aa)if("."!=nb.charAt(0)){var cg=Ud.aa[nb].o;if(void 0!==cg){var dg=Ud.aa[nb].l;dg&&(nb=dg);a.u(L(a,cg,18)+" "+nb)}}}else{if("d"==lb){for(kb in cc)if(k[1]==kb){var eg=a.va[kb];eg?(k.shift(),k.shift(),eg(k)):a.u("no dump registered for "+ra);break a}ra||(lb=a.Oa||"dw")}else a.Oa=lb;if("dh"==lb){var fg=ra,gg=Ga,hg="",ig=0,ka=a.W,sa=a.j;if(sa.length){var ga=+fg||a.Ca,Fb=+gg||10;isNaN(ga)?
|
||||
ga=Fb:hg="more ";ga>sa.length&&(a.u("note: only "+sa.length+" available"),ga=sa.length);ka-=ga;0>ka&&(null==sa[sa.length-1].B?(ga=ka+ga,ka=0):ka+=sa.length);var Vd=[];"call"==gg&&(Fb=1E5,Vd=["CALL"]);for(void 0!==fg&&a.u(ga+" instructions earlier:");0<Fb&&ka!=a.W;){var jg=sa[ka++];if(null==jg.B)break;var Gb=Y(jg.B),$h=ga--,kg=Jf(a,Gb,"history",$h);(!Vd.length||0<=kg.indexOf(Vd[0]))&&a.u(kg);Gb.rb&&(ka+=Gb.rb,Fb-=Gb.rb,ga-=Gb.rb);ka>=sa.length&&(ka=0);a.Ca=ga;ig++;Fb--}}ig||(a.u("no "+hg+"history available"),
|
||||
a.Ca=void 0)}else{var Qa=0,lg="ds"==lb,Hb=nf(a,ra,a.oa);Ga&&("l"==Ga.charAt(0)?(Ga=Ga.substr(1)||Zh,Qa=Ve(a,Ga)):Qa=nf(a,Ga).B-Hb.B,0>Qa&&(Qa=0),65536<Qa&&(Qa=65536));var ai=a.U;Hb.U&&(a.U=Hb.U);for(var mg="db"==lb?1:2,Wd=Qa||32,Xd=1==mg?1:4,bi=(Wd+Xd-1)/Xd|0||1,Ra="";bi--&&0<Wd;){for(var ta="",Yd="",ra=L(a,Hb.B,18),ng=Xd;0<ng--&&0<Wd--;){var Zd=a.Na(Hb,1);lg?(ta&&(ta+=","),ta+=Zd):(ta+=qf(a,Zd),ta+=" ");for(var Mc=29,ci=0;1==mg&&0<=Mc;ci++)var Ib=Zd/Math.pow(2,Mc)%Math.pow(2,7),ta=ta+(L(a,Ib,7)+
|
||||
" "),Ib=Ib+0,Yd=Yd+(32>Ib?".":String.fromCharCode(Ib)),Mc=Mc-7}Ra&&(Ra+="\n");Ra=lg?Ra+(ta+","):Ra+(ra+": "+ta+(0>ng?" "+Yd:""))}Ra&&a.u(Ra);a.U=ai}}}break;case "e":if("else"==k[0])break;var og,pg,qg=k[0],$d=k[1];"e"==qg||"ew"==qg?(og=a.Na,pg=a.yb):$d=null;if(null==$d)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var ae=nf(a,$d,a.oa),be=2;be<k.length;be++){var Jb=$e(a,k[be]);if(void 0===Jb)break;Jb=of(Jb);a.u("changing "+L(a,ae.B,18)+" from "+qf(a,og.call(a,
|
||||
a.Ca=void 0)}else{var Qa=0,lg="ds"==lb,Hb=nf(a,ra,a.oa);Ga&&("l"==Ga.charAt(0)?(Ga=Ga.substr(1)||Zh,Qa=Ve(a,Ga)):Qa=nf(a,Ga).B-Hb.B,0>Qa&&(Qa=0),65536<Qa&&(Qa=65536));var ai=a.S;Hb.S&&(a.S=Hb.S);for(var mg="db"==lb?1:2,Wd=Qa||32,Xd=1==mg?1:4,bi=(Wd+Xd-1)/Xd|0||1,Ra="";bi--&&0<Wd;){for(var ta="",Yd="",ra=L(a,Hb.B,18),ng=Xd;0<ng--&&0<Wd--;){var Zd=a.Na(Hb,1);lg?(ta&&(ta+=","),ta+=Zd):(ta+=qf(a,Zd),ta+=" ");for(var Mc=29,ci=0;1==mg&&0<=Mc;ci++)var Ib=Zd/Math.pow(2,Mc)%Math.pow(2,7),ta=ta+(L(a,Ib,7)+
|
||||
" "),Ib=Ib+0,Yd=Yd+(32>Ib?".":String.fromCharCode(Ib)),Mc=Mc-7}Ra&&(Ra+="\n");Ra=lg?Ra+(ta+","):Ra+(ra+": "+ta+(0>ng?" "+Yd:""))}Ra&&a.u(Ra);a.S=ai}}}break;case "e":if("else"==k[0])break;var og,pg,qg=k[0],$d=k[1];"e"==qg||"ew"==qg?(og=a.Na,pg=a.yb):$d=null;if(null==$d)a.u("edit memory commands:"),a.u("\tew [a] [...] edit words at address a");else for(var ae=nf(a,$d,a.oa),be=2;be<k.length;be++){var Jb=$e(a,k[be]);if(void 0===Jb)break;Jb=of(Jb);a.u("changing "+L(a,ae.B,18)+" from "+qf(a,og.call(a,
|
||||
ae))+" to "+qf(a,Jb));pg.call(a,ae,Jb,1)}break;case "g":var rg=k[1],di=b;if(void 0!==rg){var sg=nf(a,rg);pf(a,sg,di);a.Sa(a.i,sg,!0)}Df(a,!0,c);break;case "h":a.A.P?(c||a.u("halting"),a.Y()):Eb(a,!0)||c||a.u("already halted");break;case "i":if("if"==k[0]){var ce;var Kb=b.substr(2),Kb=Ea(Kb);$e(a,Kb)?(c||a.u("true: "+Kb),ce=!0):(c||a.u("false: "+Kb),ce=!1);ce||(d=!1);break}f=!0;break;case "k":var ei=k[0];if("?"==k[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");
|
||||
else{var de=0,ee=Y(),Lb=Y();for(a.u("stack trace for "+L(a,Lb.B,18));10>de;){for(var Sa=null,fi=256;65536>Lb.B>>>0;){ee.B=a.Na(Lb,2);if(null==Lb.B||!fi--)break;if(!(ee.B&1)){for(var gi=a,Nc=ee,tg=null,Mb=Nc.B,ug=Mb,fe=1;6>=fe&&Mb;fe++){if(2<fe){Nc.B=Mb;var Oc=Jf(gi,Nc);if(0<=Oc.indexOf("JSR")){var vg=Oc.indexOf(" ");if(Mb+(Oc.indexOf(" ",vg+1)-vg-1)/2==ug){tg=Oc;break}}}Mb-=2}Nc.B=ug;if(Sa=tg)break}}if(!Sa||null==Sa)break;var wg=null;if("ks"==ei){var xg=Sa.match(/[0-9A-F]+$/);xg&&(wg=Fg(a,xg[0]))}Sa=
|
||||
Da(Sa,50)+" ;"+(wg||"stack="+L(a,Lb.B,18));a.u(Sa);de++}de||a.u("no return addresses found")}break;case "l":if("ln"==k[0]){Fg(a,k[1],!0);break}f=!0;break;case "m":a:{var ua,va=null,N=k[1];"?"==N&&(N=void 0);if(void 0!==N){var Ha=0;if("all"==N)Ha=1879046143,N=null;else if("on"==N)va=!0,N=null;else if("off"==N)va=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(ua in cc)if(N==ua){Ha=cc[ua];va=!!(a.ca&Ha);break}if(!Ha){a.u("unknown message category: "+N);break a}}if(Ha)if("on"==k[2])a.ca|=
|
||||
Ha,va=!0;else if("off"==k[2]&&(a.ca&=~Ha,va=!1,1073741824==Ha)){for(var yg=1E3<=a.R.length?a.R.length-1E3:0;yg<a.R.length;)a.u(a.R[yg++]);a.R=[]}}var hi=0,Nb="";for(ua in cc)if(!N||N==ua){var ii=!!(a.ca&cc[ua]);if(null===va||va==ii)Nb&&(Nb+=","),++hi%10||(Nb+="\n\t"),"key"==ua&&(ua="keys"),Nb+=ua}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==va?va?"messages on: ":"messages off: ":"message categories:\n\t")+(Nb||"none"));ff(a)}break;case "p":if("print"==
|
||||
k[0]){Gg(a,b.substr(5));break}var zg=k[0],Ag="p"==zg?0:"pr"==zg?1:-1;if("?"==k[1]||0>Ag)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var Bg=Y(a.v.i);a.Na(Bg);a.O?(a.Sa(a.i,Bg,!0),Df(a)||(a.H&&ld(a.H),a.O=0)):Hg(a,Ag?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Gf(a,k);break;case "s":a:switch(k[1]){case "base":if(k[2]){var ob=+k[2];if(2==ob||8==ob||10==ob||16==ob)a.U=ob;else{a.u("invalid base: "+
|
||||
ob);break}}a.u("default base: "+a.U);break;case "cs":var Ob;void 0!==k[3]&&(Ob=+k[3]);switch(k[2]){case "int":a.v.pa=Ob;break;case "start":a.v.Ia=Ob;break;case "stop":a.v.ua=Ob;break;default:a.u("unknown cs option");break a}void 0!==Ob&&dd(a.v);a.u("checksums "+(a.v.A.Ua?"enabled":"disabled"));break;case "sp":void 0!==k[2]&&(id(a.v,+k[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ha+"x)");break;default:if(k[1]){a.u("unknown option: "+
|
||||
k[0]){Gg(a,b.substr(5));break}var zg=k[0],Ag="p"==zg?0:"pr"==zg?1:-1;if("?"==k[1]||0>Ag)a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else if(a.O)a.u("step in progress");else{var Bg=Y(a.v.i);a.Na(Bg);a.O?(a.Sa(a.i,Bg,!0),Df(a)||(a.H&&ld(a.H),a.O=0)):Hg(a,Ag?"tr":"t")}break;case "r":if("reset"==b){a.H&&a.H.reset();break}Gf(a,k);break;case "s":a:switch(k[1]){case "base":if(k[2]){var ob=+k[2];if(2==ob||8==ob||10==ob||16==ob)a.S=ob;else{a.u("invalid base: "+
|
||||
ob);break}}a.u("default base: "+a.S);break;case "cs":var Ob;void 0!==k[3]&&(Ob=+k[3]);switch(k[2]){case "int":a.v.pa=Ob;break;case "start":a.v.Ia=Ob;break;case "stop":a.v.ua=Ob;break;default:a.u("unknown cs option");break a}void 0!==Ob&&dd(a.v);a.u("checksums "+(a.v.A.Ua?"enabled":"disabled"));break;case "sp":void 0!==k[2]&&(id(a.v,+k[2])||a.u("warning: using 1x multiplier, previous target not reached"));a.u("target speed: "+(a.v.ga.toFixed(2)+"Mhz")+" ("+a.v.ha+"x)");break;default:if(k[1]){a.u("unknown option: "+
|
||||
k[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":Hg(a,k[0],k[1]);break;case "u":Hf(a,k[1],k[2],8);break;case "v":if("var"==k[0]){Eg(a,b.substr(3))||(d=!1);break}if("ver"==k[0]){a.u((Sb||"PDP10")+" version 1.35.0 ("+a.v.mb+",RELEASE)");a.u(window?
|
||||
window.navigator.userAgent:"");break}f=!0;break;case "?":if(k[1]){Gg(a,b.substr(1));break}var ge="commands:",he;for(he in Jg)ge+="\n"+Da(he,9)+Jg[he];wd(a)||(ge+="\nnote: history disabled if no exec breakpoints");a.u(ge);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Dg){a.u("Debugger "+(Dg.stack||Dg.message)),d=!1}return d}function gd(a,b,c){null!=b&&(a.Ha=Pe(a,b,c));for(;b=a.Ha.shift();)if(!Vf(a,b))return!1;return!0}
|
||||
var Jg={"?":"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"},Of=20,Pf=".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(" "),
|
||||
sf=0,tf=1,uf=2,vf=3,wf=4,xf=5,yf=6,zf=7,Af=8,Bf=9,rf="PC RA EA PS OV C0 C1 BI ND PD".split(" "),Kg={},Kf=(Kg[28672]={0:101},Kg[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},Kg[32512]={6144:65,6400:59,6656:66,6912:60,7168:67,7424:61,7680:68,7936:62,8192:17,8448:18,8704:19,8960:Of,
|
||||
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},Kg[32256]={12288:71,12800:72,13312:73,13824:74,14336:75,14848:76,15360:77,15872:78},Kg[29248]={24576:79,24640:80,25088:81,25152:82},Kg[28700]={28672:93,28676:94,28680:95,28684:96,
|
||||
28688:97,28692:98,28696:99,28700:100},Kg),Lf=["","I","M","S"],Mf=" L E LE A GE N G".split(" "),Nf="N NE NA NN Z ZE ZA ZN C CE CA CN O OE OA ON".split(" "),Qf=[{0:85,8:102,4:103,2:104,6:105,1:106},{0:88,4:107,2:108,10:109}],Cf=1E3,Ff=">> ";$a(function(){for(var a=w(document,v,"debugger"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new df(d);ub(d,c)}});function ag(a){this.b=a}
|
||||
function Lg(a,b,c,d){a.la=b;a.W=(c||"").toLowerCase();a.done=d;a.R=0;a.H=[];a.N=[];a.D=[];a.v={};a.K={};a.M=[];a.L=[];a.T=[];a.ea=[];a.Z=[];a.ia=0;a.V=0;a.ga=0;a.X=a.la||0;a.Ea=-1;a.G=[];a.S=null;a.i=0;a.I=null;a.C=a.O="";a.ha=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;a.j=null;a.w=null;a.F="";a.J=null}
|
||||
function Lg(a,b,c,d){a.la=b;a.W=(c||"").toLowerCase();a.done=d;a.R=0;a.H=[];a.N=[];a.D=[];a.v={};a.K={};a.M=[];a.L=[];a.U=[];a.ea=[];a.Z=[];a.ia=0;a.V=0;a.ga=0;a.X=a.la||0;a.Ea=-1;a.G=[];a.T=null;a.i=0;a.I=null;a.C=a.O="";a.ha=/^[ \t]*([A-Z$%.?][0-9A-Z$%.]*:|)[ \t]*([A-Z$%.][0-9A-Z$%.]*|)([ \t]*)([^;]+|)(;?[\s\S]*)/i;a.j=null;a.w=null;a.F="";a.J=null}
|
||||
function Cg(a,b,c,d,e){d&&0<=d.indexOf("s")?(Lg(a,c,d,e),a.D=b.split(/(\r?\n)/),a.N.push(a.D.length),Mg(a),a.done&&a.done(a.V)):(Lg(a,c,d,e),a.H=b.split(";"),Ng(a))}
|
||||
function Ng(a){if(a.R==a.H.length)Mg(a),a.done&&a.done(a.V);else{var b=a.H[a.R];a.u("loading "+ya(b));0>b.indexOf(":")&&0<=".MAC.KLM".indexOf(b.slice(-4).toUpperCase())&&(b+=".txt");Ja(b,null,!0,function(b,d,e){if(e)a.done&&a.done(e,b);else{e=d;if(Aa(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))&&Og(a,"unrecognized HTML entity '"+c[0]+"'")}d=e.split(/(\r?\n)/);
|
||||
if(d.length&1){if(c=d.pop())Og(a,"unexpected line '"+c+"'"),d.push(c),d.push("")}else Og(a,"unexpected number of lines ("+d.length+")");a.D=a.D.concat(d);a.N[a.R]=d.length>>1;a.R++;setTimeout(function(){Ng(a)},0)}})}}
|
||||
function Mg(a){if(0<=a.W.indexOf("p"))a.u(a.D.join(""));else{var b=bf(a.b);Pg(a,"APR",0);Pg(a,"PI",4);try{for(var c=0;c<a.D.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Qg(a)+": "+a.D[c]);if(!Rg(a,a.D[c]+"\r\n"))break;if(null!==a.J)break}a.i&&a.error("open block",a.v[a.I].ia);a.G.length&&a.error("open scope",a.G[0].ia);Sg(a);Tg(a);a.ea.forEach(function(b,c){b=Ug(a,b,void 0,c,a.Z[c]);void 0!==b&&(b+=a.T[c],a.T[c]=Vg(a,b,c))})}catch(d){a.u(d.message),a.V=-1}0>a.W.indexOf("d")&&(a.b.b=b)}}
|
||||
function Mg(a){if(0<=a.W.indexOf("p"))a.u(a.D.join(""));else{var b=bf(a.b);Pg(a,"APR",0);Pg(a,"PI",4);try{for(var c=0;c<a.D.length;c+=2){a.ia++;0<=a.W.indexOf("l")&&a.u(Qg(a)+": "+a.D[c]);if(!Rg(a,a.D[c]+"\r\n"))break;if(null!==a.J)break}a.i&&a.error("open block",a.v[a.I].ia);a.G.length&&a.error("open scope",a.G[0].ia);Sg(a);Tg(a);a.ea.forEach(function(b,c){b=Ug(a,b,void 0,c,a.Z[c]);void 0!==b&&(b+=a.U[c],a.U[c]=Vg(a,b,c))})}catch(d){a.u(d.message),a.V=-1}0>a.W.indexOf("d")&&(a.b.b=b)}}
|
||||
function Rg(a,b,c,d,e){var f,g;null!=a.w&&(b=Wg(a,b));for(var h=!0,k="";h;){g=b.match(a.ha);if(!g||g[5]&&";"!=g[5].slice(0,1))return a.error("failed to parse line '"+b+"'"),!1;h=!1;k=g[2].toUpperCase();if(k==Xg||k==Yg)c=null;if(c){for(f=0;f<c.length;f++){var l=c[f],p=a.v[a.I];if(!(p&&0<=p.Qa.indexOf(l)))for(var p=d[f]||e[f]||"",q=0,D=b.length-g[5].length;q<D;){var F=b.indexOf(l,q);if(0>F)break;var q=F+1,J=F+l.length,Lc="",qa="";F&&(Lc=b[F-1]).match(/[0-9A-Z$%.]/i)||!(J>=b.length)&&(qa=b[J]).match(/[0-9A-Z$%.]/i)||
|
||||
("'"==Lc&&F--,"'"==qa&&J++,b=b.substr(0,F)+p+b.substr(J),q=F+p.length,h=!0)}}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.C),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.S+" definition in '"+b+"'")),1<a.i&&(b=Zg(a,b),h=!0),a.i))return!0}d=g[1];b=g[3];c=g[4].trim();g=g[4]+g[5];d&&(d=d.slice(0,-1),Pg(a,d,a.X,$g));var I;k&&(I=c.match(/^([=:]+)(.*)/))&&(e=0,d=k,k=I[1],c=I[2],"=="==k?e|=ah:"=:"==k&&(e|=bh),Pg(a,d,c,e),k=c="");if(!k&&!c)return!0;a.S=k;if(I=ch(a,c))c=c.replace(I,dh(a,eh,ch(a,g))),b||(b=
|
||||
("'"==Lc&&F--,"'"==qa&&J++,b=b.substr(0,F)+p+b.substr(J),q=F+p.length,h=!0)}}c=null}if(a.i&&(1==a.i&&(f=b.indexOf(a.C),0<=f?(a.i++,b=b.substr(f+1)):a.error("expected "+a.T+" definition in '"+b+"'")),1<a.i&&(b=Zg(a,b),h=!0),a.i))return!0}d=g[1];b=g[3];c=g[4].trim();g=g[4]+g[5];d&&(d=d.slice(0,-1),Pg(a,d,a.X,$g));var I;k&&(I=c.match(/^([=:]+)(.*)/))&&(e=0,d=k,k=I[1],c=I[2],"=="==k?e|=ah:"=:"==k&&(e|=bh),Pg(a,d,c,e),k=c="");if(!k&&!c)return!0;a.T=k;if(I=ch(a,c))c=c.replace(I,dh(a,eh,ch(a,g))),b||(b=
|
||||
"\t");for(;I=fh(a,c);)c=c.replace(I,I.slice(0,-1));if(!gh(a,k,c))switch(k){case hh:case ih:case jh:Wg(a,g);break;case kh:k=c;I=Ug(a,k);void 0!==I&&0<=I&&262143>=I?a.X+=I:a.error("unrecognized BLOCK expression '"+k+"'");break;case lh:k=c;b=g=0;for(c=36;I=mh(a,k);){k=k.substr(I.length).trim();d=I;if(e=I.match(/^\((.*)\)\s*(.*)$/))e[1]&&(g=Ug(a,"^D"+e[1])),d=e[2];if(g){d=d?Ug(a,d):0;if(void 0===d||0>g||36<g){a.error("unexpected BYTE operand: "+I);break}d=X(a.b,d,g,!0);c<g&&(nh(a,b),b=0,c=36);b+=d*Math.pow(2,
|
||||
c-g);c-=g}else nh(a,0)}36>c&&nh(a,b);break;case oh:(k=c)?(a.J=Ug(a,k),void 0===a.J&&a.error("unrecognized END expression '"+k+"'")):a.J=a.la;break;case ph:qh(a,c);break;case rh:Sg(a);break;case sh:a.X=Ug(a,c)||0;break;case th:Tg(a);break;case uh:qh(a,c.replace(",",",,"));break;case vh:case wh:case xh:case yh:case zh:case Ah:case Bh:case Ch:case Dh:case Eh:case Fh:case Gh:case Xg:case Yg:case Hh:case Ih:dh(a,k,g);break;case Jh:k=Kh(a,c);for(I=0;I<k.length;I++)delete a.b.b[k[I]],delete a.K[k[I]];break;
|
||||
case Lh:case Mh:case Nh:case Oh:case Ph:case Qh:case Rh:case Sh:break;default:qh(a,k,b,c)}return!0}
|
||||
function gh(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Fa==Th){var e=a.X;Z(a,d.ka);if(e<a.X){if(!c)return!0;Uh(a);Z(a,c);var d=a.T[0],f=a.ea[0];Vh(a);if(void 0!==d)return a.T[e]+=d&130023423,a.T[e]+=d&4194304,f&&(a.ea[e]=a.ea[e]?a.ea[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' ("+c+") failed");return!1}b=a.j;a.j=d;d.Ra=Kh(a,c,!0);Z(a,d.ka,d.Qa,d.Ra,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case zh:case yh:case Gh:d.Fa||Z(a,d.ka);break;case Ah:0<d.Fa&&Z(a,d.ka);break;case Bh:0<=
|
||||
function gh(a,b,c){var d=a.v[b];if(!d)return!1;if(null!=c){if(d.Fa==Th){var e=a.X;Z(a,d.ka);if(e<a.X){if(!c)return!0;Uh(a);Z(a,c);var d=a.U[0],f=a.ea[0];Vh(a);if(void 0!==d)return a.U[e]+=d&130023423,a.U[e]+=d&4194304,f&&(a.ea[e]=a.ea[e]?a.ea[e]+("+"+f):f),!0}a.error("OPDEF '"+b+"' ("+c+") failed");return!1}b=a.j;a.j=d;d.Ra=Kh(a,c,!0);Z(a,d.ka,d.Qa,d.Ra,d.Ab);a.j=b;return!0}if("?"!=b[0])return!1;switch(b.substr(1)){case zh:case yh:case Gh:d.Fa||Z(a,d.ka);break;case Ah:0<d.Fa&&Z(a,d.ka);break;case Bh:0<=
|
||||
d.Fa&&Z(a,d.ka);break;case Dh:0>d.Fa&&Z(a,d.ka);break;case Eh:0>=d.Fa&&Z(a,d.ka);break;case wh:case Fh:case xh:case Ch:d.Fa&&Z(a,d.ka);break;case Xg:case Yg:for(b=0;b<d.Ra.length;b++)Z(a,d.ka,d.Qa,[d.Ra[b]],[]);break;case Ih:for(;0<d.Fa--;)Z(a,d.ka);break;default:c=d.ka,Uh(a,b),Z(a,c),Vh(a)}return!0}function Z(a,b,c,d,e){b=b.split(/\r?\n/);for(var f=0;f<b.length&&Rg(a,b[f]+"\r\n",c,d,e);f++);}
|
||||
function Uh(a,b){a.G.push({name:b,T:a.T,ea:a.ea,X:a.X,Ea:a.Ea,ia:a.ia});a.T=[];a.ea=[];0>a.Ea&&(a.Ea=a.X);a.X=0}function Vh(a){if(a.G.length){var b=a.G[a.G.length-1].name;b&&a.M.push({name:b,T:a.T,ea:a.ea});b=a.G.pop();a.T=b.T;a.ea=b.ea;a.X=b.X;a.Ea=b.Ea;a.G.length||-1==a.Ea||a.error("scope restore error")}else a.error("scope nesting error")}
|
||||
function Uh(a,b){a.G.push({name:b,U:a.U,ea:a.ea,X:a.X,Ea:a.Ea,ia:a.ia});a.U=[];a.ea=[];0>a.Ea&&(a.Ea=a.X);a.X=0}function Vh(a){if(a.G.length){var b=a.G[a.G.length-1].name;b&&a.M.push({name:b,U:a.U,ea:a.ea});b=a.G.pop();a.U=b.U;a.ea=b.ea;a.X=b.X;a.Ea=b.Ea;a.G.length||-1==a.Ea||a.error("scope restore error")}else a.error("scope nesting error")}
|
||||
function mh(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) in '"+b+"'");break}}}g?0<g&&a.error("extra bracket(s) in '"+b+"'"):f=b.substr(0,d);return f}
|
||||
function Ug(a,b,c,d,e){var f=-1;void 0===d&&(d=0<=a.Ea?a.Ea:a.X);var g=b.replace(/SIXBIT\s*(\S)(.*?)\1/g,"'$2'").replace(/ASCII\s*(\S)(.*?)\1/g,'"$2"');if(c){var h="",k=g;if(f=g.match(/^([^\s]+)\s*(.*?)\s*$/))h=f[1],k=f[2];f=Rf(a.b,h,k,d,c)}0>f&&(g=g.replace(/\.([^0-9]|$)/g,L(a.b,d,-1)+"$1"),f=$e(a.b,g,c),void 0===f&&a.error("unable to parse expression '"+b+"'",e));return f}
|
||||
function ch(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) in '"+b+"'");0<=f&&(d=b.substr(f,g-f));return d}function Qg(a,b){b=void 0===b?a.ia:b;for(var c=0;b>a.N[c];)if(b-=a.N[c],c<a.H.length-1)c++;else break;return ya(a.H[c]+" line "+b)}
|
||||
function fh(a,b){var c=null;if(b=b.match(/([A-Z$%.][0-9A-Z$%.]*)#/i)){c=b[0];b=b[1];var d="?"+b;if(!a.v[d]){var e,f,g;e=f=g=[];a.v[d]={name:d,Fa:Wh,Qa:e,Ab:f,Ra:g,ka:b+": 0",ia:a.ia};a.L.push(d)}}return c}
|
||||
function Kh(a,b,c){var d=[];for(c&&(b=b.replace(/^\(?(.*?)\)?$/,"$1"));b;){b=b.trim();c=mh(a,b);if(!c)break;var e=c;if("\\"==c[0]){var f=1,g=0;"'"==c[1]?(f++,g=6):'"'==c[1]&&(f++,g=7);var e=a,f=c.substr(f),g=void 0===g?0:g,h=Ug(e,f);if(void 0!==h){var k=5;switch(g){case 0:f=L(e.b,h,-1);break;case 6:k++;case 7:for(;h&&k--;)h=Math.trunc(h/Math.pow(2,g))}}e=f}d.push(e);b=b.substr(c.length+1)}return d}
|
||||
function Wg(a,b){var c=b;null==a.w&&(a.w=a.F="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.F+=b}if(null==a.w){var d=b=0,e,f,g=a.F.length;a.S==ih&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.S==jh&&(e--,f++));var k=a.F.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&&(nh(a,d),b=0)}b&&nh(a,d)}return c}
|
||||
function Wg(a,b){var c=b;null==a.w&&(a.w=a.F="",b&&(a.w=b[0],c=b=b.substr(1)));if(a.w){var d=b.indexOf(a.w);0>d?c="":(c=b.substr(d+1),b=b.substr(0,d),a.w=null);a.F+=b}if(null==a.w){var d=b=0,e,f,g=a.F.length;a.T==ih&&g++;for(var h=0;h<g;h++){b||(d=0,f=29,e=7,a.T==jh&&(e--,f++));var k=a.F.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&&(nh(a,d),b=0)}b&&nh(a,d)}return c}
|
||||
function dh(a,b,c){var d,e,f,g,h,k;a.C="<";a.O=">";g=h=k=[];if(b==vh){e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\([^)]*\)|)\s*,?\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" in '"+c+"'"),c;f=e[1];if(e[2]&&","!=e[2]){h=g=Kh(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}d=Xh;b=3}else if(b==Hh){a.C="[";a.O="]";e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*(\[)([\s\S]*)/i);if(!e)return a.error("unrecognized "+
|
||||
b+" in '"+c+"'"),c;f=e[1];d=Th;b=2}else if(b==eh)a.C="[",a.O="]",f="?"+xa(++a.ga,5),a.v[f]&&a.error("literal symbol '"+f+"' redefined"),e=[c[0],c.substr(1)],d=Yh,b=0;else if(b==Xg||b==Yg){a.j||a.error(b+" outside of macro");e=c.match(/([A-Z$%.][0-9A-Z$%.]*)\s*,\s*(<|)([\s\S]*)/i);if(!e)return a.error("unrecognized "+b+" operands '"+c+"'"),c;for(d=0;d<a.j.Qa.length&&e[1]!=a.j.Qa[d];d++);if(d==a.j.Qa.length)return a.error("invalid "+b+" parameter '"+e[1]+"'"),c;f="?"+b;g=[e[1]];b==Yg?k=a.j.Ra[d].split(""):
|
||||
k=Kh(a,a.j.Ra[d]);d=k.length;b=2}else{if(b==wh)d=1,","==c[0]&&(c=c.substr(1).trim());else{e=mh(a,c);if(!e)return a.error("missing "+b+" expression '"+c+"'"),c;c=c.substr(e.length+1);e=e.trim();if(b==yh||b==Ch){f=mh(a,c);if(!f)return a.error("missing second "+b+" expression '"+c+"'"),c;c=c.substr(f.length+1)}d=b==xh||b==Gh?a.v[e]||a.K[e]||void 0!==a.b.b[e]?1:0:Ug(a,e)||0}e=c.match(/\s*(<|)([\s\S]*)/i);f="?"+b;b=1}f=f.toUpperCase();a.i=1;a.I=f;a.v[f]={name:f,Fa:d,Qa:g,Ab:h,Ra:k,ka:"",ia:a.ia};e[b]&&
|
||||
(a.i=2,Zg(a,e[b+1]));return f}function Zg(a,b){for(var c="",d=0;d<b.length;d++)if(b[d]==a.C)a.i++;else if(b[d]==a.O&&(a.i--,1==a.i)){a.i=0;c=b.substr(d+1);b=b.substr(0,d);break}d=a.I||"";a.v[d].ka+=b;a.i||(a.I=null,gh(a,d));return c}
|
||||
function Pg(a,b,c,d){d=void 0===d?0:d;b=b.toUpperCase().substr(0,6);if(d&$g&&a.K[b])a.error("redefined label '"+b+"'");else{var e=void 0;if("string"==typeof c){var e=[],f=Ug(a,c,e);if(void 0===f){a.error("invalid symbol '"+b+"': "+c);return}1<e.length&&a.error("too many undefined symbols in '"+b+"': "+e.join());c=f;e=e[0]}(f=a.K[b])?(f.value=c,f.Xb=d,f.ia=a.ia):a.K[b]={name:b,value:c,Xb:d,ia:a.ia};a.b.b[b]={value:c,Mb:e}}}
|
||||
function qh(a,b,c,d){var e=[];b=(b+(void 0===c?"":c)+(void 0===d?"":d)).trim();c=Ug(a,b,e);void 0!==c?e.length?1==e.length?nh(a,c,e[0]):nh(a,0,b):nh(a,c):a.error("unrecognized word expression '"+b+"'")}
|
||||
function Sg(a){for(var b=a.X,c={},d=0;d<a.M.length;c={T:c.T,Ta:c.Ta,Aa:c.Aa},d++){c.Aa=a.M[d];c.T=[];c.Ta=0;c.Aa.T.forEach(function(a){return function(b,c){c===a.T.length&&a.T.push(b);a.Ta++}}(c));if(c.Ta==c.T.length)for(var e=b;e+c.Ta<=a.X;e++){for(var f=void 0,f=0;f<c.Ta&&c.T[f]===a.T[e+f]&&c.Aa.ea[f]==a.ea[e];f++);if(f==c.Ta){Pg(a,c.Aa.name,e,$g);c.Aa=null;break}}if(c.Aa){var g=a;Pg(a,c.Aa.name,a.X,$g);c.Aa.T.forEach(function(a){return function(b,c){nh(g,b,a.Aa.ea[c])}}(c))}}a.M=[]}
|
||||
function Tg(a){for(var b=0;b<a.L.length;b++){var c=a.L[b],d=a.v[c];d?Z(a,d.ka):a.error("missing definition for variable '"+c+"'")}a.L=[]}function nh(a,b,c){a.T[a.X]=Vg(a,b);void 0!==c&&(a.ea[a.X]=c);a.Z[a.X]=a.ia;a.X++}function Vg(a,b,c){c=void 0===c?a.X:c;var d=X(a.b,b||0,36,!0);(b<-A||b>=C)&&Og(a,"truncated value "+wa(b)+" at location "+wa(c)+" to "+wa(d));return d}ag.prototype.error=function(a,b){throw Error("error in "+Qg(this,b)+": "+a);};
|
||||
function Sg(a){for(var b=a.X,c={},d=0;d<a.M.length;c={U:c.U,Ta:c.Ta,Aa:c.Aa},d++){c.Aa=a.M[d];c.U=[];c.Ta=0;c.Aa.U.forEach(function(a){return function(b,c){c===a.U.length&&a.U.push(b);a.Ta++}}(c));if(c.Ta==c.U.length)for(var e=b;e+c.Ta<=a.X;e++){for(var f=void 0,f=0;f<c.Ta&&c.U[f]===a.U[e+f]&&c.Aa.ea[f]==a.ea[e];f++);if(f==c.Ta){Pg(a,c.Aa.name,e,$g);c.Aa=null;break}}if(c.Aa){var g=a;Pg(a,c.Aa.name,a.X,$g);c.Aa.U.forEach(function(a){return function(b,c){nh(g,b,a.Aa.ea[c])}}(c))}}a.M=[]}
|
||||
function Tg(a){for(var b=0;b<a.L.length;b++){var c=a.L[b],d=a.v[c];d?Z(a,d.ka):a.error("missing definition for variable '"+c+"'")}a.L=[]}function nh(a,b,c){a.U[a.X]=Vg(a,b);void 0!==c&&(a.ea[a.X]=c);a.Z[a.X]=a.ia;a.X++}function Vg(a,b,c){c=void 0===c?a.X:c;var d=X(a.b,b||0,36,!0);(b<-A||b>=C)&&Og(a,"truncated value "+wa(b)+" at location "+wa(c)+" to "+wa(d));return d}ag.prototype.error=function(a,b){throw Error("error in "+Qg(this,b)+": "+a);};
|
||||
function Og(a,b){a.u("warning in "+Qg(a,void 0)+": "+b)}ag.prototype.u=function(a){this.b?this.b.u(a):console.log(a)};
|
||||
var $g=1,ah=2,bh=4,hh="ASCII",ih="ASCIZ",kh="BLOCK",lh="BYTE",vh="DEFINE",oh="END",ph="EXP",wh="IF1",xh="IFDEF",yh="IFDIF",zh="IFE",Ah="IFG",Bh="IFGE",Ch="IFIDN",Dh="IFL",Eh="IFLE",Fh="IFN",Gh="IFNDEF",Xg="IRP",Yg="IRPC",Lh="LALL",rh="LIT",eh="LITERAL",Mh="LIST",sh="LOC",Nh="NOSYM",Hh="OPDEF",Oh="PAGE",Jh="PURGE",Ih="REPEAT",jh="SIXBIT",Ph="SUBTTL",Qh="TITLE",th="VAR",Rh="XALL",uh="XWD",Sh="XLIST",Xh=-1,Th=-2,Yh=-3,Wh=-4;
|
||||
function ji(a,b,c){t.call(this,"Computer",a,33554432);this.A.ba=!1;this.R=null;ki(this,b);this.N=bd(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.S=this.O=!1;this.Z=bd(this,"url")||"";(Math.random()+.1).toString(36);this.i=li(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new Bc({id:this.bb+".bus",busWidth:this.W},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.za)for(b=
|
||||
function ji(a,b,c){t.call(this,"Computer",a,33554432);this.A.ba=!1;this.R=null;ki(this,b);this.N=bd(this,"autoPower",a,6);this.w=0;this.W=+a.busWidth||+a.buswidth;this.L=this.F=this.M=null;this.K=this.V=!1;this.I=this.C=null;this.T=this.O=!1;this.Z=bd(this,"url")||"";(Math.random()+.1).toString(36);this.i=li(this);if(this.v=tb("CPU",this.id)){this.D=tb("Debugger",this.id);this.G=new Bc({id:this.bb+".bus",busWidth:this.W},this.v,this.D);var d,e=rb(this.id);if((this.j=tb("Panel",this.id))&&this.j.za)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.ja=this.j.ja,d.u=this.j.u,d.za=this.j.za;this.u(Sb+" v1.35.0\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");for(b=0;b<e.length;b++)d=e[b],d.Ma&&d.Ma(this,this.G,this.v,this.D);b=null;d=bd(this,"resume",a);void 0!==d&&(1<d.length?b=this.F=d:this.b=parseInt(d,10));var f;if(a=bd(this,"state")||(f=!0,a.state))this.M=b=a,f||(this.K=!0,this.b=mi),this.b&&(this.I=new G(this,"1.35.0"),ni(this.I)?b=null:
|
||||
delete this.I);!b&&this.b&&(b=oi(this))&&(this.K=!0);if(b){var g=this;Ja(b,null,!0,function(a,b,c){c?(g.F=null,g.K=!1,g.ja("Unable to load machine state from server (error "+c+(b?": "+Ea(b):"")+")")):(g.L=b,g.V=!0);Db(g)})}else Db(this);this.J.power||(this.N=!0);!c&&this.N&&pi(this,this.Wa)}else r("Unable to find CPU component")}la(ji,t);function ki(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.R=b}
|
||||
function bd(a,b,c,d){var e=b.toLowerCase(),e=Va(b)||Va(e);void 0===e&&a.R&&(e=a.R[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}function pi(a,b,c){for(var d=rb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Cb(f)){Cb(f,function(){pi(a,b,c)});return}}b.call(a,c)}
|
||||
|
|
@ -276,20 +276,20 @@ function qi(a,b){var c=new G(a,"1.35.0",ri);if(ni(c)&&si(c)){var d=c.get(ti),e=b
|
|||
m.Wa=function(a){void 0===a&&(a=this.b||(this.L?ui:mi));if(!this.w){this.w++;var b=!1,c=!1;this.O=!1;var d=this.I||new G(this,"1.35.0");if(a==vi)b=!0;else if(a>mi){if(ni(d,this.L)){this.C=new G(this,"1.35.0",wi);ni(this.C)&&(xi(this,d),a=yi,zi(this.C));this.C.set(ti,Ia());Ai(this.C);var e=this.b&&!this.K;if(a==ui||qb("Click OK to restore the previous "+Sb+" machine state, or CANCEL to reset the machine.")){if(c=si(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?ni(d,g):("error"==f&&"no machine state"!=
|
||||
g?(this.ja("Error: "+g),"unable to verify user"==g&&(Ta(Bi,""),this.i=null)):this.u(f+": "+g),zi(d),ni(d)?(c=si(d),e=!0):c=!1))}e&&qi(this,c?d:null)}else a==yi&&d.clear()}else qi(this);delete this.L;delete this.I}e=rb(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!=vi?pi(this,this.Hb,b):this.Hb(b)}};
|
||||
function Ci(a,b,c,d,e){if(!b.A.ba){b.A.ba=!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&&(r("Unable to restore state for "+b.type),a.M&&!a.V?(c.clear(),a.b=mi,window&&window.location.reload()):a.O=!0,b.Ba(null),e=!1),!d&&b.Db){var g=b.Db.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(h){r("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.S=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Ci(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(xi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.T=!0;this.A.ba=!0;var d=this.J.power;d&&(d.textContent="Shutdown");this.v&&(Ci(this,this.v,b,c,a),K(this,-2),this.v.fa());this.O&&(xi(this,b),b.clear());!c&&this.C&&(this.C.clear(),delete this.C);this.w=0};
|
||||
function xi(a,b){if(qb("There may be a problem with your "+Sb+" machine.\n\nTo help us diagnose it, click OK to send this "+Sb+" machine state to http://www.pcjs.org.")){var c=a.Z;a=a.i||"";b=b.toString();var d={};d.app=Sb;d.ver="1.35.0";d.url=c;d.user=a;d.type="bug";d.data=b;Ja("http://www.pcjs.org/api/v1/report",d,!0)}}
|
||||
function Ig(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new G(a,"1.35.0"),g=new G(a,"1.35.0",ri),h=Ia();g.set(ti,h);f.set(ti,h);f.set(Di,"1.35.0");f.set(Ei,window?window.location.href:null);f.set(Fi,window?window.navigator.userAgent:"");a.v&&a.v.ra&&(c&&(b&&(a.v.A.fa=a.v.A.P),a.v.Y()),d=a.v.ra(b,c),"object"===typeof d&&f.set(a.v.id,d),c&&(a.v.A.ba=!1,!1===d&&(e=null)));for(var h=rb(a.id),k=0;k<h.length;k++){var l=h[k];l.A.ba&&(l.ra&&(d=l.ra(b,c),"object"===typeof d&&f.set(l.id,d)),c&&(l.A.ba=
|
||||
!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.ba=!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&&(Rb(this,"Resetting "+this.G.type),this.G.reset());this.v&&this.v.reset&&(Rb(this,"Resetting "+this.v.type),this.v.reset());for(var a=rb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.G&&c!==this.v&&c.reset&&(Rb(this,"Resetting "+c.type),c.reset())}this.A.reset=!1;K(this,-1)};m.start=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}K(this,-1)};
|
||||
m.stop=function(a,b){for(var c=rb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}K(this,-1)};
|
||||
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.kb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;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.U||8,e=e||0,e=8==f?wa(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);lc(a,a.i);fc(a,a.w)}}
|
||||
function K(a,b){if(a.v){var c=a.v,d=b||0,e=c.J.speed;e&&(0>=d||30<=(c.kb+=d))&&(e.textContent=c.A.P?c.Z.toFixed(2)+"Mhz":"Stopped",c.kb=0)}if(a.j&&(a=a.j,b=b||0,a.L)){c=a.v.A.P;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.S||8,e=e||0,e=8==f?wa(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);lc(a,a.i);fc(a,a.w)}}
|
||||
m.sa=function(a,b,c){var d=this;switch(b){case "power":return this.J[b]=c,c.onclick=function(){d.w||(d.A.ba?Ig(d,!1,!0):pi(d,d.Wa))},!0;case "reset":return this.J[b]=c,c.onclick=function(){if(d.A.ba&&!d.w)if(d.b&&!d.F){var a=qb("Click OK to save changes to this "+Sb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Ig(d,a,!0);!a&&d.M?window&&window.location.reload():d.Wa(mi)}else d.reset(),d.v&&!d.D&&d.v.fa()},!0;case "save":if(Aa(La(),"pcjs.org"))c.parentNode.removeChild(c);
|
||||
else return this.J[b]=c,c.onclick=function(){var a=li(d,!0);if(a){var b=!!(d.b&&!d.F||d.M),c=Ig(d,b);b?Gi(d,a,c):d.ja("Resume disabled, machine state not saved")}},!0}return!1};
|
||||
function li(a,b){var c=a.i;c||((c=Oa(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.ja("The user ID is invalid.")):b&&a.ja("Browser local storage is not available"));return c}
|
||||
function Ii(a,b){a.i=null;b=Ja(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Ta(Bi,b.data),a.i=b.data)}catch(d){r(d.message+" ("+c+")")}return a.i}function oi(a){var b=null;a.i&&(b=La()+"/api/v1/user?req=load&user="+a.i+"&state="+Ji(a,"1.35.0"));return b}
|
||||
function Gi(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Ji(a,"1.35.0");d.data=c;b=Ja(La()+"/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.ja("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.ja(c),Ta(Bi,""),a.i=null)}}
|
||||
function ld(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 wi="failsafe",ri="validate",ti="timestamp",Di="version",Ei="url",Fi="browser",Bi="user",vi=-1,mi=0,ui=1,yi=2,Hi=3;$a(function(){for(var a=w(document,v+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=u(c),c=w(c,v,"computer"),e=0;e<c.length;e++){var f=c[e],g=u(f),g=new ji(g,d,!0);ub(g,f);g.N&&pi(g,g.Wa)}});
|
||||
ab.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=tb("Computer",c.id))&&c.S&&!c.A.ba&&c.Wa(vi)}});ab.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=tb("Computer",c.id))&&c.A.ba&&Ig(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Ji(a,b,c);zi(this,a.Ub)}m=G.prototype;m.set=function(a,b){try{this.b[a]=b}catch(c){}};m.get=function(a){return this.b[a]||null};
|
||||
ab.show.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=tb("Computer",c.id))&&c.T&&!c.A.ba&&c.Wa(vi)}});ab.exit.push(function(){for(var a=w(document,v,"computer"),b=0;b<a.length;b++){var c=u(a[b]);(c=tb("Computer",c.id))&&c.A.ba&&Ig(c,!(!c.b||c.F),!0)}});function G(a,b,c){this.id=a.id;this.i="";this.b={};this.v=this.j=!1;this.key=Ji(a,b,c);zi(this,a.Ub)}m=G.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 ni(a,b){return b?(a.i=b,a.v=!0,a.j=!1,!0):a.v?!0:Ma()&&(b=Oa(a.key))?(a.i=b,a.v=!0):!1}function si(a){var b=!0;if(!a.j)try{a.b=JSON.parse(a.i),a.j=!0}catch(c){r(c.message||c),b=!1}return b}function Ai(a){var b=!0;if(Ma()){var c=JSON.stringify(a.b);Ta(a.key,c)||(r("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 zi(a,b){a.i="";a.b={};a.v=a.j=!1;b&&a.set("parms",b)}m.clear=function(a){zi(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+"...");Ja(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)})}
|
||||
|
|
|
|||
|
|
@ -296,7 +296,7 @@ f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;b
|
|||
function Bj(a,b,c,d,e,f){var g,k,l,m=!1,n=0,q=[],t=[],r=a.W;for(a.W=e;c<d;){var z;k=b[c++].trim();l=c<d?b[c++]:"";if(k)z=Cj(a,k,null,f,n);else if("{"==l){k=1;for(z=c;c<d;)if(c++,l=c<b.length?b[c++]:"","{"==l)k++;else if("}"==l&&!--k)break;z=Bj(a,b,z,c-1,a.W,f);null!=z&&n&&(z=Dj(z,n));k=c<d?b[c++].trim():"";l=c<d?b[c++]:""}else{if(" "==l)continue;if("^B"==l){a.W=2;continue}if("^O"==l){a.W=8;continue}if("^D"==l){a.W=10;continue}if(!(n&-1073741824)){if("+"==l)continue;if("-"==l){n=n<<2|1;continue}if("~"==
|
||||
l||"^-"==l){n=n<<2|2;continue}if("^L"==l){n=n<<2|3;continue}}m=!0;break}if(void 0===z)if(f)f.push(k),z=0;else{m=!0;f=[];break}q.push(zj(z));if(" "==l)if(c<b.length-1&&!b[c])c++,l=b[c++];else{m=!0;break}if(!l)break;n="<"==a.O[0]?Ej:Fj;if(!n[l]){m=!0;break}t.length&&n[l]<=n[t[t.length-1]]&&Aj(q,t,1);t.push(l);a.W="^_"==l?10:e;n=0}if(m||!Aj(q,t)||1!=q.length)m=!0;m?f||a.v("parse error ("+(k||l)+")"):g=q.pop();a.W=r;return g}
|
||||
function Gj(a,b,c,d,e){for(var f;0<=(f=b.indexOf(c));){for(var g=0,k=f+1,l=e;k<b.length;){var m=b[k++];if(m==c){l=-1;break}if(!l)break;l--;m=m.charCodeAt(0);7==d?m&=127:m=m-32&63;g=zj(g*Math.pow(2,d)+m,d*e,!0)}if(0<=l){a.v("parse error ("+c+b+c+")");return}b=b.substr(0,f)+K(a,g,-1)+b.substr(k)}return b}
|
||||
function Hj(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.O[0]&&(b=b.split(a.O[0]).join("{").split(a.O[1]).join("}"));b=Gj(a,b,'"',7,5);if(!b)return d;b=Gj(a,b,"'",6,6);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=Bj(a,b,0,b.length,a.W,c);void 0!==d&&e&&Ij(a,null,d)}return d}
|
||||
function Hj(a,b,c){var d=void 0,e=!1===c;c=Array.isArray(c)?c:void 0;if(b){"{"!=a.O[0]&&(b=b.split(a.O[0]).join("{").split(a.O[1]).join("}"));b=Gj(a,b,'"',7,5);if(!b)return d;b=Gj(a,b,"'",6,6);if(!b)return d;16!=a.W&&(b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_").replace(/\s+/g," "));b=b.split(/({|}|\|\||&&|\||\^!|\^B|\^O|\^D|\^L|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|\^\/|\/|\*|,,| )/);d=Bj(a,b,0,b.length,a.W,c);void 0!==d&&e&&Ij(a,null,d)}return d}
|
||||
function Dj(a,b){for(;b;){switch(b&3){case 1:a=-zj(a);break;case 2:a|=-1;break;case 3:for(var c=35;0<=c&&!(a&Math.pow(2,c));)c--;a=35-c}b>>>=2}return a}
|
||||
function Cj(a,b,c,d,e){e=void 0===e?0:e;var f,g=Array.isArray(d)?d:void 0;if(null!=b){f=a.re(b);if(0<=f)f=a.Bd(f);else if(f=b,a.i[f]?f=a.i[f].value:(f=f.substr(0,6),f=a.i[f]&&a.i[f].value),null!=f){var k=a.i[b]&&a.i[b].ih;k&&(g?g.push(k):(g=Hj(a,k,d),void 0!==g?f+=g:(d||a.v("undefined "+(c||"value")+": "+b+" ("+k+")"),f=void 0)))}else f=ma(b,1<b.length||10<a.W?a.W:10);null!=f?f=zj(Dj(f,e)):d||a.v("invalid "+(c||"value")+": "+b)}else d||a.v("missing "+(c||"value"));return f}
|
||||
function Ij(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.W?K(a,c,32,8,1)+" "+c+".":K(a,c,32,16,1)+" "+K(a,c,32,8,1)+" "+K(a,c,32,2,8)+" "+c+".",32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.v((null!=b?b+": ":"")+d);return e}function Jj(a,b){var c=0;if(a.i){if(b)return Ij(a,b,a.i[b]&&a.i[b].value);b=Object.keys(a.i);b.sort();for(var d=0;d<b.length;d++)Ij(a,b[d],a.i[b[d]].value),c++}return 0<c}
|
||||
|
|
|
|||
Loading…
Reference in a new issue