Added support for converting numbers to/from octal, along with improved support for binary numbers

This commit is contained in:
Jeff Parsons 2016-09-15 18:23:09 -07:00
commit 1265104e6d
15 changed files with 888 additions and 789 deletions

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
(function(){var l,aa,ba={163840:[40,1,8],184320:[40,1,9],327680:[40,2,8],368640:[40,2,9],737280:[80,2,9],1228800:[80,2,15],1474560:[80,2,18],2949120:[80,2,36],21368320:[615,4,17]},n={Sm:1,Rj:3,Tm:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Jd:65,vh:66,wh:67,xh:68,E:69,yh:70,zh:71,Ah:72,Bh:73,Ch:74,Dh:75,Eh:76,Fh:77,Hh:78,Jh:79,Lh:80,Q:81,Oh:82,
Qh:83,Sh:84,Uh:85,Wh:86,Yh:87,$h:88,bi:89,vf:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,Ld:97,ak:98,bk:99,d:100,e:101,lk:102,mk:103,nk:104,pk:105,Al:106,k:107,Bl:108,El:109,n:110,Jl:111,p:112,q:113,r:114,Lm:115,t:116,Om:117,Pm:118,Qm:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},ca={};ca[186]=n[";"];ca[187]=n["="];ca[188]=n[","];ca[189]=n["-"];ca[190]=n["."];ca[191]=n["/"];ca[192]=n["`"];ca[219]=n["["];ca[220]=n["\\"];ca[221]=n["]"];ca[222]=n["'"];ca[173]=n["-"];var q={};q[n["1"]]=n["!"];
q[n["2"]]=n["@"];q[n["3"]]=n["#"];q[n["4"]]=n.$;q[n["5"]]=n["%"];q[n["6"]]=n["^"];q[n["7"]]=n["&"];q[n["8"]]=n["*"];q[n["9"]]=n["("];q[n["0"]]=n[")"];q[186]=n[":"];q[187]=n["+"];q[188]=n["<"];q[189]=n._;q[190]=n[">"];q[191]=n["?"];q[192]=n["~"];q[219]=n["{"];q[220]=n["|"];q[221]=n["}"];q[222]=n['"'];q[173]=n._;q[61]=n["+"];q[59]=n[":"];
function ea(a,b){var c;if(a){b||(b=10);if("$"==a.charAt(0))b=16,a=a.substr(1);else if("0x"==a.substr(0,2))b=16,a=a.substr(2);else{var d=a.charAt(a.length-1).toLowerCase();"h"==d?(b=16,d=null):"."==d&&(b=10,d=null);null==d&&(a=a.substr(0,a.length-1))}var e,d=a,f=b;(f&&10!=f?16==f?null!==d.match(/^[0-9a-f]+$/i):2==f&&null!==d.match(/^[01]+$/i):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}
function fa(a,b){var c="";void 0===b?b=8:8<b&&(b=8);if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;){var d=a&15,d=d+(0<=d&&9>=d?48:55),c=String.fromCharCode(d)+c;a>>=4}return c}function ga(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function ha(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}
function ia(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ja={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ka(a){return a.replace(/[&<>"']/g,function(a){return ja[a]})}function la(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
function ea(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?null!==d.match(/^[0-9a-f]+$/i):8==e?null!==d.match(/^[0-7]+$/):
2==e&&null!==d.match(/^[01]+$/):null!==d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function fa(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function ga(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}
function ha(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function ia(a,b){return-1!==a.indexOf(b,a.length-b.length)}var ja={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ka(a){return a.replace(/[&<>"']/g,function(a){return ja[a]})}function la(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
var ma={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"},na=Date.now||function(){return+new Date};
function oa(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}var pa=[31,28,31,30,31,30,31,31,30,31,30,31];function qa(a,b){var c=0,d=1,e;for(e in a){if(d>=arguments.length)break;var f=a[e],g=arguments[d++],c=c&~f.rg|g<<f.shift&f.rg}return c}function ra(a,b){return(b&a.rg)>>a.shift}
function sa(a,b,c,d){var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var h=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(h.onreadystatechange=function(){4===h.readyState&&(f=h.responseText,200==h.status||!h.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=h.status||-1),d&&d(a,f,e))});if(b&&"object"==
@ -29,7 +29,7 @@ function lb(a,b,c,d){this.A=[a,b,c,d];this.B=null;void 0===a&&(this.A[0]=256*Mat
function nb(a,b,c,d){void 0===d&&(d=b>=c>>2);d?(b=new mb(a.x,a.y,a.Fc,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new mb(a.x,a.y,a.Fc*b/c|0,a.A),a.x+=b.Fc,a.Fc-=b.Fc);return b}l=kb.prototype;l.zb=function(a,b,c,d){return this.ba&&this.ba.zb(a,b,c,d)||this.A&&this.A.zb(a,b,c,d)||this.C&&this.C.zb(a,b,c,d)?!0:this.parent.zb.call(this,a,b,c,d)};l.pc=function(a,b,c,d){this.ba=a;this.ia=b;this.A=c;this.Ia=d;this.C=ob(a,"Keyboard")};l.Ub=function(a,b){b||pb();return!0};l.Tb=function(){return!0};
l.le=function(a,b){a.button||(this.R=b?0:-1,qb(this,a,b))};l.sg=function(a){qb(this,a)};
function qb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.R||(a.R=Math.abs(a.H-d)>Math.abs(a.I-b)?1:2),1==a.R?b=a.I:2==a.R&&(d=a.H));a.H=d;a.I=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.B&&a.B.ee)for(f=0;f<a.B.ee.length;f++)if(e=a.B.ee[f],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.B.Ke[f],g=ra(rb.Bj,a.B.eg[d.qk]),f=g*a.ia.xb,d=(g+d.fd)*a.ia.xb-1;0<b&&(f+=e.Fc*(b-1)*a.ma);f+=c*a.ma;f|=0;f>d&&
(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.oa)){b=c;if(a.context&&a.W&&a.Y){e=a.W.width;a.Y.fillStyle="black";a.Y.fillRect(0,360,e,360);sb(a,378,a.W,a.Y);a.Z=a.pa.width/24|0;if(null==b)tb(a,"Mouse over memory to dump");else for(tb(a,"0x"+fa(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ia;var k=b++;h=h.R[(k&h.Fa)>>>h.da].Ed(k&h.B,k);tb(a,fa(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}tb(a,d,null,0,1)}a.context.drawImage(a.W,0,360,e,360,a.La,a.Ta,a.za,a.Ea)}a.oa=c}}}
(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.oa)){b=c;if(a.context&&a.W&&a.Y){e=a.W.width;a.Y.fillStyle="black";a.Y.fillRect(0,360,e,360);sb(a,378,a.W,a.Y);a.Z=a.pa.width/24|0;if(null==b)tb(a,"Mouse over memory to dump");else for(tb(a,fa(b,8,!0),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ia;var k=b++;h=h.R[(k&h.Fa)>>>h.da].Ed(k&h.B,k);tb(a,fa(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}tb(a,d,null,0,1)}a.context.drawImage(a.W,0,360,e,360,a.La,a.Ta,a.za,a.Ea)}a.oa=c}}}
l.Zd=function(){};function ub(a,b,c,d){a.B.Ke[a.B.hi++]={qk:b,fd:c,type:d};return qa(rb,b,c,0,d)}function sb(a,b,c,d){var e,f=null.style.color,g=a.xa=10;a.D=g;a.K=b;a.L=a.ka=18;e||(e=a.ha||a.ka+"px Monaco, Lucida Console, Courier New");a.P=a.ha=e;c&&(a.pa=c);d&&(a.G=d,a.qa=f||"white")}
function tb(a,b,c,d,e){a.G.font=a.P;a.G.fillStyle=a.qa;a.G.fillText(b,a.D,a.K);a.D+=a.Z;null!=c&&(16!=a.Ja?b=c.toString():(b=8>a.va?"0x":"",b+=fa(c,a.va)),a.G.fillText(b,a.D,a.K),a.D+=a.Z);d&&(a.D+=a.Z*d);e&&(a.D=a.xa,a.K+=(a.L+2)*(e||1))}function pb(){for(var a=!1,b=cb(document,"pcx86","panel"),c=0;c<b.length;c++){var d=b[c],e=$a(d),f=Ya(e.id);f||(a=!0,f=new kb(e));bb(f,d);a&&eb(f)}}Ia(pb);
function vb(a,b,c){Ma.call(this,"Bus",a,vb);this.A=b;this.Ia=c;this.D=a.busWidth||20;this.L=Math.pow(2,this.D);this.ba=this.Fa=this.L-1|0;this.da=32==this.D||20>=this.D?12:24>=this.D?14:15;this.xb=1<<this.da;this.ia=this.xb>>2;this.B=this.xb-1;this.H=this.L/this.xb|0;this.C=this.H-1;this.I=[];this.K=[];this.S=[];this.P=[];a=new u;wb(a,this.Ia);this.R=Array(this.H);for(b=0;b<this.H;b++)this.R[b]=a;a=this.A;b=this.R;c=this.da;a.vc=a.R=b;a.da=c;a.xb=1<<a.da;a.pb=a.xb-1;a.pf=b.length;a.$d=a.pf-1;a=this.A;
@ -40,8 +40,8 @@ function Kb(a,b,c){if(!(b&a.B||!c||c&a.B)){for(var d=b>>>a.da;0<c;){var e=a.R[d]
function Hb(a,b,c,d,e){for(var f=0,g=b>>>a.da;0<c&&g<a.R.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new u(b),m=k,p=e,x=a.Ia;m.id=h.id|1;m.Ge=h.Ge;m.size=h.size;p&&(m.type=p,m.I=p==Lb);hb?(m.R=h.R,m.S=h.S,m.Ka=h.Ka,m.td=h.td,m.V=h.V,Jb(m,Mb?Nb:Ob)):(m.V=h.V,Jb(m,Pb));wb(m,x,h);h=k}a.R[g++]=h;c-=a.xb}}l.Jb=function(a){return this.R[(a&this.Fa)>>>this.da].Wb(a&this.B,a)};
l.ga=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;return b!=this.B?this.R[c].Ae(b,a):this.R[c++].Wb(b,a)|this.R[c&this.C].Wb(0,a+1)<<8};function Qb(a,b){var c=b&a.B,d=(b&a.Fa)>>>a.da;return c!=a.B?a.R[d].jf(c,b):a.R[d++].Ed(c,b)|a.R[d&a.C].Ed(0,b+1)<<8}l.fa=function(a){var b=a&this.B,c=(a&this.Fa)>>>this.da;if(b<this.B-2)return this.R[c].Fd(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.R[c].Wb(b++,a++)<<f,--g||(c=c+1&this.C,b=0),f+=8;return d};
l.Mc=function(a,b){this.R[(a&this.Fa)>>>this.da].Yb(a&this.B,b&255,a)};l.bb=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;c!=this.B?this.R[d].Ie(c,b&65535,a):(this.R[d++].Yb(c,b&255,a),this.R[d&this.C].Yb(0,b>>8&255,a+1))};function Rb(a,b,c){var d=b&a.B,e=(b&a.Fa)>>>a.da;d!=a.B?a.R[e].uh(d,c&65535,b):(a.R[e++].of(d,c&255,b),a.R[e&a.C].of(0,c>>8&255,b+1))}
l.Va=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;if(c<this.B-2)this.R[d].He(c,b);else for(var e=4,f=4-(c&3);e--;)this.R[d].Yb(c++,b&255,a++),--f||(d=d+1&this.C,c=0),b>>>=8};function Sb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?r("Input port 0x"+fa(k,4)+" already registered"):f.I[k]=[h,!1]}}
function Tb(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.S[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g&&g[0]&&(m=g[0](b,d),void 0===m?m=k:m&=k);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}function Ub(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.K[k]?r("Output port 0x"+fa(k,4)+" already registered"):f.K[k]=[h,!1]}}
l.Va=function(a,b){var c=a&this.B,d=(a&this.Fa)>>>this.da;if(c<this.B-2)this.R[d].He(c,b);else for(var e=4,f=4-(c&3);e--;)this.R[d].Yb(c++,b&255,a++),--f||(d=d+1&this.C,c=0),b>>>=8};function Sb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.I[k]?r("Input port "+fa(k,4,!0)+" already registered"):f.I[k]=[h,!1]}}
function Tb(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.S[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g&&g[0]&&(m=g[0](b,d),void 0===m?m=k:m&=k);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}function Ub(a,b,c,d){void 0===d&&(d=0);for(var e in c){var f=a,g=+e+d,h=c[e].bind(b);if(void 0!==h)for(var k=+e+d;k<=g;k++)void 0!==f.K[k]?r("Output port "+fa(k,4,!0)+" already registered"):f.K[k]=[h,!1]}}
function Vb(a,b,c,d,e){for(var f=0;0<c;){var g=a.K[b],h=a.P[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g&&g[0])g[0](b,k,e);f+=h<<3;b+=h;c-=h}}function Eb(a,b,c,d,e){b="Memory block error ("+b+": "+fa(c)+","+fa(d)+")";e?a.Ia?a.Ia.message(b):a.log(b):r(b);return!1}var Wb;if(hb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Mb=Wb;
function u(a,b,c,d,e,f){this.id=Yb+=2;this.V=null;this.H=0;this.he=a;this.Ge=b;this.size=c||0;this.type=d||Zb;this.I=d==Lb;this.controller=null;this.A=f;wb(this);this.Ha=this.pi=!1;if(c)if(e)this.controller=e,a=e.ti(a),this.V=a[0],this.H=a[1],Jb(this,e.qg());else if(hb)this.R=new ArrayBuffer(c),this.S=new DataView(this.R,0,c),this.Ka=new Uint8Array(this.R,0,c),this.td=new Uint16Array(this.R,0,c>>1),this.V=new Int32Array(this.R,0,c>>2),Jb(this,Mb?Nb:Ob);else{this.V=Array(c>>2);for(e=0;e<this.V.length;e++)this.V[e]=
0;Jb(this,Pb)}else Jb(this)}var Zb=0,Lb=2,ac=["black","blue","green","cyan"],Gb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Yb=0;function bc(a){hb&&!Mb&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
@ -177,7 +177,7 @@ function nh(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;H(this,a,-2147483648,d&1)
function Kh(a,b){this.Gc=this.Ca.ja;this.ic=this.P.ja;this.ka=this.ra;var c=C(this),d=this.U;null!=Rc(this,a,b,!0)&&(Lc(this,this.Gc,d,2),Lc(this,c,d,d));this.Gc=this.ic=this.ka=-1}function Lh(a,b,c){this.A-=this.B.Yi+(c||0);c=Pc(this);var d=this.Ca.ja,e=C(this);a=this.Ca.wi(a);-1!==a&&(B(this,c),B(this,d),B(this,e),null!=b&&B(this,b),this.fc=-1,he(this,a))}
function Mh(a){this.ic=this.P.ja;this.ka=this.ra;var b=w(this),c=w(this);a&&y(this,A(this)+a);Rc(this,b,c,!1)&&(a&&y(this,A(this)+a),Nh.call(this,this.xa),Nh.call(this,this.pa),80386<=this.ca&&(Nh.call(this,this.Ta),Nh.call(this,this.Xa)));2==a&&this.$f&&be(this,this.Y);this.ic=this.ka=-1}function Oh(){8086==this.ca?(this.fc=-1,Lh.call(this,0,null,2)):v.call(this,0,null,2)}function Ne(a,b){this.fc=a;void 0===b&&(b=11);Lh.call(this,a,null,b)}
function v(a,b,c,d){var e=!1;this.ea.complete?80186<=this.ca&&(e=!0,0>this.fc?(-1!=this.Gc&&(this.Gc!==this.Ca.ja&&(this.Ca.sb=this.Gc&3,ge(this,this.Gc)),this.Gc=-1),this.Dd!==this.Y&&he(this,this.Dd),-1!=this.ic&&(this.ic!==this.P.ja&&Gc(this,this.ic),this.ic=-1),-1!==this.ka&&(this.ka!==this.ra&&y(this,this.Ob&~this.P.sa|this.ka-this.P.ya),this.ka=-1)):8!=this.fc?(b=0,a=8):(b=0,a=-1,Bd(this),e=d=!1)):he(this,this.Dd);var f=a,g=b,h=Fe(this,this.Y);204!=h||this.xc||(d=!1);this.X&131072&&(6==f&&99==
h||13==f&&205==h)&&(d=!1);983040<=this.Y&&1048575>=this.Y&&(d=!1);if(d){var k=this.ea.Nb,f="Fault 0x"+fa(f,2)+(null!=g?" (0x"+fa(g,4)+")":"")+" on opcode "+("0x"+fa(h,2));d&&k&&(f+=" (blocked)");this.Ba(f);rc(this)}if(d&&e)throw-1;if(e)throw this.fc=a,Lh.call(this,a,b,c),this.Dd=this.Y,this.L=1==a?this.L|8192:this.L|4096,a;}function Cd(a,b,c){this.pd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.za&&(a|=4);v.call(this,14,a)}
h||13==f&&205==h)&&(d=!1);983040<=this.Y&&1048575>=this.Y&&(d=!1);if(d){var k=this.ea.Nb,f="Fault "+fa(f,2,!0)+(null!=g?" ("+fa(g,4,!0)+")":"")+" on opcode "+fa(h,2,!0);d&&k&&(f+=" (blocked)");this.Ba(f);rc(this)}if(d&&e)throw-1;if(e)throw this.fc=a,Lh.call(this,a,b,c),this.Dd=this.Y,this.L=1==a?this.L|8192:this.L|4096,a;}function Cd(a,b,c){this.pd=a;a=0;b&&(a|=1);c&&(a|=2);3==this.za&&(a|=4);v.call(this,14,a)}
function Nh(a){var b=a.lb&7680;a.ja&65528&&(6144==b||7168==b||7168>b&&a.nc<this.za&&a.nc<(a.ja&3))&&a.load(0)}
function Hd(a){var b,c;switch((this.W=this.na())&199){case 0:c=I(this,this.D+this.I);this.A-=this.B.Ic;break;case 1:c=I(this,this.D+this.H);this.A-=this.B.Jc;break;case 2:c=K(this,this.K+this.I);this.A-=this.B.Jc;break;case 3:c=K(this,this.K+this.H);this.A-=this.B.Ic;break;case 4:c=I(this,this.I);this.A-=this.B.kc;break;case 5:c=I(this,this.H);this.A-=this.B.kc;break;case 6:c=I(this,P(this));this.A-=this.B.Zc;break;case 7:c=I(this,this.D);this.A-=this.B.kc;break;case 64:c=I(this,this.D+this.I+this.O());
this.A-=this.B.Kb;break;case 65:c=I(this,this.D+this.H+this.O());this.A-=this.B.Lb;break;case 66:c=K(this,this.K+this.I+this.O());this.A-=this.B.Lb;break;case 67:c=K(this,this.K+this.H+this.O());this.A-=this.B.Kb;break;case 68:c=I(this,this.I+this.O());this.A-=this.B.Sa;break;case 69:c=I(this,this.H+this.O());this.A-=this.B.Sa;break;case 70:c=K(this,this.K+this.O());this.A-=this.B.Sa;break;case 71:c=I(this,this.D+this.O());this.A-=this.B.Sa;break;case 128:c=I(this,this.D+this.I+P(this));this.A-=this.B.Kb;
@ -278,7 +278,7 @@ function ai(){var a=this.O();me(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.
function ei(){var a=this.O();oe(this)||!pe(this)!=!qe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)}function fi(){this.yc.call(this,gi,this.na);this.A-=-1===this.C?1:this.B.Pf}function hi(){this.L|=1;this.Gb.call(this,Hg)}function ii(){this.L|=1;this.qa.call(this,Hg)}function ji(){this.Bb.call(this,Hg)}function ki(){this.Z.call(this,Hg)}function jd(){this.yc.call(this,li,Hh)}function kd(){this.Ja.call(this,2==this.U?mi:ni,Hh)}
function oi(){var a=Le(this),b=w(this);G(this,b);a&&y(this,A(this)+a);this.A-=this.B.yj}function pi(){var a=w(this);G(this,a);this.A-=this.B.vj}function ld(){this.ka=this.ra;var a=Le(this),b=this.na()&31;this.A-=11;B(this,this.K);var c=A(this)&this.N;if(0<b){for(this.A-=(b<<2)+(1<b?1:0);--b;)this.K=this.K&~this.N|this.K-this.U&this.N,B(this,Kc(this,this.P,this.K&this.N));B(this,c)}this.K=this.K&~this.N|c;y(this,A(this)&~this.P.sa|A(this)-a&this.P.sa);this.ka=-1}
function md(){this.ka=this.ra;y(this,A(this)&~this.P.sa|this.K&this.P.sa);this.K=this.K&~this.N|w(this)&this.N;this.A-=5;this.ka=-1}function qi(){Mh.call(this,Le(this));this.A-=this.B.xj}function ri(){Mh.call(this,0);this.A-=this.B.wj}function si(a){this.Th=a;this.Z.call(this,rg)}function ti(){this.L|=36;this.A-=this.B.Qc}function nd(){sd.call(this)}function Yc(){v.call(this,6)}
function sd(){G(this,this.Dd-this.Ca.ya);var a=this.Jb(this.Y);gb(this,"Undefined opcode 0x"+fa(a,2)+" at "+("0x"+fa(this.Y)));rc(this)}
function sd(){G(this,this.Dd-this.Ca.ya);var a=this.Jb(this.Y);gb(this,"Undefined opcode "+fa(a,2,!0)+" at "+fa(this.Y,8,!0));rc(this)}
var Uc=[function(){this.Gb.call(this,$f)},function(){this.qa.call(this,ag)},function(){this.Bb.call(this,$f)},function(){this.Z.call(this,ag)},function(){this.J=this.J&-256|$f.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|ag.call(this,this.J&this.N,this.Aa());this.A--},function(){Lc(this,this.pa.ja,this.U,2);this.A-=this.B.Vd},function(){this.ka=this.ra;Nc(this,w(this));this.A-=this.B.ec;this.ka=-1},function(){this.Gb.call(this,Mg)},function(){this.qa.call(this,Ng)},function(){this.Bb.call(this,
Mg)},function(){this.Z.call(this,Ng)},function(){this.J=this.J&-256|Mg.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|Ng.call(this,this.J&this.N,this.Aa());this.A--},function(){Lc(this,this.Ca.ja,this.U,2);this.A-=this.B.Vd},function(){ge(this,w(this));this.A-=this.B.ec},function(){this.Gb.call(this,Yf)},function(){this.qa.call(this,Zf)},function(){this.Bb.call(this,Yf)},function(){this.Z.call(this,Zf)},function(){this.J=this.J&-256|Yf.call(this,this.J&255,this.na());this.A--},
function(){this.J=this.J&~this.N|Zf.call(this,this.J&this.N,this.Aa());this.A--},function(){Lc(this,this.P.ja,this.U,2);this.A-=this.B.Vd},function(){this.ka=this.ra;Gc(this,w(this));this.A-=this.B.ec;this.ka=-1},function(){this.Gb.call(this,Og)},function(){this.qa.call(this,Pg)},function(){this.Bb.call(this,Og)},function(){this.Z.call(this,Pg)},function(){this.J=this.J&-256|Og.call(this,this.J&255,this.na());this.A--},function(){this.J=this.J&~this.N|Pg.call(this,this.J&this.N,this.Aa());this.A--},
@ -407,7 +407,7 @@ function dk(a){Ma.call(this,"ROM",a,dk);this.B=null;this.H=a.addr;this.D=a.size;
dk.prototype.Ub=function(){this.K&&(this.Ia&&this.Ia.A(this.id,0,this.H>>>4,0,this.H,this.D,this.K),delete this.K);return!0};dk.prototype.Tb=function(){return!0};
function ek(a,b,c,d){if(d)a.Ba("Unable to load system ROM (error "+d+": "+b+")");else{Wa(a.Fe,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.K=e.symbols;if(!a.B.length){r("Empty ROM: "+b);return}if(1==a.B.length){r(a.B[0]);return}}catch(h){a.Ba("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]=ea(b[e],16);fk(a)}}
function fk(a){if(!fb(a))if(!a.I)eb(a);else if(a.B&&a.ia){a.D||(a.D=a.B.length);if(a.B.length!=a.D)gb(a,"ROM size (0x"+fa(a.B.length)+") does not match specified size ("+("0x"+fa(a.D))+")");else{var b;b=a.H;if(Db(a.ia,b,a.D,Lb)){for(var c=0;c<a.B.length;c++){var d=a.ia,e=b+c;d.R[(e&d.Fa)>>>d.da].of(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Ib(d.ia,d.H,d.D);Hb(d.ia,e,d.D,f)}a.C&&((b=Ya(a.C,
function fk(a){if(!fb(a))if(!a.I)eb(a);else if(a.B&&a.ia){a.D||(a.D=a.B.length);if(a.B.length!=a.D)gb(a,"ROM size ("+fa(a.B.length,8,!0)+") does not match specified size ("+fa(a.D,8,!0)+")");else{var b;b=a.H;if(Db(a.ia,b,a.D,Lb)){for(var c=0;c<a.B.length;c++){var d=a.ia,e=b+c;d.R[(e&d.Fa)>>>d.da].of(e&d.B,a.B[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.G?b.push(a.G):null!=a.G&&a.G.length&&(b=a.G);for(c=0;c<b.length;c++){var d=a,e=b[c],f=Ib(d.ia,d.H,d.D);Hb(d.ia,e,d.D,f)}a.C&&((b=Ya(a.C,
a.id))?(c=a.B,d=a.L,5==b.Ra?gk(b,c,d||[12640,8752],8):b.Ra==hk&&gk(b,c,d||[14221,16269],8),eb(b)):a.Ba("Unable to find component: "+a.C));delete a.B}}eb(a)}}Ia(function(){for(var a=cb(document,"pcx86","rom"),b=0;b<a.length;b++){var c=a[b],d=$a(c),d=new dk(d);bb(d,c)}});function ik(a){Ma.call(this,"RAM",a,ik);this.C=a.addr;this.B=a.size;this.H=a.test;this.G=!!this.B;this.D=!1}Ua(ik);l=ik.prototype;l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.S=ob(a,"ChipSet");eb(this)};
l.Ub=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};l.Tb=function(a){return a&&this.controller?this.save():!0};
l.reset=function(){if(!this.C&&!this.G&&this.S){var a=1024*$i(this.S);this.B&&a!=this.B&&(Kb(this.ia,this.C,this.B),this.D=!1);this.B=a}!this.D&&this.B&&Db(this.ia,this.C,this.B,1)&&(this.D=!0,"ramCPQ"==this.Sd&&(this.controller=new jk(this),Db(this.ia,kk,4,4,this.controller)));if(this.D){if(this.H||Rb(this.ia,1138,4660),"ramCPQ"!=this.Sd&&this.S&&(a=this.S,a.B)){var b=1048576>this.C?21:23,c=a.B[b]|a.B[b+1]<<8,c=c+(this.B>>10);a.B[b]=c&255;a.B[b+1]=c>>8;dj(a)}}else r("No RAM allocated")};