Make sure all machines support JSON-encoded resources with either 'longs' or 'data' arrays

This commit is contained in:
Jeff Parsons 2017-02-28 16:20:49 -08:00 committed by Jeff Parsons
commit 51274c1a30
9 changed files with 25 additions and 13 deletions

View file

@ -487,7 +487,7 @@ b,c){wn(this,1,a,b,c)},212:function(a,b,c){xn(this,1,a,b,c)},214:function(a,b,c)
ab(function(){for(var a=Ab(document,"pcx86","chipset"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new al(d);zb(d,c);nn(d)}});
function Yp(a){nb.call(this,"ROM",a);this.A=null;this.F=a.addr;this.C=a.size;this.D=a.alias;this.G=a.file;this.B=a.notify;this.I=null;if(this.B&&(a=this.B.indexOf("["),0<a)){try{this.I=eval(this.B.substr(a))}catch(d){}this.B=this.B.substr(0,a)}if(this.G){a=this.G;var b=wa(va(a));"json"!=b&&"hex"!=b&&(a=Ma()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,f){Zp(c,a,b,f)})}}ba(Yp,nb);Yp.prototype.uc=function(a,b,c,d){this.ka=b;this.H=c;this.ba=d;$p(this)};
Yp.prototype.Xb=function(){this.Fd&&(this.ba&&aq(this.ba,this.id,0,this.F>>>4,0,this.F,this.C,this.Fd),delete this.Fd);return!0};Yp.prototype.Wb=function(){return!0};
function Zp(a,b,c,d){if(d)a.Fa("Unable to load system ROM (error "+d+": "+b+")");else{pb(a.xe,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Fd=e.symbols;if(!a.A.length){hb("Empty ROM: "+b);return}if(1==a.A.length){hb(a.A[0]);return}}catch(h){a.Fa("ROM data error: "+h.message);return}else for(b=
function Zp(a,b,c,d){if(d)a.Fa("Unable to load system ROM (error "+d+": "+b+")");else{pb(a.xe,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.Fd=e.symbols;if(!a.A.length){hb("Empty ROM: "+b);return}if(1==a.A.length){hb(a.A[0]);return}}catch(h){a.Fa("ROM data error: "+h.message);return}else for(b=
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.length;e++)a.A[e]=oa(b[e],16);$p(a)}}
function $p(a){if(!Ib(a))if(!a.G)Jb(a);else if(a.A&&a.ka){a.C||(a.C=a.A.length);if(a.A.length!=a.C)Gb(a,"ROM size ("+q(a.A.length,8,!0)+") does not match specified size ("+q(a.C,8,!0)+")");else{var b;b=a.F;if(pc(a.ka,b,a.C,Ec)){for(var c=0;c<a.A.length;c++){var d=a.ka,e=b+c;d.aa[(e&d.C)>>>d.A].bf(e&d.D,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(c=0;c<b.length;c++){var d=a,e=b[c],f=yc(d.ka,d.F,d.C);xc(d.ka,e,d.C,f)}a.B&&((b=ub(a.B,a.id))?
(c=a.A,d=a.I,b.La==bq?cq(b,c,d||[12640,8752],8):b.La==dq&&cq(b,c,d||[14221,16269],8),Jb(b)):a.Fa("Unable to find component: "+a.B));delete a.A}}Jb(a)}}ab(function(){for(var a=Ab(document,"pcx86","rom"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new Yp(d);zb(d,c)}});function eq(a){nb.call(this,"RAM",a);this.B=a.addr;this.A=a.size;this.F=a.test;this.D=!!this.A;this.C=!1}ba(eq,nb);l=eq.prototype;l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.ba=d;this.W=Xb(a,"ChipSet");Jb(this)};

View file

@ -457,8 +457,8 @@ b){il(this,1,1,b)},198:function(a,b){kl(this,1,1,b)},200:function(a,b){il(this,1
b){Zl(this,1,0,b)},73:function(a,b){Zl(this,1,1,b)},74:function(a,b){Zl(this,1,2,b)},75:function(a,b){gm(this,1,b)}};Ma(function(){for(var a=eb(document,"pcx86","chipset"),b=0;b<a.length;b++){var c=a[b],d=bb(c),d=new T(d);db(d,c);fl(d)}});
function Mn(a){t.call(this,"ROM",a);this.A=null;this.F=a.addr;this.C=a.size;this.D=a.alias;this.G=a.file;this.B=a.notify;this.I=null;if(this.B&&(a=this.B.indexOf("["),0<a)){try{this.I=eval(this.B.substr(a))}catch(d){}this.B=this.B.substr(0,a)}if(this.G){a=this.G;var b=qa(pa(a));"json"!=b&&"hex"!=b&&(a=Ca()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;Ba(a,null,!0,function(a,b,f){Nn(c,a,b,f)})}}ba(Mn,t);Mn.prototype.hc=function(a,b,c,d){this.ma=b;this.U=c;this.Ea=d;On(this)};
Mn.prototype.Ob=function(){this.H&&(this.Ea&&this.Ea.A(this.id,0,this.F>>>4,0,this.F,this.C,this.H),delete this.H);return!0};Mn.prototype.Nb=function(){return!0};
function Nn(a,b,c,d){if(d)a.Aa("Unable to load system ROM (error "+d+": "+b+")");else{Va(a.Vd,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.H=e.symbols;if(!a.A.length){r("Empty ROM: "+b);return}if(1==a.A.length){r(a.A[0]);return}}catch(h){a.Aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.length;e++)a.A[e]=na(b[e],16);On(a)}}
function Nn(a,b,c,d){if(d)a.Aa("Unable to load system ROM (error "+d+": "+b+")");else{Va(a.Vd,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.longs||e.data;if(f)a.A=f;else if(g)for(a.A=Array(4*g.length),d=c=0;c<g.length;c++)a.A[d++]=g[c]&255,a.A[d++]=g[c]>>8&255,a.A[d++]=g[c]>>16&255,a.A[d++]=g[c]>>24&255;else a.A=e;a.H=e.symbols;if(!a.A.length){r("Empty ROM: "+b);return}if(1==a.A.length){r(a.A[0]);return}}catch(h){a.Aa("ROM data error: "+h.message);return}else for(b=
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.A=Array(b.length),e=0;e<b.length;e++)a.A[e]=na(b[e],16);On(a)}}
function On(a){if(!lb(a))if(!a.G)mb(a);else if(a.A&&a.ma){a.C||(a.C=a.A.length);if(a.A.length!=a.C)kb(a,"ROM size ("+oa(a.A.length,8,!0)+") does not match specified size ("+oa(a.C,8,!0)+")");else{var b;b=a.F;if(Qb(a.ma,b,a.C,cc)){for(var c=0;c<a.A.length;c++){var d=a.ma,e=b+c;d.X[(e&d.D)>>>d.B].gf(e&d.C,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Xb(d.ma,d.F,d.C);Wb(d.ma,e,d.C,f)}a.B&&((b=Za(a.B,a.id))?
(c=a.A,d=a.I,b.Ma==Pn?Qn(b,c,d||[12640,8752],8):b.Ma==Rn&&Qn(b,c,d||[14221,16269],8),mb(b)):a.Aa("Unable to find component: "+a.B));delete a.A}}mb(a)}}Ma(function(){for(var a=eb(document,"pcx86","rom"),b=0;b<a.length;b++){var c=a[b],d=bb(c),d=new Mn(d);db(d,c)}});function Sn(a){t.call(this,"RAM",a);this.B=a.addr;this.A=a.size;this.F=a.test;this.D=!!this.A;this.C=!1}ba(Sn,t);l=Sn.prototype;l.hc=function(a,b,c,d){this.ma=b;this.U=c;this.Ea=d;this.V=vb(a,"ChipSet");mb(this)};
l.Ob=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};l.Nb=function(a){return a&&this.controller?this.save():!0};