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};

View file

@ -205,7 +205,11 @@ ROM.prototype.doneLoad = function(sURL, sROMData, nErrorCode)
*/
var rom = eval("(" + sROMData + ")");
var ab = rom['bytes'];
var adw = rom['data'];
/*
* Resource 'longs' should always be 32-bit DWORD values, whereas 'data' bit lengths
* will vary according to the machine architecture for which the resource was designed.
*/
var adw = rom['longs'] || rom['data'];
if (ab) {
this.abROM = ab;

View file

@ -189,7 +189,11 @@ class ROM8080 extends Component {
*/
var rom = eval("(" + sROMData + ")");
var ab = rom['bytes'];
var adw = rom['data'];
/*
* Resource 'longs' should always be 32-bit DWORD values, whereas 'data' bit lengths
* will vary according to the machine architecture for which the resource was designed.
*/
var adw = rom['longs'] || rom['data'];
if (ab) {
this.abROM = ab;

View file

@ -209,7 +209,11 @@ class ROM extends Component {
*/
var rom = eval("(" + sROMData + ")");
var ab = rom['bytes'];
var adw = rom['data'];
/*
* Resource 'longs' should always be 32-bit DWORD values, whereas 'data' bit lengths
* will vary according to the machine architecture for which the resource was designed.
*/
var adw = rom['longs'] || rom['data'];
if (ab) {
this.abROM = ab;

View file

@ -141,8 +141,8 @@ J.INIT=[[J.Oc.INIT,J.xa.ic|J.xa.dd],[J.Ka.Uc,J.Ka.Vc],[J.ub.Xc,J.ub.Tc,J.ub.Wc,J
be.Cb={2:Zd.prototype.Wd,3:Zd.prototype.Yd,4:Zd.prototype.Xd,5:Zd.prototype.Zd,6:Zd.prototype.$d};J.Bb={66:Zd.prototype.Md};J.Cb={66:Zd.prototype.ae,98:Zd.prototype.de,162:Zd.prototype.ce,194:Zd.prototype.be};yb(function(){for(var a=Aa(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=xa(c),d=new Zd(d);ya(d,c)}});
function ge(a){n.call(this,"ROM",a);this.b=null;this.A=a.addr;this.g=a.size;this.w=a.alias;this.j=a.file;this.B=Va(this.j);if(this.j){a=this.j;var b=Wa(this.B);"json"!=b&&"hex"!=b&&(a=Ya()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;jb(a,null,!0,function(a,b,f){he(c,a,b,f)})}}aa(ge,n);ge.prototype.Ea=function(a,b,c,d){this.H=b;this.u=c;this.K=d;ie(this)};
ge.prototype.va=function(){if(this.ra){if(this.K){var a=this.K,b=this.id,c=this.A,d=this.g,e=this.ra,f=[],g;for(g in e){var h=e[g];"number"==typeof h&&(e[g]=h={o:h});var k=h.o,p=h.a;if(void 0!==k){var u=f,k=[k>>>0,g],v=gb(u,k,a.Ac);0>v&&u.splice(-(v+1),0,k)}p&&(h.a=p.replace(/''/g,'"'))}a.A.push({Nf:b,J:c,Qd:d,ra:e,zc:f})}delete this.ra}return!0};ge.prototype.ua=function(){return!0};
function he(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{oa(a.eb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,g=e.data;if(f)a.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=c.replace(/\n/gm,
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ra(b[e],16);ie(a)}}
function he(a,b,c,d){if(d)a.aa("Unable to load system ROM (error "+d+": "+b+")");else{oa(a.eb,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.b=f;else if(g)for(a.b=Array(4*g.length),d=c=0;c<g.length;c++)a.b[d++]=g[c]&255,a.b[d++]=g[c]>>8&255,a.b[d++]=g[c]>>16&255,a.b[d++]=g[c]>>24&255;else a.b=e;a.ra=e.symbols;if(!a.b.length){q("Empty ROM: "+b);return}if(1==a.b.length){q(a.b[0]);return}}catch(h){a.aa("ROM data error: "+h.message);return}else for(b=
c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=Ra(b[e],16);ie(a)}}
function ie(a){if(!Ia(a))if(!a.j)Ja(a);else if(a.b&&a.H){a.g||(a.g=a.b.length);if(a.b.length!=a.g)Ha(a,"ROM size ("+t(a.b.length,8,!0)+") does not match specified size ("+t(a.g,8,!0)+")");else{var b;b=a.A;if(Qb(a.H,b,a.g,xc)){var c;for(c=0;c<a.b.length;c++)Yb(a.H,b+c,a.b[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.H,g=d.g,h=[],k=d.A>>>f.g;0<g&&k<f.b.length;)h.push(f.b[k++]),g-=f.w;f=d.H;d=d.g;g=0;for(e>>>=
f.g;0<d&&e<f.b.length;){k=h[g++];if(!k)break;f.b[e++]=k;d-=f.w}}delete a.b}}Ja(a)}}yb(function(){for(var a=Aa(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=xa(c),d=new ge(d);ya(d,c)}});
function je(a){n.call(this,"RAM",a);this.ra=this.g=null;this.w=a.addr;this.A=a.size;this.Qa=a.load;this.Ia=a.exec;this.j=!1;this.b=a.file;this.B=Va(this.b);if(this.b){a=this.b;var b=Wa(this.B);"json"!=b&&"hex"!=b&&(a=Ya()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;jb(a,null,!0,function(a,b,f){f?c.aa("Unable to load RAM resource (error "+f+": "+a+")"):(oa(c.eb,a,b),(a=kb(a,b))?(c.g=a.ka,c.ra=a.ra,null==c.Qa&&(c.Qa=a.Qa),null==c.Ia&&(c.Ia=a.Ia)):c.b=null,ke(c))})}}aa(je,n);

View file

@ -132,8 +132,8 @@ V.INIT=[[V.nc.INIT,V.ga.Cc|V.ga.Dc],[V.ua.sc,V.ua.tc],[V.Xa.vc,V.Xa.rc,V.Xa.uc,V
T.gb={2:S.prototype.qd,3:S.prototype.sd,4:S.prototype.rd,5:S.prototype.td,6:S.prototype.ud};V.fb={66:S.prototype.gd};V.gb={66:S.prototype.vd,98:S.prototype.yd,162:S.prototype.xd,194:S.prototype.wd};Va(function(){for(var a=y(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new S(d);sa(d,c)}});
function Jc(a){p.call(this,"ROM",a);this.a=null;this.g=a.addr;this.b=a.size;this.f=a.alias;this.c=a.file;this.h=Ca(this.c);if(this.c){a=this.c;var b=Da(this.h);"json"!=b&&"hex"!=b&&(a=Fa()+"/api/v1/dump?file="+this.c+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,f){Kc(c,a,b,f)})}}l(Jc,p);Jc.prototype.qa=function(a,b,c,d){this.u=b;this.m=c;this.J=d;Lc(this)};Jc.prototype.ca=function(){this.sa&&(this.J&&this.J.a(this.id,this.g,this.b,this.sa),delete this.sa);return!0};
Jc.prototype.ba=function(){return!0};
function Kc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{ka(a.Ka,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.sa=e.symbols;if(!a.a.length){t("Empty ROM: "+b);return}if(1==a.a.length){t(a.a[0]);return}}catch(h){a.G("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]=Ba(b[e]);Lc(a)}}
function Kc(a,b,c,d){if(d)a.G("Unable to load system ROM (error "+d+": "+b+")");else{ka(a.Ka,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.sa=e.symbols;if(!a.a.length){t("Empty ROM: "+b);return}if(1==a.a.length){t(a.a[0]);return}}catch(h){a.G("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]=Ba(b[e]);Lc(a)}}
function Lc(a){if(!za(a))if(!a.c)A(a);else if(a.a&&a.u){a.b||(a.b=a.a.length);if(a.a.length!=a.b){var b="ROM size ("+B(a.a.length,8,!0)+") does not match specified size ("+B(a.b,8,!0)+")";a.i.error=!0;a.G(b)}else{b=a.g;if(kb(a.u,b,a.b,Cb)){var c;for(c=0;c<a.a.length;c++)sb(a.u,b+c,a.a[c]);b=!0}else b=!1;if(b){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.b,h=[],m=d.g>>>f.b;0<g&&m<f.a.length;)h.push(f.a[m++]),g-=f.c;f=d.u;
d=d.b;g=0;for(e>>>=f.b;0<d&&e<f.a.length;){m=h[g++];if(!m)break;f.a[e++]=m;d-=f.c}}delete a.a}}A(a)}}Va(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=u(c),d=new Jc(d);sa(d,c)}});
function Mc(a){p.call(this,"RAM",a);this.sa=this.b=null;this.f=a.addr;this.g=a.size;this.Aa=a.load;this.ta=a.exec;this.c=!1;this.a=a.file;this.h=Ca(this.a);if(this.a){a=this.a;var b=Da(this.h);"json"!=b&&"hex"!=b&&(a=Fa()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;La(a,null,!0,function(a,b,f){f?c.G("Unable to load RAM resource (error "+f+": "+a+")"):(ka(c.Ka,a,b),(a=Ma(a,b))?(c.b=a.T,c.sa=a.sa,null==c.Aa&&(c.Aa=a.Aa),null==c.ta&&(c.ta=a.ta)):c.a=null,Nc(c))})}}l(Mc,p);

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};