Changed toStrBase() to accept a number of bits rather than a number of bytes, because bytes aren't always 8 bits (see PDP-10)

This commit is contained in:
Jeff Parsons 2017-02-24 10:58:56 -08:00 • committed by Jeff Parsons
commit c0de732f76
14 changed files with 260 additions and 239 deletions

View file

@ -75,7 +75,7 @@ function ob(a,b,c,d){for(var e=b,f=c,g=e>>>a.f;0<f&&g<a.a.length;){var h=a.a[g],
function nb(a){for(var b=0,c=[],d=0;d<a.h;d++){var e=a.a[d];if(e.pa||e.Va){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,h=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[h++]=n-g;l[h++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function pb(a,b,c){x("Memory block error ("+a+": "+F(b)+","+F(c)+")");return!1}var qb=1,sb=2;function tb(a){u.call(this,"Device",a)}r(tb,u);k=tb.prototype;k.U=function(a,b,c,d){this.j=b;this.m=a;this.c=c;this.o=d;E(this)};
k.T=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};k.N=function(a){return a?this.save():!0};k.reset=function(){};k.save=function(){return(new P(this)).data()};k.restore=function(){return!0};I(function(){for(var a=D(document,C,"device"),b=0;b<a.length;b++){var c,d=a[b];c=A(d);switch(c.type){case "default":c=new tb(c),B(c,d)}}});
function U(a,b,c,d,e){this.id=ub+=2;this.X=b;this.sa=c;this.size=d||0;this.type=e||vb;this.m=e==wb;this.ba=this.Ca=this.o=this.aa;this.ta=this.ua=this.a=this.da;this.i=this.j=0;mb(this);this.pa=this.Va=!1;if(this.size){a=this.c=Array(this.size);for(b=0;b<a.length;b++)a[b]=0;xb(this,yb)}else xb(this)}k=U.prototype;k.save=function(){return this.c};k.restore=function(a){return a&&this.size==a.length?(this.c=a,this.pa=!0):!1};function xb(a,b){b||(b=zb);Ab(a,b,void 0);Bb(a,b,void 0)}
function Ab(a,b,c){c&&a.i||(a.ba=b[2]||a.aa);if(c||void 0===c)a.o=b[0]||a.aa,a.Ca=b[2]||a.aa}function Bb(a,b,c){c&&a.j||(a.ta=!a.m&&b[3]||a.da);if(c||void 0===c)a.a=b[1]||a.da,a.ua=b[3]||a.da}function mb(a,b){a.i=a.j=0;b&&((a.i=b.i)&&Ab(a,Cb,!1),(a.j=b.j)&&Bb(a,Cb,!1))}k.aa=function(){return 0};k.da=function(){};k.hb=function(a,b,c,d){a=this.c[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};k.kb=function(a){return this.c[a]};
function Ab(a,b,c){c&&a.i||(a.ba=b[2]||a.aa);if(c||void 0===c)a.o=b[0]||a.aa,a.Ca=b[2]||a.aa}function Bb(a,b,c){c&&a.j||(a.ta=!a.m&&b[3]||a.da);if(c||void 0===c)a.a=b[1]||a.da,a.ua=b[3]||a.da}function mb(a,b){a.i=a.j=0;b&&((a.i=b.i)&&Ab(a,Cb,!1),(a.j=b.j)&&Bb(a,Cb,!1))}k.aa=function(){return-1};k.da=function(){};k.hb=function(a,b,c,d){a=this.c[a];return a=32>=c+d?a>>c&(1<<d)-1:Math.trunc(a/Math.pow(2,c))%Math.pow(2,d)};k.kb=function(a){return this.c[a]};
k.tb=function(a,b,c,d,e){c=this.c[b];var f=Math.pow(2,d);a%=Math.pow(2,e);d=c%Math.pow(2,d+e);c=c-d+a*f+d%f;this.c[b]!=c&&(this.c[b]=c,this.pa=!0)};k.vb=function(a,b){this.c[b]=a;this.pa=!0};k.gb=function(a,b,c,d){return this.o(a,b,c,d)};k.ib=function(a,b){return this.Ca(a,b)};k.sb=function(a,b,c,d,e){this.m||this.a(a,b,c,d,e)};k.ub=function(a,b,c){this.m||this.ua(a,b,c)};
var vb=0,wb=2,rb=["NONE","RAM","ROM"],ub=0,zb=[],yb=[U.prototype.hb,U.prototype.tb,U.prototype.kb,U.prototype.vb],Cb=[U.prototype.gb,U.prototype.sb,U.prototype.ib,U.prototype.ub];
function V(a,b){u.call(this,"CPU",a);b=+a.cycles||b;var c=+a.multiplier||1;this.wa=0;this.za=b;this.L=c;this.xa=Math.round(this.za/1E4)/100;this.H=this.xa*this.L;this.ya=this.ga=this.M=this.ma=0;this.b.u=this.b.Da=!1;this.b.G=a.autoStart;"string"==typeof this.b.G&&(this.b.G="true"==this.b.G);this.b.oa=!1;this.ka=this.K=0;this.la=+a.csStart;this.ea=+a.csInterval;this.fa=+a.csStop;this.l=[];this.Ja=this.nb.bind(this);this.B=this.h=this.v=this.A=this.g=this.ca=this.s=this.O=this.Aa=this.F=0;this.ha=