New improved I/O handler functions for the PDP-11

This commit is contained in:
Jeff 2016-09-21 12:44:25 -07:00 committed by Jeff Parsons
commit dfe367f53d
18 changed files with 847 additions and 1059 deletions

View file

@ -45,19 +45,19 @@ f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ca)){b=c;if(a.context&&a.ia&
c}}}m.pd=function(){};function Pb(a,b,c,d){a.A.Bf[a.A.ej++]={Dl:b,Td:c,type:d};return va(Mb,b,c,0,d)}function Nb(a,b,c,d){var e,f=null.style.color,g=a.Oa=10;a.C=g;a.U=b;a.W=a.va=18;e||(e=a.ua||a.va+"px Monaco, Lucida Console, Courier New");a.fa=a.ua=e;c&&(a.Da=c);d&&(a.N=d,a.Fa=f||"white")}
function Ob(a,b,c,d,e){a.N.font=a.fa;a.N.fillStyle=a.Fa;a.N.fillText(b,a.C,a.U);a.C+=a.pa;null!=c&&(16!=a.Tb?b=c.toString():(b=8>a.Ka?"0x":"",b+=t(c,a.Ka)),a.N.fillText(b,a.C,a.U),a.C+=a.pa);d&&(a.C+=a.pa*d);e&&(a.C=a.Oa,a.U+=(a.W+2)*(e||1))}function Kb(){for(var a=!1,b=rb(document,"pcx86","panel"),c=0;c<b.length;c++){var d=b[c],e=ob(d),f=mb(e.id);f||(a=!0,f=new Fb(e));qb(f,d);a&&wb(f)}}Ua(Kb);
function Qb(a,b,c){Za.call(this,"Bus",a,Qb);this.F=b;this.ha=c;this.N=a.busWidth||20;this.W=Math.pow(2,this.N);this.Cg=this.Gb=this.W-1|0;this.La=32==this.N||20>=this.N?12:24>=this.N?14:15;this.Sb=1<<this.La;this.fa=this.Sb>>2;this.A=this.Sb-1;this.U=this.W/this.Sb|0;this.ga=this.U-1;this.B=[];this.C=[];this.L=this.V=!1;this.aa=[];this.ea=[];a=new C;Rb(a,this.ha);this.sa=Array(this.U);for(b=0;b<this.U;b++)this.sa[b]=a;a=this.F;b=this.sa;c=this.La;a.kd=a.sa=b;a.La=c;a.Sb=1<<a.La;a.Fa=a.Sb-1;a.Fd=b.length;
a.hd=a.Fd-1;a=this.F;a.Gb=a.Db=this.Gb;wb(this)}hb(Qb);var Mb,Sb={Gk:20,count:8,Jo:1,type:3},Tb=0,Ub;for(Ub in Sb){var Vb=Sb[Ub];Sb[Ub]={uh:(1<<Vb)-1<<Tb,shift:Tb};Tb+=Vb}Mb=Sb;m=Qb.prototype;m.reset=function(){Wb(this,!0)};m.gc=function(a,b){b||this.reset();return!0};
function Yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.La;0<g&&h<a.sa.length;){var k=a.sa[h],l=h*a.Sb,n=a.Sb-(f-l);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.Ea)return k.Oe+=k.Ea-f,k.Ea=f,!0;if(f>=k.Ea+k.Oe){n=k.size-(f-l);n>g&&(n=g);k.Oe=f-k.Ea+n;f=l+a.Sb;g-=n;h++;continue}}return Zb(a,1,f,g)}f=new C(f,n,a.Sb,d,e);Rb(f,a.ha,k);a.sa[h++]=f;f=l+a.Sb;g-=n}return 0>=g?($b(a.F),a.F.la.Ib||a.status(Math.floor(c/1024)+"Kb "+ac[d]+" at "+t(b)),!0):Zb(a,2,b,c)}
function Wb(a,b){if(32==a.N)b?a.X&&(bc(a,1048576,1048576,a.X),a.X=null):a.X||(a.X=cc(a,1048576,1048576),bc(a,1048576,1048576,cc(a,0,1048576)));else if(20<a.N){var c=a.Gb&-1048577|(b?1048576:0);if(c!=a.Gb&&(a.Gb=c,a.F)){var d=a.F;d.Gb=d.Db=c}}}m.Ug=function(a,b,c,d){if(!(a&this.A||!b||b&this.A)){for(var e=a>>>this.La;0<b;){var f=this.sa[e];if(!f.controller)return Zb(this,3,a,b,d);dc(f,c,!0);b-=this.Sb;e++}return!0}return Zb(this,4,a,b)};
function ec(a,b,c){if(!(b&a.A||!c||c&a.A)){for(var d=b>>>a.La;0<c;){var e=a.sa[d];b=new C(b);Rb(b,a.ha,e);a.sa[d++]=b;b=d*a.Sb;c-=a.Sb}$b(a.F);return!0}return Zb(a,5,b,c)}function cc(a,b,c){var d=[];for(b>>>=a.La;0<c&&b<a.sa.length;)d.push(a.sa[b++]),c-=a.Sb;return d}
a.hd=a.Fd-1;a=this.F;a.Gb=a.Db=this.Gb;wb(this)}hb(Qb);Qb.prototype.reset=function(){Sb(this,!0)};Qb.prototype.gc=function(a,b){b||this.reset();return!0};
function Tb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.La;0<g&&h<a.sa.length;){var k=a.sa[h],l=h*a.Sb,n=a.Sb-(f-l);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.Ea)return k.Oe+=k.Ea-f,k.Ea=f,!0;if(f>=k.Ea+k.Oe){n=k.size-(f-l);n>g&&(n=g);k.Oe=f-k.Ea+n;f=l+a.Sb;g-=n;h++;continue}}return Ub(a,1,f,g)}f=new C(f,n,a.Sb,d,e);Rb(f,a.ha,k);a.sa[h++]=f;f=l+a.Sb;g-=n}return 0>=g?(Vb(a.F),a.F.la.Ib||a.status(Math.floor(c/1024)+"Kb "+Wb[d]+" at "+t(b)),!0):Ub(a,2,b,c)}
var Mb,Yb={Gk:20,count:8,Jo:1,type:3},Zb=0,$b;for($b in Yb){var ac=Yb[$b];Yb[$b]={uh:(1<<ac)-1<<Zb,shift:Zb};Zb+=ac}Mb=Yb;function Sb(a,b){if(32==a.N)b?a.X&&(bc(a,1048576,1048576,a.X),a.X=null):a.X||(a.X=cc(a,1048576,1048576),bc(a,1048576,1048576,cc(a,0,1048576)));else if(20<a.N){var c=a.Gb&-1048577|(b?1048576:0);if(c!=a.Gb&&(a.Gb=c,a.F)){var d=a.F;d.Gb=d.Db=c}}}m=Qb.prototype;
m.Ug=function(a,b,c,d){if(!(a&this.A||!b||b&this.A)){for(var e=a>>>this.La;0<b;){var f=this.sa[e];if(!f.controller)return Ub(this,3,a,b,d);dc(f,c,!0);b-=this.Sb;e++}return!0}return Ub(this,4,a,b)};function ec(a,b,c){if(!(b&a.A||!c||c&a.A)){for(var d=b>>>a.La;0<c;){var e=a.sa[d];b=new C(b);Rb(b,a.ha,e);a.sa[d++]=b;b=d*a.Sb;c-=a.Sb}Vb(a.F);return!0}return Ub(a,5,b,c)}function cc(a,b,c){var d=[];for(b>>>=a.La;0<c&&b<a.sa.length;)d.push(a.sa[b++]),c-=a.Sb;return d}
function bc(a,b,c,d,e){for(var f=0,g=b>>>a.La;0<c&&g<a.sa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new C(b),l=k,n=e,r=a.ha;l.id=h.id|1;l.Oe=h.Oe;l.size=h.size;n&&(l.type=n,l.N=n==fc);zb?(l.X=h.X,l.qa=h.qa,l.Ya=h.Ya,l.de=h.de,l.da=h.da,dc(l,gc?hc:ic)):(l.da=h.da,dc(l,jc));Rb(l,r,h);h=k}a.sa[g++]=h;c-=a.Sb}}m.Qa=function(a){return this.sa[(a&this.Gb)>>>this.La].pc(a&this.A,a)};
m.na=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;return b!=this.A?this.sa[c].sf(b,a):this.sa[c++].pc(b,a)|this.sa[c&this.ga].pc(0,a+1)<<8};function kc(a,b){var c=b&a.A,d=(b&a.Gb)>>>a.La;return c!=a.A?a.sa[d].eg(c,b):a.sa[d++].re(c,b)|a.sa[d&a.ga].re(0,b+1)<<8}m.oa=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;if(b<this.A-2)return this.sa[c].Md(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.sa[c].pc(b++,a++)<<f,--g||(c=c+1&this.ga,b=0),f+=8;return d};
m.qc=function(a,b){this.sa[(a&this.Gb)>>>this.La].sc(a&this.A,b&255,a)};m.jb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;c!=this.A?this.sa[d].zf(c,b&65535,a):(this.sa[d++].sc(c,b&255,a),this.sa[d&this.ga].sc(0,b>>8&255,a+1))};function lc(a,b,c){var d=b&a.A,e=(b&a.Gb)>>>a.La;d!=a.A?a.sa[e].yi(d,c&65535,b):(a.sa[e++].xf(d,c&255,b),a.sa[e&a.ga].xf(0,c>>8&255,b+1))}
m.nb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;if(c<this.A-2)this.sa[d].yf(c,b);else for(var e=4,f=4-(c&3);e--;)this.sa[d].sc(c++,b&255,a++),--f||(d=d+1&this.ga,c=0),b>>>=8};m.wj=function(){return null};function mc(a,b){if(void 0===b)return a.L=!a.L,a.L;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}
function nc(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.B[k]?x("Input port "+v(k)+" already registered"):f.B[k]=[h,!1]}}function oc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.B[b],h=a.aa[b]||1,k=1==h?255:2==h?65535:-1,l=k;void 0!==g?(g[0]&&(l=g[0](b,d),void 0===l?l=k:l&=k),a.ha&&a.L!=g[1]&&pc(a.ha,b,l)):a.ha&&(sb(a.ha,a,b,null,d),a.L&&pc(a.ha,b,l));e|=l<<f;f+=h<<3;b+=h;c-=h}return e}
function qc(a,b){if(void 0===b)return a.V=!a.V,a.V;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}function rc(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.C[k]?x("Output port "+v(k)+" already registered"):f.C[k]=[h,!1]}}
function sc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.ea[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ha&&a.V!=g[1]&&xc(a.ha,b,k)}else a.ha&&(sb(a.ha,a,b,k,e),a.V&&xc(a.ha,b,k));f+=h<<3;b+=h;c-=h}}function Zb(a,b,c,d,e){b="Memory block error ("+b+": "+t(c)+","+t(d)+")";e?a.ha?a.ha.message(b):a.log(b):x(b);return!1}var yc;if(zb){var zc=new ArrayBuffer(2);(new DataView(zc)).setUint16(0,256,!0);yc=256===(new Uint16Array(zc))[0]}else yc=!1;var gc=yc;
function sc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.ea[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ha&&a.V!=g[1]&&xc(a.ha,b,k)}else a.ha&&(sb(a.ha,a,b,k,e),a.V&&xc(a.ha,b,k));f+=h<<3;b+=h;c-=h}}function Ub(a,b,c,d,e){b="Memory block error ("+b+": "+t(c)+","+t(d)+")";e?a.ha?a.ha.message(b):a.log(b):x(b);return!1}var yc;if(zb){var zc=new ArrayBuffer(2);(new DataView(zc)).setUint16(0,256,!0);yc=256===(new Uint16Array(zc))[0]}else yc=!1;var gc=yc;
function C(a,b,c,d,e,f){this.id=Ac+=2;this.da=null;this.C=0;this.Ea=a;this.Oe=b;this.size=c||0;this.type=d||Bc;this.N=d==fc;this.controller=null;this.F=f;Rb(this);this.Wa=this.sj=!1;if(c)if(e)this.controller=e,a=e.vj(a),this.da=a[0],this.C=a[1],dc(this,e.mh());else if(zb)this.X=new ArrayBuffer(c),this.qa=new DataView(this.X,0,c),this.Ya=new Uint8Array(this.X,0,c),this.de=new Uint16Array(this.X,0,c>>1),this.da=new Int32Array(this.X,0,c>>2),dc(this,gc?hc:ic);else{this.da=Array(c>>2);for(e=0;e<this.da.length;e++)this.da[e]=
0;dc(this,jc)}else dc(this)}var Bc=0,fc=2,Cc=["black","blue","green","cyan"],ac="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Ac=0;function Dc(a){zb&&!gc&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
0;dc(this,jc)}else dc(this)}var Bc=0,fc=2,Cc=["black","blue","green","cyan"],Wb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Ac=0;function Dc(a){zb&&!gc&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
C.prototype={constructor:C,parent:null,ph:function(a){this.Ea=a},save:function(){var a,b;if(this.controller)a=null;else if(zb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.qa.getInt32(b<<2,!0);else a=this.da;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(zb)for(b=0;b<a.length;b++)this.qa.setInt32(b<<2,a[b],!0);else this.da=a;return this.Wa=!0}return!1},Rd:function(a,b,c){b?0===this.We++&&(c&&(this.F=c),Gc(this,Fc,!1)):0===this.Ve++&&
(c&&(this.F=c),Ec(this,Fc,!1))},ia:function(){this.ha&&B(this.ha,129)&&this.ha.message("attempt to read invalid block %"+t(this.Ea),!0);return 255},L:function(a,b){this.ha&&B(this.ha,129)&&this.ha.message("attempt to write "+v(b)+" to invalid block %"+t(this.Ea),!0)},ka:function(a,b){return this.pc(a++,b++)|this.pc(a,b)<<8},ea:function(a,b){return this.pc(a++,b++)|this.pc(a++,b++)<<8|this.pc(a++,b++)<<16|this.pc(a,b)<<24},W:function(a,b,c){this.sc(a++,b&255,c++);this.sc(a,b>>8,c)},U:function(a,b,
c){this.sc(a++,b&255,c++);this.sc(a++,b>>8&255,c++);this.sc(a++,b>>16&255,c++);this.sc(a,b>>>24,c)},Fa:function(a){return this.da[a>>2]>>>((a&3)<<3)&255},sb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b]>>a;return 24>a?c&65535:c&255|(this.da[b+1]&255)<<8},$a:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b];a&&(c=c>>>a|this.da[b+1]<<32-a);return c},tc:function(a,b){var c=a>>2,d=(a&3)<<3;this.da[c]=this.da[c]&~(255<<d)|b<<d;this.Wa=!0},Cd:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.da[c]=this.da[c]&
@ -68,9 +68,9 @@ this.V;this.Bd.yf(a,b,c)},Ka:function(a,b){return Kc(this.F,b,!1).pc(a,b)},xd:fu
!0)},pa:function(a){return a&1?this.Ya[a]|this.Ya[a+1]<<8:this.de[a>>1]},Db:function(a){this.yb.da[this.A]|=32;this.zb.da[this.B]|=32;this.sf=this.pa;return a&1?this.Ya[a]|this.Ya[a+1]<<8:this.de[a>>1]},Oa:function(a){return this.qa.getInt32(a,!0)},fa:function(a){return a&3?this.Ya[a]|this.Ya[a+1]<<8|this.Ya[a+2]<<16|this.Ya[a+3]<<24:this.da[a>>2]},cb:function(a){this.yb.da[this.A]|=32;this.zb.da[this.B]|=32;this.Md=this.fa;return a&3?this.Ya[a]|this.Ya[a+1]<<8|this.Ya[a+2]<<16|this.Ya[a+3]<<24:this.da[a>>
2]},Ub:function(a,b){this.Ya[a]=b;this.Wa=!0},ra:function(a,b){this.Ya[a]=b;this.Wa=!0},uc:function(a,b){this.Ya[a]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.sc=this.ra;this.Bd.Wa=!0},qd:function(a,b){this.qa.setUint16(a,b,!0);this.Wa=!0},ya:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.de[a>>1]=b;this.Wa=!0},Fd:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.de[a>>1]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.zf=this.ya;this.Bd.Wa=!0},ce:function(a,b){this.qa.setInt32(a,
b,!0);this.Wa=!0},va:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a+2]=b>>16,this.Ya[a+3]=b>>24):this.da[a>>2]=b;this.Wa=!0},Xc:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a+2]=b>>16,this.Ya[a+3]=b>>24):this.da[a>>2]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.yf=this.va;this.Bd.Wa=!0}};function Rb(a,b,c){a.ha=b;a.Ve=a.We=0;c&&(c.F&&(a.F=c.F),(a.Ve=c.Ve)&&Ec(a,Fc,!1),(a.We=c.We)&&Gc(a,Fc,!1))}
function Lc(a,b){b?0===--a.We&&(a.sc=a.N?a.L:a.xf,a.zf=a.N?a.W:a.yi,a.yf=a.N?a.U:a.ua):0===--a.Ve&&(a.pc=a.re,a.sf=a.eg,a.Md=a.ri)}function Gc(a,b,c){c&&a.We||(a.sc=!a.N&&b[3]||a.L,a.zf=!a.N&&b[4]||a.W,a.yf=!a.N&&b[5]||a.U);if(c||void 0===c)a.xf=b[3]||a.L,a.yi=b[4]||a.W,a.ua=b[5]||a.U}function Ec(a,b,c){c&&a.Ve||(a.pc=b[0]||a.ia,a.sf=b[1]||a.ka,a.Md=b[2]||a.ea);if(c||void 0===c)a.re=b[0]||a.ia,a.eg=b[1]||a.ka,a.ri=b[2]||a.ea}
function dc(a,b,c){b||(b=5==a.type?Mc:6==a.type?Nc:Oc);Ec(a,b,c);Gc(a,b,c)}var Oc=[],jc=[C.prototype.Fa,C.prototype.sb,C.prototype.$a,C.prototype.tc,C.prototype.Cd,C.prototype.Wc],Fc=[C.prototype.Da,C.prototype.rb,C.prototype.Pa,C.prototype.kc,C.prototype.sd,C.prototype.Vc],Nc=[C.prototype.Ja,C.prototype.Jb,C.prototype.fb,C.prototype.Cc,C.prototype.Gd,C.prototype.hd],Mc=[C.prototype.Ka,C.prototype.xd,C.prototype.gb,C.prototype.Uc,C.prototype.Hd,C.prototype.jd];
if(zb)var ic=[C.prototype.Ca,C.prototype.Tb,C.prototype.Oa,C.prototype.Ub,C.prototype.qd,C.prototype.ce],hc=[C.prototype.aa,C.prototype.pa,C.prototype.fa,C.prototype.ra,C.prototype.ya,C.prototype.va],Pc=[C.prototype.Ga,C.prototype.Db,C.prototype.cb,C.prototype.uc,C.prototype.Fd,C.prototype.Xc];
function Lc(a,b){b?0===--a.We&&(a.sc=a.N?a.L:a.xf,a.zf=a.N?a.W:a.yi,a.yf=a.N?a.U:a.ua):0===--a.Ve&&(a.pc=a.re,a.sf=a.eg,a.Md=a.ri)}function Gc(a,b,c){c&&a.We||(a.sc=!a.N&&b[1]||a.L,a.zf=!a.N&&b[3]||a.W,a.yf=!a.N&&b[5]||a.U);if(c||void 0===c)a.xf=b[1]||a.L,a.yi=b[3]||a.W,a.ua=b[5]||a.U}function Ec(a,b,c){c&&a.Ve||(a.pc=b[0]||a.ia,a.sf=b[2]||a.ka,a.Md=b[4]||a.ea);if(c||void 0===c)a.re=b[0]||a.ia,a.eg=b[2]||a.ka,a.ri=b[4]||a.ea}
function dc(a,b,c){b||(b=5==a.type?Mc:6==a.type?Nc:Oc);Ec(a,b,c);Gc(a,b,c)}var Oc=[],jc=[C.prototype.Fa,C.prototype.tc,C.prototype.sb,C.prototype.Cd,C.prototype.$a,C.prototype.Wc],Fc=[C.prototype.Da,C.prototype.kc,C.prototype.rb,C.prototype.sd,C.prototype.Pa,C.prototype.Vc],Nc=[C.prototype.Ja,C.prototype.Cc,C.prototype.Jb,C.prototype.Gd,C.prototype.fb,C.prototype.hd],Mc=[C.prototype.Ka,C.prototype.Uc,C.prototype.xd,C.prototype.Hd,C.prototype.gb,C.prototype.jd];
if(zb)var ic=[C.prototype.Ca,C.prototype.Ub,C.prototype.Tb,C.prototype.qd,C.prototype.Oa,C.prototype.ce],hc=[C.prototype.aa,C.prototype.ra,C.prototype.pa,C.prototype.ya,C.prototype.fa,C.prototype.va],Pc=[C.prototype.Ga,C.prototype.uc,C.prototype.Db,C.prototype.Fd,C.prototype.cb,C.prototype.Xc];
function Qc(a,b){Za.call(this,"CPU",a,Qc,1);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.Id=c;this.Y.Wd=d;this.Y.zg=Math.round(this.Y.Id/1E4)/100;this.Y.Fe=this.Y.zg*this.Y.Wd;this.la.Ib=!1;this.la.xi=!1;this.la.Cf=a.autoStart;this.la.nj=!1;this.la.Ye=!1;this.Y.Kf=this.Y.lf=0;this.Y.Lf=a.csStart;this.Y.kf=a.csInterval;this.Y.mf=a.csStop;this.zi=this.Le.bind(this);wb(this)}hb(Qc);var Rc=["power","reset"];m=Qc.prototype;
m.Ic=function(a,b,c,d){this.X=a;this.ga=b;this.ha=d;for(b=0;b<Rc.length;b++)(c=this.qa[Rc[b]])&&this.X.Pb(null,Rc[b],c);this.Tb=Jb(a,"FPU");this.N=Jb(a,"ChipSet");a=Tc(a,"autoStart");null!=a&&(this.la.Cf="true"==a?!0:"false"==a?!1:!!a);wb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.gc=function(a,b){if(!b){if(a&&this.restore){Uc(this);if(!this.restore(a))return!1;Xc(this)}else this.reset();this.ha?this.ha.ph():this.O("No debugger detected")}Yc(this);return!0};m.fc=function(a){return a?this.save():!0};m.Cf=function(){return this.la.Cf||!this.ha&&void 0===this.qa.run?(this.Le(!0),!0):!1};m.uj=function(){return 0};
@ -99,22 +99,22 @@ d.oa(h+g)));c&&d.jb(h+0,f);d.Za|=8;return!0}m.save=function(){return[this.Z,this
function id(a,b,c,d){void 0===c&&(c=!!(a.F.Za&1));a.bd=!1;if(c)if(a.load=a.yg,a.Bj=a.Vm,a.mc=a.gj,a.nc=a.ij,void 0===d&&(d=!!(a.F.ca&131072)),d)a.load=a.X,a.mc=a.ga,a.nc=a.qa,a.Lb=a.Gc=3,a.ba=a.Oc=2,a.R=a.Ba=65535,a.Ta=65535,a.Zb=a.Ta+1,a.Oc=a.ba,a.Xb=-1,a.ef=!1;else{if(!(a.Z&-4))a.mc=a.sg,a.nc=a.tg;else if(a.type&4096){6144==(a.type&6656)&&(a.mc=a.sg);if(a.type&2048||!(a.type&512))a.nc=a.tg;1024==(a.type&3072)&&(a.mc==a.gj&&(a.mc=a.rl),a.nc==a.ij&&(a.nc=a.sl),a.bd=!0);b&&6>a.id&&a.Z&-4&&-1!==a.Xb&&
(c=a.Xb+5,d=a.F.Qa(c),d&1||a.F.qc(c,d|1))}b&&(a.Lb=a.Z&3,a.Gc=(a.wb&24576)>>13,80386>a.F.ja||!(a.ext&64)?(a.ba=2,a.R=65535):(a.ba=4,a.R=-1),a.Oc=a.ba,a.Ba=a.R)}else a.load=a.th,a.Bj=a.Wm,a.mc=a.hj,a.nc=a.jj,a.Lb=a.Gc=0,a.Xb=-1,a.ef=!1}
function Ed(a){this.ja=+a.model||8088;var b=a.stepping;this.Uc=this.ja+(b?ea(b,16):0);b=0;switch(this.ja){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Qc.call(this,a,b);this.$f=61442;this.Cc=1792;this.Yf=28672;this.Cd=4;this.ra=255;this.B=80286<=this.ja?Bb:Ab;this.W=Fd;this.dg=Gd;this.jg=Hd;this.kg=Id;if(80186<=this.ja&&(this.W=Fd.slice(),this.dg=Gd.slice(),this.jg=Hd.slice(),this.ra=31,this.W[15]=Jd,this.W[96]=Kd,this.W[97]=Ld,this.W[98]=Md,this.W[99]=Jd,this.W[100]=Jd,this.W[101]=
Jd,this.W[102]=Jd,this.W[103]=Jd,this.W[104]=Nd,this.W[105]=Od,this.W[106]=Pd,this.W[107]=Qd,this.W[108]=Rd,this.W[109]=Sd,this.W[110]=Td,this.W[111]=Ud,this.W[192]=Vd,this.W[193]=Zd,this.W[200]=$d,this.W[201]=ae,this.W[241]=ge,this.dg[7]=he,this.jg[7]=he,80286<=this.ja)){this.$f=2;this.Cc|=28672;this.Cd=0;this.W[15]=ie;this.tc=je.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ke);this.W[84]=le;this.W[99]=me;if(80386<=this.ja){var c;this.Yf=0;this.Cc|=196608;this.W[100]=ne;this.W[101]=
oe;this.W[102]=pe;this.W[103]=qe;for(c in N)this.tc[+c]=N[+c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=re,this.tc[167]=se)}}this.Hd=[];this.je=[];this.le=0;Uc(this);this.la.complete=this.la.mj=!1;this.Vg=0;this.kd=this.sa=[];this.La=this.Sb=this.Fa=this.Fd=this.hd=this.Gb=this.Db=0;te(this)}hb(Ed,Qc);function ue(a,b,c,d){Lc((d?a.kd:a.sa)[b>>>a.La],c);d&&$b(a)}
function ve(a){var b;if(a.sa===a.kd){a.sa=Array(a.Fd);a.ke=new C(null,0,0,5,null,a);Rb(a.ke,a.ha);for(b=0;b<a.Fd;b++)a.sa[b]=a.ke;a.jd=new C;a.cg=Array(512);a.me=0}else for(var c=0;c<a.Gd.length;c++){b=a.Gd[c];var d=a.sa[b];512>a.me&&(a.cg[a.me++]=d);a.sa[b]=a.ke}a.Gd=[]}function $b(a){a.Za&-2147483648&&ve(a)}
Jd,this.W[102]=Jd,this.W[103]=Jd,this.W[104]=Nd,this.W[105]=Od,this.W[106]=Pd,this.W[107]=Qd,this.W[108]=Rd,this.W[109]=Sd,this.W[110]=Td,this.W[111]=Ud,this.W[192]=Vd,this.W[193]=Wd,this.W[200]=$d,this.W[201]=ae,this.W[241]=be,this.dg[7]=he,this.jg[7]=he,80286<=this.ja)){this.$f=2;this.Cc|=28672;this.Cd=0;this.W[15]=ie;this.tc=je.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ke);this.W[84]=le;this.W[99]=me;if(80386<=this.ja){var c;this.Yf=0;this.Cc|=196608;this.W[100]=ne;this.W[101]=
oe;this.W[102]=pe;this.W[103]=qe;for(c in N)this.tc[+c]=N[+c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=re,this.tc[167]=se)}}this.Hd=[];this.je=[];this.le=0;Uc(this);this.la.complete=this.la.mj=!1;this.Vg=0;this.kd=this.sa=[];this.La=this.Sb=this.Fa=this.Fd=this.hd=this.Gb=this.Db=0;te(this)}hb(Ed,Qc);function ue(a,b,c,d){Lc((d?a.kd:a.sa)[b>>>a.La],c);d&&Vb(a)}
function ve(a){var b;if(a.sa===a.kd){a.sa=Array(a.Fd);a.ke=new C(null,0,0,5,null,a);Rb(a.ke,a.ha);for(b=0;b<a.Fd;b++)a.sa[b]=a.ke;a.jd=new C;a.cg=Array(512);a.me=0}else for(var c=0;c<a.Gd.length;c++){b=a.Gd[c];var d=a.sa[b];512>a.me&&(a.cg[a.me++]=d);a.sa[b]=a.ke}a.Gd=[]}function Vb(a){a.Za&-2147483648&&ve(a)}
function Kc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.kd[(a.Od+e&a.Gb)>>>a.La],g=f.Md(e);if(!(g&1))return d||we.call(a,b,!1,c),a.jd;if(!(g&4)&&3==a.pa)return d||we.call(a,b,!0,c),a.jd;var h=(b&4190208)>>>10,g=a.kd[((g&-4096)+h&a.Gb)>>>a.La],k=g.Md(h);if(!(k&1))return d||we.call(a,b,!1,c),a.jd;if(!(k&4)&&3==a.pa)return d||we.call(a,b,!0,c),a.jd;c=a.kd[((k&-4096)+(b&4095)&a.Gb)>>>a.La];if(d)return c;d=b>>>a.La;k=a.sa[d];b=b&-4096;var l;0<a.me?(l=a.cg[--a.me],l.ph(b)):l=new C(b,0,0,6);b=l;b.Bd=c;b.yb=f;b.A=
e>>2;b.zb=g;b.B=h>>2;zb&&gc&&c.da&&!c.controller&&!c.Ve&&!c.We?(b.Ya=c.Ya,b.de=c.de,b.da=c.da,dc(b,Pc)):(b.ga=c?Dc(32):0,b.V=c?Dc(96):0,dc(b,Nc));Rb(b,a.ha,k);a.sa[d]=b;a.Gd.push(d);return b}function xe(a){a.sa!==a.kd&&(a.sa=a.kd,a.ke=null,a.Gd=null,a.jd=null)}m=Ed.prototype;m.reset=function(){this.la.Ib&&this.Wb();te(this);Uc(this);this.la.error=!1};
function ye(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.I;break;case 2:c=a.M;break;case 3:c=a.H;break;case 4:c=J(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function ze(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.I=c;break;case 2:a.M=c;break;case 3:a.H=c;break;case 4:I(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}}
function te(a){a.G=0;a.H=0;a.I=0;a.M=0;a.gb=0;a.P=0;a.K=0;a.J=0;a.cb=!1;a.ia=a.va=0;a.aa=0;a.lg=0;a.L=0;a.Za=65520;a.Mc=0;a.Sd=1023;a.ca=a.Pa=0;a.Wc=a.sd=a.Vc=a.Xc=0;a.rb=-1;a.kc=a.sb=-1;a.qe=a.U=-1;a.wa=new hd(a,1,"CS");a.vb=new hd(a,2,"DS");a.Xa=new hd(a,2,"ES");a.ta=new hd(a,3,"SS");I(a,0);nd(a,0);if(80386<=a.ja){switch(a.Uc){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Za=16;a.si=0;a.se=0;a.Od=0;a.Ja=[0,0,0,0,null,null,0,
0];a.Ce=[null,null,null,null,null,null,0,0];a.Nb=new hd(a,2,"FS");a.Ob=new hd(a,2,"GS");xe(a)}a.rf=new hd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ia=0;a.D=a.C=-1;a.$b=a.rf;a.ua=0;if(80286>a.ja)Cd(a,0,65535);else{a.Ec=0;a.zd=65535;a.Bc=new hd(a,5,"LDT",!0);a.Sa=new hd(a,4,"TSS",!0);a.Da=new hd(a,6,"VER",!0);Cd(a,65520,61440);var b,c=M(a);b=a.wa;var d=-65536;80386>b.F.ja&&(d&=16777215);b=b.Aa=d;a.Ha=b+c|0;a.jf=(b>>>0)+(a.wa.Ta>>>0)+1}Bd(a,0);pd(a)}
function Ae(a){2==a.Oc?(a.bc=a.na,a.Oa=Be,a.$a=Ce,a.Jb=De,2==a.ba?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=He,a.ea=Ie,a.ya=Le)):(a.bc=a.oa,a.Oa=Me,a.$a=Ne,a.Jb=Oe,2==a.ba?(a.V=Pe,a.ea=Qe,a.ya=Re):(a.V=Se,a.ea=Te,a.ya=df))}function vd(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,ef(a))}function ef(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=Pe,a.ea=Qe,a.ya=Re)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.V=He,a.ea=Ie,a.ya=Le):(a.V=Se,a.ea=Te,a.ya=df))}
function Ae(a){2==a.Oc?(a.bc=a.na,a.Oa=Be,a.$a=Ce,a.Jb=De,2==a.ba?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=He,a.ea=Ie,a.ya=Je)):(a.bc=a.oa,a.Oa=Me,a.$a=Ne,a.Jb=Oe,2==a.ba?(a.V=Pe,a.ea=Qe,a.ya=Re):(a.V=Se,a.ea=Te,a.ya=Ue))}function vd(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,ef(a))}function ef(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=Pe,a.ea=Qe,a.ya=Re)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.V=He,a.ea=Ie,a.ya=Je):(a.V=Se,a.ea=Te,a.ya=Ue))}
function ff(a){a.Oc=a.wa.Oc;a.Ba=a.wa.Ba;Ae(a);a.ba=a.wa.ba;a.R=a.wa.R;ef(a);a.Ia&=-3073}m.uj=function(){var a=this.G+this.H+this.I+this.M+J(this)+this.P+this.K+this.J|0;return a=a+M(this)+this.wa.Z+this.vb.Z+this.ta.Z+this.Xa.Z+Ad(this)|0};function gf(a,b,c){void 0===a.Hd[b]&&(a.Hd[b]=[]);a.Hd[b].push(c)}function hf(a,b,c){void 0!==c&&(null==a.je[b]&&a.le++,a.je[b]=c)}function jf(a,b){var c=a.je[b];null!=c&&(c(--a.le),delete a.je[b])}
function kf(a,b){for(var c=a.Ja[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ja[e],g=g&~(d>>2&3);b?a.sa[g>>>a.La].Rd(g&a.Fa,f,a):Lc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Ic(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<<g;a.ua|=2;break}}e>>=2;f>>=4}}}
function pd(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.kg=b&&!c?lf:Id;id(a.wa,!1,b,c);id(a.vb,!1,b,c);id(a.ta,!1,b,c);id(a.Xa,!1,b,c);80386<=a.ja&&(id(a.Nb,!1,b,c),id(a.Ob,!1,b,c));ff(a)}
m.save=function(){var a=new mf(this);O(a,0,[this.G,this.H,this.I,this.M,J(this),this.P,this.K,this.J]);var b=M(this),c=this.wa.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.zd,this.Mc,this.Sd,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ja&&(g.push(this.si),g.push(this.se),g.push(this.Od),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,Ad(this)];80386<=this.ja&&(b.push(this.Nb.save()),b.push(this.Ob.save()));O(a,1,b);O(a,2,[this.ka.jc,
this.Ka.jc,this.S,this.Ia,this.ua,this.D,this.C]);O(a,3,[0,this.uc,this.Y.Wd]);b=this.ga;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.X&&b.Cg==b.Gb)||Wb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=fc||h.Wa||h.sj){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,r=[];l<h.length;){for(var q=h[l],A=l+1;A<h.length&&h[A]===q;)A++;r[n++]=A-l;r[n++]=q;l=A}if(r.length<h.length){h=r;break a}}e[k]=h}}f||Wb(b,!1);e[d]=f;O(a,4,e);return a.data()};
this.Ka.jc,this.S,this.Ia,this.ua,this.D,this.C]);O(a,3,[0,this.uc,this.Y.Wd]);b=this.ga;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.X&&b.Cg==b.Gb)||Sb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=fc||h.Wa||h.sj){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,r=[];l<h.length;){for(var q=h[l],A=l+1;A<h.length&&h[A]===q;)A++;r[n++]=A-l;r[n++]=q;l=A}if(r.length<h.length){h=r;break a}}e[k]=h}}f||Sb(b,!1);e[d]=f;O(a,4,e);return a.data()};
m.restore=function(a){var b=a[0];this.G=b[0];this.H=b[1];this.I=b[2];this.M=b[3];var c=b[4];this.P=b[5];this.K=b[6];this.J=b[7];b=a[1];this.wa.restore(b[1]);this.vb.restore(b[2]);this.ta.restore(b[3]);this.Xa.restore(b[4]);var d=b[5];d&&d.length&&(this.Za=d[0],this.Ec=d[1],this.zd=d[2],this.Mc=d[3],this.Sd=d[4],this.Bc.restore(d[5]),this.Sa.restore(d[6]),this.Pa=d[7],80386<=this.ja&&(this.si=d[8],this.se=d[9],this.Od=d[10],this.Ja=d[11],this.Ce=d[12]),pd(this));Bd(this,b[6]);var d=!1,e;a:{e=this.ga;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.fa){for(var l=0,n=Array(e.fa),r=0;r<k.length-1;)for(var q=k[r++],A=k[r++];q--;)n[l++]=A;k=n}l=e.sa[h];if(!l||!l.restore(k)){x("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Wb(e,f[g]);e=!0}e&&(Cd(this,b[0],this.wa.Z),I(this,c),nd(this,this.ta.Z),80386<=this.ja&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&nf(this,b[0])||this.vb;this.Ka=null!=b[1]&&nf(this,b[1])||this.ta;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.fa){for(var l=0,n=Array(e.fa),r=0;r<k.length-1;)for(var q=k[r++],A=k[r++];q--;)n[l++]=A;k=n}l=e.sa[h];if(!l||!l.restore(k)){x("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Sb(e,f[g]);e=!0}e&&(Cd(this,b[0],this.wa.Z),I(this,c),nd(this,this.ta.Z),80386<=this.ja&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&nf(this,b[0])||this.vb;this.Ka=null!=b[1]&&nf(this,b[1])||this.ta;
this.S=b[2];this.Ia=b[3];this.ua=b[4];this.D=b[5];this.C=b[6];b=a[3];this.uc=b[1];ad(this,b[2]);return d};function nf(a,b){switch(b){case "CS":return a.wa;case "DS":return a.vb;case "SS":return a.ta;case "ES":return a.Xa;case "NULL":return a.rf;default:return[0,b,0,0,""]}}function of(a,b){null!=Cd(a,M(a),b)&&(a.S|=a.Cd)}function yd(a,b){-1!==a.vb.load(b)&&(a.S|=a.Cd)}
function nd(a,b,c){var d=J(a);-1!==a.ta.load(b)&&(I(a,d),a.ta.bd?(a.Rg=a.ta.Aa+a.ta.Ba|0,a.qd=a.ta.Aa+a.ta.Ta|0):(a.Rg=a.ta.Aa+a.ta.Ta|0,a.qd=a.ta.Aa),c||(a.S|=4))}function zd(a,b){-1!==a.Xa.load(b)&&(a.S|=a.Cd)}function M(a){return a.Ha-a.wa.Aa|0}function Q(a,b){a.Ha=a.wa.Aa+(b&a.R)|0}function pf(a,b){a.Ha=b;a.jf=(a.wa.Aa>>>0)+(a.wa.Ta>>>0)+1;a.pa=a.wa.Lb;ff(a)}function Cd(a,b,c,d){var e=a.wa;e.Zf=b;e.C=d;b=e.load(c);return-1!==b?(pf(a,b+(a.wa.Zf&a.wa.R)),a.wa.ef):null}
function qf(a,b){var c=(a.Ha>>>0)+b;c>a.jf&&(8088>=a.ja||a.wa.Ta==a.wa.Ba?c=a.wa.Aa+(c-a.jf&a.R):D.call(a,13,0));return c|0}function rf(a){a.Ha=a.qe}function J(a){return a.gb&~a.ta.Ba|a.fa-a.ta.Aa}function I(a,b){a.gb=b;a.fa=a.ta.Aa+(b&a.ta.Ba)|0}function sf(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&tf(a),g&2&&uf(a),g&4&&vf(a),g&8&&wf(a),g&16&&xf(a),g&32&&yf(a))}f?(a.Wc=d,a.Vc=b):(a.Wc=b,a.Vc=d);a.sd=c;a.Xc=d;a.resultType=e}
@ -188,7 +188,7 @@ function kj(a,b){return b>>(this.G&this.R)&(1<<(this.I&31))-1&this.R}function lj
function mj(a,b){if(-1===this.D){switch(this.L&7){case 0:this.G=this.G&~this.R|a;break;case 1:this.I=this.I&~this.R|a;break;case 2:this.M=this.M&~this.R|a;break;case 3:this.H=this.H&~this.R|a;break;case 4:I(this,J(this)&~this.R|a);break;case 5:this.P=this.H&~this.R|a;break;case 6:this.K=this.K&~this.R|a;break;case 7:this.J=this.J&~this.R|a}this.A-=this.B.ki}else this.C=this.D,this.S&2||this.rc(this.$b.nc(this.Ca,this.ba),a),this.A-=this.B.ji;return b}
function nj(a,b){var c=a^b;zf(this,c,128);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c}function oj(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return zf(this,a^b,this.Ga)&this.R}function pj(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function qj(a){var b=a-1|0;sf(this,a,1,b,this.Ga|62,!0);this.A-=2;return a&~this.R|b&this.R}
function rj(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0<pj(a,c);){var f=b=c;b[0]+=f[0];b[1]+=f[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=pj(a,c)&&(b=a,f=c,b[0]-=f[0],b[1]-=f[1],0>b[0]&&(b[0]>>>=0,b[1]--),d+=e),b=c,b[0]>>>=1,b[1]&1&&(b[0]=(b[0]|2147483648)>>>0),b[1]>>>=1,e/=2;while(1<=e);this.ia=d;this.va=a[0];return!0}function sj(a){var b=a+1|0;sf(this,a,1,b,this.Ga|62);this.A-=2;return a&~this.R|b&this.R}
function tj(a){this.Za=a;pd(this);this.Za&-2147483648?ve(this):xe(this)}function Dd(a){this.Od=a;$b(this)}function uj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Vi(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;zf(this,a,-2147483648,d&-2147483648)}return a}
function tj(a){this.Za=a;pd(this);this.Za&-2147483648?ve(this):xe(this)}function Dd(a){this.Od=a;Vb(this)}function uj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Vi(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;zf(this,a,-2147483648,d&-2147483648)}return a}
function aj(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;zf(this,a,32768,d&1)}return a}function cj(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;zf(this,a,-2147483648,d&1)}return a}function vj(){this.A-=-1===this.D?2:this.B.Ek;return 1}function wj(){var a=this.I&255;this.A-=(-1===this.D?this.B.bi:this.B.ai)+(a<<this.B.ci);return a}function xj(){var a=this.xa();this.A-=(-1===this.D?this.B.bi:this.B.ai)+(a<<this.B.ci);return a}function yj(){return null}
function zj(){return this.aa}function Aj(a,b){this.kc=this.wa.Z;this.sb=this.ta.Z;this.U=this.fa;var c=M(this),d=this.ba;null!=Cd(this,a,b,!0)&&(xd(this,this.kc,d,2),xd(this,c,d,d));this.kc=this.sb=this.U=-1}function Bj(a,b,c){this.A-=this.B.bk+(c||0);c=Ad(this);var d=this.wa.Z,e=M(this);a=this.wa.Bj(a);-1!==a&&(K(this,c),K(this,d),K(this,e),null!=b&&K(this,b),this.rb=-1,pf(this,a))}
function Cj(a){this.sb=this.ta.Z;this.U=this.fa;var b=G(this),c=G(this);a&&I(this,J(this)+a);Cd(this,b,c,!1)&&(a&&I(this,J(this)+a),Dj.call(this,this.vb),Dj.call(this,this.Xa),80386<=this.ja&&(Dj.call(this,this.Nb),Dj.call(this,this.Ob)));2==a&&this.le&&jf(this,this.Ha);this.sb=this.U=-1}function Ej(){8086==this.ja?(this.rb=-1,Bj.call(this,0,null,2)):D.call(this,0,null,2)}function Zf(a,b){this.rb=a;void 0===b&&(b=11);Bj.call(this,a,null,b)}
@ -237,7 +237,7 @@ case 65:b=T(this,this.H+this.J+this.T());this.C=this.D;break;case 66:b=Rf(this,t
this.C=this.D;break;case 130:b=Rf(this,this.P+this.K+U(this));this.C=this.D;break;case 131:b=Rf(this,this.P+this.J+U(this));this.C=this.D;break;case 132:b=T(this,this.K+U(this));this.C=this.D;break;case 133:b=T(this,this.J+U(this));this.C=this.D;break;case 134:b=Rf(this,this.P+U(this));this.C=this.D;break;case 135:b=T(this,this.H+U(this));this.C=this.D;break;case 192:b=this.G;break;case 193:b=this.I;break;case 194:b=this.M;break;case 195:b=this.H;break;case 196:b=J(this);break;case 197:b=this.P;break;
case 198:b=this.K;break;case 199:b=this.J;break;default:b=0}switch(this.L>>3&7){case 0:c=this.G;break;case 1:c=this.I;break;case 2:c=this.M;break;case 3:c=this.H;break;case 4:c=J(this);break;case 5:c=this.P;break;case 6:c=this.K;break;case 7:c=this.J;break;default:c=0}a=a.call(this,b,c);switch(d){case 0:case 3:Uf(this,a);this.A-=this.B.dd;break;case 1:case 2:Uf(this,a);this.A-=this.B.ed;break;case 4:case 5:case 7:Uf(this,a);this.A-=this.B.Jc;break;case 6:Uf(this,a);this.A-=this.B.Jd;break;case 64:case 67:case 128:case 131:Uf(this,
a);this.A-=this.B.cc;break;case 65:case 66:case 129:case 130:Uf(this,a);this.A-=this.B.dc;break;case 68:case 69:case 70:case 71:case 132:case 133:case 134:case 135:Uf(this,a);this.A-=this.B.ib;break;case 192:this.G=a;break;case 193:this.I=a;break;case 194:this.M=a;break;case 195:this.H=a;break;case 196:I(this,a);break;case 197:this.P=a;break;case 198:this.K=a;break;case 199:this.J=a}}
function Le(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.H+this.K);this.C=this.D;break;case 1:c=T(this,this.H+this.J);this.C=this.D;break;case 2:c=Rf(this,this.P+this.K);this.C=this.D;break;case 3:c=Rf(this,this.P+this.J);this.C=this.D;break;case 4:c=T(this,this.K);this.C=this.D;break;case 5:c=T(this,this.J);this.C=this.D;break;case 6:c=T(this,U(this));this.C=this.D;break;case 7:c=T(this,this.H);this.C=this.D;break;case 64:c=T(this,this.H+this.K+this.T());this.C=this.D;break;
function Je(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.H+this.K);this.C=this.D;break;case 1:c=T(this,this.H+this.J);this.C=this.D;break;case 2:c=Rf(this,this.P+this.K);this.C=this.D;break;case 3:c=Rf(this,this.P+this.J);this.C=this.D;break;case 4:c=T(this,this.K);this.C=this.D;break;case 5:c=T(this,this.J);this.C=this.D;break;case 6:c=T(this,U(this));this.C=this.D;break;case 7:c=T(this,this.H);this.C=this.D;break;case 64:c=T(this,this.H+this.K+this.T());this.C=this.D;break;
case 65:c=T(this,this.H+this.J+this.T());this.C=this.D;break;case 66:c=Rf(this,this.P+this.K+this.T());this.C=this.D;break;case 67:c=Rf(this,this.P+this.J+this.T());this.C=this.D;break;case 68:c=T(this,this.K+this.T());this.C=this.D;break;case 69:c=T(this,this.J+this.T());this.C=this.D;break;case 70:c=Rf(this,this.P+this.T());this.C=this.D;break;case 71:c=T(this,this.H+this.T());this.C=this.D;break;case 128:c=T(this,this.H+this.K+U(this));this.C=this.D;break;case 129:c=T(this,this.H+this.J+U(this));
this.C=this.D;break;case 130:c=Rf(this,this.P+this.K+U(this));this.C=this.D;break;case 131:c=Rf(this,this.P+this.J+U(this));this.C=this.D;break;case 132:c=T(this,this.K+U(this));this.C=this.D;break;case 133:c=T(this,this.J+U(this));this.C=this.D;break;case 134:c=Rf(this,this.P+U(this));this.C=this.D;break;case 135:c=T(this,this.H+U(this));this.C=this.D;break;case 192:c=this.G;break;case 193:c=this.I;break;case 194:c=this.M;break;case 195:c=this.H;break;case 196:c=J(this);break;case 197:c=this.P;break;
case 198:c=this.K;break;case 199:c=this.J}c=a[this.L>>3&7].call(this,c,b.call(this));switch(d){case 0:case 3:Uf(this,c);this.A-=this.B.dd;break;case 1:case 2:Uf(this,c);this.A-=this.B.ed;break;case 4:case 5:case 7:Uf(this,c);this.A-=this.B.Jc;break;case 6:Uf(this,c);this.A-=this.B.Jd;break;case 64:case 67:case 128:case 131:Uf(this,c);this.A-=this.B.cc;break;case 65:case 66:case 129:case 130:Uf(this,c);this.A-=this.B.dc;break;case 68:case 69:case 70:case 71:case 132:case 133:case 134:case 135:Uf(this,
@ -276,7 +276,7 @@ function Te(a){var b,c,d=(this.L=this.xa())&199;switch(d){case 0:b=T(this,this.G
this.C=this.D;break;case 66:b=T(this,this.M+this.T());this.C=this.D;break;case 67:b=T(this,this.H+this.T());this.C=this.D;break;case 68:b=T(this,Fj.call(this,1)+this.T());this.C=this.D;break;case 69:b=Rf(this,this.P+this.T());this.C=this.D;break;case 70:b=T(this,this.K+this.T());this.C=this.D;break;case 71:b=T(this,this.J+this.T());this.C=this.D;break;case 128:b=T(this,this.G+U(this));this.C=this.D;break;case 129:b=T(this,this.I+U(this));this.C=this.D;break;case 130:b=T(this,this.M+U(this));this.C=
this.D;break;case 131:b=T(this,this.H+U(this));this.C=this.D;break;case 132:b=T(this,Fj.call(this,2)+U(this));this.C=this.D;break;case 133:b=Rf(this,this.P+U(this));this.C=this.D;break;case 134:b=T(this,this.K+U(this));this.C=this.D;break;case 135:b=T(this,this.J+U(this));this.C=this.D;break;case 192:b=this.G;break;case 193:b=this.I;break;case 194:b=this.M;break;case 195:b=this.H;break;case 196:b=J(this);break;case 197:b=this.P;break;case 198:b=this.K;break;case 199:b=this.J;break;default:b=0}switch(this.L>>
3&7){case 0:c=this.G;break;case 1:c=this.I;break;case 2:c=this.M;break;case 3:c=this.H;break;case 4:c=J(this);break;case 5:c=this.P;break;case 6:c=this.K;break;case 7:c=this.J;break;default:c=0}a=a.call(this,b,c);switch(d){case 192:this.G=a;break;case 193:this.I=a;break;case 194:this.M=a;break;case 195:this.H=a;break;case 196:I(this,a);break;case 197:this.P=a;break;case 198:this.K=a;break;case 199:this.J=a;break;default:Uf(this,a)}}
function df(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.G);this.C=this.D;break;case 1:c=T(this,this.I);this.C=this.D;break;case 2:c=T(this,this.M);this.C=this.D;break;case 3:c=T(this,this.H);this.C=this.D;break;case 4:c=T(this,Fj.call(this,0));this.C=this.D;break;case 5:c=T(this,U(this));this.C=this.D;break;case 6:c=T(this,this.K);this.C=this.D;break;case 7:c=T(this,this.J);this.C=this.D;break;case 64:c=T(this,this.G+this.T());this.C=this.D;break;case 65:c=T(this,this.I+this.T());
function Ue(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.G);this.C=this.D;break;case 1:c=T(this,this.I);this.C=this.D;break;case 2:c=T(this,this.M);this.C=this.D;break;case 3:c=T(this,this.H);this.C=this.D;break;case 4:c=T(this,Fj.call(this,0));this.C=this.D;break;case 5:c=T(this,U(this));this.C=this.D;break;case 6:c=T(this,this.K);this.C=this.D;break;case 7:c=T(this,this.J);this.C=this.D;break;case 64:c=T(this,this.G+this.T());this.C=this.D;break;case 65:c=T(this,this.I+this.T());
this.C=this.D;break;case 66:c=T(this,this.M+this.T());this.C=this.D;break;case 67:c=T(this,this.H+this.T());this.C=this.D;break;case 68:c=T(this,Fj.call(this,1)+this.T());this.C=this.D;break;case 69:c=Rf(this,this.P+this.T());this.C=this.D;break;case 70:c=T(this,this.K+this.T());this.C=this.D;break;case 71:c=T(this,this.J+this.T());this.C=this.D;break;case 128:c=T(this,this.G+U(this));this.C=this.D;break;case 129:c=T(this,this.I+U(this));this.C=this.D;break;case 130:c=T(this,this.M+U(this));this.C=
this.D;break;case 131:c=T(this,this.H+U(this));this.C=this.D;break;case 132:c=T(this,Fj.call(this,2)+U(this));this.C=this.D;break;case 133:c=Rf(this,this.P+U(this));this.C=this.D;break;case 134:c=T(this,this.K+U(this));this.C=this.D;break;case 135:c=T(this,this.J+U(this));this.C=this.D;break;case 192:c=this.G;break;case 193:c=this.I;break;case 194:c=this.M;break;case 195:c=this.H;break;case 196:c=J(this);break;case 197:c=this.P;break;case 198:c=this.K;break;case 199:c=this.J;break;default:c=0}c=a[this.L>>
3&7].call(this,c,b.call(this));switch(d){case 192:this.G=c;break;case 193:this.I=c;break;case 194:this.M=c;break;case 195:this.H=c;break;case 196:I(this,c);break;case 197:this.P=c;break;case 198:this.K=c;break;case 199:this.J=c;break;default:Uf(this,c)}}
@ -291,9 +291,9 @@ function Ud(){var a=1,b=0,c=this.Ba,d=5;this.Ia&192&&(a=this.I&c,b=1,this.Ia&256
function Hj(){var a=this.T();yf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Ij(){var a=this.T();tf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Jj(){var a=this.T();tf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Kj(){var a=this.T();wf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Lj(){var a=this.T();wf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}
function Mj(){var a=this.T();tf(this)||wf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Nj(){var a=this.T();tf(this)||wf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Oj(){var a=this.T();xf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Pj(){var a=this.T();xf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Qj(){var a=this.T();uf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Rj(){var a=this.T();uf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Sj(){var a=this.T();!xf(this)!=!yf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Tj(){var a=this.T();!xf(this)==!yf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Uj(){var a=this.T();wf(this)||!xf(this)!=!yf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Vj(){var a=this.T();wf(this)||!xf(this)!=!yf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Wj(){this.Jb.call(this,Xj,this.xa);this.A-=-1===this.C?1:this.B.Ig}function Yj(){this.S|=1;this.$a.call(this,fi)}function Zj(){this.S|=1;this.ea.call(this,fi)}function ak(){this.Oa.call(this,fi)}function bk(){this.V.call(this,fi)}function Vd(){this.Jb.call(this,ck,xj)}function Zd(){this.ya.call(this,2==this.ba?dk:ek,xj)}
function Vj(){var a=this.T();wf(this)||!xf(this)!=!yf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Wj(){this.Jb.call(this,Xj,this.xa);this.A-=-1===this.C?1:this.B.Ig}function Yj(){this.S|=1;this.$a.call(this,fi)}function Zj(){this.S|=1;this.ea.call(this,fi)}function ak(){this.Oa.call(this,fi)}function bk(){this.V.call(this,fi)}function Vd(){this.Jb.call(this,ck,xj)}function Wd(){this.ya.call(this,2==this.ba?dk:ek,xj)}
function fk(){var a=Vf(this),b=G(this);Q(this,b);a&&I(this,J(this)+a);this.A-=this.B.Dk}function gk(){var a=G(this);Q(this,a);this.A-=this.B.Ak}function $d(){this.U=this.fa;var a=Vf(this),b=this.xa()&31;this.A-=11;K(this,this.P);var c=J(this)&this.R;if(0<b){for(this.A-=(b<<2)+(1<b?1:0);--b;)this.P=this.P&~this.R|this.P-this.ba&this.R,K(this,wd(this,this.ta,this.P&this.R));K(this,c)}this.P=this.P&~this.R|c;I(this,J(this)&~this.ta.Ba|J(this)-a&this.ta.Ba);this.U=-1}
function ae(){this.U=this.fa;I(this,J(this)&~this.ta.Ba|this.P&this.ta.Ba);this.P=this.P&~this.R|G(this)&this.R;this.A-=5;this.U=-1}function hk(){Cj.call(this,Vf(this));this.A-=this.B.Ck}function ik(){Cj.call(this,0);this.A-=this.B.Bk}function jk(a){this.lg=a;this.V.call(this,Ph)}function kk(){this.S|=36;this.A-=this.B.nd}function ge(){ke.call(this)}function Jd(){D.call(this,6)}
function ae(){this.U=this.fa;I(this,J(this)&~this.ta.Ba|this.P&this.ta.Ba);this.P=this.P&~this.R|G(this)&this.R;this.A-=5;this.U=-1}function hk(){Cj.call(this,Vf(this));this.A-=this.B.Ck}function ik(){Cj.call(this,0);this.A-=this.B.Bk}function jk(a){this.lg=a;this.V.call(this,Ph)}function kk(){this.S|=36;this.A-=this.B.nd}function be(){ke.call(this)}function Jd(){D.call(this,6)}
function ke(){Q(this,this.qe-this.wa.Aa);yb(this,"Undefined opcode "+u(this.Qa(this.Ha))+" at "+t(this.Ha,8,!0));this.Wb()}
var Fd=[function(){this.$a.call(this,xh)},function(){this.ea.call(this,yh)},function(){this.Oa.call(this,xh)},function(){this.V.call(this,yh)},function(){this.G=this.G&-256|xh.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|yh.call(this,this.G&this.R,this.Ma());this.A--},function(){xd(this,this.Xa.Z,this.ba,2);this.A-=this.B.Ie},function(){this.U=this.fa;zd(this,G(this));this.A-=this.B.zc;this.U=-1},function(){this.$a.call(this,Bi)},function(){this.ea.call(this,Ci)},function(){this.Oa.call(this,
Bi)},function(){this.V.call(this,Ci)},function(){this.G=this.G&-256|Bi.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|Ci.call(this,this.G&this.R,this.Ma());this.A--},function(){xd(this,this.wa.Z,this.ba,2);this.A-=this.B.Ie},function(){of(this,G(this));this.A-=this.B.zc},function(){this.$a.call(this,vh)},function(){this.ea.call(this,wh)},function(){this.Oa.call(this,vh)},function(){this.V.call(this,wh)},function(){this.G=this.G&-256|vh.call(this,this.G&255,this.xa());this.A--},
@ -414,7 +414,7 @@ m.Ll=function(a,b){var c=this.Ja;y(this,a,null,b,"8042_OUTBUFF",c,16384);this.N&
m.jn=function(a,b,c){y(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.N&8)switch(this.ea){case 96:Vl(this,b);break;case 209:Wl(this,b);break;default:if(Vl(this,this.aa&-17),this.B){a=this.B;c=b;var d=-1;B(a)&&z(a,"sendCmd("+u(c)+")");switch(a.V||c){case 255:d=250;Xl(a);break;case 243:a.V&&(c=0);Yl(a,250);a.V=c;break;case 237:a.V&&(c=0);Yl(a,250);a.V=c;break;default:z(a,"sendCmd(): unrecognized command")}Zl(this,d)}}this.ea=b;this.N&=-9};
m.Ml=function(a,b){var c=this.W&-209|($c(this.F)&64?16:0);y(this,a,null,b,"8042_RWREG",c,16384);return c};m.kn=function(a,b,c){y(this,a,b,c,"8042_RWREG",null,16384);Sl(this,b)};m.Nl=function(a,b){y(this,a,null,b,"8042_STATUS",this.N,16384);var c=this.N&255;this.N&256&&(this.N|=1,this.N&=-257);return c};
m.hn=function(a,b,c){y(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.ea=b;this.N|=8;a=0;240<=this.ea&&(a=this.ea^15,this.ea=240);switch(this.ea){case 32:Zl(this,this.aa);break;case 173:Vl(this,this.aa|16);break;case 174:Vl(this,this.aa&-17);this.B&&Ul(this.B);break;case 170:this.B&&(a=this.B,a.A=[],B(a)&&z(a,"scan codes flushed"));Vl(this,this.aa|16);Zl(this,85);Wl(this,3);break;case 171:Zl(this,0);break;case 192:Zl(this,this.fa);break;case 208:Zl(this,this.Ka);break;case 224:Zl(this,this.aa&16?0:
1);break;case 240:a&1&&te(this.F)}};function Vl(a,b){a.aa=b;a.N=a.N&-5|b&4;a.B&&Tl(a.B,!!(b&8),!(b&16))}function Zl(a,b,c){0<=b&&(a.Ja=b,c?a.N|=1:(a.N&=-2,a.N|=256))}function Wl(a,b){a.Ka=b;Wb(a.ga,!!(b&2));b&1||te(a.F)}function $l(a,b){a.ja<gg?(ig(a,1,4),a.va|=1):a.aa&16||a.N&257||(Zl(a,b,!0),am(a.B),ig(a,1,120))}function bm(a,b,c,d){var e=a.C[b][1];y(a,c,null,d,"DIPSW-"+b,e,32768);return e}m.am=function(a,b){y(this,a,null,b,"CMOS.ADDR",this.pa,4096);return this.pa};
1);break;case 240:a&1&&te(this.F)}};function Vl(a,b){a.aa=b;a.N=a.N&-5|b&4;a.B&&Tl(a.B,!!(b&8),!(b&16))}function Zl(a,b,c){0<=b&&(a.Ja=b,c?a.N|=1:(a.N&=-2,a.N|=256))}function Wl(a,b){a.Ka=b;Sb(a.ga,!!(b&2));b&1||te(a.F)}function $l(a,b){a.ja<gg?(ig(a,1,4),a.va|=1):a.aa&16||a.N&257||(Zl(a,b,!0),am(a.B),ig(a,1,120))}function bm(a,b,c,d){var e=a.C[b][1];y(a,c,null,d,"DIPSW-"+b,e,32768);return e}m.am=function(a,b){y(this,a,null,b,"CMOS.ADDR",this.pa,4096);return this.pa};
m.zn=function(a,b,c){y(this,a,b,c,"CMOS.ADDR",null,4096);this.pa=b;this.ya=b&128?0:128};m.bm=function(a,b){var c=this.pa&63,d=13>=c?Sk(this,c):this.A[c];B(this,4352)&&y(this,a,null,b,"CMOS.DATA["+u(c)+"]",d,!0);null!=b&&12==c&&(this.A[c]&=15,d&128&&hg(this,8),d&64&&this.A[11]&64&&bl(this));return d};
m.An=function(a,b,c){var d=this.pa&63;B(this,4352)&&y(this,a,b,c,"CMOS.DATA["+u(d)+"]",null,!0);a=b^this.A[d];if(13>=d){if(c=b,10>d){var e=!1;this.A[11]&4||(c=10*(c>>4)+(c&15),e=!0);if(4==d||5==d)e&&23<c&&(c+=48),this.A[11]&2||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;11==d&&a&64&&b&64&&bl(this)};m.Mk=function(a,b,c){y(this,a,b,c,"NMI");this.ya=b};m.Kn=function(a,b,c){y(this,a,b,c,"FPU.CLEAR")};m.Ln=function(a,b,c){y(this,a,b,c,"FPU.RESET");this.Tb&&bg(this.Tb)};
m.Om=function(a){if(B(this,16)&&ok(this.ha,26,a)){var b=this.F.G>>8;hf(this.F,a,function(a,d){return function(e){d=$c(a.F)-d;var f,g=a.F.M&255,h=a.F.M>>8,k=a.F.M&255,l=a.F.M>>8;if(2==b||3==b)f=" CH(hour)="+v(h)+" CL(min)="+u(g)+" DH(sec)="+u(l);else if(4==b||5==b)f=" CX(year)="+v(a.F.I)+" DH(month)="+u(l)+" DL(day)="+u(k);g=a.ha;h=d;g.message("INT "+u(26)+": C="+(tf(g.F)?1:0)+(f||"")+" (cycles="+h+(e?",level="+(e+1):"")+")")}}(this,$c(this.F)))}return!0};
@ -435,10 +435,10 @@ function cm(a){Za.call(this,"ROM",a,cm);this.A=null;this.X=a.addr;this.C=a.size;
cm.prototype.gc=function(){this.Qd&&(this.ha&&fm(this.ha,this.id,0,this.X>>>4,0,this.X,this.C,this.Qd),delete this.Qd);return!0};cm.prototype.fc=function(){return!0};
function dm(a,b,c,d){if(d)a.Na("Unable to load system ROM (error "+d+": "+b+")");else{jb(a.ce,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.Qd=e.symbols;if(!a.A.length){x("Empty ROM: "+b);return}if(1==a.A.length){x(a.A[0]);return}}catch(h){a.Na("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]=ea(b[e],16);em(a)}}
function em(a){if(!xb(a))if(!a.L)wb(a);else if(a.A&&a.ga){a.C||(a.C=a.A.length);if(a.A.length!=a.C)yb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.C,8,!0)+")");else{var b;b=a.X;if(Yb(a.ga,b,a.C,fc)){for(var c=0;c<a.A.length;c++){var d=a.ga,e=b+c;d.sa[(e&d.Gb)>>>d.La].xf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c<b.length;c++){var d=a,e=b[c],f=cc(d.ga,d.X,d.C);bc(d.ga,e,d.C,f)}a.B&&((b=mb(a.B,
function em(a){if(!xb(a))if(!a.L)wb(a);else if(a.A&&a.ga){a.C||(a.C=a.A.length);if(a.A.length!=a.C)yb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.C,8,!0)+")");else{var b;b=a.X;if(Tb(a.ga,b,a.C,fc)){for(var c=0;c<a.A.length;c++){var d=a.ga,e=b+c;d.sa[(e&d.Gb)>>>d.La].xf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c<b.length;c++){var d=a,e=b[c],f=cc(d.ga,d.X,d.C);bc(d.ga,e,d.C,f)}a.B&&((b=mb(a.B,
a.id))?(c=a.A,d=a.V,5==b.Ua?gm(b,c,d||[12640,8752],8):b.Ua==hm&&gm(b,c,d||[14221,16269],8),wb(b)):a.Na("Unable to find component: "+a.B));delete a.A}}wb(a)}}Ua(function(){for(var a=rb(document,"pcx86","rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new cm(d);qb(d,c)}});function im(a){Za.call(this,"RAM",a,im);this.B=a.addr;this.A=a.size;this.L=a.test;this.X=!!this.A;this.C=!1}hb(im);m=im.prototype;m.Ic=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.N=Jb(a,"ChipSet");wb(this)};
m.gc=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};m.fc=function(a){return a&&this.controller?this.save():!0};
m.reset=function(){if(!this.B&&!this.X&&this.N){var a=1024*Xk(this.N);this.A&&a!=this.A&&(ec(this.ga,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Yb(this.ga,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.xd&&(this.controller=new jm(this),Yb(this.ga,km,4,4,this.controller)));if(this.C){if(this.L||lc(this.ga,1138,4660),"ramCPQ"!=this.xd&&this.N&&(a=this.N,a.A)){var b=1048576>this.B?21:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;al(a)}}else x("No RAM allocated")};
m.reset=function(){if(!this.B&&!this.X&&this.N){var a=1024*Xk(this.N);this.A&&a!=this.A&&(ec(this.ga,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Tb(this.ga,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.xd&&(this.controller=new jm(this),Tb(this.ga,km,4,4,this.controller)));if(this.C){if(this.L||lc(this.ga,1138,4660),"ramCPQ"!=this.xd&&this.N&&(a=this.N,a.A)){var b=1048576>this.B?21:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;al(a)}}else x("No RAM allocated")};
m.save=function(){var a=new mf(this);this.controller&&O(a,0,this.controller.save());return a.data()};m.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function jm(a){this.N=a;this.C=lm;this.ha=mm;this.B=nm;this.A=null}var km=-2134900736,lm=65535,mm=2575,nm=2,om=[null,0],pm=[function(a){return this.controller.Qa(a)},null,null,function(a,b){this.controller.qc(a,b)},null,null];m=jm.prototype;m.save=function(){return[this.C,this.B]};
m.restore=function(a){this.qc(0,a[0]&255);this.qc(2,a[1]&255);return!0};m.Qa=function(a){var b=255;2>a?b=a&1?this.ha>>8:this.ha&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};m.qc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.N.ga;if(b&1)this.A&&(bc(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=cc(c,917504,131072));var d=cc(c,16646144,131072);bc(c,917504,131072,d,b&2?1:fc)}this.C=this.C&-256|b}};m.vj=function(){return om};m.mh=function(){return pm};
Ua(function(){for(var a=rb(document,"pcx86","ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new im(d);qb(d,c)}});function qm(a){Za.call(this,"Keyboard",a,qm,65536);rm(this,a.model);this.ia=Ka("Mobi");this.pa=Ka("MSIE");z(this,"mobile keyboard support: "+(this.ia?"true":"false"));this.fa=0;this.ka=this.jh=!1;this.B=[];this.ua=50;wb(this)}hb(qm);
@ -490,7 +490,7 @@ gn[98]=function(a,b){var c=a+this.C,d=Vm[b&15],d=d&this.controller.Fb,d=d&this.c
gn[226]=function(a,b){var c=a+this.C,d=Vm[b&15],d=d^this.controller.Fb,d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};gn[3]=function(a,b){var c=a+this.C;b=b>>this.controller.cd|b<<8-this.controller.cd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Mb;d=this.controller.Wf&d|this.controller.Fb&~d;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
function hn(a){var b=[];if(void 0!==a.Ua){b[0]=a.Hc;b[1]=a.fd;b[2]=a.tf;b[3]=a.ma;b[4]=a.Ac|a.Pg<<8;b[5]=a.mb;if(5<=a.Ua){var c=[];c[0]=a.$e;c[1]=a.Nd;c[2]=a.Tc;c[3]=a.Sg;c[4]=a.vf;c[5]=a.gg;c[6]=a.ae;c[7]=a.Ke;c[8]=a.Pk;c[9]=a.Qk;c[10]=a.$d;c[11]=a.Zd;c[12]=a.Fb;c[13]=[a.ob,a.ac,a.Dd];var d;a:if(d=a.rd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],l=h+2;l<d.length&&d[l]===k;)l+=2;f[e++]=l-h>>1;f[e++]=k;h=l}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
a.Bg|-2147483648;c[16]=a.li;c[17]=a.qb;c[18]=a.cd;c[19]=a.Mb;c[20]=a.Wf;c[21]=a.Yd;c[22]=a.pe;c[23]=a.wh;c[24]=a.xh;c[25]=a.Ld;a.Ua==hm&&(c[26]=a.ui,c[27]=a.ti,c[28]=a.od,c[29]=a.Kc,c[30]=a.Qg,c[31]=a.uf);b[6]=c}b[7]=a.Dh}return b}function jn(a,b,c,d,e){if(d){var f,g="";for(f=0;f<e.length;f++){var h=d===a.mb?kn(a,f):d[f];g&&(g+="\n");g+=b+"["+t(f,2)+"]: "+oa(e[f],18)+(f===c?"*":" ")+t(h,255<h?4:2);null!=h&&(g+=" ("+h+".)")}a.ha.O(g)}else a.ha.O(b+": "+t(c,2))}
Xm.prototype.vj=function(a){return[this.rd,a-this.ob]};Xm.prototype.mh=function(){return this.A};Xm.prototype.Ug=function(a){if(null!=a&&a!=this.Bg){var b=a&65280,c=gn[b];c||b&4096&&(c=gn[4096]);var b=a&255,d=gn[b];d||b&16&&(d=gn[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.Bg=a}};
Xm.prototype.vj=function(a){return[this.rd,a-this.ob]};Xm.prototype.mh=function(){return this.A};Xm.prototype.Ug=function(a){if(null!=a&&a!=this.Bg){var b=a&65280,c=gn[b];c||b&4096&&(c=gn[4096]);var b=a&255,d=gn[b];d||b&16&&(d=gn[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[1]=d;this.Bg=a}};
function kn(a,b){var c=a.mb[b];if(null!=c&&5<=a.Ua){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ua==hm&&(e=32);break;case 10:5==a.Ua&&(d=32);break;case 16:d=4;a.Ua==hm&&(e=128);break;case 18:d=2;a.Ua==hm&&(e=64);break;case 21:d=8;a.Ua==hm&&(f=32);break;case 24:d=16,a.Ua==hm&&(f=64)}d&&(c|=a.mb[7]&d?256:0,c|=a.mb[7]&e?512:0,c|=a.mb[9]&f?512:0)}return c}var Ym=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Ym[hm]=["VGA",980,753664,16384,262144,7];var Km=0;
m=Z.prototype;
m.Ic=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;c=(c=Im[this.ja])&&c[0];3!==c&&(nc(b,this,ln),rc(b,this,mn));1!==c&&(nc(b,this,nn),rc(b,this,on));5<=this.Ua&&(nc(b,this,pn),rc(b,this,qn));this.Ua==hm&&(nc(b,this,rn),rc(b,this,sn));if(d){var e=this;Qk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.rd){var c,d,f,r=!1,q=8,A=8,F=-1,w=b.video.L>>3;for(c=0;c<a.length;c++){var E=a[c];if(c){var H=E.charAt(0);d=ea(E.substr(1),16);switch(H){case "l":q=d;break;case "n":1<=d&&8>=d&&(A=d,r=!0);break;
@ -511,14 +511,14 @@ function Zn(a,b){if(1==b)return a.Ca[0]=Rm[0],a.Ca[1]=Rm[7],a.Ca;if(2==b){var c=
(c.Tc[20]&12)<<4,c.Tc[16]&128&&(g&=-49,g|=(c.Tc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ca[f]=[h,k,g,255]}a.rb=!0}return a.Ca}function gm(a,b,c,d){a.Uc=b;a.Jb=c;a.Tb=d}
function yn(a,b){var c=!1;if(window&&a.Uc&&(!b||a.U)){var d=0,e=a.Tb?a.Tb:8,f=Zn(a);null!=a.Jb[0]&&$n(a,3,a.Jb[0],d,e,8,a.Uc,f)&&(c=!0);d=a.Tb?0:2048;e=a.Tb?a.Tb:9;null!=a.Jb[1]&&($n(a,1,a.Jb[1],d,e,14,a.Uc,Pm,Qm)&&(c=!0),a.Tb&&$n(a,a.Ua,a.Jb[1],0,a.Tb,14,a.Uc,f)&&(c=!0))}return c}function $n(a,b,c,d,e,f,g,h,k){var l=!1;null!=c&&(ao(a,b,c,d,e,f,g,h,k)&&(l=!0),a.qo&&ao(a,b<<1,c,d,e,f,g,h,k)&&(l=!0));return l}
function ao(a,b,c,d,e,f,g,h,k){var l=!1,n=b&1?0:1,r=a.Oa[b],q=16>h.length?h.length:16;r||(r={Qc:e<<n,Rc:f<<n,Pe:Array(q),Xi:h.slice(0,q),Af:k,Yg:Array(q)});for(k=0;k<q;k++){var A=h[k],F=r.Pe[k]?r.Xi[k]:[];if(A[0]!==F[0]||A[1]!==F[1]||A[2]!==F[2]){var l=r,F=k,w=n,E=c,H=d,L=e,W=f,P=g,bb=[0,0,0,0],ia=document.createElement("canvas");ia.width=l.Qc<<4;ia.height=l.Rc<<4;for(var ja=ia.getContext("2d"),Ha=void 0,Xa=void 0,Ba=void 0,Xb=8>W||!H?W:8,wa=ja.createImageData(l.Qc,l.Rc),Ha=0;256>Ha;Ha++){for(Ba=
0;Ba<W;Ba++)for(var Wd=l.Af&&F&1&&Ba>=W-2,Sc=P[Ba<Xb?E+Ha*Xb+Ba:H+Ha*Xb+Ba-Xb],Xd=0;Xd<=w;Xd++)for(Xa=0;Xa<L;Xa++){var Je=Xa<<w,Yd=(Ba<<w)+Xd,Ke=Wd||Sc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?A:bb;bo(wa,Je,Yd,Ke);w&&bo(wa,Je+1,Yd,Ke)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Pe[F]="#"+t(A[0],2)+t(A[1],2)+t(A[2],2);l.Xi[F]=A;l.Yg[F]=ia;l=!0}}a.Oa[b]=r;return l}function co(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
0;Ba<W;Ba++)for(var Xd=l.Af&&F&1&&Ba>=W-2,Sc=P[Ba<Xb?E+Ha*Xb+Ba:H+Ha*Xb+Ba-Xb],Yd=0;Yd<=w;Yd++)for(Xa=0;Xa<L;Xa++){var Ke=Xa<<w,Zd=(Ba<<w)+Yd,Le=Xd||Sc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?A:bb;bo(wa,Ke,Zd,Le);w&&bo(wa,Ke+1,Zd,Le)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Pe[F]="#"+t(A[0],2)+t(A[1],2)+t(A[2],2);l.Xi[F]=A;l.Yg[F]=ia;l=!0}}a.Oa[b]=r;return l}function co(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
function Yn(a){if(a.U){for(var b=10;15>=b;b++)if(null==a.C.mb[b])return;var c=a.C.mb[10],b=c&31,d=a.C.mb[11]&31,e=a.C.mb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)eo(a);else{c=a.C.mb[15]+((a.C.mb[14]&63)<<8);a.ua!=c&&(eo(a),a.ua=c);d=d-b+1;if(a.lg!=b||a.Ce!=d)a.lg=b,a.Ce=d;a.$a=e+1;co(a)}}}
function eo(a){if(0<=a.ua){if(void 0!==a.fa){var b=a.fa[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.L,d=a.ua/a.L|0;a.U&&a.Oa[a.U]&&(a.gb&&fo(a,c,d,b,a.gb),fo(a,c,d,b));a.fa[a.ua]=b}}a.ua=-1}}
function go(a){var b,c=a.C;a.jf=!1;var d=c.Zd[5];if(null!=d){b=1024;var e=0,f=c.Zd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.cd=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ua==hm&&(e=3,c.cd=f&7)}d&8&&(b=1280);c=c.Ke[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.jf=!0));b|=e}return b}
function ho(a,b){var c=a.C;return c&&null!=b&&b!=c.Bg?(c.Ug(b),a.ga.Ug(c.ob,c.ac,c.mh(),!0),!0):!1}
function An(a,b){var c,d=a.Ga,e=a.C;if(e)if(1==e.Ua)d=7;else if(5<=e.Ua){var d=null,f=e.Dd>>2,g=32768<f?32768:f,h=e.Zd[6];if(null!=h){switch(h&12){case 0:e.ob=655360;e.ac=f;d=255;break;case 4:e.ob=655360;e.ac=f;d=3==a.ya?15:16;break;case 8:e.ob=720896;e.ac=g;d=7;break;case 12:e.ob=753664,e.ac=g,d=3==a.ya?2:3}c=80==(e.Zd[5]&80);!c||e.ob==a.ob&&e.ac==a.ac||(b=!0);var f=kn(e,6),g=e.mb[9],k=e.mb[23],l=e.Ke[1]&8;255!=d&&(h&1?655360==e.ob||c||k&1?e.Zd[5]&64?d=g&31?143>=e.mb[18]?19:20:21:g&128||350>f?d=
l?13:14:480<=f&&(d=3==a.ya?17:18):d=l?7-d:6:d-=l?2:0);c=go(a)}}else e.fd&8&&(e.fd&2?(d=e.fd&16?6:5,e.fd&4||--d):(d=e.fd&1?3:1,e.fd&4&&--d));else a.Ga=null,null==d&&(d=a.va);if(!zn(a,d,b))return!1;ho(a,c);return!0}
function zn(a,b,c){if(null!=b&&(b!=a.Ga||c)){a.Vg=0;a.Ga=b;a.rb=!1;b=a.C||(7==b?a.pa:a.aa);if(b!=a.C||b.ob!=a.ob||b.ac!=a.ac){eo(a);if(a.ob){if(!ec(a.ga,a.ob,a.ac))return!1;a.C&&(a.C.Hc=!1)}a.C=b;b.Hc=!0;a.ob=b.ob;a.ac=b.ac;if(!Yb(a.ga,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.jd;a.W=a.je;a.Db=a.L;a.hd=Jm[7][2];b=0;if(c=Jm[a.Ga])a.L=c[0],a.W=c[1],a.hd=c[2],b=c[3],a.U=c[4],4!=a.ya&&7!=a.ya||a.C!==a.A||3!=a.U||(7==(a.A.mb[9]&31)?a.W=350>kn(a.A,18)?43:50:a.U=a.Ua);a.cg=a.L*a.W|0;a.$f=a.cg/
function zn(a,b,c){if(null!=b&&(b!=a.Ga||c)){a.Vg=0;a.Ga=b;a.rb=!1;b=a.C||(7==b?a.pa:a.aa);if(b!=a.C||b.ob!=a.ob||b.ac!=a.ac){eo(a);if(a.ob){if(!ec(a.ga,a.ob,a.ac))return!1;a.C&&(a.C.Hc=!1)}a.C=b;b.Hc=!0;a.ob=b.ob;a.ac=b.ac;if(!Tb(a.ga,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.jd;a.W=a.je;a.Db=a.L;a.hd=Jm[7][2];b=0;if(c=Jm[a.Ga])a.L=c[0],a.W=c[1],a.hd=c[2],b=c[3],a.U=c[4],4!=a.ya&&7!=a.ya||a.C!==a.A||3!=a.U||(7==(a.A.mb[9]&31)?a.W=350>kn(a.A,18)?43:50:a.U=a.Ua);a.cg=a.L*a.W|0;a.$f=a.cg/
a.hd|0;a.Ub=a.$f;a.sd=0;void 0!==b&&(a.Ub=(a.Ub<<1)+b|0,a.sd=a.Ub+b>>1);if(a.Oa.length){a.Ja=a.ra/a.L|0;a.Ka=a.Da/a.W|0;if(a.U){b=a.Oa[a.U];if(!b)break a;c=a.Oa[a.U<<1];a.Yf&&80==a.L?c&&a.Ja>=3*c.Qc>>2&&(a.U<<=1,b=c):(c&&a.Ja>=c.Qc&&(a.U<<=1,b=c),a.Yf||(a.Ja=b.Qc,a.Ka=b.Rc));a.kc=a.tc=0;b&&(a.kc=a.L*b.Qc,a.tc=a.W*b.Rc)}else a.Ja=a.Ka=1,a.kc=a.L,a.tc=a.W;a.sb=a.ea.createImageData(a.kc,a.tc);a.fb=document.createElement("canvas");a.fb.width=a.kc;a.fb.height=a.tc;a.gb=a.fb.getContext("2d");a.le=a.me=
0;a.Cd=a.ra;a.Fd=a.Da;b=a.ra-a.L*a.Ja;c=a.Da-a.W*a.Ka;0<b&&(a.le=b>>1,a.Cd-=b);0<c&&(a.me=c>>1,a.Fd-=c);if(b||c)a.ea.fillStyle=a.ka.style.backgroundColor,a.ea.fillRect(0,0,a.ra,a.Da)}}io(a,!0);un(a)}return!0}function bo(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function jo(a){a.Pa=-1;a.Fa=!1;var b=a.$f;if(void 0===a.fa||a.fa.length!=b)a.fa=Array(b)}function io(a,b){b||(a.rb=!1);jo(a)}
function fo(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.Af&&(d=h.Af[d]);var k=g>>4&15;h.Af&&(k=h.Af[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Pe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.le,c=c*a.Ka+a.me,a.ea.fillStyle=h.Pe[k],a.ea.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Yg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ea.drawImage(h.Yg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.lg,g=a.Ce,e?(a.$a&&a.$a!==h.Rc&&(f=f*h.Rc/a.$a|0,g=g*h.Rc/a.$a|0),e.fillStyle=h.Pe[d],
@ -707,7 +707,7 @@ function fr(a,b,c,d){var e,f=c?a.aa:a.sb;c=d?0:f.type;var g=f.Ra,h=f.Z,f=f.Ea;if
k)return e;0>f?null!=h?(g=lq(a,b,void 0),f=null):(f=lq(a,b,void 0),null==f&&(g=null)):(h=lq(a,b.substring(0,f),void 0),g=lq(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=rq(a,g,h,f,c),d||er(a,e,!0)||(a.O("invalid offset: "+Zq(e)),e=null));return e}function gr(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.kl=a.Mg(b.Rk=c[2]))}m.Ok=function(a,b){var c=fr(this,b);return a.replace("["+b+"]",c?t(this.tb(c),c.Rb?8:4):"undefined")};
function ar(a,b,c){c=c||1;null!=b.Ea&&(b.Ea+=c);null!=b.Z&&(b.Ra+=c,er(a,b)||(b.Ra=0,b.Ea=null))}function Pq(a,b,c){return null!=b?t(b,4)+":"+t(a,a&-65536||c?8:4):t(a)}function Zq(a){var b;switch(a.type){case 1:case 3:b="&";break;case 2:b="#";break;case 4:b="%";break;case 5:b="%%";break;default:b=a.Z?"":"%"}return 4<=a.type||null==a.Z?b+t(a.Ea):b+Pq(a.Ra,a.Z,a.oc)}
function Qq(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Qa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
function Lq(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.bc(fr(a,c));if(-1===e){a.O("invalid address: "+c);return}f=e>>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Kc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=ac[c],6==c&&(d=d.Bd,h+=" -> "+ac[d.type]),d&&a.O(t(d.id,8)+" %"+t(f<<a.F.La,8)+" %%"+t(d.Ea,8)+" "+v(d.Oe)+" "+v(d.size)+" "+
function Lq(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.bc(fr(a,c));if(-1===e){a.O("invalid address: "+c);return}f=e>>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Kc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=Wb[c],6==c&&(d=d.Bd,h+=" -> "+Wb[d.type]),d&&a.O(t(d.id,8)+" %"+t(f<<a.F.La,8)+" %%"+t(d.Ea,8)+" "+v(d.Oe)+" "+v(d.size)+" "+
h),c!=Bc&&5!=c&&(c=-1),h=0),e+=a.F.Sb,f++}function hr(a,b,c){a=t(a)+" "+t(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-");a+=b&4?"U":"S";a+=b&2?"W":"R";return a+=b&1?"P":"N"}
var Nq={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},Rq={PREV_TSS:0,CPL0_SP:2,CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,
TASK_LDT:42},Sq={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,TASK_IOPM:100};
@ -727,7 +727,7 @@ m.save=function(){var a=new mf(this);O(a,0,cr(this.aa));O(a,1,cr(this.ua));O(a,2
m.stop=function(a,b){if(this.la.Ib){this.la.Ib=!1;this.ea=b-this.vd;if(!this.U){var c="stopped";if(this.ea){var d=a-this.tc,e=0<d?Math.round(1E3*this.ea/d):0,c=c+" (";Xf(this)&&(c+=this.pa+" opcodes, ",this.Ca-=this.pa,this.pa=0);c+=this.ea+" cycles, "+d+" ms, "+e+" hz)"}else B(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.O(c)}this.pd(!0);this.wd();nr(this,this.F.Ha)}};function Xf(a){return 1<a.B.length||!!a.Oa||B(a,16)}
function $f(a,b,c){var d=a.F;if(0<c&&(a.Oa&&!--a.Oa||or(a,b,1,a.B)))return!0;0<=c&&a.W.length&&(a.pa++,b=Mf(d,b),null!=b&&(a.W[b][1]++,br(a,a.ia[a.Fa],M(d),d.wa.Z),++a.Fa==a.ia.length&&(a.Fa=0)));return!1}function Hc(a,b,c){return or(a,b,c||1,a.ra)?(a.Wb(!0),!0):!1}function Jc(a,b,c){return or(a,b,c||1,a.fa)?(a.Wb(!0),!0):!1}function pc(a,b,c){a.O("break on input from port "+v(b)+": "+t(c));a.Wb(!0)}function xc(a,b,c){a.O("break on output to port "+v(b)+": "+t(c));a.Wb(!0)}
function sq(a){var b,c;a.B=["bp"];if(void 0!==a.ra)for(b=1;b<a.ra.length;b++)c=a.ra[b],ue(a.F,a.bc(c),!1,5==c.type);a.ra=["br"];if(void 0!==a.fa)for(b=1;b<a.fa.length;b++)c=a.fa[b],ue(a.F,a.bc(c),!0,5==c.type);a.fa=["bw"];a.fb=0}
m.Rd=function(a,b,c){var d=!0;c||Yq(this,a,b,!1,!0);if(a!=this.B){var e=this.bc(b);if(-1===e)this.O("invalid address: "+Zq(b)),d=!1;else{var f=this.F,g=5==b.type;(g?f.kd:f.sa)[e>>>f.La].Rd(e&f.Fa,a==this.fa);g&&$b(f)}}d&&(a.push(b),c?(null!=b.Ea&&(b.Z=null),b.Vd=!0):(pr(this,a,a.length-1,"set"),tq(this)));return d};
m.Rd=function(a,b,c){var d=!0;c||Yq(this,a,b,!1,!0);if(a!=this.B){var e=this.bc(b);if(-1===e)this.O("invalid address: "+Zq(b)),d=!1;else{var f=this.F,g=5==b.type;(g?f.kd:f.sa)[e>>>f.La].Rd(e&f.Fa,a==this.fa);g&&Vb(f)}}d&&(a.push(b),c?(null!=b.Ea&&(b.Z=null),b.Vd=!0):(pr(this,a,a.length-1,"set"),tq(this)));return d};
function Yq(a,b,c,d,e){for(var f=!1,g=qr(a,a.bc(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==qr(a,a.bc(k))||-1===g&&c.Z==k.Z&&c.Ra==k.Ra)if(!d||k.Vd){f=!0;k.Vd||e||pr(a,b,h,"cleared");b.splice(h,1);b!=a.B&&ue(a.F,g,b==a.fa,5==k.type);k.Vd||tq(a);break}}return f}function rr(a,b){for(var c=1;c<b.length;c++)pr(a,b,c);return b.length-1}function pr(a,b,c,d){c=b[c];a.O(b[0]+" "+Zq(c)+(d?" "+d:c.Rk?' "'+c.Rk+'"':""))}
function nr(a,b){if(void 0!==b)or(a,b,1,a.B,!0),a.U=0;else for(var c=1;c<a.B.length;c++){var d=a.B[c];if(d.Vd){if(!Yq(a,a.B,d,!0))break;c=0}}}function qr(a,b){if(-1!==b){var c=a.Ba&-65536;(b&c)==c&&(b&=1048575)}return b}
function or(a,b,c,d,e){var f=!1;if(!a.fb++){b=qr(a,b);B(a,-2147483632)&&204==Mf(a.F,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Vd){null!=h.Z&&(h.Ea=null);for(var k=qr(a,a.bc(h)),l=0;l<c;l++)if(b+l==k){var n,f=!0;h.Vd&&(Yq(a,d,h,!0),e=!0);if(n=h.kl){for(var f=!1,r=0;r<n.length;r++)if(!sr(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var q=r+1;q<n.length&&n[q].indexOf("else");q++)r++;if(q==n.length){f=!0;break}}a.F.la.Ib||(f=!0)}if(f){e||pr(a,d,g,"hit");break}}}}}a.fb--;return f}
@ -765,23 +765,23 @@ fr(a,g[1],!0);if(r)if(a.ua=r,void 0===g[2])a.O("begin assemble at "+Zq(r)),a.va=
a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+rr(a,a.B),L=L+rr(a,a.ra);(L+=rr(a,a.fa))||a.O("no breakpoints")}else if("n"==H)a.Oa=nq(a,w),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===w)a.O("missing breakpoint address");else{var W={};if("*"!=w&&(W=fr(a,w,!0,!0),!W))break a;w=null==W.Ra?w:v(W.Ra);"c"==H?null==W.Ra?(sq(a),a.O("all breakpoints cleared")):Yq(a,
a.B,W)||Yq(a,a.ra,W)||Yq(a,a.fa,W)||a.O("breakpoint missing: "+Zq(W)):"i"==H?a.O("breakpoint "+(mc(a.ga,W.Ra)?"enabled":"cleared")+": port "+w+" (input)"):"o"==H?a.O("breakpoint "+(qc(a.ga,W.Ra)?"enabled":"cleared")+": port "+w+" (output)"):null!=W.Ra&&(gr(a,W,E),"p"==H?a.Rd(a.B,W):"r"==H?a.Rd(a.ra,W):"w"==H?a.Rd(a.fa,W):a.O("unknown breakpoint command: "+H))}}}break;case "c":Dr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in Db)a.$a[bb]&&(Ba&&(Ba+=
","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Xb=Lr(a.X,!0);"console"==Ha?console.log(Xb):(Dr(a),
a.O(Xb))}else if("symbols"==ja)for(var wa=0;wa<a.N.length;wa++){var Wd=a.N[wa],Sc;for(Sc in Wd.Qd)if("."!=Sc.charAt(0)){var Xd=Wd.Qd[Sc],Je=Xd.o;if(void 0!==Je){var Yd=Xd.s;void 0===Yd&&(Yd=Wd.Z);var Ke=Wd.Qd[Sc].l;Ke&&(Sc=Ke);a.O(Pq(Je,Yd)+" "+Sc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ki=P[0];if(ki){var Ue=a.bc(fr(a,ki));if(-1===Ue)a.O("invalid address: "+ki);else{var be,Da=null;if(80386<=a.F.ja){var ce=
a.ga,Da={};Da.Ik=(Ue&-4194304)>>>20;Da.Zi=a.F.Od+Da.Ik;Da.yb=ce.sa[(Da.Zi&ce.Gb)>>>ce.La];Da.zj=Da.yb.Md(Da.Ik);Da.Jk=(Ue&4190208)>>>10;Da.$i=(Da.zj&-4096)+Da.Jk;Da.zb=ce.sa[(Da.$i&ce.Gb)>>>ce.La];Da.Aj=Da.zb.Md(Da.Jk);Da.ml=(Da.Aj&-4096)+(Ue&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+t(Ue),qd=qd+(" %%"+hr(be.Zi,be.zj)),qd=qd+(" %%"+hr(be.$i,be.Aj,!0)),
qd=qd+(" %%"+t(be.ml));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Hr(a,P);break a}for(bb in Db)if(P[1]==bb){var Bn=a.$a[bb];Bn?(P.shift(),P.shift(),Bn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Cn=ja,Dn=Ha,En="",Fn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Eb=+Cn||a.Jb,de=+Dn||10;isNaN(Eb)?Eb=de:En="more ";Eb>tc.length&&(a.O("note: only "+tc.length+" available"),Eb=tc.length);
tb-=Eb;0>tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var li=[];"call"==Dn&&(de=1E5,li=["CALL"]);for(void 0!==Cn&&a.O(Eb+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var Ve=rq(a,rd.Ra,rd.Z,rd.Ea,rd.type,rd.Rb,rd.oc),es=Eb--,Gn=tr(a,Ve,"history",es);(!li.length||0<=Gn.indexOf(li[0]))&&a.O(Gn);Ve.Ue&&(tb+=Ve.Ue,de-=Ve.Ue,Eb-=Ve.Ue);tb>=tc.length&&(tb=0);a.Jb=Eb;Fn++;de--}}Fn||(a.O("no "+En+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift();
var mi=P[0];if(mi){var We=nq(a,mi);if(void 0===We||0>We||255<We)a.O("invalid vector: "+mi);else{var Hn="&",In=!!(a.F.Za&1),Jn=!1,qg=a.F.Mc+(We<<(In?3:2)),ni=a.F.na(qg+0),fs=a.F.na(qg+2);In&&(Hn="#",a.F.na(qg+4)&2048&&(Jn=!0,ni|=a.F.na(qg+6)<<16));a.O("dumpIDT("+v(We)+"): "+Hn+t(fs,4)+":"+t(ni,Jn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=fr(a,ja);if(ee&&(null!=ee.Z||null!=ee.Ea)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=nq(a,Ha)>>>
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,gs=tg+15>>4||1;gs--&&0<tg;){var ug=0,oi=0,Xe,Ye="",pi="",ja=Zq(ee);for(Xe=16;0<Xe&&0<tg;Xe--){var vg=a.Qa(ee,1),ug=ug|vg<<(oi++<<3);oi==sg&&(Ye+=t(ug,2*sg),Ye+=1==sg?9==Xe?"-":" ":" ",ug=oi=0);pi+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ye+(0==Xe?" "+pi:"")}sd&&a.O(sd);a.sb=ee}}}}}break;case "e":if("else"==g[0])break;var wg=1,Kn=255,Ln=a.Qa,Mn=a.qc;"ew"==g[0]&&(wg=2,Kn=65535,Ln=a.na,
Mn=a.jb);var Nn=wg<<1,On=g[1];if(null==On)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=fr(a,On);if(xg)for(var yg=2;yg<g.length;yg++){var Ze=lq(a,g[yg]);if(void 0===Ze){a.O("unrecognized value: "+g[yg]);break}Ze&~Kn&&a.O("warning: "+t(Ze)+" exceeds "+wg+"-byte value");var hs=Ln.call(a,xg);a.O("changing "+Zq(xg)+" from "+t(hs,Nn,!0)+" to "+t(Ze,Nn,!0));Mn.call(a,xg,Ze,wg)}}break;case "f":Er(a,g[1]);break;case "g":a:{var Pn=
g[1],is=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Pn){var qi=fr(a,Pn,!0);if(!qi)break a;gr(a,qi,is);a.Rd(a.B,qi,!0)}a.Le(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ri;if(a.la.Ib)ri="halting",a.Wb();else{if(vb(a,!0))break a;ri="already halted"}c||a.O(ri)}break;case "i":if("if"==g[0]){var si;var $e=b.substr(2),$e=pa($e);lq(a,$e)?(c||a.O("true: "+$e),si=!0):(c||a.O("false: "+$e),si=!1);si||(d=!1);break}if("int"==g[0]){var zg;a:switch(nq(a,g[1])){case 19:ok(a,19,a.F.Ha,
!0);a.Ca=a.pa;zg=!0;break a;case 33:ok(a,33,a.F.Ha,!0);a.Ca=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=nq(a,ti);if(void 0!==ui){var js=oc(a.ga,ui,1);a.O(v(ui)+": "+u(js))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ks=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var vi=0,Qn=a.F.wa.Z,af=rq(a),
Vc=rq(a,J(a.F),a.F.ta.Z);for(a.O("stack trace for "+Zq(Vc));10>vi;){for(var uc=null,ls=256;Vc.Ra>>>0<a.F.Rg>>>0;){af.Ra=a.tb(Vc,!0);if(null==Vc.Ea||!ls--)break;af.Z=Qn;if(uc=Jr(a,af))break;af.Z=a.tb(Vc);if(uc=Jr(a,af,!0)){Qn=a.tb(Vc,!0);0<uc.indexOf("INT")&&a.tb(Vc,!0);break}}if(!uc||null==uc)break;var Rn=null;if("ks"==ks){var Sn=uc.match(/[0-9A-F]+$/);Sn&&(Rn=Gr(a,Sn[0]))}uc=oa(uc,50)+" ;"+(Rn||"stack="+Zq(Vc));a.O(uc);vi++}vi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Gr(a,
a.O(Xb))}else if("symbols"==ja)for(var wa=0;wa<a.N.length;wa++){var Xd=a.N[wa],Sc;for(Sc in Xd.Qd)if("."!=Sc.charAt(0)){var Yd=Xd.Qd[Sc],Ke=Yd.o;if(void 0!==Ke){var Zd=Yd.s;void 0===Zd&&(Zd=Xd.Z);var Le=Xd.Qd[Sc].l;Le&&(Sc=Le);a.O(Pq(Ke,Zd)+" "+Sc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ki=P[0];if(ki){var Ve=a.bc(fr(a,ki));if(-1===Ve)a.O("invalid address: "+ki);else{var ce,Da=null;if(80386<=a.F.ja){var de=
a.ga,Da={};Da.Ik=(Ve&-4194304)>>>20;Da.Zi=a.F.Od+Da.Ik;Da.yb=de.sa[(Da.Zi&de.Gb)>>>de.La];Da.zj=Da.yb.Md(Da.Ik);Da.Jk=(Ve&4190208)>>>10;Da.$i=(Da.zj&-4096)+Da.Jk;Da.zb=de.sa[(Da.$i&de.Gb)>>>de.La];Da.Aj=Da.zb.Md(Da.Jk);Da.ml=(Da.Aj&-4096)+(Ve&4095)}if(ce=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+t(Ve),qd=qd+(" %%"+hr(ce.Zi,ce.zj)),qd=qd+(" %%"+hr(ce.$i,ce.Aj,!0)),
qd=qd+(" %%"+t(ce.ml));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Hr(a,P);break a}for(bb in Db)if(P[1]==bb){var Bn=a.$a[bb];Bn?(P.shift(),P.shift(),Bn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Cn=ja,Dn=Ha,En="",Fn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Eb=+Cn||a.Jb,ee=+Dn||10;isNaN(Eb)?Eb=ee:En="more ";Eb>tc.length&&(a.O("note: only "+tc.length+" available"),Eb=tc.length);
tb-=Eb;0>tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var li=[];"call"==Dn&&(ee=1E5,li=["CALL"]);for(void 0!==Cn&&a.O(Eb+" instructions earlier:");0<ee&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var We=rq(a,rd.Ra,rd.Z,rd.Ea,rd.type,rd.Rb,rd.oc),es=Eb--,Gn=tr(a,We,"history",es);(!li.length||0<=Gn.indexOf(li[0]))&&a.O(Gn);We.Ue&&(tb+=We.Ue,ee-=We.Ue,Eb-=We.Ue);tb>=tc.length&&(tb=0);a.Jb=Eb;Fn++;ee--}}Fn||(a.O("no "+En+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift();
var mi=P[0];if(mi){var Xe=nq(a,mi);if(void 0===Xe||0>Xe||255<Xe)a.O("invalid vector: "+mi);else{var Hn="&",In=!!(a.F.Za&1),Jn=!1,qg=a.F.Mc+(Xe<<(In?3:2)),ni=a.F.na(qg+0),fs=a.F.na(qg+2);In&&(Hn="#",a.F.na(qg+4)&2048&&(Jn=!0,ni|=a.F.na(qg+6)<<16));a.O("dumpIDT("+v(Xe)+"): "+Hn+t(fs,4)+":"+t(ni,Jn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var fe=fr(a,ja);if(fe&&(null!=fe.Z||null!=fe.Ea)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=nq(a,Ha)>>>
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,gs=tg+15>>4||1;gs--&&0<tg;){var ug=0,oi=0,Ye,Ze="",pi="",ja=Zq(fe);for(Ye=16;0<Ye&&0<tg;Ye--){var vg=a.Qa(fe,1),ug=ug|vg<<(oi++<<3);oi==sg&&(Ze+=t(ug,2*sg),Ze+=1==sg?9==Ye?"-":" ":" ",ug=oi=0);pi+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ze+(0==Ye?" "+pi:"")}sd&&a.O(sd);a.sb=fe}}}}}break;case "e":if("else"==g[0])break;var wg=1,Kn=255,Ln=a.Qa,Mn=a.qc;"ew"==g[0]&&(wg=2,Kn=65535,Ln=a.na,
Mn=a.jb);var Nn=wg<<1,On=g[1];if(null==On)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=fr(a,On);if(xg)for(var yg=2;yg<g.length;yg++){var $e=lq(a,g[yg]);if(void 0===$e){a.O("unrecognized value: "+g[yg]);break}$e&~Kn&&a.O("warning: "+t($e)+" exceeds "+wg+"-byte value");var hs=Ln.call(a,xg);a.O("changing "+Zq(xg)+" from "+t(hs,Nn,!0)+" to "+t($e,Nn,!0));Mn.call(a,xg,$e,wg)}}break;case "f":Er(a,g[1]);break;case "g":a:{var Pn=
g[1],is=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Pn){var qi=fr(a,Pn,!0);if(!qi)break a;gr(a,qi,is);a.Rd(a.B,qi,!0)}a.Le(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ri;if(a.la.Ib)ri="halting",a.Wb();else{if(vb(a,!0))break a;ri="already halted"}c||a.O(ri)}break;case "i":if("if"==g[0]){var si;var af=b.substr(2),af=pa(af);lq(a,af)?(c||a.O("true: "+af),si=!0):(c||a.O("false: "+af),si=!1);si||(d=!1);break}if("int"==g[0]){var zg;a:switch(nq(a,g[1])){case 19:ok(a,19,a.F.Ha,
!0);a.Ca=a.pa;zg=!0;break a;case 33:ok(a,33,a.F.Ha,!0);a.Ca=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=nq(a,ti);if(void 0!==ui){var js=oc(a.ga,ui,1);a.O(v(ui)+": "+u(js))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ks=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var vi=0,Qn=a.F.wa.Z,bf=rq(a),
Vc=rq(a,J(a.F),a.F.ta.Z);for(a.O("stack trace for "+Zq(Vc));10>vi;){for(var uc=null,ls=256;Vc.Ra>>>0<a.F.Rg>>>0;){bf.Ra=a.tb(Vc,!0);if(null==Vc.Ea||!ls--)break;bf.Z=Qn;if(uc=Jr(a,bf))break;bf.Z=a.tb(Vc);if(uc=Jr(a,bf,!0)){Qn=a.tb(Vc,!0);0<uc.indexOf("INT")&&a.tb(Vc,!0);break}}if(!uc||null==uc)break;var Rn=null;if("ks"==ks){var Sn=uc.match(/[0-9A-F]+$/);Sn&&(Rn=Gr(a,Sn[0]))}uc=oa(uc,50)+" ;"+(Rn||"stack="+Zq(Vc));a.O(uc);vi++}vi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Gr(a,
g[1],!0);break}Hr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],Ag=g[2];if(a.V){var Tn=1;"-"==Ag.charAt(0)&&(Tn=-1,Ag=Ag.substr(1));var td=nq(a,Ag,wi);if(void 0!==td)switch(td=td*Tn|0,wi){case "x":a.V.Jf(td,0);break;case "y":a.V.Jf(0,td);break;case "click":a.V.he(td,!0);a.V.he(td,!1);break;default:a.O("unknown action: "+wi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==
Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&(Oa="keyboard");for(vc in Db)if(Oa==vc){ud=Db[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var ms=0,Wc="";for(vc in Db)if(!Oa||Oa==vc){var ns=!!(a.wc&Db[vc]);if(null===wc||wc==ns)Wc&&(Wc+=","),++ms%10||(Wc+="\n\t"),"key"==vc&&(vc="keys"),Wc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Wc||"none"));tq(a)}break;case "o":var xi=g[1],os=g[2];if(xi&&"?"!=xi){var yi=nq(a,xi,"port #"),zi=nq(a,os);void 0!==yi&&void 0!==zi&&(sc(a.ga,yi,1,zi),a.O(v(yi)+": "+u(zi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Ir(a,b.substr(5));break}var Un="pr"==g[0]?1:0,fe=1+Un;if(a.U)a.O("step in progress");else{var Bg,
Vn=!1,lb=rq(a,M(a.F),a.F.wa.Z);do switch(Bg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:ar(a,lb,1);Bg=!0;break;case 204:case 206:a.U=fe;ar(a,lb,1);break;case 205:case 224:case 225:case 226:a.U=fe;ar(a,lb,lb.Rb?4:2);break;case 232:a.U=fe;ar(a,lb,lb.Rb?5:3);break;case 154:a.U=fe;ar(a,lb,lb.Rb?7:5);break;case 255:var Wn=a.tb(lb)&14591;if(4351==Wn||6399==Wn)a.U=fe,tr(a,lb);break;case 243:case 242:ar(a,lb,1);Vn=Bg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Vn&&
(a.U=fe,ar(a,lb,1))}while(Bg);a.U?(a.Rd(a.B,lb,!0),a.Le()||(a.X&&a.X.wd(),a.U=0)):Kr(a,Un?"tr":"t")}break;case "r":if("reset"==b){a.X&&a.X.reset();break}lr(a,g);break;case "t":Kr(a,g[0],g[1]);break;case "u":mr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Fr(a,b.substr(3))||(d=!1);break}a.O("PCx86 version 1.30.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(zb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(Ca());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var bf;void 0!==g[3]&&(bf=+g[3]);switch(g[2]){case "int":a.F.Y.kf=
bf;break;case "start":a.F.Y.Lf=bf;break;case "stop":a.F.Y.mf=bf;break;default:a.O("unknown cs option");break a}void 0!==bf&&Xc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ad(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Wd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Ir(a,b.substr(1));break}var cf="commands:",Ai;for(Ai in yq)cf+="\n"+oa(Ai,7)+yq[Ai];Xf(a)||(cf+="\nnote: frequency/history disabled if no exec breakpoints");a.O(cf);break;default:a.O("unknown command: "+b),d=!1}}}catch(Xn){a.O("debugger error: "+(Xn.stack||Xn.message)),d=!1}return d}function vq(a,b,c){b=a.Mg(b,c);for(var d in b)if(!sr(a,b[+d]))return!1;return!0}
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Wc||"none"));tq(a)}break;case "o":var xi=g[1],os=g[2];if(xi&&"?"!=xi){var yi=nq(a,xi,"port #"),zi=nq(a,os);void 0!==yi&&void 0!==zi&&(sc(a.ga,yi,1,zi),a.O(v(yi)+": "+u(zi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Ir(a,b.substr(5));break}var Un="pr"==g[0]?1:0,ge=1+Un;if(a.U)a.O("step in progress");else{var Bg,
Vn=!1,lb=rq(a,M(a.F),a.F.wa.Z);do switch(Bg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:ar(a,lb,1);Bg=!0;break;case 204:case 206:a.U=ge;ar(a,lb,1);break;case 205:case 224:case 225:case 226:a.U=ge;ar(a,lb,lb.Rb?4:2);break;case 232:a.U=ge;ar(a,lb,lb.Rb?5:3);break;case 154:a.U=ge;ar(a,lb,lb.Rb?7:5);break;case 255:var Wn=a.tb(lb)&14591;if(4351==Wn||6399==Wn)a.U=ge,tr(a,lb);break;case 243:case 242:ar(a,lb,1);Vn=Bg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Vn&&
(a.U=ge,ar(a,lb,1))}while(Bg);a.U?(a.Rd(a.B,lb,!0),a.Le()||(a.X&&a.X.wd(),a.U=0)):Kr(a,Un?"tr":"t")}break;case "r":if("reset"==b){a.X&&a.X.reset();break}lr(a,g);break;case "t":Kr(a,g[0],g[1]);break;case "u":mr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Fr(a,b.substr(3))||(d=!1);break}a.O("PCx86 version 1.30.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(zb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(Ca());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var cf;void 0!==g[3]&&(cf=+g[3]);switch(g[2]){case "int":a.F.Y.kf=
cf;break;case "start":a.F.Y.Lf=cf;break;case "stop":a.F.Y.mf=cf;break;default:a.O("unknown cs option");break a}void 0!==cf&&Xc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ad(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Wd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Ir(a,b.substr(1));break}var df="commands:",Ai;for(Ai in yq)df+="\n"+oa(Ai,7)+yq[Ai];Xf(a)||(df+="\nnote: frequency/history disabled if no exec breakpoints");a.O(df);break;default:a.O("unknown command: "+b),d=!1}}}catch(Xn){a.O("debugger error: "+(Xn.stack||Xn.message)),d=!1}return d}function vq(a,b,c){b=a.Mg(b,c);for(var d in b)if(!sr(a,b[+d]))return!1;return!0}
Ua(function(){for(var a=rb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new qq(d);qb(d,c)}});
function Mr(a,b,c){Za.call(this,"Computer",a,Mr,67108864);this.la.hc=!1;Nr(this,b);this.fa=Tc(this,"autoPower",a);this.N=0;this.ra=a.busWidth||a.buswidth;this.A=Or;this.aa=null;this.V=this.pa=!1;this.ua=Tc(this,"url")||"";this.ya=(Math.random()+.1).toString(36).substr(2,12);this.B=Pr(this);if(this.F=nb("CPU",this.id)){this.ha=nb("Debugger",this.id);this.L=[];for(b=null;b=Jb(this,"Video",b);)this.L.push(b);this.ga=new Qb({id:this.ce+".bus",busWidth:this.ra},this.F,this.ha);var d,e=kb(this.id);if((this.C=
nb("Panel",this.id))&&this.C.Ff)for(b=0;b<e.length;b++)d=e[b],d.Na=this.C.Na,d.O=this.C.O,d.Ff=this.C.Ff;this.O("PCx86 v1.30.0\nCopyright \u00a9 2012-2016 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.Ic&&d.Ic(this,this.ga,this.F,this.ha);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.W=d:this.A=parseInt(d,10));var f;if(a=Tc(this,"state")||(f=!0,a.state))b=this.ia=a,f||(this.V=!0,this.A=Or),this.A&&(this.ea=new mf(this,
@ -804,7 +804,7 @@ function Zr(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=as(a,"1.30.0");d.d
function Jb(a,b,c){a=kb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.wd=function(a){if(this.L.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.L[0];d.X&&d.X.focus();a&&window&&window.scrollTo(b,c)}};m.pd=function(a){this.F&&this.F.pd(a);this.C&&this.C.pd(a)};
function gd(a,b){for(var c=0;c<a.L.length;c++)un(a.L[c],b);if(a.C&&(c=a.C,c.Ja)){Nb(c,18,c.aa,c.Ga);if(c.gb){var d=c.ga,e=c.A,f,g;null==f&&(f=0);null==g&&(g=d.W-f|0);null==e&&(e={hh:0,Td:0,Xg:[]});var h=f>>>d.La;f=f+g-1>>>d.La;e.hh=0;for(e.Td=0;h<=f;)g=d.sa[h],e.hh+=g.size,g.size&&(e.Xg.push(va(Mb,h,0,0,g.type)),e.Td++),h++;c.A=e;c.ya=c.A.Td*c.ga.Sb/691200;d=0;c.A.ej=0;c.A.Bf||(c.A.Bf=[]);var e=-1,h=0,k=-1;for(f=0;f<c.A.Td;f++){var l=c.A.Xg[f];g=xa(Mb.type,l);l=xa(Mb.Gk,l);if(g!=e||l!=k+1)(k=f-h)&&
(d+=Pb(c,h,k,e)),e=g,h=f;k=l}d+=Pb(c,h,f-h,e);e=c.A.tl!=d;c.A.tl=d;if(e){e=new Hb(0,0,c.aa.width,c.aa.height);c.A.Qe=[];h=c.A.Td;for(d=0;d<c.A.ej;d++)f=c.A.Bf[d].Td,c.A.Qe.push(Ib(e,f,h,!d)),h-=f;for(d=0;d<c.A.Qe.length;d++)e=c.A.Bf[d],h=f=c.A.Qe[d],g=c.Ga,(k=Cc[e.type])||(k=new Gb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.ad,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.ad,h.A),h=c,g=f,h.fa=h.ua,h.W=h.va,f=g.x+(g.ad>>1),k=g.y+(g.A>>1),l=g.A,g.ad<g.A&&(l=g.ad,h.ra=!0,
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.W&&(h.W=l,h.fa=h.W+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=ac[e.type]+" ("+(e.Td*c.ga.Sb/1024|0)+"Kb)",h.N.font=h.fa,h.C-=h.N.measureText(e).width>>1,h.U+=(h.W>>1)-2,Ob(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Ob(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.W&&(h.W=l,h.fa=h.W+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=Wb[e.type]+" ("+(e.Td*c.ga.Sb/1024|0)+"Kb)",h.N.font=h.fa,h.C-=h.N.measureText(e).width>>1,h.U+=(h.W>>1)-2,Ob(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Ob(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
Ua(function(){for(var a=rb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=rb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Mr(g,d,!0);qb(g,f);g.fa&&Rr(g,g.bg)}});Pa.show.push(function(){for(var a=rb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.va&&!c.la.hc&&c.bg(-1)}});
Pa.exit.push(function(){for(var a=rb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.la.hc&&Lr(c,!(!c.A||c.W),!0)}});function mf(a,b,c){this.id=a.id;this.key=as(a,b,c);this.ha=a.ha;Wr(this,a.Nk)}function as(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}
mf.prototype={constructor:mf,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Ga()&&(a=Ia(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Wr(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)==

View file

@ -33,18 +33,18 @@ function qb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,f=null.ge
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;
a.Fa=a.oc=this.Fa;eb(this)}Ua(vb);var rb,xb={Bj:20,count:8,hn:1,type:3},yb=0,Ab;for(Ab in xb){var Bb=xb[Ab];xb[Ab]={rg:(1<<Bb)-1<<yb,shift:yb};yb+=Bb}rb=xb;l=vb.prototype;l.reset=function(){Cb(this,!0)};l.Ub=function(a,b){b||this.reset();return!0};
function Db(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.da;0<g&&h<a.R.length;){var k=a.R[h],m=h*a.xb,p=a.xb-(f-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.he)return k.Ge+=k.he-f,k.he=f,!0;if(f>=k.he+k.Ge){p=k.size-(f-m);p>g&&(p=g);k.Ge=f-k.he+p;f=m+a.xb;g-=p;h++;continue}}return Eb(a,1,f,g)}f=new u(f,p,a.xb,d,e);wb(f,a.Ia,k);a.R[h++]=f;f=m+a.xb;g-=p}return 0>=g?(e=a.A,e.Pa&-2147483648&&Fb(e),a.A.ea.Nb||a.status(Math.floor(c/1024)+"Kb "+Gb[d]+" at "+fa(b)),!0):Eb(a,2,b,c)}
function Cb(a,b){if(32==a.D)b?a.G&&(Hb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Ib(a,1048576,1048576),Hb(a,1048576,1048576,Ib(a,0,1048576)));else if(20<a.D){var c=a.Fa&-1048577|(b?1048576:0);if(c!=a.Fa&&(a.Fa=c,a.A)){var d=a.A;d.Fa=d.oc=c}}}l.Zf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.da;0<b;){var f=this.R[e];if(!f.controller)return Eb(this,3,a,b,d);Jb(f,c,!0);b-=this.xb;e++}return!0}return Eb(this,4,a,b)};
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];b=new u(b);wb(b,a.Ia,e);a.R[d++]=b;b=d*a.xb;c-=a.xb}a=a.A;a.Pa&-2147483648&&Fb(a);return!0}return Eb(a,5,b,c)}function Ib(a,b,c){var d=[];for(b>>>=a.da;0<c&&b<a.R.length;)d.push(a.R[b++]),c-=a.xb;return d}
a.Fa=a.oc=this.Fa;eb(this)}Ua(vb);vb.prototype.reset=function(){xb(this,!0)};vb.prototype.Ub=function(a,b){b||this.reset();return!0};
function yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.da;0<g&&h<a.R.length;){var k=a.R[h],m=h*a.xb,p=a.xb-(f-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.he)return k.Ge+=k.he-f,k.he=f,!0;if(f>=k.he+k.Ge){p=k.size-(f-m);p>g&&(p=g);k.Ge=f-k.he+p;f=m+a.xb;g-=p;h++;continue}}return Ab(a,1,f,g)}f=new u(f,p,a.xb,d,e);wb(f,a.Ia,k);a.R[h++]=f;f=m+a.xb;g-=p}return 0>=g?(e=a.A,e.Pa&-2147483648&&Bb(e),a.A.ea.Nb||a.status(Math.floor(c/1024)+"Kb "+Cb[d]+" at "+fa(b)),!0):Ab(a,2,b,c)}
var rb,Db={Bj:20,count:8,hn:1,type:3},Eb=0,Fb;for(Fb in Db){var Gb=Db[Fb];Db[Fb]={rg:(1<<Gb)-1<<Eb,shift:Eb};Eb+=Gb}rb=Db;function xb(a,b){if(32==a.D)b?a.G&&(Hb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Ib(a,1048576,1048576),Hb(a,1048576,1048576,Ib(a,0,1048576)));else if(20<a.D){var c=a.Fa&-1048577|(b?1048576:0);if(c!=a.Fa&&(a.Fa=c,a.A)){var d=a.A;d.Fa=d.oc=c}}}l=vb.prototype;
l.Zf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.da;0<b;){var f=this.R[e];if(!f.controller)return Ab(this,3,a,b,d);Jb(f,c,!0);b-=this.xb;e++}return!0}return Ab(this,4,a,b)};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];b=new u(b);wb(b,a.Ia,e);a.R[d++]=b;b=d*a.xb;c-=a.xb}a=a.A;a.Pa&-2147483648&&Bb(a);return!0}return Ab(a,5,b,c)}function Ib(a,b,c){var d=[];for(b>>>=a.da;0<c&&b<a.R.length;)d.push(a.R[b++]),c-=a.xb;return 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 "+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 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 Ab(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}
0;Jb(this,Pb)}else Jb(this)}var Zb=0,Lb=2,ac=["black","blue","green","cyan"],Cb="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}
u.prototype={constructor:u,parent:null,xl:function(a){this.he=a},save:function(){var a,b;if(this.controller)a=null;else if(hb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.S.getInt32(b<<2,!0);else a=this.V;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(hb)for(b=0;b<a.length;b++)this.S.setInt32(b<<2,a[b],!0);else this.V=a;return this.Ha=!0}return!1},da:function(){return 255},ia:function(){},ha:function(a,b){return this.Wb(a++,b++)|this.Wb(a,
b)<<8},Y:function(a,b){return this.Wb(a++,b++)|this.Wb(a++,b++)<<8|this.Wb(a++,b++)<<16|this.Wb(a,b)<<24},ba:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a,b>>8,c)},la:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a++,b>>8&255,c++);this.Yb(a++,b>>16&255,c++);this.Yb(a,b>>>24,c)},va:function(a){return this.V[a>>2]>>>((a&3)<<3)&255},fb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b]>>a;return 24>a?c&65535:c&255|(this.V[b+1]&255)<<8},Ga:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b];a&&(c=c>>>
a|this.V[b+1]<<32-a);return c},Bb:function(a,b){var c=a>>2,d=(a&3)<<3;this.V[c]=this.V[c]&~(255<<d)|b<<d;this.Ha=!0},xc:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.V[c]=this.V[c]&~(65535<<d)|b<<d:(this.V[c]=this.V[c]&16777215|b<<24,c++,this.V[c]=this.V[c]&-256|b>>8);this.Ha=!0},fc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.V[c]=this.V[c]&~e|b<<d;c++;this.V[c]=this.V[c]&e|b>>>32-d}else this.V[c]=b;this.Ha=!0},ua:function(a,b){this.A&&cc(this.A,b,1,!1);return this.Ed(a,b)},Xa:function(a,
@ -53,10 +53,10 @@ La:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L
b,c){dc(this.A,c,!0).Yb(a,b,c)},Gc:function(a,b,c){dc(this.A,c,!0).Ie(a,b,c)},oc:function(a,b,c){dc(this.A,c,!0).He(a,b,c)},ra:function(a){return this.Ka[a]},W:function(a){return this.Ka[a]},xa:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Wb=this.W;return this.Ka[a]},Ta:function(a){return this.S.getUint16(a,!0)},ka:function(a){return a&1?this.Ka[a]|this.Ka[a+1]<<8:this.td[a>>1]},pb:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Ae=this.ka;return a&1?this.Ka[a]|this.Ka[a+
1]<<8:this.td[a>>1]},Ea:function(a){return this.S.getInt32(a,!0)},Z:function(a){return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},Ja:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Fd=this.Z;return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},ub:function(a,b){this.Ka[a]=b;this.Ha=!0},ma:function(a,b){this.Ka[a]=b;this.Ha=!0},Cb:function(a,b){this.Ka[a]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Yb=this.ma;this.L.Ha=
!0},vc:function(a,b){this.S.setUint16(a,b,!0);this.Ha=!0},qa:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.td[a>>1]=b;this.Ha=!0},yc:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.td[a>>1]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Ie=this.qa;this.L.Ha=!0},Ob:function(a,b){this.S.setInt32(a,b,!0);this.Ha=!0},pa:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.Ha=!0},ic:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=
b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.He=this.pa;this.L.Ha=!0}};function wb(a,b,c){a.Ia=b;a.ie=a.je=0;c&&(c.A&&(a.A=c.A),(a.ie=c.ie)&&ec(a,fc,!1),(a.je=c.je)&&gc(a,fc,!1))}function gc(a,b,c){c&&a.je||(a.Yb=!a.I&&b[3]||a.ia,a.Ie=!a.I&&b[4]||a.ba,a.He=!a.I&&b[5]||a.la);if(c||void 0===c)a.of=b[3]||a.ia,a.uh=b[4]||a.ba,a.oa=b[5]||a.la}
function ec(a,b,c){c&&a.ie||(a.Wb=b[0]||a.da,a.Ae=b[1]||a.ha,a.Fd=b[2]||a.Y);if(c||void 0===c)a.Ed=b[0]||a.da,a.jf=b[1]||a.ha,a.nh=b[2]||a.Y}function Jb(a,b,c){b||(b=5==a.type?hc:6==a.type?ic:jc);ec(a,b,c);gc(a,b,c)}
var jc=[],Pb=[u.prototype.va,u.prototype.fb,u.prototype.Ga,u.prototype.Bb,u.prototype.xc,u.prototype.fc],fc=[u.prototype.ua,u.prototype.Xa,u.prototype.Fa,u.prototype.Ab,u.prototype.wc,u.prototype.Zb],ic=[u.prototype.za,u.prototype.qb,u.prototype.La,u.prototype.Gb,u.prototype.zc,u.prototype.mc],hc=[u.prototype.Da,u.prototype.rb,u.prototype.Oa,u.prototype.Hb,u.prototype.Gc,u.prototype.oc];
if(hb)var Ob=[u.prototype.ra,u.prototype.Ta,u.prototype.Ea,u.prototype.ub,u.prototype.vc,u.prototype.Ob],Nb=[u.prototype.W,u.prototype.ka,u.prototype.Z,u.prototype.ma,u.prototype.qa,u.prototype.pa],kc=[u.prototype.xa,u.prototype.pb,u.prototype.Ja,u.prototype.Cb,u.prototype.yc,u.prototype.ic];
b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.He=this.pa;this.L.Ha=!0}};function wb(a,b,c){a.Ia=b;a.ie=a.je=0;c&&(c.A&&(a.A=c.A),(a.ie=c.ie)&&ec(a,fc,!1),(a.je=c.je)&&gc(a,fc,!1))}function gc(a,b,c){c&&a.je||(a.Yb=!a.I&&b[1]||a.ia,a.Ie=!a.I&&b[3]||a.ba,a.He=!a.I&&b[5]||a.la);if(c||void 0===c)a.of=b[1]||a.ia,a.uh=b[3]||a.ba,a.oa=b[5]||a.la}
function ec(a,b,c){c&&a.ie||(a.Wb=b[0]||a.da,a.Ae=b[2]||a.ha,a.Fd=b[4]||a.Y);if(c||void 0===c)a.Ed=b[0]||a.da,a.jf=b[2]||a.ha,a.nh=b[4]||a.Y}function Jb(a,b,c){b||(b=5==a.type?hc:6==a.type?ic:jc);ec(a,b,c);gc(a,b,c)}
var jc=[],Pb=[u.prototype.va,u.prototype.Bb,u.prototype.fb,u.prototype.xc,u.prototype.Ga,u.prototype.fc],fc=[u.prototype.ua,u.prototype.Ab,u.prototype.Xa,u.prototype.wc,u.prototype.Fa,u.prototype.Zb],ic=[u.prototype.za,u.prototype.Gb,u.prototype.qb,u.prototype.zc,u.prototype.La,u.prototype.mc],hc=[u.prototype.Da,u.prototype.Hb,u.prototype.rb,u.prototype.Gc,u.prototype.Oa,u.prototype.oc];
if(hb)var Ob=[u.prototype.ra,u.prototype.ub,u.prototype.Ta,u.prototype.vc,u.prototype.Ea,u.prototype.Ob],Nb=[u.prototype.W,u.prototype.ma,u.prototype.ka,u.prototype.qa,u.prototype.Z,u.prototype.pa],kc=[u.prototype.xa,u.prototype.Cb,u.prototype.pb,u.prototype.yc,u.prototype.Ja,u.prototype.ic];
function lc(a,b){Ma.call(this,"CPU",a,lc);var c=a.cycles||b,d=a.multiplier||1;this.T={};this.T.Yc=c;this.T.Bd=d;this.T.If=Math.round(this.T.Yc/1E4)/100;this.T.ve=this.T.If*this.T.Bd;this.ea.Nb=!1;this.ea.Nj=!1;this.ea.Le=a.autoStart;this.ea.mi=!1;this.ea.Cf=!1;this.T.Kf=this.T.we=0;this.T.Lf=a.csStart;this.T.Re=a.csInterval;this.T.Se=a.csStop;this.Zj=this.rh.bind(this);eb(this)}Ua(lc);var mc=["power","reset"];l=lc.prototype;
l.pc=function(a,b,c,d){this.ba=a;this.ia=b;this.Ia=d;for(b=0;b<mc.length;b++)(c=this.la[mc[b]])&&this.ba.zb(null,mc[b],c);this.od=ob(a,"FPU");this.S=ob(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.ea.Le="true"==a?!0:"false"==a?!1:!!a);eb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Ub=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();this.rc("No debugger detected")}qc(this);return!0};
l.Tb=function(a){return a?this.save():!0};l.Le=function(){return this.ea.Le||void 0===this.la.run?(this.rh(!0),!0):!1};l.si=function(){return 0};function pc(a){void 0===a.T.Lf&&(a.T.Lf=0);void 0===a.T.Re&&(a.T.Re=-1);void 0===a.T.Se&&(a.T.Se=-1);a.ea.Cf=0<=a.T.Lf&&0<a.T.Re;a.ea.Cf&&(a.T.Kf=0,a.T.we=a.T.Lf-a.ad)}
@ -77,36 +77,36 @@ b>=e.ub&&b<e.wc&&(h=0);if(6144<=h)null!=d?z=0:!1!==t?(h&1024?J<=a.sb&&(z=0):E<=a
z&&(p=a.sb,W=b==e.Ab+c,E<=J&&(!W||0<=e.fc||p<=J))){b=k&65535;h&2048&&(f=x|m<<16);m=h=0;d=b&3;if(d<p){if(-1===a.Hf(b,!0))return-1;m=e.ha.ya;e.ha.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.ga(m+c+k);if(!h)return v.call(e,10,h),-1;if(-1===e.P.Hf(h,!0))return-1;m=2==k?e.ga(m+c):e.fa(m+c)}c=e.X;e.X&=~da;c&131072&&Ic(e,!0,!1);if(-1===a.Hf(b,!1))return-1;Jc(e,z);a.gf=f;if(d<p){if(!0!==t)return-1;z=A(e);f=0;for(g&=31;g--;)a.H[f++]=Kc(e,e.P,z),z+=2;t=e.P.ja;g=A(e);Gc(e,h,!0);y(e,m);c&131072&&(Jc(e,4),
Lc(e,e.Xa.ja,4,2),e.Xa.load(0),Lc(e,e.Ta.ja,4,2),e.Ta.load(0),Lc(e,e.xa.ja,4,2),Mc(e,0),Lc(e,e.pa.ja,4,2),Nc(e,0));Lc(e,t,e.U,2);for(B(e,g);f;)B(e,a.H[--f]);a.re=!0}return a.ya}if(0!=z)return v.call(e,13,c&65532|(W?2:0)),-1;if(!(g&32768))return v.call(e,11,c&65532|(W?2:0)),-1;break;case 2:if(p){if(4096>h||2048==(h&2560))return v.call(e,13,c&65532),-1;if(!(g&32768))return v.call(e,11,c&65532),-1}break;case 3:if(!p||4096>h||512!=(h&2560))return v.call(e,13,c&65532),-1;if(!(g&32768))return v.call(e,
12,c&65532),-1;break;case 4:t=h&-513;if(!p||256!=t&&2304!=t)return v.call(e,13,c&65532),-1;2304==t&&(a.di=k+e.ga(k+100+2)|0,a.$j=k+a.Za|0);break;case 6:if(!(h&4096)&&768<h&&2304!=h&&2816!=h)return-1}d?(a.B.ja=c,a.B.ya=k,a.B.Za=f,a.B.lb=g,a.B.type=h,a.B.ext=m,a.B.hc=b):(a.ja=c,a.ya=k,a.Za=f,a.C=(f>>>0)+1,a.lb=g,a.type=h,a.ext=m,a.hc=b,Cc(a,!0,!0,!1));return k}
function Hc(a,b,c){var d=a.A,e=a.sb,f=d.ha.ja,g=d.ha.ya;if(!c){if(!(d.ha.type&512))return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb&=-513)}if(-1===d.ha.load(b))return!1;var h=d.ha.ya;if(!1!==c){if(d.ha.type&512)return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb|=512)}d.ha.type=d.ha.type&-513|d.ha.lb&512;256==d.ha.type||768==d.ha.type?(d.bb(g+14,C(d)),d.bb(g+16,Pc(d)),d.bb(g+18,d.J),d.bb(g+20,d.G),d.bb(g+22,d.M),d.bb(g+24,d.D),d.bb(g+26,A(d)),d.bb(g+28,d.K),d.bb(g+30,d.I),d.bb(g+32,d.H),d.bb(g+
34,d.pa.ja),d.bb(g+36,d.Ca.ja),d.bb(g+38,d.P.ja),d.bb(g+40,d.xa.ja),d.Zb.load(d.ga(h+42)),Qc(d,d.ga(h+16)|(c?16384:0)),d.J=d.ga(h+18),d.G=d.ga(h+20),d.M=d.ga(h+22),d.D=d.ga(h+24),d.K=d.ga(h+28),d.I=d.ga(h+30),d.H=d.ga(h+32),d.pa.load(d.ga(h+34)),d.xa.load(d.ga(h+40)),Rc(d,d.ga(h+14),d.ga(h+36)),b=38,g=26,a.sb<e&&(g=(a.sb<<2)+2,b=g+2),Gc(d,d.ga(h+b),!0),y(d,d.ga(h+g))):(d.Va(g+28,d.bd),d.Va(g+32,C(d)),d.Va(g+36,Pc(d)),d.Va(g+40,d.J),d.Va(g+44,d.G),d.Va(g+48,d.M),d.Va(g+52,d.D),d.Va(g+56,A(d)),d.Va(g+
function Hc(a,b,c){var d=a.A,e=a.sb,f=d.ha.ja,g=d.ha.ya;if(!c){if(!(d.ha.type&512))return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb&=-513)}if(-1===d.ha.load(b))return!1;var h=d.ha.ya;if(!1!==c){if(d.ha.type&512)return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb|=512)}d.ha.type=d.ha.type&-513|d.ha.lb&512;256==d.ha.type||768==d.ha.type?(d.bb(g+14,C(d)),d.bb(g+16,Oc(d)),d.bb(g+18,d.J),d.bb(g+20,d.G),d.bb(g+22,d.M),d.bb(g+24,d.D),d.bb(g+26,A(d)),d.bb(g+28,d.K),d.bb(g+30,d.I),d.bb(g+32,d.H),d.bb(g+
34,d.pa.ja),d.bb(g+36,d.Ca.ja),d.bb(g+38,d.P.ja),d.bb(g+40,d.xa.ja),d.Zb.load(d.ga(h+42)),Qc(d,d.ga(h+16)|(c?16384:0)),d.J=d.ga(h+18),d.G=d.ga(h+20),d.M=d.ga(h+22),d.D=d.ga(h+24),d.K=d.ga(h+28),d.I=d.ga(h+30),d.H=d.ga(h+32),d.pa.load(d.ga(h+34)),d.xa.load(d.ga(h+40)),Rc(d,d.ga(h+14),d.ga(h+36)),b=38,g=26,a.sb<e&&(g=(a.sb<<2)+2,b=g+2),Gc(d,d.ga(h+b),!0),y(d,d.ga(h+g))):(d.Va(g+28,d.bd),d.Va(g+32,C(d)),d.Va(g+36,Oc(d)),d.Va(g+40,d.J),d.Va(g+44,d.G),d.Va(g+48,d.M),d.Va(g+52,d.D),d.Va(g+56,A(d)),d.Va(g+
60,d.K),d.Va(g+64,d.I),d.Va(g+68,d.H),d.Va(g+72,d.pa.ja),d.Va(g+76,d.Ca.ja),d.Va(g+80,d.P.ja),d.Va(g+84,d.xa.ja),d.Va(g+88,d.Ta.ja),d.Va(g+92,d.Xa.ja),Sc.call(d,d.fa(h+28)),d.Zb.load(d.ga(h+96)),Qc(d,d.fa(h+36)|(c?16384:0)),d.J=d.fa(h+40),d.G=d.fa(h+44),d.M=d.fa(h+48),d.D=d.fa(h+52),d.K=d.fa(h+60),d.I=d.fa(h+64),d.H=d.fa(h+68),d.pa.load(d.ga(h+72)),d.xa.load(d.ga(h+84)),d.Ta.load(d.ga(h+88)),d.Xa.load(d.ga(h+92)),Rc(d,d.fa(h+32),d.ga(h+76)),b=80,g=56,a.sb<e&&(g=(a.sb<<3)+4,b=g+4),Gc(d,d.ga(h+b),!0),
y(d,d.fa(h+g)));c&&d.bb(h+0,f);d.Pa|=8;return!0}l.save=function(){return[this.ja,this.ya,this.Za,this.lb,this.id,this.Yf,this.sb,this.nc,this.hc,this.Nc,this.sa,this.U,this.N,this.type,this.C]};l.restore=function(a){"number"==typeof a?this.load(a):(this.ja=a[0],this.ya=a[1],this.Za=a[2],this.lb=a[3],this.id=a[4],this.Yf=a[5],this.sb=a[6],this.nc=a[7],this.hc=a[8],this.Nc=a[9]||2,this.sa=a[10]||65535,this.U=a[11]||2,this.N=a[12]||65535,this.type=a[13]||this.lb&7936,this.C=a[14]||(this.Za>>>0)+1)};
function Cc(a,b,c,d){void 0===c&&(c=!!(a.A.Pa&1));a.xd=!1;if(c)if(a.load=a.Hf,a.wi=a.Cl,a.Qb=a.ii,a.Rb=a.ki,void 0===d&&(d=!!(a.A.X&131072)),d)a.load=a.L,a.Qb=a.I,a.Rb=a.K,a.sb=a.nc=3,a.U=a.Nc=2,a.N=a.sa=65535,a.Za=65535,a.C=a.Za+1,a.Nc=a.U,a.hc=-1,a.re=!1;else{if(!(a.ja&-4))a.Qb=a.Af,a.Rb=a.Bf;else if(a.type&4096){6144==(a.type&6656)&&(a.Qb=a.Af);if(a.type&2048||!(a.type&512))a.Rb=a.Bf;1024==(a.type&3072)&&(a.Qb==a.ii&&(a.Qb=a.ck),a.Rb==a.ki&&(a.Rb=a.dk),a.xd=!0);b&&6>a.id&&a.ja&-4&&-1!==a.hc&&(c=
a.hc+5,d=a.A.Jb(c),d&1||a.A.Mc(c,d|1))}b&&(a.sb=a.ja&3,a.nc=(a.lb&24576)>>13,80386>a.A.ca||!(a.ext&64)?(a.U=2,a.N=65535):(a.U=4,a.N=-1),a.Nc=a.U,a.sa=a.N)}else a.load=a.xi,a.wi=a.Dl,a.Qb=a.ji,a.Rb=a.li,a.sb=a.nc=0,a.hc=-1,a.re=!1}
function Tc(a){this.ca=+a.model||8088;var b=a.stepping;this.nd=this.ca+(b?ea(b,16):0);b=0;switch(this.ca){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}lc.call(this,a,b);this.Ih=61442;this.md=1792;this.Gh=28672;this.ce=4;this.Da=255;this.B=80286<=this.ca?jb:ib;this.ma=Uc;this.Nh=Vc;this.Ph=Wc;this.Rh=Xc;if(80186<=this.ca&&(this.ma=Uc.slice(),this.Nh=Vc.slice(),this.Ph=Wc.slice(),this.Da=31,this.ma[15]=Yc,this.ma[96]=Zc,this.ma[97]=$c,this.ma[98]=ad,this.ma[99]=Yc,this.ma[100]=Yc,
this.ma[101]=Yc,this.ma[102]=Yc,this.ma[103]=Yc,this.ma[104]=bd,this.ma[105]=cd,this.ma[106]=dd,this.ma[107]=ed,this.ma[108]=fd,this.ma[109]=gd,this.ma[110]=hd,this.ma[111]=id,this.ma[192]=jd,this.ma[193]=kd,this.ma[200]=ld,this.ma[201]=md,this.ma[241]=nd,this.Nh[7]=od,this.Ph[7]=od,80286<=this.ca)){this.Ih=2;this.md|=28672;this.ce=0;this.ma[15]=pd;this.Xc=rd.slice();for(a=0;a<this.Xc.length;a++)this.Xc[a]||(this.Xc[a]=sd);this.ma[84]=td;this.ma[99]=ud;if(80386<=this.ca){var c;this.Gh=0;this.md|=
this.ma[101]=Yc,this.ma[102]=Yc,this.ma[103]=Yc,this.ma[104]=bd,this.ma[105]=cd,this.ma[106]=dd,this.ma[107]=ed,this.ma[108]=fd,this.ma[109]=gd,this.ma[110]=hd,this.ma[111]=id,this.ma[192]=jd,this.ma[193]=kd,this.ma[200]=ld,this.ma[201]=md,this.ma[241]=nd,this.Nh[7]=od,this.Ph[7]=od,80286<=this.ca)){this.Ih=2;this.md|=28672;this.ce=0;this.ma[15]=pd;this.Xc=qd.slice();for(a=0;a<this.Xc.length;a++)this.Xc[a]||(this.Xc[a]=sd);this.ma[84]=td;this.ma[99]=ud;if(80386<=this.ca){var c;this.Gh=0;this.md|=
196608;this.ma[100]=vd;this.ma[101]=wd;this.ma[102]=xd;this.ma[103]=yd;for(c in D)this.Xc[+c]=D[+c];80546<=this.nd&&80562>=this.nd&&(this.Xc[166]=zd,this.Xc[167]=Ad)}}this.rf=[];this.Mh=[];this.$f=0;oc(this);this.ea.complete=this.ea.fk=!1;this.Vh=0;this.vc=this.R=[];this.da=this.xb=this.pb=this.pf=this.$d=this.Fa=this.oc=0;Bd(this)}Ua(Tc,lc);
function Fb(a){var b;if(a.R===a.vc){a.R=Array(a.pf);a.sf=new u(null,0,0,5,null,a);wb(a.sf,a.Ia);for(b=0;b<a.pf;b++)a.R[b]=a.sf;a.ae=new u;a.Kh=Array(512);a.tf=0}else for(var c=0;c<a.qf.length;c++){b=a.qf[c];var d=a.R[b];512>a.tf&&(a.Kh[a.tf++]=d);a.R[b]=a.sf}a.qf=[]}
function Bb(a){var b;if(a.R===a.vc){a.R=Array(a.pf);a.sf=new u(null,0,0,5,null,a);wb(a.sf,a.Ia);for(b=0;b<a.pf;b++)a.R[b]=a.sf;a.ae=new u;a.Kh=Array(512);a.tf=0}else for(var c=0;c<a.qf.length;c++){b=a.qf[c];var d=a.R[b];512>a.tf&&(a.Kh[a.tf++]=d);a.R[b]=a.sf}a.qf=[]}
function dc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.bd+e&a.Fa)>>>a.da],g=f.Fd(e);if(!(g&1))return d||Cd.call(a,b,!1,c),a.ae;if(!(g&4)&&3==a.za)return d||Cd.call(a,b,!0,c),a.ae;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.da],k=g.Fd(h);if(!(k&1))return d||Cd.call(a,b,!1,c),a.ae;if(!(k&4)&&3==a.za)return d||Cd.call(a,b,!0,c),a.ae;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.da];if(d)return c;d=b>>>a.da;k=a.R[d];b=b&-4096;var m;0<a.tf?(m=a.Kh[--a.tf],m.xl(b)):m=new u(b,0,0,6);b=m;b.L=c;b.B=f;b.D=
e>>2;b.C=g;b.G=h>>2;hb&&Mb&&c.V&&!c.controller&&!c.ie&&!c.je?(b.Ka=c.Ka,b.td=c.td,b.V=c.V,Jb(b,kc)):(b.K=c?bc(32):0,b.P=c?bc(96):0,Jb(b,ic));wb(b,a.Ia,k);a.R[d]=b;a.qf.push(d);return b}function Dd(a){a.R!==a.vc&&(a.R=a.vc,a.sf=null,a.qf=null,a.ae=null)}l=Tc.prototype;l.reset=function(){this.ea.Nb&&rc(this);Bd(this);oc(this);this.ea.error=!1};
function Ed(a,b){var c;switch(b){case 0:c=a.J;break;case 1:c=a.G;break;case 2:c=a.M;break;case 3:c=a.D;break;case 4:c=A(a);break;case 5:c=a.K;break;case 6:c=a.I;break;case 7:c=a.H}return c}function Fd(a,b,c){switch(b){case 0:a.J=c;break;case 1:a.G=c;break;case 2:a.M=c;break;case 3:a.D=c;break;case 4:y(a,c);break;case 5:a.K=c;break;case 6:a.I=c;break;case 7:a.H=c}}
function Bd(a){a.J=0;a.D=0;a.G=0;a.M=0;a.Ob=0;a.K=0;a.I=0;a.H=0;a.Hb=!1;a.ua=a.Ga=0;a.oa=0;a.Th=0;a.W=0;a.Pa=65520;a.Ab=0;a.xc=1023;a.X=a.Cb=0;a.rd=a.Kd=a.qd=a.Id=0;a.fc=-1;a.Gc=a.ic=-1;a.Dd=a.ka=-1;a.Ca=new Bc(a,1,"CS");a.xa=new Bc(a,2,"DS");a.pa=new Bc(a,2,"ES");a.P=new Bc(a,3,"SS");y(a,0);Gc(a,0);if(80386<=a.ca){switch(a.nd){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Pa=16;a.ai=0;a.pd=0;a.bd=0;a.qb=[0,0,0,0,null,null,0,
0];a.uf=[null,null,null,null,null,null,0,0];a.Ta=new Bc(a,2,"FS");a.Xa=new Bc(a,2,"GS");Dd(a)}a.cg=new Bc(a,0,"NULL");a.va=a.xa;a.rb=a.P;a.L=a.wa=0;a.F=a.C=-1;a.Eb=a.cg;a.Ea=0;if(80286>a.ca)Rc(a,0,65535);else{a.ub=0;a.wc=65535;a.Zb=new Bc(a,5,"LDT",!0);a.ha=new Bc(a,4,"TSS",!0);a.Oa=new Bc(a,6,"VER",!0);Rc(a,65520,61440);var b,c=C(a);b=a.Ca;var d=-65536;80386>b.A.ca&&(d&=16777215);b=b.ya=d;a.Y=b+c|0;a.ag=(b>>>0)+(a.Ca.Za>>>0)+1}Qc(a,0);Ic(a)}
function Gd(a){2==a.Nc?(a.Zh=a.ga,a.Bb=Hd,a.Gb=Id,a.yc=Jd,2==a.U?(a.Z=Kd,a.qa=Ld,a.Ja=Md):(a.Z=Nd,a.qa=Od,a.Ja=Pd)):(a.Zh=a.fa,a.Bb=Qd,a.Gb=Rd,a.yc=Sd,2==a.U?(a.Z=Td,a.qa=Ud,a.Ja=Vd):(a.Z=Wd,a.qa=Xd,a.Ja=Yd))}function Jc(a,b){a.U!=b&&(a.wa|=1024,a.U=b,a.N=2==b?65535:-1,Zd(a))}function Zd(a){2==a.U?(a.fb=32768,a.Sb=a.ga,a.Xb=a.bb,2==a.Nc?(a.Z=Kd,a.qa=Ld,a.Ja=Md):(a.Z=Td,a.qa=Ud,a.Ja=Vd)):(a.fb=-2147483648,a.Sb=a.fa,a.Xb=a.Va,2==a.Nc?(a.Z=Nd,a.qa=Od,a.Ja=Pd):(a.Z=Wd,a.qa=Xd,a.Ja=Yd))}
function $d(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Gd(a);a.U=a.Ca.U;a.N=a.Ca.N;Zd(a);a.wa&=-3073}l.si=function(){var a=this.J+this.D+this.G+this.M+A(this)+this.K+this.I+this.H|0;return a=a+C(this)+this.Ca.ja+this.xa.ja+this.P.ja+this.pa.ja+Pc(this)|0};function ae(a,b,c){void 0===a.rf[b]&&(a.rf[b]=[]);a.rf[b].push(c)}function be(a,b){var c=a.Mh[b];null!=c&&(c(--a.$f),delete a.Mh[b])}
function $d(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Gd(a);a.U=a.Ca.U;a.N=a.Ca.N;Zd(a);a.wa&=-3073}l.si=function(){var a=this.J+this.D+this.G+this.M+A(this)+this.K+this.I+this.H|0;return a=a+C(this)+this.Ca.ja+this.xa.ja+this.P.ja+this.pa.ja+Oc(this)|0};function ae(a,b,c){void 0===a.rf[b]&&(a.rf[b]=[]);a.rf[b].push(c)}function be(a,b){var c=a.Mh[b];null!=c&&(c(--a.$f),delete a.Mh[b])}
function ce(a,b){for(var c=a.qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.qb[e],g=g&~(d>>2&3);if(b){var g=a.R[g>>>a.da],h=a;f?0===g.je++&&(h&&(g.A=h),gc(g,fc,!1)):0===g.ie++&&(h&&(g.A=h),ec(g,fc,!1))}else g=a.R[g>>>a.da],f?0===--g.je&&(f=g,f.Yb=f.I?f.ia:f.of,f.Ie=f.I?f.ba:f.uh,f.He=f.I?f.la:f.oa):0===--g.ie&&(f=g,f.Wb=f.Ed,f.Ae=f.jf,f.Fd=f.nh)}c>>=2;d>>=4}}
function cc(a,b,c,d){if(!(a.L&8192)&&a.qb[7]&255){c--;var e=a.qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.qb[g]&&b<=a.qb[g]+h){a.qb[6]|=1<<g;a.Ea|=2;break}}e>>=2;f>>=4}}}function Ic(a,b,c){void 0===b&&(b=!!(a.Pa&1));void 0===c&&(c=!!(a.X&131072));a.Rh=b&&!c?de:Xc;Cc(a.Ca,!1,b,c);Cc(a.xa,!1,b,c);Cc(a.P,!1,b,c);Cc(a.pa,!1,b,c);80386<=a.ca&&(Cc(a.Ta,!1,b,c),Cc(a.Xa,!1,b,c));$d(a)}
l.save=function(){var a=new ee(this);F(a,0,[this.J,this.D,this.G,this.M,A(this),this.K,this.I,this.H]);var b=C(this),c=this.Ca.save(),d=this.xa.save(),e=this.P.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ha.save(),this.Cb],80386<=this.ca&&(g.push(this.ai),g.push(this.pd),g.push(this.bd),g.push(this.qb),g.push(this.uf))):g=null;b=[b,c,d,e,f,g,Pc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));F(a,1,b);F(a,2,[this.va.Yf,
this.rb.Yf,this.L,this.wa,this.Ea,this.F,this.C]);F(a,3,[0,this.ad,this.T.Bd]);b=this.ia;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||Cb(b,!0);for(g=0;g<b.H;g++){var h=b.R[g];if(c&&h.type!=Lb||h.Ha||h.pi){e[d++]=g;var k=d++;a:if(h=h.save()){for(var m=0,p=0,x=[];m<h.length;){for(var t=h[m],z=m+1;z<h.length&&h[z]===t;)z++;x[p++]=z-m;x[p++]=t;m=z}if(x.length<h.length){h=x;break a}}e[k]=h}}f||Cb(b,!1);e[d]=f;F(a,4,e);return a.data()};
l.save=function(){var a=new ee(this);F(a,0,[this.J,this.D,this.G,this.M,A(this),this.K,this.I,this.H]);var b=C(this),c=this.Ca.save(),d=this.xa.save(),e=this.P.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ha.save(),this.Cb],80386<=this.ca&&(g.push(this.ai),g.push(this.pd),g.push(this.bd),g.push(this.qb),g.push(this.uf))):g=null;b=[b,c,d,e,f,g,Oc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));F(a,1,b);F(a,2,[this.va.Yf,
this.rb.Yf,this.L,this.wa,this.Ea,this.F,this.C]);F(a,3,[0,this.ad,this.T.Bd]);b=this.ia;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||xb(b,!0);for(g=0;g<b.H;g++){var h=b.R[g];if(c&&h.type!=Lb||h.Ha||h.pi){e[d++]=g;var k=d++;a:if(h=h.save()){for(var m=0,p=0,x=[];m<h.length;){for(var t=h[m],z=m+1;z<h.length&&h[z]===t;)z++;x[p++]=z-m;x[p++]=t;m=z}if(x.length<h.length){h=x;break a}}e[k]=h}}f||xb(b,!1);e[d]=f;F(a,4,e);return a.data()};
l.restore=function(a){var b=a[0];this.J=b[0];this.D=b[1];this.G=b[2];this.M=b[3];var c=b[4];this.K=b[5];this.I=b[6];this.H=b[7];b=a[1];this.Ca.restore(b[1]);this.xa.restore(b[2]);this.P.restore(b[3]);this.pa.restore(b[4]);var d=b[5];d&&d.length&&(this.Pa=d[0],this.ub=d[1],this.wc=d[2],this.Ab=d[3],this.xc=d[4],this.Zb.restore(d[5]),this.ha.restore(d[6]),this.Cb=d[7],80386<=this.ca&&(this.ai=d[8],this.pd=d[9],this.bd=d[10],this.qb=d[11],this.uf=d[12]),Ic(this));Qc(this,b[6]);var d=!1,e;a:{e=this.ia;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ia){for(var m=0,p=Array(e.ia),x=0;x<k.length-1;)for(var t=k[x++],z=k[x++];t--;)p[m++]=z;k=p}m=e.R[h];if(!m||!m.restore(k)){r("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Cb(e,f[g]);e=!0}e&&(Rc(this,b[0],this.Ca.ja),y(this,c),Gc(this,this.P.ja),80386<=this.ca&&(this.Ta.restore(b[7]),this.Xa.restore(b[8])),d=!0);b=a[2];this.va=null!=b[0]&&fe(this,b[0])||this.xa;this.rb=null!=b[1]&&fe(this,b[1])||this.P;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ia){for(var m=0,p=Array(e.ia),x=0;x<k.length-1;)for(var t=k[x++],z=k[x++];t--;)p[m++]=z;k=p}m=e.R[h];if(!m||!m.restore(k)){r("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&xb(e,f[g]);e=!0}e&&(Rc(this,b[0],this.Ca.ja),y(this,c),Gc(this,this.P.ja),80386<=this.ca&&(this.Ta.restore(b[7]),this.Xa.restore(b[8])),d=!0);b=a[2];this.va=null!=b[0]&&fe(this,b[0])||this.xa;this.rb=null!=b[1]&&fe(this,b[1])||this.P;
this.L=b[2];this.wa=b[3];this.Ea=b[4];this.F=b[5];this.C=b[6];b=a[3];this.ad=b[1];sc(this,b[2]);return d};function fe(a,b){switch(b){case "CS":return a.Ca;case "DS":return a.xa;case "SS":return a.P;case "ES":return a.pa;case "NULL":return a.cg;default:return[0,b,0,0,""]}}function ge(a,b){null!=Rc(a,C(a),b)&&(a.L|=a.ce)}function Mc(a,b){-1!==a.xa.load(b)&&(a.L|=a.ce)}
function Gc(a,b,c){var d=A(a);-1!==a.P.load(b)&&(y(a,d),a.P.xd?(a.bg=a.P.ya+a.P.sa|0,a.be=a.P.ya+a.P.Za|0):(a.bg=a.P.ya+a.P.Za|0,a.be=a.P.ya),c||(a.L|=4))}function Nc(a,b){-1!==a.pa.load(b)&&(a.L|=a.ce)}function C(a){return a.Y-a.Ca.ya|0}function G(a,b){a.Y=a.Ca.ya+(b&a.N)|0}function he(a,b){a.Y=b;a.ag=(a.Ca.ya>>>0)+(a.Ca.Za>>>0)+1;a.za=a.Ca.sb;$d(a)}function Rc(a,b,c,d){var e=a.Ca;e.gf=b;e.D=d;b=e.load(c);return-1!==b?(he(a,b+(a.Ca.gf&a.Ca.N)),a.Ca.re):null}
function ie(a,b){var c=(a.Y>>>0)+b;c>a.ag&&(8088>=a.ca||a.Ca.Za==a.Ca.sa?c=a.Ca.ya+(c-a.ag&a.N):v.call(a,13,0));return c|0}function je(a){a.Y=a.Dd}function A(a){return a.Ob&~a.P.sa|a.ra-a.P.ya}function y(a,b){a.Ob=b;a.ra=a.P.ya+(b&a.P.sa)|0}function ke(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&le(a),g&2&&me(a),g&4&&ne(a),g&8&&oe(a),g&16&&pe(a),g&32&&qe(a))}f?(a.rd=d,a.qd=b):(a.rd=b,a.qd=d);a.Kd=c;a.Id=d;a.resultType=e}
function H(a,b,c,d,e){a.resultType=c|26;a.Id=b;d?re(a):se(a);e?te(a):we(a);return b}function xe(a,b,c,d){c&d?re(a):se(a);(b^c)&d?te(a):we(a)}function ye(a){return le(a)?1:0}function le(a){a.resultType&1&&(a.X&=-2,(a.rd^(a.rd^a.Kd)&(a.Kd^a.qd))&a.resultType&-2147450752&&(a.X|=1),a.resultType&=-2);return a.X&1}function me(a){a.resultType&2&&(a.X&=-5,38505>>((a.Id^a.Id>>4)&15)&1&&(a.X|=4),a.resultType&=-3);return a.X&4}
function ne(a){a.resultType&4&&(a.X&=-17,(a.qd^a.rd^a.Kd)&16&&(a.X|=16),a.resultType&=-5);return a.X&16}function oe(a){a.resultType&8&&(a.X&=-65,a.Id&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.X|=64),a.resultType&=-9);return a.X&64}function pe(a){a.resultType&16&&(a.X&=-129,a.Id&a.resultType&-2147450752&&(a.X|=128),a.resultType&=-17);return a.X&128}
function qe(a){a.resultType&32&&(a.X&=-2049,(a.rd^a.qd)&(a.Kd^a.qd)&a.resultType&-2147450752&&(a.X|=2048),a.resultType&=-33);return a.X&2048}function se(a){a.resultType&=-2;a.X&=-2}function ze(a){a.resultType&=-5;a.X&=-17}function Ae(a){a.resultType&=-9;a.X&=-65}function we(a){a.resultType&=-33;a.X&=-2049}function re(a){a.resultType&=-2;a.X|=1}function Be(a){a.resultType&=-5;a.X|=16}function Ce(a){a.resultType&=-9;a.X|=64}function te(a){a.resultType&=-33;a.X|=2048}
function Pc(a){return a.X&-2262|le(a)|me(a)|ne(a)|oe(a)|pe(a)|qe(a)}function De(a,b){b=b|a.Pa&1|65520;a.Pa=a.Pa&-65536|b&65535;a.Pa&1&&Ic(a,!0)}function Qc(a,b,c){a.Pa&1||(b&=~a.Gh);void 0===c&&(c=a.za);c?b=b&-12289|a.X&12288:a.Cb=(b&12288)>>12;c>a.Cb&&(b=b&-513|a.X&512);a.resultType=128;a.X=a.X&~(a.md|2261)|b&(a.md|2261)|a.Ih;a.X&256&&(a.Ea|=2,a.L|=4)}
function Oc(a){return a.X&-2262|le(a)|me(a)|ne(a)|oe(a)|pe(a)|qe(a)}function De(a,b){b=b|a.Pa&1|65520;a.Pa=a.Pa&-65536|b&65535;a.Pa&1&&Ic(a,!0)}function Qc(a,b,c){a.Pa&1||(b&=~a.Gh);void 0===c&&(c=a.za);c?b=b&-12289|a.X&12288:a.Cb=(b&12288)>>12;c>a.Cb&&(b=b&-513|a.X&512);a.resultType=128;a.X=a.X&~(a.md|2261)|b&(a.md|2261)|a.Ih;a.X&256&&(a.Ea|=2,a.L|=4)}
function Ee(a,b,c){var d=0;if(a.Pa&1&&(a.za>a.Cb||a.X&131072)&&a.ha.di)for(var e=a.ha.di+(b>>>3),d=(1<<c)-1<<(b&7);d&&e<=a.ha.$j&&!(a.Jb(e)&d);)d>>>=8,e++;return d?(v.call(a,13,0),!1):!0}
l.zb=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.la[b]=c;this.Vh++;d=!0;break;default:d=this.parent.zb.call(this,a,b,c)}return d};
function Fe(a,b,c,d){var e=(d?a.vc:a.R)[(b&a.oc)>>>a.da];e&&5==e.type&&(e=dc(a,b,!1,!0));if(e){var f=b&a.pb;if(!c||1==c)return e.Ed(f,b);if(2==c)return f<a.pb?e.jf(f,b):e.Ed(f,b)|Fe(a,b+1,1,d)<<8;if(4==c)return f<a.pb-2?e.nh(f,b):f==a.pb-1?e.jf(f,b)|Fe(a,b+2,2,d)<<16:e.Ed(f,b)|Fe(a,b+1,1,d)<<8|Fe(a,b+2,1,d)<<16|Fe(a,b+3,1,d)<<24}return null}l.Jb=function(a){return this.R[(a&this.oc)>>>this.da].Wb(a&this.pb,a)};
@ -117,7 +117,7 @@ function Ie(a,b){a.L&2||a.Mc(a.Eb.Rb(a.La,1),b)}function Je(a,b){a.L&2||a.bb(a.E
l.O=function(){var a=ie(this,1),b=this.Jb(this.Y)<<24>>24;this.Y=a;return b};function w(a){var b=a.Sb(a.ra);a.ra=a.ra+a.U|0;var c=a.bg-a.ra|0;0>c&&0<=(a.bg^a.ra)&&(8088>=a.ca||!a.P.xd&&a.P.Za==a.P.sa||a.P.xd&&!a.P.Za?y(a,a.ra-a.P.ya&a.P.sa):-1>c&&v.call(a,12,0));return b}
function Lc(a,b,c,d){c=a.ra-c|0;0>(c-a.be|0)&&0<=(a.be^c)&&(8088>=a.ca||!a.P.xd&&a.P.Za==a.P.sa||a.P.xd&&!a.P.Za?(y(a,c-a.P.ya&a.P.sa),c=a.ra):v.call(a,12,0));switch(d){case 1:a.Mc(c,b);break;case 2:a.bb(c,b);break;case 4:a.Va(c,b)}a.ra=c}function B(a,b){var c=a.ra-a.U|0;0>(c-a.be|0)&&0<=(a.be^c)&&(8088>=a.ca||!a.P.xd&&a.P.Za==a.P.sa||a.P.xd&&!a.P.Za?(y(a,c-a.P.ya&a.P.sa),c=a.ra):v.call(a,12,0));a.Xb(c,b);a.ra=c}
function Q(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.la[b]&&(void 0===c&&(gb(a,"Value for "+b+" is invalid"),rc(a)),d=!a.ea.Nb||a.ea.mi?fa(c,d):"--------".substr(0,d),a.la[b].textContent!=d&&(a.la[b].textContent=d))}
l.Zd=function(a){this.Vh&&(a||!this.ea.Nb||this.ea.mi)&&(Q(this,"EAX",this.J),Q(this,"EBX",this.D),Q(this,"ECX",this.G),Q(this,"EDX",this.M),Q(this,"ESP",A(this)),Q(this,"EBP",this.K),Q(this,"ESI",this.I),Q(this,"EDI",this.H),Q(this,"CS",this.Ca.ja),Q(this,"DS",this.xa.ja),Q(this,"SS",this.P.ja),Q(this,"ES",this.pa.ja),Q(this,"EIP",C(this)),a=Pc(this),Q(this,"PS",a),Q(this,"V",a&2048),Q(this,"D",a&1024),Q(this,"I",a&512),Q(this,"T",a&256),Q(this,"S",a&128),Q(this,"Z",a&64),Q(this,"A",a&16),Q(this,
l.Zd=function(a){this.Vh&&(a||!this.ea.Nb||this.ea.mi)&&(Q(this,"EAX",this.J),Q(this,"EBX",this.D),Q(this,"ECX",this.G),Q(this,"EDX",this.M),Q(this,"ESP",A(this)),Q(this,"EBP",this.K),Q(this,"ESI",this.I),Q(this,"EDI",this.H),Q(this,"CS",this.Ca.ja),Q(this,"DS",this.xa.ja),Q(this,"SS",this.P.ja),Q(this,"ES",this.pa.ja),Q(this,"EIP",C(this)),a=Oc(this),Q(this,"PS",a),Q(this,"V",a&2048),Q(this,"D",a&1024),Q(this,"I",a&512),Q(this,"T",a&256),Q(this,"S",a&128),Q(this,"Z",a&64),Q(this,"A",a&16),Q(this,
"P",a&4),Q(this,"C",a&1),80386==this.ca&&(Q(this,"FS",this.Ta.ja),Q(this,"GS",this.Xa.ja),Q(this,"CR0",this.Pa),Q(this,"CR2",this.pd),Q(this,"CR3",this.bd)));if(a=this.la.speed)a.textContent=this.ea.Nb&&this.T.zd?this.T.zd.toFixed(2)+"Mhz":"Stopped"};
l.Oj=function(a){this.ea.complete=!0;this.ea.fk=!1;this.ea.Nj=!1;this.mc=this.A=a;this.S&&!a&&yc(this.S);a||(this.L|=4);do{if(a=this.L&3312)this.wa|=a;else if(this.Dd=this.Y,this.va=this.xa,this.rb=this.P,this.F=this.C=-1,this.wa&3072&&$d(this),this.wa=this.L&256,this.Ea){a:if(!(this.L&4)){a=80286>this.ca?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ea&1&&this.X&512){var c=Me(this.S);if(-1<=c&&(this.Ea&=-2,0<=c)){this.Ea&=-5;Ne.call(this,c);break a}}break;case 1:if(this.Ea&2){this.Ea&=-3;80386<=
this.ca&&(this.qb[6]|=16384);Ne.call(this,1);break a}}a=1-a}}if(this.Ea&4){this.L=this.A=0;break}}this.L=0;this.ma[this.na()].call(this)}while(0<this.A);return this.ea.complete?this.mc-this.A:void 0===this.ea.complete?0:-1};Ia(function(){for(var a=cb(document,"pcx86","cpu"),b=0;b<a.length;b++){var c=a[b],d=$a(c),d=new Tc(d);bb(d,c)}});
@ -172,9 +172,9 @@ function vh(a,b){return b>>(this.J&this.N)&(1<<(this.G&31))-1&this.N}function wh
function xh(a,b){if(-1===this.F){switch(this.W&7){case 0:this.J=this.J&~this.N|a;break;case 1:this.G=this.G&~this.N|a;break;case 2:this.M=this.M&~this.N|a;break;case 3:this.D=this.D&~this.N|a;break;case 4:y(this,A(this)&~this.N|a);break;case 5:this.K=this.D&~this.N|a;break;case 6:this.I=this.I&~this.N|a;break;case 7:this.H=this.H&~this.N|a}this.A-=this.B.jh}else this.C=this.F,this.L&2||this.Xb(this.Eb.Rb(this.La,this.U),a),this.A-=this.B.ih;return b}
function yh(a,b){var c=a^b;H(this,c,128);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c}function zh(a,b){this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return H(this,a^b,this.fb)&this.N}function Ah(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Bh(a){var b=a-1|0;ke(this,a,1,b,this.fb|62,!0);this.A-=2;return a&~this.N|b&this.N}
function Ch(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0<Ah(a,c);){var f=b=c;b[0]+=f[0];b[1]+=f[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=Ah(a,c)&&(b=a,f=c,b[0]-=f[0],b[1]-=f[1],0>b[0]&&(b[0]>>>=0,b[1]--),d+=e),b=c,b[0]>>>=1,b[1]&1&&(b[0]=(b[0]|2147483648)>>>0),b[1]>>>=1,e/=2;while(1<=e);this.ua=d;this.Ga=a[0];return!0}function Dh(a){var b=a+1|0;ke(this,a,1,b,this.fb|62);this.A-=2;return a&~this.N|b&this.N}
function Sc(a){this.bd=a;this.Pa&-2147483648&&Fb(this)}function Eh(a){this.L|=1;this.Gb.call(this,a);this.A-=-1===this.F?4:5}function fh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;H(this,a,32768,d&1)}return a}
function Sc(a){this.bd=a;this.Pa&-2147483648&&Bb(this)}function Eh(a){this.L|=1;this.Gb.call(this,a);this.A-=-1===this.F?4:5}function fh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;H(this,a,32768,d&1)}return a}
function nh(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;H(this,a,-2147483648,d&1)}return a}function Fh(){this.A-=-1===this.F?2:this.B.zj;return 1}function Gh(){var a=this.G&255;this.A-=(-1===this.F?this.B.$g:this.B.Zg)+(a<<this.B.ah);return a}function Hh(){var a=this.na();this.A-=(-1===this.F?this.B.$g:this.B.Zg)+(a<<this.B.ah);return a}function Ih(){return null}function Jh(){return this.oa}
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 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=Oc(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 "+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)}
@ -293,8 +293,8 @@ this.A-=this.B.ec},function(){this.D=this.D&~this.N|w(this);this.A-=this.B.ec},f
ui,this.O);this.A-=-1===this.C?1:this.B.Pf},function(){this.Gb.call(this,sh)},function(){this.qa.call(this,th)},function(){this.Bb.call(this,wh)},function(){this.Z.call(this,xh)},hi,ii,ji,ki,function(){this.L|=1;this.qa.call(this,Lg)},function(){this.L|=1;this.va=this.rb=this.cg;this.Z.call(this,Bg)},function(){var a;this.Z.call(this,Kg);switch(this.W>>3&7){case 0:a=this.J;this.J=this.oa;Nc(this,a);break;case 1:a=this.G;this.G=this.oa;ge(this,a);break;case 2:a=this.M;this.M=this.oa;Gc(this,a);break;
case 3:a=this.D;this.D=this.oa;Mc(this,a);break;case 4:a=A(this);y(this,this.oa);80386<=this.ca?this.Ta.load(a):Nc(this,a);break;case 5:a=this.K;this.K=this.oa;80386<=this.ca?this.Xa.load(a):ge(this,a);break;case 6:a=this.I;this.I=this.oa;Gc(this,a);break;case 7:a=this.H,this.H=this.oa,Mc(this,a)}},function(){this.L|=1;this.ka=this.ra;this.oa=w(this);this.Ja.call(this,vi,Jh);this.ka=-1},function(){this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.G&this.N;this.G=this.G&~this.N|a&this.N;
this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.M&this.N;this.M=this.M&~this.N|a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.D&this.N;this.D=this.D&~this.N|a&this.N;this.A-=3},function(){var a=this.J,b=A(this);this.J=this.J&~this.N|b&this.N;y(this,b&~this.N|a&this.N);this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.K&this.N;this.K=this.K&~this.N|a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.I&this.N;this.I=this.I&~this.N|
a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.H&this.N;this.H=this.H&~this.N|a&this.N;this.A-=3},function(){this.J=2==this.U?this.J&-65536|this.J<<24>>24&65535:this.J<<16>>16;this.A-=2},function(){this.M=2==this.U?this.M&-65536|(this.J&32768?65535:0):this.J&-2147483648?-1:0;this.A-=this.B.Fi},function(){Kh.call(this,this.Aa(),Le(this));this.A-=this.B.Ii},function(){this.A-=3},function(){var a=Pc(this);a&131072&&3>this.Cb?v.call(this,13,0):(B(this,a&-196609),this.A-=this.B.Ac)},
function(){if(this.X&131072&&3>this.Cb)v.call(this,13,0);else{var a=w(this),a=a&65535|this.X&-65536;Qc(this,a);this.A-=this.B.ec}},function(){var a=this.J>>8&255;a&1?re(this):se(this);a&4?(this.resultType&=-3,this.X|=4):(this.resultType&=-3,this.X&=-5);a&16?Be(this):ze(this);a&64?Ce(this):Ae(this);a&128?(this.resultType&=-17,this.X|=128):(this.resultType&=-17,this.X&=-129);this.A-=this.B.Mb},function(){this.J=this.J&-65281|(Pc(this)&213)<<8;this.A-=this.B.Mb},function(){var a=this.J&-256,b;b=P(this);
a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.H&this.N;this.H=this.H&~this.N|a&this.N;this.A-=3},function(){this.J=2==this.U?this.J&-65536|this.J<<24>>24&65535:this.J<<16>>16;this.A-=2},function(){this.M=2==this.U?this.M&-65536|(this.J&32768?65535:0):this.J&-2147483648?-1:0;this.A-=this.B.Fi},function(){Kh.call(this,this.Aa(),Le(this));this.A-=this.B.Ii},function(){this.A-=3},function(){var a=Oc(this);a&131072&&3>this.Cb?v.call(this,13,0):(B(this,a&-196609),this.A-=this.B.Ac)},
function(){if(this.X&131072&&3>this.Cb)v.call(this,13,0);else{var a=w(this),a=a&65535|this.X&-65536;Qc(this,a);this.A-=this.B.ec}},function(){var a=this.J>>8&255;a&1?re(this):se(this);a&4?(this.resultType&=-3,this.X|=4):(this.resultType&=-3,this.X&=-5);a&16?Be(this):ze(this);a&64?Ce(this):Ae(this);a&128?(this.resultType&=-17,this.X|=128):(this.resultType&=-17,this.X&=-129);this.A-=this.B.Mb},function(){this.J=this.J&-65281|(Oc(this)&213)<<8;this.A-=this.B.Mb},function(){var a=this.J&-256,b;b=P(this);
b=this.Jb(this.va.Qb(b,1));this.J=a|b;this.A-=this.B.Pg},function(){this.J=this.J&~this.N|Kc(this,this.va,P(this));this.A-=this.B.Pg},function(){var a=P(this),b=this.J;this.Mc(this.va.Rb(a,1),b);this.A-=this.B.Qg},function(){var a=P(this),b=this.J;this.Xb(this.va.Rb(a,this.U),b);this.A-=this.B.Qg},function(){var a=1,b=0,c=this.sa,d=this.B.Rg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Tg,this.wa&256||(this.A-=this.B.Sg));if(a--){var e=this.Jb(this.va.Qb(this.I&c,1));this.Mc(this.pa.Rb(this.H&c,1),e);e=
this.X&1024?-1:1;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.A-=d;this.G=this.G&~c|this.G-b&c;a&&(je(this),this.L|=256)}},function(){var a=1,b=0,c=this.sa,d=this.B.Rg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Tg,this.wa&256||(this.A-=this.B.Sg));if(a--){var e=Kc(this,this.va,this.I&c);this.Xb(this.pa.Rb(this.H&c,this.U),e);e=this.X&1024?-this.U:this.U;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.A-=d;this.G=this.G&~c|this.G-b&c;a&&(je(this),this.L|=256)}},function(){var a=
1,b=0,c=this.sa,d=this.B.Cg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Eg,this.wa&256||(this.A-=this.B.Dg));if(a--){var e=Ge(this,this.va,this.I),f=Ge(this,this.pa,this.H);this.C=this.F;pg.call(this,e,f);e=this.X&1024?-1:1;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.G=this.G&~c|this.G-b&c;this.A-=d-this.B.yb;a&&oe(this)==(this.wa&64)&&(je(this),this.L|=256)}},function(){var a=1,b=0,c=this.sa,d=this.B.Cg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Eg,this.wa&256||(this.A-=this.B.Dg));if(a--){var e=
@ -326,14 +326,14 @@ te(this)):(se(this),we(this));this.Hb=!0;this.A-=-1===this.F?this.B.qj:this.B.pj
c)return Oh.call(this),a;this.ua=c&65535;this.Ga=b%a&65535}else{if(!Ch.call(this,this.J,this.M,a))return Oh.call(this),a;this.ua|=0;this.Ga|=0}this.Hb=!0;this.A-=-1===this.F?this.B.Oi:this.B.Ni;this.L|=2;return a},function(a,b){if(2==this.U){if(!a)return Oh.call(this),a;var c=a<<16>>16,d=(b=this.M<<16|this.J&65535)/c|0;if(d!=d<<16>>16||8086==this.ca&&-32768==d)return Oh.call(this),a;this.ua=d&65535;this.Ga=b%c&65535}else{var c=this.J,d=this.M,e=a,f=0,g=0;0>e&&(e=-e|0,f=1-f);0>d&&(c=-c|0,d=~d+(c?0:
1)|0,g=1,f=1-f);!Ch.call(this,c,d,e)||this.ua>2147483647+f||this.Ga>2147483647+g?c=!1:(f&&(this.ua=-this.ua),g&&(this.Ga=-this.Ga),c=!0);if(!c)return Oh.call(this),a;this.ua|=0;this.Ga|=0}this.Hb=!0;this.A-=-1===this.F?this.B.Si:this.B.Ri;this.L|=2;return a}],Vc=[function(a){var b=a+1|0;ke(this,a,1,b,190);this.A-=-1===this.F?this.B.af:this.B.$e;return b&255},function(a){var b=a-1|0;ke(this,a,1,b,190,!0);this.A-=-1===this.F?this.B.af:this.B.$e;return b&255},T,T,T,T,T,T],Wc=[function(a){var b=a+1|0;
ke(this,a,1,b,this.fb|62);this.A-=-1===this.F?this.B.af:this.B.$e;return b&this.N},function(a){var b=a-1|0;ke(this,a,1,b,this.fb|62,!0);this.A-=-1===this.F?this.B.af:this.B.$e;return b&this.N},function(a){B(this,C(this));G(this,a);this.A-=-1===this.F?this.B.Ki:this.B.Ji;this.L|=2;return a},function(a){if(-1===this.F)return T.call(this,a);this.ka=this.ra;Kh.call(this,a,this.ga(this.F+this.U));this.A-=this.B.Hi;this.L|=2;this.ka=-1;return a},function(a){G(this,a);this.A-=-1===this.F?this.B.ej:this.B.dj;
this.L|=2;return a},function(a){if(-1===this.F)return T.call(this,a);Rc(this,a,this.ga(this.F+this.U));this.A-=this.B.bj;this.L|=2;return a},function(a){var b=a;this.L&512&&(a=a-2&65535,80286>this.ca&&(b=a));B(this,b);this.A-=-1===this.F?this.B.Ac:this.B.uj;this.L|=2;return a},T];function zd(){this.Z.call(this,vh);this.A-=-1===this.F?6:13}function Ad(){this.qa.call(this,uh);this.A-=-1===this.F?12:19}var rd=Array(256);
rd[0]=function(){16>(this.Jb(this.Y)&56)&&(this.L|=1);this.Ja.call(this,this.Rh,Ih)};rd[1]=function(){this.Jb(this.Y)&16||(this.L|=1);this.Ja.call(this,zi,Ih)};rd[2]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,zg)};rd[3]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,Fg)};
rd[5]=function(){this.za?v.call(this,13,0,0,!0):(De(this,this.ga(2054)),this.H=this.ga(2086),this.I=this.ga(2088),this.K=this.ga(2090),this.D=this.ga(2094),this.M=this.ga(2096),this.G=this.ga(2098),this.J=this.ga(2100),Fc(this.pa,2102,this.ga(2084)),Fc(this.Ca,2108,this.ga(2082)),Fc(this.P,2114,this.ga(2080)),Fc(this.xa,2120,this.ga(2078)),Qc(this,this.ga(2072)),G(this,this.ga(2074)),y(this,this.ga(2092)),this.ub=this.ga(2126)|this.Jb(2128)<<16,this.wc=this.ub+this.ga(2130),this.Ab=this.ga(2138)|
this.Jb(2140)<<16,this.xc=this.Ab+this.ga(2142),Fc(this.Zb,2132,this.ga(2076)),Fc(this.ha,2144,this.ga(2070)),this.A-=195)};rd[6]=function(){this.za?v.call(this,13,0):(this.Pa&=-9,this.A-=2)};rd[11]=Yc;rd[166]=Yc;rd[255]=Yc;var D=[];D[5]=Yc;
D[7]=function(){if(this.za)v.call(this,13,0,0,!0);else{var a=this.pa.Qb(this.H&this.sa,204);if(-1!==a){this.Pa=this.fa(a);Ic(this);this.Pa&-2147483648?Fb(this):Dd(this);var b=this.fa(a+168),c=(b&24576)>>13;Qc(this,this.fa(a+4),c);this.ub=this.fa(a+112);this.wc=this.ub+this.fa(a+116);this.Ab=this.fa(a+100);this.xc=this.Ab+this.fa(a+104);Ec(this.Zb,this.fa(a+56),this.fa(a+120),this.fa(a+124),this.fa(a+128));Ec(this.ha,this.fa(a+52),this.fa(a+84),this.fa(a+88),this.fa(a+92));this.H=this.fa(a+12);this.I=
this.L|=2;return a},function(a){if(-1===this.F)return T.call(this,a);Rc(this,a,this.ga(this.F+this.U));this.A-=this.B.bj;this.L|=2;return a},function(a){var b=a;this.L&512&&(a=a-2&65535,80286>this.ca&&(b=a));B(this,b);this.A-=-1===this.F?this.B.Ac:this.B.uj;this.L|=2;return a},T];function zd(){this.Z.call(this,vh);this.A-=-1===this.F?6:13}function Ad(){this.qa.call(this,uh);this.A-=-1===this.F?12:19}var qd=Array(256);
qd[0]=function(){16>(this.Jb(this.Y)&56)&&(this.L|=1);this.Ja.call(this,this.Rh,Ih)};qd[1]=function(){this.Jb(this.Y)&16||(this.L|=1);this.Ja.call(this,zi,Ih)};qd[2]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,zg)};qd[3]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,Fg)};
qd[5]=function(){this.za?v.call(this,13,0,0,!0):(De(this,this.ga(2054)),this.H=this.ga(2086),this.I=this.ga(2088),this.K=this.ga(2090),this.D=this.ga(2094),this.M=this.ga(2096),this.G=this.ga(2098),this.J=this.ga(2100),Fc(this.pa,2102,this.ga(2084)),Fc(this.Ca,2108,this.ga(2082)),Fc(this.P,2114,this.ga(2080)),Fc(this.xa,2120,this.ga(2078)),Qc(this,this.ga(2072)),G(this,this.ga(2074)),y(this,this.ga(2092)),this.ub=this.ga(2126)|this.Jb(2128)<<16,this.wc=this.ub+this.ga(2130),this.Ab=this.ga(2138)|
this.Jb(2140)<<16,this.xc=this.Ab+this.ga(2142),Fc(this.Zb,2132,this.ga(2076)),Fc(this.ha,2144,this.ga(2070)),this.A-=195)};qd[6]=function(){this.za?v.call(this,13,0):(this.Pa&=-9,this.A-=2)};qd[11]=Yc;qd[166]=Yc;qd[255]=Yc;var D=[];D[5]=Yc;
D[7]=function(){if(this.za)v.call(this,13,0,0,!0);else{var a=this.pa.Qb(this.H&this.sa,204);if(-1!==a){this.Pa=this.fa(a);Ic(this);this.Pa&-2147483648?Bb(this):Dd(this);var b=this.fa(a+168),c=(b&24576)>>13;Qc(this,this.fa(a+4),c);this.ub=this.fa(a+112);this.wc=this.ub+this.fa(a+116);this.Ab=this.fa(a+100);this.xc=this.Ab+this.fa(a+104);Ec(this.Zb,this.fa(a+56),this.fa(a+120),this.fa(a+124),this.fa(a+128));Ec(this.ha,this.fa(a+52),this.fa(a+84),this.fa(a+88),this.fa(a+92));this.H=this.fa(a+12);this.I=
this.fa(a+16);this.K=this.fa(a+20);this.D=this.fa(a+28);this.M=this.fa(a+32);this.G=this.fa(a+36);this.J=this.fa(a+40);Ec(this.Xa,this.fa(a+60),this.fa(a+132),this.fa(a+136),this.fa(a+140));Ec(this.Ta,this.fa(a+64),this.fa(a+144),this.fa(a+148),this.fa(a+152));Ec(this.xa,this.fa(a+68),this.fa(a+156),this.fa(a+160),this.fa(a+164));Ec(this.P,this.fa(a+72),b,this.fa(a+172),this.fa(a+176));Ec(this.Ca,this.fa(a+76),this.fa(a+180),this.fa(a+184),this.fa(a+188));Ec(this.pa,this.fa(a+80),this.fa(a+192),this.fa(a+
196),this.fa(a+200));G(this,this.fa(a+8));y(this,this.fa(a+24))}this.A-=122<<(a&3?1:0)}};D[16]=hi;D[17]=ii;D[18]=ji;D[19]=ki;D[32]=function(){if(this.za)v.call(this,13,0);else{var a,b=this.na();switch((b&56)>>3){case 0:a=this.Pa;break;case 2:a=this.pd;break;case 3:a=this.bd;break;default:sd.call(this);return}Fd(this,b&7,a);this.A-=6}};D[33]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?sd.call(this):(Fd(this,a&7,this.qb[b]),this.A-=22)}};
D[34]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=Ed(this,a&7);switch((a&56)>>3){case 0:this.Pa=b;Ic(this);this.Pa&-2147483648?Fb(this):Dd(this);this.A-=10;break;case 2:this.pd=b;this.A-=4;break;case 3:Sc.call(this,b);this.A-=5;break;default:sd.call(this)}}};D[35]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?sd.call(this):(a=Ed(this,a&7),a!=this.qb[b]&&(ce(this,!1),this.qb[b]=a,ce(this,!0)),this.A-=4>b?22:14)}};
D[34]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=Ed(this,a&7);switch((a&56)>>3){case 0:this.Pa=b;Ic(this);this.Pa&-2147483648?Bb(this):Dd(this);this.A-=10;break;case 2:this.pd=b;this.A-=4;break;case 3:Sc.call(this,b);this.A-=5;break;default:sd.call(this)}}};D[35]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?sd.call(this):(a=Ed(this,a&7),a!=this.qb[b]&&(ce(this,!1),this.qb[b]=a,ce(this,!0)),this.A-=4>b?22:14)}};
D[36]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;6>b?sd.call(this):(Fd(this,a&7,this.uf[b]),this.A-=12)}};D[38]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;6>b?sd.call(this):(this.uf[b]=Ed(this,a&7),this.A-=12)}};D[128]=function(){var a=this.Aa();qe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[129]=function(){var a=this.Aa();qe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};
D[130]=function(){var a=this.Aa();le(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[131]=function(){var a=this.Aa();le(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[132]=function(){var a=this.Aa();oe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[133]=function(){var a=this.Aa();oe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[134]=function(){var a=this.Aa();le(this)||oe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};
D[135]=function(){var a=this.Aa();le(this)||oe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[136]=function(){var a=this.Aa();pe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[137]=function(){var a=this.Aa();pe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[138]=function(){var a=this.Aa();me(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[139]=function(){var a=this.Aa();me(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};
@ -390,7 +390,7 @@ function Uj(a,b){var c=!!(b&2),d=!!(a.S&2);a.S=b;a.C&&Vj(a.C,!(b&128),!!(b&64));
l.Kl=function(a,b){Uj(this,b)};l.vk=function(){return this.ka};l.wk=function(){var a=this.ua;this.H&=-258;this.C&&Wj(this.C);return a};l.Nl=function(a,b){if(this.H&8)switch(this.P){case 96:Xj(this,b);break;case 209:Yj(this,b);break;default:if(Xj(this,this.R&-17),this.C){var c=this.C,d=b,e=-1;switch(c.G||d){case 255:e=250;c.Pb=[];Zj(c,170);break;case 243:c.G&&(d=0);Zj(c,250);c.G=d;break;case 237:c.G&&(d=0),Zj(c,250),c.G=d}ak(this,e)}}this.P=b;this.H&=-9};
l.xk=function(){return this.S&-209|(wc(this.A)&64?16:0)};l.Ol=function(a,b){Uj(this,b)};l.yk=function(){var a=this.H&255;this.H&256&&(this.H|=1,this.H&=-257);return a};
l.Ml=function(a,b){this.P=b;this.H|=8;var c=0;240<=this.P&&(c=this.P^15,this.P=240);switch(this.P){case 32:ak(this,this.R);break;case 173:Xj(this,this.R|16);break;case 174:Xj(this,this.R&-17);this.C&&Wj(this.C);break;case 170:this.C&&(this.C.Pb=[]);Xj(this,this.R|16);ak(this,85);Yj(this,3);break;case 171:ak(this,0);break;case 192:ak(this,this.W);break;case 208:ak(this,this.va);break;case 224:ak(this,this.R&16?0:1);break;case 240:c&1&&Bd(this.A)}};
function Xj(a,b){a.R=b;a.H=a.H&-5|b&4;a.C&&Vj(a.C,!!(b&8),!(b&16))}function ak(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Yj(a,b){a.va=b;Cb(a.ia,!!(b&2));b&1||Bd(a.A)}function bk(a,b){a.ca<Te?(Ve(a,1,4),a.ka|=1):a.R&16||a.H&257||(ak(a,b,!0),ck(a.C),Ve(a,1,120))}l.Mk=function(){return this.da};l.bm=function(a,b){this.da=b;this.ma=b&128?0:128};
function Xj(a,b){a.R=b;a.H=a.H&-5|b&4;a.C&&Vj(a.C,!!(b&8),!(b&16))}function ak(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Yj(a,b){a.va=b;xb(a.ia,!!(b&2));b&1||Bd(a.A)}function bk(a,b){a.ca<Te?(Ve(a,1,4),a.ka|=1):a.R&16||a.H&257||(ak(a,b,!0),ck(a.C),Ve(a,1,120))}l.Mk=function(){return this.da};l.bm=function(a,b){this.da=b;this.ma=b&128?0:128};
l.Nk=function(a,b){var c=this.da&63,d;if(13>=c)if(d=this.B[c],10>c){var e=!1;4!=c&&5!=c||this.B[11]&2||(12>d?d=d?d:12:d=(d-=12)?d+128:140,e=!0);this.B[11]&4||(e&&128<d&&(d-=48),d=d%10|d/10<<4)}else 10==c&&(this.B[c]^=128);else d=this.B[c];null!=b&&12==c&&(this.B[c]&=15,d&128&&Ue(this,8),d&64&&this.B[11]&64&&ej(this));return d};
l.cm=function(a,b){var c=this.da&63,d=b^this.B[c],e;if(13>=c){if(e=b,10>c){var f=!1;this.B[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&23<e&&(e+=48),this.B[11]&2||(12>=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;this.B[c]=e;11==c&&d&64&&b&64&&ej(this)};l.Ej=function(a,b){this.ma=b};l.mm=function(){};l.nm=function(){this.od&&Pe(this.od)};
function fj(a,b){if(a.qa)try{void 0!==b?a.Oa=b:b=a.Oa&&a.A&&a.A.ea.Nb;var c=Math.round(1193181/Qj(a,2));if(20>c||2E4<c)b=!1;b?a.L?a.L.frequency.value=c:(a.L=a.qa.createOscillator(),a.L&&(a.L.type="number"==typeof a.L.type?1:"square",a.L.connect(a.qa.destination),a.L.frequency.value=c,"start"in a.L?a.L.start(0):a.L.noteOn(0))):a.L&&("stop"in a.L?a.L.stop(0):a.L.noteOff(0),a.L.disconnect(),delete a.L)}catch(d){a.Ba("AudioContext exception: "+d.message),a.qa=null}}
@ -407,10 +407,10 @@ 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 ("+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,
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(yb(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")};
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&&yb(this.ia,this.C,this.B,1)&&(this.D=!0,"ramCPQ"==this.Sd&&(this.controller=new jk(this),yb(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")};
l.save=function(){var a=new ee(this);this.controller&&F(a,0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function jk(a){this.G=a;this.C=lk;this.D=mk;this.B=nk;this.A=null}var kk=-2134900736,lk=65535,mk=2575,nk=2,ok=[null,0],pk=[function(a){return this.controller.Jb(a)},null,null,function(a,b){this.controller.Mc(a,b)},null,null];l=jk.prototype;l.save=function(){return[this.C,this.B]};
l.restore=function(a){this.Mc(0,a[0]&255);this.Mc(2,a[1]&255);return!0};l.Jb=function(a){var b=255;2>a?b=a&1?this.D>>8:this.D&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};l.Mc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.G.ia;if(b&1)this.A&&(Hb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Ib(c,917504,131072));var d=Ib(c,16646144,131072);Hb(c,917504,131072,d,b&2?1:Lb)}this.C=this.C&-256|b}};l.ti=function(){return ok};l.qg=function(){return pk};
Ia(function(){for(var a=cb(document,"pcx86","ram"),b=0;b<a.length;b++){var c=a[b],d=$a(c),d=new ik(d);bb(d,c)}});function qk(a){Ma.call(this,"Keyboard",a,qk);rk(this,a.model);this.Y=Ba("Mobi");this.W=Ba("MSIE");this.R=0;this.P=this.ng=!1;this.B=[];this.da=50;eb(this)}Ua(qk);
@ -458,7 +458,7 @@ bl[98]=function(a,b){var c=a+this.H,d=Vk[b&15],d=d&this.controller.ob,d=d&this.c
bl[226]=function(a,b){var c=a+this.H,d=Vk[b&15],d=d^this.controller.ob,d=d&this.controller.tb|this.controller.ob&~this.controller.tb,d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ha=!0)};bl[3]=function(a,b){var c=a+this.H;b=b>>this.controller.Hc|b<<8-this.controller.Hc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.tb;d=this.controller.ef&d|this.controller.ob&~d;d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ha=!0)};
function cl(a){var b=[];if(void 0!==a.Ra){b[0]=a.cc;b[1]=a.Lc;b[2]=a.lf;b[3]=a.aa;b[4]=a.sc|a.Vf<<8;b[5]=a.ab;if(5<=a.Ra){var c=[];c[0]=a.Pe;c[1]=a.Wd;c[2]=a.Kc;c[3]=a.ph;c[4]=a.mf;c[5]=a.Xf;c[6]=a.Ee;c[7]=a.De;c[8]=a.Gj;c[9]=a.Hj;c[10]=a.Ce;c[11]=a.Gd;c[12]=a.ob;c[13]=[a.cb,a.Fb,a.Vc];var d;a:if(d=a.sd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],m=h+2;m<d.length&&d[m]===k;)m+=2;f[e++]=m-h>>1;f[e++]=k;h=m}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
a.tg|-2147483648;c[16]=a.kh;c[17]=a.$a;c[18]=a.Hc;c[19]=a.tb;c[20]=a.ef;c[21]=a.ld;c[22]=a.Cd;c[23]=a.vg;c[24]=a.wg;c[25]=a.cd;a.Ra==hk&&(c[26]=a.qh,c[27]=a.oh,c[28]=a.dd,c[29]=a.Bc,c[30]=a.Wf,c[31]=a.Be);b[6]=c}b[7]=a.Bg}return b}Xk.prototype.ti=function(a){return[this.sd,a-this.cb]};Xk.prototype.qg=function(){return this.A};
Xk.prototype.Zf=function(a){if(null!=a&&a!=this.tg){var b=a&65280,c=bl[b];c||b&4096&&(c=bl[4096]);var b=a&255,d=bl[b];d||b&16&&(d=bl[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.tg=a}};
Xk.prototype.Zf=function(a){if(null!=a&&a!=this.tg){var b=a&65280,c=bl[b];c||b&4096&&(c=bl[4096]);var b=a&255,d=bl[b];d||b&16&&(d=bl[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[1]=d;this.tg=a}};
function dl(a,b){var c=a.ab[b];if(null!=c&&5<=a.Ra){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ra==hk&&(e=32);break;case 10:5==a.Ra&&(d=32);break;case 16:d=4;a.Ra==hk&&(e=128);break;case 18:d=2;a.Ra==hk&&(e=64);break;case 21:d=8;a.Ra==hk&&(f=32);break;case 24:d=16,a.Ra==hk&&(f=64)}d&&(c|=a.ab[7]&d?256:0,c|=a.ab[7]&e?512:0,c|=a.ab[9]&f?512:0)}return c}var Yk=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Yk[hk]=["VGA",980,753664,16384,262144,7];var Kk=0;
l=Y.prototype;
l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;c=(c=Ik[this.ca])&&c[0];3!==c&&(Sb(b,this,el),Ub(b,this,fl));1!==c&&(Sb(b,this,gl),Ub(b,this,hl));5<=this.Ra&&(Sb(b,this,il),Ub(b,this,jl));this.Ra==hk&&(Sb(b,this,kl),Ub(b,this,ll));if((this.C=ob(a,"Keyboard"))&&this.Y){for(var e in this.la)0<e.indexOf("lock")&&this.C.zb("led",e,this.la[e]);this.C.zb(this.ce?"textarea":"canvas","kbd",this.G)}this.Bb=9;(this.S=ob(a,"ChipSet"))&&this.od&&5==this.Ra&&(this.Bb=Di(this.od,this.Bb));"mouse"==this.pd?
@ -475,22 +475,22 @@ function Mk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e
function vl(a,b){if(1==b)return a.oa[0]=Rk[0],a.oa[1]=Rk[7],a.oa;if(2==b){var c=a.D.lf;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Rk[c&15];c=c&32?Tk:Sk;for(d=0;d<c.length;d++)a.oa[d+1]=Rk[c[d]];return a.oa}if(a.R===a.Cb)return Rk;a.La&&b&&!a.oa[16]&&(a.La=!1);if(!a.La){var c=a.B,d=c.Be,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Uk;for(f=0;16>f;f++)g=e[f]&63,m?(g|=
(c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function gk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d}
function rl(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=vl(a);null!=a.Xa[0]&&wl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(wl(a,1,a.Xa[1],d,e,14,a.Ab,Pk,Qk)&&(c=!0),a.Ja&&wl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function wl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(xl(a,b,c,d,e,f,g,h,k)&&(m=!0),a.ae&&xl(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function xl(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],t=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,de:Array(t),ci:h.slice(0,t),Je:k,fg:Array(t)});for(k=0;k<t;k++){var z=h[k],E=x.de[k]?x.ci[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,qd=g,cn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),zb=void 0,Oc=void 0,$b=void 0,ve=8>va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b=
0;$b<va;$b++)for(var dn=m.Je&&E&1&&$b>=va-2,en=qd[$b<ve?W+zb*ve+$b:da+zb*ve+$b-ve],Hf=0;Hf<=J;Hf++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=($b<<J)+Hf,wj=dn||en&128>>(8<=Oc&&192<=zb&&223>=zb?7:Oc)?z:cn;yl(Gf,uj,vj,wj);J&&yl(Gf,uj+1,vj,wj)}tj.putImageData(Gf,(zb&15)*m.tc,(zb>>4)*m.uc)}m.de[E]="#"+fa(z[0],2)+fa(z[1],2)+fa(z[2],2);m.ci[E]=z;m.fg[E]=ue;m=!0}}a.xa[b]=x;return m}function zl(a){0<a.za||0<=a.ha?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function xl(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],t=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,de:Array(t),ci:h.slice(0,t),Je:k,fg:Array(t)});for(k=0;k<t;k++){var z=h[k],E=x.de[k]?x.ci[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,rd=g,cn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),zb=void 0,Pc=void 0,$b=void 0,ve=8>va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b=
0;$b<va;$b++)for(var dn=m.Je&&E&1&&$b>=va-2,en=rd[$b<ve?W+zb*ve+$b:da+zb*ve+$b-ve],Hf=0;Hf<=J;Hf++)for(Pc=0;Pc<ua;Pc++){var uj=Pc<<J,vj=($b<<J)+Hf,wj=dn||en&128>>(8<=Pc&&192<=zb&&223>=zb?7:Pc)?z:cn;yl(Gf,uj,vj,wj);J&&yl(Gf,uj+1,vj,wj)}tj.putImageData(Gf,(zb&15)*m.tc,(zb>>4)*m.uc)}m.de[E]="#"+fa(z[0],2)+fa(z[1],2)+fa(z[2],2);m.ci[E]=z;m.fg[E]=ue;m=!0}}a.xa[b]=x;return m}function zl(a){0<a.za||0<=a.ha?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function ul(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Al(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ha!=c&&(Al(a),a.ha=c);d=d-b+1;if(a.rd!=b||a.Gc!=d)a.rd=b,a.Gc=d;a.Da=e+1;zl(a)}}}
function Al(a){if(0<=a.ha){if(void 0!==a.ba){var b=a.ba[a.ha];if(b&131072){var b=b&-131073,c=a.ha%a.H,d=a.ha/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&Bl(a,c,d,b,a.Ga),Bl(a,c,d,b));a.ba[a.ha]=b}}a.ha=-1}}
function Cl(a){var b,c=a.D;a.Xc=!1;var d=c.Gd[5];if(null!=d){b=1024;var e=0,f=c.Gd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ra==hk&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.De[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Xc=!0));b|=e}return b}
function Dl(a,b){var c=a.D;return c&&null!=b&&b!=c.tg?(c.Zf(b),a.ia.Zf(c.cb,c.Fb,c.qg(),!0),!0):!1}
function tl(a,b){var c,d=a.va,e=a.D;if(e)if(1==e.Ra)d=7;else if(5<=e.Ra){var d=null,f=e.Vc>>2,g=32768<f?32768:f,h=e.Gd[6];if(null!=h){switch(h&12){case 0:e.cb=655360;e.Fb=f;d=255;break;case 4:e.cb=655360;e.Fb=f;d=3==a.ma?15:16;break;case 8:e.cb=720896;e.Fb=g;d=7;break;case 12:e.cb=753664,e.Fb=g,d=3==a.ma?2:3}c=80==(e.Gd[5]&80);!c||e.cb==a.cb&&e.Fb==a.Fb||(b=!0);var f=dl(e,6),g=e.ab[9],k=e.ab[23],m=e.De[1]&8;255!=d&&(h&1?655360==e.cb||c||k&1?e.Gd[5]&64?d=g&31?143>=e.ab[18]?19:20:21:g&128||350>f?d=
m?13:14:480<=f&&(d=3==a.ma?17:18):d=m?7-d:6:d-=m?2:0);c=Cl(a)}}else e.Lc&8&&(e.Lc&2?(d=e.Lc&16?6:5,e.Lc&4||--d):(d=e.Lc&1?3:1,e.Lc&4&&--d));else a.va=null,null==d&&(d=a.ka);if(!sl(a,d,b))return!1;Dl(a,c);return!0}
function sl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.R);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){Al(a);if(a.cb){if(!Kb(a.ia,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!Db(a.ia,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Ob;a.L=a.wc;a.Ta=a.H;a.Hb=Jk[7][2];b=0;if(c=Jk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>dl(a.B,18)?43:50:a.I=a.Ra);a.nd=a.H*a.L|0;a.md=a.nd/a.Hb|
function sl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.R);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){Al(a);if(a.cb){if(!Kb(a.ia,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ia,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Ob;a.L=a.wc;a.Ta=a.H;a.Hb=Jk[7][2];b=0;if(c=Jk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>dl(a.B,18)?43:50:a.I=a.Ra);a.nd=a.H*a.L|0;a.md=a.nd/a.Hb|
0;a.fb=a.md;a.fc=0;void 0!==b&&(a.fb=(a.fb<<1)+b|0,a.fc=a.fb+b>>1);if(a.xa.length){a.ra=a.da/a.H|0;a.ua=a.pa/a.L|0;if(a.I){b=a.xa[a.I];if(!b)break a;c=a.xa[a.I<<1];a.bd&&80==a.H?c&&a.ra>=3*c.tc>>2&&(a.I<<=1,b=c):(c&&a.ra>=c.tc&&(a.I<<=1,b=c),a.bd||(a.ra=b.tc,a.ua=b.uc));a.pb=a.qb=0;b&&(a.pb=a.H*b.tc,a.qb=a.L*b.uc)}else a.ra=a.ua=1,a.pb=a.H,a.qb=a.L;a.Oa=a.P.createImageData(a.pb,a.qb);a.Fa=document.createElement("canvas");a.Fa.width=a.pb;a.Fa.height=a.qb;a.Ga=a.Fa.getContext("2d");a.yc=a.zc=0;a.ic=
a.da;a.mc=a.pa;b=a.da-a.H*a.ra;c=a.pa-a.L*a.ua;0<b&&(a.yc=b>>1,a.ic-=b);0<c&&(a.zc=c>>1,a.mc-=c);if(b||c)a.P.fillStyle=a.Y.style.backgroundColor,a.P.fillRect(0,0,a.da,a.pa)}}El(a,!0);nl(a)}return!0}function yl(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Fl(a){a.za=-1;a.qa=!1;var b=a.md;if(void 0===a.ba||a.ba.length!=b)a.ba=Array(b)}function El(a,b){b||(a.La=!1);Fl(a)}
function Bl(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.xa[a.I];h.Je&&(d=h.Je[d]);var k=g>>4&15;h.Je&&(k=h.Je[k]);e?(b*=h.tc,c*=h.uc,e.fillStyle=h.de[k],e.fillRect(b,c,h.tc,h.uc)):(b=b*a.ra+a.yc,c=c*a.ua+a.zc,a.P.fillStyle=h.de[k],a.P.fillRect(b,c,a.ra,a.ua));g&256&&(k=(f&15)*h.tc,f=(f>>4)*h.uc,e?e.drawImage(h.fg[d],k,f,h.tc,h.uc,b,c,h.tc,h.uc):a.P.drawImage(h.fg[d],k,f,h.tc,h.uc,b,c,a.ra,a.ua));g&512&&(f=a.rd,g=a.Gc,e?(a.Da&&a.Da!==h.uc&&(f=f*h.uc/a.Da|0,g=g*h.uc/a.Da|0),e.fillStyle=h.de[d],e.fillRect(b,
c+f,h.tc,g)):(a.Da&&a.Da!==a.ua&&(f=f*a.ua/a.Da|0,g=g*a.ua/a.Da|0),a.P.fillStyle=h.de[d],a.P.fillRect(b,c+f,a.ra,g)))}
function nl(a,b){if(a.ea.Vb){var c=!1,d=a.D;d&&(d!==a.B?d.Lc&8&&(c=!0):d.Wd&32&&(c=!0));if(c||b){if(b)Fl(a);else if(void 0===a.ba)return;var e=!1;!(b||++a.Id&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.nd,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(Gl(a,d)&8||d.ye&&d.ye<d.lh){var m=(d.ab[12]<<8)+d.ab[13]|0;d.cd!==m&&(d.cd=m,El(a));d.ye=0}m=d.cd;a.I&&(m<<=1);var c=c+m,p=a.fb;5<=a.Ra&&d.ab[19]&&d.ab[19]<<1!=d.ab[1]+1&&(a.Ta=d.ab[19]<<(a.I?1:d.ab[20]&64?3:4),p=(a.Ta*(a.L-1)+a.H)/a.Hb|0,7>=a.va&&
(p<<=1));c+p>k&&(p=k-c,0>p&&(p=0));k=c+p;if(m=!b&&a.qa){for(var m=a.ia,x=!0,t=c>>>m.da;0<p&&t<m.R.length;)m.R[t].Ha&&(m.R[t].Ha=x=!1,m.R[t].pi=!0),p-=m.xb,t++;m=x}if(m){if(!e)return;if(!a.za){f=a.ha-d.cd;if(0>f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;p=a.D.Lc&32;5<=a.Ra&&(p=a.D.Kc[16]&8);m=a.ha-a.D.cd;p&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)p=Qb(a.ia,c),p|=65536,p&e&&(a.za++,p&=h),d==m&&(p|=a.Ea&1?131072:0),a.qa&&p===a.ba[d]||(Bl(a,d%a.H,d/a.H|0,p,a.Ga),
a.ba[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.P.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);zl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=vl(a,h),x=p=0,t=a.H,E=0,J=a.L,W=0;k<g;){z=Qb(a.ia,k);if(a.qa&&z===a.ba[d])p+=f;else{a.ba[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<t&&(t=p);for(var va=0;va<f;va++){var qd=(z&(da>>=h))>>(ua-=h);yl(a.Oa,p++,x,m[qd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
a.ba[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.P.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);zl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=vl(a,h),x=p=0,t=a.H,E=0,J=a.L,W=0;k<g;){z=Qb(a.ia,k);if(a.qa&&z===a.ba[d])p+=f;else{a.ba[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<t&&(t=p);for(var va=0;va<f;va++){var rd=(z&(da>>=h))>>(ua-=h);yl(a.Oa,p++,x,m[rd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
!0;t<a.H&&(a.Ga.putImageData(a.Oa,0,0,t,J,E-t,W-J),a.P.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else if(a.Xc){g=h;f=a.za=0;e=vl(a,8);h=a.D.sd;p=m=0;x=a.H;t=0;E=a.L;J=0;W=a.D.De[4]&8?4:1;z=a.D.Kc[19]&15;for(da=a.Ta>a.H?a.Ta-a.H-z>>3:0;c<k;){d=h[c-g];va=4;z||(a.qa&&d===a.ba[f]?(m+=va,va=0):a.ba[f]=d,f++);if(va){m<x&&(x=m);for(ua=0;ua<va;ua++)yl(a.Oa,m++,p,e[d&255]),d>>=8;m>t&&(t=m);p<E&&(E=p);p>=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);x<a.H&&(a.Ga.putImageData(a.Oa,0,0,
x,E,t-x,J-E),a.P.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else{g=h;d=a.za=0;f=vl(a);e=a.D.sd;m=h=0;p=a.H;x=0;t=a.L;E=0;J=a.D.Kc[19]&15;for(W=a.Ta>a.H?a.Ta-a.H-J>>3:0;c<k;){z=c++-g;z=e[z];ua=8;J?h?(da=a.H-h,ua>da&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.ba[d]?(h+=ua,ua=0):a.ba[d]=z,d++);if(ua){h<p&&(p=h);for(da=0;da<ua;da++)va=Wk[z&2155905152]||0,yl(a.Oa,h++,m,f[va]),z<<=1;h>x&&(x=h);m<t&&(t=m);m>=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);p<a.H&&(a.Ga.putImageData(a.Oa,0,
0,p,t,x-p,E-t),a.P.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}}}}function Gl(a,b){var c=0,d=wc(a.A)-b.Bg;0>d&&(b.Bg=d,d=-d|0);d%b.xg>b.Gl&&(c|=1);d%b.Ag>b.Il&&(c|=9);b.lh=d/b.Ag|0;return c}l.el=function(){var a=this.Z,b;a.cc&&(b=a.sc);return b};l.wm=function(a,b){var c=this.Z;c.Vf=c.sc;c.sc=b&31};l.dl=function(){return Hl(this.Z)};l.vm=function(a,b){Il(this,this.Z,b)};l.fl=function(){return this.Z.Lc};l.xm=function(a,b){this.Z.Lc=b;tl(this,!1)};l.gl=function(){return Jl(this,this.Z)};
@ -528,7 +528,7 @@ function cm(a,b,c){Ma.call(this,"Disk",{id:a.Fe+".disk"+fa(++dm,4)},cm);this.con
l.Tb=function(a,b){if(this.D){var c,d=0;if(this.R&&!wa("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=fm(this,!1);)if(d=c[0]){this.controller.Ba('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.D&&(c="action=close&volume="+this.H,c+="&machine="+this.controller.ue(),c+="&user="+this.controller.yd(),sa(ta()+"/api/v1/disk?"+c,null,!0),this.D=!1);!d&&a&&this.controller.Ba(this.B+" saved")}return!0};
function em(a,b,c,d,e,f){a.mode=b;a.ib=c;a.jb=d;a.eb=e;a.nb=f;a.A=[];if("preload"!=a.mode){b=Array(a.ib);for(c=0;c<b.length;c++){d=Array(a.jb);for(e=0;e<d.length;e++){f=Array(a.eb);for(var g=1;g<=f.length;g++)f[g-1]=gm(null,c,e,g,a.nb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.sh=ga(b);var g=this;this.K=d;this.ia=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.ib=d[0];g.jb=d[1];g.eb=d[2];g.nb=512;b=g.nb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.jb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.eb),W=0;W<J.length;W++){for(var da=gm(null,c,E,W+1,g.nb,0),ua=da.data,va=0;va<
b;va++,e+=4)var qd=ua[va]=a.getInt32(e,!0),d=d+qd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ha(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=hm(this,b),this.Ff=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
b;va++,e+=4)var rd=ua[va]=a.getInt32(e,!0),d=d+rd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ha(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=hm(this,b),this.Ff=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
ia(b,"/")&&(c="dir"),f=ta()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.qe?"":d)+"&format=json"));return!!sa(f,null,!0,function(a,b,c){im(g,a,b,c)})};
function im(a,b,c,d){var e=null;a.te=!1;var f=0>d&&a.ba&&!a.ba.ea.Vb;if(a.Ff)d?a.controller.Ba('Unable to connect to disk "'+a.H+'" (error '+d+": "+c+")",f):(a.D=!0,e=a);else if(d)a.controller.Ba('Unable to load disk "'+a.B+'" (error '+d+": "+b+")",f);else{Wa(a.controller.Fe,b,c);try{if(0<ga(a.sh,!0).toLowerCase().indexOf("-readonly"))a.te=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.te=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)r(h[0]);else{a.ib=h.length;a.jb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.nb=k&&k.length||512;for(d=c=0;d<a.ib;d++)for(f=0;f<a.jb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,p=k.pattern;void 0===p&&(p=k.pattern=0);var x=k.data;if(void 0===x){var t=k.bytes;if(void 0!==t&&t.length){for(var z=
@ -620,7 +620,7 @@ function zn(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Bn(a,"1.30.0");d.d
function ob(a,b,c){a=Xa(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function xc(a,b){if(a.I.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.I[0];e.G&&e.G.focus();b&&window&&window.scrollTo(c,d)}}l.Zd=function(a){this.A&&this.A.Zd(a);this.D&&this.D.Zd(a)};
function Ac(a,b){for(var c=0;c<a.I.length;c++)nl(a.I[c],b);if(a.D&&(c=a.D,c.ua)){sb(c,18,c.S,c.ra);if(c.Ga){var d=c.ia,e=c.B,f,g;null==f&&(f=0);null==g&&(g=d.L-f|0);null==e&&(e={lg:0,fd:0,eg:[]});var h=f>>>d.da;f=f+g-1>>>d.da;e.lg=0;for(e.fd=0;h<=f;)g=d.R[h],e.lg+=g.size,g.size&&(e.eg.push(qa(rb,h,0,0,g.type)),e.fd++),h++;c.B=e;c.ma=c.B.fd*c.ia.xb/691200;d=0;c.B.hi=0;c.B.Ke||(c.B.Ke=[]);var e=-1,h=0,k=-1;for(f=0;f<c.B.fd;f++){var m=c.B.eg[f];g=ra(rb.type,m);m=ra(rb.Bj,m);if(g!=e||m!=k+1)(k=f-h)&&
(d+=ub(c,h,k,e)),e=g,h=f;k=m}d+=ub(c,h,f-h,e);e=c.B.ek!=d;c.B.ek=d;if(e){e=new mb(0,0,c.S.width,c.S.height);c.B.ee=[];h=c.B.fd;for(d=0;d<c.B.hi;d++)f=c.B.Ke[d].fd,c.B.ee.push(nb(e,f,h,!d)),h-=f;for(d=0;d<c.B.ee.length;d++)e=c.B.Ke[d],h=f=c.B.ee[d],g=c.ra,(k=ac[e.type])||(k=new lb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.Fc,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.Fc,h.A),h=c,g=f,h.P=h.ha,h.L=h.ka,f=g.x+(g.Fc>>1),k=g.y+(g.A>>1),m=g.A,g.Fc<g.A&&(m=g.Fc,h.da=!0,h.G.save(),
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.P=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Gb[e.type]+" ("+(e.fd*c.ia.xb/1024|0)+"Kb)",h.G.font=h.P,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,tb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else tb(c,"This space intentionally left blank");c.context.drawImage(c.S,0,0,c.S.width,c.S.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.P=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Cb[e.type]+" ("+(e.fd*c.ia.xb/1024|0)+"Kb)",h.G.font=h.P,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,tb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else tb(c,"This space intentionally left blank");c.context.drawImage(c.S,0,0,c.S.width,c.S.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
Ia(function(){for(var a=cb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=$a(c),c=cb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=$a(f),g=new ln(g,d,!0);bb(g,f);g.ba&&qn(g,g.hf)}});Da.show.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=$a(a[b]);(c=Za("Computer",c.id))&&c.ka&&!c.ea.Vb&&c.hf(-1)}});
Da.exit.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=$a(a[b]);(c=Za("Computer",c.id))&&c.ea.Vb&&yn(c,!(!c.B||c.S),!0)}});function ee(a,b,c){this.id=a.id;this.key=Bn(a,b,c);this.Ia=a.Ia;vn(this,a.Fj)}function Bn(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}
ee.prototype={constructor:ee,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:ya()&&(a=za(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){vn(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)==

View file

@ -59,11 +59,6 @@ if (NODE) {
* addMemory(). If the component needs something more than simple read/write storage,
* it must provide a custom controller.
*
* All port (I/O) operations are defined by external handlers; they register with us,
* and we manage those registrations and provide support for I/O breakpoints, but the
* only default I/O behavior we provide is ignoring writes to any unregistered output
* ports and returning 0xff from any unregistered input ports.
*
* @constructor
* @extends Component
* @param {Object} parmsBus
@ -80,35 +75,16 @@ function Bus(parmsBus, cpu, dbg)
this.nBusWidth = parmsBus['busWidth'] || 16;
/*
* Compute all Bus memory block parameters, based on the width of the bus.
*
* Regarding blockTotal, we want to avoid using block overflow expressions like:
*
* iBlock < this.nBlockTotal? iBlock : 0
*
* As long as we know that blockTotal is a power of two (eg, 256 or 0x100, in the case of
* nBusWidth == 20 and blockSize == 4096), we can define blockMask as (blockTotal - 1) and
* rewrite the previous expression as:
*
* iBlock & this.nBlockMask
*
* Bus Property Old hard-coded values (when nBusWidth was always 20)
* ------------ ----------------------------------------------------
* this.nBusLimit 0xfffff
* this.nBusMask [same as busLimit]
* this.nBlockSize 4096
* this.nBlockLen (this.nBlockSize >> 2)
* this.nBlockShift 12
* this.nBlockLimit 0xfff
* this.nBlockTotal ((this.nBusLimit + this.nBlockSize) / this.nBlockSize) | 0
* this.nBlockMask (this.nBlockTotal - 1) [ie, 0xff]
*
* Note that we choose a nBlockShift value (and thus a physical memory block size) based on "buswidth":
* Compute all Bus6502 memory block parameters, based on the width of the bus. The entire
* address space is divided into blocks, using a block size that is (hopefully) appropriate to
* the bus width. The following table summarizes our simplistic calculations.
*
* Bus Width Block Shift Block Size
* --------- ----------- ----------
* 16 bits (64Kb address space): 10 1Kb (64 maximum blocks)
* 18 bits (256Kb address space): 11 2Kb (128 maximum blocks)
* 20 bits (1Mb address space): 12 4Kb (256 maximum blocks)
* 22 bits (4Mb address space): 13 8Kb (512 maximum blocks)
* 24 bits (16Mb address space): 14 16Kb (1K maximum blocks)
* 32 bits (4Gb address space); 15 32Kb (128K maximum blocks)
*
@ -119,7 +95,9 @@ function Bus(parmsBus, cpu, dbg)
*/
this.addrTotal = Math.pow(2, this.nBusWidth);
this.nBusLimit = this.nBusMask = (this.addrTotal - 1) | 0;
this.nBlockShift = (this.nBusWidth <= 16)? 10 : ((this.nBusWidth <= 20)? 12 : (this.nBusWidth <= 24? 14 : 15));
this.nBlockShift = (this.nBusWidth >> 1) + 2;
if (this.nBlockShift < 10) this.nBlockShift = 10;
if (this.nBlockShift > 15) this.nBlockShift = 15;
this.nBlockSize = 1 << this.nBlockShift;
this.nBlockLen = this.nBlockSize >> 2;
this.nBlockLimit = this.nBlockSize - 1;
@ -127,39 +105,6 @@ function Bus(parmsBus, cpu, dbg)
this.nBlockMask = this.nBlockTotal - 1;
this.assert(this.nBlockMask <= Bus.BlockInfo.num.mask);
/*
* Lists of I/O notification functions: aPortInputNotify and aPortOutputNotify are arrays, indexed by
* port, of sub-arrays which contain:
*
* [0]: registered function to call for every I/O access
*
* The registered function is called with the port address, and if the access was triggered by the CPU,
* the instruction pointer (IP) at the point of access.
*
* WARNING: Unlike the (old) read and write memory notification functions, these support only one
* pair of input/output functions per port. A more sophisticated architecture could support a list
* of chained functions across multiple components, but I doubt that will be necessary here.
*
* UPDATE: The Debugger now piggy-backs on these arrays to indicate ports for which it wants notification
* of I/O. In those cases, the registered component/function elements may or may not be set, but the
* following additional element will be set:
*
* [1]: true to break on I/O, false to ignore I/O
*
* The false case is important if fPortInputBreakAll and/or fPortOutputBreakAll is set, because it allows the
* Debugger to selectively ignore specific ports.
*/
this.aPortInputNotify = [];
this.aPortOutputNotify = [];
this.fPortInputBreakAll = this.fPortOutputBreakAll = false;
/*
* By default, all I/O ports are 1 byte wide; ports that are wider must add themselves to one or both of
* these lists, using addPortInputWidth() and/or addPortOutputWidth().
*/
this.aPortInputWidth = [];
this.aPortOutputWidth = [];
/*
* Allocate empty Memory blocks to span the entire physical address space.
*/
@ -177,38 +122,6 @@ Bus.ERROR = {
REM_MEM_BADRANGE: 5
};
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
Bus.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfo object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfo;
/**
* initMemory()
*
@ -365,6 +278,42 @@ Bus.prototype.cleanMemory = function(addr, size)
return fClean;
};
/*
* Data types used by scanMemory()
*/
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
Bus.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfo object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfo;
/**
* scanMemory(info, addr, size)
*
@ -741,309 +690,6 @@ Bus.prototype.restoreMemory = function(a)
return true;
};
/**
* addPortInputBreak(port)
*
* @this {Bus}
* @param {number} [port]
* @return {boolean} true if break on port input enabled, false if disabled
*/
Bus.prototype.addPortInputBreak = function(port)
{
if (port === undefined) {
this.fPortInputBreakAll = !this.fPortInputBreakAll;
return this.fPortInputBreakAll;
}
if (this.aPortInputNotify[port] === undefined) {
this.aPortInputNotify[port] = [null, false];
}
this.aPortInputNotify[port][1] = !this.aPortInputNotify[port][1];
return this.aPortInputNotify[port][1];
};
/**
* addPortInputNotify(start, end, fn)
*
* Add a port input-notification handler to the list of such handlers.
*
* @this {Bus}
* @param {number} start port address
* @param {number} end port address
* @param {function(number,number)} fn is called with the port and IP values at the time of the input
*/
Bus.prototype.addPortInputNotify = function(start, end, fn)
{
if (fn !== undefined) {
for (var port = start; port <= end; port++) {
if (this.aPortInputNotify[port] !== undefined) {
Component.warning("Input port " + str.toHexWord(port) + " already registered");
continue;
}
this.aPortInputNotify[port] = [fn, false];
if (MAXDEBUG) this.log("addPortInputNotify(" + str.toHexWord(port) + ")");
}
}
};
/**
* addPortInputTable(component, table, offset)
*
* Add port input-notification handlers from the specified table (a batch version of addPortInputNotify)
*
* @this {Bus}
* @param {Component} component
* @param {Object} table
* @param {number} [offset] is an optional port offset
*/
Bus.prototype.addPortInputTable = function(component, table, offset)
{
if (offset === undefined) offset = 0;
for (var port in table) {
this.addPortInputNotify(+port + offset, +port + offset, table[port].bind(component));
}
};
/**
* addPortInputWidth(port, size)
*
* By default, all input ports are 1 byte wide; ports that are wider must call this function.
*
* @this {Bus}
* @param {number} port
* @param {number} size (1, 2 or 4)
*/
Bus.prototype.addPortInputWidth = function(port, size)
{
this.aPortInputWidth[port] = size;
};
/**
* checkPortInputNotify(port, size, addrIP)
*
* @this {Bus}
* @param {number} port
* @param {number} size (1, 2 or 4)
* @param {number} [addrIP] is the IP value at the time of the input
* @return {number} simulated port data
*
* NOTE: It seems that parts of the ROM BIOS (like the RS-232 probes around F000:E5D7 in the 5150 BIOS)
* assume that ports for non-existent hardware return 0xff rather than 0x00, hence my new default (0xff) below.
*/
Bus.prototype.checkPortInputNotify = function(port, size, addrIP)
{
var data = 0, shift = 0;
while (size > 0) {
var aNotify = this.aPortInputNotify[port];
var sizePort = this.aPortInputWidth[port] || 1;
var maskPort = (sizePort == 1? 0xff : (sizePort == 2? 0xffff : -1));
var dataPort = maskPort;
/*
* TODO: We need to decide what to do about 8-bit I/O to a 16-bit port (ditto for 16-bit I/O
* to a 32-bit port). We probably should pass the size through to the aNotify[0] handler,
* and let it decide what to do, but I don't feel like changing all the I/O handlers right now.
* The good news, at least, is that the 8-bit handlers would not have to do anything special.
* This assert will warn us if this is a pressing need.
*/
this.assert(size >= sizePort);
if (aNotify !== undefined) {
if (aNotify[0]) {
dataPort = aNotify[0](port, addrIP);
if (dataPort === undefined) {
dataPort = maskPort;
} else {
dataPort &= maskPort;
}
}
if (DEBUGGER && this.dbg && this.fPortInputBreakAll != aNotify[1]) {
this.dbg.checkPortInput(port, size, dataPort);
}
}
else {
if (DEBUGGER && this.dbg) {
this.dbg.messageIO(this, port, null, addrIP);
if (this.fPortInputBreakAll) this.dbg.checkPortInput(port, size, dataPort);
}
}
data |= dataPort << shift;
shift += (sizePort << 3);
port += sizePort;
size -= sizePort;
}
this.assert(!size);
return data;
};
/**
* removePortInputNotify(start, end)
*
* Remove port input-notification handler(s) (to be ENABLED later if needed)
*
* @this {Bus}
* @param {number} start address
* @param {number} end address
*
Bus.prototype.removePortInputNotify = function(start, end)
{
for (var port = start; port < end; port++) {
if (this.aPortInputNotify[port]) {
delete this.aPortInputNotify[port];
}
}
};
*/
/**
* addPortOutputBreak(port)
*
* @this {Bus}
* @param {number} [port]
* @return {boolean} true if break on port output enabled, false if disabled
*/
Bus.prototype.addPortOutputBreak = function(port)
{
if (port === undefined) {
this.fPortOutputBreakAll = !this.fPortOutputBreakAll;
return this.fPortOutputBreakAll;
}
if (this.aPortOutputNotify[port] === undefined) {
this.aPortOutputNotify[port] = [null, false];
}
this.aPortOutputNotify[port][1] = !this.aPortOutputNotify[port][1];
return this.aPortOutputNotify[port][1];
};
/**
* addPortOutputNotify(start, end, fn)
*
* Add a port output-notification handler to the list of such handlers.
*
* @this {Bus}
* @param {number} start port address
* @param {number} end port address
* @param {function(number,number)} fn is called with the port and IP values at the time of the output
*/
Bus.prototype.addPortOutputNotify = function(start, end, fn)
{
if (fn !== undefined) {
for (var port = start; port <= end; port++) {
if (this.aPortOutputNotify[port] !== undefined) {
Component.warning("Output port " + str.toHexWord(port) + " already registered");
continue;
}
this.aPortOutputNotify[port] = [fn, false];
if (MAXDEBUG) this.log("addPortOutputNotify(" + str.toHexWord(port) + ")");
}
}
};
/**
* addPortOutputTable(component, table, offset)
*
* Add port output-notification handlers from the specified table (a batch version of addPortOutputNotify)
*
* @this {Bus}
* @param {Component} component
* @param {Object} table
* @param {number} [offset] is an optional port offset
*/
Bus.prototype.addPortOutputTable = function(component, table, offset)
{
if (offset === undefined) offset = 0;
for (var port in table) {
this.addPortOutputNotify(+port + offset, +port + offset, table[port].bind(component));
}
};
/**
* addPortOutputWidth(port, size)
*
* By default, all output ports are 1 byte wide; ports that are wider must call this function.
*
* @this {Bus}
* @param {number} port
* @param {number} size (1, 2 or 4)
*/
Bus.prototype.addPortOutputWidth = function(port, size)
{
this.aPortOutputWidth[port] = size;
};
/**
* checkPortOutputNotify(port, size, data, addrIP)
*
* @this {Bus}
* @param {number} port
* @param {number} size
* @param {number} data
* @param {number} [addrIP] is the IP value at the time of the output
*/
Bus.prototype.checkPortOutputNotify = function(port, size, data, addrIP)
{
var shift = 0;
while (size > 0) {
var aNotify = this.aPortOutputNotify[port];
var sizePort = this.aPortOutputWidth[port] || 1;
var maskPort = (sizePort == 1? 0xff : (sizePort == 2? 0xffff : -1));
var dataPort = (data >>>= shift) & maskPort;
/*
* TODO: We need to decide what to do about 8-bit I/O to a 16-bit port (ditto for 16-bit I/O
* to a 32-bit port). We probably should pass the size through to the aNotify[0] handler,
* and let it decide what to do, but I don't feel like changing all the I/O handlers right now.
* The good news, at least, is that the 8-bit handlers would not have to do anything special.
* This assert will warn us if this is a pressing need.
*/
this.assert(size >= sizePort);
if (aNotify !== undefined) {
if (aNotify[0]) {
aNotify[0](port, dataPort, addrIP);
}
if (DEBUGGER && this.dbg && this.fPortOutputBreakAll != aNotify[1]) {
this.dbg.checkPortOutput(port, size, dataPort);
}
}
else {
if (DEBUGGER && this.dbg) {
this.dbg.messageIO(this, port, dataPort, addrIP);
if (this.fPortOutputBreakAll) this.dbg.checkPortOutput(port, size, dataPort);
}
}
shift += (sizePort << 3);
port += sizePort;
size -= sizePort;
}
this.assert(!size);
};
/**
* removePortOutputNotify(start, end)
*
* Remove port output-notification handler(s) (to be ENABLED later if needed)
*
* @this {Bus}
* @param {number} start address
* @param {number} end address
*
Bus.prototype.removePortOutputNotify = function(start, end)
{
for (var port = start; port < end; port++) {
if (this.aPortOutputNotify[port]) {
delete this.aPortOutputNotify[port];
}
}
};
*/
/**
* reportError(op, addr, size, fQuiet)
*

View file

@ -807,18 +807,45 @@ Memory.prototype = {
/*
* This is the effective definition of afnNone, but we need not fully define it, because setAccess()
* uses these defaults when any of the 6 handlers (ie, 3 read handlers and 3 write handlers) are undefined.
* uses these defaults when any of the 4 handlers (ie, 2 byte handlers and 2 short handlers) are undefined.
*
Memory.afnNone = [Memory.prototype.readNone, Memory.prototype.readShortDefault, Memory.prototype.writeNone, Memory.prototype.writeShortDefault];
Memory.afnNone = [
Memory.prototype.readNone,
Memory.prototype.writeNone,
Memory.prototype.readShortDefault,
Memory.prototype.writeShortDefault
];
*/
Memory.afnNone = [];
Memory.afnNone = [];
Memory.afnMemory = [Memory.prototype.readByteMemory, Memory.prototype.readShortMemory, Memory.prototype.writeByteMemory, Memory.prototype.writeShortMemory];
Memory.afnChecked = [Memory.prototype.readByteChecked, Memory.prototype.readShortChecked, Memory.prototype.writeByteChecked, Memory.prototype.writeShortChecked];
Memory.afnMemory = [
Memory.prototype.readByteMemory,
Memory.prototype.writeByteMemory,
Memory.prototype.readShortMemory,
Memory.prototype.writeShortMemory
];
Memory.afnChecked = [
Memory.prototype.readByteChecked,
Memory.prototype.writeByteChecked,
Memory.prototype.readShortChecked,
Memory.prototype.writeShortChecked
];
if (TYPEDARRAYS) {
Memory.afnArrayBE = [Memory.prototype.readByteBE, Memory.prototype.readShortBE, Memory.prototype.writeByteBE, Memory.prototype.writeShortBE];
Memory.afnArrayLE = [Memory.prototype.readByteLE, Memory.prototype.readShortLE, Memory.prototype.writeByteLE, Memory.prototype.writeShortLE];
Memory.afnArrayBE = [
Memory.prototype.readByteBE,
Memory.prototype.writeByteBE,
Memory.prototype.readShortBE,
Memory.prototype.writeShortBE
];
Memory.afnArrayLE = [
Memory.prototype.readByteLE,
Memory.prototype.writeByteLE,
Memory.prototype.readShortLE,
Memory.prototype.writeShortLE
];
}
if (NODE) module.exports = Memory;

View file

@ -76,35 +76,16 @@ function Bus8080(parmsBus, cpu, dbg)
this.nBusWidth = parmsBus['busWidth'] || 16;
/*
* Compute all Bus8080 memory block parameters, based on the width of the bus.
*
* Regarding blockTotal, we want to avoid using block overflow expressions like:
*
* iBlock < this.nBlockTotal? iBlock : 0
*
* As long as we know that blockTotal is a power of two (eg, 256 or 0x100, in the case of
* nBusWidth == 20 and blockSize == 4096), we can define blockMask as (blockTotal - 1) and
* rewrite the previous expression as:
*
* iBlock & this.nBlockMask
*
* Bus Property Old hard-coded values (when nBusWidth was always 20)
* ------------ ----------------------------------------------------
* this.nBusLimit 0xfffff
* this.nBusMask [same as busLimit]
* this.nBlockSize 4096
* this.nBlockLen (this.nBlockSize >> 2)
* this.nBlockShift 12
* this.nBlockLimit 0xfff
* this.nBlockTotal ((this.nBusLimit + this.nBlockSize) / this.nBlockSize) | 0
* this.nBlockMask (this.nBlockTotal - 1) [ie, 0xff]
*
* Note that we choose a nBlockShift value (and thus a physical memory block size) based on "buswidth":
* Compute all Bus8080 memory block parameters, based on the width of the bus. The entire
* address space is divided into blocks, using a block size that is (hopefully) appropriate to
* the bus width. The following table summarizes our simplistic calculations.
*
* Bus Width Block Shift Block Size
* --------- ----------- ----------
* 16 bits (64Kb address space): 10 1Kb (64 maximum blocks)
* 18 bits (256Kb address space): 11 2Kb (128 maximum blocks)
* 20 bits (1Mb address space): 12 4Kb (256 maximum blocks)
* 22 bits (4Mb address space): 13 8Kb (512 maximum blocks)
* 24 bits (16Mb address space): 14 16Kb (1K maximum blocks)
* 32 bits (4Gb address space); 15 32Kb (128K maximum blocks)
*
@ -115,7 +96,9 @@ function Bus8080(parmsBus, cpu, dbg)
*/
this.addrTotal = Math.pow(2, this.nBusWidth);
this.nBusLimit = this.nBusMask = (this.addrTotal - 1) | 0;
this.nBlockShift = (this.nBusWidth <= 16)? 10 : ((this.nBusWidth <= 20)? 12 : (this.nBusWidth <= 24? 14 : 15));
this.nBlockShift = (this.nBusWidth >> 1) + 2;
if (this.nBlockShift < 10) this.nBlockShift = 10;
if (this.nBlockShift > 15) this.nBlockShift = 15;
this.nBlockSize = 1 << this.nBlockShift;
this.nBlockLen = this.nBlockSize >> 2;
this.nBlockLimit = this.nBlockSize - 1;
@ -173,38 +156,6 @@ Bus8080.ERROR = {
REM_MEM_BADRANGE: 5
};
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
Bus8080.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfo8080 object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfo8080;
/**
* initMemory()
*
@ -361,6 +312,42 @@ Bus8080.prototype.cleanMemory = function(addr, size)
return fClean;
};
/*
* Data types used by scanMemory()
*/
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
Bus8080.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfo8080 object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfo8080;
/**
* scanMemory(info, addr, size)
*

View file

@ -384,11 +384,11 @@ Memory8080.prototype = {
setReadAccess: function(afn, fDirect) {
if (!fDirect || !this.cReadBreakpoints) {
this.readByte = afn[0] || this.readNone;
this.readShort = afn[1] || this.readShortDefault;
this.readShort = afn[2] || this.readShortDefault;
}
if (fDirect || fDirect === undefined) {
this.readByteDirect = afn[0] || this.readNone;
this.readShortDirect = afn[1] || this.readShortDefault;
this.readShortDirect = afn[2] || this.readShortDefault;
}
},
/**
@ -400,11 +400,11 @@ Memory8080.prototype = {
*/
setWriteAccess: function(afn, fDirect) {
if (!fDirect || !this.cWriteBreakpoints) {
this.writeByte = !this.fReadOnly && afn[2] || this.writeNone;
this.writeByte = !this.fReadOnly && afn[1] || this.writeNone;
this.writeShort = !this.fReadOnly && afn[3] || this.writeShortDefault;
}
if (fDirect || fDirect === undefined) {
this.writeByteDirect = afn[2] || this.writeNone;
this.writeByteDirect = afn[1] || this.writeNone;
this.writeShortDirect = afn[3] || this.writeShortDefault;
}
},
@ -807,18 +807,45 @@ Memory8080.prototype = {
/*
* This is the effective definition of afnNone, but we need not fully define it, because setAccess()
* uses these defaults when any of the 6 handlers (ie, 3 read handlers and 3 write handlers) are undefined.
* uses these defaults when any of the 4 handlers (ie, 2 byte handlers and 2 short handlers) are undefined.
*
Memory8080.afnNone = [Memory8080.prototype.readNone, Memory8080.prototype.readShortDefault, Memory8080.prototype.writeNone, Memory8080.prototype.writeShortDefault];
Memory8080.afnNone = [
Memory8080.prototype.readNone,
Memory8080.prototype.writeNone,
Memory8080.prototype.readShortDefault,
Memory8080.prototype.writeShortDefault
];
*/
Memory8080.afnNone = [];
Memory8080.afnNone = [];
Memory8080.afnMemory = [Memory8080.prototype.readByteMemory, Memory8080.prototype.readShortMemory, Memory8080.prototype.writeByteMemory, Memory8080.prototype.writeShortMemory];
Memory8080.afnChecked = [Memory8080.prototype.readByteChecked, Memory8080.prototype.readShortChecked, Memory8080.prototype.writeByteChecked, Memory8080.prototype.writeShortChecked];
Memory8080.afnMemory = [
Memory8080.prototype.readByteMemory,
Memory8080.prototype.writeByteMemory,
Memory8080.prototype.readShortMemory,
Memory8080.prototype.writeShortMemory
];
Memory8080.afnChecked = [
Memory8080.prototype.readByteChecked,
Memory8080.prototype.writeByteChecked,
Memory8080.prototype.readShortChecked,
Memory8080.prototype.writeShortChecked
];
if (TYPEDARRAYS) {
Memory8080.afnArrayBE = [Memory8080.prototype.readByteBE, Memory8080.prototype.readShortBE, Memory8080.prototype.writeByteBE, Memory8080.prototype.writeShortBE];
Memory8080.afnArrayLE = [Memory8080.prototype.readByteLE, Memory8080.prototype.readShortLE, Memory8080.prototype.writeByteLE, Memory8080.prototype.writeShortLE];
Memory8080.afnArrayBE = [
Memory8080.prototype.readByteBE,
Memory8080.prototype.writeByteBE,
Memory8080.prototype.readShortBE,
Memory8080.prototype.writeShortBE
];
Memory8080.afnArrayLE = [
Memory8080.prototype.readByteLE,
Memory8080.prototype.writeByteLE,
Memory8080.prototype.readShortLE,
Memory8080.prototype.writeShortLE
];
}
if (NODE) module.exports = Memory8080;

View file

@ -259,38 +259,6 @@ Bus.ERROR = {
REM_MEM_BADRANGE: 5
};
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
Bus.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfo object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfo;
/**
* initMemory()
*
@ -463,6 +431,42 @@ Bus.prototype.cleanMemory = function(addr, size)
return fClean;
};
/*
* Data types used by scanMemory()
*/
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
Bus.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfo object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfo;
/**
* scanMemory(info, addr, size)
*

View file

@ -417,7 +417,19 @@ Memory.prototype = {
/**
* setAccess(afn, fDirect)
*
* If no function table is specified, a default is selected based on the Memory type.
* The afn parameter should be a 6-entry function table containing two byte handlers, two
* short handlers, and two long handlers. See the static afnMemory table for an example.
*
* If no function table is specified, a default is selected based on the Memory type;
* similarly, any undefined entries in the table are filled with default handlers that fall
* back to the byte handlers, and if one or both byte handlers are undefined, they default
* to handlers that simply ignore the access.
*
* fDirect indicates that both the default AND the direct handlers should be updated. Direct
* handlers normally match the default handlers, except when "checked" handlers are installed;
* this allows "checked" handlers to know where to dispatch the call after performing checks.
* Examples of checks are read/write breakpoints, but it's really up to the Debugger to decide
* what the check consists of.
*
* @this {Memory}
* @param {Array.<function()>} [afn] function table
@ -448,13 +460,13 @@ Memory.prototype = {
setReadAccess: function(afn, fDirect) {
if (!fDirect || !this.cReadBreakpoints) {
this.readByte = afn[0] || this.readNone;
this.readShort = afn[1] || this.readShortDefault;
this.readLong = afn[2] || this.readLongDefault;
this.readShort = afn[2] || this.readShortDefault;
this.readLong = afn[4] || this.readLongDefault;
}
if (fDirect || fDirect === undefined) {
this.readByteDirect = afn[0] || this.readNone;
this.readShortDirect = afn[1] || this.readShortDefault;
this.readLongDirect = afn[2] || this.readLongDefault;
this.readShortDirect = afn[2] || this.readShortDefault;
this.readLongDirect = afn[4] || this.readLongDefault;
}
},
/**
@ -466,13 +478,13 @@ Memory.prototype = {
*/
setWriteAccess: function(afn, fDirect) {
if (!fDirect || !this.cWriteBreakpoints) {
this.writeByte = !this.fReadOnly && afn[3] || this.writeNone;
this.writeShort = !this.fReadOnly && afn[4] || this.writeShortDefault;
this.writeByte = !this.fReadOnly && afn[1] || this.writeNone;
this.writeShort = !this.fReadOnly && afn[3] || this.writeShortDefault;
this.writeLong = !this.fReadOnly && afn[5] || this.writeLongDefault;
}
if (fDirect || fDirect === undefined) {
this.writeByteDirect = afn[3] || this.writeNone;
this.writeShortDirect = afn[4] || this.writeShortDefault;
this.writeByteDirect = afn[1] || this.writeNone;
this.writeShortDirect = afn[3] || this.writeShortDefault;
this.writeLongDirect = afn[5] || this.writeLongDefault;
}
},
@ -1507,25 +1519,85 @@ Memory.prototype = {
};
/*
* This is the effective definition of afnNone, but we need not fully define it, because setAccess()
* uses these defaults when any of the 6 handlers (ie, 3 read handlers and 3 write handlers) are undefined.
* This is the effective definition of afnNone, but we need not fully define it, because setAccess() uses these
* defaults when any of the 6 handlers (ie, 2 byte handlers, 2 short handlers, and 2 long handlers) are undefined.
*
Memory.afnNone = [Memory.prototype.readNone, Memory.prototype.readShortDefault, Memory.prototype.readLongDefault, Memory.prototype.writeNone, Memory.prototype.writeShortDefault, Memory.prototype.writeLongDefault];
Memory.afnNone = [
Memory.prototype.readNone,
Memory.prototype.writeNone,
Memory.prototype.readShortDefault,
Memory.prototype.writeShortDefault,
Memory.prototype.readLongDefault,
Memory.prototype.writeLongDefault
];
*/
Memory.afnNone = [];
Memory.afnNone = [];
Memory.afnMemory = [Memory.prototype.readByteMemory, Memory.prototype.readShortMemory, Memory.prototype.readLongMemory, Memory.prototype.writeByteMemory, Memory.prototype.writeShortMemory, Memory.prototype.writeLongMemory];
Memory.afnChecked = [Memory.prototype.readByteChecked, Memory.prototype.readShortChecked, Memory.prototype.readLongChecked, Memory.prototype.writeByteChecked, Memory.prototype.writeShortChecked, Memory.prototype.writeLongChecked];
Memory.afnMemory = [
Memory.prototype.readByteMemory,
Memory.prototype.writeByteMemory,
Memory.prototype.readShortMemory,
Memory.prototype.writeShortMemory,
Memory.prototype.readLongMemory,
Memory.prototype.writeLongMemory
];
Memory.afnChecked = [
Memory.prototype.readByteChecked,
Memory.prototype.writeByteChecked,
Memory.prototype.readShortChecked,
Memory.prototype.writeShortChecked,
Memory.prototype.readLongChecked,
Memory.prototype.writeLongChecked
];
if (PAGEBLOCKS) {
Memory.afnPaged = [Memory.prototype.readBytePaged, Memory.prototype.readShortPaged, Memory.prototype.readLongPaged, Memory.prototype.writeBytePaged, Memory.prototype.writeShortPaged, Memory.prototype.writeLongPaged];
Memory.afnUnpaged = [Memory.prototype.readByteUnpaged, Memory.prototype.readShortUnpaged, Memory.prototype.readLongUnpaged, Memory.prototype.writeByteUnpaged, Memory.prototype.writeShortUnpaged, Memory.prototype.writeLongUnpaged];
Memory.afnPaged = [
Memory.prototype.readBytePaged,
Memory.prototype.writeBytePaged,
Memory.prototype.readShortPaged,
Memory.prototype.writeShortPaged,
Memory.prototype.readLongPaged,
Memory.prototype.writeLongPaged
];
Memory.afnUnpaged = [
Memory.prototype.readByteUnpaged,
Memory.prototype.writeByteUnpaged,
Memory.prototype.readShortUnpaged,
Memory.prototype.writeShortUnpaged,
Memory.prototype.readLongUnpaged,
Memory.prototype.writeLongUnpaged
];
}
if (TYPEDARRAYS) {
Memory.afnArrayBE = [Memory.prototype.readByteBE, Memory.prototype.readShortBE, Memory.prototype.readLongBE, Memory.prototype.writeByteBE, Memory.prototype.writeShortBE, Memory.prototype.writeLongBE];
Memory.afnArrayLE = [Memory.prototype.readByteLE, Memory.prototype.readShortLE, Memory.prototype.readLongLE, Memory.prototype.writeByteLE, Memory.prototype.writeShortLE, Memory.prototype.writeLongLE];
Memory.afnPagedLE = [Memory.prototype.readBytePLE, Memory.prototype.readShortPLE, Memory.prototype.readLongPLE, Memory.prototype.writeBytePLE, Memory.prototype.writeShortPLE, Memory.prototype.writeLongPLE];
Memory.afnArrayBE = [
Memory.prototype.readByteBE,
Memory.prototype.writeByteBE,
Memory.prototype.readShortBE,
Memory.prototype.writeShortBE,
Memory.prototype.readLongBE,
Memory.prototype.writeLongBE
];
Memory.afnArrayLE = [
Memory.prototype.readByteLE,
Memory.prototype.writeByteLE,
Memory.prototype.readShortLE,
Memory.prototype.writeShortLE,
Memory.prototype.readLongLE,
Memory.prototype.writeLongLE
];
Memory.afnPagedLE = [
Memory.prototype.readBytePLE,
Memory.prototype.writeBytePLE,
Memory.prototype.readShortPLE,
Memory.prototype.writeShortPLE,
Memory.prototype.readLongPLE,
Memory.prototype.writeLongPLE
];
}
if (NODE) module.exports = Memory;

View file

@ -2797,7 +2797,7 @@ Card.prototype.setMemoryAccess = function(nAccess)
}
if (!this.afnAccess) this.afnAccess = new Array(6);
this.afnAccess[0] = fnReadByte;
this.afnAccess[3] = fnWriteByte;
this.afnAccess[1] = fnWriteByte;
this.nAccess = nAccess;
}
};

View file

@ -73,30 +73,9 @@ function BusPDP11(parmsBus, cpu, dbg)
this.nBusWidth = parmsBus['busWidth'] || 16;
/*
* Compute all BusPDP11 memory block parameters, based on the width of the bus.
*
* Regarding blockTotal, we want to avoid using block overflow expressions like:
*
* iBlock < this.nBlockTotal? iBlock : 0
*
* As long as we know that blockTotal is a power of two (eg, 256 or 0x100, in the case of
* nBusWidth == 20 and blockSize == 4096), we can define blockMask as (blockTotal - 1) and
* rewrite the previous expression as:
*
* iBlock & this.nBlockMask
*
* Bus Property Old hard-coded values (when nBusWidth was always 20)
* ------------ ----------------------------------------------------
* this.nBusLimit 0xfffff
* this.nBusMask [same as busLimit]
* this.nBlockSize 4096
* this.nBlockLen (this.nBlockSize >> 2)
* this.nBlockShift 12
* this.nBlockLimit 0xfff
* this.nBlockTotal ((this.nBusLimit + this.nBlockSize) / this.nBlockSize) | 0
* this.nBlockMask (this.nBlockTotal - 1) [ie, 0xff]
*
* Note that we choose a nBlockShift value (and thus a physical memory block size) based on "buswidth":
* Compute all BusPDP11 memory block parameters, based on the width of the bus. The entire
* address space is divided into blocks, using a block size that is (hopefully) appropriate to
* the bus width. The following table summarizes our simplistic calculations.
*
* Bus Width Block Shift Block Size
* --------- ----------- ----------
@ -125,20 +104,24 @@ function BusPDP11(parmsBus, cpu, dbg)
this.assert(this.nBlockMask <= BusPDP11.BlockInfo.num.mask);
/*
* Lists of I/O notification functions: aIONotify are arrays, indexed by address, where each entry
* contains an array:
* aIONotify is an array (ie, a hash) of I/O notification handlers, indexed by address, where each
* entry contains an array:
*
* [0]: registered function to call for read
* [1]: registered function to call for write
* [0]: readByte(addr)
* [1]: writeByte()
* [2]: readShort()
* [3]: writeShort()
*
* The registered function is called with the address, and if the access was triggered by the CPU,
* the program counter (PC) at the point of access.
* Each of these 4-element arrays are similar to the memory access arrays assigned to entire Memory
* blocks, but these handlers generally target a specific address (or handful of addresses), while
* Memory access handlers must service the entire block; see the setAccess() function in the Memory
* component for details.
*
* UPDATE: The Debugger now piggy-backs on these arrays to indicate addresses for which it wants
* UPDATE: The Debugger wants to piggy-back on these arrays to indicate addresses for which it wants
* notification. In those cases, the registered component/function elements may or may not be set,
* but the following additional element will be set:
*
* [2]: true to break on I/O, false to ignore I/O
* [4]: true to break on I/O, false to ignore I/O
*
* The false case is important if fIOBreakAll is set, because it allows the Debugger to selectively
* ignore specific addresses.
@ -172,38 +155,6 @@ BusPDP11.ERROR = {
REMOVE_INVALID: 5
};
/**
* @typedef {number}
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
BusPDP11.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfoPDP11 object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }}
*/
var BusInfoPDP11;
BusPDP11.controller = {
/**
@ -211,26 +162,13 @@ BusPDP11.controller = {
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} [addr]
* @param {number} addr
* @return {number}
*/
readIOPageByte: function(off, addr)
{
return 0;
},
/**
* readIOPageWord(off, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} [addr]
* @return {number}
*/
readIOPageWord: function(off, addr)
{
var afn = this.controller.aIONotify[off];
return afn? afn[0](addr) : 0;
return afn && afn[0]? afn[0](addr) : 0;
},
/**
@ -239,24 +177,58 @@ BusPDP11.controller = {
* @this {MemoryPDP11}
* @param {number} off
* @param {number} b (which should already be pre-masked to 8 bits)
* @param {number} [addr]
* @param {number} addr
*/
writeIOPageByte: function(off, b, addr)
{
var afn = this.controller.aIONotify[off];
if (afn && afn[1]) {
afn[1](addr, b);
}
},
/**
* writeIOPageWord(off, w, addr)
* readIOPageShort(off, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} addr
* @return {number}
*/
readIOPageShort: function(off, addr)
{
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
var afn = this.controller.aIONotify[off];
if (afn) {
if (afn[2]) {
return afn[2](addr);
} else if (afn[0]) {
return afn[0](addr) | (afn[0](addr + 1) << 8);
}
}
return 0;
},
/**
* writeIOPageShort(off, w, addr)
*
* @this {MemoryPDP11}
* @param {number} off
* @param {number} w (which should already be pre-masked to 16 bits)
* @param {number} [addr]
* @param {number} addr
*/
writeIOPageWord: function(off, w, addr)
writeIOPageShort: function(off, w, addr)
{
Component.assert(!(addr & 1)); // unaligned addresses should be getting trapped at a higher level
var afn = this.controller.aIONotify[off];
return afn? afn[1](w, addr) : 0;
if (afn) {
if (afn[3]) {
afn[3](addr, w);
} else if (afn[1]) {
afn[1](addr, w & 0xff);
afn[1](addr + 1, w >> 8);
}
}
}
};
@ -277,9 +249,9 @@ BusPDP11.prototype.initMemory = function()
}
this.afnIOPage = new Array(4);
this.afnIOPage[0] = BusPDP11.controller.readIOPageByte;
this.afnIOPage[1] = BusPDP11.controller.readIOPageWord;
this.afnIOPage[1] = BusPDP11.controller.readIOPageShort;
this.afnIOPage[2] = BusPDP11.controller.writeIOPageByte;
this.afnIOPage[3] = BusPDP11.controller.writeIOPageWord;
this.afnIOPage[3] = BusPDP11.controller.writeIOPageShort;
this.addrIOPage = this.addrTotal - BusPDP11.IOPAGE_LENGTH;
this.addMemory(this.addrIOPage, BusPDP11.IOPAGE_LENGTH, MemoryPDP11.TYPE.CONTROLLER, this);
};
@ -451,16 +423,52 @@ BusPDP11.prototype.cleanMemory = function(addr, size)
return fClean;
};
/*
* Data types used by scanMemory()
*/
/**
* @typedef {number} BlockInfo
*/
var BlockInfo;
/**
* This defines the BlockInfo bit fields used by scanMemory() when it creates the aBlocks array.
*
* @typedef {{
* num: BitField,
* count: BitField,
* btmod: BitField,
* type: BitField
* }}
*/
BusPDP11.BlockInfo = usr.defineBitFields({num:20, count:8, btmod:1, type:3});
/**
* BusInfoPDP11 object definition (returned by scanMemory())
*
* cbTotal: total bytes allocated
* cBlocks: total Memory blocks allocated
* aBlocks: array of allocated Memory block numbers
*
* @typedef {{
* cbTotal: number,
* cBlocks: number,
* aBlocks: Array.<BlockInfo>
* }} BusInfoPDP11
*/
var BusInfoPDP11;
/**
* scanMemory(info, addr, size)
*
* Returns a BusInfoPDP11 object for the specified address range.
*
* @this {BusPDP11}
* @param {Object} [info] previous BusInfoPDP11, if any
* @param {BusInfoPDP11} [info] previous BusInfoPDP11, if any
* @param {number} [addr] starting address of range (0 if none provided)
* @param {number} [size] size of range, in bytes (up to end of address space if none provided)
* @return {Object} updated info (or new info if no previous info provided)
* @return {BusInfoPDP11} updated info (or new info if no previous info provided)
*/
BusPDP11.prototype.scanMemory = function(info, addr, size)
{
@ -640,7 +648,7 @@ BusPDP11.prototype.getByteDirect = function(addr)
*
* @this {BusPDP11}
* @param {number} addr is a physical address
* @return {number} word (16-bit) value at that address
* @return {number} short (16-bit) value at that address
*/
BusPDP11.prototype.getShort = function(addr)
{
@ -659,7 +667,7 @@ BusPDP11.prototype.getShort = function(addr)
*
* @this {BusPDP11}
* @param {number} addr is a physical address
* @return {number} word (16-bit) value at that address
* @return {number} short (16-bit) value at that address
*/
BusPDP11.prototype.getShortDirect = function(addr)
{
@ -703,7 +711,7 @@ BusPDP11.prototype.setByteDirect = function(addr, b)
*
* @this {BusPDP11}
* @param {number} addr is a physical address
* @param {number} w is the word (16-bit) value to write (we truncate it to 16 bits to be safe)
* @param {number} w is the short (16-bit) value to write (we truncate it to 16 bits to be safe)
*/
BusPDP11.prototype.setShort = function(addr, w)
{
@ -725,7 +733,7 @@ BusPDP11.prototype.setShort = function(addr, w)
*
* @this {BusPDP11}
* @param {number} addr is a physical address
* @param {number} w is the word (16-bit) value to write (we truncate it to 16 bits to be safe)
* @param {number} w is the short (16-bit) value to write (we truncate it to 16 bits to be safe)
*/
BusPDP11.prototype.setShortDirect = function(addr, w)
{
@ -860,18 +868,21 @@ BusPDP11.prototype.restoreMemory = function(a)
};
/**
* addIOHandlers(start, end, fnRead, fnWrite)
* addIOHandlers(start, end, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort)
*
* Add I/O notification handlers to the list of such handlers. The start and end addresses are typically
* relative to the starting IOPAGE address, but they can also be absolute.
* Add I/O notification handlers to the master list (aIONotify). The start and end addresses are typically
* relative to the starting IOPAGE address, but they can also be absolute; we simply mask all addresses with
* (IOPAGE_LENGTH - 1).
*
* @this {BusPDP11}
* @param {number} start address
* @param {number} end address
* @param {function(number)|null|undefined} fnRead is called with the read address whenever a read occurs
* @param {function(number,number)|null|undefined} fnWrite is called with the data and write address whenever a write occurs
* @param {function(number)|null|undefined} fnReadByte
* @param {function(number,number)|null|undefined} fnWriteByte
* @param {function(number)|null|undefined} fnReadShort
* @param {function(number,number)|null|undefined} fnWriteShort
*/
BusPDP11.prototype.addIOHandlers = function(start, end, fnRead, fnWrite)
BusPDP11.prototype.addIOHandlers = function(start, end, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort)
{
for (var addr = start; addr <= end; addr += 2) {
var off = addr & (BusPDP11.IOPAGE_LENGTH - 1);
@ -883,7 +894,7 @@ BusPDP11.prototype.addIOHandlers = function(start, end, fnRead, fnWrite)
Component.warning("I/O address already registered: " + str.toHexLong(this.addrIOPage + off));
continue;
}
this.aIONotify[off] = [fnRead, fnWrite, false];
this.aIONotify[off] = [fnReadByte, fnWriteByte, fnReadShort, fnWriteShort, false];
if (MAXDEBUG) this.log("addIOHandlers(" + str.toHexLong(this.addrIOPage + off) + ")");
}
};
@ -901,9 +912,11 @@ BusPDP11.prototype.addIOTable = function(component, table)
{
for (var port in table) {
var afn = table[port];
var fnRead = afn[0]? afn[0].bind(component) : null;
var fnWrite = afn[1]? afn[1].bind(component) : null;
this.addIOHandlers(+port, +port, fnRead, fnWrite);
var fnReadByte = afn[0]? afn[0].bind(component) : null;
var fnWriteByte = afn[1]? afn[1].bind(component) : null;
var fnReadShort = afn[2]? afn[2].bind(component) : null;
var fnWriteShort = afn[3]? afn[3].bind(component) : null;
this.addIOHandlers(+port, +port, fnReadByte, fnWriteByte, fnReadShort, fnWriteShort);
}
};

View file

@ -89,7 +89,7 @@ DevicePDP11.prototype.initBus = function(cmp, bus, cpu, dbg)
* readPSW(addr)
*
* @this {DevicePDP11}
* @param {number} [addr]
* @param {number} addr
* @return {number}
*/
DevicePDP11.prototype.readPSW = function(addr)
@ -102,7 +102,7 @@ DevicePDP11.prototype.readPSW = function(addr)
*
* @this {DevicePDP11}
* @param {number} data
* @param {number} [addr]
* @param {number} addr
*/
DevicePDP11.prototype.writePSW = function(data, addr)
{
@ -110,7 +110,7 @@ DevicePDP11.prototype.writePSW = function(data, addr)
};
DevicePDP11.UNIBUS_TABLE = {};
DevicePDP11.UNIBUS_TABLE[DevicePDP11.ADDR_PSW] = [DevicePDP11.prototype.readPSW, DevicePDP11.prototype.writePSW];
DevicePDP11.UNIBUS_TABLE[DevicePDP11.ADDR_PSW] = [null, null, DevicePDP11.prototype.readPSW, DevicePDP11.prototype.writePSW];
/**
* DevicePDP11.init()

View file

@ -383,7 +383,19 @@ MemoryPDP11.prototype = {
/**
* setAccess(afn, fDirect)
*
* If no function table is specified, a default is selected based on the MemoryPDP11 type.
* The afn parameter should be a 4-entry function table containing two byte handlers and
* two short handlers. See the static afnMemory table for an example.
*
* If no function table is specified, a default is selected based on the MemoryPDP11 type;
* similarly, any undefined entries in the table are filled with default handlers that fall
* back to the byte handlers, and if one or both byte handlers are undefined, they default
* to handlers that simply ignore the access.
*
* fDirect indicates that both the default AND the direct handlers should be updated. Direct
* handlers normally match the default handlers, except when "checked" handlers are installed;
* this allows "checked" handlers to know where to dispatch the call after performing checks.
* Examples of checks are read/write breakpoints, but it's really up to the Debugger to decide
* what the check consists of.
*
* @this {MemoryPDP11}
* @param {Array.<function()>} [afn] function table
@ -407,11 +419,11 @@ MemoryPDP11.prototype = {
setReadAccess: function(afn, fDirect) {
if (!fDirect || !this.cReadBreakpoints) {
this.readByte = afn[0] || this.readNone;
this.readShort = afn[1] || this.readShortDefault;
this.readShort = afn[2] || this.readShortDefault;
}
if (fDirect || fDirect === undefined) {
this.readByteDirect = afn[0] || this.readNone;
this.readShortDirect = afn[1] || this.readShortDefault;
this.readShortDirect = afn[2] || this.readShortDefault;
}
},
/**
@ -423,11 +435,11 @@ MemoryPDP11.prototype = {
*/
setWriteAccess: function(afn, fDirect) {
if (!fDirect || !this.cWriteBreakpoints) {
this.writeByte = !this.fReadOnly && afn[2] || this.writeNone;
this.writeByte = !this.fReadOnly && afn[1] || this.writeNone;
this.writeShort = !this.fReadOnly && afn[3] || this.writeShortDefault;
}
if (fDirect || fDirect === undefined) {
this.writeByteDirect = afn[2] || this.writeNone;
this.writeByteDirect = afn[1] || this.writeNone;
this.writeShortDirect = afn[3] || this.writeShortDefault;
}
},
@ -830,43 +842,43 @@ MemoryPDP11.prototype = {
/*
* This is the effective definition of afnNone, but we need not fully define it, because setAccess()
* uses these defaults when any of the 4 handlers (ie, 2 read handlers and 2 write handlers) are undefined.
* uses these defaults when any of the 4 handlers (ie, 2 byte handlers and 2 short handlers) are undefined.
*
MemoryPDP11.afnNone = [
MemoryPDP11.afnNone = [
MemoryPDP11.prototype.readNone,
MemoryPDP11.prototype.readShortDefault,
MemoryPDP11.prototype.writeNone,
MemoryPDP11.prototype.readShortDefault,
MemoryPDP11.prototype.writeShortDefault
];
*/
MemoryPDP11.afnNone = [];
MemoryPDP11.afnNone = [];
MemoryPDP11.afnMemory = [
MemoryPDP11.afnMemory = [
MemoryPDP11.prototype.readByteMemory,
MemoryPDP11.prototype.readShortMemory,
MemoryPDP11.prototype.writeByteMemory,
MemoryPDP11.prototype.readShortMemory,
MemoryPDP11.prototype.writeShortMemory
];
MemoryPDP11.afnChecked = [
MemoryPDP11.afnChecked = [
MemoryPDP11.prototype.readByteChecked,
MemoryPDP11.prototype.readShortChecked,
MemoryPDP11.prototype.writeByteChecked,
MemoryPDP11.prototype.readShortChecked,
MemoryPDP11.prototype.writeShortChecked
];
if (TYPEDARRAYS) {
MemoryPDP11.afnArrayBE = [
MemoryPDP11.afnArrayBE = [
MemoryPDP11.prototype.readByteBE,
MemoryPDP11.prototype.readShortBE,
MemoryPDP11.prototype.writeByteBE,
MemoryPDP11.prototype.readShortBE,
MemoryPDP11.prototype.writeShortBE
];
MemoryPDP11.afnArrayLE = [
MemoryPDP11.afnArrayLE = [
MemoryPDP11.prototype.readByteLE,
MemoryPDP11.prototype.readShortLE,
MemoryPDP11.prototype.writeByteLE,
MemoryPDP11.prototype.readShortLE,
MemoryPDP11.prototype.writeShortLE
];
}

View file

@ -15,61 +15,61 @@ function z(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.nam
if(window){Sa||(Sa=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Sa);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function ab(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function bb(a,b){b||(b=z);a.prototype=ab(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var cb=window.PCjs.Machines||(window.PCjs.Machines={}),Ra=window.PCjs.Components||(window.PCjs.Components=[])}else cb={},Ra=[];function db(a,b,c){cb[a]&&b&&(cb[a][b]=c)}function Oa(a,b,c){b||w((c?c+": ":"")+a)}
function eb(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<Ra.length;b++){var d=Ra[b];a&&d.id.indexOf(a)||c.push(d)}return c}function fb(a){if(void 0!==a){var b;for(b=0;b<Ra.length;b++)if(Ra[b].id===a)return Ra[b]}return null}function gb(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<Ra.length;d++)if(c)c==Ra[d]&&(c=null);else if(!(a!=Ra[d].type||b&&Ra[d].id.indexOf(b)))return Ra[d]}return null}
function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function hb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),m=k.length}}}}
function A(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){w(c.message+" ("+a+")")}return b}function hb(a,b){for(var c=D(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),m=0;m<k.length;m++)switch(g=k[m],g){case "pc8080-binding":(g=A(h))&&g.binding&&a.pa(g.type,g.binding,h,g.value),m=k.length}}}}
function D(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},oa:function(a,b,c){switch(b){case "clear":return this.N[b]||(this.N[b]=c,c.onclick=function(a){return function(){a.N.print&&(a.N.print.value="")}}(this)),!0;case "print":return this.N[b]||(this.Ga=this.N[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.ja=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ja:function(a,b,c){Oa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,h){a.H&&(!0===h?h=0:null==h&&(h=a.ta),ib(a.H,a,b,c,d,e,f,h))}function jb(a,b){a.H&&kb(a,0)&&a.H.message(b,void 0)}function kb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Jd)}return!1}
function lb(a,b){if(a.C.Kb)return a.C.eb&&(a.C.eb=!1),a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.eb=b;return a.C.eb}function mb(a,b){a.C.eb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.eb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Eb;a.Eb=null;b&&b()}}function nb(a,b){b&&(a.C.ready?b():a.Eb=b);return a.C.ready}function ob(a,b){a.C.error=!0;a.ja(b)}
z.prototype={constructor:z,parent:null,toString:function(){return this.name?this.name:this.id||this.type},pa:function(a,b,c){switch(b){case "clear":return this.N[b]||(this.N[b]=c,c.onclick=function(a){return function(){a.N.print&&(a.N.print.value="")}}(this)),!0;case "print":return this.N[b]||(this.Ga=this.N[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.ka=function(a){this.g(a,this.cb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},ka:function(a,b,c){Oa(a,b,c||this.type)},Ea:function(){return this.C.xa=!0},Ia:function(a,b){b&&(this.C.xa=!1);return!0}};function E(a,b,c,d,e,f,h){a.H&&(!0===h?h=0:null==h&&(h=a.ta),ib(a.H,a,b,c,d,e,f,h))}function jb(a,b){a.H&&kb(a,0)&&a.H.message(b,void 0)}function kb(a,b){if(a.H){a===a.H?b|=0:b=b||a.ta;var c=a.H.ta&b;return!!b&&c===b||!!(c&a.H.Jd)}return!1}
function lb(a,b){if(a.C.Kb)return a.C.eb&&(a.C.eb=!1),a.C.Kb=!1;if(a.C.error)return a.g(a.toString()+" error"),!1;a.C.eb=b;return a.C.eb}function mb(a,b){a.C.eb&&(b?a.C.Kb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.C.eb}function F(a){if(!a.C.error&&(a.C.ready=!0,a.C.ready)){var b=a.Eb;a.Eb=null;b&&b()}}function nb(a,b){b&&(a.C.ready?b():a.Eb=b);return a.C.ready}function ob(a,b){a.C.error=!0;a.ka(b)}
var rb="undefined"!==typeof ArrayBuffer,sb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1],tb={cpu:1,bus:64,mem:128,port:256,nvr:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){z.call(this,"Panel",a,ub)}bb(ub);l=ub.prototype;
l.oa=function(a,b,c,d){return this.B&&this.B.oa(a,b,c,d)||this.b&&this.b.oa(a,b,c,d)||this.K&&this.K.oa(a,b,c,d)||this.H&&this.H.oa(a,b,c,d)?!0:this.parent.oa.call(this,a,b,c,d)};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.K=vb(a,"Keyboard")};l.Ea=function(a,b){b||wb();return!0};l.Ia=function(){return!0};l.Ja=function(){};function wb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=fb(e.id);f||(a=!0,f=new ub(e));hb(f,d);a&&F(f)}}Ma(wb);
function xb(a,b,c){z.call(this,"Bus",a,xb);this.b=b;this.H=c;this.G=a.busWidth||16;this.L=Math.pow(2,this.G);this.w=this.L-1|0;this.sa=16>=this.G?10:20>=this.G?12:24>=this.G?14:15;this.Ha=1<<this.sa;this.M=this.Ha>>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.K=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new G;yb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;F(this)}bb(xb);l=xb.prototype;l.reset=function(){};l.Ea=function(a,b){b||this.reset();return!0};
function zb(a,b,c,d){for(var e=b,f=c,h=e>>>a.sa;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ha,m=a.Ha-(e-k);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.yb+=g.F-e,g.F=e,!0;if(e>=g.F+g.yb){m=g.size-(e-k);m>f&&(m=f);g.yb=e-g.F+m;e=k+a.Ha;f-=m;h++;continue}}return Ab(1,e,f)}e=new G(e,m,a.Ha,d);yb(e,a.H,g);a.X[h++]=e;e=k+a.Ha;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Bb[d]+" at "+v(b)),!0):Ab(2,b,c)}l.aa=function(a){return this.X[(a&this.w)>>>this.sa].jb(a&this.u,a)};
function Cb(a,b){return a.X[(b&a.w)>>>a.sa].wb(b&a.u,b)}l.$a=function(a){var b=a&this.u,c=(a&this.w)>>>this.sa;return b!=this.u?this.X[c].Bc(b,a):this.X[c++].jb(b,a)|this.X[c&this.K].jb(0,a+1)<<8};function Db(a,b){var c=b&a.u,d=(b&a.w)>>>a.sa;return c!=a.u?a.X[d].Pb(c,b):a.X[d++].wb(c,b)|a.X[d&a.K].wb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.sa].lb(a&this.u,b&255,a)};function Eb(a,b,c){a.X[(b&a.w)>>>a.sa].zb(b&a.u,c&255,b)}
l.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.sa;c!=this.u?this.X[d].Dc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.K].lb(0,b>>8&255,a+1))};function Fb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}function Gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?w("Input port "+v(k)+" already registered"):f.B[k]=[g,!1]}}
function Ib(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,m=k;void 0!==h?(h[0]&&(m=h[0](b,c),void 0===m?m=k:m&=k),a.H&&a.I!=h[1]&&Jb(a.H,b,m)):a.H&&(ib(a.H,a,b,null,c),a.I&&Jb(a.H,b,m));e|=m<<f;f+=g<<3;b+=g;d-=g}return e}function Kb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}
function Tb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?w("Output port "+v(k)+" already registered"):f.j[k]=[g,!1]}}function Ub(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.D!=h[1]&&Vb(a.H,b,k)}else a.H&&(ib(a.H,a,b,k,d),a.D&&Vb(a.H,b,k));f+=g<<3;b+=g;e-=g}}
function Ab(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Wb;if(rb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb;
function G(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.yb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;yb(this);this.Na=this.xc=!1;if(c)if(rb)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.K=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Bb=["NONE","RAM","ROM","VID","H/W"],Zb=0;
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Na=!0}return!1},Za:function(a,b){b?0===this.j++&&fc(this,gc,!1):0===this.B++&&hc(this,gc,!1)},J:function(){this.H&&kb(this.H,129)&&this.H.message("attempt to read invalid block %"+t(this.F),!0);
return 255},w:function(a,b){this.H&&kb(this.H,129)&&this.H.message("attempt to write "+v(b)+" to invalid block %"+t(this.F),!0)},L:function(a,b){return this.jb(a++,b++)|this.jb(a,b)<<8},G:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},ka:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},za:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.pa(!0)}return this.wb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.pa(!0)}return this.Pb(a,b)},ia:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.D)&&d.pa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},la:function(a,
b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.pa(!0)}this.N?this.w(a,b,c):this.Tb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.K[a>>1]},ha:function(a,b){this.u[a]=b;this.Na=!0},cb:function(a,b){this.u[a]=b;this.Na=!0},qa:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},wa:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.K[a>>1]=b;this.Na=!0}};
function yb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?0===--a.j&&(a.lb=a.N?a.w:a.zb,a.Dc=a.N?a.G:a.Tb):0===--a.B&&(a.jb=a.wb,a.Bc=a.Pb)}function fc(a,b,c){c&&a.j||(a.lb=!a.N&&b[2]||a.w,a.Dc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[2]||a.w,a.Tb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.jb=b[0]||a.J,a.Bc=b[1]||a.L);if(c||void 0===c)a.wb=b[0]||a.J,a.Pb=b[1]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)}
var kc=[],ec=[G.prototype.Y,G.prototype.fa,G.prototype.ka,G.prototype.za],gc=[G.prototype.O,G.prototype.ca,G.prototype.ia,G.prototype.la];if(rb)var dc=[G.prototype.M,G.prototype.ba,G.prototype.ha,G.prototype.qa],cc=[G.prototype.P,G.prototype.ea,G.prototype.cb,G.prototype.wa];
l.pa=function(a,b,c,d){return this.B&&this.B.pa(a,b,c,d)||this.b&&this.b.pa(a,b,c,d)||this.J&&this.J.pa(a,b,c,d)||this.H&&this.H.pa(a,b,c,d)?!0:this.parent.pa.call(this,a,b,c,d)};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;this.J=vb(a,"Keyboard")};l.Ea=function(a,b){b||wb();return!0};l.Ia=function(){return!0};l.Ja=function(){};function wb(){for(var a=!1,b=D(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=fb(e.id);f||(a=!0,f=new ub(e));hb(f,d);a&&F(f)}}Ma(wb);
function xb(a,b,c){z.call(this,"Bus",a,xb);this.b=b;this.H=c;this.K=a.busWidth||16;this.L=Math.pow(2,this.K);this.w=this.L-1|0;this.ia=(this.K>>1)+2;10>this.ia&&(this.ia=10);15<this.ia&&(this.ia=15);this.Ha=1<<this.ia;this.M=this.Ha>>2;this.u=this.Ha-1;this.J=this.L/this.Ha|0;this.G=this.J-1;this.B=[];this.j=[];this.I=this.D=!1;this.O=[];this.P=[];a=new G;yb(a,this.H);this.X=Array(this.J);for(b=0;b<this.J;b++)this.X[b]=a;F(this)}bb(xb);l=xb.prototype;l.reset=function(){};
l.Ea=function(a,b){b||this.reset();return!0};function zb(a,b,c,d){for(var e=b,f=c,h=e>>>a.ia;0<f&&h<a.X.length;){var g=a.X[h],k=h*a.Ha,m=a.Ha-(e-k);m>f&&(m=f);if(g&&g.size){if(g.type==d){if(e+f<=g.F)return g.yb+=g.F-e,g.F=e,!0;if(e>=g.F+g.yb){m=g.size-(e-k);m>f&&(m=f);g.yb=e-g.F+m;e=k+a.Ha;f-=m;h++;continue}}return Ab(1,e,f)}e=new G(e,m,a.Ha,d);yb(e,a.H,g);a.X[h++]=e;e=k+a.Ha;f-=m}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+Bb[d]+" at "+v(b)),!0):Ab(2,b,c)}
l.aa=function(a){return this.X[(a&this.w)>>>this.ia].jb(a&this.u,a)};function Cb(a,b){return a.X[(b&a.w)>>>a.ia].wb(b&a.u,b)}l.$a=function(a){var b=a&this.u,c=(a&this.w)>>>this.ia;return b!=this.u?this.X[c].Bc(b,a):this.X[c++].jb(b,a)|this.X[c&this.G].jb(0,a+1)<<8};function Db(a,b){var c=b&a.u,d=(b&a.w)>>>a.ia;return c!=a.u?a.X[d].Pb(c,b):a.X[d++].wb(c,b)|a.X[d&a.G].wb(0,b+1)<<8}l.va=function(a,b){this.X[(a&this.w)>>>this.ia].lb(a&this.u,b&255,a)};
function Eb(a,b,c){a.X[(b&a.w)>>>a.ia].zb(b&a.u,c&255,b)}l.Ib=function(a,b){var c=a&this.u,d=(a&this.w)>>>this.ia;c!=this.u?this.X[d].Dc(c,b&65535,a):(this.X[d++].lb(c,b&255,a),this.X[d&this.G].lb(0,b>>8&255,a+1))};function Fb(a,b){if(void 0===b)return a.I=!a.I,a.I;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}
function Gb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.B[k]?w("Input port "+v(k)+" already registered"):f.B[k]=[g,!1]}}function Ib(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.B[b],g=a.O[b]||1,k=1==g?255:2==g?65535:-1,m=k;void 0!==h?(h[0]&&(m=h[0](b,c),void 0===m?m=k:m&=k),a.H&&a.I!=h[1]&&Jb(a.H,b,m)):a.H&&(ib(a.H,a,b,null,c),a.I&&Jb(a.H,b,m));e|=m<<f;f+=g<<3;b+=g;d-=g}return e}
function Kb(a,b){if(void 0===b)return a.D=!a.D,a.D;void 0===a.j[b]&&(a.j[b]=[null,!1]);a.j[b][1]=!a.j[b][1];return a.j[b][1]}function Tb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var k=+e+d;k<=h;k++)void 0!==f.j[k]?w("Output port "+v(k)+" already registered"):f.j[k]=[g,!1]}}
function Ub(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.j[b],g=a.P[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.H&&a.D!=h[1]&&Vb(a.H,b,k)}else a.H&&(ib(a.H,a,b,k,d),a.D&&Vb(a.H,b,k));f+=g<<3;b+=g;e-=g}}function Ab(a,b,c){w("Memory block error ("+a+": "+t(b)+","+t(c)+")");return!1}var Wb;if(rb){var Xb=new ArrayBuffer(2);(new DataView(Xb)).setUint16(0,256,!0);Wb=256===(new Uint16Array(Xb))[0]}else Wb=!1;var Yb=Wb;
function G(a,b,c,d){this.id=Zb+=2;this.b=null;this.F=a;this.yb=b;this.size=c||0;this.type=d||$b;this.N=d==ac;yb(this);this.Na=this.xc=!1;if(c)if(rb)this.I=new ArrayBuffer(c),this.D=new DataView(this.I,0,c),this.u=new Uint8Array(this.I,0,c),this.J=new Uint16Array(this.I,0,c>>1),this.b=new Int32Array(this.I,0,c>>2),bc(this,Yb?cc:dc);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;bc(this,ec)}else bc(this)}var $b=0,ac=2,Bb=["NONE","RAM","ROM","VID","H/W"],Zb=0;
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(rb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.D.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(rb)for(b=0;b<a.length;b++)this.D.setInt32(b<<2,a[b],!0);else this.b=a;return this.Na=!0}return!1},Za:function(a,b){b?0===this.j++&&fc(this,gc,!1):0===this.B++&&hc(this,gc,!1)},K:function(){this.H&&kb(this.H,129)&&this.H.message("attempt to read invalid block %"+t(this.F),!0);
return 255},w:function(a,b){this.H&&kb(this.H,129)&&this.H.message("attempt to write "+v(b)+" to invalid block %"+t(this.F),!0)},L:function(a,b){return this.jb(a++,b++)|this.jb(a,b)<<8},G:function(a,b,c){this.lb(a++,b&255,c++);this.lb(a,b>>8,c)},Y:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},fa:function(a){var b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8},la:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.Na=!0},za:function(a,
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Na=!0},O:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,1,c.O)&&c.qa(!0)}return this.wb(a,b)},ca:function(a,b){if(this.H&&null!=this.F){var c=this.H;ic(c,this.F+a,2,c.O)&&c.qa(!0)}return this.Pb(a,b)},ja:function(a,b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,1,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.zb(a,b,c)},ma:function(a,
b,c){if(this.H&&null!=this.F){var d=this.H;ic(d,this.F+a,2,d.D)&&d.qa(!0)}this.N?this.w(a,b,c):this.Tb(a,b,c)},M:function(a){return this.u[a]},P:function(a){return this.u[a]},ba:function(a){return this.D.getUint16(a,!0)},ea:function(a){return a&1?this.u[a]|this.u[a+1]<<8:this.J[a>>1]},ha:function(a,b){this.u[a]=b;this.Na=!0},cb:function(a,b){this.u[a]=b;this.Na=!0},ra:function(a,b){this.D.setUint16(a,b,!0);this.Na=!0},wa:function(a,b){a&1?(this.u[a]=b,this.u[a+1]=b>>8):this.J[a>>1]=b;this.Na=!0}};
function yb(a,b,c){a.H=b;a.B=a.j=0;c&&((a.B=c.B)&&hc(a,gc,!1),(a.j=c.j)&&fc(a,gc,!1))}function jc(a,b){b?0===--a.j&&(a.lb=a.N?a.w:a.zb,a.Dc=a.N?a.G:a.Tb):0===--a.B&&(a.jb=a.wb,a.Bc=a.Pb)}function fc(a,b,c){c&&a.j||(a.lb=!a.N&&b[1]||a.w,a.Dc=!a.N&&b[3]||a.G);if(c||void 0===c)a.zb=b[1]||a.w,a.Tb=b[3]||a.G}function hc(a,b,c){c&&a.B||(a.jb=b[0]||a.K,a.Bc=b[2]||a.L);if(c||void 0===c)a.wb=b[0]||a.K,a.Pb=b[2]||a.L}function bc(a,b){b||(b=kc);hc(a,b,void 0);fc(a,b,void 0)}
var kc=[],ec=[G.prototype.Y,G.prototype.la,G.prototype.fa,G.prototype.za],gc=[G.prototype.O,G.prototype.ja,G.prototype.ca,G.prototype.ma];if(rb)var dc=[G.prototype.M,G.prototype.ha,G.prototype.ba,G.prototype.ra],cc=[G.prototype.P,G.prototype.cb,G.prototype.ea,G.prototype.wa];
function lc(a,b){z.call(this,"CPU",a,lc,1);var c=a.multiplier||1;this.Y=a.cycles||b;this.Ra=c;this.ha=Math.round(this.Y/1E4)/100;this.ab=this.ha*this.Ra;this.C.Aa=!1;this.C.Sb=!1;this.C.sb=a.autoStart;this.C.vc=!1;this.C.fb=!1;this.tb=this.O=0;this.ub=a.csStart;this.hb=a.csInterval;this.ib=a.csStop;this.w=[];this.Fa=this.bb.bind(this);F(this)}bb(lc);var mc=["power","reset"];l=lc.prototype;
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.oa(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.sb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.H=d;for(b=0;b<mc.length;b++)(c=this.N[mc[b]])&&this.B.pa(null,mc[b],c);this.I=vb(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.C.sb="true"==a?!0:"false"==a?!1:!!a);F(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};
l.Ea=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.H){var c=this.H;c.g("Type ? for help with PC8080 Debugger commands");c.Ja();if(c.za){var d=c.za;c.za=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};l.Ia=function(a){return a?this.save():!0};l.sb=function(){return this.C.sb||!this.H&&void 0===this.N.run?(this.bb(!0),!0):!1};l.yc=function(){return 0};
function pc(a){void 0===a.ub&&(a.ub=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.ub&&0<a.hb;a.C.fb&&(a.tb=0,a.O=a.ub-a.M)}function Ec(a,b){if(a.C.fb){var c=!1;a.tb=a.tb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,pc(a),a.pa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.tb))}}
l.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.pa():d.bb())};
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.K&&(c=a.K/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ia=0}function Fc(a){return a.M+a.G+a.L-a.b}function oc(a){a.K=0;a.za=0;a.M=a.G=a.L=a.b=0;pc(a);Gc(a,1)}
function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.K/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=pa();a.J=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Y*a.Ra/1E3*c,a.w[b][0]=d)}function Lc(a){a.L-=a.b;a.b=0}
l.bb=function(a){if(lb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ia>=this.Y&&Ic(this,!0);this.ba=0;this.ea=pa();this.J&&(a=this.ea-this.J,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a=
f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);Ec(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.pa();rc(this);this.B&&this.B.stop(pa(),Fc(this));lb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.J=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e=e-(this.J-this.ea);if(f=this.J-this.D)this.K=Math.round(this.G/
(10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.K<this.ab)-1E3>e&&(this.D-=e),e=0;this.ia+=this.ba;this.J+=e;c(d,e)}else rc(this),this.B&&this.B.stop(pa(),Fc(this))};l.kb=function(){return 0};l.pa=function(a){mb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function rc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}}
function Nc(a){this.Ac=+a.model||8080;lc.call(this,a,1E6);this.ka=Oc;oc(this);this.C.complete=this.C.Ld=!1;this.la=0;this.ca=[];this.qa=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.pa();Pc(this);oc(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.na=0;H(a,a.qa);Rc(a,0);a.j=0}function Sc(a,b){a.qa=b;H(a,b)}
l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.na+this.R+Tc(this)|0};
l.save=function(){var a=new Uc(this);I(a,0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.na,this.R,Tc(this)]);I(a,1,[this.j,this.M,this.Ra]);for(var b=this.u,c=0,d=[],e=0;e<b.J;e++){var f=b.X[e];if(f.Na||f.xc){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,m=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;m[k++]=q-g;m[k++]=p;g=q}if(m.length<f.length){f=m;break a}}d[h]=f}}I(a,2,d);return a.data()};
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.na=b[7]&65535;H(this,b[8]);Rc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Gc(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],m=e[g++];k--;)h[f++]=m;e=h}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.oa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.N[b]=c;this.la++;d=!0;break;default:d=this.parent.oa.call(this,a,b,c)}return d};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function J(a){return a.W<<8|a.Z}
function pc(a){void 0===a.ub&&(a.ub=0);void 0===a.hb&&(a.hb=-1);void 0===a.ib&&(a.ib=-1);a.C.fb=0<=a.ub&&0<a.hb;a.C.fb&&(a.tb=0,a.O=a.ub-a.M)}function Ec(a,b){if(a.C.fb){var c=!1;a.tb=a.tb+a.yc()|0;a.O-=b;0>=a.O&&(a.O+=a.hb,c=!0);0<=a.ib&&a.ib<=Fc(a)&&(a.hb=a.ib=-1,pc(a),a.qa(),c=!0);c&&a.g(Fc(a)+" cycles: checksum="+t(a.tb))}}
l.pa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.N[b]=c;a=!0;break;case "run":this.N[b]=c;c.onclick=function(){var a;if(a=d.B)if(a=d.B,a.C.xa)a=!0;else{var b=null,c,g=eb(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.C.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.C.xa);c++);c==g.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.C.ready?"powered yet":"ready yet"+(b.Eb?" (waiting for notification)":""))+".");a=!1}a&&(d.C.Aa?d.qa():d.bb())};
a=!0;break;case "speed":this.N[b]=c;a=!0;break;case "setSpeed":this.N[b]=c,c.onclick=function(){Gc(d,d.Ra<<1,!0)},c.textContent=this.ab.toFixed(2)+"Mhz",a=!0}return a};function Hc(a,b,c){a.M+=b;c&&(a.L=a.b=0)}function Ic(a,b){var c=1;b&&1<a.Ra&&a.J&&(c=a.J/a.ha);a.wa=Math.round(1E3/30);a.fa=Math.floor(a.Y/30*c);b||(a.P=a.fa);a.ja=0}function Fc(a){return a.M+a.G+a.L-a.b}function oc(a){a.J=0;a.za=0;a.M=a.G=a.L=a.b=0;pc(a);Gc(a,1)}
function Gc(a,b,c){var d=!1;if(void 0!==b){.8>a.J/a.ab?b=1:d=!0;a.Ra=b;b=a.ha*a.Ra;if(a.ab!=b){a.ab=b;b=a.ab.toFixed(2)+"Mhz";var e=a.N.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.B&&a.B.xb()}Hc(a,a.G);a.G=0;a.D=pa();a.K=0;Ic(a);return d}function Jc(a,b){var c=a.w.length;a.w.push([-1,b]);return c}function Kc(a,b,c){var d=-1;0<=b&&b<a.w.length&&(d=a.Y*a.Ra/1E3*c,a.w[b][0]=d)}function Lc(a){a.L-=a.b;a.b=0}
l.bb=function(a){if(lb(this,!0)){if(!this.C.Aa){Gc(this);this.B&&this.B.start(this.D,Fc(this));this.C.Aa=!0;this.C.Sb=!0;this.I&&this.I.start();var b=this.N.run;b&&(b.textContent="Halt");this.B&&(this.B.Ja(!0),a&&this.B.xb(!0))}this.ja>=this.Y&&Ic(this,!0);this.ba=0;this.ea=pa();this.K&&(a=this.ea-this.K,a>this.wa&&(this.D+=a,this.D>this.ea&&(this.D=this.ea)));try{do{for(var c=this.C.fb?1:this.fa,d=this.w.length-1;0<=d;d--){var e=this.w[d];0>e[0]||c>e[0]&&(c=e[0])}this.kb(c);var f=this.L-this.b;a=
f;for(var h=this.w.length-1;0<=h;h--){var g=this.w[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ba+=f;this.G+=f;Hc(this,0,!0);Ec(this,f);this.P-=f;if(0>=this.P){this.P+=this.fa;15<=++this.za&&(this.B&&this.B.Ja(),this.za=0);break}}while(this.C.Aa)}catch(k){this.qa();rc(this);this.B&&this.B.stop(pa(),Fc(this));lb(this,!1);ob(this,k.stack||k.message);return}c=setTimeout;d=this.Fa;this.K=pa();e=this.wa;this.ba&&(e=Math.round(e*this.ba/this.fa));e=e-(this.K-this.ea);if(f=this.K-this.D)this.J=Math.round(this.G/
(10*f))/100,864E5<=f&&(this.M=0,Gc(this));if(0>e||this.J<this.ab)-1E3>e&&(this.D-=e),e=0;this.ja+=this.ba;this.K+=e;c(d,e)}else rc(this),this.B&&this.B.stop(pa(),Fc(this))};l.kb=function(){return 0};l.qa=function(a){mb(this,!0);Lc(this);Hc(this,this.G);this.G=0;if(this.C.Aa){this.C.Aa=!1;this.I&&this.I.stop();var b=this.N.run;b&&(b.textContent="Run")}this.C.complete=a};function rc(a,b){if(a.B){for(var c=a.B,d=0;d<c.G.length;d++)Mc(c.G[d],b);a.B.Ja(b)}}
function Nc(a){this.Ac=+a.model||8080;lc.call(this,a,1E6);this.la=Oc;oc(this);this.C.complete=this.C.Ld=!1;this.ma=0;this.ca=[];this.ra=0;Pc(this)}bb(Nc,lc);function Qc(a,b){a.ca.push(b)}l=Nc.prototype;l.reset=function(){this.C.Aa&&this.qa();Pc(this);oc(this);this.C.error=!1;this.parent.reset.call(this)};function Pc(a){a.i=0;a.S=0;a.T=0;a.U=0;a.V=0;a.W=0;a.Z=0;a.oa=0;H(a,a.ra);Rc(a,0);a.j=0}function Sc(a,b){a.ra=b;H(a,b)}
l.yc=function(){var a=this.i+this.S+this.T+this.U+this.V+this.W+this.Z|0;return a=a+this.oa+this.R+Tc(this)|0};
l.save=function(){var a=new Uc(this);I(a,0,[this.i,this.S,this.T,this.U,this.V,this.W,this.Z,this.oa,this.R,Tc(this)]);I(a,1,[this.j,this.M,this.Ra]);for(var b=this.u,c=0,d=[],e=0;e<b.J;e++){var f=b.X[e];if(f.Na||f.xc){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,m=[];g<f.length;){for(var p=f[g],q=g+1;q<f.length&&f[q]===p;)q++;m[k++]=q-g;m[k++]=p;g=q}if(m.length<f.length){f=m;break a}}d[h]=f}}I(a,2,d);return a.data()};
l.restore=function(a){var b=a[0];this.i=b[0];this.S=b[1];this.T=b[2];this.U=b[3];this.V=b[4];this.W=b[5];this.Z=b[6];this.oa=b[7]&65535;H(this,b[8]);Rc(this,b[9]);b=a[1];this.j=b[0];this.M=b[1];Gc(this,b[3]);a:{b=this.u;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],m=e[g++];k--;)h[f++]=m;e=h}f=b.X[d];if(!f||!f.restore(e)){w("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
l.pa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.N[b]=c;this.ma++;d=!0;break;default:d=this.parent.pa.call(this,a,b,c)}return d};function Vc(a){return a.S<<8|a.T}function Wc(a,b){a.S=b>>8&255;a.T=b&255}function Xc(a){return a.U<<8|a.V}function Yc(a,b){a.U=b>>8&255;a.V=b&255}function J(a){return a.W<<8|a.Z}
function Zc(a,b){a.W=b>>8&255;a.Z=b&255}function H(a,b){a.R=b&65535}function $c(a){return a.da&256?1:0}function ad(a,b){a.da=a.da&255|b}function bd(a){return sb[a.ga&255]?4:0}function cd(a){return(a.ga^a.ya)&16?16:0}function dd(a){return a.da&255?0:64}function ed(a){return a.ga&128?128:0}function Tc(a){return a.ua&-214|ed(a)|dd(a)|cd(a)|bd(a)|$c(a)}function Rc(a,b){a.da=a.ga=a.ya=0;b&1&&(a.da|=256);b&4||(a.ga|=1);b&16&&(a.ya|=16);b&64||(a.da|=255);b&128&&(a.ga^=192);a.ua=a.ua&-726|b&512|2}
function fd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b)&255}function gd(a,b){a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?1:0))&255}function hd(a,b){a.da=a.ga=a.ya=a.i&b;(a.i|b)&8&&(a.ya^=16);return a.da}function id(a,b){a.ya=b^255;b=a.ga=b+255&255;a.da=a.da&-256|b;return b}function jd(a,b){a.ya=b;b=a.ga=b+1&255;a.da=a.da&-256|b;return b}function kd(a,b){return a.ga=a.da=a.ya=a.i|b}function K(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+1^256)&255}
function ld(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function md(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function L(a){var b=a.aa(a.R);H(a,a.R+1);return b}function M(a){var b=a.u.$a(a.R);H(a,a.R+2);return b}function N(a){var b=a.u.$a(a.na);a.na=a.na+2&65535;return b}function P(a,b){a.na=a.na-2&65535;a.u.Ib(a.na,b)}
function Gd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.ka[199|b<<3].call(a)}return a.j&256?(Lc(a),!1):!0}function Hd(a,b){a.j|=1<<b;a.ua&512&&Lc(a)}function Q(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(ob(a,"Value for "+b+" is invalid"),a.pa()),c=!a.C.Aa||a.C.vc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
l.Ja=function(a){this.la&&(a||!this.C.Aa||this.C.vc)&&(Q(this,"A",this.i),Q(this,"B",this.S),Q(this,"C",this.T),Q(this,"BC",Vc(this),4),Q(this,"D",this.U),Q(this,"E",this.V),Q(this,"DE",Xc(this),4),Q(this,"H",this.W),Q(this,"L",this.Z),Q(this,"HL",J(this),4),Q(this,"SP",this.na,4),Q(this,"PC",this.R,4),a=Tc(this),Q(this,"PS",a,4),Q(this,"IF",a&512?1:0,1),Q(this,"SF",a&128?1:0,1),Q(this,"ZF",a&64?1:0,1),Q(this,"AF",a&16?1:0,1),Q(this,"PF",a&4?1:0,1),Q(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
this.C.Aa&&this.K?this.K.toFixed(2)+"Mhz":"Stopped"};l.kb=function(a){this.C.complete=!0;var b=this.C.Ld=this.H&&Id(this.H),c=a?this.C.Sb?0:1:-1;this.C.Sb=!1;this.L=this.b=a;if(Gd(this)){do{if(b){if(Jd(this.H,this.R,c)){this.pa();break}c=1}this.ka[L(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Ma(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nc(d);hb(d,c)}});function Kd(){this.b-=4}
function ld(a,b){b^=255;a.ya=a.i^b;return a.ga=(a.da=a.i+b+(a.da&256?0:1)^256)&255}function md(a,b){return a.ga=a.da=a.ya=a.i^b}l.aa=function(a){return this.u.aa(a)};l.va=function(a,b){this.u.va(a,b)};function L(a){var b=a.aa(a.R);H(a,a.R+1);return b}function M(a){var b=a.u.$a(a.R);H(a,a.R+2);return b}function N(a){var b=a.u.$a(a.oa);a.oa=a.oa+2&65535;return b}function P(a,b){a.oa=a.oa-2&65535;a.u.Ib(a.oa,b)}
function Gd(a){if(a.b&&a.j&255&&a.ua&512){for(var b=0;8>b&&!(a.j&1<<b);b++);a.j&=~(0>b?255:1<<b);a.ua&=-513;a.j&=-257;a.la[199|b<<3].call(a)}return a.j&256?(Lc(a),!1):!0}function Hd(a,b){a.j|=1<<b;a.ua&512&&Lc(a)}function Q(a,b,c,d){d=d||2;a.N[b]&&(void 0===c&&(ob(a,"Value for "+b+" is invalid"),a.qa()),c=!a.C.Aa||a.C.vc?t(c,d):"--------".substr(0,d),a.N[b].textContent!=c&&(a.N[b].textContent=c))}
l.Ja=function(a){this.ma&&(a||!this.C.Aa||this.C.vc)&&(Q(this,"A",this.i),Q(this,"B",this.S),Q(this,"C",this.T),Q(this,"BC",Vc(this),4),Q(this,"D",this.U),Q(this,"E",this.V),Q(this,"DE",Xc(this),4),Q(this,"H",this.W),Q(this,"L",this.Z),Q(this,"HL",J(this),4),Q(this,"SP",this.oa,4),Q(this,"PC",this.R,4),a=Tc(this),Q(this,"PS",a,4),Q(this,"IF",a&512?1:0,1),Q(this,"SF",a&128?1:0,1),Q(this,"ZF",a&64?1:0,1),Q(this,"AF",a&16?1:0,1),Q(this,"PF",a&4?1:0,1),Q(this,"CF",a&1?1:0,1));if(a=this.N.speed)a.textContent=
this.C.Aa&&this.J?this.J.toFixed(2)+"Mhz":"Stopped"};l.kb=function(a){this.C.complete=!0;var b=this.C.Ld=this.H&&Id(this.H),c=a?this.C.Sb?0:1:-1;this.C.Sb=!1;this.L=this.b=a;if(Gd(this)){do{if(b){if(Jd(this.H,this.R,c)){this.qa();break}c=1}this.la[L(this)].call(this)}while(0<this.b)}return this.C.complete?this.L-this.b:void 0===this.C.complete?0:-1};Ma(function(){for(var a=D(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Nc(d);hb(d,c)}});function Kd(){this.b-=4}
function Ld(){H(this,M(this));this.b-=10}function Md(){H(this,N(this));this.b-=10}function Nd(){var a=M(this);P(this,this.R);H(this,a);this.b-=17}
var Oc=[Kd,function(){Wc(this,M(this));this.b-=10},function(){this.va(Vc(this),this.i);this.b-=7},function(){Wc(this,Vc(this)+1);this.b-=5},function(){this.S=jd(this,this.S);this.b-=5},function(){this.S=id(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|a>>8;ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Vc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Vc(this));this.b-=7},function(){Wc(this,Vc(this)-1);this.b-=
5},function(){this.T=jd(this,this.T);this.b-=5},function(){this.T=id(this,this.T);this.b-=5},function(){this.T=L(this);this.b-=7},function(){var a=this.i<<8&256;this.i=(a|this.i)>>1;ad(this,a);this.b-=4},Kd,function(){Yc(this,M(this));this.b-=10},function(){this.va(Xc(this),this.i);this.b-=7},function(){Yc(this,Xc(this)+1);this.b-=5},function(){this.U=jd(this,this.U);this.b-=5},function(){this.U=id(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){var a=this.i<<1;this.i=a&255|
$c(this);ad(this,a&256);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+Xc(this));ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(Xc(this));this.b-=7},function(){Yc(this,Xc(this)-1);this.b-=5},function(){this.V=jd(this,this.V);this.b-=5},function(){this.V=id(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){var a=this.i<<8;this.i=($c(this)<<8|this.i)>>1;ad(this,a&256);this.b-=4},Kd,function(){Zc(this,M(this));this.b-=10},function(){var a=M(this);this.u.Ib(a,J(this));
this.b-=16},function(){Zc(this,J(this)+1);this.b-=5},function(){this.W=jd(this,this.W);this.b-=5},function(){this.W=id(this,this.W);this.b-=5},function(){this.W=L(this);this.b-=7},function(){var a=0,b=$c(this);if(cd(this)||9<(this.i&15))a|=6;if(b||154<=this.i)a|=96,b=1;this.i=fd(this,a);ad(this,b?256:0);this.b-=4},Kd,function(){var a;Zc(this,a=J(this)+J(this));ad(this,a>>8&256);this.b-=10},function(){var a;a=M(this);a=this.u.$a(a);Zc(this,a);this.b-=16},function(){Zc(this,J(this)-1);this.b-=5},function(){this.Z=
jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Kd,function(){this.na=M(this)&65535;this.b-=10},function(){this.va(M(this),this.i);this.b-=13},function(){this.na=this.na+1&65535;this.b-=5},function(){var a=J(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=J(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(J(this),L(this));this.b-=10},function(){this.da|=256;this.b-=
4},Kd,function(){var a;Zc(this,a=J(this)+this.na);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(M(this));this.b-=13},function(){this.na=this.na-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W;
jd(this,this.Z);this.b-=5},function(){this.Z=id(this,this.Z);this.b-=5},function(){this.Z=L(this);this.b-=7},function(){this.i=~this.i&255;this.b-=4},Kd,function(){this.oa=M(this)&65535;this.b-=10},function(){this.va(M(this),this.i);this.b-=13},function(){this.oa=this.oa+1&65535;this.b-=5},function(){var a=J(this);this.va(a,jd(this,this.aa(a)));this.b-=10},function(){var a=J(this);this.va(a,id(this,this.aa(a)));this.b-=10},function(){this.va(J(this),L(this));this.b-=10},function(){this.da|=256;this.b-=
4},Kd,function(){var a;Zc(this,a=J(this)+this.oa);ad(this,a>>8&256);this.b-=10},function(){this.i=this.aa(M(this));this.b-=13},function(){this.oa=this.oa-1&65535;this.b-=5},function(){this.i=jd(this,this.i);this.b-=5},function(){this.i=id(this,this.i);this.b-=5},function(){this.i=L(this);this.b-=7},function(){ad(this,$c(this)?0:256);this.b-=4},function(){this.b-=5},function(){this.S=this.T;this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W;
this.b-=5},function(){this.S=this.Z;this.b-=5},function(){this.S=this.aa(J(this));this.b-=7},function(){this.S=this.i;this.b-=5},function(){this.T=this.S;this.b-=5},function(){this.b-=5},function(){this.T=this.U;this.b-=5},function(){this.T=this.V;this.b-=5},function(){this.T=this.W;this.b-=5},function(){this.T=this.Z;this.b-=5},function(){this.T=this.aa(J(this));this.b-=7},function(){this.T=this.i;this.b-=5},function(){this.U=this.S;this.b-=5},function(){this.U=this.T;this.b-=5},function(){this.b-=
5},function(){this.U=this.V;this.b-=5},function(){this.U=this.W;this.b-=5},function(){this.U=this.Z;this.b-=5},function(){this.U=this.aa(J(this));this.b-=7},function(){this.U=this.i;this.b-=5},function(){this.V=this.S;this.b-=5},function(){this.V=this.T;this.b-=5},function(){this.V=this.U;this.b-=5},function(){this.b-=5},function(){this.V=this.W;this.b-=5},function(){this.V=this.Z;this.b-=5},function(){this.V=this.aa(J(this));this.b-=7},function(){this.V=this.i;this.b-=5},function(){this.W=this.S;
this.b-=5},function(){this.W=this.T;this.b-=5},function(){this.W=this.U;this.b-=5},function(){this.W=this.V;this.b-=5},function(){this.b-=5},function(){this.W=this.Z;this.b-=5},function(){this.W=this.aa(J(this));this.b-=7},function(){this.W=this.i;this.b-=5},function(){this.Z=this.S;this.b-=5},function(){this.Z=this.T;this.b-=5},function(){this.Z=this.U;this.b-=5},function(){this.Z=this.V;this.b-=5},function(){this.Z=this.W;this.b-=5},function(){this.b-=5},function(){this.Z=this.aa(J(this));this.b-=
7},function(){this.Z=this.i;this.b-=5},function(){this.va(J(this),this.S);this.b-=7},function(){this.va(J(this),this.T);this.b-=7},function(){this.va(J(this),this.U);this.b-=7},function(){this.va(J(this),this.V);this.b-=7},function(){this.va(J(this),this.W);this.b-=7},function(){this.va(J(this),this.Z);this.b-=7},function(){var a=this.R-1;if(this.ca.length)for(var b=0;b<this.ca.length;b++)if(this.ca[b](a))return;this.b-=7;this.j|=256;Lc(this);this.H&&kb(this,-2147483648)?(H(this,a),this.H.pa()):this.ua&
512||(this.H&&H(this,a),this.pa())},function(){this.va(J(this),this.i);this.b-=7},function(){this.i=this.S;this.b-=5},function(){this.i=this.T;this.b-=5},function(){this.i=this.U;this.b-=5},function(){this.i=this.V;this.b-=5},function(){this.i=this.W;this.b-=5},function(){this.i=this.Z;this.b-=5},function(){this.i=this.aa(J(this));this.b-=7},function(){this.b-=5},function(){this.i=fd(this,this.S);this.b-=4},function(){this.i=fd(this,this.T);this.b-=4},function(){this.i=fd(this,this.U);this.b-=4},
7},function(){this.Z=this.i;this.b-=5},function(){this.va(J(this),this.S);this.b-=7},function(){this.va(J(this),this.T);this.b-=7},function(){this.va(J(this),this.U);this.b-=7},function(){this.va(J(this),this.V);this.b-=7},function(){this.va(J(this),this.W);this.b-=7},function(){this.va(J(this),this.Z);this.b-=7},function(){var a=this.R-1;if(this.ca.length)for(var b=0;b<this.ca.length;b++)if(this.ca[b](a))return;this.b-=7;this.j|=256;Lc(this);this.H&&kb(this,-2147483648)?(H(this,a),this.H.qa()):this.ua&
512||(this.H&&H(this,a),this.qa())},function(){this.va(J(this),this.i);this.b-=7},function(){this.i=this.S;this.b-=5},function(){this.i=this.T;this.b-=5},function(){this.i=this.U;this.b-=5},function(){this.i=this.V;this.b-=5},function(){this.i=this.W;this.b-=5},function(){this.i=this.Z;this.b-=5},function(){this.i=this.aa(J(this));this.b-=7},function(){this.b-=5},function(){this.i=fd(this,this.S);this.b-=4},function(){this.i=fd(this,this.T);this.b-=4},function(){this.i=fd(this,this.U);this.b-=4},
function(){this.i=fd(this,this.V);this.b-=4},function(){this.i=fd(this,this.W);this.b-=4},function(){this.i=fd(this,this.Z);this.b-=4},function(){this.i=fd(this,this.aa(J(this)));this.b-=7},function(){this.i=fd(this,this.i);this.b-=4},function(){this.i=gd(this,this.S);this.b-=4},function(){this.i=gd(this,this.T);this.b-=4},function(){this.i=gd(this,this.U);this.b-=4},function(){this.i=gd(this,this.V);this.b-=4},function(){this.i=gd(this,this.W);this.b-=4},function(){this.i=gd(this,this.Z);this.b-=
4},function(){this.i=gd(this,this.aa(J(this)));this.b-=7},function(){this.i=gd(this,this.i);this.b-=4},function(){this.i=K(this,this.S);this.b-=4},function(){this.i=K(this,this.T);this.b-=4},function(){this.i=K(this,this.U);this.b-=4},function(){this.i=K(this,this.V);this.b-=4},function(){this.i=K(this,this.W);this.b-=4},function(){this.i=K(this,this.Z);this.b-=4},function(){this.i=K(this,this.aa(J(this)));this.b-=7},function(){this.i=K(this,this.i);this.b-=4},function(){this.i=ld(this,this.S);this.b-=
4},function(){this.i=ld(this,this.T);this.b-=4},function(){this.i=ld(this,this.U);this.b-=4},function(){this.i=ld(this,this.V);this.b-=4},function(){this.i=ld(this,this.W);this.b-=4},function(){this.i=ld(this,this.Z);this.b-=4},function(){this.i=ld(this,this.aa(J(this)));this.b-=7},function(){this.i=ld(this,this.i);this.b-=4},function(){this.i=hd(this,this.S);this.b-=4},function(){this.i=hd(this,this.T);this.b-=4},function(){this.i=hd(this,this.U);this.b-=4},function(){this.i=hd(this,this.V);this.b-=
@ -81,77 +81,77 @@ $c(this)||H(this,a);this.b-=10},function(){var a=L(this);Ub(this.u,a,this.i,this
255;this.b-=10},function(){var a=M(this);$c(this)&&(P(this,this.R),H(this,a),this.b-=6);this.b-=11},Nd,function(){this.i=ld(this,L(this));this.b-=7},function(){P(this,this.R);H(this,24);this.b-=11},function(){bd(this)||(H(this,N(this)),this.b-=6);this.b-=5},function(){Zc(this,N(this));this.b-=10},function(){var a=M(this);bd(this)||H(this,a);this.b-=10},function(){var a=N(this);P(this,J(this));Zc(this,a);this.b-=18},function(){var a=M(this);bd(this)||(P(this,this.R),H(this,a),this.b-=6);this.b-=11},
function(){P(this,J(this));this.b-=11},function(){this.i=hd(this,L(this));this.b-=7},function(){P(this,this.R);H(this,32);this.b-=11},function(){bd(this)&&(H(this,N(this)),this.b-=6);this.b-=5},function(){H(this,J(this));this.b-=5},function(){var a=M(this);bd(this)&&H(this,a);this.b-=10},function(){var a=J(this);Zc(this,Xc(this));Yc(this,a);this.b-=5},function(){var a=M(this);bd(this)&&(P(this,this.R),H(this,a),this.b-=6);this.b-=11},Nd,function(){this.i=md(this,L(this));this.b-=7},function(){P(this,
this.R);H(this,40);this.b-=11},function(){ed(this)||(H(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Rc(this,a&255|this.ua&-256);this.i=a>>8;this.b-=10},function(){var a=M(this);ed(this)||H(this,a);this.b-=10},function(){this.ua&=-513;this.b-=4},function(){var a=M(this);ed(this)||(P(this,this.R),H(this,a),this.b-=6);this.b-=11},function(){P(this,Tc(this)&255|this.i<<8);this.b-=11},function(){this.i=kd(this,L(this));this.b-=7},function(){P(this,this.R);H(this,48);this.b-=11},function(){ed(this)&&
(H(this,N(this)),this.b-=6);this.b-=5},function(){this.na=J(this)&65535;this.b-=5},function(){var a=M(this);ed(this)&&H(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Gd(this)},function(){var a=M(this);ed(this)&&(P(this,this.R),H(this,a),this.b-=6);this.b-=11},Nd,function(){K(this,L(this));this.b-=7},function(){P(this,this.R);H(this,56);this.b-=11}];
(H(this,N(this)),this.b-=6);this.b-=5},function(){this.oa=J(this)&65535;this.b-=5},function(){var a=M(this);ed(this)&&H(this,a);this.b-=10},function(){this.ua|=512;this.b-=4;Gd(this)},function(){var a=M(this);ed(this)&&(P(this,this.R),H(this,a),this.b-=6);this.b-=11},Nd,function(){K(this,L(this));this.b-=7},function(){P(this,this.R);H(this,56);this.b-=11}];
function S(a){z.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!Od[b]&&Oa("Unrecognized ChipSet model: "+b);this.w=Od[b]||{};a.sound&&(this.fa=null,window&&(this.fa=window.AudioContext||window.webkitAudioContext),this.fa&&new this.fa);F(this)}bb(S);
var T={Ba:1978.1,wd:{Ca:0,qe:1,ue:16,Be:32,Ke:64,Je:128,mb:14},Ya:{Ca:1,Lc:1,od:2,kd:4,ld:16,md:32,nd:64,mb:8},xd:{Ca:2,pe:3,Se:4,re:8,Fe:16,Ge:32,He:64,se:128,mb:0},Oe:{Ca:3},Me:{Ca:2,Ce:7},Qe:{Ca:3,Te:1,Pe:2,Ie:4,ze:8,te:16,je:32},Ne:{Ca:4},Re:{Ca:5,ve:1,we:2,xe:4,ye:8,Ue:16}},U={Ba:100,Ka:{Ca:66,mc:1,bc:2,gd:4,Ee:8,De:16,dc:32,cc:64,Yb:128},Jc:{Ca:66,INIT:0},Ta:{Ca:194,le:0,Wb:16,qd:32,ic:48,Tc:0,Uc:32},Ab:{Ca:162,Le:0,Wc:0,Sc:0,Vc:0,Rc:0},La:{Ae:{Ca:98},Sa:{Gc:0,Fc:1,td:2,Cd:4,Mc:5,rd:6,ud:7},
Cb:16383}},Od={SI1978:T,VT100:U};S.prototype.oa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.K=vb(a,"Keyboard");this.Fa=vb(a,"SerialPort");this.video=vb(a,"Video");Gb(b,this,this.w.Gb);Tb(b,this,this.w.Hb);if(d){var e=this;Pd(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=v(e.I[b]);e.H.g(a)})}};S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
Cb:16383}},Od={SI1978:T,VT100:U};S.prototype.pa=function(){return!1};S.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;this.B=a;this.J=vb(a,"Keyboard");this.Fa=vb(a,"SerialPort");this.video=vb(a,"Video");Gb(b,this,this.w.Gb);Tb(b,this,this.w.Hb);if(d){var e=this;Pd(d,16384,function(){for(var a="",b=0;b<e.I.length;b++)a&&(a+=b&&b%10?", ":",\n"),a+=v(e.I[b]);e.H.g(a)})}};S.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
S.prototype.Ia=function(a){return a?this.save():!0};T.INIT=[[T.wd.mb,T.Ya.mb,T.xd.mb,0,0,0,0]];
U.INIT=[[U.Jc.INIT,U.Ka.bc|U.Ka.gd],[U.Ta.Tc,U.Ta.Uc],[U.Ab.Wc,U.Ab.Sc,U.Ab.Vc,U.Ab.Rc],[0,0,0,0,[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11776,11984,11888,11776,11808,11776,12E3,12E3,11901,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];l=S.prototype;l.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ja("reset error")};
l.save=function(){var a=new Uc(this);switch(this.w.Ba){case T.Ba:I(a,0,[this.wa,this.G,this.za,this.Y,this.ea,this.qa,this.la]);break;case U.Ba:I(a,0,[this.ha,this.J]),I(a,1,[this.L,this.M]),I(a,2,[this.D,this.ba,this.ka,this.ia]),I(a,3,[this.P,this.j,this.O,this.ca,this.I])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case T.Ba:return this.wa=b[0],this.G=b[1],this.za=b[2],this.Y=b[3],this.ea=b[4],this.qa=b[5],this.la=b[6],!0;case U.Ba:return this.ha=b[0],this.J=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.ka=b[2],this.ia=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.I=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Rd=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c};
l.Sd=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Td=function(a,b){var c=this.za;E(this,a,null,b,"STATUS2",c,!0);return c};l.Qd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.$d=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.be=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.qa=b};l.ae=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
l.ce=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.la=b};l.de=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Qd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Ud=function(a,b){var c=this.J,c=c&~U.Ka.cc;if((Fc(this.b)&64)<<1&&(c|=U.Ka.cc,c!=this.J)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case U.La.Sa.ud:break;case U.La.Sa.Fc:this.P=this.P<<1|d;break;case U.La.Sa.Mc:d=Qd(this);this.I[d]=U.La.Cb;jb(this,"doNVRCommand(): erase data at addr "+v(d));break;case U.La.Sa.Gc:this.j=this.j<<1|d;break;case U.La.Sa.Cd:d=Qd(this);e=this.j&U.La.Cb;this.I[d]=e;jb(this,"doNVRCommand(): write data "+v(e)+" to addr "+v(d));break;case U.La.Sa.rd:d=Qd(this);e=this.I[d];
null==e&&(e=U.La.Cb);this.j=e;jb(this,"doNVRCommand(): read data "+v(e)+" from addr "+v(d));break;case U.La.Sa.td:this.j<<=1;this.ca=this.j&U.La.Cb+1;break;default:jb(this,"doNVRCommand(): unrecognized command "+ba(e))}}c&=~U.Ka.dc;this.ca&&(c|=U.Ka.dc);c&=~U.Ka.Yb;if(d=this.K){d=this.K;if(e=d.D)e=d.b,e=Fc(d.b)>=d.J+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=U.Ka.Yb);c&=~U.Ka.mc;this.Fa&&this.Fa.Da&1&&(c|=U.Ka.mc);this.J=c;E(this,a,null,b,"FLAGS",c);return c};
l.ee=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.he=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.ge=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,jb(b,"updateScrollOffset("+a+")"),b.nb!==a&&((b.nb=a)?Mc(b,!0):b.pb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.ka=3-a}break;case 3:this.ia=a}};
l.fe=function(a,b,c){E(this,a,b,c,"DC011");b&U.Ta.qd?(b&=U.Ta.ic,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==U.Ta.ic?50:60,jb(a,"updateRate("+b+")"),a.qc=b))):(b&=U.Ta.Wb,this.L!=b&&(this.L=b,this.video&&(a=this.L==U.Ta.Wb?132:80,b=this.video,jb(b,"updateDimensions("+a+","+(80<a&&this.J&U.Ka.bc?14:24)+")"),b.ca=a,b.ra=b.fc,80<a&&b.ra--,Rd(b)&&Sd(b))))};T.Gb={0:S.prototype.Rd,1:S.prototype.Sd,2:S.prototype.Td,3:S.prototype.Qd};
[11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11904,11776,11784,11918,11808,11984,11856,11776,11808,11776,12E3,12E3,11881,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]];l=S.prototype;l.reset=function(){this.w.INIT&&!this.restore(this.w.INIT)&&this.ka("reset error")};
l.save=function(){var a=new Uc(this);switch(this.w.Ba){case T.Ba:I(a,0,[this.wa,this.G,this.za,this.Y,this.ea,this.ra,this.ma]);break;case U.Ba:I(a,0,[this.ha,this.K]),I(a,1,[this.L,this.M]),I(a,2,[this.D,this.ba,this.la,this.ja]),I(a,3,[this.P,this.j,this.O,this.ca,this.I])}return a.data()};
l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.w.Ba){case T.Ba:return this.wa=b[0],this.G=b[1],this.za=b[2],this.Y=b[3],this.ea=b[4],this.ra=b[5],this.ma=b[6],!0;case U.Ba:return this.ha=b[0],this.K=b[1],b=a[1],this.L=b[0],this.M=b[1],b=a[2],this.D=b[0],this.ba=b[1],this.la=b[2],this.ja=b[3],b=a[3],this.P=b[0],this.j=b[1],this.O=b[2],this.ca=b[3],this.I=b[4],!0}return!1};l.start=function(){};l.stop=function(){};l.Rd=function(a,b){var c=this.wa;E(this,a,null,b,"STATUS0",c,!0);return c};
l.Sd=function(a,b){var c=this.G;E(this,a,null,b,"STATUS1",c,!0);return c};l.Td=function(a,b){var c=this.za;E(this,a,null,b,"STATUS2",c,!0);return c};l.Qd=function(a,b){var c=this.Y>>8-this.ea&255;E(this,a,null,b,"SHIFT.RESULT",c,!0);return c};l.$d=function(a,b,c){E(this,a,b,c,"SHIFT.COUNT",null,!0);this.ea=b};l.be=function(a,b,c){E(this,a,b,c,"SOUND1",null,!0);this.ra=b};l.ae=function(a,b,c){E(this,a,b,c,"SHIFT.DATA",null,!0);this.Y=b<<8|this.Y>>8};
l.ce=function(a,b,c){E(this,a,b,c,"SOUND2",null,!0);this.ma=b};l.de=function(a,b,c){E(this,a,b,c,"WATCHDOG",null,!0)};function Qd(a){var b=0,c=0,d=~a.P;for(a=0;10>a;a++)d&1&&(b=9-a),d>>=1;for(a=0;10>a;a++)d&1&&(c=9-a),d>>=1;return 10*b+c}
l.Ud=function(a,b){var c=this.K,c=c&~U.Ka.cc;if((Fc(this.b)&64)<<1&&(c|=U.Ka.cc,c!=this.K)){var d,e;d=this.O&1;e=this.O>>1&7;switch(e){case U.La.Sa.ud:break;case U.La.Sa.Fc:this.P=this.P<<1|d;break;case U.La.Sa.Mc:d=Qd(this);this.I[d]=U.La.Cb;jb(this,"doNVRCommand(): erase data at addr "+v(d));break;case U.La.Sa.Gc:this.j=this.j<<1|d;break;case U.La.Sa.Cd:d=Qd(this);e=this.j&U.La.Cb;this.I[d]=e;jb(this,"doNVRCommand(): write data "+v(e)+" to addr "+v(d));break;case U.La.Sa.rd:d=Qd(this);e=this.I[d];
null==e&&(e=U.La.Cb);this.j=e;jb(this,"doNVRCommand(): read data "+v(e)+" from addr "+v(d));break;case U.La.Sa.td:this.j<<=1;this.ca=this.j&U.La.Cb+1;break;default:jb(this,"doNVRCommand(): unrecognized command "+ba(e))}}c&=~U.Ka.dc;this.ca&&(c|=U.Ka.dc);c&=~U.Ka.Yb;if(d=this.J){d=this.J;if(e=d.D)e=d.b,e=Fc(d.b)>=d.K+e.Y*e.Ra/1E3*1.2731488;e&&(d.D=!1);d=!d.D}d&&(c|=U.Ka.Yb);c&=~U.Ka.mc;this.Fa&&this.Fa.Da&1&&(c|=U.Ka.mc);this.K=c;E(this,a,null,b,"FLAGS",c);return c};
l.ee=function(a,b,c){E(this,a,b,c,"BRIGHTNESS");this.ha=b};l.he=function(a,b,c){E(this,a,b,c,"NVR.LATCH");this.O=b};l.ge=function(a,b,c){E(this,a,b,c,"DC012");a=b&3;switch(b>>2&3){case 0:this.D=this.D&-4|a;break;case 1:this.D=this.D&-13|a<<2;this.video&&(b=this.video,a=this.D,jb(b,"updateScrollOffset("+a+")"),b.nb!==a&&((b.nb=a)?Mc(b,!0):b.pb=!0));break;case 2:switch(a){case 0:this.ba=~this.ba;break;case 2:case 3:this.la=3-a}break;case 3:this.ja=a}};
l.fe=function(a,b,c){E(this,a,b,c,"DC011");b&U.Ta.qd?(b&=U.Ta.ic,this.M!=b&&(this.M=b,this.video&&(a=this.video,b=this.M==U.Ta.ic?50:60,jb(a,"updateRate("+b+")"),a.qc=b))):(b&=U.Ta.Wb,this.L!=b&&(this.L=b,this.video&&(a=this.L==U.Ta.Wb?132:80,b=this.video,jb(b,"updateDimensions("+a+","+(80<a&&this.K&U.Ka.bc?14:24)+")"),b.ca=a,b.sa=b.fc,80<a&&b.sa--,Rd(b)&&Sd(b))))};T.Gb={0:S.prototype.Rd,1:S.prototype.Sd,2:S.prototype.Td,3:S.prototype.Qd};
T.Hb={2:S.prototype.$d,3:S.prototype.be,4:S.prototype.ae,5:S.prototype.ce,6:S.prototype.de};U.Gb={66:S.prototype.Ud};U.Hb={66:S.prototype.ee,98:S.prototype.he,162:S.prototype.ge,194:S.prototype.fe};Ma(function(){for(var a=D(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new S(d);hb(d,c)}});
function Td(a){z.call(this,"ROM",a,Td);this.B=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.I=a.file;this.K=ea(this.I);if(this.I){a=this.I;var b=fa(this.K);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Ud(c,a,b,f)})}}bb(Td);var Vd=[0,5];Td.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Wd(this)};
function Td(a){z.call(this,"ROM",a,Td);this.B=null;this.D=a.addr;this.j=a.size;this.G=a.writable;this.w=a.alias;this.I=a.file;this.J=ea(this.I);if(this.I){a=this.I;var b=fa(this.J);"json"!=b&&"hex"!=b&&(a=ha()+"/api/v1/dump?file="+this.I+"&format=bytes&decimal=true");var c=this;sa(a,null,!0,function(a,b,f){Ud(c,a,b,f)})}}bb(Td);var Vd=[0,5];Td.prototype.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;Wd(this)};
Td.prototype.Ea=function(){if(this.Qa){if(this.H){var a=this.H,b=this.id,c=this.D,d=this.j,e=this.Qa,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,m=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],q=oa(p,k,a.uc);0>q&&p.splice(-(q+1),0,k)}m&&(g.a=m.replace(/''/g,'"'))}a.G.push({gf:b,F:c,Wd:d,Qa:e,tc:f})}delete this.Qa}return!0};Td.prototype.Ia=function(){return!0};
function Ud(a,b,c,d){if(d)a.ja("Unable to load system ROM (error "+d+": "+b+")");else{db(a.Bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(g){a.ja("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
function Ud(a,b,c,d){if(d)a.ka("Unable to load system ROM (error "+d+": "+b+")");else{db(a.Bb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.B=f;else if(h)for(a.B=Array(4*h.length),d=c=0;c<h.length;c++)a.B[d++]=h[c]&255,a.B[d++]=h[c]>>8&255,a.B[d++]=h[c]>>16&255,a.B[d++]=h[c]>>24&255;else a.B=e;a.Qa=e.symbols;if(!a.B.length){w("Empty ROM: "+b);return}if(1==a.B.length){w(a.B[0]);return}}catch(g){a.ka("ROM data error: "+g.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]=aa(b[e],16);Wd(a)}}
function Wd(a){if(!nb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)ob(a,"ROM size ("+t(a.B.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.D>>>f.sa;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ha;f=d.u;d=d.j;h=0;for(e>>>=f.sa;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}}
function Xd(a,b){if(zb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Eb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Vd.length;c++)Eb(a.u,Vd[c],118);Qc(a.b,function(a){return function(b){if(0<=Vd.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.T){case 2:Yd(a,String.fromCharCode(h.V));break;case 9:for(var k=Xc(h),m="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;m+=String.fromCharCode(q)}Yd(a,m);break;default:c=!1}c?Md.call(h):g&&(a.g("\nCP/M vector "+v(b)),H(h,b),g.pa());b=!0}else b=!1;
function Wd(a){if(!nb(a))if(!a.I)F(a);else if(a.B&&a.u){a.j||(a.j=a.B.length);if(a.B.length!=a.j)ob(a,"ROM size ("+t(a.B.length,8,!0)+") does not match specified size ("+t(a.j,8,!0)+")");else if(Xd(a,a.D)){var b=[];"number"==typeof a.w?b.push(a.w):null!=a.w&&a.w.length&&(b=a.w);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,h=d.j,g=[],k=d.D>>>f.ia;0<h&&k<f.X.length;)g.push(f.X[k++]),h-=f.Ha;f=d.u;d=d.j;h=0;for(e>>>=f.ia;0<d&&e<f.X.length;){k=g[h++];if(!k)break;f.X[e++]=k;d-=f.Ha}}delete a.B}F(a)}}
function Xd(a,b){if(zb(a.u,b,a.j,a.G?1:ac)){var c;for(c=0;c<a.B.length;c++)Eb(a.u,b+c,a.B[c]);if(a.G&&256==b){for(c=0;c<Vd.length;c++)Eb(a.u,Vd[c],118);Qc(a.b,function(a){return function(b){if(0<=Vd.indexOf(b)){var c=!1,h=a.b,g=a.H;if(5==b)switch(c=!0,h.T){case 2:Yd(a,String.fromCharCode(h.V));break;case 9:for(var k=Xc(h),m="",p=255;p--;){var q=a.b.aa(k++);if(36==q)break;m+=String.fromCharCode(q)}Yd(a,m);break;default:c=!1}c?Md.call(h):g&&(a.g("\nCP/M vector "+v(b)),H(h,b),g.qa());b=!0}else b=!1;
return b}}(a));Sc(a.b,b)}return!0}return!1}function Yd(a,b){b=b.replace(/\r/g,"");a.Ga&&(a.Ga.value+=b,a.Ga.scrollTop=a.Ga.scrollHeight)}Ma(function(){for(var a=D(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Td(d);hb(d,c)}});function Zd(a){z.call(this,"RAM",a,Zd);this.w=a.addr;this.j=a.size;this.B=!1}bb(Zd);l=Zd.prototype;l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.H=d;F(this)};l.Ea=function(a,b){b||this.reset();return!0};l.Ia=function(a){return a?this.save():!0};
l.reset=function(){!this.B&&this.j&&zb(this.u,this.w,this.j,1)&&(this.B=!0);this.B||w("No RAM allocated")};l.save=function(){return null};l.restore=function(){return!0};Ma(function(){for(var a=D(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Zd(d);hb(d,c)}});function $d(a){z.call(this,"Keyboard",a,$d,65536);(a=a.model)&&!ae[a]&&Oa("Unrecognized Keyboard8080 model: "+a);this.u=ae[a]||{};this.reset();F(this)}bb($d);var be={};be[n.Ub]=37;be[n.Xb]=39;be[n.Zb]=32;
var ce={Ba:1978.1,A:{},Vb:be,qb:{},Xa:{"1p":49,"2p":50,coin:51,left:37,right:39,fire:32}},V={Ba:100,A:{},Vb:{},qb:{},Xa:{setup:120},Hc:{Ca:130,INIT:127},Ma:{Ca:130,cd:1,bd:2,ad:4,$c:8,dd:16,ac:32,$b:63,vd:64,ke:128,INIT:0},Zc:127};V.A[46]=3;V.A[n.jd]=5;V.A[n.hd]=6;V.A[n.Ed]=7;V.A[n.yd]=8;V.A[n.Bd]=9;V.A[n.Q]=10;V.A[39]=16;V.A[221]=20;V.A[219]=21;V.A[n.Qc]=22;V.A[n.zd]=23;V.A[n.pd]=24;V.A[n.E]=25;V.A[49]=26;V.A[37]=32;V.A[40]=34;V.A[117]=35;V.A[19]=35;V.A[192]=36;V.A[189]=37;V.A[57]=38;V.A[55]=39;
V.A[52]=40;V.A[51]=41;V.A[27]=42;V.A[38]=48;V.A[114]=49;V.A[112]=50;V.A[8]=51;V.A[187]=52;V.A[48]=53;V.A[56]=54;V.A[54]=55;V.A[53]=56;V.A[50]=57;V.A[9]=58;V.A[103]=64;V.A[115]=65;V.A[113]=66;V.A[96]=67;V.A[118]=68;V.A[220]=69;V.A[n.Zb]=70;V.A[n.Yc]=71;V.A[n.Oc]=72;V.A[n.Nc]=73;V.A[n.Ub]=74;V.A[104]=80;V.A[2013]=81;V.A[98]=82;V.A[97]=83;V.A[222]=85;V.A[186]=86;V.A[n.Xc]=87;V.A[n.Pc]=88;V.A[n.Xb]=89;V.A[n.sd]=90;V.A[110]=96;V.A[116]=97;V.A[101]=98;V.A[100]=99;V.A[13]=100;V.A[190]=101;V.A[188]=102;
V.A[n.fd]=103;V.A[n.Ic]=104;V.A[n.Dd]=105;V.A[119]=106;V.A[105]=112;V.A[99]=113;V.A[102]=114;V.A[109]=115;V.A[191]=117;V.A[n.ed]=118;V.A[n[" "]]=119;V.A[n.Ad]=120;V.A[n.Kc]=121;V.A[n.Fd]=122;V.A[120]=123;V.A[17]=124;V.A[16]=125;V.A[20]=126;V.qb={l4:V.Ma.cd,l3:V.Ma.bd,l2:V.Ma.ad,l1:V.Ma.$c,locked:V.Ma.dd,local:V.Ma.ac,online:~V.Ma.ac};var ae={SI1978:ce,VT100:V};
$d.prototype.oa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.qb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return de(d,a,!0)},c.onkeyup=function(a){return de(d,a,!1)},!0;default:if(this.u.Xa&&void 0!==this.u.Xa[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();ee(a,b,!0)}}(this,this.u.Xa[b]),b=function(a,b){return function(){ee(a,b,!1)}}(this,this.u.Xa[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};$d.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=vb(a,"ChipSet");Gb(b,this,this.u.Gb);Tb(b,this,this.u.Hb)};$d.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};$d.prototype.Ia=function(a){return a?this.save():!0};V.INIT=[[V.Ma.INIT,V.Hc.INIT,!1,0,-1]];l=$d.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ja("reset error")};
l.save=function(){var a=new Uc(this);switch(this.u.Ba){case V.Ba:I(a,0,[this.K,this.G,this.D,this.J,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ba){case ce.Ba:return!0;case V.Ba:return this.K=b[0],fe(this,this.K&V.Ma.$b),this.G=b[1],this.D=b[2],this.J=b[3],this.w=b[4],!0}return!1};function fe(a,b){for(var c in a.u.qb){var d=a.N["led-"+c];if(d){var e=a.u.qb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
$d.prototype.pa=function(a,b,c){var d=this,e=a+"-"+b;if(void 0===this.N[e]){if("led"==a&&this.u.qb[b])return this.N[e]=c,!0;switch(b){case "kbd":return c.onkeydown=function(a){return de(d,a,!0)},c.onkeyup=function(a){return de(d,a,!1)},!0;default:if(this.u.Xa&&void 0!==this.u.Xa[b])return this.N[e]=c,a=function(a,b){return function(c){c.preventDefault();ee(a,b,!0)}}(this,this.u.Xa[b]),b=function(a,b){return function(){ee(a,b,!1)}}(this,this.u.Xa[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=
b):(c.onmousedown=a,c.onmouseup=c.onmouseout=b),!0}}return!1};$d.prototype.Pa=function(a,b,c,d){this.B=a;this.b=c;this.H=d;this.I=vb(a,"ChipSet");Gb(b,this,this.u.Gb);Tb(b,this,this.u.Hb)};$d.prototype.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};$d.prototype.Ia=function(a){return a?this.save():!0};V.INIT=[[V.Ma.INIT,V.Hc.INIT,!1,0,-1]];l=$d.prototype;l.reset=function(){this.j=[];this.u.INIT&&!this.restore(this.u.INIT)&&this.ka("reset error")};
l.save=function(){var a=new Uc(this);switch(this.u.Ba){case V.Ba:I(a,0,[this.J,this.G,this.D,this.K,-1])}return a.data()};l.restore=function(a){var b;if(a&&(b=a[0])&&b.length)switch(this.u.Ba){case ce.Ba:return!0;case V.Ba:return this.J=b[0],fe(this,this.J&V.Ma.$b),this.G=b[1],this.D=b[2],this.K=b[3],this.w=b[4],!0}return!1};function fe(a,b){for(var c in a.u.qb){var d=a.N["led-"+c];if(d){var e=a.u.qb[c],f=!!(b&e);e&e-1&&(f=!(b&~e));d.style.backgroundColor=f?"#ff0000":"#000000"}}}
function de(a,b,c){var d=!0,e;a:if(e=b.keyCode,e=a.u.Vb[e]||e,!a.u.A[e]){for(var f in a.u.Xa)if(a.u.Xa[f]===e){e=f;break a}e=null}e&&(d=ee(a,e,c),b.preventDefault());return d}
function ee(a,b,c){var d;a:{for(d=0;d<a.j.length;d++)if(a.j[d].Rb==b)break a;d=-1}if(c)0>d?a.j.push({Rb:b,Ob:Date.now(),Db:!1}):(a.j[d].Ob=Date.now(),a.j[d].Db=!1);else if(0<=d){if(!a.j[d].Db){var e=a.j[d].Ob;if(e&&100>Date.now()-e)return a.j[d].Db=!0,ge(a),!0}a.j.splice(d,1)}if(a.I){d=0;switch(b){case "1p":d=T.Ya.kd;break;case "2p":d=T.Ya.od;break;case "coin":d=T.Ya.Lc;break;case "left":d=T.Ya.md;break;case "right":d=T.Ya.nd;break;case "fire":d=T.Ya.ld}d&&(a=a.I,b=d,a.G&=~b,c&&(a.G|=b))}return!0}
function ge(a){for(var b=0,c=-1;b<a.j.length;){if(a.j[b].Db){var d=a.j[b].Rb,e=100-(Date.now()-a.j[b].Ob);if(0<e){if(0>c||c>e)c=e}else{ee(a,d,!1);b=0;continue}}b++}0<=c&&setTimeout(function(){ge(a)},c)}l.Vd=function(a,b){var c=this.G;0<=this.w&&(this.w<this.j.length?(c=this.j[this.w],this.w++,c=V.A[c.Rb],c&128&&(c&=127)):(this.w=-1,c=V.Zc),this.G=c,Hd(this.b,1));E(this,a,null,b,"KBDUART.ADDRESS",c);return c};
l.ie=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.K=b;this.D=!0;this.J=Fc(this.b);fe(this,b&V.Ma.$b);b&V.Ma.vd&&(this.w=0,Hd(this.b,1))};V.Gb={130:$d.prototype.Vd};V.Hb={130:$d.prototype.ie};Ma(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $d(d);hb(d,c)}});
function he(a,b,c,d,e){var f=this;this.kc=Aa("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,he,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Ua=a.bufferAddr;this.Id=a.bufferRAM;var g=a.bufferFormat;this.la=g&&ie[g.toUpperCase()]||je;this.ca=a.bufferCols;this.wa=a.bufferRows;this.fc=this.ra=a.cellWidth||1;this.ma=a.cellHeight||1;this.za=null;this.jc=!1;this.Va=a.bufferBits||1;this.Kd=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
(this.ja("unsupported buffer rotation: "+this.w),this.w=0);this.Wa=a.interruptRate;this.rc=a.refreshRate||60;this.M=b;this.I=c;this.ka=(this.Nd=d)||b||null;this.Ec=this.Y;this.Hd=this.O;this.gc=this.Y/this.ca|0;this.hc=this.O/this.wa|0;1<this.ma&&(this.wa++,this.nb=0,this.pb=!1);b=a.smoothing;(c=Va.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D%
360,0<this.D&&(this.D-=360),-90!=this.D?(this.ja("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.gb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.gb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ke(f,document.fullscreenElement||document.msFullscreenElement||
l.ie=function(a,b,c){E(this,a,b,c,"KBDUART.STATUS");this.J=b;this.D=!0;this.K=Fc(this.b);fe(this,b&V.Ma.$b);b&V.Ma.vd&&(this.w=0,Hd(this.b,1))};V.Gb={130:$d.prototype.Vd};V.Hb={130:$d.prototype.ie};Ma(function(){for(var a=D(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new $d(d);hb(d,c)}});
function he(a,b,c,d,e){var f=this;this.kc=Aa("Gecko/");var h=["","moz","ms","webkit"];z.call(this,"Video",a,he,262144);this.Y=a.screenWidth;this.O=a.screenHeight;this.Ua=a.bufferAddr;this.Id=a.bufferRAM;var g=a.bufferFormat;this.ma=g&&ie[g.toUpperCase()]||je;this.ca=a.bufferCols;this.wa=a.bufferRows;this.fc=this.sa=a.cellWidth||1;this.na=a.cellHeight||1;this.za=null;this.jc=!1;this.Va=a.bufferBits||1;this.Kd=a.bufferLeft||0;if(this.w=a.bufferRotate)this.w=this.w%360,0<this.w&&(this.w-=360),-90!=this.w&&
(this.ka("unsupported buffer rotation: "+this.w),this.w=0);this.Wa=a.interruptRate;this.rc=a.refreshRate||60;this.M=b;this.I=c;this.la=(this.Nd=d)||b||null;this.Ec=this.Y;this.Hd=this.O;this.gc=this.Y/this.ca|0;this.hc=this.O/this.wa|0;1<this.na&&(this.wa++,this.nb=0,this.pb=!1);b=a.smoothing;(c=Va.smoothing)&&(b="true"==c);if(null!=b)for(c=0;c<h.length;c++)if(d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",void 0!==this.I[d]){this.I[d]=b;break}if(this.D=a.screenRotate)this.D=this.D%
360,0<this.D&&(this.D-=360),-90!=this.D?(this.ka("unsupported screen rotation: "+this.D),this.D=0):(this.I.translate(0,this.O),this.I.rotate(this.D*Math.PI/180),this.I.scale(this.O/this.Y,this.Y/this.O));if(this.j=e)if(this.j.gb=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.j.gb){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){ke(f,document.fullscreenElement||document.msFullscreenElement||
document.mozFullScreenElement||document.webkitFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){ke(f,null)},!1);break}}if(this.ea=a.fontROM)"json"!=fa(this.ea)&&(this.ea=ha()+"/api/v1/dump?file="+this.ea+"&format=bytes"),sa(this.ea,null,!0,function(a,b,c){le(f,a,b,c)});this.Jb={}}bb(he);var je=0,ie={SI1978:1,VT100:2};
function Rd(a){a.J=a.ca*a.ra;a.ba=a.wa*a.ma;var b=a.J,c=a.ba;a.w&&(b=a.ba,c=a.J);a.P=0;if(!a.Id&&(a.P=(a.J*a.Va>>3)*a.ba,!zb(a.u,a.Ua,a.P,3)))return!1;a.P?(a.lc=a.I.createImageData(b,c),a.oc=16/a.Va|0,me(a,a.P>>1)):me(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.ob=a.L.getContext("2d");a.fa={};a.qa=1<<a.Va;a.ha=Array(a.qa+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.la&&(a.ha[a.qa+0]=[255,255,0,255],a.ha[a.qa+1]=[0,255,0,255]);2==a.la&&(a.qc=60,a.rb=!1,
a.Fa=Array(a.ca));return!0}he.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Rd(this);if(this.K=vb(a,"Keyboard")){for(var e in this.Jb)this.K.oa("led",e,this.Jb[e]);this.M&&this.K.oa(this.Nd?"textarea":"canvas","kbd",this.ka)}var f=this;this.sc=Jc(this.b,function(){Mc(f)});Kc(this.b,this.sc,1E3/Math.max(this.rc,this.Wa));this.pc=0;this.ea||F(this)};
function le(a,b,c,d){if(d)a.ja("Unable to load font ROM (error "+d+": "+b+")");else{db(a.Bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.za=f,Sd(a);else{a.ja("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ja("Font ROM data error: "+h.message);return}(a.I||a.H)&&F(a)}}
function Sd(a){a.za&&(a.jc=2==a.la,a.fa[96]=[ne(a,a.ra,a.ma),ne(a,a.ra,a.ma,a.rb)],a.fa[64]=[ne(a,2*a.ra,a.ma),ne(a,2*a.ra,a.ma,a.rb)],a.fa[32]=a.fa[0]=[ne(a,2*a.ra,2*a.ma),ne(a,2*a.ra,2*a.ma,a.rb)])}
function ne(a,b,c,d){var e=8>=a.fc?8:16,f=8<e?15:0,h=a.za.length/e,g=!1===d,k={ra:b,ma:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var m=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.ma;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.za[u],r=0;r<c/a.ma;r++){for(var C=0,y=0,Y=y;y<a.ra;y++){for(var B=u&128>>(7<y?7:y),C=a.jc&&!B&&C?C:B,R=0;R<b/a.ra;R++)g&&(C=!C),oe(a,m,Y,x,C?1:0),Y++;C=B}x++}k.context.putImageData(m,
(p&15)*b,(p>>4)*c)}return k}he.prototype.Ea=function(){return!0};he.prototype.oa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Jb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.gb?c.onclick=function(){d.gb()}:c.parentNode.removeChild(c),!0}return!1};
he.prototype.gb=function(){var a=!1;if(this.j){if(this.j.gb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.gb();a=!0}this.ka&&this.ka.focus()}return a};
function ke(a,b){!b&&a.j&&(a.kc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");jb(a,"notifyFullScreen("+b+")")}function me(a,b){a.nc=b;a.ia=!1;if(void 0===a.G||a.G.length!=a.nc)a.G=Array(a.nc)}function oe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.la&&(208<=c&&236>c?e=a.qa+0:28<=c&&72>c&&(e=a.qa+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Mc(a,b){var c=!0;if(!b){a.Wa&&(120==a.Wa?a.pc&1?(Hd(a.b,2),c=!1):Hd(a.b,1):Hd(a.b,4));if(c&&a.ia&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Ua>>>d.sa;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].xc=!0),e-=d.Ha,h++;f&&(c=!1)}Kc(a.b,a.sc,1E3/Math.max(a.rc,a.Wa));a.pc++}if(c)if(1<a.ra)switch(a.la){case 2:for(var c=a.Ua,d=-1,e=0,f=60==a.qc?2:5,g=h=0,k=-1;e<a.wa;){var m=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var u=Cb(a.u,p++);if(127==(u&127)){var r=Cb(a.u,p++),d=r&96,c=(r&15)<<8|Cb(a.u,p),c=c+
(r&16?8192:16384);break}if(m<x)a.Fa[m++]=u;else break}if(f)f--;else{for(;m<a.Fa.length;)a.Fa[m++]=0;if(0<=q)for(p=a.ia&&a.G[h]==x,a.G[h++]=x,x=0;x<m;x++){u=a.Fa[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,C=a.ob,y=u&127;if(u=r.fa[q][u&128?1:0]){var Y=(y&15)*u.ra,y=(y>>4)*u.ma,B=void 0,R=void 0,ca=void 0,Z=void 0,va=u.ra,Hb=u.ma;C?(B=x*r.ra,R=e*r.ma,ca=r.ra,Z=r.ma):(B=x*r.gc,R=e*r.hc,ca=r.gc,Z=r.hc);u.ra>r.ra&&(B*=2,ca*=2);u.ma>r.ma&&(0==q&&(y+=r.ma),Hb=r.ma);C?C.drawImage(u.canvas,Y,y,va,Hb,B,R,ca,Z):
(B+=0,R+=0,r.I.drawImage(u.canvas,Y,y,va,Hb,B,R,ca,Z))}g++}h++}e++}}a.ia=!0;!b&&a.pb&&1==g&&(a.G[k]=-1,g=0);a.pb=!1;(g||b)&&a.ob&&a.I.drawImage(a.L,0,a.nb,a.J,a.ba-a.ma,0,0,a.Ec,a.Hd)}else{f=a.Ua;h=f+a.P;m=k=g=0;c=a.J;q=0;d=a.ba;p=e=0;x=a.Va;r=(1<<x)-1;a.Kd&&(x=-x,p=16+x);for(;f<h;){C=Db(a.u,f);if(a.ia&&C===a.G[g])k+=a.oc;else{a.G[g]=C;(u=p)&&(C=C>>8|(C&255)<<8);k<c&&(c=k);for(Y=a.oc;Y--;)y=C>>u&r,oe(a,a.lc,k++,m,y),u+=x;k>q&&(q=k);m<d&&(d=m);m>=e&&(e=m+1)}f+=2;g++;if(k>=a.J&&(k=0,m++,m>a.ba))break}a.ia=
!0;c<a.J&&(f=q-c,e-=d,a.w&&(h=c,g=f,c=d,f=e,d=a.J-(h+g),e=g),a.ob.putImageData(a.lc,0,0,c,d,f,e),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
function Rd(a){a.K=a.ca*a.sa;a.ba=a.wa*a.na;var b=a.K,c=a.ba;a.w&&(b=a.ba,c=a.K);a.P=0;if(!a.Id&&(a.P=(a.K*a.Va>>3)*a.ba,!zb(a.u,a.Ua,a.P,3)))return!1;a.P?(a.lc=a.I.createImageData(b,c),a.oc=16/a.Va|0,me(a,a.P>>1)):me(a,(a.ca+1)*a.wa);a.L=document.createElement("canvas");a.L.width=b;a.L.height=c;a.ob=a.L.getContext("2d");a.fa={};a.ra=1<<a.Va;a.ha=Array(a.ra+2);a.ha[0]=[0,0,0,255];a.ha[1]=[255,255,255,255];1==a.ma&&(a.ha[a.ra+0]=[255,255,0,255],a.ha[a.ra+1]=[0,255,0,255]);2==a.ma&&(a.qc=60,a.rb=!1,
a.Fa=Array(a.ca));return!0}he.prototype.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;Rd(this);if(this.J=vb(a,"Keyboard")){for(var e in this.Jb)this.J.pa("led",e,this.Jb[e]);this.M&&this.J.pa(this.Nd?"textarea":"canvas","kbd",this.la)}var f=this;this.sc=Jc(this.b,function(){Mc(f)});Kc(this.b,this.sc,1E3/Math.max(this.rc,this.Wa));this.pc=0;this.ea||F(this)};
function le(a,b,c,d){if(d)a.ka("Unable to load font ROM (error "+d+": "+b+")");else{db(a.Bb,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f||!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(2048==f.length)a.za=f,Sd(a);else{a.ka("Unrecognized font data length ("+f.length+")");return}}catch(h){a.ka("Font ROM data error: "+h.message);return}(a.I||a.H)&&F(a)}}
function Sd(a){a.za&&(a.jc=2==a.ma,a.fa[96]=[ne(a,a.sa,a.na),ne(a,a.sa,a.na,a.rb)],a.fa[64]=[ne(a,2*a.sa,a.na),ne(a,2*a.sa,a.na,a.rb)],a.fa[32]=a.fa[0]=[ne(a,2*a.sa,2*a.na),ne(a,2*a.sa,2*a.na,a.rb)])}
function ne(a,b,c,d){var e=8>=a.fc?8:16,f=8<e?15:0,h=a.za.length/e,g=!1===d,k={sa:b,na:c};k.canvas=document.createElement("canvas");k.canvas.width=16*b;k.canvas.height=h/16*c;k.context=k.canvas.getContext("2d");for(var m=k.context.createImageData(b,c),p=0;p<h;p++){for(var q=0,x=q;q<a.na;q++)for(var u=p*e+(f+q&e-1),u=d&&8==q?255:a.za[u],r=0;r<c/a.na;r++){for(var C=0,y=0,Y=y;y<a.sa;y++){for(var B=u&128>>(7<y?7:y),C=a.jc&&!B&&C?C:B,R=0;R<b/a.sa;R++)g&&(C=!C),oe(a,m,Y,x,C?1:0),Y++;C=B}x++}k.context.putImageData(m,
(p&15)*b,(p>>4)*c)}return k}he.prototype.Ea=function(){return!0};he.prototype.pa=function(a,b,c){var d=this;if("led"==a||"rled"==a)return this.Jb[b]=c,!0;switch(b){case "fullScreen":return this.N[b]=c,this.j&&this.j.gb?c.onclick=function(){d.gb()}:c.parentNode.removeChild(c),!0}return!1};
he.prototype.gb=function(){var a=!1;if(this.j){if(this.j.gb){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.O;b>c&&(a=Math.round(c/b*100)+"%")}this.kc?(this.M.style.width=a,this.M.style.width=a,this.M.style.display="block",this.M.style.margin="auto"):(this.j.style.width=a,this.j.style.height="auto");this.j.style.backgroundColor="black";this.j.gb();a=!0}this.la&&this.la.focus()}return a};
function ke(a,b){!b&&a.j&&(a.kc?a.M.style.width=a.M.style.height="":a.j.style.width=a.j.style.height="");jb(a,"notifyFullScreen("+b+")")}function me(a,b){a.nc=b;a.ja=!1;if(void 0===a.G||a.G.length!=a.nc)a.G=Array(a.nc)}function oe(a,b,c,d,e){d=a.w?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.ma&&(208<=c&&236>c?e=a.ra+0:28<=c&&72>c&&(e=a.ra+1));a=a.ha[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Mc(a,b){var c=!0;if(!b){a.Wa&&(120==a.Wa?a.pc&1?(Hd(a.b,2),c=!1):Hd(a.b,1):Hd(a.b,4));if(c&&a.ja&&a.P){for(var d=a.u,e=a.P,f=!0,h=a.Ua>>>d.ia;0<e&&h<d.X.length;)d.X[h].Na&&(d.X[h].Na=f=!1,d.X[h].xc=!0),e-=d.Ha,h++;f&&(c=!1)}Kc(a.b,a.sc,1E3/Math.max(a.rc,a.Wa));a.pc++}if(c)if(1<a.sa)switch(a.ma){case 2:for(var c=a.Ua,d=-1,e=0,f=60==a.qc?2:5,g=h=0,k=-1;e<a.wa;){var m=0,p=c,q=d,x=a.ca;for(96!=q&&(x>>=1);;){var u=Cb(a.u,p++);if(127==(u&127)){var r=Cb(a.u,p++),d=r&96,c=(r&15)<<8|Cb(a.u,p),c=c+
(r&16?8192:16384);break}if(m<x)a.Fa[m++]=u;else break}if(f)f--;else{for(;m<a.Fa.length;)a.Fa[m++]=0;if(0<=q)for(p=a.ja&&a.G[h]==x,a.G[h++]=x,x=0;x<m;x++){u=a.Fa[x];if(!p||u!==a.G[h]){a.G[k=h]=u;var r=a,C=a.ob,y=u&127;if(u=r.fa[q][u&128?1:0]){var Y=(y&15)*u.sa,y=(y>>4)*u.na,B=void 0,R=void 0,ca=void 0,Z=void 0,va=u.sa,Hb=u.na;C?(B=x*r.sa,R=e*r.na,ca=r.sa,Z=r.na):(B=x*r.gc,R=e*r.hc,ca=r.gc,Z=r.hc);u.sa>r.sa&&(B*=2,ca*=2);u.na>r.na&&(0==q&&(y+=r.na),Hb=r.na);C?C.drawImage(u.canvas,Y,y,va,Hb,B,R,ca,Z):
(B+=0,R+=0,r.I.drawImage(u.canvas,Y,y,va,Hb,B,R,ca,Z))}g++}h++}e++}}a.ja=!0;!b&&a.pb&&1==g&&(a.G[k]=-1,g=0);a.pb=!1;(g||b)&&a.ob&&a.I.drawImage(a.L,0,a.nb,a.K,a.ba-a.na,0,0,a.Ec,a.Hd)}else{f=a.Ua;h=f+a.P;m=k=g=0;c=a.K;q=0;d=a.ba;p=e=0;x=a.Va;r=(1<<x)-1;a.Kd&&(x=-x,p=16+x);for(;f<h;){C=Db(a.u,f);if(a.ja&&C===a.G[g])k+=a.oc;else{a.G[g]=C;(u=p)&&(C=C>>8|(C&255)<<8);k<c&&(c=k);for(Y=a.oc;Y--;)y=C>>u&r,oe(a,a.lc,k++,m,y),u+=x;k>q&&(q=k);m<d&&(d=m);m>=e&&(e=m+1)}f+=2;g++;if(k>=a.K&&(k=0,m++,m>a.ba))break}a.ja=
!0;c<a.K&&(f=q-c,e-=d,a.w&&(h=c,g=f,c=d,f=e,d=a.K-(h+g),e=g),a.ob.putImageData(a.lc,0,0,c,d,f,e),a.I.drawImage(a.L,0,0,a.L.width,a.L.height,0,0,a.Y,a.O))}}
Ma(function(){for(var a=D(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=ta().indexOf("MSIE")&&(c.onresize=function(a,b,c,d){return function(){b.style.height=
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Va.aspect);f&&.3<=f&&3.33>=f&&(La("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");Aa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new he(d,e,h,f,c);hb(d,c)}});
function pe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.ka=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ia=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,pe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=qe;b&&(void 0===c&&(c="Panel"),(c=gb(c,this.id))&&(b=c.N[b])&&this.oa(null,a,b))}this.G="";this.K=this.M=null;this.exports={connect:this.zc,receiveData:this.Qb}}bb(pe);
function pe(a){this.fa=+a.adapter;switch(this.fa){case 0:this.ha=0;this.la=2;break;default:w("Unrecognized serial adapter #"+this.fa);return}this.j=this.w=null;this.ja=a.tabSize;this.ea=a.charBOL;this.D=0;this.ba=!1;z.call(this,"SerialPort",a,pe,8388608);var b=a.binding;if("console"==b)this.w="";else{var c;a=qe;b&&(void 0===c&&(c="Panel"),(c=gb(c,this.id))&&(b=c.N[b])&&this.pa(null,a,b))}this.G="";this.J=this.M=null;this.exports={connect:this.zc,receiveData:this.Qb}}bb(pe);
var re=[50,75,110,134.5,150,200,300,600,1200,1800,2E3,2400,3600,4800,9600,19200],se=[!1,0,0,133,142,39,238],qe="buffer";l=pe.prototype;
l.oa=function(a,b,c,d){var e=this;switch(b){case qe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),te(e,b);return!0},c.onkeypress=function(a){a=a||window.event;te(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Qb(d);return!0},
!0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.qa=Jc(this.b,function(){e.Qb()});this.la=Jc(this.b,function(){e.Da|=5});this.I=vb(a,"ChipSet");Gb(b,this,ue,this.ha);Tb(b,this,ve,this.ha);F(this)};
l.zc=function(){if(!this.K){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.cb)return;b=ma(b[1]);if(this.K=fb(b)){var d=this.K.exports;if(d){var e=d.connect;e&&e.call(this.K);if(this.M=d.receiveData){this.status(this.Bb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
l.Ia=function(a){return a?this.save():!0};l.reset=function(){we(this)};l.save=function(){var a=new Uc(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.J;c[b++]=this.P;c[b]=this.O;I(a,0,c);return a.data()};l.restore=function(a){return we(this,a[0])};function we(a,b){var c=0;void 0===b&&(b=se);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.J=b[c++];a.P=b[c++];a.O=b[c];return!0}
function xe(a,b){var c=a.O&b;b&15||(c>>=4);var c=re[c],d=((a.J&12)>>2)+6;a.J&16&&d++;d+=((a.J&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function te(a,b){jb(a,"receiveByte("+ba(b)+"), status="+ba(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Hd(a.b,a.ka),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(te(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Kc(this.b,this.qa,xe(this,15)));return!0};
l.pa=function(a,b,c,d){var e=this;switch(b){case qe:return this.N[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),te(e,b);return!0},c.onkeypress=function(a){a=a||window.event;te(e,a.which||a.keyCode);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0;default:if(d)return this.N[b]=c,d=d.replace(/\\e/g,String.fromCharCode(27)),c.onclick=function(){e.Qb(d);return!0},
!0}return!1};l.Pa=function(a,b,c,d){this.B=a;this.u=b;this.b=c;this.H=d;var e=this;this.ra=Jc(this.b,function(){e.Qb()});this.ma=Jc(this.b,function(){e.Da|=5});this.I=vb(a,"ChipSet");Gb(b,this,ue,this.ha);Tb(b,this,ve,this.ha);F(this)};
l.zc=function(){if(!this.J){var a=nc(this.B,"connection");if(a){var b=a.split("->");if(2==b.length){var c=ma(b[0]);if(c!=this.cb)return;b=ma(b[1]);if(this.J=fb(b)){var d=this.J.exports;if(d){var e=d.connect;e&&e.call(this.J);if(this.M=d.receiveData){this.status(this.Bb+"."+c+" connected to "+b);return}}}}this.status("Unable to establish connection: "+a)}}};l.Ea=function(a,b){if(!b)if(this.zc(),!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
l.Ia=function(a){return a?this.save():!0};l.reset=function(){we(this)};l.save=function(){var a=new Uc(this),b=0,c=[];c[b++]=this.L;c[b++]=this.Y;c[b++]=this.ca;c[b++]=this.Da;c[b++]=this.K;c[b++]=this.P;c[b]=this.O;I(a,0,c);return a.data()};l.restore=function(a){return we(this,a[0])};function we(a,b){var c=0;void 0===b&&(b=se);a.L=b[c++];a.Y=b[c++];a.ca=b[c++];a.Da=b[c++];a.K=b[c++];a.P=b[c++];a.O=b[c];return!0}
function xe(a,b){var c=a.O&b;b&15||(c>>=4);var c=re[c],d=((a.K&12)>>2)+6;a.K&16&&d++;d+=((a.K&192)>>6)+1>>1;return 1E3/Math.round(c/d)}function te(a,b){jb(a,"receiveByte("+ba(b)+"), status="+ba(a.Da));return a.ba||a.Da&2?!1:(a.Y=b,a.Da|=2,Hd(a.b,a.la),!0)}l.Qb=function(a){null!=a&&(this.G="number"!=typeof a?a:this.G+String.fromCharCode(a));this.G&&(te(this,this.G.charCodeAt(0))&&(this.G=this.G.substr(1)),this.G&&this.b&&Kc(this.b,this.ra,xe(this,15)));return!0};
l.Pd=function(a,b){var c=this.Y;E(this,a,null,b,"DATA",c);this.Da&=-3;return c};l.Od=function(a,b){var c=this.Da;E(this,a,null,b,"STATUS",c);return c};
l.Zd=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;jb(this,"transmitByte("+ba(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.K,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ia||8,c=b-this.D%b,this.ia&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Kc(this.b,this.la,xe(this,240))};l.Yd=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.J=b,this.L=!0)};l.Xd=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ue={0:pe.prototype.Pd,1:pe.prototype.Od},ve={0:pe.prototype.Zd,1:pe.prototype.Yd,2:pe.prototype.Xd};
Ma(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new pe(d);hb(d,c)}});function ye(a){z.call(this,"Debugger",a,ye);this.ob=a.base||16;this.ba=this.la=this.J=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}bb(ye);var ze={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ye.prototype.Mb=function(){return-1};ye.prototype.Nb=function(){};
l.Zd=function(a,b,c){E(this,a,b,c,"DATA");this.ca=b;this.Da&=-6;jb(this,"transmitByte("+ba(b)+")");if(19==b)this.ba=!0;else if(17==b)this.ba=!1;else if(this.M&&this.M.call(this.J,b),this.j)8==b?(this.j.value=this.j.value.slice(0,-1),0<this.D&&this.D--):(a=(a=na[b])?"<"+a+">":String.fromCharCode(b),c=a.length,9==b?(b=this.ja||8,c=b-this.D%b,this.ja&&(a=la("",c))):13==b&&(this.D=c=0,a="\n"),this.ea&&!this.D&&c&&(a=String.fromCharCode(this.ea)+a),this.j.value+=a,this.j.scrollTop=this.j.scrollHeight,
this.D+=c);else if(null!=this.w){if(10==b||1024<=this.w.length)this.g(this.w),this.w="";10!=b&&(this.w+=String.fromCharCode(b))}this.b&&Kc(this.b,this.ma,xe(this,240))};l.Yd=function(a,b,c){E(this,a,b,c,"CONTROL");this.L?(this.P=b,this.P&64&&(this.L=!1)):(this.K=b,this.L=!0)};l.Xd=function(a,b,c){E(this,a,b,c,"BAUDRATES");this.O=b};var ue={0:pe.prototype.Pd,1:pe.prototype.Od},ve={0:pe.prototype.Zd,1:pe.prototype.Yd,2:pe.prototype.Xd};
Ma(function(){for(var a=D(document,"pc8080","serial"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new pe(d);hb(d,c)}});function ye(a){z.call(this,"Debugger",a,ye);this.ob=a.base||16;this.ba=this.ma=this.K=0;this.P=!1;this.j=-1;this.w=[];this.ea={}}bb(ye);var ze={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};ye.prototype.Mb=function(){return-1};ye.prototype.Nb=function(){};
ye.prototype.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b};
function Ae(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
function Be(a,b,c){var d;if(b){b=Ce(a,b);for(var e=0,f=!1,h=b,g=[],k=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var p=m[e++],q=p.length,p=ma(p);if(!p){f=!0;break}p=De(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==m.length)break;var p=m[e++],x=p.length;k.length&&ze[p]<ze[k[k.length-1]]&&Ae(g,k,1);k.push(p);b=b.substr(q+x)}Ae(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Ee(a,null,
d))}return d}function Ce(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Be(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.la}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
d))}return d}function Ce(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Be(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?t(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ba-a.ma}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
function De(a,b,c,d){var e;null!=b?(e=a.Mb(b),0<=e?e=a.Nb(e):(e=a.ea[b],null==e&&(e=aa(b,a.ob))),null!=e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
function Ee(a,b,c){var d,e=!1;if(void 0!==c){var e=!0,f=c,h=0;d="";if(!h||4<h)h=4;for(var g=0;g<h;g++){d&&(d=","+d);var k=f&255,m=8,p="";m?32<m&&(m=32):m=32;if(null==k||isNaN(k))for(;0<m--;)p="?"+p;else for(;0<m--;)p=(k&1?"1":"0")+p,k>>=1;d=p+d;f>>=8}f=c;h=0;g="";h?11<h&&(h=11):h=f&-65536?11:6;if(null==f||isNaN(f))for(;0<h--;)g="?"+g;else for(;0<h--;)g=String.fromCharCode((f&7)+48)+g,f>>=3;d=t(c,0,!0)+" "+c+". "+("0o"+g)+" "+("0b"+d)}a.g((null!=b?b+": ":"")+d);return e}
function Fe(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0<c}function Ge(a){ye.call(this,a);this.style=He;this.M=W();this.Ua=W();this.ca=W();this.G=[];this.I=this.O=this.D=[];Ie(this);this.ia=0;Je(this);this.wa=[];Ke(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return qc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return qc(b,a)})}bb(Ge,ye);
function Fe(a,b){if(b)return Ee(a,b,a.ea[b]);var c=0;for(b in a.ea)Ee(a,b,a.ea[b]),c++;return 0<c}function Ge(a){ye.call(this,a);this.style=He;this.M=W();this.Ua=W();this.ca=W();this.G=[];this.I=this.O=this.D=[];Ie(this);this.ja=0;Je(this);this.wa=[];Ke(this,a.messages);this.za=a.commands;var b=this;window?void 0===window.pc8080&&(window.pc8080=function(a){return qc(b,a)}):void 0===global.pc8080&&(global.pc8080=function(a){return qc(b,a)})}bb(Ge,ye);
var Le={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},
He=8080,Me="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),Ne="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),
Oe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Pe=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,
@ -161,80 +161,80 @@ Oe="B C D E H L M A BC DE HL SP PC PS PSW".split(" "),Pe=[[45],[42,2067,32],[71,
18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,
785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,
18193,33],[65,128],[59],[50,3603],[35,51],[24],[12,51],[51,3603],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,18193,33],[65,128]];l=Ge.prototype;
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Ke(this,a);this.Fa=Pe;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],g=a=0,k=b.length;if(c){a=Qe(Re(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.u.sa;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[g];p.type==c?m++||d.g("..."):(c=p.type,m=Bb[c],p&&d.g(t(p.id)+" %"+t(g<<d.u.sa)+" %%"+t(p.F)+" "+v(p.yb)+" "+
l.Pa=function(a,b,c,d){this.u=b;this.b=c;this.B=a;(a=nc(a,"messages"))&&Ke(this,a);this.Fa=Pe;Pd(this,64,function(a){a:{var b=d.u.X,c=a[0],g=a=0,k=b.length;if(c){a=Qe(Re(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.u.ia;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,m=0;k--;){var p=b[g];p.type==c?m++||d.g("..."):(c=p.type,m=Bb[c],p&&d.g(t(p.id)+" %"+t(g<<d.u.ia)+" %%"+t(p.F)+" "+v(p.yb)+" "+
v(p.size)+" "+m),c!=$b&&(c=-1),m=0);a+=d.u.Ha;g++}}});F(this)};
l.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ha=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.j<d.w.length-1&&(b=d.w[++d.j])):40==a.keyCode&&(0<d.j?b=d.w[--d.j]:(b="",d.j=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ca(c,function(){if(d.ha){var a=d.ha.value;
l.pa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.ha=this.N[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.j<d.w.length-1&&(b=d.w[++d.j])):40==a.keyCode&&(0<d.j?b=d.w[--d.j]:(b="",d.j=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.N[b]=c,Ca(c,function(){if(d.ha){var a=d.ha.value;
d.ha.value="";qc(d,a,!0);return!0}return!1}),!0;case "step":return this.N[b]=c,Ca(c,function(a){var b=!1;mb(d,!0)||(lb(d,!0),b=d.kb(a?1:0),lb(d,!1));return b}),!0}return!1};l.xb=function(){this.ha&&this.ha.focus()};function Qe(a){a=a&&a.F;null==a&&(a=-1);return a}l.aa=function(a,b){var c=255,d=Qe(a);-1!==d&&(c=Cb(this.u,d),b&&Se(a,b));return c};l.$a=function(a,b){var c=65535,d=Qe(a);-1!==d&&(c=Db(this.u,d),b&&Se(a,b));return c};
l.va=function(a,b,c){var d=Qe(a);-1!==d&&(Eb(this.u,d,b),c&&Se(a,c),rc(this.b,!0))};l.Ib=function(a,b,c){var d=Qe(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.sa;f!=e.u?e.X[h].Tb(f,b&65535,d):(e.X[h++].zb(f,b&255,d),e.X[h&e.K].zb(0,b>>8&255,d+1));c&&Se(a,c);rc(this.b,!0)}};function W(a){return{F:a,Oa:!1}}function Te(a){return[a.F,a.Oa]}function Ue(a){return{F:a[0],Oa:a[1]}}
l.va=function(a,b,c){var d=Qe(a);-1!==d&&(Eb(this.u,d,b),c&&Se(a,c),rc(this.b,!0))};l.Ib=function(a,b,c){var d=Qe(a);if(-1!==d){var e=this.u,f=d&e.u,h=(d&e.w)>>>e.ia;f!=e.u?e.X[h].Tb(f,b&65535,d):(e.X[h++].zb(f,b&255,d),e.X[h&e.G].zb(0,b>>8&255,d+1));c&&Se(a,c);rc(this.b,!0)}};function W(a){return{F:a,Oa:!1}}function Te(a){return[a.F,a.Oa]}function Ue(a){return{F:a[0],Oa:a[1]}}
function Re(a,b,c){var d;c=(c?a.M:a.Ua).F;if(void 0!==b){d=b=Ce(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.G.length;c++){var f=a.G[c].Qa[d];if(void 0!==f){d=f.o;void 0!==d&&(e=W(d));break}}if(d=e)return d;c=Be(a,b,void 0)}null!=c&&(d=W(c));return d}function Ve(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Gd=a.Fb(b.Cc=c[2]))}function Se(a,b){null!=a.F&&(a.F+=b||1)}function X(a){return t(a,4)}
function uf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ke(a,b){a.H=a;a.ta=a.Jd=536870912;a.ka=null;a.qa=[];var c=a.Fb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in tb)0<=ra(c,d)&&(a.ta|=tb[d],a.g(d+" messages enabled"))}function Pd(a,b,c){for(var d in tb)if(b==tb[d]){a.wa[d]=c;break}}
function uf(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.aa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Ke(a,b){a.H=a;a.ta=a.Jd=536870912;a.la=null;a.ra=[];var c=a.Fb(b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in tb)0<=ra(c,d)&&(a.ta|=tb[d],a.g(d+" messages enabled"))}function Pd(a,b,c){for(var d in tb)if(b==tb[d]){a.wa[d]=c;break}}
l.Mb=function(a,b){var c;a=a.toUpperCase();null==b?c=ra(Oe,a):(c=ra(Oe,a.substr(b,2)),0>c&&(c=ra(Oe,a.substr(b,1))));return c};function vf(a,b){var c=0,d=a.Nb(b);if(void 0!==d)switch(b){case 7:case 0:case 1:case 2:case 3:case 4:case 5:case 6:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:c=4}return c?t(d,c):"??"}
l.Nb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=J(c);break;case 6:b=c.aa(J(c));break;case 11:b=c.na;break;case 12:b=c.R;break;case 13:b=Tc(c);break;case 14:b=Tc(c)&255|c.i<<8}}return b};
l.Nb=function(a){var b;if(0<=a){var c=this.b;switch(a){case 7:b=c.i;break;case 0:b=c.S;break;case 1:b=c.T;break;case 8:b=Vc(c);break;case 2:b=c.U;break;case 3:b=c.V;break;case 9:b=Xc(c);break;case 4:b=c.W;break;case 5:b=c.Z;break;case 10:b=J(c);break;case 6:b=c.aa(J(c));break;case 11:b=c.oa;break;case 12:b=c.R;break;case 13:b=Tc(c);break;case 14:b=Tc(c)&255|c.i<<8}}return b};
function wf(a,b){b=Ce(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=a.Mb(b,c+1),0<=e&&(b=b.substr(0,c)+vf(a,e)+b.substr(c+1+Oe[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=aa(e,16),null!=d&&32<=d&&128>d?(d=e+" '"+String.fromCharCode(d)+"'",b=b.replace("#"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("$",c));)e=b.substr(c+1,9),(d=Re(a,e))?(d=e+' "'+uf(a,d)+'"',b=b.replace("$"+e,d),c+=d.length):c++;for(c=0;0<=(c=b.indexOf("^",c));)e=b.substr(c+1,9),(d=Re(a,e))?(Se(d),d=e+
' "'+uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+X(W(this.b.R).F));if(this.ta&1073741824)this.qa.push(a);else if(!this.ka||a!=this.ka)if(this.ka=a,this.ta&-2147483648&&(this.pa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Lc(c);c.P=0;rc(c)}};
' "'+uf(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}l.message=function(a,b){b&&(a+=" at "+X(W(this.b.R).F));if(this.ta&1073741824)this.ra.push(a);else if(!this.la||a!=this.la)if(this.la=a,this.ta&-2147483648&&(this.qa(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;Lc(c);c.P=0;rc(c)}};
function ib(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ta&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+v(c)+","+(f?f:"unknown")+(null!=d?","+ba(d):"")+")"+(null!=h?": "+ba(h):"")+(null!=e?" at "+X(e):""))}
function Je(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.fa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.K=[]}l.bb=function(a){if(!xf(this))return!1;this.b.bb(a);return!0};
l.kb=function(a,b,c){if(!xf(this))return!1;this.J=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.J+=d,Hc(this.b,d,!0),Ec(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.J=0,ob(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.Ja(b||!1);return 0<this.J};l.pa=function(a){this.b&&this.b.pa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.Y?yf(this):zf(this)};
function xf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Je(this);this.ba=this.la=0;this.ka=null;this.J=0;this.M=W(this.b.R);this.C.Aa=!1;Af(this);a||this.Ja()};
function Je(a){var b;if(Id(a)){if(!a.L||!a.L.length){a.L=Array(1E3);for(b=0;b<a.L.length;b++)a.L[b]=W();a.fa=0;a.g("instruction history buffer allocated")}if(!a.J||!a.J.length)for(a.J=Array(256),b=0;b<a.J.length;b++)a.J[b]=[b,0]}else a.L&&a.L.length&&a.g("instruction history buffer freed"),a.fa=0,a.L=[],a.J=[]}l.bb=function(a){if(!xf(this))return!1;this.b.bb(a);return!0};
l.kb=function(a,b,c){if(!xf(this))return!1;this.K=0;a||Id(this)&&Jd(this,this.b.R,0);try{var d=this.b.kb(a);0<d&&(this.K+=d,Hc(this.b,d,!0),Ec(this.b,d),this.ba++)}catch(e){"number"!=typeof e&&(this.K=0,ob(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.Ja(b||!1);return 0<this.K};l.qa=function(a){this.b&&this.b.qa(a)};l.Ja=function(a){void 0===a&&(a=!0);this.M=W(this.b.R);a&&1!=this.Y?yf(this):zf(this)};
function xf(a){var b;if(b=a.b&&nb(a.b))b=a.b,b.C.xa?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!mb(a.b)?(a=a.b,a.C.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}l.Ea=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};l.Ia=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};l.reset=function(a){Je(this);this.ba=this.ma=0;this.la=null;this.K=0;this.M=W(this.b.R);this.C.Aa=!1;Af(this);a||this.Ja()};
l.save=function(){var a=new Uc(this);I(a,0,Te(this.M));I(a,1,Te(this.ca));I(a,2,[this.w,this.P,this.ta]);I(a,3,this.G);return a.data()};l.restore=function(a){var b=0;void 0!==a[2]&&(this.M=Ue(a[b++]),this.ca=Ue(a[b++]),this.w=a[b][0],"string"==typeof this.w&&(this.w=[this.w]),this.P=a[b][1],this.ta|=a[b][2]);a[3]&&(this.G=a[3]);return!0};l.start=function(a,b){this.Y||this.g("running");this.C.Aa=!0;this.nb=a;this.pb=b};
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.J=b-this.pb;if(!this.Y){var c="stopped";if(this.J){var d=a-this.nb,e=0<d?Math.round(1E3*this.J/d):0,c=c+" (";Id(this)&&(c+=this.ba+" opcodes, ",this.la-=this.ba,this.ba=0);c+=this.J+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.xb();Af(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ia}
function Jd(a,b,c){var d=a.b;if(0<c&&(a.ia&&!--a.ia||ic(a,b,1,a.I)))return!0;0<=c&&a.K.length&&(a.ba++,b=Cb(a.u,b),null!=b&&(a.K[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Jb(a,b,c){a.g("break on input from port "+v(b)+": "+t(c));a.pa(!0)}function Vb(a,b,c){a.g("break on output to port "+v(b)+": "+t(c));a.pa(!0)}
function Ie(a){var b,c;a.I=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;jc(d.X[Qe(c)>>>d.sa],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,jc(d.X[Qe(c)>>>d.sa],!0);a.D=["bw"];a.Va=0}l.Za=function(a,b,c){var d=!0;c||Bf(this,a,b,!1,!0);if(a!=this.I){var e=Qe(b);if(-1===e)this.g("invalid address: "+X(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.sa].Za(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(Cf(this,a,a.length-1,"set"),Je(this)));return d};
function Bf(a,b,c,d,e){var f=!1;c=Qe(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Qe(g)&&(!d||g.Oa)){f=!0;g.Oa||e||Cf(a,b,h,"cleared");b.splice(h,1);b!=a.I&&(d=a.u,jc(d.X[c>>>d.sa],b==a.D));g.Oa||Je(a);break}}return f}function Df(a,b){for(var c=1;c<b.length;c++)Cf(a,b,c);return b.length-1}function Cf(a,b,c,d){c=b[c];a.g(b[0]+" "+X(c.F)+(d?" "+d:c.Cc?' "'+c.Cc+'"':""))}
l.stop=function(a,b){if(this.C.Aa){this.C.Aa=!1;this.K=b-this.pb;if(!this.Y){var c="stopped";if(this.K){var d=a-this.nb,e=0<d?Math.round(1E3*this.K/d):0,c=c+" (";Id(this)&&(c+=this.ba+" opcodes, ",this.ma-=this.ba,this.ba=0);c+=this.K+" cycles, "+d+" ms, "+e+" hz)"}else kb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.Ja(!0);this.xb();Af(this,this.b.R)}};function Id(a){return 1<a.I.length||!!a.ja}
function Jd(a,b,c){var d=a.b;if(0<c&&(a.ja&&!--a.ja||ic(a,b,1,a.I)))return!0;0<=c&&a.J.length&&(a.ba++,b=Cb(a.u,b),null!=b&&(a.J[b][1]++,b=a.L[a.fa],b.F=d.R,b.Oa=!1,++a.fa==a.L.length&&(a.fa=0)));return!1}function Jb(a,b,c){a.g("break on input from port "+v(b)+": "+t(c));a.qa(!0)}function Vb(a,b,c){a.g("break on output to port "+v(b)+": "+t(c));a.qa(!0)}
function Ie(a){var b,c;a.I=["bp"];if(void 0!==a.O)for(b=1;b<a.O.length;b++){c=a.O[b];var d=a.u;jc(d.X[Qe(c)>>>d.ia],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b<a.D.length;b++)c=a.D[b],d=a.u,jc(d.X[Qe(c)>>>d.ia],!0);a.D=["bw"];a.Va=0}l.Za=function(a,b,c){var d=!0;c||Bf(this,a,b,!1,!0);if(a!=this.I){var e=Qe(b);if(-1===e)this.g("invalid address: "+X(b.F)),d=!1;else{var f=this.u;f.X[e>>>f.ia].Za(e&f.u,a==this.D)}}d&&(a.push(b),c?b.Oa=!0:(Cf(this,a,a.length-1,"set"),Je(this)));return d};
function Bf(a,b,c,d,e){var f=!1;c=Qe(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==Qe(g)&&(!d||g.Oa)){f=!0;g.Oa||e||Cf(a,b,h,"cleared");b.splice(h,1);b!=a.I&&(d=a.u,jc(d.X[c>>>d.ia],b==a.D));g.Oa||Je(a);break}}return f}function Df(a,b){for(var c=1;c<b.length;c++)Cf(a,b,c);return b.length-1}function Cf(a,b,c,d){c=b[c];a.g(b[0]+" "+X(c.F)+(d?" "+d:c.Cc?' "'+c.Cc+'"':""))}
function Af(a,b){if(void 0!==b)ic(a,b,1,a.I,!0),a.Y=0;else for(var c=1;c<a.I.length;c++){var d=a.I[c];if(d.Oa){if(!Bf(a,a.I,d,!0))break;c=0}}}
function ic(a,b,c,d,e){var f=!1;if(!a.Va++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.Oa)for(var k=Qe(g),m=0;m<c;m++)if(b+m==k){var p,f=!0;g.Oa&&(Bf(a,d,g,!0),e=!0);if(p=g.Gd){for(var f=!1,q=0;q<p.length;q++)if(!Ef(a,p[q],!0)){if(p[q].indexOf("if")){f=!0;break}for(var x=q+1;x<p.length&&p[x].indexOf("else");x++)q++;if(x==p.length){f=!0;break}}a.b.C.Aa||(f=!0)}if(f){e||Cf(a,d,h,"hit");break}}}a.Va--;return f}
function Ff(a,b,c,d){for(var e=W(b.F),f=a.aa(b,1),h=a.Fa[f],g="",k=(8086!=a.style?Me:Ne)[h[0]],m=h.length-1,p=0,q,x=1;x<=m;x++){var u="";q=h[x];if(void 0!==q&&!(q&16384&&a.style==He)){var r=q&240;if(r){var C=q&15;C?p=C:q|=p;q&61440||(q|=1==x?8192:4096);if(r&32)a:{var u=a,r=q,C=b,y=" ";switch(r&15){case 1:y=t(u.aa(C,1),2);break;case 2:y=t(u.aa(C,1)<<24>>24,4);break;case 3:y=t(u.$a(C,2),4);break;default:u="imm("+v(r)+")";break a}8086==u.style&&r&64?y="["+y+"]":r&16||(y=(u.style==He?"$":"0x")+y);u=y}else r&
16?(u=(q&3840)>>8,r=Oe[u],8086==a.style&&q&64&&(6==u&&(r="HL"),r="["+r+"]"),u=r):r&128&&(u=(f>>3&7).toString());if(!u||!u.length){g="INVALID";break}0<g.length&&(g+=",");g+=u||"???"}}}f="";h=X(e.F)+" ";if(-1!==e.F&&-1!==b.F){do if(f+=t(a.aa(e,1),2),null==e.F)break;while(e.F!=b.F)}h+=la(f,10);h=h+(q&32768?"*":" ")+la(k,7);g&&(h+=" "+g);c&&(h=la(h,40)+";"+c,h=a.b.C.fb?h+("cycles="+Fc(a.b).toString()+" cs="+t(a.b.tb)):h+(null!=d?"="+d.toString():""));return h}
function Gf(a,b){var c;switch(b){case "IF":c=a.b.ua&512;break;case "SF":c=ed(a.b);break;case "ZF":c=dd(a.b);break;case "AF":c=cd(a.b);break;case "PF":c=bd(a.b);break;case "CF":c=$c(a.b);break;default:c=0}return b.charAt(0)+(c?"1":"0")+" "}function Hf(a,b){return Oe[b]+"="+vf(a,b)+" "}function If(a){return Hf(a,7)+Hf(a,8)+Hf(a,9)+Hf(a,10)+Hf(a,11)+Gf(a,"IF")+Gf(a,"SF")+Gf(a,"ZF")+Gf(a,"AF")+Gf(a,"PF")+Gf(a,"CF")}l.uc=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function Jf(a,b,c){var d=[],e=Qe(b)>>>0;for(b=0;b<a.G.length;b++){var f=a.G[b],h=f.F>>>0,g=f.Wd;if(e>=h&&e<h+g){e=oa(f.tc,[e-h],a.uc);0<=e?Kf(a,b,e,d):c&&(e=~e,Kf(a,b,e-1,d),Kf(a,b,e,d));break}}return d}function Kf(a,b,c,d){var e={},f=a.G[b].tc,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.G[b].Qa[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
function Lf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Me:Ne;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Fa[h][0]]+" ").substr(0,5)+" ("+ba(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Lf(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.J)if("clear"==b){for(c=0;c<a.J.length;c++)a.J[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.J.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Me:Ne;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Fa[h][0]]+" ").substr(0,5)+" ("+ba(h)+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
function Mf(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Fe(a)||a.g("no variables"),!0;if(!c[2])return Fe(a,c[1]);if(!c[3])return delete a.ea[c[1]],!0;var d=Be(a,c[3]);return void 0!==d?(a.ea[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
function Nf(a,b,c){var d=null;if(b=Re(a,b,!0)){var e=Jf(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.F-e[1])&&(h=" + "+v(f)),f=e[0]+" ("+X(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.F)&&(h=" - "+v(f)),f=e[4]+" ("+X(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
function Of(a,b){switch(b[1]){case "8080":a.style=He;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.hb=c;break;case "start":a.b.ub=c;break;case "stop":a.b.ib=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.C.fb?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(Gc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.ab.toFixed(2)+"Mhz")+" ("+
a.b.Ra+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
function yf(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Be(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.i=g&255;break;case "B":d.S=g&255;break;case "BC":d.S=g>>8&255;case "C":d.T=g&255;break;case "D":d.U=
g&255;break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Z=g&255;break;case "SP":d.na=g&65535;break;case "PC":H(d,g);a.M=W(d.R);break;case "PS":Rc(d,g);break;case "PSW":Rc(d,g&255|d.ua&-256);d.i=g>>8;break;case "CF":d.da=g?d.da|256:d.da&255;break;case "PF":g?bd(d)||(d.ga^=1):bd(d)&&(d.ga^=1);break;case "AF":d.ya=g?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=g?d.da&-256:d.da|255;break;case "SF":g?ed(d)||(d.ga^=192):ed(d)&&(d.ga^=
g&255;break;case "DE":d.U=g>>8&255;case "E":d.V=g&255;break;case "H":d.W=g&255;break;case "HL":d.W=g>>8&255;case "L":d.Z=g&255;break;case "SP":d.oa=g&65535;break;case "PC":H(d,g);a.M=W(d.R);break;case "PS":Rc(d,g);break;case "PSW":Rc(d,g&255|d.ua&-256);d.i=g>>8;break;case "CF":d.da=g?d.da|256:d.da&255;break;case "PF":g?bd(d)||(d.ga^=1):bd(d)&&(d.ga^=1);break;case "AF":d.ya=g?~d.ga&16|d.ya&-17:d.ga&16|d.ya&-17;break;case "ZF":d.da=g?d.da&-256:d.da|255;break;case "SF":g?ed(d)||(d.ga^=192):ed(d)&&(d.ga^=
192);break;case "IF":d.ua=g?d.ua|512:d.ua&-513;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}rc(d);a.g("updated registers:")}a.g(If(a));c&&(a.M=W(d.R),zf(a,X(a.M.F)))}}function Pf(a,b){b=ma(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(wf(a,c[2])):Be(a,b,!0)}function Qf(a,b,c){var d="t"!=b;c=De(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ba(c,function(){return lb(a,!0)&&a.kb(e,d,!1)},function(){rc(a.b);lb(a,!1)})}
function zf(a,b,c,d){if(b=Re(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Re(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=mb(a,!1)||a.Y?a.J:null;var h=null!=f?"cycles":null,g=Jf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var m=g[0]+":";g[2]&&(m+=" "+g[2]);a.g(m)}g[3]&&(h=g[3],f=null);f=Ff(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
function zf(a,b,c,d){if(b=Re(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=Re(a,c,!0);if(!d||d.F<b.F)return;e=d.F-b.F;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=mb(a,!1)||a.Y?a.K:null;var h=null!=f?"cycles":null,g=Jf(a,b),k=b.F;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var m=g[0]+":";g[2]&&(m+=" "+g[2]);a.g(m)}g[3]&&(h=g[3],f=null);f=Ff(a,b,h,f);a.g(f);a.M=b;e-=b.F-k;c++}}}
l.Fb=function(a,b,c){if(b)if(a){0>this.j&&this.w.length&&(this.j=0);if(0>this.j||a!=this.w[this.j])this.w.splice(0,0,a),this.j=0;this.j--}else this.P?a="end":a=this.w[this.j+1];b=[];if(a){a=a.toLowerCase().replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var h=a.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==c&&!e||!h)b.push(ma(a.substring(d,f))),d=f+1}}return b};
function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+X(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ka=null;if(nb(a)&&0<b.length){a.P&&(b="a "+X(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var m=h.charAt(k);if("?"==g||"r"==g||"a">m||"z"<m){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Re(a,f[1],!0);if(p)if(a.ca=
function Ef(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.P&&(a.g("ended assemble at "+X(a.ca.F)),a.M=a.ca,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.la=null;if(nb(a)&&0<b.length){a.P&&(b="a "+X(a.ca.F)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var m=h.charAt(k);if("?"==g||"r"==g||"a">m||"z"<m){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=Re(a,f[1],!0);if(p)if(a.ca=
p,void 0===f[2])a.g("begin assemble at "+X(p.F)),a.P=!0,rc(a.b);else{var q;a.g("not supported yet");q=[];if(q.length){for(var x=0;x<q.length;x++)a.va(p,q[x],1);a.g(Ff(a,a.ca))}}break;case "b":a:{var u=f[0],r=f[1],C=b;if("?"==r)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),
a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var y=u.charAt(1);if("l"==y){var Y=0,Y=Y+Df(a,a.I),Y=Y+Df(a,a.O);(Y+=Df(a,a.D))||a.g("no breakpoints")}else if("n"==y)a.ia=De(a,r),a.g("break after "+a.ia+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var B=W();if("*"!=r&&(B=Re(a,r,!0),!B))break a;r=v(B.F);"c"==y?null==B.F?(Ie(a),a.g("all breakpoints cleared")):Bf(a,a.I,B)||Bf(a,a.O,B)||Bf(a,a.D,B)||a.g("breakpoint missing: "+X(B.F)):
a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var y=u.charAt(1);if("l"==y){var Y=0,Y=Y+Df(a,a.I),Y=Y+Df(a,a.O);(Y+=Df(a,a.D))||a.g("no breakpoints")}else if("n"==y)a.ja=De(a,r),a.g("break after "+a.ja+" instruction(s)");else if(void 0===r)a.g("missing breakpoint address");else{var B=W();if("*"!=r&&(B=Re(a,r,!0),!B))break a;r=v(B.F);"c"==y?null==B.F?(Ie(a),a.g("all breakpoints cleared")):Bf(a,a.I,B)||Bf(a,a.O,B)||Bf(a,a.D,B)||a.g("breakpoint missing: "+X(B.F)):
"i"==y?a.g("breakpoint "+(Fb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (input)"):"o"==y?a.g("breakpoint "+(Kb(a.u,B.F)?"enabled":"cleared")+": port "+r+" (output)"):null!=B.F&&(Ve(a,B,C),"p"==y?a.Za(a.I,B):"r"==y?a.Za(a.O,B):"w"==y?a.Za(a.D,B):a.g("unknown breakpoint command: "+y))}}}break;case "c":a.Ga&&(a.Ga.value="");break;case "d":a:{var R,ca=f[0],Z=f[1],va=f[2],Hb=f[3];if("?"==Z){var Ga="";for(R in tb)a.wa[R]&&(Ga&&(Ga+=","),Ga+=R);Ga+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");
a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");Ga.length&&a.g("dump extension commands:\n\t"+Ga)}else if("state"==Z){var We=Rf(a.B,!0);"console"==va?console.log(We):(a.Ga&&(a.Ga.value=""),a.g(We))}else if("symbols"==Z)for(var nd=0;nd<a.G.length;nd++){var od=a.G[nd],pb;for(pb in od.Qa)if("."!=pb.charAt(0)){var Xe=od.Qa[pb].o;if(void 0!==Xe){var Ye=od.Qa[pb].l;Ye&&(pb=Ye);a.g(X(Xe)+" "+pb)}}}else{if("d"==
ca){for(R in tb)if(f[1]==R){var Ze=a.wa[R];Ze?(f.shift(),f.shift(),Ze(f)):a.g("no dump registered for "+Z);break a}Z||(ca=a.rb||"db")}else a.rb=ca;if("dh"==ca){var $e=Z,af=va,bf="",cf=0,da=a.fa,Ha=a.L;if(Ha.length){var ia=+$e||a.Wa,qb=+af||10;isNaN(ia)?ia=qb:bf="more ";ia>Ha.length&&(a.g("note: only "+Ha.length+" available"),ia=Ha.length);da-=ia;0>da&&(null==Ha[Ha.length-1].F?(ia=da+ia,da=0):da+=Ha.length);var pd=[];"call"==af&&(qb=1E5,pd=["CALL"]);for(void 0!==$e&&a.g(ia+" instructions earlier:");0<
qb&&da!=a.fa;){var df=Ha[da++];if(null==df.F)break;var Lb=W(df.F),jg=ia--,ef=Ff(a,Lb,"history",jg);(!pd.length||0<=ef.indexOf(pd[0]))&&a.g(ef);Lb.Lb&&(da+=Lb.Lb,qb-=Lb.Lb,ia-=Lb.Lb);da>=Ha.length&&(da=0);a.Wa=ia;cf++;qb--}}cf||(a.g("no "+bf+"history available"),a.Wa=void 0)}else{var sc=Re(a,Z);if(sc){var tc=0;va&&("l"==va.charAt(0)&&(va=va.substr(1)||Hb),tc=De(a,va)>>>0,65536<tc&&(tc=65536));for(var Za="",uc="dd"==ca?4:"dw"==ca?2:1,vc=uc*tc||128,kg=vc+15>>4||1;kg--&&0<vc;){var wc=0,qd=0,Mb,Nb="",
rd="",Z=X(sc.F);for(Mb=16;0<Mb&&0<vc;Mb--){var xc=a.aa(sc,1),wc=wc|xc<<(qd++<<3);qd==uc&&(Nb+=t(wc,2*uc),Nb+=1==uc?9==Mb?"-":" ":" ",wc=qd=0);rd+=32<=xc&&128>xc?String.fromCharCode(xc):".";vc--}Za&&(Za+="\n");Za+=Z+" "+Nb+(0==Mb?" "+rd:"")}Za&&a.g(Za);a.Ua=sc}}}}break;case "e":if("else"==f[0])break;var yc=1,ff=255,gf=a.aa,hf=a.va;"ew"==f[0]&&(yc=2,ff=65535,gf=a.$a,hf=a.Ib);var jf=yc<<1,kf=f[1];if(null==kf)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");
else{var zc=Re(a,kf);if(zc)for(var Ac=2;Ac<f.length;Ac++){var Ob=Be(a,f[Ac]);if(void 0===Ob){a.g("unrecognized value: "+f[Ac]);break}Ob&~ff&&a.g("warning: "+t(Ob)+" exceeds "+yc+"-byte value");var lg=gf.call(a,zc);a.g("changing "+X(zc.F)+" from "+t(lg,jf,!0)+" to "+t(Ob,jf,!0));hf.call(a,zc,Ob,yc)}}break;case "f":Lf(a,f[1]);break;case "g":a:{var lf=f[1],mg=b;if(void 0!==lf){var sd=Re(a,lf,!0);if(!sd)break a;Ve(a,sd,mg);a.Za(a.I,sd,!0)}a.bb(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
case "h":a:{var td;if(a.C.Aa)td="halting",a.pa();else{if(mb(a,!0))break a;td="already halted"}c||a.g(td)}break;case "i":if("if"==f[0]){var ud;var Pb=b.substr(2),Pb=ma(Pb);Be(a,Pb)?(c||a.g("true: "+Pb),ud=!0):(c||a.g("false: "+Pb),ud=!1);ud||(d=!1);break}if("int"==f[0]){var Bc;var ng=f[1];if(a.b.ua&512){var vd=Be(a,ng);null==vd?Bc=!1:(a.g("requesting interrupt level "+vd),Hd(a.b,vd),Bc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Bc=!1;Bc||(d=!1);break}var wd=f[1];if(wd&&"?"!=wd){var xd=
De(a,wd);if(void 0!==xd){var og=Ib(a.u,xd);a.g(v(xd)+": "+ba(og))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var pg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yd=0,mf=W(),Qb=W(a.b.na);for(a.g("stack trace for "+X(Qb.F));10>yd;){for(var $a=null,qg=256;65536>Qb.F>>>0;){mf.F=a.$a(Qb,2);if(null==Qb.F||!qg--)break;for(var rg=a,Cc=mf,nf=
case "h":a:{var td;if(a.C.Aa)td="halting",a.qa();else{if(mb(a,!0))break a;td="already halted"}c||a.g(td)}break;case "i":if("if"==f[0]){var ud;var Pb=b.substr(2),Pb=ma(Pb);Be(a,Pb)?(c||a.g("true: "+Pb),ud=!0):(c||a.g("false: "+Pb),ud=!1);ud||(d=!1);break}if("int"==f[0]){var Bc;var ng=f[1];if(a.b.ua&512){var vd=Be(a,ng);null==vd?Bc=!1:(a.g("requesting interrupt level "+vd),Hd(a.b,vd),Bc=!0)}else a.g("interrupts disabled (use rif=1 to enable)"),Bc=!1;Bc||(d=!1);break}var wd=f[1];if(wd&&"?"!=wd){var xd=
De(a,wd);if(void 0!==xd){var og=Ib(a.u,xd);a.g(v(xd)+": "+ba(og))}}else a.g("input commands:"),a.g("\ti [p]\tread port [p]"),a.g("warning: port accesses can affect hardware state");break;case "k":var pg=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var yd=0,mf=W(),Qb=W(a.b.oa);for(a.g("stack trace for "+X(Qb.F));10>yd;){for(var $a=null,qg=256;65536>Qb.F>>>0;){mf.F=a.$a(Qb,2);if(null==Qb.F||!qg--)break;for(var rg=a,Cc=mf,nf=
null,Rb=Cc.F,of=Rb,zd=1;6>=zd&&Rb;zd++){if(2<zd){Cc.F=Rb;var Dc=Ff(rg,Cc);if(0<=Dc.indexOf("CALL")){var pf=Dc.indexOf(" ");if(Rb+(Dc.indexOf(" ",pf+1)-pf-1)/2==of){nf=Dc;break}}}Rb--}Cc.F=of;if($a=nf)break}if(!$a||null==$a)break;var qf=null;if("ks"==pg){var rf=$a.match(/[0-9A-F]+$/);rf&&(qf=Nf(a,rf[0]))}$a=la($a,50)+" ;"+(qf||"stack="+X(Qb.F));a.g($a);yd++}yd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Nf(a,f[1],!0);break}break;case "m":a:{var Ia,Ja=null,O=f[1];"?"==O&&(O=void 0);
if(void 0!==O){var Ta=0;if("all"==O)Ta=1878917119,O=null;else if("on"==O)Ja=!0,O=null;else if("off"==O)Ja=!1,O=null;else{"keys"==O&&(O="key");"kbd"==O&&(O="keyboard");for(Ia in tb)if(O==Ia){Ta=tb[Ia];Ja=!!(a.ta&Ta);break}if(!Ta){a.g("unknown message category: "+O);break a}}if(Ta)if("on"==f[2])a.ta|=Ta,Ja=!0;else if("off"==f[2]&&(a.ta&=~Ta,Ja=!1,1073741824==Ta)){for(var Ad=0;Ad<a.qa.length;Ad++)a.g(a.qa[Ad]);a.qa=[]}}var sg=0,Ua="";for(Ia in tb)if(!O||O==Ia){var tg=!!(a.ta&tb[Ia]);if(null===Ja||Ja==
if(void 0!==O){var Ta=0;if("all"==O)Ta=1878917119,O=null;else if("on"==O)Ja=!0,O=null;else if("off"==O)Ja=!1,O=null;else{"keys"==O&&(O="key");"kbd"==O&&(O="keyboard");for(Ia in tb)if(O==Ia){Ta=tb[Ia];Ja=!!(a.ta&Ta);break}if(!Ta){a.g("unknown message category: "+O);break a}}if(Ta)if("on"==f[2])a.ta|=Ta,Ja=!0;else if("off"==f[2]&&(a.ta&=~Ta,Ja=!1,1073741824==Ta)){for(var Ad=0;Ad<a.ra.length;Ad++)a.g(a.ra[Ad]);a.ra=[]}}var sg=0,Ua="";for(Ia in tb)if(!O||O==Ia){var tg=!!(a.ta&tb[Ia]);if(null===Ja||Ja==
tg)Ua&&(Ua+=","),++sg%10||(Ua+="\n\t"),"key"==Ia&&(Ia="keys"),Ua+=Ia}void 0===O&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ja?Ja?"messages on: ":"messages off: ":"message categories:\n\t")+(Ua||"none"));Je(a)}break;case "o":var Bd=f[1],ug=f[2];if(Bd&&"?"!=Bd){var Cd=De(a,Bd,"port #"),Dd=De(a,ug);void 0!==Cd&&void 0!==Dd&&(Ub(a.u,Cd,Dd),a.g(v(Cd)+": "+ba(Dd)))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");
break;case "p":if("print"==f[0]){Pf(a,b.substr(5));break}var sf="pr"==f[0]?1:0,vg=1+sf;if(a.Y)a.g("step in progress");else{var Ed=W(a.b.R);switch(a.aa(Ed)){case 205:a.Y=vg,Se(Ed,3)}a.Y?(a.Za(a.I,Ed,!0),a.bb()||(a.B&&a.B.xb(),a.Y=0)):Qf(a,sf?"tr":"t")}break;case "r":if("reset"==b){a.B&&a.B.reset();break}yf(a,f);break;case "s":Of(a,f);break;case "t":Qf(a,f[0],f[1]);break;case "u":zf(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Mf(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.30.0 ("+a.b.Ac+",RELEASE"+
(rb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(ta());break;case "?":if(f[1]){Pf(a,b.substr(1));break}var Sb="commands:",Fd;for(Fd in Le)Sb+="\n"+la(Fd,9)+Le[Fd];Id(a)||(Sb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Sb);break;default:a.g("unknown command: "+b),d=!1}}}catch(tf){a.g("debugger error: "+(tf.stack||tf.message)),d=!1}return d}function qc(a,b,c){b=a.Fb(b,c);for(var d in b)if(!Ef(a,b[d]))return!1;return!0}
Ma(function(){for(var a=D(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=A(c),d=new Ge(d);hb(d,c)}});
function Sf(a,b,c){z.call(this,"Computer",a,Sf,67108864);this.C.xa=!1;Tf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Uf;this.L=null;this.K=this.ba=!1;this.fa=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Vf(this);if(this.b=gb("CPU",this.id)){this.H=gb("Debugger",this.id);this.G=[];for(b=null;b=vb(this,"Video",b);)this.G.push(b);this.u=new xb({id:this.Bb+".bus",busWidth:this.ea},this.b,this.H);var d,e=eb(this.id);if((this.I=gb("Panel",this.id))&&
this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ja=this.I.ja,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.0\nCopyright \u00a9 2012-2016 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.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.J=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.K=!0,this.B=Uf),this.B&&(this.M=new Uc(this,"1.30.0"),Wf(this.M)?
b=null:delete this.M);!b&&this.B&&(b=Xf(this))&&(this.K=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.J=null,h.K=!1,h.ja("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.ba=!0);F(h)})}else F(this);this.N.power||(this.O=!0);!c&&this.O&&Yf(this,this.vb)}else w("Unable to find CPU component")}bb(Sf);var Uf=0;function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b}
function Sf(a,b,c){z.call(this,"Computer",a,Sf,67108864);this.C.xa=!1;Tf(this,b);this.O=nc(this,"autoPower",a);this.w=0;this.ea=a.busWidth||a.buswidth;this.B=Uf;this.L=null;this.J=this.ba=!1;this.fa=nc(this,"url")||"";(Math.random()+.1).toString(36);this.j=Vf(this);if(this.b=gb("CPU",this.id)){this.H=gb("Debugger",this.id);this.G=[];for(b=null;b=vb(this,"Video",b);)this.G.push(b);this.u=new xb({id:this.Bb+".bus",busWidth:this.ea},this.b,this.H);var d,e=eb(this.id);if((this.I=gb("Panel",this.id))&&
this.I.Ga)for(b=0;b<e.length;b++)d=e[b],d.ka=this.I.ka,d.g=this.I.g,d.Ga=this.I.Ga;this.g("PC8080 v1.30.0\nCopyright \u00a9 2012-2016 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.Pa&&d.Pa(this,this.u,this.b,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.K=d:this.B=parseInt(d,10));var f;if(a=nc(this,"state")||(f=!0,a.state))b=this.P=a,f||(this.J=!0,this.B=Uf),this.B&&(this.M=new Uc(this,"1.30.0"),Wf(this.M)?
b=null:delete this.M);!b&&this.B&&(b=Xf(this))&&(this.J=!0);if(b){var h=this;sa(b,null,!0,function(a,b,c){c?(h.K=null,h.J=!1,h.ka("Unable to load machine state from server (error "+c+(b?": "+ma(b):"")+")")):(h.L=b,h.ba=!0);F(h)})}else F(this);this.N.power||(this.O=!0);!c&&this.O&&Yf(this,this.vb)}else w("Unable to find CPU component")}bb(Sf);var Uf=0;function Tf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.ca=b}
function nc(a,b,c){var d=b.toLowerCase(),d=Va[b]||Va[d];void 0===d&&a.ca&&(d=a.ca[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Yf(a,b,c){for(var d=eb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!nb(f)){nb(f,function(){Yf(a,b,c)});return}}b.call(a,c)}
function Zf(a,b){var c=new Uc(a,"1.30.0","validate");if(Wf(c)&&$f(c)){var d=ag(c,"timestamp"),e=b?ag(b,"timestamp"):"unknown";d!=e&&(a.ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Sf.prototype;
l.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Uf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>Uf){if(Wf(d,this.L)){this.D=new Uc(this,"1.30.0","failsafe");Wf(this.D)&&(bg(this,d),a=2,cg(this.D));I(this.D,"timestamp",qa());dg(this.D);var e=this.B&&!this.K;if(1==a||ua("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var f=ag(d,"code"),h=ag(d,"data");f&&("ok"==f?Wf(d,h):("error"==f&&
"no machine state"!=h?(this.ja("Error: "+h),"unable to verify user"==h&&(za("user",""),this.j=null)):this.g(f+": "+h),cg(d),Wf(d)?(c=$f(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.L;delete this.M}e=eb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=eg(this,h,d,b,c));b=[d,a,c];-1!=a?Yf(this,this.wc,b):this.wc(b)}};
function Zf(a,b){var c=new Uc(a,"1.30.0","validate");if(Wf(c)&&$f(c)){var d=ag(c,"timestamp"),e=b?ag(b,"timestamp"):"unknown";d!=e&&(a.ka("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}l=Sf.prototype;
l.vb=function(a){void 0===a&&(a=this.B||(this.L?1:Uf));if(!this.w){this.w++;var b=!1,c=!1;this.Y=!1;var d=this.M||new Uc(this,"1.30.0");if(-1==a)b=!0;else if(a>Uf){if(Wf(d,this.L)){this.D=new Uc(this,"1.30.0","failsafe");Wf(this.D)&&(bg(this,d),a=2,cg(this.D));I(this.D,"timestamp",qa());dg(this.D);var e=this.B&&!this.J;if(1==a||ua("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=$f(d)){var f=ag(d,"code"),h=ag(d,"data");f&&("ok"==f?Wf(d,h):("error"==f&&
"no machine state"!=h?(this.ka("Error: "+h),"unable to verify user"==h&&(za("user",""),this.j=null)):this.g(f+": "+h),cg(d),Wf(d)?(c=$f(d),e=!0):c=!1))}e&&Zf(this,c?d:null)}else 2==a&&d.clear()}else Zf(this);delete this.L;delete this.M}e=eb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=eg(this,h,d,b,c));b=[d,a,c];-1!=a?Yf(this,this.wc,b):this.wc(b)}};
function eg(a,b,c,d,e){if(!b.C.xa){b.C.xa=!0;if(b.Ea){var f=null;e&&((f=ag(c,b.id))||(f=ag(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ea(f,d)&&f&&(w("Unable to restore state for "+b.type),a.P&&!a.ba?(c.clear(),a.B=Uf,window&&window.location.reload()):a.Y=!0,b.Ea(null),e=!1)}if(!d&&b.ec)for(a=b.ec.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
l.wc=function(a){var b=a[0],c=0>a[1];a=a[2];this.ha=!0;this.C.xa=!0;var d=this.N.power;d&&(d.textContent="Shutdown");this.b&&(eg(this,this.b,b,c,a),this.b.sb());this.Y&&(bg(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D);this.w=0};
function bg(a,b){if(ua("There may be a problem with your PC8080 machine.\n\nTo help us diagnose it, click OK to send this PC8080 machine state to http://www.pcjs.org.")){var c=a.j||"",d=b.toString(),e={app:"PC8080",ver:"1.30.0"};e.url=a.fa;e.user=c;e.type="bug";e.data=d;sa("http://www.pcjs.org/api/v1/report",e,!0)}}
function Rf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=qa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.30.0");I(f,"url",window?window.location.href:null);I(f,"browser",ta());a.b&&a.b.Ia&&(c&&a.b.pa(),d=a.b.Ia(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var g=eb(a.id),k=0;k<g.length;k++){var m=g[k];m.C.xa&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&I(f,m.id,d)),c&&(m.C.xa=!1,!1===d&&(e=null)))}e&&
function Rf(a,b,c){var d,e="none";if(a.w)return null;a.w--;var f=new Uc(a,"1.30.0"),h=new Uc(a,"1.30.0","validate"),g=qa();I(h,"timestamp",g);I(f,"timestamp",g);I(f,"version","1.30.0");I(f,"url",window?window.location.href:null);I(f,"browser",ta());a.b&&a.b.Ia&&(c&&a.b.qa(),d=a.b.Ia(b,c),"object"===typeof d&&I(f,a.b.id,d),c&&(a.b.C.xa=!1,!1===d&&(e=null)));for(var g=eb(a.id),k=0;k<g.length;k++){var m=g[k];m.C.xa&&(m.Ia&&(d=m.Ia(b,c),"object"===typeof d&&I(f,m.id,d)),c&&(m.C.xa=!1,!1===d&&(e=null)))}e&&
(c?(g=d=!1,b?(a.j&&fg(a,a.j,f.toString()),dg(h)&&dg(f)||(e=null,d=g=!0)):a.B&&(d=!0,g=3==a.B),d&&f.clear(g)):e=f.toString());c&&(a.C.xa=!1,b=a.N.power)&&(b.textContent="Power");a.w=0;return e}l.reset=function(){this.u&&this.u.reset&&(jb(this,"Resetting "+this.u.type),this.u.reset());for(var a=eb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c.reset&&(jb(this,"Resetting "+c.type),c.reset())}};
l.start=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};l.stop=function(a,b){for(var c=eb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
l.oa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.xa?Rf(d,!1,!0):Yf(d,d.vb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.xa&&!d.w)if(d.B&&!d.J){var a=ua("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rf(d,a,!0);!a&&d.P?window&&window.location.reload():d.vb(Uf)}else d.reset(),d.b&&d.b.sb()},!0;case "save":if(ga()){c.parentNode.removeChild(c);break}this.N[b]=
c;c.onclick=function(){var a=Vf(d,!0);if(a){var b=!!(d.B&&!d.J||d.P),c=Rf(d,b);b?fg(d,a,c):d.ja("Resume disabled, machine state not saved")}};return!0}return!1};
function Vf(a,b){var c=a.j;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=gg(a,c))||a.ja("The user ID is invalid."))):b&&a.ja("Browser local storage is not available"));return c}
l.pa=function(a,b,c){var d=this;switch(b){case "power":return this.N[b]=c,c.onclick=function(){d.w||(d.C.xa?Rf(d,!1,!0):Yf(d,d.vb))},!0;case "reset":return this.N[b]=c,c.onclick=function(){if(d.C.xa&&!d.w)if(d.B&&!d.K){var a=ua("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Rf(d,a,!0);!a&&d.P?window&&window.location.reload():d.vb(Uf)}else d.reset(),d.b&&d.b.sb()},!0;case "save":if(ga()){c.parentNode.removeChild(c);break}this.N[b]=
c;c.onclick=function(){var a=Vf(d,!0);if(a){var b=!!(d.B&&!d.K||d.P),c=Rf(d,b);b?fg(d,a,c):d.ka("Resume disabled, machine state not saved")}};return!0}return!1};
function Vf(a,b){var c=a.j;c||(c=ya("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=gg(a,c))||a.ka("The user ID is invalid."))):b&&a.ka("Browser local storage is not available"));return c}
function gg(a,b){a.j=null;var c=sa(ha()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(za("user",c.data),a.j=c.data)}catch(e){w(e.message+" ("+d+")")}return a.j}function Xf(a){var b=null;a.j&&(b=ha()+"/api/v1/user?req=load&user="+a.j+"&state="+hg(a,"1.30.0"));return b}
function fg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hg(a,"1.30.0");d.data=c;b=sa(ha()+"/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),za("user",""),a.j=null)}}
function vb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.xb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.ka&&d.ka.focus();!a&&window&&window.scrollTo(b,c)}};l.Ja=function(a){this.b&&this.b.Ja(a);this.I&&this.I.Ja(a)};
function fg(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hg(a,"1.30.0");d.data=c;b=sa(ha()+"/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.ka("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.ka(c),za("user",""),a.j=null)}}
function vb(a,b,c){a=eb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}l.xb=function(a){if(this.G.length){var b=0,c=0;!a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.G[0];d.la&&d.la.focus();!a&&window&&window.scrollTo(b,c)}};l.Ja=function(a){this.b&&this.b.Ja(a);this.I&&this.I.Ja(a)};
Ma(function(){for(var a=D(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=A(c),c=D(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=A(f),h=new Sf(h,d,!0);hb(h,f);h.O&&Yf(h,h.vb)}});Da.show.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.ha&&!c.C.xa&&c.vb(-1)}});
Da.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.C.xa&&Rf(c,!(!c.B||c.J),!0)}});function Uc(a,b,c){this.id=a.id;this.key=hg(a,b,c);this.H=a.H;cg(this,a.Md)}function hg(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}
Da.exit.push(function(){for(var a=D(document,"pc8080","computer"),b=0;b<a.length;b++){var c=A(a[b]);(c=gb("Computer",c.id))&&c.C.xa&&Rf(c,!(!c.B||c.K),!0)}});function Uc(a,b,c){this.id=a.id;this.key=hg(a,b,c);this.H=a.H;cg(this,a.Md)}function hg(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}
Uc.prototype={constructor:Uc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){cg(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 cg(a,b){a[a.id]={};b&&I(a,"parms",b);a.b=!1}function dg(a){var b=!0;if(xa()){var c=JSON.stringify(a[a.id]);za(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function $f(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Wf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:xa()&&(b=ya(a.key))?(a[a.id]=b,a.b=!0):!1}function ag(a,b){return a[a.id][b]||null}function I(a,b,c){try{a[a.id][b]=c}catch(d){}}var ig=0;
function wg(a,b,c,d,e,f){e("Loading "+a+"...");sa(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):xg(g,a,b,c,d,e,f)})}

View file

@ -22,17 +22,17 @@ function Ra(a,b){b&&(a.l.ready?b():a.$a=b);return a.l.ready}
var Sa="undefined"!==typeof ArrayBuffer,Ta=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Ua(a){r.call(this,"Panel",a,Ua)}x(Ua);k=Ua.prototype;k.V=function(a,b,c,d){return this.v&&this.v.V(a,b,c,d)||this.a&&this.a.V(a,b,c,d)||this.m&&this.m.V(a,b,c,d)?!0:this.parent.V.call(this,a,b,c,d)};k.qa=function(a,b,c,d){this.v=a;this.j=b;this.a=c;this.N=d;this.m=Va(a,"Keyboard")};k.ga=function(a,b){b||Wa();return!0};k.ia=function(){return!0};k.Aa=function(){};
function Wa(){for(var a=!1,b=B(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=A(d),f=Na(e.id);f||(a=!0,f=new Ua(e));Pa(f,d);a&&D(f)}}ya(Wa);
function Xa(a,b,c){r.call(this,"Bus",a,Xa);this.a=b;this.N=c;this.i=a.busWidth||16;this.u=Math.pow(2,this.i);this.g=this.u-1|0;this.j=16>=this.i?10:20>=this.i?12:24>=this.i?14:15;this.c=1<<this.j;this.w=this.c>>2;this.f=this.c-1;this.m=this.u/this.c|0;this.s=this.m-1;this.v=[];this.o=[];this.B=[];this.C=[];a=new E;Ya(a,this.N);this.b=Array(this.m);for(b=0;b<this.m;b++)this.b[b]=a;D(this)}x(Xa);Xa.prototype.reset=function(){};Xa.prototype.ga=function(a,b){b||this.reset();return!0};
function Xa(a,b,c){r.call(this,"Bus",a,Xa);this.a=b;this.N=c;this.s=a.busWidth||16;this.u=Math.pow(2,this.s);this.g=this.u-1|0;this.j=(this.s>>1)+2;10>this.j&&(this.j=10);15<this.j&&(this.j=15);this.c=1<<this.j;this.w=this.c>>2;this.f=this.c-1;this.i=this.u/this.c|0;this.o=this.i-1;this.m=[];this.v=[];this.B=[];this.C=[];a=new E;Ya(a,this.N);this.b=Array(this.i);for(b=0;b<this.i;b++)this.b[b]=a;D(this)}x(Xa);Xa.prototype.reset=function(){};Xa.prototype.ga=function(a,b){b||this.reset();return!0};
function Za(a,b,c,d){for(var e=b,f=c,h=e>>>a.j;0<f&&h<a.b.length;){var g=a.b[h],l=h*a.c,n=a.c-(e-l);n>f&&(n=f);if(g&&g.size){if(g.type==d){if(e+f<=g.Ma)return g.eb+=g.Ma-e,g.Ma=e,!0;if(e>=g.Ma+g.eb){n=g.size-(e-l);n>f&&(n=f);g.eb=e-g.Ma+n;e=l+a.c;f-=n;h++;continue}}return $a(1,e,f)}e=new E(e,n,a.c,d);Ya(e,a.N,g);a.b[h++]=e;e=l+a.c;f-=n}return 0>=f?(a.status(Math.floor(c/1024)+"Kb "+ab[d]+" at "+p(b,4,!0)),!0):$a(2,b,c)}Xa.prototype.J=function(a){return this.b[(a&this.g)>>>this.j].Qa(a&this.f,a)};
function bb(a,b){return a.b[(b&a.g)>>>a.j].cb(b&a.f,b)}function cb(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].kd(c,b):a.b[d++].Qa(c,b)|a.b[d&a.s].Qa(0,b+1)<<8}Xa.prototype.aa=function(a,b){this.b[(a&this.g)>>>this.j].Ra(a&this.f,b&255,a)};function db(a,b,c){a.b[(b&a.g)>>>a.j].Hb(b&a.f,c&255,b)}function eb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].ld(d,c&65535,b):(a.b[e++].Ra(d,c&255,b),a.b[e&a.s].Ra(0,c>>8&255,b+1))}
function fb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.v[l]?q("Input port "+p(l,4,!0)+" already registered"):f.v[l]=[g,!1]}}function hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.o[l]?q("Output port "+p(l,4,!0)+" already registered"):f.o[l]=[g,!1]}}function $a(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var ib;
function bb(a,b){return a.b[(b&a.g)>>>a.j].cb(b&a.f,b)}function cb(a,b){var c=b&a.f,d=(b&a.g)>>>a.j;return c!=a.f?a.b[d].kd(c,b):a.b[d++].Qa(c,b)|a.b[d&a.o].Qa(0,b+1)<<8}Xa.prototype.aa=function(a,b){this.b[(a&this.g)>>>this.j].Ra(a&this.f,b&255,a)};function db(a,b,c){a.b[(b&a.g)>>>a.j].Hb(b&a.f,c&255,b)}function eb(a,b,c){var d=b&a.f,e=(b&a.g)>>>a.j;d!=a.f?a.b[e].ld(d,c&65535,b):(a.b[e++].Ra(d,c&255,b),a.b[e&a.o].Ra(0,c>>8&255,b+1))}
function fb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.m[l]?q("Input port "+p(l,4,!0)+" already registered"):f.m[l]=[g,!1]}}function hb(a,b,c,d){void 0===d&&(d=0);if(c)for(var e in c){var f=a,h=+e+d,g=c[e].bind(b);if(void 0!==g)for(var l=+e+d;l<=h;l++)void 0!==f.v[l]?q("Output port "+p(l,4,!0)+" already registered"):f.v[l]=[g,!1]}}function $a(a,b,c){q("Memory block error ("+a+": "+p(b)+","+p(c)+")");return!1}var ib;
if(Sa){var jb=new ArrayBuffer(2);(new DataView(jb)).setUint16(0,256,!0);ib=256===(new Uint16Array(jb))[0]}else ib=!1;var kb=ib;
function E(a,b,c,d){this.id=lb+=2;this.a=null;this.Ma=a;this.eb=b;this.size=c||0;this.type=d||mb;this.c=d==nb;Ya(this);this.na=this.Ab=!1;if(c)if(Sa)this.j=new ArrayBuffer(c),this.A=new DataView(this.j,0,c),this.b=new Uint8Array(this.j,0,c),this.i=new Uint16Array(this.j,0,c>>1),this.a=new Int32Array(this.j,0,c>>2),ob(this,kb?pb:qb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ob(this,rb)}else ob(this)}var mb=0,nb=2,ab=["NONE","RAM","ROM","VID","H/W"],lb=0;
E.prototype={constructor:E,parent:null,save:function(){var a,b;if(Sa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.A.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Sa)for(b=0;b<a.length;b++)this.A.setInt32(b<<2,a[b],!0);else this.a=a;return this.na=!0}return!1},m:function(){return 255},o:function(){},v:function(a,b){return this.Qa(a++,b++)|this.Qa(a,b)<<8},s:function(a,b,c){this.Ra(a++,b&255,c++);this.Ra(a,b>>8,c)},C:function(a){return this.a[a>>
2]>>>((a&3)<<3)&255},I:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},S:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.na=!0},ea:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.na=!0},w:function(a,b){return this.cb(a,b)},K:function(a,b){return this.Eb(a,b)},O:function(a,b,c){this.c||this.Hb(a,b,c)},W:function(a,
b,c){this.c||this.X(a,b,c)},u:function(a){return this.b[a]},B:function(a){return this.b[a]},G:function(a){return this.A.getUint16(a,!0)},H:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.i[a>>1]},L:function(a,b){this.b[a]=b;this.na=!0},R:function(a,b){this.b[a]=b;this.na=!0},T:function(a,b){this.A.setUint16(a,b,!0);this.na=!0},Z:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.i[a>>1]=b;this.na=!0}};function Ya(a,b,c){a.N=b;a.f=a.g=0;c&&((a.f=c.f)&&sb(a,tb,!1),(a.g=c.g)&&ub(a,tb,!1))}
function ub(a,b,c){c&&a.g||(a.Ra=!a.c&&b[2]||a.o,a.ld=!a.c&&b[3]||a.s);if(c||void 0===c)a.Hb=b[2]||a.o,a.X=b[3]||a.s}function sb(a,b,c){c&&a.f||(a.Qa=b[0]||a.m,a.kd=b[1]||a.v);if(c||void 0===c)a.cb=b[0]||a.m,a.Eb=b[1]||a.v}function ob(a,b){b||(b=vb);sb(a,b,void 0);ub(a,b,void 0)}var vb=[],rb=[E.prototype.C,E.prototype.I,E.prototype.S,E.prototype.ea],tb=[E.prototype.w,E.prototype.K,E.prototype.O,E.prototype.W];
if(Sa)var qb=[E.prototype.u,E.prototype.G,E.prototype.L,E.prototype.T],pb=[E.prototype.B,E.prototype.H,E.prototype.R,E.prototype.Z];function wb(a,b){r.call(this,"CPU",a,wb);var c=a.multiplier||1;this.la=a.cycles||b;this.I=c;this.Ca=Math.round(this.la/1E4)/100;this.W=this.Ca*this.I;this.l.oa=!1;this.l.Fb=!1;this.l.Na=a.autoStart;this.l.yb=!1;this.l.Ya=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.ea=a.csStop;this.G=[];this.Xa=this.ib.bind(this);D(this)}x(wb);var xb=["power","reset"];
function ub(a,b,c){c&&a.g||(a.Ra=!a.c&&b[1]||a.o,a.ld=!a.c&&b[3]||a.s);if(c||void 0===c)a.Hb=b[1]||a.o,a.X=b[3]||a.s}function sb(a,b,c){c&&a.f||(a.Qa=b[0]||a.m,a.kd=b[2]||a.v);if(c||void 0===c)a.cb=b[0]||a.m,a.Eb=b[2]||a.v}function ob(a,b){b||(b=vb);sb(a,b,void 0);ub(a,b,void 0)}var vb=[],rb=[E.prototype.C,E.prototype.S,E.prototype.I,E.prototype.ea],tb=[E.prototype.w,E.prototype.O,E.prototype.K,E.prototype.W];
if(Sa)var qb=[E.prototype.u,E.prototype.L,E.prototype.G,E.prototype.T],pb=[E.prototype.B,E.prototype.R,E.prototype.H,E.prototype.Z];function wb(a,b){r.call(this,"CPU",a,wb);var c=a.multiplier||1;this.la=a.cycles||b;this.I=c;this.Ca=Math.round(this.la/1E4)/100;this.W=this.Ca*this.I;this.l.oa=!1;this.l.Fb=!1;this.l.Na=a.autoStart;this.l.yb=!1;this.l.Ya=!1;this.ta=this.X=0;this.ua=a.csStart;this.Z=a.csInterval;this.ea=a.csStop;this.G=[];this.Xa=this.ib.bind(this);D(this)}x(wb);var xb=["power","reset"];
k=wb.prototype;k.qa=function(a,b,c,d){this.v=a;this.j=b;this.N=d;for(b=0;b<xb.length;b++)(c=this.A[xb[b]])&&this.v.V(null,xb[b],c);this.K=Va(a,"ChipSet");a=yb(a,"autoStart");null!=a&&(this.l.Na="true"==a?!0:"false"==a?!1:!!a);D(this)};k.reset=function(){};k.save=function(){return null};k.restore=function(){return!1};k.ga=function(a,b){if(!b){if(a&&this.restore){zb(this);if(!this.restore(a))return!1;Ab(this)}else this.reset();this.da("No debugger detected")}Bb(this);return!0};
k.ia=function(a){return a?this.save():!0};k.Na=function(){return this.l.Na||void 0===this.A.run?(this.ib(!0),!0):!1};k.Bb=function(){return 0};function Ab(a){void 0===a.ua&&(a.ua=0);void 0===a.Z&&(a.Z=-1);void 0===a.ea&&(a.ea=-1);a.l.Ya=0<=a.ua&&0<a.Z;a.l.Ya&&(a.ta=0,a.X=a.ua-a.T)}
k.V=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.A[b]=c;a=!0;break;case "run":this.A[b]=c;c.onclick=function(){var a;if(a=d.v)if(a=d.v,a.l.Y)a=!0;else{var b=null,c,g=Ma(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.l.ready);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.l.Y);c++);c==g.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.$a?" (waiting for notification)":""))+".");a=!1}a&&(d.l.oa?Cb(d):d.ib())};a=!0;
@ -43,7 +43,7 @@ a=f;for(var h=this.G.length-1;0<=h;h--){var g=this.G[h];0>g[0]||(g[0]-=a,0>=g[0]
this.v.stop(ja(),Gb(this));Qa(this,!1);c=l.stack||l.message;this.l.error=!0;this.M(c);return}c=setTimeout;d=this.Xa;this.R=ja();e=this.Ka;this.pa&&(e=Math.round(e*this.pa/this.xa));e=e-(this.R-this.sa);if(f=this.R-this.H)this.O=Math.round(this.L/(10*f))/100,864E5<=f&&(this.T=0,Db(this));if(0>e||this.O<this.W)-1E3>e&&(this.H-=e),e=0;this.Da+=this.pa;this.R+=e;c(d,e)}else Bb(this),this.v&&this.v.stop(ja(),Gb(this))};k.Gb=function(){return 0};
function Cb(a){a.l.Oa&&(a.l.fb=!0);Kb(a);Eb(a,a.L);a.L=0;if(a.l.oa){a.l.oa=!1;a.K&&a.K.stop();var b=a.A.run;b&&(b.textContent="Run")}a.l.complete=void 0}function Bb(a){if(a.v){for(var b=a.v,c=0;c<b.m.length;c++)Lb(b.m[c],void 0);a.v.Aa(void 0)}}function Nb(a){this.Wa=+a.model||8080;wb.call(this,a,1E6);this.Ha=Ob;zb(this);this.l.complete=this.l.Nc=!1;this.Ja=0;this.ra=[];this.Ia=0;Pb(this)}x(Nb,wb);function Qb(a,b){a.ra.push(b)}k=Nb.prototype;
k.reset=function(){this.l.oa&&Cb(this);Pb(this);zb(this);this.l.error=!1;this.parent.reset.call(this)};function Pb(a){a.b=0;a.c=0;a.D=0;a.f=0;a.F=0;a.g=0;a.i=0;a.u=0;F(a,a.Ia);Rb(a,0);a.B=0}function Sb(a,b){a.Ia=b;F(a,b)}k.Bb=function(){var a=this.b+this.c+this.D+this.f+this.F+this.g+this.i|0;return a=a+this.u+this.o+Tb(this)|0};
k.save=function(){var a=new G(this);H(a,0,[this.b,this.c,this.D,this.f,this.F,this.g,this.i,this.u,this.o,Tb(this)]);H(a,1,[this.B,this.T,this.I]);for(var b=this.j,c=0,d=[],e=0;e<b.m;e++){var f=b.b[e];if(f.na||f.Ab){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,n=[];g<f.length;){for(var y=f[g],t=g+1;t<f.length&&f[t]===y;)t++;n[l++]=t-g;n[l++]=y;g=t}if(n.length<f.length){f=n;break a}}d[h]=f}}H(a,2,d);return a.data()};
k.save=function(){var a=new G(this);H(a,0,[this.b,this.c,this.D,this.f,this.F,this.g,this.i,this.u,this.o,Tb(this)]);H(a,1,[this.B,this.T,this.I]);for(var b=this.j,c=0,d=[],e=0;e<b.i;e++){var f=b.b[e];if(f.na||f.Ab){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,n=[];g<f.length;){for(var y=f[g],t=g+1;t<f.length&&f[t]===y;)t++;n[l++]=t-g;n[l++]=y;g=t}if(n.length<f.length){f=n;break a}}d[h]=f}}H(a,2,d);return a.data()};
k.restore=function(a){var b=a[0];this.b=b[0];this.c=b[1];this.D=b[2];this.f=b[3];this.F=b[4];this.g=b[5];this.i=b[6];this.u=b[7]&65535;F(this,b[8]);Rb(this,b[9]);b=a[1];this.B=b[0];this.T=b[1];Db(this,b[3]);a:{b=this.j;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.w){for(var f=0,h=Array(b.w),g=0;g<e.length-1;)for(var l=e[g++],n=e[g++];l--;)h[f++]=n;e=h}f=b.b[d];if(!f||!f.restore(e)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
k.V=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.A[b]=c;this.Ja++;d=!0;break;default:d=this.parent.V.call(this,a,b,c)}return d};function Ub(a){return a.c<<8|a.D}function Vb(a,b){a.c=b>>8&255;a.D=b&255}function Wb(a){return a.f<<8|a.F}function Xb(a,b){a.f=b>>8&255;a.F=b&255}function J(a){return a.g<<8|a.i}
function K(a,b){a.g=b>>8&255;a.i=b&255}function F(a,b){a.o=b&65535}function L(a){return a.m&256?1:0}function M(a,b){a.m=a.m&255|b}function Yb(a){return Ta[a.s&255]?4:0}function Tb(a){return a.C&-214|(a.s&128?128:0)|(a.m&255?0:64)|((a.s^a.w)&16?16:0)|Yb(a)|L(a)}function Rb(a,b){a.m=a.s=a.w=0;b&1&&(a.m|=256);b&4||(a.s|=1);b&16&&(a.w|=16);b&64||(a.m|=255);b&128&&(a.s^=192);a.C=a.C&-726|b&512|2}function N(a,b){a.w=a.b^b;return a.s=(a.m=a.b+b)&255}
@ -70,9 +70,9 @@ this.g);this.a-=4},function(){this.b=dc(this,this.i);this.a-=4},function(){this.
$b(this,this.b);this.a-=4},function(){this.b=ec(this,this.c);this.a-=4},function(){this.b=ec(this,this.D);this.a-=4},function(){this.b=ec(this,this.f);this.a-=4},function(){this.b=ec(this,this.F);this.a-=4},function(){this.b=ec(this,this.g);this.a-=4},function(){this.b=ec(this,this.i);this.a-=4},function(){this.b=ec(this,this.J(J(this)));this.a-=7},function(){this.b=ec(this,this.b);this.a-=4},function(){this.b=cc(this,this.c);this.a-=4},function(){this.b=cc(this,this.D);this.a-=4},function(){this.b=
cc(this,this.f);this.a-=4},function(){this.b=cc(this,this.F);this.a-=4},function(){this.b=cc(this,this.g);this.a-=4},function(){this.b=cc(this,this.i);this.a-=4},function(){this.b=cc(this,this.J(J(this)));this.a-=7},function(){this.b=cc(this,this.b);this.a-=4},function(){O(this,this.c);this.a-=4},function(){O(this,this.D);this.a-=4},function(){O(this,this.f);this.a-=4},function(){O(this,this.F);this.a-=4},function(){O(this,this.g);this.a-=4},function(){O(this,this.i);this.a-=4},function(){O(this,
this.J(J(this)));this.a-=7},function(){O(this,this.b);this.a-=4},function(){this.m&255&&(F(this,R(this)),this.a-=6);this.a-=5},function(){Vb(this,R(this));this.a-=10},function(){var a=Q(this);this.m&255&&F(this,a);this.a-=10},ic,function(){var a=Q(this);this.m&255&&(T(this,this.o),F(this,a),this.a-=6);this.a-=11},function(){T(this,Ub(this));this.a-=11},function(){this.b=N(this,P(this));this.a-=7},function(){T(this,this.o);F(this,0);this.a-=11},function(){this.m&255||(F(this,R(this)),this.a-=6);this.a-=
5},jc,function(){var a=Q(this);this.m&255||F(this,a);this.a-=10},ic,function(){var a=Q(this);this.m&255||(T(this,this.o),F(this,a),this.a-=6);this.a-=11},kc,function(){this.b=Zb(this,P(this));this.a-=7},function(){T(this,this.o);F(this,8);this.a-=11},function(){L(this)||(F(this,R(this)),this.a-=6);this.a-=5},function(){Xb(this,R(this));this.a-=10},function(){var a=Q(this);L(this)||F(this,a);this.a-=10},function(){for(var a=P(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var h=b.o[a],g=b.C[a]||
5},jc,function(){var a=Q(this);this.m&255||F(this,a);this.a-=10},ic,function(){var a=Q(this);this.m&255||(T(this,this.o),F(this,a),this.a-=6);this.a-=11},kc,function(){this.b=Zb(this,P(this));this.a-=7},function(){T(this,this.o);F(this,8);this.a-=11},function(){L(this)||(F(this,R(this)),this.a-=6);this.a-=5},function(){Xb(this,R(this));this.a-=10},function(){var a=Q(this);L(this)||F(this,a);this.a-=10},function(){for(var a=P(this),b=this.j,c=this.b,d=this.o+-2&65535,e=1,f=0;0<e;){var h=b.v[a],g=b.C[a]||
1,l=1==g?255:2==g?65535:-1,l=(c>>>=f)&l;if(void 0!==h&&h[0])h[0](a,l,d);f+=g<<3;a+=g;e-=g}this.a-=10},function(){var a=Q(this);L(this)||(T(this,this.o),F(this,a),this.a-=6);this.a-=11},function(){T(this,Wb(this));this.a-=11},function(){this.b=O(this,P(this));this.a-=7},function(){T(this,this.o);F(this,16);this.a-=11},function(){L(this)&&(F(this,R(this)),this.a-=6);this.a-=5},jc,function(){var a=Q(this);L(this)&&F(this,a);this.a-=10},function(){for(var a=P(this),b=this.j,c=this.o+-2&65535,d=1,e=0,
f=0;0<d;){var h=b.v[a],g=b.B[a]||1,l=1==g?255:2==g?65535:-1,n=l;void 0!==h&&h[0]&&(n=h[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=Q(this);L(this)&&(T(this,this.o),F(this,a),this.a-=6);this.a-=11},kc,function(){this.b=dc(this,P(this));this.a-=7},function(){T(this,this.o);F(this,24);this.a-=11},function(){Yb(this)||(F(this,R(this)),this.a-=6);this.a-=5},function(){K(this,R(this));this.a-=10},function(){var a=Q(this);Yb(this)||F(this,a);this.a-=10},
f=0;0<d;){var h=b.m[a],g=b.B[a]||1,l=1==g?255:2==g?65535:-1,n=l;void 0!==h&&h[0]&&(n=h[0](a,c),void 0===n?n=l:n&=l);e|=n<<f;f+=g<<3;a+=g;d-=g}this.b=e&255;this.a-=10},function(){var a=Q(this);L(this)&&(T(this,this.o),F(this,a),this.a-=6);this.a-=11},kc,function(){this.b=dc(this,P(this));this.a-=7},function(){T(this,this.o);F(this,24);this.a-=11},function(){Yb(this)||(F(this,R(this)),this.a-=6);this.a-=5},function(){K(this,R(this));this.a-=10},function(){var a=Q(this);Yb(this)||F(this,a);this.a-=10},
function(){var a=R(this);T(this,J(this));K(this,a);this.a-=18},function(){var a=Q(this);Yb(this)||(T(this,this.o),F(this,a),this.a-=6);this.a-=11},function(){T(this,J(this));this.a-=11},function(){this.b=$b(this,P(this));this.a-=7},function(){T(this,this.o);F(this,32);this.a-=11},function(){Yb(this)&&(F(this,R(this)),this.a-=6);this.a-=5},function(){F(this,J(this));this.a-=5},function(){var a=Q(this);Yb(this)&&F(this,a);this.a-=10},function(){var a=J(this);K(this,Wb(this));Xb(this,a);this.a-=5},function(){var a=
Q(this);Yb(this)&&(T(this,this.o),F(this,a),this.a-=6);this.a-=11},kc,function(){this.b=ec(this,P(this));this.a-=7},function(){T(this,this.o);F(this,40);this.a-=11},function(){this.s&128||(F(this,R(this)),this.a-=6);this.a-=5},function(){var a=R(this);Rb(this,a&255|this.C&-256);this.b=a>>8;this.a-=10},function(){var a=Q(this);this.s&128||F(this,a);this.a-=10},function(){this.C&=-513;this.a-=4},function(){var a=Q(this);this.s&128||(T(this,this.o),F(this,a),this.a-=6);this.a-=11},function(){T(this,
Tb(this)&255|this.b<<8);this.a-=11},function(){this.b=cc(this,P(this));this.a-=7},function(){T(this,this.o);F(this,48);this.a-=11},function(){this.s&128&&(F(this,R(this)),this.a-=6);this.a-=5},function(){this.u=J(this)&65535;this.a-=5},function(){var a=Q(this);this.s&128&&F(this,a);this.a-=10},function(){this.C|=512;this.a-=4;fc(this)},function(){var a=Q(this);this.s&128&&(T(this,this.o),F(this,a),this.a-=6);this.a-=11},kc,function(){O(this,P(this));this.a-=7},function(){T(this,this.o);F(this,56);
@ -120,7 +120,7 @@ Fc.prototype.Ea=function(){var a=!1;if(this.b){if(this.b.Ea){a="100%";if(screen&
function Ic(a,b){!b&&a.b&&(a.Ia?a.u.style.width=a.u.style.height="":a.b.style.width=a.b.style.height="")}function Kc(a,b){a.Ka=b;a.O=!1;if(void 0===a.i||a.i.length!=a.Ka)a.i=Array(a.Ka)}function Mc(a,b,c,d,e){d=a.c?(b.height-c-1)*b.width+d:c+d*b.width;e&&1==a.T&&(208<=c&&236>c?e=a.S+0:28<=c&&72>c&&(e=a.S+1));a=a.L[e];d*=a.length;b.data[d]=a[0];b.data[d+1]=a[1];b.data[d+2]=a[2];b.data[d+3]=a[3]}
function Lb(a,b){var c=!0;if(!b){a.la&&(120==a.la?a.Wa&1?(gc(a.a,2),c=!1):gc(a.a,1):gc(a.a,4));if(c&&a.O&&a.B){for(var d=a.j,e=a.B,f=!0,h=a.ea>>>d.j;0<e&&h<d.b.length;)d.b[h].na&&(d.b[h].na=f=!1,d.b[h].Ab=!0),e-=d.c,h++;f&&(c=!1)}Jb(a.a,a.xb,1E3/Math.max(a.Xa,a.la));a.Wa++}if(c)if(1<a.U)switch(a.T){case 2:for(var c=a.ea,d=-1,e=0,f=60==a.Db?2:5,g=h=0,l=-1;e<a.W;){var n=0,y=c,t=d,C=a.K;for(96!=t&&(C>>=1);;){var v=bb(a.j,y++);if(127==(v&127)){var z=bb(a.j,y++),d=z&96,c=(z&15)<<8|bb(a.j,y),c=c+(z&16?
8192:16384);break}if(n<C)a.Z[n++]=v;else break}if(f)f--;else{for(;n<a.Z.length;)a.Z[n++]=0;if(0<=t)for(y=a.O&&a.i[h]==C,a.i[h++]=C,C=0;C<n;C++){v=a.Z[C];if(!y||v!==a.i[h]){a.i[l=h]=v;var z=a,w=a.ra,I=v&127;if(v=z.I[t][v&128?1:0]){var W=(I&15)*v.U,I=(I>>4)*v.P,S=void 0,la=void 0,Da=void 0,gb=void 0,Bc=v.U,Mb=v.P;w?(S=C*z.U,la=e*z.P,Da=z.U,gb=z.P):(S=C*z.Ca,la=e*z.Da,Da=z.Ca,gb=z.Da);v.U>z.U&&(S*=2,Da*=2);v.P>z.P&&(0==t&&(I+=z.P),Mb=z.P);w?w.drawImage(v.canvas,W,I,Bc,Mb,S,la,Da,gb):(S+=0,la+=0,z.f.drawImage(v.canvas,
W,I,Bc,Mb,S,la,Da,gb))}g++}h++}e++}}a.O=!0;!b&&a.sa&&1==g&&(a.i[l]=-1,g=0);a.sa=!1;(g||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.P,0,0,a.Jc,a.Ib)}else{f=a.ea;h=f+a.B;n=l=g=0;c=a.o;t=0;d=a.G;y=e=0;C=a.ja;z=(1<<C)-1;a.Lc&&(C=-C,y=16+C);for(;f<h;){w=a.j;v=f;W=v&w.f;I=(v&w.g)>>>w.j;w=W!=w.f?w.b[I].Eb(W,v):w.b[I++].cb(W,v)|w.b[I&w.s].cb(0,v+1)<<8;if(a.O&&w===a.i[g])l+=a.La;else{a.i[g]=w;(v=y)&&(w=w>>8|(w&255)<<8);l<c&&(c=l);for(W=a.La;W--;)I=w>>v&z,Mc(a,a.Ja,l++,n,I),v+=C;l>t&&(t=l);n<d&&(d=n);n>=e&&
W,I,Bc,Mb,S,la,Da,gb))}g++}h++}e++}}a.O=!0;!b&&a.sa&&1==g&&(a.i[l]=-1,g=0);a.sa=!1;(g||b)&&a.ra&&a.f.drawImage(a.s,0,a.pa,a.o,a.G-a.P,0,0,a.Jc,a.Ib)}else{f=a.ea;h=f+a.B;n=l=g=0;c=a.o;t=0;d=a.G;y=e=0;C=a.ja;z=(1<<C)-1;a.Lc&&(C=-C,y=16+C);for(;f<h;){w=a.j;v=f;W=v&w.f;I=(v&w.g)>>>w.j;w=W!=w.f?w.b[I].Eb(W,v):w.b[I++].cb(W,v)|w.b[I&w.o].cb(0,v+1)<<8;if(a.O&&w===a.i[g])l+=a.La;else{a.i[g]=w;(v=y)&&(w=w>>8|(w&255)<<8);l<c&&(c=l);for(W=a.La;W--;)I=w>>v&z,Mc(a,a.Ja,l++,n,I),v+=C;l>t&&(t=l);n<d&&(d=n);n>=e&&
(e=n+1)}f+=2;g++;if(l>=a.o&&(l=0,n++,n>a.G))break}a.O=!0;c<a.o&&(f=t-c,e-=d,a.c&&(h=c,g=f,c=d,f=e,d=a.o-(h+g),e=g),a.ra.putImageData(a.Ja,0,0,c,d,f,e),a.f.drawImage(a.s,0,0,a.s.width,a.s.height,0,0,a.C,a.w))}}
ya(function(){for(var a=B(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=A(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a,
b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Fa.aspect);f&&.3<=f&&3.33>=f&&(xa("onresize",function(a,b,c){return function(){b.style.height=(a.clientWidth/c|0)+"px"}}(c,e,f)),window.onresize());c.appendChild(e);f=document.createElement("textarea");sa("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Fc(d,e,h,f,c);Pa(d,c)}});

View file

@ -45,19 +45,19 @@ f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ca)){b=c;if(a.context&&a.ia&
c}}}m.pd=function(){};function Pb(a,b,c,d){a.A.Bf[a.A.ej++]={Dl:b,Td:c,type:d};return va(Mb,b,c,0,d)}function Nb(a,b,c,d){var e,f=null.style.color,g=a.Oa=10;a.C=g;a.U=b;a.W=a.va=18;e||(e=a.ua||a.va+"px Monaco, Lucida Console, Courier New");a.fa=a.ua=e;c&&(a.Da=c);d&&(a.N=d,a.Fa=f||"white")}
function Ob(a,b,c,d,e){a.N.font=a.fa;a.N.fillStyle=a.Fa;a.N.fillText(b,a.C,a.U);a.C+=a.pa;null!=c&&(16!=a.Tb?b=c.toString():(b=8>a.Ka?"0x":"",b+=t(c,a.Ka)),a.N.fillText(b,a.C,a.U),a.C+=a.pa);d&&(a.C+=a.pa*d);e&&(a.C=a.Oa,a.U+=(a.W+2)*(e||1))}function Kb(){for(var a=!1,b=rb(document,"pcx86","panel"),c=0;c<b.length;c++){var d=b[c],e=ob(d),f=mb(e.id);f||(a=!0,f=new Fb(e));qb(f,d);a&&wb(f)}}Ua(Kb);
function Qb(a,b,c){Za.call(this,"Bus",a,Qb);this.F=b;this.ha=c;this.N=a.busWidth||20;this.W=Math.pow(2,this.N);this.Cg=this.Gb=this.W-1|0;this.La=32==this.N||20>=this.N?12:24>=this.N?14:15;this.Sb=1<<this.La;this.fa=this.Sb>>2;this.A=this.Sb-1;this.U=this.W/this.Sb|0;this.ga=this.U-1;this.B=[];this.C=[];this.L=this.V=!1;this.aa=[];this.ea=[];a=new C;Rb(a,this.ha);this.sa=Array(this.U);for(b=0;b<this.U;b++)this.sa[b]=a;a=this.F;b=this.sa;c=this.La;a.kd=a.sa=b;a.La=c;a.Sb=1<<a.La;a.Fa=a.Sb-1;a.Fd=b.length;
a.hd=a.Fd-1;a=this.F;a.Gb=a.Db=this.Gb;wb(this)}hb(Qb);var Mb,Sb={Gk:20,count:8,Jo:1,type:3},Tb=0,Ub;for(Ub in Sb){var Vb=Sb[Ub];Sb[Ub]={uh:(1<<Vb)-1<<Tb,shift:Tb};Tb+=Vb}Mb=Sb;m=Qb.prototype;m.reset=function(){Wb(this,!0)};m.gc=function(a,b){b||this.reset();return!0};
function Yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.La;0<g&&h<a.sa.length;){var k=a.sa[h],l=h*a.Sb,n=a.Sb-(f-l);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.Ea)return k.Oe+=k.Ea-f,k.Ea=f,!0;if(f>=k.Ea+k.Oe){n=k.size-(f-l);n>g&&(n=g);k.Oe=f-k.Ea+n;f=l+a.Sb;g-=n;h++;continue}}return Zb(a,1,f,g)}f=new C(f,n,a.Sb,d,e);Rb(f,a.ha,k);a.sa[h++]=f;f=l+a.Sb;g-=n}return 0>=g?($b(a.F),a.F.la.Ib||a.status(Math.floor(c/1024)+"Kb "+ac[d]+" at "+t(b)),!0):Zb(a,2,b,c)}
function Wb(a,b){if(32==a.N)b?a.X&&(bc(a,1048576,1048576,a.X),a.X=null):a.X||(a.X=cc(a,1048576,1048576),bc(a,1048576,1048576,cc(a,0,1048576)));else if(20<a.N){var c=a.Gb&-1048577|(b?1048576:0);if(c!=a.Gb&&(a.Gb=c,a.F)){var d=a.F;d.Gb=d.Db=c}}}m.Ug=function(a,b,c,d){if(!(a&this.A||!b||b&this.A)){for(var e=a>>>this.La;0<b;){var f=this.sa[e];if(!f.controller)return Zb(this,3,a,b,d);dc(f,c,!0);b-=this.Sb;e++}return!0}return Zb(this,4,a,b)};
function ec(a,b,c){if(!(b&a.A||!c||c&a.A)){for(var d=b>>>a.La;0<c;){var e=a.sa[d];b=new C(b);Rb(b,a.ha,e);a.sa[d++]=b;b=d*a.Sb;c-=a.Sb}$b(a.F);return!0}return Zb(a,5,b,c)}function cc(a,b,c){var d=[];for(b>>>=a.La;0<c&&b<a.sa.length;)d.push(a.sa[b++]),c-=a.Sb;return d}
a.hd=a.Fd-1;a=this.F;a.Gb=a.Db=this.Gb;wb(this)}hb(Qb);Qb.prototype.reset=function(){Sb(this,!0)};Qb.prototype.gc=function(a,b){b||this.reset();return!0};
function Tb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.La;0<g&&h<a.sa.length;){var k=a.sa[h],l=h*a.Sb,n=a.Sb-(f-l);n>g&&(n=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.Ea)return k.Oe+=k.Ea-f,k.Ea=f,!0;if(f>=k.Ea+k.Oe){n=k.size-(f-l);n>g&&(n=g);k.Oe=f-k.Ea+n;f=l+a.Sb;g-=n;h++;continue}}return Ub(a,1,f,g)}f=new C(f,n,a.Sb,d,e);Rb(f,a.ha,k);a.sa[h++]=f;f=l+a.Sb;g-=n}return 0>=g?(Vb(a.F),a.F.la.Ib||a.status(Math.floor(c/1024)+"Kb "+Wb[d]+" at "+t(b)),!0):Ub(a,2,b,c)}
var Mb,Yb={Gk:20,count:8,Jo:1,type:3},Zb=0,$b;for($b in Yb){var ac=Yb[$b];Yb[$b]={uh:(1<<ac)-1<<Zb,shift:Zb};Zb+=ac}Mb=Yb;function Sb(a,b){if(32==a.N)b?a.X&&(bc(a,1048576,1048576,a.X),a.X=null):a.X||(a.X=cc(a,1048576,1048576),bc(a,1048576,1048576,cc(a,0,1048576)));else if(20<a.N){var c=a.Gb&-1048577|(b?1048576:0);if(c!=a.Gb&&(a.Gb=c,a.F)){var d=a.F;d.Gb=d.Db=c}}}m=Qb.prototype;
m.Ug=function(a,b,c,d){if(!(a&this.A||!b||b&this.A)){for(var e=a>>>this.La;0<b;){var f=this.sa[e];if(!f.controller)return Ub(this,3,a,b,d);dc(f,c,!0);b-=this.Sb;e++}return!0}return Ub(this,4,a,b)};function ec(a,b,c){if(!(b&a.A||!c||c&a.A)){for(var d=b>>>a.La;0<c;){var e=a.sa[d];b=new C(b);Rb(b,a.ha,e);a.sa[d++]=b;b=d*a.Sb;c-=a.Sb}Vb(a.F);return!0}return Ub(a,5,b,c)}function cc(a,b,c){var d=[];for(b>>>=a.La;0<c&&b<a.sa.length;)d.push(a.sa[b++]),c-=a.Sb;return d}
function bc(a,b,c,d,e){for(var f=0,g=b>>>a.La;0<c&&g<a.sa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new C(b),l=k,n=e,r=a.ha;l.id=h.id|1;l.Oe=h.Oe;l.size=h.size;n&&(l.type=n,l.N=n==fc);zb?(l.X=h.X,l.qa=h.qa,l.Ya=h.Ya,l.de=h.de,l.da=h.da,dc(l,gc?hc:ic)):(l.da=h.da,dc(l,jc));Rb(l,r,h);h=k}a.sa[g++]=h;c-=a.Sb}}m.Qa=function(a){return this.sa[(a&this.Gb)>>>this.La].pc(a&this.A,a)};
m.na=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;return b!=this.A?this.sa[c].sf(b,a):this.sa[c++].pc(b,a)|this.sa[c&this.ga].pc(0,a+1)<<8};function kc(a,b){var c=b&a.A,d=(b&a.Gb)>>>a.La;return c!=a.A?a.sa[d].eg(c,b):a.sa[d++].re(c,b)|a.sa[d&a.ga].re(0,b+1)<<8}m.oa=function(a){var b=a&this.A,c=(a&this.Gb)>>>this.La;if(b<this.A-2)return this.sa[c].Md(b,a);for(var d=0,e=4,f=0,g=4-(b&3);e--;)d|=this.sa[c].pc(b++,a++)<<f,--g||(c=c+1&this.ga,b=0),f+=8;return d};
m.qc=function(a,b){this.sa[(a&this.Gb)>>>this.La].sc(a&this.A,b&255,a)};m.jb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;c!=this.A?this.sa[d].zf(c,b&65535,a):(this.sa[d++].sc(c,b&255,a),this.sa[d&this.ga].sc(0,b>>8&255,a+1))};function lc(a,b,c){var d=b&a.A,e=(b&a.Gb)>>>a.La;d!=a.A?a.sa[e].yi(d,c&65535,b):(a.sa[e++].xf(d,c&255,b),a.sa[e&a.ga].xf(0,c>>8&255,b+1))}
m.nb=function(a,b){var c=a&this.A,d=(a&this.Gb)>>>this.La;if(c<this.A-2)this.sa[d].yf(c,b);else for(var e=4,f=4-(c&3);e--;)this.sa[d].sc(c++,b&255,a++),--f||(d=d+1&this.ga,c=0),b>>>=8};m.wj=function(){return null};function mc(a,b){if(void 0===b)return a.L=!a.L,a.L;void 0===a.B[b]&&(a.B[b]=[null,!1]);a.B[b][1]=!a.B[b][1];return a.B[b][1]}
function nc(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.B[k]?x("Input port "+v(k)+" already registered"):f.B[k]=[h,!1]}}function oc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.B[b],h=a.aa[b]||1,k=1==h?255:2==h?65535:-1,l=k;void 0!==g?(g[0]&&(l=g[0](b,d),void 0===l?l=k:l&=k),a.ha&&a.L!=g[1]&&pc(a.ha,b,l)):a.ha&&(sb(a.ha,a,b,null,d),a.L&&pc(a.ha,b,l));e|=l<<f;f+=h<<3;b+=h;c-=h}return e}
function qc(a,b){if(void 0===b)return a.V=!a.V,a.V;void 0===a.C[b]&&(a.C[b]=[null,!1]);a.C[b][1]=!a.C[b][1];return a.C[b][1]}function rc(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.C[k]?x("Output port "+v(k)+" already registered"):f.C[k]=[h,!1]}}
function sc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.ea[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ha&&a.V!=g[1]&&xc(a.ha,b,k)}else a.ha&&(sb(a.ha,a,b,k,e),a.V&&xc(a.ha,b,k));f+=h<<3;b+=h;c-=h}}function Zb(a,b,c,d,e){b="Memory block error ("+b+": "+t(c)+","+t(d)+")";e?a.ha?a.ha.message(b):a.log(b):x(b);return!1}var yc;if(zb){var zc=new ArrayBuffer(2);(new DataView(zc)).setUint16(0,256,!0);yc=256===(new Uint16Array(zc))[0]}else yc=!1;var gc=yc;
function sc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.ea[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ha&&a.V!=g[1]&&xc(a.ha,b,k)}else a.ha&&(sb(a.ha,a,b,k,e),a.V&&xc(a.ha,b,k));f+=h<<3;b+=h;c-=h}}function Ub(a,b,c,d,e){b="Memory block error ("+b+": "+t(c)+","+t(d)+")";e?a.ha?a.ha.message(b):a.log(b):x(b);return!1}var yc;if(zb){var zc=new ArrayBuffer(2);(new DataView(zc)).setUint16(0,256,!0);yc=256===(new Uint16Array(zc))[0]}else yc=!1;var gc=yc;
function C(a,b,c,d,e,f){this.id=Ac+=2;this.da=null;this.C=0;this.Ea=a;this.Oe=b;this.size=c||0;this.type=d||Bc;this.N=d==fc;this.controller=null;this.F=f;Rb(this);this.Wa=this.sj=!1;if(c)if(e)this.controller=e,a=e.vj(a),this.da=a[0],this.C=a[1],dc(this,e.mh());else if(zb)this.X=new ArrayBuffer(c),this.qa=new DataView(this.X,0,c),this.Ya=new Uint8Array(this.X,0,c),this.de=new Uint16Array(this.X,0,c>>1),this.da=new Int32Array(this.X,0,c>>2),dc(this,gc?hc:ic);else{this.da=Array(c>>2);for(e=0;e<this.da.length;e++)this.da[e]=
0;dc(this,jc)}else dc(this)}var Bc=0,fc=2,Cc=["black","blue","green","cyan"],ac="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Ac=0;function Dc(a){zb&&!gc&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
0;dc(this,jc)}else dc(this)}var Bc=0,fc=2,Cc=["black","blue","green","cyan"],Wb="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),Ac=0;function Dc(a){zb&&!gc&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
C.prototype={constructor:C,parent:null,ph:function(a){this.Ea=a},save:function(){var a,b;if(this.controller)a=null;else if(zb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.qa.getInt32(b<<2,!0);else a=this.da;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(zb)for(b=0;b<a.length;b++)this.qa.setInt32(b<<2,a[b],!0);else this.da=a;return this.Wa=!0}return!1},Rd:function(a,b,c){b?0===this.We++&&(c&&(this.F=c),Gc(this,Fc,!1)):0===this.Ve++&&
(c&&(this.F=c),Ec(this,Fc,!1))},ia:function(){this.ha&&B(this.ha,129)&&this.ha.message("attempt to read invalid block %"+t(this.Ea),!0);return 255},L:function(a,b){this.ha&&B(this.ha,129)&&this.ha.message("attempt to write "+v(b)+" to invalid block %"+t(this.Ea),!0)},ka:function(a,b){return this.pc(a++,b++)|this.pc(a,b)<<8},ea:function(a,b){return this.pc(a++,b++)|this.pc(a++,b++)<<8|this.pc(a++,b++)<<16|this.pc(a,b)<<24},W:function(a,b,c){this.sc(a++,b&255,c++);this.sc(a,b>>8,c)},U:function(a,b,
c){this.sc(a++,b&255,c++);this.sc(a++,b>>8&255,c++);this.sc(a++,b>>16&255,c++);this.sc(a,b>>>24,c)},Fa:function(a){return this.da[a>>2]>>>((a&3)<<3)&255},sb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b]>>a;return 24>a?c&65535:c&255|(this.da[b+1]&255)<<8},$a:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b];a&&(c=c>>>a|this.da[b+1]<<32-a);return c},tc:function(a,b){var c=a>>2,d=(a&3)<<3;this.da[c]=this.da[c]&~(255<<d)|b<<d;this.Wa=!0},Cd:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.da[c]=this.da[c]&
@ -68,9 +68,9 @@ this.V;this.Bd.yf(a,b,c)},Ka:function(a,b){return Kc(this.F,b,!1).pc(a,b)},xd:fu
!0)},pa:function(a){return a&1?this.Ya[a]|this.Ya[a+1]<<8:this.de[a>>1]},Db:function(a){this.yb.da[this.A]|=32;this.zb.da[this.B]|=32;this.sf=this.pa;return a&1?this.Ya[a]|this.Ya[a+1]<<8:this.de[a>>1]},Oa:function(a){return this.qa.getInt32(a,!0)},fa:function(a){return a&3?this.Ya[a]|this.Ya[a+1]<<8|this.Ya[a+2]<<16|this.Ya[a+3]<<24:this.da[a>>2]},cb:function(a){this.yb.da[this.A]|=32;this.zb.da[this.B]|=32;this.Md=this.fa;return a&3?this.Ya[a]|this.Ya[a+1]<<8|this.Ya[a+2]<<16|this.Ya[a+3]<<24:this.da[a>>
2]},Ub:function(a,b){this.Ya[a]=b;this.Wa=!0},ra:function(a,b){this.Ya[a]=b;this.Wa=!0},uc:function(a,b){this.Ya[a]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.sc=this.ra;this.Bd.Wa=!0},qd:function(a,b){this.qa.setUint16(a,b,!0);this.Wa=!0},ya:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.de[a>>1]=b;this.Wa=!0},Fd:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.de[a>>1]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.zf=this.ya;this.Bd.Wa=!0},ce:function(a,b){this.qa.setInt32(a,
b,!0);this.Wa=!0},va:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a+2]=b>>16,this.Ya[a+3]=b>>24):this.da[a>>2]=b;this.Wa=!0},Xc:function(a,b){a&3?(this.Ya[a]=b,this.Ya[a+1]=b>>8,this.Ya[a+2]=b>>16,this.Ya[a+3]=b>>24):this.da[a>>2]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.yf=this.va;this.Bd.Wa=!0}};function Rb(a,b,c){a.ha=b;a.Ve=a.We=0;c&&(c.F&&(a.F=c.F),(a.Ve=c.Ve)&&Ec(a,Fc,!1),(a.We=c.We)&&Gc(a,Fc,!1))}
function Lc(a,b){b?0===--a.We&&(a.sc=a.N?a.L:a.xf,a.zf=a.N?a.W:a.yi,a.yf=a.N?a.U:a.ua):0===--a.Ve&&(a.pc=a.re,a.sf=a.eg,a.Md=a.ri)}function Gc(a,b,c){c&&a.We||(a.sc=!a.N&&b[3]||a.L,a.zf=!a.N&&b[4]||a.W,a.yf=!a.N&&b[5]||a.U);if(c||void 0===c)a.xf=b[3]||a.L,a.yi=b[4]||a.W,a.ua=b[5]||a.U}function Ec(a,b,c){c&&a.Ve||(a.pc=b[0]||a.ia,a.sf=b[1]||a.ka,a.Md=b[2]||a.ea);if(c||void 0===c)a.re=b[0]||a.ia,a.eg=b[1]||a.ka,a.ri=b[2]||a.ea}
function dc(a,b,c){b||(b=5==a.type?Mc:6==a.type?Nc:Oc);Ec(a,b,c);Gc(a,b,c)}var Oc=[],jc=[C.prototype.Fa,C.prototype.sb,C.prototype.$a,C.prototype.tc,C.prototype.Cd,C.prototype.Wc],Fc=[C.prototype.Da,C.prototype.rb,C.prototype.Pa,C.prototype.kc,C.prototype.sd,C.prototype.Vc],Nc=[C.prototype.Ja,C.prototype.Jb,C.prototype.fb,C.prototype.Cc,C.prototype.Gd,C.prototype.hd],Mc=[C.prototype.Ka,C.prototype.xd,C.prototype.gb,C.prototype.Uc,C.prototype.Hd,C.prototype.jd];
if(zb)var ic=[C.prototype.Ca,C.prototype.Tb,C.prototype.Oa,C.prototype.Ub,C.prototype.qd,C.prototype.ce],hc=[C.prototype.aa,C.prototype.pa,C.prototype.fa,C.prototype.ra,C.prototype.ya,C.prototype.va],Pc=[C.prototype.Ga,C.prototype.Db,C.prototype.cb,C.prototype.uc,C.prototype.Fd,C.prototype.Xc];
function Lc(a,b){b?0===--a.We&&(a.sc=a.N?a.L:a.xf,a.zf=a.N?a.W:a.yi,a.yf=a.N?a.U:a.ua):0===--a.Ve&&(a.pc=a.re,a.sf=a.eg,a.Md=a.ri)}function Gc(a,b,c){c&&a.We||(a.sc=!a.N&&b[1]||a.L,a.zf=!a.N&&b[3]||a.W,a.yf=!a.N&&b[5]||a.U);if(c||void 0===c)a.xf=b[1]||a.L,a.yi=b[3]||a.W,a.ua=b[5]||a.U}function Ec(a,b,c){c&&a.Ve||(a.pc=b[0]||a.ia,a.sf=b[2]||a.ka,a.Md=b[4]||a.ea);if(c||void 0===c)a.re=b[0]||a.ia,a.eg=b[2]||a.ka,a.ri=b[4]||a.ea}
function dc(a,b,c){b||(b=5==a.type?Mc:6==a.type?Nc:Oc);Ec(a,b,c);Gc(a,b,c)}var Oc=[],jc=[C.prototype.Fa,C.prototype.tc,C.prototype.sb,C.prototype.Cd,C.prototype.$a,C.prototype.Wc],Fc=[C.prototype.Da,C.prototype.kc,C.prototype.rb,C.prototype.sd,C.prototype.Pa,C.prototype.Vc],Nc=[C.prototype.Ja,C.prototype.Cc,C.prototype.Jb,C.prototype.Gd,C.prototype.fb,C.prototype.hd],Mc=[C.prototype.Ka,C.prototype.Uc,C.prototype.xd,C.prototype.Hd,C.prototype.gb,C.prototype.jd];
if(zb)var ic=[C.prototype.Ca,C.prototype.Ub,C.prototype.Tb,C.prototype.qd,C.prototype.Oa,C.prototype.ce],hc=[C.prototype.aa,C.prototype.ra,C.prototype.pa,C.prototype.ya,C.prototype.fa,C.prototype.va],Pc=[C.prototype.Ga,C.prototype.uc,C.prototype.Db,C.prototype.Fd,C.prototype.cb,C.prototype.Xc];
function Qc(a,b){Za.call(this,"CPU",a,Qc,1);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.Id=c;this.Y.Wd=d;this.Y.zg=Math.round(this.Y.Id/1E4)/100;this.Y.Fe=this.Y.zg*this.Y.Wd;this.la.Ib=!1;this.la.xi=!1;this.la.Cf=a.autoStart;this.la.nj=!1;this.la.Ye=!1;this.Y.Kf=this.Y.lf=0;this.Y.Lf=a.csStart;this.Y.kf=a.csInterval;this.Y.mf=a.csStop;this.zi=this.Le.bind(this);wb(this)}hb(Qc);var Rc=["power","reset"];m=Qc.prototype;
m.Ic=function(a,b,c,d){this.X=a;this.ga=b;this.ha=d;for(b=0;b<Rc.length;b++)(c=this.qa[Rc[b]])&&this.X.Pb(null,Rc[b],c);this.Tb=Jb(a,"FPU");this.N=Jb(a,"ChipSet");a=Tc(a,"autoStart");null!=a&&(this.la.Cf="true"==a?!0:"false"==a?!1:!!a);wb(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.gc=function(a,b){if(!b){if(a&&this.restore){Uc(this);if(!this.restore(a))return!1;Xc(this)}else this.reset();this.ha?this.ha.ph():this.O("No debugger detected")}Yc(this);return!0};m.fc=function(a){return a?this.save():!0};m.Cf=function(){return this.la.Cf||!this.ha&&void 0===this.qa.run?(this.Le(!0),!0):!1};m.uj=function(){return 0};
@ -99,22 +99,22 @@ d.oa(h+g)));c&&d.jb(h+0,f);d.Za|=8;return!0}m.save=function(){return[this.Z,this
function id(a,b,c,d){void 0===c&&(c=!!(a.F.Za&1));a.bd=!1;if(c)if(a.load=a.yg,a.Bj=a.Vm,a.mc=a.gj,a.nc=a.ij,void 0===d&&(d=!!(a.F.ca&131072)),d)a.load=a.X,a.mc=a.ga,a.nc=a.qa,a.Lb=a.Gc=3,a.ba=a.Oc=2,a.R=a.Ba=65535,a.Ta=65535,a.Zb=a.Ta+1,a.Oc=a.ba,a.Xb=-1,a.ef=!1;else{if(!(a.Z&-4))a.mc=a.sg,a.nc=a.tg;else if(a.type&4096){6144==(a.type&6656)&&(a.mc=a.sg);if(a.type&2048||!(a.type&512))a.nc=a.tg;1024==(a.type&3072)&&(a.mc==a.gj&&(a.mc=a.rl),a.nc==a.ij&&(a.nc=a.sl),a.bd=!0);b&&6>a.id&&a.Z&-4&&-1!==a.Xb&&
(c=a.Xb+5,d=a.F.Qa(c),d&1||a.F.qc(c,d|1))}b&&(a.Lb=a.Z&3,a.Gc=(a.wb&24576)>>13,80386>a.F.ja||!(a.ext&64)?(a.ba=2,a.R=65535):(a.ba=4,a.R=-1),a.Oc=a.ba,a.Ba=a.R)}else a.load=a.th,a.Bj=a.Wm,a.mc=a.hj,a.nc=a.jj,a.Lb=a.Gc=0,a.Xb=-1,a.ef=!1}
function Ed(a){this.ja=+a.model||8088;var b=a.stepping;this.Uc=this.ja+(b?ea(b,16):0);b=0;switch(this.ja){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Qc.call(this,a,b);this.$f=61442;this.Cc=1792;this.Yf=28672;this.Cd=4;this.ra=255;this.B=80286<=this.ja?Bb:Ab;this.W=Fd;this.dg=Gd;this.jg=Hd;this.kg=Id;if(80186<=this.ja&&(this.W=Fd.slice(),this.dg=Gd.slice(),this.jg=Hd.slice(),this.ra=31,this.W[15]=Jd,this.W[96]=Kd,this.W[97]=Ld,this.W[98]=Md,this.W[99]=Jd,this.W[100]=Jd,this.W[101]=
Jd,this.W[102]=Jd,this.W[103]=Jd,this.W[104]=Nd,this.W[105]=Od,this.W[106]=Pd,this.W[107]=Qd,this.W[108]=Rd,this.W[109]=Sd,this.W[110]=Td,this.W[111]=Ud,this.W[192]=Vd,this.W[193]=Zd,this.W[200]=$d,this.W[201]=ae,this.W[241]=ge,this.dg[7]=he,this.jg[7]=he,80286<=this.ja)){this.$f=2;this.Cc|=28672;this.Cd=0;this.W[15]=ie;this.tc=je.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ke);this.W[84]=le;this.W[99]=me;if(80386<=this.ja){var c;this.Yf=0;this.Cc|=196608;this.W[100]=ne;this.W[101]=
oe;this.W[102]=pe;this.W[103]=qe;for(c in N)this.tc[+c]=N[+c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=re,this.tc[167]=se)}}this.Hd=[];this.je=[];this.le=0;Uc(this);this.la.complete=this.la.mj=!1;this.Vg=0;this.kd=this.sa=[];this.La=this.Sb=this.Fa=this.Fd=this.hd=this.Gb=this.Db=0;te(this)}hb(Ed,Qc);function ue(a,b,c,d){Lc((d?a.kd:a.sa)[b>>>a.La],c);d&&$b(a)}
function ve(a){var b;if(a.sa===a.kd){a.sa=Array(a.Fd);a.ke=new C(null,0,0,5,null,a);Rb(a.ke,a.ha);for(b=0;b<a.Fd;b++)a.sa[b]=a.ke;a.jd=new C;a.cg=Array(512);a.me=0}else for(var c=0;c<a.Gd.length;c++){b=a.Gd[c];var d=a.sa[b];512>a.me&&(a.cg[a.me++]=d);a.sa[b]=a.ke}a.Gd=[]}function $b(a){a.Za&-2147483648&&ve(a)}
Jd,this.W[102]=Jd,this.W[103]=Jd,this.W[104]=Nd,this.W[105]=Od,this.W[106]=Pd,this.W[107]=Qd,this.W[108]=Rd,this.W[109]=Sd,this.W[110]=Td,this.W[111]=Ud,this.W[192]=Vd,this.W[193]=Wd,this.W[200]=$d,this.W[201]=ae,this.W[241]=be,this.dg[7]=he,this.jg[7]=he,80286<=this.ja)){this.$f=2;this.Cc|=28672;this.Cd=0;this.W[15]=ie;this.tc=je.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ke);this.W[84]=le;this.W[99]=me;if(80386<=this.ja){var c;this.Yf=0;this.Cc|=196608;this.W[100]=ne;this.W[101]=
oe;this.W[102]=pe;this.W[103]=qe;for(c in N)this.tc[+c]=N[+c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=re,this.tc[167]=se)}}this.Hd=[];this.je=[];this.le=0;Uc(this);this.la.complete=this.la.mj=!1;this.Vg=0;this.kd=this.sa=[];this.La=this.Sb=this.Fa=this.Fd=this.hd=this.Gb=this.Db=0;te(this)}hb(Ed,Qc);function ue(a,b,c,d){Lc((d?a.kd:a.sa)[b>>>a.La],c);d&&Vb(a)}
function ve(a){var b;if(a.sa===a.kd){a.sa=Array(a.Fd);a.ke=new C(null,0,0,5,null,a);Rb(a.ke,a.ha);for(b=0;b<a.Fd;b++)a.sa[b]=a.ke;a.jd=new C;a.cg=Array(512);a.me=0}else for(var c=0;c<a.Gd.length;c++){b=a.Gd[c];var d=a.sa[b];512>a.me&&(a.cg[a.me++]=d);a.sa[b]=a.ke}a.Gd=[]}function Vb(a){a.Za&-2147483648&&ve(a)}
function Kc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.kd[(a.Od+e&a.Gb)>>>a.La],g=f.Md(e);if(!(g&1))return d||we.call(a,b,!1,c),a.jd;if(!(g&4)&&3==a.pa)return d||we.call(a,b,!0,c),a.jd;var h=(b&4190208)>>>10,g=a.kd[((g&-4096)+h&a.Gb)>>>a.La],k=g.Md(h);if(!(k&1))return d||we.call(a,b,!1,c),a.jd;if(!(k&4)&&3==a.pa)return d||we.call(a,b,!0,c),a.jd;c=a.kd[((k&-4096)+(b&4095)&a.Gb)>>>a.La];if(d)return c;d=b>>>a.La;k=a.sa[d];b=b&-4096;var l;0<a.me?(l=a.cg[--a.me],l.ph(b)):l=new C(b,0,0,6);b=l;b.Bd=c;b.yb=f;b.A=
e>>2;b.zb=g;b.B=h>>2;zb&&gc&&c.da&&!c.controller&&!c.Ve&&!c.We?(b.Ya=c.Ya,b.de=c.de,b.da=c.da,dc(b,Pc)):(b.ga=c?Dc(32):0,b.V=c?Dc(96):0,dc(b,Nc));Rb(b,a.ha,k);a.sa[d]=b;a.Gd.push(d);return b}function xe(a){a.sa!==a.kd&&(a.sa=a.kd,a.ke=null,a.Gd=null,a.jd=null)}m=Ed.prototype;m.reset=function(){this.la.Ib&&this.Wb();te(this);Uc(this);this.la.error=!1};
function ye(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.I;break;case 2:c=a.M;break;case 3:c=a.H;break;case 4:c=J(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function ze(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.I=c;break;case 2:a.M=c;break;case 3:a.H=c;break;case 4:I(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}}
function te(a){a.G=0;a.H=0;a.I=0;a.M=0;a.gb=0;a.P=0;a.K=0;a.J=0;a.cb=!1;a.ia=a.va=0;a.aa=0;a.lg=0;a.L=0;a.Za=65520;a.Mc=0;a.Sd=1023;a.ca=a.Pa=0;a.Wc=a.sd=a.Vc=a.Xc=0;a.rb=-1;a.kc=a.sb=-1;a.qe=a.U=-1;a.wa=new hd(a,1,"CS");a.vb=new hd(a,2,"DS");a.Xa=new hd(a,2,"ES");a.ta=new hd(a,3,"SS");I(a,0);nd(a,0);if(80386<=a.ja){switch(a.Uc){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Za=16;a.si=0;a.se=0;a.Od=0;a.Ja=[0,0,0,0,null,null,0,
0];a.Ce=[null,null,null,null,null,null,0,0];a.Nb=new hd(a,2,"FS");a.Ob=new hd(a,2,"GS");xe(a)}a.rf=new hd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ia=0;a.D=a.C=-1;a.$b=a.rf;a.ua=0;if(80286>a.ja)Cd(a,0,65535);else{a.Ec=0;a.zd=65535;a.Bc=new hd(a,5,"LDT",!0);a.Sa=new hd(a,4,"TSS",!0);a.Da=new hd(a,6,"VER",!0);Cd(a,65520,61440);var b,c=M(a);b=a.wa;var d=-65536;80386>b.F.ja&&(d&=16777215);b=b.Aa=d;a.Ha=b+c|0;a.jf=(b>>>0)+(a.wa.Ta>>>0)+1}Bd(a,0);pd(a)}
function Ae(a){2==a.Oc?(a.bc=a.na,a.Oa=Be,a.$a=Ce,a.Jb=De,2==a.ba?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=He,a.ea=Ie,a.ya=Le)):(a.bc=a.oa,a.Oa=Me,a.$a=Ne,a.Jb=Oe,2==a.ba?(a.V=Pe,a.ea=Qe,a.ya=Re):(a.V=Se,a.ea=Te,a.ya=df))}function vd(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,ef(a))}function ef(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=Pe,a.ea=Qe,a.ya=Re)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.V=He,a.ea=Ie,a.ya=Le):(a.V=Se,a.ea=Te,a.ya=df))}
function Ae(a){2==a.Oc?(a.bc=a.na,a.Oa=Be,a.$a=Ce,a.Jb=De,2==a.ba?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=He,a.ea=Ie,a.ya=Je)):(a.bc=a.oa,a.Oa=Me,a.$a=Ne,a.Jb=Oe,2==a.ba?(a.V=Pe,a.ea=Qe,a.ya=Re):(a.V=Se,a.ea=Te,a.ya=Ue))}function vd(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,ef(a))}function ef(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.V=Ee,a.ea=Fe,a.ya=Ge):(a.V=Pe,a.ea=Qe,a.ya=Re)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.V=He,a.ea=Ie,a.ya=Je):(a.V=Se,a.ea=Te,a.ya=Ue))}
function ff(a){a.Oc=a.wa.Oc;a.Ba=a.wa.Ba;Ae(a);a.ba=a.wa.ba;a.R=a.wa.R;ef(a);a.Ia&=-3073}m.uj=function(){var a=this.G+this.H+this.I+this.M+J(this)+this.P+this.K+this.J|0;return a=a+M(this)+this.wa.Z+this.vb.Z+this.ta.Z+this.Xa.Z+Ad(this)|0};function gf(a,b,c){void 0===a.Hd[b]&&(a.Hd[b]=[]);a.Hd[b].push(c)}function hf(a,b,c){void 0!==c&&(null==a.je[b]&&a.le++,a.je[b]=c)}function jf(a,b){var c=a.je[b];null!=c&&(c(--a.le),delete a.je[b])}
function kf(a,b){for(var c=a.Ja[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ja[e],g=g&~(d>>2&3);b?a.sa[g>>>a.La].Rd(g&a.Fa,f,a):Lc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Ic(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<<g;a.ua|=2;break}}e>>=2;f>>=4}}}
function pd(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.kg=b&&!c?lf:Id;id(a.wa,!1,b,c);id(a.vb,!1,b,c);id(a.ta,!1,b,c);id(a.Xa,!1,b,c);80386<=a.ja&&(id(a.Nb,!1,b,c),id(a.Ob,!1,b,c));ff(a)}
m.save=function(){var a=new mf(this);O(a,0,[this.G,this.H,this.I,this.M,J(this),this.P,this.K,this.J]);var b=M(this),c=this.wa.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.zd,this.Mc,this.Sd,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ja&&(g.push(this.si),g.push(this.se),g.push(this.Od),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,Ad(this)];80386<=this.ja&&(b.push(this.Nb.save()),b.push(this.Ob.save()));O(a,1,b);O(a,2,[this.ka.jc,
this.Ka.jc,this.S,this.Ia,this.ua,this.D,this.C]);O(a,3,[0,this.uc,this.Y.Wd]);b=this.ga;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.X&&b.Cg==b.Gb)||Wb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=fc||h.Wa||h.sj){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,r=[];l<h.length;){for(var q=h[l],A=l+1;A<h.length&&h[A]===q;)A++;r[n++]=A-l;r[n++]=q;l=A}if(r.length<h.length){h=r;break a}}e[k]=h}}f||Wb(b,!1);e[d]=f;O(a,4,e);return a.data()};
this.Ka.jc,this.S,this.Ia,this.ua,this.D,this.C]);O(a,3,[0,this.uc,this.Y.Wd]);b=this.ga;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.X&&b.Cg==b.Gb)||Sb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=fc||h.Wa||h.sj){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,r=[];l<h.length;){for(var q=h[l],A=l+1;A<h.length&&h[A]===q;)A++;r[n++]=A-l;r[n++]=q;l=A}if(r.length<h.length){h=r;break a}}e[k]=h}}f||Sb(b,!1);e[d]=f;O(a,4,e);return a.data()};
m.restore=function(a){var b=a[0];this.G=b[0];this.H=b[1];this.I=b[2];this.M=b[3];var c=b[4];this.P=b[5];this.K=b[6];this.J=b[7];b=a[1];this.wa.restore(b[1]);this.vb.restore(b[2]);this.ta.restore(b[3]);this.Xa.restore(b[4]);var d=b[5];d&&d.length&&(this.Za=d[0],this.Ec=d[1],this.zd=d[2],this.Mc=d[3],this.Sd=d[4],this.Bc.restore(d[5]),this.Sa.restore(d[6]),this.Pa=d[7],80386<=this.ja&&(this.si=d[8],this.se=d[9],this.Od=d[10],this.Ja=d[11],this.Ce=d[12]),pd(this));Bd(this,b[6]);var d=!1,e;a:{e=this.ga;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.fa){for(var l=0,n=Array(e.fa),r=0;r<k.length-1;)for(var q=k[r++],A=k[r++];q--;)n[l++]=A;k=n}l=e.sa[h];if(!l||!l.restore(k)){x("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Wb(e,f[g]);e=!0}e&&(Cd(this,b[0],this.wa.Z),I(this,c),nd(this,this.ta.Z),80386<=this.ja&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&nf(this,b[0])||this.vb;this.Ka=null!=b[1]&&nf(this,b[1])||this.ta;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.fa){for(var l=0,n=Array(e.fa),r=0;r<k.length-1;)for(var q=k[r++],A=k[r++];q--;)n[l++]=A;k=n}l=e.sa[h];if(!l||!l.restore(k)){x("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Sb(e,f[g]);e=!0}e&&(Cd(this,b[0],this.wa.Z),I(this,c),nd(this,this.ta.Z),80386<=this.ja&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&nf(this,b[0])||this.vb;this.Ka=null!=b[1]&&nf(this,b[1])||this.ta;
this.S=b[2];this.Ia=b[3];this.ua=b[4];this.D=b[5];this.C=b[6];b=a[3];this.uc=b[1];ad(this,b[2]);return d};function nf(a,b){switch(b){case "CS":return a.wa;case "DS":return a.vb;case "SS":return a.ta;case "ES":return a.Xa;case "NULL":return a.rf;default:return[0,b,0,0,""]}}function of(a,b){null!=Cd(a,M(a),b)&&(a.S|=a.Cd)}function yd(a,b){-1!==a.vb.load(b)&&(a.S|=a.Cd)}
function nd(a,b,c){var d=J(a);-1!==a.ta.load(b)&&(I(a,d),a.ta.bd?(a.Rg=a.ta.Aa+a.ta.Ba|0,a.qd=a.ta.Aa+a.ta.Ta|0):(a.Rg=a.ta.Aa+a.ta.Ta|0,a.qd=a.ta.Aa),c||(a.S|=4))}function zd(a,b){-1!==a.Xa.load(b)&&(a.S|=a.Cd)}function M(a){return a.Ha-a.wa.Aa|0}function Q(a,b){a.Ha=a.wa.Aa+(b&a.R)|0}function pf(a,b){a.Ha=b;a.jf=(a.wa.Aa>>>0)+(a.wa.Ta>>>0)+1;a.pa=a.wa.Lb;ff(a)}function Cd(a,b,c,d){var e=a.wa;e.Zf=b;e.C=d;b=e.load(c);return-1!==b?(pf(a,b+(a.wa.Zf&a.wa.R)),a.wa.ef):null}
function qf(a,b){var c=(a.Ha>>>0)+b;c>a.jf&&(8088>=a.ja||a.wa.Ta==a.wa.Ba?c=a.wa.Aa+(c-a.jf&a.R):D.call(a,13,0));return c|0}function rf(a){a.Ha=a.qe}function J(a){return a.gb&~a.ta.Ba|a.fa-a.ta.Aa}function I(a,b){a.gb=b;a.fa=a.ta.Aa+(b&a.ta.Ba)|0}function sf(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&tf(a),g&2&&uf(a),g&4&&vf(a),g&8&&wf(a),g&16&&xf(a),g&32&&yf(a))}f?(a.Wc=d,a.Vc=b):(a.Wc=b,a.Vc=d);a.sd=c;a.Xc=d;a.resultType=e}
@ -188,7 +188,7 @@ function kj(a,b){return b>>(this.G&this.R)&(1<<(this.I&31))-1&this.R}function lj
function mj(a,b){if(-1===this.D){switch(this.L&7){case 0:this.G=this.G&~this.R|a;break;case 1:this.I=this.I&~this.R|a;break;case 2:this.M=this.M&~this.R|a;break;case 3:this.H=this.H&~this.R|a;break;case 4:I(this,J(this)&~this.R|a);break;case 5:this.P=this.H&~this.R|a;break;case 6:this.K=this.K&~this.R|a;break;case 7:this.J=this.J&~this.R|a}this.A-=this.B.ki}else this.C=this.D,this.S&2||this.rc(this.$b.nc(this.Ca,this.ba),a),this.A-=this.B.ji;return b}
function nj(a,b){var c=a^b;zf(this,c,128);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c}function oj(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return zf(this,a^b,this.Ga)&this.R}function pj(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function qj(a){var b=a-1|0;sf(this,a,1,b,this.Ga|62,!0);this.A-=2;return a&~this.R|b&this.R}
function rj(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0<pj(a,c);){var f=b=c;b[0]+=f[0];b[1]+=f[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=pj(a,c)&&(b=a,f=c,b[0]-=f[0],b[1]-=f[1],0>b[0]&&(b[0]>>>=0,b[1]--),d+=e),b=c,b[0]>>>=1,b[1]&1&&(b[0]=(b[0]|2147483648)>>>0),b[1]>>>=1,e/=2;while(1<=e);this.ia=d;this.va=a[0];return!0}function sj(a){var b=a+1|0;sf(this,a,1,b,this.Ga|62);this.A-=2;return a&~this.R|b&this.R}
function tj(a){this.Za=a;pd(this);this.Za&-2147483648?ve(this):xe(this)}function Dd(a){this.Od=a;$b(this)}function uj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Vi(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;zf(this,a,-2147483648,d&-2147483648)}return a}
function tj(a){this.Za=a;pd(this);this.Za&-2147483648?ve(this):xe(this)}function Dd(a){this.Od=a;Vb(this)}function uj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Vi(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;zf(this,a,-2147483648,d&-2147483648)}return a}
function aj(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;zf(this,a,32768,d&1)}return a}function cj(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;zf(this,a,-2147483648,d&1)}return a}function vj(){this.A-=-1===this.D?2:this.B.Ek;return 1}function wj(){var a=this.I&255;this.A-=(-1===this.D?this.B.bi:this.B.ai)+(a<<this.B.ci);return a}function xj(){var a=this.xa();this.A-=(-1===this.D?this.B.bi:this.B.ai)+(a<<this.B.ci);return a}function yj(){return null}
function zj(){return this.aa}function Aj(a,b){this.kc=this.wa.Z;this.sb=this.ta.Z;this.U=this.fa;var c=M(this),d=this.ba;null!=Cd(this,a,b,!0)&&(xd(this,this.kc,d,2),xd(this,c,d,d));this.kc=this.sb=this.U=-1}function Bj(a,b,c){this.A-=this.B.bk+(c||0);c=Ad(this);var d=this.wa.Z,e=M(this);a=this.wa.Bj(a);-1!==a&&(K(this,c),K(this,d),K(this,e),null!=b&&K(this,b),this.rb=-1,pf(this,a))}
function Cj(a){this.sb=this.ta.Z;this.U=this.fa;var b=G(this),c=G(this);a&&I(this,J(this)+a);Cd(this,b,c,!1)&&(a&&I(this,J(this)+a),Dj.call(this,this.vb),Dj.call(this,this.Xa),80386<=this.ja&&(Dj.call(this,this.Nb),Dj.call(this,this.Ob)));2==a&&this.le&&jf(this,this.Ha);this.sb=this.U=-1}function Ej(){8086==this.ja?(this.rb=-1,Bj.call(this,0,null,2)):D.call(this,0,null,2)}function Zf(a,b){this.rb=a;void 0===b&&(b=11);Bj.call(this,a,null,b)}
@ -237,7 +237,7 @@ case 65:b=T(this,this.H+this.J+this.T());this.C=this.D;break;case 66:b=Rf(this,t
this.C=this.D;break;case 130:b=Rf(this,this.P+this.K+U(this));this.C=this.D;break;case 131:b=Rf(this,this.P+this.J+U(this));this.C=this.D;break;case 132:b=T(this,this.K+U(this));this.C=this.D;break;case 133:b=T(this,this.J+U(this));this.C=this.D;break;case 134:b=Rf(this,this.P+U(this));this.C=this.D;break;case 135:b=T(this,this.H+U(this));this.C=this.D;break;case 192:b=this.G;break;case 193:b=this.I;break;case 194:b=this.M;break;case 195:b=this.H;break;case 196:b=J(this);break;case 197:b=this.P;break;
case 198:b=this.K;break;case 199:b=this.J;break;default:b=0}switch(this.L>>3&7){case 0:c=this.G;break;case 1:c=this.I;break;case 2:c=this.M;break;case 3:c=this.H;break;case 4:c=J(this);break;case 5:c=this.P;break;case 6:c=this.K;break;case 7:c=this.J;break;default:c=0}a=a.call(this,b,c);switch(d){case 0:case 3:Uf(this,a);this.A-=this.B.dd;break;case 1:case 2:Uf(this,a);this.A-=this.B.ed;break;case 4:case 5:case 7:Uf(this,a);this.A-=this.B.Jc;break;case 6:Uf(this,a);this.A-=this.B.Jd;break;case 64:case 67:case 128:case 131:Uf(this,
a);this.A-=this.B.cc;break;case 65:case 66:case 129:case 130:Uf(this,a);this.A-=this.B.dc;break;case 68:case 69:case 70:case 71:case 132:case 133:case 134:case 135:Uf(this,a);this.A-=this.B.ib;break;case 192:this.G=a;break;case 193:this.I=a;break;case 194:this.M=a;break;case 195:this.H=a;break;case 196:I(this,a);break;case 197:this.P=a;break;case 198:this.K=a;break;case 199:this.J=a}}
function Le(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.H+this.K);this.C=this.D;break;case 1:c=T(this,this.H+this.J);this.C=this.D;break;case 2:c=Rf(this,this.P+this.K);this.C=this.D;break;case 3:c=Rf(this,this.P+this.J);this.C=this.D;break;case 4:c=T(this,this.K);this.C=this.D;break;case 5:c=T(this,this.J);this.C=this.D;break;case 6:c=T(this,U(this));this.C=this.D;break;case 7:c=T(this,this.H);this.C=this.D;break;case 64:c=T(this,this.H+this.K+this.T());this.C=this.D;break;
function Je(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.H+this.K);this.C=this.D;break;case 1:c=T(this,this.H+this.J);this.C=this.D;break;case 2:c=Rf(this,this.P+this.K);this.C=this.D;break;case 3:c=Rf(this,this.P+this.J);this.C=this.D;break;case 4:c=T(this,this.K);this.C=this.D;break;case 5:c=T(this,this.J);this.C=this.D;break;case 6:c=T(this,U(this));this.C=this.D;break;case 7:c=T(this,this.H);this.C=this.D;break;case 64:c=T(this,this.H+this.K+this.T());this.C=this.D;break;
case 65:c=T(this,this.H+this.J+this.T());this.C=this.D;break;case 66:c=Rf(this,this.P+this.K+this.T());this.C=this.D;break;case 67:c=Rf(this,this.P+this.J+this.T());this.C=this.D;break;case 68:c=T(this,this.K+this.T());this.C=this.D;break;case 69:c=T(this,this.J+this.T());this.C=this.D;break;case 70:c=Rf(this,this.P+this.T());this.C=this.D;break;case 71:c=T(this,this.H+this.T());this.C=this.D;break;case 128:c=T(this,this.H+this.K+U(this));this.C=this.D;break;case 129:c=T(this,this.H+this.J+U(this));
this.C=this.D;break;case 130:c=Rf(this,this.P+this.K+U(this));this.C=this.D;break;case 131:c=Rf(this,this.P+this.J+U(this));this.C=this.D;break;case 132:c=T(this,this.K+U(this));this.C=this.D;break;case 133:c=T(this,this.J+U(this));this.C=this.D;break;case 134:c=Rf(this,this.P+U(this));this.C=this.D;break;case 135:c=T(this,this.H+U(this));this.C=this.D;break;case 192:c=this.G;break;case 193:c=this.I;break;case 194:c=this.M;break;case 195:c=this.H;break;case 196:c=J(this);break;case 197:c=this.P;break;
case 198:c=this.K;break;case 199:c=this.J}c=a[this.L>>3&7].call(this,c,b.call(this));switch(d){case 0:case 3:Uf(this,c);this.A-=this.B.dd;break;case 1:case 2:Uf(this,c);this.A-=this.B.ed;break;case 4:case 5:case 7:Uf(this,c);this.A-=this.B.Jc;break;case 6:Uf(this,c);this.A-=this.B.Jd;break;case 64:case 67:case 128:case 131:Uf(this,c);this.A-=this.B.cc;break;case 65:case 66:case 129:case 130:Uf(this,c);this.A-=this.B.dc;break;case 68:case 69:case 70:case 71:case 132:case 133:case 134:case 135:Uf(this,
@ -276,7 +276,7 @@ function Te(a){var b,c,d=(this.L=this.xa())&199;switch(d){case 0:b=T(this,this.G
this.C=this.D;break;case 66:b=T(this,this.M+this.T());this.C=this.D;break;case 67:b=T(this,this.H+this.T());this.C=this.D;break;case 68:b=T(this,Fj.call(this,1)+this.T());this.C=this.D;break;case 69:b=Rf(this,this.P+this.T());this.C=this.D;break;case 70:b=T(this,this.K+this.T());this.C=this.D;break;case 71:b=T(this,this.J+this.T());this.C=this.D;break;case 128:b=T(this,this.G+U(this));this.C=this.D;break;case 129:b=T(this,this.I+U(this));this.C=this.D;break;case 130:b=T(this,this.M+U(this));this.C=
this.D;break;case 131:b=T(this,this.H+U(this));this.C=this.D;break;case 132:b=T(this,Fj.call(this,2)+U(this));this.C=this.D;break;case 133:b=Rf(this,this.P+U(this));this.C=this.D;break;case 134:b=T(this,this.K+U(this));this.C=this.D;break;case 135:b=T(this,this.J+U(this));this.C=this.D;break;case 192:b=this.G;break;case 193:b=this.I;break;case 194:b=this.M;break;case 195:b=this.H;break;case 196:b=J(this);break;case 197:b=this.P;break;case 198:b=this.K;break;case 199:b=this.J;break;default:b=0}switch(this.L>>
3&7){case 0:c=this.G;break;case 1:c=this.I;break;case 2:c=this.M;break;case 3:c=this.H;break;case 4:c=J(this);break;case 5:c=this.P;break;case 6:c=this.K;break;case 7:c=this.J;break;default:c=0}a=a.call(this,b,c);switch(d){case 192:this.G=a;break;case 193:this.I=a;break;case 194:this.M=a;break;case 195:this.H=a;break;case 196:I(this,a);break;case 197:this.P=a;break;case 198:this.K=a;break;case 199:this.J=a;break;default:Uf(this,a)}}
function df(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.G);this.C=this.D;break;case 1:c=T(this,this.I);this.C=this.D;break;case 2:c=T(this,this.M);this.C=this.D;break;case 3:c=T(this,this.H);this.C=this.D;break;case 4:c=T(this,Fj.call(this,0));this.C=this.D;break;case 5:c=T(this,U(this));this.C=this.D;break;case 6:c=T(this,this.K);this.C=this.D;break;case 7:c=T(this,this.J);this.C=this.D;break;case 64:c=T(this,this.G+this.T());this.C=this.D;break;case 65:c=T(this,this.I+this.T());
function Ue(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=T(this,this.G);this.C=this.D;break;case 1:c=T(this,this.I);this.C=this.D;break;case 2:c=T(this,this.M);this.C=this.D;break;case 3:c=T(this,this.H);this.C=this.D;break;case 4:c=T(this,Fj.call(this,0));this.C=this.D;break;case 5:c=T(this,U(this));this.C=this.D;break;case 6:c=T(this,this.K);this.C=this.D;break;case 7:c=T(this,this.J);this.C=this.D;break;case 64:c=T(this,this.G+this.T());this.C=this.D;break;case 65:c=T(this,this.I+this.T());
this.C=this.D;break;case 66:c=T(this,this.M+this.T());this.C=this.D;break;case 67:c=T(this,this.H+this.T());this.C=this.D;break;case 68:c=T(this,Fj.call(this,1)+this.T());this.C=this.D;break;case 69:c=Rf(this,this.P+this.T());this.C=this.D;break;case 70:c=T(this,this.K+this.T());this.C=this.D;break;case 71:c=T(this,this.J+this.T());this.C=this.D;break;case 128:c=T(this,this.G+U(this));this.C=this.D;break;case 129:c=T(this,this.I+U(this));this.C=this.D;break;case 130:c=T(this,this.M+U(this));this.C=
this.D;break;case 131:c=T(this,this.H+U(this));this.C=this.D;break;case 132:c=T(this,Fj.call(this,2)+U(this));this.C=this.D;break;case 133:c=Rf(this,this.P+U(this));this.C=this.D;break;case 134:c=T(this,this.K+U(this));this.C=this.D;break;case 135:c=T(this,this.J+U(this));this.C=this.D;break;case 192:c=this.G;break;case 193:c=this.I;break;case 194:c=this.M;break;case 195:c=this.H;break;case 196:c=J(this);break;case 197:c=this.P;break;case 198:c=this.K;break;case 199:c=this.J;break;default:c=0}c=a[this.L>>
3&7].call(this,c,b.call(this));switch(d){case 192:this.G=c;break;case 193:this.I=c;break;case 194:this.M=c;break;case 195:this.H=c;break;case 196:I(this,c);break;case 197:this.P=c;break;case 198:this.K=c;break;case 199:this.J=c;break;default:Uf(this,c)}}
@ -291,9 +291,9 @@ function Ud(){var a=1,b=0,c=this.Ba,d=5;this.Ia&192&&(a=this.I&c,b=1,this.Ia&256
function Hj(){var a=this.T();yf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Ij(){var a=this.T();tf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Jj(){var a=this.T();tf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Kj(){var a=this.T();wf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Lj(){var a=this.T();wf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}
function Mj(){var a=this.T();tf(this)||wf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Nj(){var a=this.T();tf(this)||wf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Oj(){var a=this.T();xf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Pj(){var a=this.T();xf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Qj(){var a=this.T();uf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Rj(){var a=this.T();uf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Sj(){var a=this.T();!xf(this)!=!yf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Tj(){var a=this.T();!xf(this)==!yf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}function Uj(){var a=this.T();wf(this)||!xf(this)!=!yf(this)?(Q(this,M(this)+a),this.A-=this.B.ab):this.A-=this.B.bb}
function Vj(){var a=this.T();wf(this)||!xf(this)!=!yf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Wj(){this.Jb.call(this,Xj,this.xa);this.A-=-1===this.C?1:this.B.Ig}function Yj(){this.S|=1;this.$a.call(this,fi)}function Zj(){this.S|=1;this.ea.call(this,fi)}function ak(){this.Oa.call(this,fi)}function bk(){this.V.call(this,fi)}function Vd(){this.Jb.call(this,ck,xj)}function Zd(){this.ya.call(this,2==this.ba?dk:ek,xj)}
function Vj(){var a=this.T();wf(this)||!xf(this)!=!yf(this)?this.A-=this.B.bb:(Q(this,M(this)+a),this.A-=this.B.ab)}function Wj(){this.Jb.call(this,Xj,this.xa);this.A-=-1===this.C?1:this.B.Ig}function Yj(){this.S|=1;this.$a.call(this,fi)}function Zj(){this.S|=1;this.ea.call(this,fi)}function ak(){this.Oa.call(this,fi)}function bk(){this.V.call(this,fi)}function Vd(){this.Jb.call(this,ck,xj)}function Wd(){this.ya.call(this,2==this.ba?dk:ek,xj)}
function fk(){var a=Vf(this),b=G(this);Q(this,b);a&&I(this,J(this)+a);this.A-=this.B.Dk}function gk(){var a=G(this);Q(this,a);this.A-=this.B.Ak}function $d(){this.U=this.fa;var a=Vf(this),b=this.xa()&31;this.A-=11;K(this,this.P);var c=J(this)&this.R;if(0<b){for(this.A-=(b<<2)+(1<b?1:0);--b;)this.P=this.P&~this.R|this.P-this.ba&this.R,K(this,wd(this,this.ta,this.P&this.R));K(this,c)}this.P=this.P&~this.R|c;I(this,J(this)&~this.ta.Ba|J(this)-a&this.ta.Ba);this.U=-1}
function ae(){this.U=this.fa;I(this,J(this)&~this.ta.Ba|this.P&this.ta.Ba);this.P=this.P&~this.R|G(this)&this.R;this.A-=5;this.U=-1}function hk(){Cj.call(this,Vf(this));this.A-=this.B.Ck}function ik(){Cj.call(this,0);this.A-=this.B.Bk}function jk(a){this.lg=a;this.V.call(this,Ph)}function kk(){this.S|=36;this.A-=this.B.nd}function ge(){ke.call(this)}function Jd(){D.call(this,6)}
function ae(){this.U=this.fa;I(this,J(this)&~this.ta.Ba|this.P&this.ta.Ba);this.P=this.P&~this.R|G(this)&this.R;this.A-=5;this.U=-1}function hk(){Cj.call(this,Vf(this));this.A-=this.B.Ck}function ik(){Cj.call(this,0);this.A-=this.B.Bk}function jk(a){this.lg=a;this.V.call(this,Ph)}function kk(){this.S|=36;this.A-=this.B.nd}function be(){ke.call(this)}function Jd(){D.call(this,6)}
function ke(){Q(this,this.qe-this.wa.Aa);yb(this,"Undefined opcode "+u(this.Qa(this.Ha))+" at "+t(this.Ha,8,!0));this.Wb()}
var Fd=[function(){this.$a.call(this,xh)},function(){this.ea.call(this,yh)},function(){this.Oa.call(this,xh)},function(){this.V.call(this,yh)},function(){this.G=this.G&-256|xh.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|yh.call(this,this.G&this.R,this.Ma());this.A--},function(){xd(this,this.Xa.Z,this.ba,2);this.A-=this.B.Ie},function(){this.U=this.fa;zd(this,G(this));this.A-=this.B.zc;this.U=-1},function(){this.$a.call(this,Bi)},function(){this.ea.call(this,Ci)},function(){this.Oa.call(this,
Bi)},function(){this.V.call(this,Ci)},function(){this.G=this.G&-256|Bi.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|Ci.call(this,this.G&this.R,this.Ma());this.A--},function(){xd(this,this.wa.Z,this.ba,2);this.A-=this.B.Ie},function(){of(this,G(this));this.A-=this.B.zc},function(){this.$a.call(this,vh)},function(){this.ea.call(this,wh)},function(){this.Oa.call(this,vh)},function(){this.V.call(this,wh)},function(){this.G=this.G&-256|vh.call(this,this.G&255,this.xa());this.A--},
@ -414,7 +414,7 @@ m.Ll=function(a,b){var c=this.Ja;y(this,a,null,b,"8042_OUTBUFF",c,16384);this.N&
m.jn=function(a,b,c){y(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.N&8)switch(this.ea){case 96:Vl(this,b);break;case 209:Wl(this,b);break;default:if(Vl(this,this.aa&-17),this.B){a=this.B;c=b;var d=-1;B(a)&&z(a,"sendCmd("+u(c)+")");switch(a.V||c){case 255:d=250;Xl(a);break;case 243:a.V&&(c=0);Yl(a,250);a.V=c;break;case 237:a.V&&(c=0);Yl(a,250);a.V=c;break;default:z(a,"sendCmd(): unrecognized command")}Zl(this,d)}}this.ea=b;this.N&=-9};
m.Ml=function(a,b){var c=this.W&-209|($c(this.F)&64?16:0);y(this,a,null,b,"8042_RWREG",c,16384);return c};m.kn=function(a,b,c){y(this,a,b,c,"8042_RWREG",null,16384);Sl(this,b)};m.Nl=function(a,b){y(this,a,null,b,"8042_STATUS",this.N,16384);var c=this.N&255;this.N&256&&(this.N|=1,this.N&=-257);return c};
m.hn=function(a,b,c){y(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.ea=b;this.N|=8;a=0;240<=this.ea&&(a=this.ea^15,this.ea=240);switch(this.ea){case 32:Zl(this,this.aa);break;case 173:Vl(this,this.aa|16);break;case 174:Vl(this,this.aa&-17);this.B&&Ul(this.B);break;case 170:this.B&&(a=this.B,a.A=[],B(a)&&z(a,"scan codes flushed"));Vl(this,this.aa|16);Zl(this,85);Wl(this,3);break;case 171:Zl(this,0);break;case 192:Zl(this,this.fa);break;case 208:Zl(this,this.Ka);break;case 224:Zl(this,this.aa&16?0:
1);break;case 240:a&1&&te(this.F)}};function Vl(a,b){a.aa=b;a.N=a.N&-5|b&4;a.B&&Tl(a.B,!!(b&8),!(b&16))}function Zl(a,b,c){0<=b&&(a.Ja=b,c?a.N|=1:(a.N&=-2,a.N|=256))}function Wl(a,b){a.Ka=b;Wb(a.ga,!!(b&2));b&1||te(a.F)}function $l(a,b){a.ja<gg?(ig(a,1,4),a.va|=1):a.aa&16||a.N&257||(Zl(a,b,!0),am(a.B),ig(a,1,120))}function bm(a,b,c,d){var e=a.C[b][1];y(a,c,null,d,"DIPSW-"+b,e,32768);return e}m.am=function(a,b){y(this,a,null,b,"CMOS.ADDR",this.pa,4096);return this.pa};
1);break;case 240:a&1&&te(this.F)}};function Vl(a,b){a.aa=b;a.N=a.N&-5|b&4;a.B&&Tl(a.B,!!(b&8),!(b&16))}function Zl(a,b,c){0<=b&&(a.Ja=b,c?a.N|=1:(a.N&=-2,a.N|=256))}function Wl(a,b){a.Ka=b;Sb(a.ga,!!(b&2));b&1||te(a.F)}function $l(a,b){a.ja<gg?(ig(a,1,4),a.va|=1):a.aa&16||a.N&257||(Zl(a,b,!0),am(a.B),ig(a,1,120))}function bm(a,b,c,d){var e=a.C[b][1];y(a,c,null,d,"DIPSW-"+b,e,32768);return e}m.am=function(a,b){y(this,a,null,b,"CMOS.ADDR",this.pa,4096);return this.pa};
m.zn=function(a,b,c){y(this,a,b,c,"CMOS.ADDR",null,4096);this.pa=b;this.ya=b&128?0:128};m.bm=function(a,b){var c=this.pa&63,d=13>=c?Sk(this,c):this.A[c];B(this,4352)&&y(this,a,null,b,"CMOS.DATA["+u(c)+"]",d,!0);null!=b&&12==c&&(this.A[c]&=15,d&128&&hg(this,8),d&64&&this.A[11]&64&&bl(this));return d};
m.An=function(a,b,c){var d=this.pa&63;B(this,4352)&&y(this,a,b,c,"CMOS.DATA["+u(d)+"]",null,!0);a=b^this.A[d];if(13>=d){if(c=b,10>d){var e=!1;this.A[11]&4||(c=10*(c>>4)+(c&15),e=!0);if(4==d||5==d)e&&23<c&&(c+=48),this.A[11]&2||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;11==d&&a&64&&b&64&&bl(this)};m.Mk=function(a,b,c){y(this,a,b,c,"NMI");this.ya=b};m.Kn=function(a,b,c){y(this,a,b,c,"FPU.CLEAR")};m.Ln=function(a,b,c){y(this,a,b,c,"FPU.RESET");this.Tb&&bg(this.Tb)};
m.Om=function(a){if(B(this,16)&&ok(this.ha,26,a)){var b=this.F.G>>8;hf(this.F,a,function(a,d){return function(e){d=$c(a.F)-d;var f,g=a.F.M&255,h=a.F.M>>8,k=a.F.M&255,l=a.F.M>>8;if(2==b||3==b)f=" CH(hour)="+v(h)+" CL(min)="+u(g)+" DH(sec)="+u(l);else if(4==b||5==b)f=" CX(year)="+v(a.F.I)+" DH(month)="+u(l)+" DL(day)="+u(k);g=a.ha;h=d;g.message("INT "+u(26)+": C="+(tf(g.F)?1:0)+(f||"")+" (cycles="+h+(e?",level="+(e+1):"")+")")}}(this,$c(this.F)))}return!0};
@ -435,10 +435,10 @@ function cm(a){Za.call(this,"ROM",a,cm);this.A=null;this.X=a.addr;this.C=a.size;
cm.prototype.gc=function(){this.Qd&&(this.ha&&fm(this.ha,this.id,0,this.X>>>4,0,this.X,this.C,this.Qd),delete this.Qd);return!0};cm.prototype.fc=function(){return!0};
function dm(a,b,c,d){if(d)a.Na("Unable to load system ROM (error "+d+": "+b+")");else{jb(a.ce,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.Qd=e.symbols;if(!a.A.length){x("Empty ROM: "+b);return}if(1==a.A.length){x(a.A[0]);return}}catch(h){a.Na("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]=ea(b[e],16);em(a)}}
function em(a){if(!xb(a))if(!a.L)wb(a);else if(a.A&&a.ga){a.C||(a.C=a.A.length);if(a.A.length!=a.C)yb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.C,8,!0)+")");else{var b;b=a.X;if(Yb(a.ga,b,a.C,fc)){for(var c=0;c<a.A.length;c++){var d=a.ga,e=b+c;d.sa[(e&d.Gb)>>>d.La].xf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c<b.length;c++){var d=a,e=b[c],f=cc(d.ga,d.X,d.C);bc(d.ga,e,d.C,f)}a.B&&((b=mb(a.B,
function em(a){if(!xb(a))if(!a.L)wb(a);else if(a.A&&a.ga){a.C||(a.C=a.A.length);if(a.A.length!=a.C)yb(a,"ROM size ("+t(a.A.length,8,!0)+") does not match specified size ("+t(a.C,8,!0)+")");else{var b;b=a.X;if(Tb(a.ga,b,a.C,fc)){for(var c=0;c<a.A.length;c++){var d=a.ga,e=b+c;d.sa[(e&d.Gb)>>>d.La].xf(e&d.A,a.A[c]&255,e)}b=!0}else b=!1;if(b){b=[];"number"==typeof a.N?b.push(a.N):null!=a.N&&a.N.length&&(b=a.N);for(c=0;c<b.length;c++){var d=a,e=b[c],f=cc(d.ga,d.X,d.C);bc(d.ga,e,d.C,f)}a.B&&((b=mb(a.B,
a.id))?(c=a.A,d=a.V,5==b.Ua?gm(b,c,d||[12640,8752],8):b.Ua==hm&&gm(b,c,d||[14221,16269],8),wb(b)):a.Na("Unable to find component: "+a.B));delete a.A}}wb(a)}}Ua(function(){for(var a=rb(document,"pcx86","rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new cm(d);qb(d,c)}});function im(a){Za.call(this,"RAM",a,im);this.B=a.addr;this.A=a.size;this.L=a.test;this.X=!!this.A;this.C=!1}hb(im);m=im.prototype;m.Ic=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.N=Jb(a,"ChipSet");wb(this)};
m.gc=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))?!1:!0};m.fc=function(a){return a&&this.controller?this.save():!0};
m.reset=function(){if(!this.B&&!this.X&&this.N){var a=1024*Xk(this.N);this.A&&a!=this.A&&(ec(this.ga,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Yb(this.ga,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.xd&&(this.controller=new jm(this),Yb(this.ga,km,4,4,this.controller)));if(this.C){if(this.L||lc(this.ga,1138,4660),"ramCPQ"!=this.xd&&this.N&&(a=this.N,a.A)){var b=1048576>this.B?21:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;al(a)}}else x("No RAM allocated")};
m.reset=function(){if(!this.B&&!this.X&&this.N){var a=1024*Xk(this.N);this.A&&a!=this.A&&(ec(this.ga,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Tb(this.ga,this.B,this.A,1)&&(this.C=!0,"ramCPQ"==this.xd&&(this.controller=new jm(this),Tb(this.ga,km,4,4,this.controller)));if(this.C){if(this.L||lc(this.ga,1138,4660),"ramCPQ"!=this.xd&&this.N&&(a=this.N,a.A)){var b=1048576>this.B?21:23,c=a.A[b]|a.A[b+1]<<8,c=c+(this.A>>10);a.A[b]=c&255;a.A[b+1]=c>>8;al(a)}}else x("No RAM allocated")};
m.save=function(){var a=new mf(this);this.controller&&O(a,0,this.controller.save());return a.data()};m.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function jm(a){this.N=a;this.C=lm;this.ha=mm;this.B=nm;this.A=null}var km=-2134900736,lm=65535,mm=2575,nm=2,om=[null,0],pm=[function(a){return this.controller.Qa(a)},null,null,function(a,b){this.controller.qc(a,b)},null,null];m=jm.prototype;m.save=function(){return[this.C,this.B]};
m.restore=function(a){this.qc(0,a[0]&255);this.qc(2,a[1]&255);return!0};m.Qa=function(a){var b=255;2>a?b=a&1?this.ha>>8:this.ha&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};m.qc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.N.ga;if(b&1)this.A&&(bc(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=cc(c,917504,131072));var d=cc(c,16646144,131072);bc(c,917504,131072,d,b&2?1:fc)}this.C=this.C&-256|b}};m.vj=function(){return om};m.mh=function(){return pm};
Ua(function(){for(var a=rb(document,"pcx86","ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new im(d);qb(d,c)}});function qm(a){Za.call(this,"Keyboard",a,qm,65536);rm(this,a.model);this.ia=Ka("Mobi");this.pa=Ka("MSIE");z(this,"mobile keyboard support: "+(this.ia?"true":"false"));this.fa=0;this.ka=this.jh=!1;this.B=[];this.ua=50;wb(this)}hb(qm);
@ -490,7 +490,7 @@ gn[98]=function(a,b){var c=a+this.C,d=Vm[b&15],d=d&this.controller.Fb,d=d&this.c
gn[226]=function(a,b){var c=a+this.C,d=Vm[b&15],d=d^this.controller.Fb,d=d&this.controller.Mb|this.controller.Fb&~this.controller.Mb,d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};gn[3]=function(a,b){var c=a+this.C;b=b>>this.controller.cd|b<<8-this.controller.cd&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Mb;d=this.controller.Wf&d|this.controller.Fb&~d;d=d&this.controller.qb|this.da[c]&~this.controller.qb;this.da[c]!=d&&(this.da[c]=d,this.Wa=!0)};
function hn(a){var b=[];if(void 0!==a.Ua){b[0]=a.Hc;b[1]=a.fd;b[2]=a.tf;b[3]=a.ma;b[4]=a.Ac|a.Pg<<8;b[5]=a.mb;if(5<=a.Ua){var c=[];c[0]=a.$e;c[1]=a.Nd;c[2]=a.Tc;c[3]=a.Sg;c[4]=a.vf;c[5]=a.gg;c[6]=a.ae;c[7]=a.Ke;c[8]=a.Pk;c[9]=a.Qk;c[10]=a.$d;c[11]=a.Zd;c[12]=a.Fb;c[13]=[a.ob,a.ac,a.Dd];var d;a:if(d=a.rd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],l=h+2;l<d.length&&d[l]===k;)l+=2;f[e++]=l-h>>1;f[e++]=k;h=l}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
a.Bg|-2147483648;c[16]=a.li;c[17]=a.qb;c[18]=a.cd;c[19]=a.Mb;c[20]=a.Wf;c[21]=a.Yd;c[22]=a.pe;c[23]=a.wh;c[24]=a.xh;c[25]=a.Ld;a.Ua==hm&&(c[26]=a.ui,c[27]=a.ti,c[28]=a.od,c[29]=a.Kc,c[30]=a.Qg,c[31]=a.uf);b[6]=c}b[7]=a.Dh}return b}function jn(a,b,c,d,e){if(d){var f,g="";for(f=0;f<e.length;f++){var h=d===a.mb?kn(a,f):d[f];g&&(g+="\n");g+=b+"["+t(f,2)+"]: "+oa(e[f],18)+(f===c?"*":" ")+t(h,255<h?4:2);null!=h&&(g+=" ("+h+".)")}a.ha.O(g)}else a.ha.O(b+": "+t(c,2))}
Xm.prototype.vj=function(a){return[this.rd,a-this.ob]};Xm.prototype.mh=function(){return this.A};Xm.prototype.Ug=function(a){if(null!=a&&a!=this.Bg){var b=a&65280,c=gn[b];c||b&4096&&(c=gn[4096]);var b=a&255,d=gn[b];d||b&16&&(d=gn[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.Bg=a}};
Xm.prototype.vj=function(a){return[this.rd,a-this.ob]};Xm.prototype.mh=function(){return this.A};Xm.prototype.Ug=function(a){if(null!=a&&a!=this.Bg){var b=a&65280,c=gn[b];c||b&4096&&(c=gn[4096]);var b=a&255,d=gn[b];d||b&16&&(d=gn[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[1]=d;this.Bg=a}};
function kn(a,b){var c=a.mb[b];if(null!=c&&5<=a.Ua){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ua==hm&&(e=32);break;case 10:5==a.Ua&&(d=32);break;case 16:d=4;a.Ua==hm&&(e=128);break;case 18:d=2;a.Ua==hm&&(e=64);break;case 21:d=8;a.Ua==hm&&(f=32);break;case 24:d=16,a.Ua==hm&&(f=64)}d&&(c|=a.mb[7]&d?256:0,c|=a.mb[7]&e?512:0,c|=a.mb[9]&f?512:0)}return c}var Ym=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Ym[hm]=["VGA",980,753664,16384,262144,7];var Km=0;
m=Z.prototype;
m.Ic=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;c=(c=Im[this.ja])&&c[0];3!==c&&(nc(b,this,ln),rc(b,this,mn));1!==c&&(nc(b,this,nn),rc(b,this,on));5<=this.Ua&&(nc(b,this,pn),rc(b,this,qn));this.Ua==hm&&(nc(b,this,rn),rc(b,this,sn));if(d){var e=this;Qk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.rd){var c,d,f,r=!1,q=8,A=8,F=-1,w=b.video.L>>3;for(c=0;c<a.length;c++){var E=a[c];if(c){var H=E.charAt(0);d=ea(E.substr(1),16);switch(H){case "l":q=d;break;case "n":1<=d&&8>=d&&(A=d,r=!0);break;
@ -511,14 +511,14 @@ function Zn(a,b){if(1==b)return a.Ca[0]=Rm[0],a.Ca[1]=Rm[7],a.Ca;if(2==b){var c=
(c.Tc[20]&12)<<4,c.Tc[16]&128&&(g&=-49,g|=(c.Tc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.Ca[f]=[h,k,g,255]}a.rb=!0}return a.Ca}function gm(a,b,c,d){a.Uc=b;a.Jb=c;a.Tb=d}
function yn(a,b){var c=!1;if(window&&a.Uc&&(!b||a.U)){var d=0,e=a.Tb?a.Tb:8,f=Zn(a);null!=a.Jb[0]&&$n(a,3,a.Jb[0],d,e,8,a.Uc,f)&&(c=!0);d=a.Tb?0:2048;e=a.Tb?a.Tb:9;null!=a.Jb[1]&&($n(a,1,a.Jb[1],d,e,14,a.Uc,Pm,Qm)&&(c=!0),a.Tb&&$n(a,a.Ua,a.Jb[1],0,a.Tb,14,a.Uc,f)&&(c=!0))}return c}function $n(a,b,c,d,e,f,g,h,k){var l=!1;null!=c&&(ao(a,b,c,d,e,f,g,h,k)&&(l=!0),a.qo&&ao(a,b<<1,c,d,e,f,g,h,k)&&(l=!0));return l}
function ao(a,b,c,d,e,f,g,h,k){var l=!1,n=b&1?0:1,r=a.Oa[b],q=16>h.length?h.length:16;r||(r={Qc:e<<n,Rc:f<<n,Pe:Array(q),Xi:h.slice(0,q),Af:k,Yg:Array(q)});for(k=0;k<q;k++){var A=h[k],F=r.Pe[k]?r.Xi[k]:[];if(A[0]!==F[0]||A[1]!==F[1]||A[2]!==F[2]){var l=r,F=k,w=n,E=c,H=d,L=e,W=f,P=g,bb=[0,0,0,0],ia=document.createElement("canvas");ia.width=l.Qc<<4;ia.height=l.Rc<<4;for(var ja=ia.getContext("2d"),Ha=void 0,Xa=void 0,Ba=void 0,Xb=8>W||!H?W:8,wa=ja.createImageData(l.Qc,l.Rc),Ha=0;256>Ha;Ha++){for(Ba=
0;Ba<W;Ba++)for(var Wd=l.Af&&F&1&&Ba>=W-2,Sc=P[Ba<Xb?E+Ha*Xb+Ba:H+Ha*Xb+Ba-Xb],Xd=0;Xd<=w;Xd++)for(Xa=0;Xa<L;Xa++){var Je=Xa<<w,Yd=(Ba<<w)+Xd,Ke=Wd||Sc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?A:bb;bo(wa,Je,Yd,Ke);w&&bo(wa,Je+1,Yd,Ke)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Pe[F]="#"+t(A[0],2)+t(A[1],2)+t(A[2],2);l.Xi[F]=A;l.Yg[F]=ia;l=!0}}a.Oa[b]=r;return l}function co(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
0;Ba<W;Ba++)for(var Xd=l.Af&&F&1&&Ba>=W-2,Sc=P[Ba<Xb?E+Ha*Xb+Ba:H+Ha*Xb+Ba-Xb],Yd=0;Yd<=w;Yd++)for(Xa=0;Xa<L;Xa++){var Ke=Xa<<w,Zd=(Ba<<w)+Yd,Le=Xd||Sc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?A:bb;bo(wa,Ke,Zd,Le);w&&bo(wa,Ke+1,Zd,Le)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Pe[F]="#"+t(A[0],2)+t(A[1],2)+t(A[2],2);l.Xi[F]=A;l.Yg[F]=ia;l=!0}}a.Oa[b]=r;return l}function co(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
function Yn(a){if(a.U){for(var b=10;15>=b;b++)if(null==a.C.mb[b])return;var c=a.C.mb[10],b=c&31,d=a.C.mb[11]&31,e=a.C.mb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)eo(a);else{c=a.C.mb[15]+((a.C.mb[14]&63)<<8);a.ua!=c&&(eo(a),a.ua=c);d=d-b+1;if(a.lg!=b||a.Ce!=d)a.lg=b,a.Ce=d;a.$a=e+1;co(a)}}}
function eo(a){if(0<=a.ua){if(void 0!==a.fa){var b=a.fa[a.ua];if(b&131072){var b=b&-131073,c=a.ua%a.L,d=a.ua/a.L|0;a.U&&a.Oa[a.U]&&(a.gb&&fo(a,c,d,b,a.gb),fo(a,c,d,b));a.fa[a.ua]=b}}a.ua=-1}}
function go(a){var b,c=a.C;a.jf=!1;var d=c.Zd[5];if(null!=d){b=1024;var e=0,f=c.Zd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.cd=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ua==hm&&(e=3,c.cd=f&7)}d&8&&(b=1280);c=c.Ke[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.jf=!0));b|=e}return b}
function ho(a,b){var c=a.C;return c&&null!=b&&b!=c.Bg?(c.Ug(b),a.ga.Ug(c.ob,c.ac,c.mh(),!0),!0):!1}
function An(a,b){var c,d=a.Ga,e=a.C;if(e)if(1==e.Ua)d=7;else if(5<=e.Ua){var d=null,f=e.Dd>>2,g=32768<f?32768:f,h=e.Zd[6];if(null!=h){switch(h&12){case 0:e.ob=655360;e.ac=f;d=255;break;case 4:e.ob=655360;e.ac=f;d=3==a.ya?15:16;break;case 8:e.ob=720896;e.ac=g;d=7;break;case 12:e.ob=753664,e.ac=g,d=3==a.ya?2:3}c=80==(e.Zd[5]&80);!c||e.ob==a.ob&&e.ac==a.ac||(b=!0);var f=kn(e,6),g=e.mb[9],k=e.mb[23],l=e.Ke[1]&8;255!=d&&(h&1?655360==e.ob||c||k&1?e.Zd[5]&64?d=g&31?143>=e.mb[18]?19:20:21:g&128||350>f?d=
l?13:14:480<=f&&(d=3==a.ya?17:18):d=l?7-d:6:d-=l?2:0);c=go(a)}}else e.fd&8&&(e.fd&2?(d=e.fd&16?6:5,e.fd&4||--d):(d=e.fd&1?3:1,e.fd&4&&--d));else a.Ga=null,null==d&&(d=a.va);if(!zn(a,d,b))return!1;ho(a,c);return!0}
function zn(a,b,c){if(null!=b&&(b!=a.Ga||c)){a.Vg=0;a.Ga=b;a.rb=!1;b=a.C||(7==b?a.pa:a.aa);if(b!=a.C||b.ob!=a.ob||b.ac!=a.ac){eo(a);if(a.ob){if(!ec(a.ga,a.ob,a.ac))return!1;a.C&&(a.C.Hc=!1)}a.C=b;b.Hc=!0;a.ob=b.ob;a.ac=b.ac;if(!Yb(a.ga,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.jd;a.W=a.je;a.Db=a.L;a.hd=Jm[7][2];b=0;if(c=Jm[a.Ga])a.L=c[0],a.W=c[1],a.hd=c[2],b=c[3],a.U=c[4],4!=a.ya&&7!=a.ya||a.C!==a.A||3!=a.U||(7==(a.A.mb[9]&31)?a.W=350>kn(a.A,18)?43:50:a.U=a.Ua);a.cg=a.L*a.W|0;a.$f=a.cg/
function zn(a,b,c){if(null!=b&&(b!=a.Ga||c)){a.Vg=0;a.Ga=b;a.rb=!1;b=a.C||(7==b?a.pa:a.aa);if(b!=a.C||b.ob!=a.ob||b.ac!=a.ac){eo(a);if(a.ob){if(!ec(a.ga,a.ob,a.ac))return!1;a.C&&(a.C.Hc=!1)}a.C=b;b.Hc=!0;a.ob=b.ob;a.ac=b.ac;if(!Tb(a.ga,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.jd;a.W=a.je;a.Db=a.L;a.hd=Jm[7][2];b=0;if(c=Jm[a.Ga])a.L=c[0],a.W=c[1],a.hd=c[2],b=c[3],a.U=c[4],4!=a.ya&&7!=a.ya||a.C!==a.A||3!=a.U||(7==(a.A.mb[9]&31)?a.W=350>kn(a.A,18)?43:50:a.U=a.Ua);a.cg=a.L*a.W|0;a.$f=a.cg/
a.hd|0;a.Ub=a.$f;a.sd=0;void 0!==b&&(a.Ub=(a.Ub<<1)+b|0,a.sd=a.Ub+b>>1);if(a.Oa.length){a.Ja=a.ra/a.L|0;a.Ka=a.Da/a.W|0;if(a.U){b=a.Oa[a.U];if(!b)break a;c=a.Oa[a.U<<1];a.Yf&&80==a.L?c&&a.Ja>=3*c.Qc>>2&&(a.U<<=1,b=c):(c&&a.Ja>=c.Qc&&(a.U<<=1,b=c),a.Yf||(a.Ja=b.Qc,a.Ka=b.Rc));a.kc=a.tc=0;b&&(a.kc=a.L*b.Qc,a.tc=a.W*b.Rc)}else a.Ja=a.Ka=1,a.kc=a.L,a.tc=a.W;a.sb=a.ea.createImageData(a.kc,a.tc);a.fb=document.createElement("canvas");a.fb.width=a.kc;a.fb.height=a.tc;a.gb=a.fb.getContext("2d");a.le=a.me=
0;a.Cd=a.ra;a.Fd=a.Da;b=a.ra-a.L*a.Ja;c=a.Da-a.W*a.Ka;0<b&&(a.le=b>>1,a.Cd-=b);0<c&&(a.me=c>>1,a.Fd-=c);if(b||c)a.ea.fillStyle=a.ka.style.backgroundColor,a.ea.fillRect(0,0,a.ra,a.Da)}}io(a,!0);un(a)}return!0}function bo(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function jo(a){a.Pa=-1;a.Fa=!1;var b=a.$f;if(void 0===a.fa||a.fa.length!=b)a.fa=Array(b)}function io(a,b){b||(a.rb=!1);jo(a)}
function fo(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.Af&&(d=h.Af[d]);var k=g>>4&15;h.Af&&(k=h.Af[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Pe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.le,c=c*a.Ka+a.me,a.ea.fillStyle=h.Pe[k],a.ea.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Yg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ea.drawImage(h.Yg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.lg,g=a.Ce,e?(a.$a&&a.$a!==h.Rc&&(f=f*h.Rc/a.$a|0,g=g*h.Rc/a.$a|0),e.fillStyle=h.Pe[d],
@ -707,7 +707,7 @@ function fr(a,b,c,d){var e,f=c?a.aa:a.sb;c=d?0:f.type;var g=f.Ra,h=f.Z,f=f.Ea;if
k)return e;0>f?null!=h?(g=lq(a,b,void 0),f=null):(f=lq(a,b,void 0),null==f&&(g=null)):(h=lq(a,b.substring(0,f),void 0),g=lq(a,b.substring(f+1),void 0),f=null)}null!=g&&(e=rq(a,g,h,f,c),d||er(a,e,!0)||(a.O("invalid offset: "+Zq(e)),e=null));return e}function gr(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.kl=a.Mg(b.Rk=c[2]))}m.Ok=function(a,b){var c=fr(this,b);return a.replace("["+b+"]",c?t(this.tb(c),c.Rb?8:4):"undefined")};
function ar(a,b,c){c=c||1;null!=b.Ea&&(b.Ea+=c);null!=b.Z&&(b.Ra+=c,er(a,b)||(b.Ra=0,b.Ea=null))}function Pq(a,b,c){return null!=b?t(b,4)+":"+t(a,a&-65536||c?8:4):t(a)}function Zq(a){var b;switch(a.type){case 1:case 3:b="&";break;case 2:b="#";break;case 4:b="%";break;case 5:b="%%";break;default:b=a.Z?"":"%"}return 4<=a.type||null==a.Z?b+t(a.Ea):b+Pq(a.Ra,a.Z,a.oc)}
function Qq(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.Qa(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}
function Lq(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.bc(fr(a,c));if(-1===e){a.O("invalid address: "+c);return}f=e>>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Kc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=ac[c],6==c&&(d=d.Bd,h+=" -> "+ac[d.type]),d&&a.O(t(d.id,8)+" %"+t(f<<a.F.La,8)+" %%"+t(d.Ea,8)+" "+v(d.Oe)+" "+v(d.size)+" "+
function Lq(a,b,c,d){var e=0,f=0,g=b.length;if(c){e=a.bc(fr(a,c));if(-1===e){a.O("invalid address: "+c);return}f=e>>>a.F.La;g=1}a.O("blockid "+(d?"linear ":"physical")+" blockaddr used size type");a.O("-------- --------- ---------- ------ ------ ----");c=-1;for(var h=0;g--;)(d=b[f])&&5==d.type&&(d=Kc(a.F,e,!1,!0)),d.type==c?h++||a.O("..."):(c=d.type,h=Wb[c],6==c&&(d=d.Bd,h+=" -> "+Wb[d.type]),d&&a.O(t(d.id,8)+" %"+t(f<<a.F.La,8)+" %%"+t(d.Ea,8)+" "+v(d.Oe)+" "+v(d.size)+" "+
h),c!=Bc&&5!=c&&(c=-1),h=0),e+=a.F.Sb,f++}function hr(a,b,c){a=t(a)+" "+t(b)+" ";a=a+(c&&b&64?"D":"-")+(b&32?"A":"-");a+=b&4?"U":"S";a+=b&2?"W":"R";return a+=b&1?"P":"N"}
var Nq={256:["tss286",!1],512:["ldt",!1],768:["busy tss286",!1],1024:["call gate",!0],1280:["task gate",!0],1536:["int gate286",!0],1792:["trap gate286",!0],2304:["tss386",!1],2816:["busy tss386",!1],3072:["call gate386",!0],3584:["int gate386",!0],3840:["trap gate386",!0]},Rq={PREV_TSS:0,CPL0_SP:2,CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,
TASK_LDT:42},Sq={PREV_TSS:0,CPL0_ESP:4,CPL0_SS:8,CPL1_ESP:12,CPL1_SS:16,CPL2_ESP:20,CPL2_SS:24,TASK_CR3:28,TASK_EIP:32,TASK_PS:36,TASK_EAX:40,TASK_ECX:44,TASK_EDX:48,TASK_EBX:52,TASK_ESP:56,TASK_EBP:60,TASK_ESI:64,TASK_EDI:68,TASK_ES:72,TASK_CS:76,TASK_SS:80,TASK_DS:84,TASK_FS:88,TASK_GS:92,TASK_LDT:96,TASK_IOPM:100};
@ -727,7 +727,7 @@ m.save=function(){var a=new mf(this);O(a,0,cr(this.aa));O(a,1,cr(this.ua));O(a,2
m.stop=function(a,b){if(this.la.Ib){this.la.Ib=!1;this.ea=b-this.vd;if(!this.U){var c="stopped";if(this.ea){var d=a-this.tc,e=0<d?Math.round(1E3*this.ea/d):0,c=c+" (";Xf(this)&&(c+=this.pa+" opcodes, ",this.Ca-=this.pa,this.pa=0);c+=this.ea+" cycles, "+d+" ms, "+e+" hz)"}else B(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.O(c)}this.pd(!0);this.wd();nr(this,this.F.Ha)}};function Xf(a){return 1<a.B.length||!!a.Oa||B(a,16)}
function $f(a,b,c){var d=a.F;if(0<c&&(a.Oa&&!--a.Oa||or(a,b,1,a.B)))return!0;0<=c&&a.W.length&&(a.pa++,b=Mf(d,b),null!=b&&(a.W[b][1]++,br(a,a.ia[a.Fa],M(d),d.wa.Z),++a.Fa==a.ia.length&&(a.Fa=0)));return!1}function Hc(a,b,c){return or(a,b,c||1,a.ra)?(a.Wb(!0),!0):!1}function Jc(a,b,c){return or(a,b,c||1,a.fa)?(a.Wb(!0),!0):!1}function pc(a,b,c){a.O("break on input from port "+v(b)+": "+t(c));a.Wb(!0)}function xc(a,b,c){a.O("break on output to port "+v(b)+": "+t(c));a.Wb(!0)}
function sq(a){var b,c;a.B=["bp"];if(void 0!==a.ra)for(b=1;b<a.ra.length;b++)c=a.ra[b],ue(a.F,a.bc(c),!1,5==c.type);a.ra=["br"];if(void 0!==a.fa)for(b=1;b<a.fa.length;b++)c=a.fa[b],ue(a.F,a.bc(c),!0,5==c.type);a.fa=["bw"];a.fb=0}
m.Rd=function(a,b,c){var d=!0;c||Yq(this,a,b,!1,!0);if(a!=this.B){var e=this.bc(b);if(-1===e)this.O("invalid address: "+Zq(b)),d=!1;else{var f=this.F,g=5==b.type;(g?f.kd:f.sa)[e>>>f.La].Rd(e&f.Fa,a==this.fa);g&&$b(f)}}d&&(a.push(b),c?(null!=b.Ea&&(b.Z=null),b.Vd=!0):(pr(this,a,a.length-1,"set"),tq(this)));return d};
m.Rd=function(a,b,c){var d=!0;c||Yq(this,a,b,!1,!0);if(a!=this.B){var e=this.bc(b);if(-1===e)this.O("invalid address: "+Zq(b)),d=!1;else{var f=this.F,g=5==b.type;(g?f.kd:f.sa)[e>>>f.La].Rd(e&f.Fa,a==this.fa);g&&Vb(f)}}d&&(a.push(b),c?(null!=b.Ea&&(b.Z=null),b.Vd=!0):(pr(this,a,a.length-1,"set"),tq(this)));return d};
function Yq(a,b,c,d,e){for(var f=!1,g=qr(a,a.bc(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==qr(a,a.bc(k))||-1===g&&c.Z==k.Z&&c.Ra==k.Ra)if(!d||k.Vd){f=!0;k.Vd||e||pr(a,b,h,"cleared");b.splice(h,1);b!=a.B&&ue(a.F,g,b==a.fa,5==k.type);k.Vd||tq(a);break}}return f}function rr(a,b){for(var c=1;c<b.length;c++)pr(a,b,c);return b.length-1}function pr(a,b,c,d){c=b[c];a.O(b[0]+" "+Zq(c)+(d?" "+d:c.Rk?' "'+c.Rk+'"':""))}
function nr(a,b){if(void 0!==b)or(a,b,1,a.B,!0),a.U=0;else for(var c=1;c<a.B.length;c++){var d=a.B[c];if(d.Vd){if(!Yq(a,a.B,d,!0))break;c=0}}}function qr(a,b){if(-1!==b){var c=a.Ba&-65536;(b&c)==c&&(b&=1048575)}return b}
function or(a,b,c,d,e){var f=!1;if(!a.fb++){b=qr(a,b);B(a,-2147483632)&&204==Mf(a.F,b)&&(f=!0);for(var g=1;!f&&g<d.length;g++){var h=d[g];if(!e||h.Vd){null!=h.Z&&(h.Ea=null);for(var k=qr(a,a.bc(h)),l=0;l<c;l++)if(b+l==k){var n,f=!0;h.Vd&&(Yq(a,d,h,!0),e=!0);if(n=h.kl){for(var f=!1,r=0;r<n.length;r++)if(!sr(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var q=r+1;q<n.length&&n[q].indexOf("else");q++)r++;if(q==n.length){f=!0;break}}a.F.la.Ib||(f=!0)}if(f){e||pr(a,d,g,"hit");break}}}}}a.fb--;return f}
@ -765,23 +765,23 @@ fr(a,g[1],!0);if(r)if(a.ua=r,void 0===g[2])a.O("begin assemble at "+Zq(r)),a.va=
a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+rr(a,a.B),L=L+rr(a,a.ra);(L+=rr(a,a.fa))||a.O("no breakpoints")}else if("n"==H)a.Oa=nq(a,w),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===w)a.O("missing breakpoint address");else{var W={};if("*"!=w&&(W=fr(a,w,!0,!0),!W))break a;w=null==W.Ra?w:v(W.Ra);"c"==H?null==W.Ra?(sq(a),a.O("all breakpoints cleared")):Yq(a,
a.B,W)||Yq(a,a.ra,W)||Yq(a,a.fa,W)||a.O("breakpoint missing: "+Zq(W)):"i"==H?a.O("breakpoint "+(mc(a.ga,W.Ra)?"enabled":"cleared")+": port "+w+" (input)"):"o"==H?a.O("breakpoint "+(qc(a.ga,W.Ra)?"enabled":"cleared")+": port "+w+" (output)"):null!=W.Ra&&(gr(a,W,E),"p"==H?a.Rd(a.B,W):"r"==H?a.Rd(a.ra,W):"w"==H?a.Rd(a.fa,W):a.O("unknown breakpoint command: "+H))}}}break;case "c":Dr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in Db)a.$a[bb]&&(Ba&&(Ba+=
","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Xb=Lr(a.X,!0);"console"==Ha?console.log(Xb):(Dr(a),
a.O(Xb))}else if("symbols"==ja)for(var wa=0;wa<a.N.length;wa++){var Wd=a.N[wa],Sc;for(Sc in Wd.Qd)if("."!=Sc.charAt(0)){var Xd=Wd.Qd[Sc],Je=Xd.o;if(void 0!==Je){var Yd=Xd.s;void 0===Yd&&(Yd=Wd.Z);var Ke=Wd.Qd[Sc].l;Ke&&(Sc=Ke);a.O(Pq(Je,Yd)+" "+Sc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ki=P[0];if(ki){var Ue=a.bc(fr(a,ki));if(-1===Ue)a.O("invalid address: "+ki);else{var be,Da=null;if(80386<=a.F.ja){var ce=
a.ga,Da={};Da.Ik=(Ue&-4194304)>>>20;Da.Zi=a.F.Od+Da.Ik;Da.yb=ce.sa[(Da.Zi&ce.Gb)>>>ce.La];Da.zj=Da.yb.Md(Da.Ik);Da.Jk=(Ue&4190208)>>>10;Da.$i=(Da.zj&-4096)+Da.Jk;Da.zb=ce.sa[(Da.$i&ce.Gb)>>>ce.La];Da.Aj=Da.zb.Md(Da.Jk);Da.ml=(Da.Aj&-4096)+(Ue&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+t(Ue),qd=qd+(" %%"+hr(be.Zi,be.zj)),qd=qd+(" %%"+hr(be.$i,be.Aj,!0)),
qd=qd+(" %%"+t(be.ml));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Hr(a,P);break a}for(bb in Db)if(P[1]==bb){var Bn=a.$a[bb];Bn?(P.shift(),P.shift(),Bn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Cn=ja,Dn=Ha,En="",Fn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Eb=+Cn||a.Jb,de=+Dn||10;isNaN(Eb)?Eb=de:En="more ";Eb>tc.length&&(a.O("note: only "+tc.length+" available"),Eb=tc.length);
tb-=Eb;0>tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var li=[];"call"==Dn&&(de=1E5,li=["CALL"]);for(void 0!==Cn&&a.O(Eb+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var Ve=rq(a,rd.Ra,rd.Z,rd.Ea,rd.type,rd.Rb,rd.oc),es=Eb--,Gn=tr(a,Ve,"history",es);(!li.length||0<=Gn.indexOf(li[0]))&&a.O(Gn);Ve.Ue&&(tb+=Ve.Ue,de-=Ve.Ue,Eb-=Ve.Ue);tb>=tc.length&&(tb=0);a.Jb=Eb;Fn++;de--}}Fn||(a.O("no "+En+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift();
var mi=P[0];if(mi){var We=nq(a,mi);if(void 0===We||0>We||255<We)a.O("invalid vector: "+mi);else{var Hn="&",In=!!(a.F.Za&1),Jn=!1,qg=a.F.Mc+(We<<(In?3:2)),ni=a.F.na(qg+0),fs=a.F.na(qg+2);In&&(Hn="#",a.F.na(qg+4)&2048&&(Jn=!0,ni|=a.F.na(qg+6)<<16));a.O("dumpIDT("+v(We)+"): "+Hn+t(fs,4)+":"+t(ni,Jn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=fr(a,ja);if(ee&&(null!=ee.Z||null!=ee.Ea)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=nq(a,Ha)>>>
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,gs=tg+15>>4||1;gs--&&0<tg;){var ug=0,oi=0,Xe,Ye="",pi="",ja=Zq(ee);for(Xe=16;0<Xe&&0<tg;Xe--){var vg=a.Qa(ee,1),ug=ug|vg<<(oi++<<3);oi==sg&&(Ye+=t(ug,2*sg),Ye+=1==sg?9==Xe?"-":" ":" ",ug=oi=0);pi+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ye+(0==Xe?" "+pi:"")}sd&&a.O(sd);a.sb=ee}}}}}break;case "e":if("else"==g[0])break;var wg=1,Kn=255,Ln=a.Qa,Mn=a.qc;"ew"==g[0]&&(wg=2,Kn=65535,Ln=a.na,
Mn=a.jb);var Nn=wg<<1,On=g[1];if(null==On)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=fr(a,On);if(xg)for(var yg=2;yg<g.length;yg++){var Ze=lq(a,g[yg]);if(void 0===Ze){a.O("unrecognized value: "+g[yg]);break}Ze&~Kn&&a.O("warning: "+t(Ze)+" exceeds "+wg+"-byte value");var hs=Ln.call(a,xg);a.O("changing "+Zq(xg)+" from "+t(hs,Nn,!0)+" to "+t(Ze,Nn,!0));Mn.call(a,xg,Ze,wg)}}break;case "f":Er(a,g[1]);break;case "g":a:{var Pn=
g[1],is=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Pn){var qi=fr(a,Pn,!0);if(!qi)break a;gr(a,qi,is);a.Rd(a.B,qi,!0)}a.Le(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ri;if(a.la.Ib)ri="halting",a.Wb();else{if(vb(a,!0))break a;ri="already halted"}c||a.O(ri)}break;case "i":if("if"==g[0]){var si;var $e=b.substr(2),$e=pa($e);lq(a,$e)?(c||a.O("true: "+$e),si=!0):(c||a.O("false: "+$e),si=!1);si||(d=!1);break}if("int"==g[0]){var zg;a:switch(nq(a,g[1])){case 19:ok(a,19,a.F.Ha,
!0);a.Ca=a.pa;zg=!0;break a;case 33:ok(a,33,a.F.Ha,!0);a.Ca=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=nq(a,ti);if(void 0!==ui){var js=oc(a.ga,ui,1);a.O(v(ui)+": "+u(js))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ks=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var vi=0,Qn=a.F.wa.Z,af=rq(a),
Vc=rq(a,J(a.F),a.F.ta.Z);for(a.O("stack trace for "+Zq(Vc));10>vi;){for(var uc=null,ls=256;Vc.Ra>>>0<a.F.Rg>>>0;){af.Ra=a.tb(Vc,!0);if(null==Vc.Ea||!ls--)break;af.Z=Qn;if(uc=Jr(a,af))break;af.Z=a.tb(Vc);if(uc=Jr(a,af,!0)){Qn=a.tb(Vc,!0);0<uc.indexOf("INT")&&a.tb(Vc,!0);break}}if(!uc||null==uc)break;var Rn=null;if("ks"==ks){var Sn=uc.match(/[0-9A-F]+$/);Sn&&(Rn=Gr(a,Sn[0]))}uc=oa(uc,50)+" ;"+(Rn||"stack="+Zq(Vc));a.O(uc);vi++}vi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Gr(a,
a.O(Xb))}else if("symbols"==ja)for(var wa=0;wa<a.N.length;wa++){var Xd=a.N[wa],Sc;for(Sc in Xd.Qd)if("."!=Sc.charAt(0)){var Yd=Xd.Qd[Sc],Ke=Yd.o;if(void 0!==Ke){var Zd=Yd.s;void 0===Zd&&(Zd=Xd.Z);var Le=Xd.Qd[Sc].l;Le&&(Sc=Le);a.O(Pq(Ke,Zd)+" "+Sc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ki=P[0];if(ki){var Ve=a.bc(fr(a,ki));if(-1===Ve)a.O("invalid address: "+ki);else{var ce,Da=null;if(80386<=a.F.ja){var de=
a.ga,Da={};Da.Ik=(Ve&-4194304)>>>20;Da.Zi=a.F.Od+Da.Ik;Da.yb=de.sa[(Da.Zi&de.Gb)>>>de.La];Da.zj=Da.yb.Md(Da.Ik);Da.Jk=(Ve&4190208)>>>10;Da.$i=(Da.zj&-4096)+Da.Jk;Da.zb=de.sa[(Da.$i&de.Gb)>>>de.La];Da.Aj=Da.zb.Md(Da.Jk);Da.ml=(Da.Aj&-4096)+(Ve&4095)}if(ce=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+t(Ve),qd=qd+(" %%"+hr(ce.Zi,ce.zj)),qd=qd+(" %%"+hr(ce.$i,ce.Aj,!0)),
qd=qd+(" %%"+t(ce.ml));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Hr(a,P);break a}for(bb in Db)if(P[1]==bb){var Bn=a.$a[bb];Bn?(P.shift(),P.shift(),Bn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Cn=ja,Dn=Ha,En="",Fn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Eb=+Cn||a.Jb,ee=+Dn||10;isNaN(Eb)?Eb=ee:En="more ";Eb>tc.length&&(a.O("note: only "+tc.length+" available"),Eb=tc.length);
tb-=Eb;0>tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var li=[];"call"==Dn&&(ee=1E5,li=["CALL"]);for(void 0!==Cn&&a.O(Eb+" instructions earlier:");0<ee&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var We=rq(a,rd.Ra,rd.Z,rd.Ea,rd.type,rd.Rb,rd.oc),es=Eb--,Gn=tr(a,We,"history",es);(!li.length||0<=Gn.indexOf(li[0]))&&a.O(Gn);We.Ue&&(tb+=We.Ue,ee-=We.Ue,Eb-=We.Ue);tb>=tc.length&&(tb=0);a.Jb=Eb;Fn++;ee--}}Fn||(a.O("no "+En+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift();
var mi=P[0];if(mi){var Xe=nq(a,mi);if(void 0===Xe||0>Xe||255<Xe)a.O("invalid vector: "+mi);else{var Hn="&",In=!!(a.F.Za&1),Jn=!1,qg=a.F.Mc+(Xe<<(In?3:2)),ni=a.F.na(qg+0),fs=a.F.na(qg+2);In&&(Hn="#",a.F.na(qg+4)&2048&&(Jn=!0,ni|=a.F.na(qg+6)<<16));a.O("dumpIDT("+v(Xe)+"): "+Hn+t(fs,4)+":"+t(ni,Jn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var fe=fr(a,ja);if(fe&&(null!=fe.Z||null!=fe.Ea)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=nq(a,Ha)>>>
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,gs=tg+15>>4||1;gs--&&0<tg;){var ug=0,oi=0,Ye,Ze="",pi="",ja=Zq(fe);for(Ye=16;0<Ye&&0<tg;Ye--){var vg=a.Qa(fe,1),ug=ug|vg<<(oi++<<3);oi==sg&&(Ze+=t(ug,2*sg),Ze+=1==sg?9==Ye?"-":" ":" ",ug=oi=0);pi+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ze+(0==Ye?" "+pi:"")}sd&&a.O(sd);a.sb=fe}}}}}break;case "e":if("else"==g[0])break;var wg=1,Kn=255,Ln=a.Qa,Mn=a.qc;"ew"==g[0]&&(wg=2,Kn=65535,Ln=a.na,
Mn=a.jb);var Nn=wg<<1,On=g[1];if(null==On)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=fr(a,On);if(xg)for(var yg=2;yg<g.length;yg++){var $e=lq(a,g[yg]);if(void 0===$e){a.O("unrecognized value: "+g[yg]);break}$e&~Kn&&a.O("warning: "+t($e)+" exceeds "+wg+"-byte value");var hs=Ln.call(a,xg);a.O("changing "+Zq(xg)+" from "+t(hs,Nn,!0)+" to "+t($e,Nn,!0));Mn.call(a,xg,$e,wg)}}break;case "f":Er(a,g[1]);break;case "g":a:{var Pn=
g[1],is=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Pn){var qi=fr(a,Pn,!0);if(!qi)break a;gr(a,qi,is);a.Rd(a.B,qi,!0)}a.Le(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ri;if(a.la.Ib)ri="halting",a.Wb();else{if(vb(a,!0))break a;ri="already halted"}c||a.O(ri)}break;case "i":if("if"==g[0]){var si;var af=b.substr(2),af=pa(af);lq(a,af)?(c||a.O("true: "+af),si=!0):(c||a.O("false: "+af),si=!1);si||(d=!1);break}if("int"==g[0]){var zg;a:switch(nq(a,g[1])){case 19:ok(a,19,a.F.Ha,
!0);a.Ca=a.pa;zg=!0;break a;case 33:ok(a,33,a.F.Ha,!0);a.Ca=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=nq(a,ti);if(void 0!==ui){var js=oc(a.ga,ui,1);a.O(v(ui)+": "+u(js))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ks=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var vi=0,Qn=a.F.wa.Z,bf=rq(a),
Vc=rq(a,J(a.F),a.F.ta.Z);for(a.O("stack trace for "+Zq(Vc));10>vi;){for(var uc=null,ls=256;Vc.Ra>>>0<a.F.Rg>>>0;){bf.Ra=a.tb(Vc,!0);if(null==Vc.Ea||!ls--)break;bf.Z=Qn;if(uc=Jr(a,bf))break;bf.Z=a.tb(Vc);if(uc=Jr(a,bf,!0)){Qn=a.tb(Vc,!0);0<uc.indexOf("INT")&&a.tb(Vc,!0);break}}if(!uc||null==uc)break;var Rn=null;if("ks"==ks){var Sn=uc.match(/[0-9A-F]+$/);Sn&&(Rn=Gr(a,Sn[0]))}uc=oa(uc,50)+" ;"+(Rn||"stack="+Zq(Vc));a.O(uc);vi++}vi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Gr(a,
g[1],!0);break}Hr(a,g);break;case "m":if("mouse"==g[0]){var wi=g[1],Ag=g[2];if(a.V){var Tn=1;"-"==Ag.charAt(0)&&(Tn=-1,Ag=Ag.substr(1));var td=nq(a,Ag,wi);if(void 0!==td)switch(td=td*Tn|0,wi){case "x":a.V.Jf(td,0);break;case "y":a.V.Jf(0,td);break;case "click":a.V.he(td,!0);a.V.he(td,!1);break;default:a.O("unknown action: "+wi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==
Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&(Oa="keyboard");for(vc in Db)if(Oa==vc){ud=Db[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var ms=0,Wc="";for(vc in Db)if(!Oa||Oa==vc){var ns=!!(a.wc&Db[vc]);if(null===wc||wc==ns)Wc&&(Wc+=","),++ms%10||(Wc+="\n\t"),"key"==vc&&(vc="keys"),Wc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Wc||"none"));tq(a)}break;case "o":var xi=g[1],os=g[2];if(xi&&"?"!=xi){var yi=nq(a,xi,"port #"),zi=nq(a,os);void 0!==yi&&void 0!==zi&&(sc(a.ga,yi,1,zi),a.O(v(yi)+": "+u(zi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Ir(a,b.substr(5));break}var Un="pr"==g[0]?1:0,fe=1+Un;if(a.U)a.O("step in progress");else{var Bg,
Vn=!1,lb=rq(a,M(a.F),a.F.wa.Z);do switch(Bg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:ar(a,lb,1);Bg=!0;break;case 204:case 206:a.U=fe;ar(a,lb,1);break;case 205:case 224:case 225:case 226:a.U=fe;ar(a,lb,lb.Rb?4:2);break;case 232:a.U=fe;ar(a,lb,lb.Rb?5:3);break;case 154:a.U=fe;ar(a,lb,lb.Rb?7:5);break;case 255:var Wn=a.tb(lb)&14591;if(4351==Wn||6399==Wn)a.U=fe,tr(a,lb);break;case 243:case 242:ar(a,lb,1);Vn=Bg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Vn&&
(a.U=fe,ar(a,lb,1))}while(Bg);a.U?(a.Rd(a.B,lb,!0),a.Le()||(a.X&&a.X.wd(),a.U=0)):Kr(a,Un?"tr":"t")}break;case "r":if("reset"==b){a.X&&a.X.reset();break}lr(a,g);break;case "t":Kr(a,g[0],g[1]);break;case "u":mr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Fr(a,b.substr(3))||(d=!1);break}a.O("PCx86 version 1.30.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(zb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(Ca());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var bf;void 0!==g[3]&&(bf=+g[3]);switch(g[2]){case "int":a.F.Y.kf=
bf;break;case "start":a.F.Y.Lf=bf;break;case "stop":a.F.Y.mf=bf;break;default:a.O("unknown cs option");break a}void 0!==bf&&Xc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ad(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Wd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Ir(a,b.substr(1));break}var cf="commands:",Ai;for(Ai in yq)cf+="\n"+oa(Ai,7)+yq[Ai];Xf(a)||(cf+="\nnote: frequency/history disabled if no exec breakpoints");a.O(cf);break;default:a.O("unknown command: "+b),d=!1}}}catch(Xn){a.O("debugger error: "+(Xn.stack||Xn.message)),d=!1}return d}function vq(a,b,c){b=a.Mg(b,c);for(var d in b)if(!sr(a,b[+d]))return!1;return!0}
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Wc||"none"));tq(a)}break;case "o":var xi=g[1],os=g[2];if(xi&&"?"!=xi){var yi=nq(a,xi,"port #"),zi=nq(a,os);void 0!==yi&&void 0!==zi&&(sc(a.ga,yi,1,zi),a.O(v(yi)+": "+u(zi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Ir(a,b.substr(5));break}var Un="pr"==g[0]?1:0,ge=1+Un;if(a.U)a.O("step in progress");else{var Bg,
Vn=!1,lb=rq(a,M(a.F),a.F.wa.Z);do switch(Bg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:ar(a,lb,1);Bg=!0;break;case 204:case 206:a.U=ge;ar(a,lb,1);break;case 205:case 224:case 225:case 226:a.U=ge;ar(a,lb,lb.Rb?4:2);break;case 232:a.U=ge;ar(a,lb,lb.Rb?5:3);break;case 154:a.U=ge;ar(a,lb,lb.Rb?7:5);break;case 255:var Wn=a.tb(lb)&14591;if(4351==Wn||6399==Wn)a.U=ge,tr(a,lb);break;case 243:case 242:ar(a,lb,1);Vn=Bg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Vn&&
(a.U=ge,ar(a,lb,1))}while(Bg);a.U?(a.Rd(a.B,lb,!0),a.Le()||(a.X&&a.X.wd(),a.U=0)):Kr(a,Un?"tr":"t")}break;case "r":if("reset"==b){a.X&&a.X.reset();break}lr(a,g);break;case "t":Kr(a,g[0],g[1]);break;case "u":mr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Fr(a,b.substr(3))||(d=!1);break}a.O("PCx86 version 1.30.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(zb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(Ca());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var cf;void 0!==g[3]&&(cf=+g[3]);switch(g[2]){case "int":a.F.Y.kf=
cf;break;case "start":a.F.Y.Lf=cf;break;case "stop":a.F.Y.mf=cf;break;default:a.O("unknown cs option");break a}void 0!==cf&&Xc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ad(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Wd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Ir(a,b.substr(1));break}var df="commands:",Ai;for(Ai in yq)df+="\n"+oa(Ai,7)+yq[Ai];Xf(a)||(df+="\nnote: frequency/history disabled if no exec breakpoints");a.O(df);break;default:a.O("unknown command: "+b),d=!1}}}catch(Xn){a.O("debugger error: "+(Xn.stack||Xn.message)),d=!1}return d}function vq(a,b,c){b=a.Mg(b,c);for(var d in b)if(!sr(a,b[+d]))return!1;return!0}
Ua(function(){for(var a=rb(document,"pcx86","debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new qq(d);qb(d,c)}});
function Mr(a,b,c){Za.call(this,"Computer",a,Mr,67108864);this.la.hc=!1;Nr(this,b);this.fa=Tc(this,"autoPower",a);this.N=0;this.ra=a.busWidth||a.buswidth;this.A=Or;this.aa=null;this.V=this.pa=!1;this.ua=Tc(this,"url")||"";this.ya=(Math.random()+.1).toString(36).substr(2,12);this.B=Pr(this);if(this.F=nb("CPU",this.id)){this.ha=nb("Debugger",this.id);this.L=[];for(b=null;b=Jb(this,"Video",b);)this.L.push(b);this.ga=new Qb({id:this.ce+".bus",busWidth:this.ra},this.F,this.ha);var d,e=kb(this.id);if((this.C=
nb("Panel",this.id))&&this.C.Ff)for(b=0;b<e.length;b++)d=e[b],d.Na=this.C.Na,d.O=this.C.O,d.Ff=this.C.Ff;this.O("PCx86 v1.30.0\nCopyright \u00a9 2012-2016 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.Ic&&d.Ic(this,this.ga,this.F,this.ha);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.W=d:this.A=parseInt(d,10));var f;if(a=Tc(this,"state")||(f=!0,a.state))b=this.ia=a,f||(this.V=!0,this.A=Or),this.A&&(this.ea=new mf(this,
@ -804,7 +804,7 @@ function Zr(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=as(a,"1.30.0");d.d
function Jb(a,b,c){a=kb(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.wd=function(a){if(this.L.length){var b=0,c=0;a&&window&&(b=window.scrollX,c=window.scrollY);var d=this.L[0];d.X&&d.X.focus();a&&window&&window.scrollTo(b,c)}};m.pd=function(a){this.F&&this.F.pd(a);this.C&&this.C.pd(a)};
function gd(a,b){for(var c=0;c<a.L.length;c++)un(a.L[c],b);if(a.C&&(c=a.C,c.Ja)){Nb(c,18,c.aa,c.Ga);if(c.gb){var d=c.ga,e=c.A,f,g;null==f&&(f=0);null==g&&(g=d.W-f|0);null==e&&(e={hh:0,Td:0,Xg:[]});var h=f>>>d.La;f=f+g-1>>>d.La;e.hh=0;for(e.Td=0;h<=f;)g=d.sa[h],e.hh+=g.size,g.size&&(e.Xg.push(va(Mb,h,0,0,g.type)),e.Td++),h++;c.A=e;c.ya=c.A.Td*c.ga.Sb/691200;d=0;c.A.ej=0;c.A.Bf||(c.A.Bf=[]);var e=-1,h=0,k=-1;for(f=0;f<c.A.Td;f++){var l=c.A.Xg[f];g=xa(Mb.type,l);l=xa(Mb.Gk,l);if(g!=e||l!=k+1)(k=f-h)&&
(d+=Pb(c,h,k,e)),e=g,h=f;k=l}d+=Pb(c,h,f-h,e);e=c.A.tl!=d;c.A.tl=d;if(e){e=new Hb(0,0,c.aa.width,c.aa.height);c.A.Qe=[];h=c.A.Td;for(d=0;d<c.A.ej;d++)f=c.A.Bf[d].Td,c.A.Qe.push(Ib(e,f,h,!d)),h-=f;for(d=0;d<c.A.Qe.length;d++)e=c.A.Bf[d],h=f=c.A.Qe[d],g=c.Ga,(k=Cc[e.type])||(k=new Gb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.ad,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.ad,h.A),h=c,g=f,h.fa=h.ua,h.W=h.va,f=g.x+(g.ad>>1),k=g.y+(g.A>>1),l=g.A,g.ad<g.A&&(l=g.ad,h.ra=!0,
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.W&&(h.W=l,h.fa=h.W+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=ac[e.type]+" ("+(e.Td*c.ga.Sb/1024|0)+"Kb)",h.N.font=h.fa,h.C-=h.N.measureText(e).width>>1,h.U+=(h.W>>1)-2,Ob(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Ob(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
h.N.save(),h.N.translate(f,k),h.N.rotate(-Math.PI/2),f=k=0),l<h.W&&(h.W=l,h.fa=h.W+"px Monaco, Lucida Console, Courier New"),g=k,h.C=f,h.U=g,h=c,e=Wb[e.type]+" ("+(e.Td*c.ga.Sb/1024|0)+"Kb)",h.N.font=h.fa,h.C-=h.N.measureText(e).width>>1,h.U+=(h.W>>1)-2,Ob(h,e),h.ra&&(h.N.restore(),h.ra=!1)}}else Ob(c,"This space intentionally left blank");c.context.drawImage(c.aa,0,0,c.aa.width,c.aa.height,c.sb,c.Jb,c.$a,c.fb);c.Ja=!1}}
Ua(function(){for(var a=rb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=ob(c),c=rb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=ob(f),g=new Mr(g,d,!0);qb(g,f);g.fa&&Rr(g,g.bg)}});Pa.show.push(function(){for(var a=rb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.va&&!c.la.hc&&c.bg(-1)}});
Pa.exit.push(function(){for(var a=rb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=ob(a[b]);(c=nb("Computer",c.id))&&c.la.hc&&Lr(c,!(!c.A||c.W),!0)}});function mf(a,b,c){this.id=a.id;this.key=as(a,b,c);this.ha=a.ha;Wr(this,a.Nk)}function as(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}
mf.prototype={constructor:mf,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Ga()&&(a=Ia(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Wr(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)==

View file

@ -33,18 +33,18 @@ function qb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,f=null.ge
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;
a.Fa=a.oc=this.Fa;eb(this)}Ua(vb);var rb,xb={Bj:20,count:8,hn:1,type:3},yb=0,Ab;for(Ab in xb){var Bb=xb[Ab];xb[Ab]={rg:(1<<Bb)-1<<yb,shift:yb};yb+=Bb}rb=xb;l=vb.prototype;l.reset=function(){Cb(this,!0)};l.Ub=function(a,b){b||this.reset();return!0};
function Db(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.da;0<g&&h<a.R.length;){var k=a.R[h],m=h*a.xb,p=a.xb-(f-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.he)return k.Ge+=k.he-f,k.he=f,!0;if(f>=k.he+k.Ge){p=k.size-(f-m);p>g&&(p=g);k.Ge=f-k.he+p;f=m+a.xb;g-=p;h++;continue}}return Eb(a,1,f,g)}f=new u(f,p,a.xb,d,e);wb(f,a.Ia,k);a.R[h++]=f;f=m+a.xb;g-=p}return 0>=g?(e=a.A,e.Pa&-2147483648&&Fb(e),a.A.ea.Nb||a.status(Math.floor(c/1024)+"Kb "+Gb[d]+" at "+fa(b)),!0):Eb(a,2,b,c)}
function Cb(a,b){if(32==a.D)b?a.G&&(Hb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Ib(a,1048576,1048576),Hb(a,1048576,1048576,Ib(a,0,1048576)));else if(20<a.D){var c=a.Fa&-1048577|(b?1048576:0);if(c!=a.Fa&&(a.Fa=c,a.A)){var d=a.A;d.Fa=d.oc=c}}}l.Zf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.da;0<b;){var f=this.R[e];if(!f.controller)return Eb(this,3,a,b,d);Jb(f,c,!0);b-=this.xb;e++}return!0}return Eb(this,4,a,b)};
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];b=new u(b);wb(b,a.Ia,e);a.R[d++]=b;b=d*a.xb;c-=a.xb}a=a.A;a.Pa&-2147483648&&Fb(a);return!0}return Eb(a,5,b,c)}function Ib(a,b,c){var d=[];for(b>>>=a.da;0<c&&b<a.R.length;)d.push(a.R[b++]),c-=a.xb;return d}
a.Fa=a.oc=this.Fa;eb(this)}Ua(vb);vb.prototype.reset=function(){xb(this,!0)};vb.prototype.Ub=function(a,b){b||this.reset();return!0};
function yb(a,b,c,d,e){for(var f=b,g=c,h=f>>>a.da;0<g&&h<a.R.length;){var k=a.R[h],m=h*a.xb,p=a.xb-(f-m);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==e){if(f+g<=k.he)return k.Ge+=k.he-f,k.he=f,!0;if(f>=k.he+k.Ge){p=k.size-(f-m);p>g&&(p=g);k.Ge=f-k.he+p;f=m+a.xb;g-=p;h++;continue}}return Ab(a,1,f,g)}f=new u(f,p,a.xb,d,e);wb(f,a.Ia,k);a.R[h++]=f;f=m+a.xb;g-=p}return 0>=g?(e=a.A,e.Pa&-2147483648&&Bb(e),a.A.ea.Nb||a.status(Math.floor(c/1024)+"Kb "+Cb[d]+" at "+fa(b)),!0):Ab(a,2,b,c)}
var rb,Db={Bj:20,count:8,hn:1,type:3},Eb=0,Fb;for(Fb in Db){var Gb=Db[Fb];Db[Fb]={rg:(1<<Gb)-1<<Eb,shift:Eb};Eb+=Gb}rb=Db;function xb(a,b){if(32==a.D)b?a.G&&(Hb(a,1048576,1048576,a.G),a.G=null):a.G||(a.G=Ib(a,1048576,1048576),Hb(a,1048576,1048576,Ib(a,0,1048576)));else if(20<a.D){var c=a.Fa&-1048577|(b?1048576:0);if(c!=a.Fa&&(a.Fa=c,a.A)){var d=a.A;d.Fa=d.oc=c}}}l=vb.prototype;
l.Zf=function(a,b,c,d){if(!(a&this.B||!b||b&this.B)){for(var e=a>>>this.da;0<b;){var f=this.R[e];if(!f.controller)return Ab(this,3,a,b,d);Jb(f,c,!0);b-=this.xb;e++}return!0}return Ab(this,4,a,b)};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];b=new u(b);wb(b,a.Ia,e);a.R[d++]=b;b=d*a.xb;c-=a.xb}a=a.A;a.Pa&-2147483648&&Bb(a);return!0}return Ab(a,5,b,c)}function Ib(a,b,c){var d=[];for(b>>>=a.da;0<c&&b<a.R.length;)d.push(a.R[b++]),c-=a.xb;return 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 "+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 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 Ab(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}
0;Jb(this,Pb)}else Jb(this)}var Zb=0,Lb=2,ac=["black","blue","green","cyan"],Cb="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}
u.prototype={constructor:u,parent:null,xl:function(a){this.he=a},save:function(){var a,b;if(this.controller)a=null;else if(hb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.S.getInt32(b<<2,!0);else a=this.V;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(hb)for(b=0;b<a.length;b++)this.S.setInt32(b<<2,a[b],!0);else this.V=a;return this.Ha=!0}return!1},da:function(){return 255},ia:function(){},ha:function(a,b){return this.Wb(a++,b++)|this.Wb(a,
b)<<8},Y:function(a,b){return this.Wb(a++,b++)|this.Wb(a++,b++)<<8|this.Wb(a++,b++)<<16|this.Wb(a,b)<<24},ba:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a,b>>8,c)},la:function(a,b,c){this.Yb(a++,b&255,c++);this.Yb(a++,b>>8&255,c++);this.Yb(a++,b>>16&255,c++);this.Yb(a,b>>>24,c)},va:function(a){return this.V[a>>2]>>>((a&3)<<3)&255},fb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b]>>a;return 24>a?c&65535:c&255|(this.V[b+1]&255)<<8},Ga:function(a){var b=a>>2;a=(a&3)<<3;var c=this.V[b];a&&(c=c>>>
a|this.V[b+1]<<32-a);return c},Bb:function(a,b){var c=a>>2,d=(a&3)<<3;this.V[c]=this.V[c]&~(255<<d)|b<<d;this.Ha=!0},xc:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.V[c]=this.V[c]&~(65535<<d)|b<<d:(this.V[c]=this.V[c]&16777215|b<<24,c++,this.V[c]=this.V[c]&-256|b>>8);this.Ha=!0},fc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.V[c]=this.V[c]&~e|b<<d;c++;this.V[c]=this.V[c]&e|b>>>32-d}else this.V[c]=b;this.Ha=!0},ua:function(a,b){this.A&&cc(this.A,b,1,!1);return this.Ed(a,b)},Xa:function(a,
@ -53,10 +53,10 @@ La:function(a,b){this.B.V[this.D]|=this.K;this.C.V[this.G]|=this.K;return this.L
b,c){dc(this.A,c,!0).Yb(a,b,c)},Gc:function(a,b,c){dc(this.A,c,!0).Ie(a,b,c)},oc:function(a,b,c){dc(this.A,c,!0).He(a,b,c)},ra:function(a){return this.Ka[a]},W:function(a){return this.Ka[a]},xa:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Wb=this.W;return this.Ka[a]},Ta:function(a){return this.S.getUint16(a,!0)},ka:function(a){return a&1?this.Ka[a]|this.Ka[a+1]<<8:this.td[a>>1]},pb:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Ae=this.ka;return a&1?this.Ka[a]|this.Ka[a+
1]<<8:this.td[a>>1]},Ea:function(a){return this.S.getInt32(a,!0)},Z:function(a){return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},Ja:function(a){this.B.V[this.D]|=32;this.C.V[this.G]|=32;this.Fd=this.Z;return a&3?this.Ka[a]|this.Ka[a+1]<<8|this.Ka[a+2]<<16|this.Ka[a+3]<<24:this.V[a>>2]},ub:function(a,b){this.Ka[a]=b;this.Ha=!0},ma:function(a,b){this.Ka[a]=b;this.Ha=!0},Cb:function(a,b){this.Ka[a]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Yb=this.ma;this.L.Ha=
!0},vc:function(a,b){this.S.setUint16(a,b,!0);this.Ha=!0},qa:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.td[a>>1]=b;this.Ha=!0},yc:function(a,b){a&1?(this.Ka[a]=b,this.Ka[a+1]=b>>8):this.td[a>>1]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.Ie=this.qa;this.L.Ha=!0},Ob:function(a,b){this.S.setInt32(a,b,!0);this.Ha=!0},pa:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.Ha=!0},ic:function(a,b){a&3?(this.Ka[a]=b,this.Ka[a+1]=
b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.He=this.pa;this.L.Ha=!0}};function wb(a,b,c){a.Ia=b;a.ie=a.je=0;c&&(c.A&&(a.A=c.A),(a.ie=c.ie)&&ec(a,fc,!1),(a.je=c.je)&&gc(a,fc,!1))}function gc(a,b,c){c&&a.je||(a.Yb=!a.I&&b[3]||a.ia,a.Ie=!a.I&&b[4]||a.ba,a.He=!a.I&&b[5]||a.la);if(c||void 0===c)a.of=b[3]||a.ia,a.uh=b[4]||a.ba,a.oa=b[5]||a.la}
function ec(a,b,c){c&&a.ie||(a.Wb=b[0]||a.da,a.Ae=b[1]||a.ha,a.Fd=b[2]||a.Y);if(c||void 0===c)a.Ed=b[0]||a.da,a.jf=b[1]||a.ha,a.nh=b[2]||a.Y}function Jb(a,b,c){b||(b=5==a.type?hc:6==a.type?ic:jc);ec(a,b,c);gc(a,b,c)}
var jc=[],Pb=[u.prototype.va,u.prototype.fb,u.prototype.Ga,u.prototype.Bb,u.prototype.xc,u.prototype.fc],fc=[u.prototype.ua,u.prototype.Xa,u.prototype.Fa,u.prototype.Ab,u.prototype.wc,u.prototype.Zb],ic=[u.prototype.za,u.prototype.qb,u.prototype.La,u.prototype.Gb,u.prototype.zc,u.prototype.mc],hc=[u.prototype.Da,u.prototype.rb,u.prototype.Oa,u.prototype.Hb,u.prototype.Gc,u.prototype.oc];
if(hb)var Ob=[u.prototype.ra,u.prototype.Ta,u.prototype.Ea,u.prototype.ub,u.prototype.vc,u.prototype.Ob],Nb=[u.prototype.W,u.prototype.ka,u.prototype.Z,u.prototype.ma,u.prototype.qa,u.prototype.pa],kc=[u.prototype.xa,u.prototype.pb,u.prototype.Ja,u.prototype.Cb,u.prototype.yc,u.prototype.ic];
b>>8,this.Ka[a+2]=b>>16,this.Ka[a+3]=b>>24):this.V[a>>2]=b;this.B.V[this.D]|=32;this.C.V[this.G]|=96;this.He=this.pa;this.L.Ha=!0}};function wb(a,b,c){a.Ia=b;a.ie=a.je=0;c&&(c.A&&(a.A=c.A),(a.ie=c.ie)&&ec(a,fc,!1),(a.je=c.je)&&gc(a,fc,!1))}function gc(a,b,c){c&&a.je||(a.Yb=!a.I&&b[1]||a.ia,a.Ie=!a.I&&b[3]||a.ba,a.He=!a.I&&b[5]||a.la);if(c||void 0===c)a.of=b[1]||a.ia,a.uh=b[3]||a.ba,a.oa=b[5]||a.la}
function ec(a,b,c){c&&a.ie||(a.Wb=b[0]||a.da,a.Ae=b[2]||a.ha,a.Fd=b[4]||a.Y);if(c||void 0===c)a.Ed=b[0]||a.da,a.jf=b[2]||a.ha,a.nh=b[4]||a.Y}function Jb(a,b,c){b||(b=5==a.type?hc:6==a.type?ic:jc);ec(a,b,c);gc(a,b,c)}
var jc=[],Pb=[u.prototype.va,u.prototype.Bb,u.prototype.fb,u.prototype.xc,u.prototype.Ga,u.prototype.fc],fc=[u.prototype.ua,u.prototype.Ab,u.prototype.Xa,u.prototype.wc,u.prototype.Fa,u.prototype.Zb],ic=[u.prototype.za,u.prototype.Gb,u.prototype.qb,u.prototype.zc,u.prototype.La,u.prototype.mc],hc=[u.prototype.Da,u.prototype.Hb,u.prototype.rb,u.prototype.Gc,u.prototype.Oa,u.prototype.oc];
if(hb)var Ob=[u.prototype.ra,u.prototype.ub,u.prototype.Ta,u.prototype.vc,u.prototype.Ea,u.prototype.Ob],Nb=[u.prototype.W,u.prototype.ma,u.prototype.ka,u.prototype.qa,u.prototype.Z,u.prototype.pa],kc=[u.prototype.xa,u.prototype.Cb,u.prototype.pb,u.prototype.yc,u.prototype.Ja,u.prototype.ic];
function lc(a,b){Ma.call(this,"CPU",a,lc);var c=a.cycles||b,d=a.multiplier||1;this.T={};this.T.Yc=c;this.T.Bd=d;this.T.If=Math.round(this.T.Yc/1E4)/100;this.T.ve=this.T.If*this.T.Bd;this.ea.Nb=!1;this.ea.Nj=!1;this.ea.Le=a.autoStart;this.ea.mi=!1;this.ea.Cf=!1;this.T.Kf=this.T.we=0;this.T.Lf=a.csStart;this.T.Re=a.csInterval;this.T.Se=a.csStop;this.Zj=this.rh.bind(this);eb(this)}Ua(lc);var mc=["power","reset"];l=lc.prototype;
l.pc=function(a,b,c,d){this.ba=a;this.ia=b;this.Ia=d;for(b=0;b<mc.length;b++)(c=this.la[mc[b]])&&this.ba.zb(null,mc[b],c);this.od=ob(a,"FPU");this.S=ob(a,"ChipSet");a=nc(a,"autoStart");null!=a&&(this.ea.Le="true"==a?!0:"false"==a?!1:!!a);eb(this)};l.reset=function(){};l.save=function(){return null};l.restore=function(){return!1};l.Ub=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();this.rc("No debugger detected")}qc(this);return!0};
l.Tb=function(a){return a?this.save():!0};l.Le=function(){return this.ea.Le||void 0===this.la.run?(this.rh(!0),!0):!1};l.si=function(){return 0};function pc(a){void 0===a.T.Lf&&(a.T.Lf=0);void 0===a.T.Re&&(a.T.Re=-1);void 0===a.T.Se&&(a.T.Se=-1);a.ea.Cf=0<=a.T.Lf&&0<a.T.Re;a.ea.Cf&&(a.T.Kf=0,a.T.we=a.T.Lf-a.ad)}
@ -77,36 +77,36 @@ b>=e.ub&&b<e.wc&&(h=0);if(6144<=h)null!=d?z=0:!1!==t?(h&1024?J<=a.sb&&(z=0):E<=a
z&&(p=a.sb,W=b==e.Ab+c,E<=J&&(!W||0<=e.fc||p<=J))){b=k&65535;h&2048&&(f=x|m<<16);m=h=0;d=b&3;if(d<p){if(-1===a.Hf(b,!0))return-1;m=e.ha.ya;e.ha.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.ga(m+c+k);if(!h)return v.call(e,10,h),-1;if(-1===e.P.Hf(h,!0))return-1;m=2==k?e.ga(m+c):e.fa(m+c)}c=e.X;e.X&=~da;c&131072&&Ic(e,!0,!1);if(-1===a.Hf(b,!1))return-1;Jc(e,z);a.gf=f;if(d<p){if(!0!==t)return-1;z=A(e);f=0;for(g&=31;g--;)a.H[f++]=Kc(e,e.P,z),z+=2;t=e.P.ja;g=A(e);Gc(e,h,!0);y(e,m);c&131072&&(Jc(e,4),
Lc(e,e.Xa.ja,4,2),e.Xa.load(0),Lc(e,e.Ta.ja,4,2),e.Ta.load(0),Lc(e,e.xa.ja,4,2),Mc(e,0),Lc(e,e.pa.ja,4,2),Nc(e,0));Lc(e,t,e.U,2);for(B(e,g);f;)B(e,a.H[--f]);a.re=!0}return a.ya}if(0!=z)return v.call(e,13,c&65532|(W?2:0)),-1;if(!(g&32768))return v.call(e,11,c&65532|(W?2:0)),-1;break;case 2:if(p){if(4096>h||2048==(h&2560))return v.call(e,13,c&65532),-1;if(!(g&32768))return v.call(e,11,c&65532),-1}break;case 3:if(!p||4096>h||512!=(h&2560))return v.call(e,13,c&65532),-1;if(!(g&32768))return v.call(e,
12,c&65532),-1;break;case 4:t=h&-513;if(!p||256!=t&&2304!=t)return v.call(e,13,c&65532),-1;2304==t&&(a.di=k+e.ga(k+100+2)|0,a.$j=k+a.Za|0);break;case 6:if(!(h&4096)&&768<h&&2304!=h&&2816!=h)return-1}d?(a.B.ja=c,a.B.ya=k,a.B.Za=f,a.B.lb=g,a.B.type=h,a.B.ext=m,a.B.hc=b):(a.ja=c,a.ya=k,a.Za=f,a.C=(f>>>0)+1,a.lb=g,a.type=h,a.ext=m,a.hc=b,Cc(a,!0,!0,!1));return k}
function Hc(a,b,c){var d=a.A,e=a.sb,f=d.ha.ja,g=d.ha.ya;if(!c){if(!(d.ha.type&512))return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb&=-513)}if(-1===d.ha.load(b))return!1;var h=d.ha.ya;if(!1!==c){if(d.ha.type&512)return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb|=512)}d.ha.type=d.ha.type&-513|d.ha.lb&512;256==d.ha.type||768==d.ha.type?(d.bb(g+14,C(d)),d.bb(g+16,Pc(d)),d.bb(g+18,d.J),d.bb(g+20,d.G),d.bb(g+22,d.M),d.bb(g+24,d.D),d.bb(g+26,A(d)),d.bb(g+28,d.K),d.bb(g+30,d.I),d.bb(g+32,d.H),d.bb(g+
34,d.pa.ja),d.bb(g+36,d.Ca.ja),d.bb(g+38,d.P.ja),d.bb(g+40,d.xa.ja),d.Zb.load(d.ga(h+42)),Qc(d,d.ga(h+16)|(c?16384:0)),d.J=d.ga(h+18),d.G=d.ga(h+20),d.M=d.ga(h+22),d.D=d.ga(h+24),d.K=d.ga(h+28),d.I=d.ga(h+30),d.H=d.ga(h+32),d.pa.load(d.ga(h+34)),d.xa.load(d.ga(h+40)),Rc(d,d.ga(h+14),d.ga(h+36)),b=38,g=26,a.sb<e&&(g=(a.sb<<2)+2,b=g+2),Gc(d,d.ga(h+b),!0),y(d,d.ga(h+g))):(d.Va(g+28,d.bd),d.Va(g+32,C(d)),d.Va(g+36,Pc(d)),d.Va(g+40,d.J),d.Va(g+44,d.G),d.Va(g+48,d.M),d.Va(g+52,d.D),d.Va(g+56,A(d)),d.Va(g+
function Hc(a,b,c){var d=a.A,e=a.sb,f=d.ha.ja,g=d.ha.ya;if(!c){if(!(d.ha.type&512))return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb&=-513)}if(-1===d.ha.load(b))return!1;var h=d.ha.ya;if(!1!==c){if(d.ha.type&512)return v.call(d,13,b&65532),!1;d.bb(d.ha.hc+4,d.ha.lb|=512)}d.ha.type=d.ha.type&-513|d.ha.lb&512;256==d.ha.type||768==d.ha.type?(d.bb(g+14,C(d)),d.bb(g+16,Oc(d)),d.bb(g+18,d.J),d.bb(g+20,d.G),d.bb(g+22,d.M),d.bb(g+24,d.D),d.bb(g+26,A(d)),d.bb(g+28,d.K),d.bb(g+30,d.I),d.bb(g+32,d.H),d.bb(g+
34,d.pa.ja),d.bb(g+36,d.Ca.ja),d.bb(g+38,d.P.ja),d.bb(g+40,d.xa.ja),d.Zb.load(d.ga(h+42)),Qc(d,d.ga(h+16)|(c?16384:0)),d.J=d.ga(h+18),d.G=d.ga(h+20),d.M=d.ga(h+22),d.D=d.ga(h+24),d.K=d.ga(h+28),d.I=d.ga(h+30),d.H=d.ga(h+32),d.pa.load(d.ga(h+34)),d.xa.load(d.ga(h+40)),Rc(d,d.ga(h+14),d.ga(h+36)),b=38,g=26,a.sb<e&&(g=(a.sb<<2)+2,b=g+2),Gc(d,d.ga(h+b),!0),y(d,d.ga(h+g))):(d.Va(g+28,d.bd),d.Va(g+32,C(d)),d.Va(g+36,Oc(d)),d.Va(g+40,d.J),d.Va(g+44,d.G),d.Va(g+48,d.M),d.Va(g+52,d.D),d.Va(g+56,A(d)),d.Va(g+
60,d.K),d.Va(g+64,d.I),d.Va(g+68,d.H),d.Va(g+72,d.pa.ja),d.Va(g+76,d.Ca.ja),d.Va(g+80,d.P.ja),d.Va(g+84,d.xa.ja),d.Va(g+88,d.Ta.ja),d.Va(g+92,d.Xa.ja),Sc.call(d,d.fa(h+28)),d.Zb.load(d.ga(h+96)),Qc(d,d.fa(h+36)|(c?16384:0)),d.J=d.fa(h+40),d.G=d.fa(h+44),d.M=d.fa(h+48),d.D=d.fa(h+52),d.K=d.fa(h+60),d.I=d.fa(h+64),d.H=d.fa(h+68),d.pa.load(d.ga(h+72)),d.xa.load(d.ga(h+84)),d.Ta.load(d.ga(h+88)),d.Xa.load(d.ga(h+92)),Rc(d,d.fa(h+32),d.ga(h+76)),b=80,g=56,a.sb<e&&(g=(a.sb<<3)+4,b=g+4),Gc(d,d.ga(h+b),!0),
y(d,d.fa(h+g)));c&&d.bb(h+0,f);d.Pa|=8;return!0}l.save=function(){return[this.ja,this.ya,this.Za,this.lb,this.id,this.Yf,this.sb,this.nc,this.hc,this.Nc,this.sa,this.U,this.N,this.type,this.C]};l.restore=function(a){"number"==typeof a?this.load(a):(this.ja=a[0],this.ya=a[1],this.Za=a[2],this.lb=a[3],this.id=a[4],this.Yf=a[5],this.sb=a[6],this.nc=a[7],this.hc=a[8],this.Nc=a[9]||2,this.sa=a[10]||65535,this.U=a[11]||2,this.N=a[12]||65535,this.type=a[13]||this.lb&7936,this.C=a[14]||(this.Za>>>0)+1)};
function Cc(a,b,c,d){void 0===c&&(c=!!(a.A.Pa&1));a.xd=!1;if(c)if(a.load=a.Hf,a.wi=a.Cl,a.Qb=a.ii,a.Rb=a.ki,void 0===d&&(d=!!(a.A.X&131072)),d)a.load=a.L,a.Qb=a.I,a.Rb=a.K,a.sb=a.nc=3,a.U=a.Nc=2,a.N=a.sa=65535,a.Za=65535,a.C=a.Za+1,a.Nc=a.U,a.hc=-1,a.re=!1;else{if(!(a.ja&-4))a.Qb=a.Af,a.Rb=a.Bf;else if(a.type&4096){6144==(a.type&6656)&&(a.Qb=a.Af);if(a.type&2048||!(a.type&512))a.Rb=a.Bf;1024==(a.type&3072)&&(a.Qb==a.ii&&(a.Qb=a.ck),a.Rb==a.ki&&(a.Rb=a.dk),a.xd=!0);b&&6>a.id&&a.ja&-4&&-1!==a.hc&&(c=
a.hc+5,d=a.A.Jb(c),d&1||a.A.Mc(c,d|1))}b&&(a.sb=a.ja&3,a.nc=(a.lb&24576)>>13,80386>a.A.ca||!(a.ext&64)?(a.U=2,a.N=65535):(a.U=4,a.N=-1),a.Nc=a.U,a.sa=a.N)}else a.load=a.xi,a.wi=a.Dl,a.Qb=a.ji,a.Rb=a.li,a.sb=a.nc=0,a.hc=-1,a.re=!1}
function Tc(a){this.ca=+a.model||8088;var b=a.stepping;this.nd=this.ca+(b?ea(b,16):0);b=0;switch(this.ca){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}lc.call(this,a,b);this.Ih=61442;this.md=1792;this.Gh=28672;this.ce=4;this.Da=255;this.B=80286<=this.ca?jb:ib;this.ma=Uc;this.Nh=Vc;this.Ph=Wc;this.Rh=Xc;if(80186<=this.ca&&(this.ma=Uc.slice(),this.Nh=Vc.slice(),this.Ph=Wc.slice(),this.Da=31,this.ma[15]=Yc,this.ma[96]=Zc,this.ma[97]=$c,this.ma[98]=ad,this.ma[99]=Yc,this.ma[100]=Yc,
this.ma[101]=Yc,this.ma[102]=Yc,this.ma[103]=Yc,this.ma[104]=bd,this.ma[105]=cd,this.ma[106]=dd,this.ma[107]=ed,this.ma[108]=fd,this.ma[109]=gd,this.ma[110]=hd,this.ma[111]=id,this.ma[192]=jd,this.ma[193]=kd,this.ma[200]=ld,this.ma[201]=md,this.ma[241]=nd,this.Nh[7]=od,this.Ph[7]=od,80286<=this.ca)){this.Ih=2;this.md|=28672;this.ce=0;this.ma[15]=pd;this.Xc=rd.slice();for(a=0;a<this.Xc.length;a++)this.Xc[a]||(this.Xc[a]=sd);this.ma[84]=td;this.ma[99]=ud;if(80386<=this.ca){var c;this.Gh=0;this.md|=
this.ma[101]=Yc,this.ma[102]=Yc,this.ma[103]=Yc,this.ma[104]=bd,this.ma[105]=cd,this.ma[106]=dd,this.ma[107]=ed,this.ma[108]=fd,this.ma[109]=gd,this.ma[110]=hd,this.ma[111]=id,this.ma[192]=jd,this.ma[193]=kd,this.ma[200]=ld,this.ma[201]=md,this.ma[241]=nd,this.Nh[7]=od,this.Ph[7]=od,80286<=this.ca)){this.Ih=2;this.md|=28672;this.ce=0;this.ma[15]=pd;this.Xc=qd.slice();for(a=0;a<this.Xc.length;a++)this.Xc[a]||(this.Xc[a]=sd);this.ma[84]=td;this.ma[99]=ud;if(80386<=this.ca){var c;this.Gh=0;this.md|=
196608;this.ma[100]=vd;this.ma[101]=wd;this.ma[102]=xd;this.ma[103]=yd;for(c in D)this.Xc[+c]=D[+c];80546<=this.nd&&80562>=this.nd&&(this.Xc[166]=zd,this.Xc[167]=Ad)}}this.rf=[];this.Mh=[];this.$f=0;oc(this);this.ea.complete=this.ea.fk=!1;this.Vh=0;this.vc=this.R=[];this.da=this.xb=this.pb=this.pf=this.$d=this.Fa=this.oc=0;Bd(this)}Ua(Tc,lc);
function Fb(a){var b;if(a.R===a.vc){a.R=Array(a.pf);a.sf=new u(null,0,0,5,null,a);wb(a.sf,a.Ia);for(b=0;b<a.pf;b++)a.R[b]=a.sf;a.ae=new u;a.Kh=Array(512);a.tf=0}else for(var c=0;c<a.qf.length;c++){b=a.qf[c];var d=a.R[b];512>a.tf&&(a.Kh[a.tf++]=d);a.R[b]=a.sf}a.qf=[]}
function Bb(a){var b;if(a.R===a.vc){a.R=Array(a.pf);a.sf=new u(null,0,0,5,null,a);wb(a.sf,a.Ia);for(b=0;b<a.pf;b++)a.R[b]=a.sf;a.ae=new u;a.Kh=Array(512);a.tf=0}else for(var c=0;c<a.qf.length;c++){b=a.qf[c];var d=a.R[b];512>a.tf&&(a.Kh[a.tf++]=d);a.R[b]=a.sf}a.qf=[]}
function dc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.bd+e&a.Fa)>>>a.da],g=f.Fd(e);if(!(g&1))return d||Cd.call(a,b,!1,c),a.ae;if(!(g&4)&&3==a.za)return d||Cd.call(a,b,!0,c),a.ae;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.da],k=g.Fd(h);if(!(k&1))return d||Cd.call(a,b,!1,c),a.ae;if(!(k&4)&&3==a.za)return d||Cd.call(a,b,!0,c),a.ae;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.da];if(d)return c;d=b>>>a.da;k=a.R[d];b=b&-4096;var m;0<a.tf?(m=a.Kh[--a.tf],m.xl(b)):m=new u(b,0,0,6);b=m;b.L=c;b.B=f;b.D=
e>>2;b.C=g;b.G=h>>2;hb&&Mb&&c.V&&!c.controller&&!c.ie&&!c.je?(b.Ka=c.Ka,b.td=c.td,b.V=c.V,Jb(b,kc)):(b.K=c?bc(32):0,b.P=c?bc(96):0,Jb(b,ic));wb(b,a.Ia,k);a.R[d]=b;a.qf.push(d);return b}function Dd(a){a.R!==a.vc&&(a.R=a.vc,a.sf=null,a.qf=null,a.ae=null)}l=Tc.prototype;l.reset=function(){this.ea.Nb&&rc(this);Bd(this);oc(this);this.ea.error=!1};
function Ed(a,b){var c;switch(b){case 0:c=a.J;break;case 1:c=a.G;break;case 2:c=a.M;break;case 3:c=a.D;break;case 4:c=A(a);break;case 5:c=a.K;break;case 6:c=a.I;break;case 7:c=a.H}return c}function Fd(a,b,c){switch(b){case 0:a.J=c;break;case 1:a.G=c;break;case 2:a.M=c;break;case 3:a.D=c;break;case 4:y(a,c);break;case 5:a.K=c;break;case 6:a.I=c;break;case 7:a.H=c}}
function Bd(a){a.J=0;a.D=0;a.G=0;a.M=0;a.Ob=0;a.K=0;a.I=0;a.H=0;a.Hb=!1;a.ua=a.Ga=0;a.oa=0;a.Th=0;a.W=0;a.Pa=65520;a.Ab=0;a.xc=1023;a.X=a.Cb=0;a.rd=a.Kd=a.qd=a.Id=0;a.fc=-1;a.Gc=a.ic=-1;a.Dd=a.ka=-1;a.Ca=new Bc(a,1,"CS");a.xa=new Bc(a,2,"DS");a.pa=new Bc(a,2,"ES");a.P=new Bc(a,3,"SS");y(a,0);Gc(a,0);if(80386<=a.ca){switch(a.nd){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Pa=16;a.ai=0;a.pd=0;a.bd=0;a.qb=[0,0,0,0,null,null,0,
0];a.uf=[null,null,null,null,null,null,0,0];a.Ta=new Bc(a,2,"FS");a.Xa=new Bc(a,2,"GS");Dd(a)}a.cg=new Bc(a,0,"NULL");a.va=a.xa;a.rb=a.P;a.L=a.wa=0;a.F=a.C=-1;a.Eb=a.cg;a.Ea=0;if(80286>a.ca)Rc(a,0,65535);else{a.ub=0;a.wc=65535;a.Zb=new Bc(a,5,"LDT",!0);a.ha=new Bc(a,4,"TSS",!0);a.Oa=new Bc(a,6,"VER",!0);Rc(a,65520,61440);var b,c=C(a);b=a.Ca;var d=-65536;80386>b.A.ca&&(d&=16777215);b=b.ya=d;a.Y=b+c|0;a.ag=(b>>>0)+(a.Ca.Za>>>0)+1}Qc(a,0);Ic(a)}
function Gd(a){2==a.Nc?(a.Zh=a.ga,a.Bb=Hd,a.Gb=Id,a.yc=Jd,2==a.U?(a.Z=Kd,a.qa=Ld,a.Ja=Md):(a.Z=Nd,a.qa=Od,a.Ja=Pd)):(a.Zh=a.fa,a.Bb=Qd,a.Gb=Rd,a.yc=Sd,2==a.U?(a.Z=Td,a.qa=Ud,a.Ja=Vd):(a.Z=Wd,a.qa=Xd,a.Ja=Yd))}function Jc(a,b){a.U!=b&&(a.wa|=1024,a.U=b,a.N=2==b?65535:-1,Zd(a))}function Zd(a){2==a.U?(a.fb=32768,a.Sb=a.ga,a.Xb=a.bb,2==a.Nc?(a.Z=Kd,a.qa=Ld,a.Ja=Md):(a.Z=Td,a.qa=Ud,a.Ja=Vd)):(a.fb=-2147483648,a.Sb=a.fa,a.Xb=a.Va,2==a.Nc?(a.Z=Nd,a.qa=Od,a.Ja=Pd):(a.Z=Wd,a.qa=Xd,a.Ja=Yd))}
function $d(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Gd(a);a.U=a.Ca.U;a.N=a.Ca.N;Zd(a);a.wa&=-3073}l.si=function(){var a=this.J+this.D+this.G+this.M+A(this)+this.K+this.I+this.H|0;return a=a+C(this)+this.Ca.ja+this.xa.ja+this.P.ja+this.pa.ja+Pc(this)|0};function ae(a,b,c){void 0===a.rf[b]&&(a.rf[b]=[]);a.rf[b].push(c)}function be(a,b){var c=a.Mh[b];null!=c&&(c(--a.$f),delete a.Mh[b])}
function $d(a){a.Nc=a.Ca.Nc;a.sa=a.Ca.sa;Gd(a);a.U=a.Ca.U;a.N=a.Ca.N;Zd(a);a.wa&=-3073}l.si=function(){var a=this.J+this.D+this.G+this.M+A(this)+this.K+this.I+this.H|0;return a=a+C(this)+this.Ca.ja+this.xa.ja+this.P.ja+this.pa.ja+Oc(this)|0};function ae(a,b,c){void 0===a.rf[b]&&(a.rf[b]=[]);a.rf[b].push(c)}function be(a,b){var c=a.Mh[b];null!=c&&(c(--a.$f),delete a.Mh[b])}
function ce(a,b){for(var c=a.qb[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.qb[e],g=g&~(d>>2&3);if(b){var g=a.R[g>>>a.da],h=a;f?0===g.je++&&(h&&(g.A=h),gc(g,fc,!1)):0===g.ie++&&(h&&(g.A=h),ec(g,fc,!1))}else g=a.R[g>>>a.da],f?0===--g.je&&(f=g,f.Yb=f.I?f.ia:f.of,f.Ie=f.I?f.ba:f.uh,f.He=f.I?f.la:f.oa):0===--g.ie&&(f=g,f.Wb=f.Ed,f.Ae=f.jf,f.Fd=f.nh)}c>>=2;d>>=4}}
function cc(a,b,c,d){if(!(a.L&8192)&&a.qb[7]&255){c--;var e=a.qb[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.qb[g]&&b<=a.qb[g]+h){a.qb[6]|=1<<g;a.Ea|=2;break}}e>>=2;f>>=4}}}function Ic(a,b,c){void 0===b&&(b=!!(a.Pa&1));void 0===c&&(c=!!(a.X&131072));a.Rh=b&&!c?de:Xc;Cc(a.Ca,!1,b,c);Cc(a.xa,!1,b,c);Cc(a.P,!1,b,c);Cc(a.pa,!1,b,c);80386<=a.ca&&(Cc(a.Ta,!1,b,c),Cc(a.Xa,!1,b,c));$d(a)}
l.save=function(){var a=new ee(this);F(a,0,[this.J,this.D,this.G,this.M,A(this),this.K,this.I,this.H]);var b=C(this),c=this.Ca.save(),d=this.xa.save(),e=this.P.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ha.save(),this.Cb],80386<=this.ca&&(g.push(this.ai),g.push(this.pd),g.push(this.bd),g.push(this.qb),g.push(this.uf))):g=null;b=[b,c,d,e,f,g,Pc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));F(a,1,b);F(a,2,[this.va.Yf,
this.rb.Yf,this.L,this.wa,this.Ea,this.F,this.C]);F(a,3,[0,this.ad,this.T.Bd]);b=this.ia;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||Cb(b,!0);for(g=0;g<b.H;g++){var h=b.R[g];if(c&&h.type!=Lb||h.Ha||h.pi){e[d++]=g;var k=d++;a:if(h=h.save()){for(var m=0,p=0,x=[];m<h.length;){for(var t=h[m],z=m+1;z<h.length&&h[z]===t;)z++;x[p++]=z-m;x[p++]=t;m=z}if(x.length<h.length){h=x;break a}}e[k]=h}}f||Cb(b,!1);e[d]=f;F(a,4,e);return a.data()};
l.save=function(){var a=new ee(this);F(a,0,[this.J,this.D,this.G,this.M,A(this),this.K,this.I,this.H]);var b=C(this),c=this.Ca.save(),d=this.xa.save(),e=this.P.save(),f=this.pa.save(),g;null!=this.ub?(g=[this.Pa,this.ub,this.wc,this.Ab,this.xc,this.Zb.save(),this.ha.save(),this.Cb],80386<=this.ca&&(g.push(this.ai),g.push(this.pd),g.push(this.bd),g.push(this.qb),g.push(this.uf))):g=null;b=[b,c,d,e,f,g,Oc(this)];80386<=this.ca&&(b.push(this.Ta.save()),b.push(this.Xa.save()));F(a,1,b);F(a,2,[this.va.Yf,
this.rb.Yf,this.L,this.wa,this.Ea,this.F,this.C]);F(a,3,[0,this.ad,this.T.Bd]);b=this.ia;c=!!(this.Pa&-2147483648);d=0;e=[];(f=!b.G&&b.ba==b.Fa)||xb(b,!0);for(g=0;g<b.H;g++){var h=b.R[g];if(c&&h.type!=Lb||h.Ha||h.pi){e[d++]=g;var k=d++;a:if(h=h.save()){for(var m=0,p=0,x=[];m<h.length;){for(var t=h[m],z=m+1;z<h.length&&h[z]===t;)z++;x[p++]=z-m;x[p++]=t;m=z}if(x.length<h.length){h=x;break a}}e[k]=h}}f||xb(b,!1);e[d]=f;F(a,4,e);return a.data()};
l.restore=function(a){var b=a[0];this.J=b[0];this.D=b[1];this.G=b[2];this.M=b[3];var c=b[4];this.K=b[5];this.I=b[6];this.H=b[7];b=a[1];this.Ca.restore(b[1]);this.xa.restore(b[2]);this.P.restore(b[3]);this.pa.restore(b[4]);var d=b[5];d&&d.length&&(this.Pa=d[0],this.ub=d[1],this.wc=d[2],this.Ab=d[3],this.xc=d[4],this.Zb.restore(d[5]),this.ha.restore(d[6]),this.Cb=d[7],80386<=this.ca&&(this.ai=d[8],this.pd=d[9],this.bd=d[10],this.qb=d[11],this.uf=d[12]),Ic(this));Qc(this,b[6]);var d=!1,e;a:{e=this.ia;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ia){for(var m=0,p=Array(e.ia),x=0;x<k.length-1;)for(var t=k[x++],z=k[x++];t--;)p[m++]=z;k=p}m=e.R[h];if(!m||!m.restore(k)){r("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Cb(e,f[g]);e=!0}e&&(Rc(this,b[0],this.Ca.ja),y(this,c),Gc(this,this.P.ja),80386<=this.ca&&(this.Ta.restore(b[7]),this.Xa.restore(b[8])),d=!0);b=a[2];this.va=null!=b[0]&&fe(this,b[0])||this.xa;this.rb=null!=b[1]&&fe(this,b[1])||this.P;
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ia){for(var m=0,p=Array(e.ia),x=0;x<k.length-1;)for(var t=k[x++],z=k[x++];t--;)p[m++]=z;k=p}m=e.R[h];if(!m||!m.restore(k)){r("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&xb(e,f[g]);e=!0}e&&(Rc(this,b[0],this.Ca.ja),y(this,c),Gc(this,this.P.ja),80386<=this.ca&&(this.Ta.restore(b[7]),this.Xa.restore(b[8])),d=!0);b=a[2];this.va=null!=b[0]&&fe(this,b[0])||this.xa;this.rb=null!=b[1]&&fe(this,b[1])||this.P;
this.L=b[2];this.wa=b[3];this.Ea=b[4];this.F=b[5];this.C=b[6];b=a[3];this.ad=b[1];sc(this,b[2]);return d};function fe(a,b){switch(b){case "CS":return a.Ca;case "DS":return a.xa;case "SS":return a.P;case "ES":return a.pa;case "NULL":return a.cg;default:return[0,b,0,0,""]}}function ge(a,b){null!=Rc(a,C(a),b)&&(a.L|=a.ce)}function Mc(a,b){-1!==a.xa.load(b)&&(a.L|=a.ce)}
function Gc(a,b,c){var d=A(a);-1!==a.P.load(b)&&(y(a,d),a.P.xd?(a.bg=a.P.ya+a.P.sa|0,a.be=a.P.ya+a.P.Za|0):(a.bg=a.P.ya+a.P.Za|0,a.be=a.P.ya),c||(a.L|=4))}function Nc(a,b){-1!==a.pa.load(b)&&(a.L|=a.ce)}function C(a){return a.Y-a.Ca.ya|0}function G(a,b){a.Y=a.Ca.ya+(b&a.N)|0}function he(a,b){a.Y=b;a.ag=(a.Ca.ya>>>0)+(a.Ca.Za>>>0)+1;a.za=a.Ca.sb;$d(a)}function Rc(a,b,c,d){var e=a.Ca;e.gf=b;e.D=d;b=e.load(c);return-1!==b?(he(a,b+(a.Ca.gf&a.Ca.N)),a.Ca.re):null}
function ie(a,b){var c=(a.Y>>>0)+b;c>a.ag&&(8088>=a.ca||a.Ca.Za==a.Ca.sa?c=a.Ca.ya+(c-a.ag&a.N):v.call(a,13,0));return c|0}function je(a){a.Y=a.Dd}function A(a){return a.Ob&~a.P.sa|a.ra-a.P.ya}function y(a,b){a.Ob=b;a.ra=a.P.ya+(b&a.P.sa)|0}function ke(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&le(a),g&2&&me(a),g&4&&ne(a),g&8&&oe(a),g&16&&pe(a),g&32&&qe(a))}f?(a.rd=d,a.qd=b):(a.rd=b,a.qd=d);a.Kd=c;a.Id=d;a.resultType=e}
function H(a,b,c,d,e){a.resultType=c|26;a.Id=b;d?re(a):se(a);e?te(a):we(a);return b}function xe(a,b,c,d){c&d?re(a):se(a);(b^c)&d?te(a):we(a)}function ye(a){return le(a)?1:0}function le(a){a.resultType&1&&(a.X&=-2,(a.rd^(a.rd^a.Kd)&(a.Kd^a.qd))&a.resultType&-2147450752&&(a.X|=1),a.resultType&=-2);return a.X&1}function me(a){a.resultType&2&&(a.X&=-5,38505>>((a.Id^a.Id>>4)&15)&1&&(a.X|=4),a.resultType&=-3);return a.X&4}
function ne(a){a.resultType&4&&(a.X&=-17,(a.qd^a.rd^a.Kd)&16&&(a.X|=16),a.resultType&=-5);return a.X&16}function oe(a){a.resultType&8&&(a.X&=-65,a.Id&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.X|=64),a.resultType&=-9);return a.X&64}function pe(a){a.resultType&16&&(a.X&=-129,a.Id&a.resultType&-2147450752&&(a.X|=128),a.resultType&=-17);return a.X&128}
function qe(a){a.resultType&32&&(a.X&=-2049,(a.rd^a.qd)&(a.Kd^a.qd)&a.resultType&-2147450752&&(a.X|=2048),a.resultType&=-33);return a.X&2048}function se(a){a.resultType&=-2;a.X&=-2}function ze(a){a.resultType&=-5;a.X&=-17}function Ae(a){a.resultType&=-9;a.X&=-65}function we(a){a.resultType&=-33;a.X&=-2049}function re(a){a.resultType&=-2;a.X|=1}function Be(a){a.resultType&=-5;a.X|=16}function Ce(a){a.resultType&=-9;a.X|=64}function te(a){a.resultType&=-33;a.X|=2048}
function Pc(a){return a.X&-2262|le(a)|me(a)|ne(a)|oe(a)|pe(a)|qe(a)}function De(a,b){b=b|a.Pa&1|65520;a.Pa=a.Pa&-65536|b&65535;a.Pa&1&&Ic(a,!0)}function Qc(a,b,c){a.Pa&1||(b&=~a.Gh);void 0===c&&(c=a.za);c?b=b&-12289|a.X&12288:a.Cb=(b&12288)>>12;c>a.Cb&&(b=b&-513|a.X&512);a.resultType=128;a.X=a.X&~(a.md|2261)|b&(a.md|2261)|a.Ih;a.X&256&&(a.Ea|=2,a.L|=4)}
function Oc(a){return a.X&-2262|le(a)|me(a)|ne(a)|oe(a)|pe(a)|qe(a)}function De(a,b){b=b|a.Pa&1|65520;a.Pa=a.Pa&-65536|b&65535;a.Pa&1&&Ic(a,!0)}function Qc(a,b,c){a.Pa&1||(b&=~a.Gh);void 0===c&&(c=a.za);c?b=b&-12289|a.X&12288:a.Cb=(b&12288)>>12;c>a.Cb&&(b=b&-513|a.X&512);a.resultType=128;a.X=a.X&~(a.md|2261)|b&(a.md|2261)|a.Ih;a.X&256&&(a.Ea|=2,a.L|=4)}
function Ee(a,b,c){var d=0;if(a.Pa&1&&(a.za>a.Cb||a.X&131072)&&a.ha.di)for(var e=a.ha.di+(b>>>3),d=(1<<c)-1<<(b&7);d&&e<=a.ha.$j&&!(a.Jb(e)&d);)d>>>=8,e++;return d?(v.call(a,13,0),!1):!0}
l.zb=function(a,b,c){var d=!1;switch(b){case "EAX":case "EBX":case "ECX":case "EDX":case "ESP":case "EBP":case "ESI":case "EDI":case "EIP":case "AX":case "BX":case "CX":case "DX":case "SP":case "BP":case "SI":case "DI":case "IP":case "PC":case "CS":case "DS":case "SS":case "ES":case "FS":case "GS":case "CR0":case "CR2":case "CR3":case "PS":case "C":case "P":case "A":case "Z":case "S":case "T":case "I":case "D":case "V":this.la[b]=c;this.Vh++;d=!0;break;default:d=this.parent.zb.call(this,a,b,c)}return d};
function Fe(a,b,c,d){var e=(d?a.vc:a.R)[(b&a.oc)>>>a.da];e&&5==e.type&&(e=dc(a,b,!1,!0));if(e){var f=b&a.pb;if(!c||1==c)return e.Ed(f,b);if(2==c)return f<a.pb?e.jf(f,b):e.Ed(f,b)|Fe(a,b+1,1,d)<<8;if(4==c)return f<a.pb-2?e.nh(f,b):f==a.pb-1?e.jf(f,b)|Fe(a,b+2,2,d)<<16:e.Ed(f,b)|Fe(a,b+1,1,d)<<8|Fe(a,b+2,1,d)<<16|Fe(a,b+3,1,d)<<24}return null}l.Jb=function(a){return this.R[(a&this.oc)>>>this.da].Wb(a&this.pb,a)};
@ -117,7 +117,7 @@ function Ie(a,b){a.L&2||a.Mc(a.Eb.Rb(a.La,1),b)}function Je(a,b){a.L&2||a.bb(a.E
l.O=function(){var a=ie(this,1),b=this.Jb(this.Y)<<24>>24;this.Y=a;return b};function w(a){var b=a.Sb(a.ra);a.ra=a.ra+a.U|0;var c=a.bg-a.ra|0;0>c&&0<=(a.bg^a.ra)&&(8088>=a.ca||!a.P.xd&&a.P.Za==a.P.sa||a.P.xd&&!a.P.Za?y(a,a.ra-a.P.ya&a.P.sa):-1>c&&v.call(a,12,0));return b}
function Lc(a,b,c,d){c=a.ra-c|0;0>(c-a.be|0)&&0<=(a.be^c)&&(8088>=a.ca||!a.P.xd&&a.P.Za==a.P.sa||a.P.xd&&!a.P.Za?(y(a,c-a.P.ya&a.P.sa),c=a.ra):v.call(a,12,0));switch(d){case 1:a.Mc(c,b);break;case 2:a.bb(c,b);break;case 4:a.Va(c,b)}a.ra=c}function B(a,b){var c=a.ra-a.U|0;0>(c-a.be|0)&&0<=(a.be^c)&&(8088>=a.ca||!a.P.xd&&a.P.Za==a.P.sa||a.P.xd&&!a.P.Za?(y(a,c-a.P.ya&a.P.sa),c=a.ra):v.call(a,12,0));a.Xb(c,b);a.ra=c}
function Q(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ca)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.la[b]&&(void 0===c&&(gb(a,"Value for "+b+" is invalid"),rc(a)),d=!a.ea.Nb||a.ea.mi?fa(c,d):"--------".substr(0,d),a.la[b].textContent!=d&&(a.la[b].textContent=d))}
l.Zd=function(a){this.Vh&&(a||!this.ea.Nb||this.ea.mi)&&(Q(this,"EAX",this.J),Q(this,"EBX",this.D),Q(this,"ECX",this.G),Q(this,"EDX",this.M),Q(this,"ESP",A(this)),Q(this,"EBP",this.K),Q(this,"ESI",this.I),Q(this,"EDI",this.H),Q(this,"CS",this.Ca.ja),Q(this,"DS",this.xa.ja),Q(this,"SS",this.P.ja),Q(this,"ES",this.pa.ja),Q(this,"EIP",C(this)),a=Pc(this),Q(this,"PS",a),Q(this,"V",a&2048),Q(this,"D",a&1024),Q(this,"I",a&512),Q(this,"T",a&256),Q(this,"S",a&128),Q(this,"Z",a&64),Q(this,"A",a&16),Q(this,
l.Zd=function(a){this.Vh&&(a||!this.ea.Nb||this.ea.mi)&&(Q(this,"EAX",this.J),Q(this,"EBX",this.D),Q(this,"ECX",this.G),Q(this,"EDX",this.M),Q(this,"ESP",A(this)),Q(this,"EBP",this.K),Q(this,"ESI",this.I),Q(this,"EDI",this.H),Q(this,"CS",this.Ca.ja),Q(this,"DS",this.xa.ja),Q(this,"SS",this.P.ja),Q(this,"ES",this.pa.ja),Q(this,"EIP",C(this)),a=Oc(this),Q(this,"PS",a),Q(this,"V",a&2048),Q(this,"D",a&1024),Q(this,"I",a&512),Q(this,"T",a&256),Q(this,"S",a&128),Q(this,"Z",a&64),Q(this,"A",a&16),Q(this,
"P",a&4),Q(this,"C",a&1),80386==this.ca&&(Q(this,"FS",this.Ta.ja),Q(this,"GS",this.Xa.ja),Q(this,"CR0",this.Pa),Q(this,"CR2",this.pd),Q(this,"CR3",this.bd)));if(a=this.la.speed)a.textContent=this.ea.Nb&&this.T.zd?this.T.zd.toFixed(2)+"Mhz":"Stopped"};
l.Oj=function(a){this.ea.complete=!0;this.ea.fk=!1;this.ea.Nj=!1;this.mc=this.A=a;this.S&&!a&&yc(this.S);a||(this.L|=4);do{if(a=this.L&3312)this.wa|=a;else if(this.Dd=this.Y,this.va=this.xa,this.rb=this.P,this.F=this.C=-1,this.wa&3072&&$d(this),this.wa=this.L&256,this.Ea){a:if(!(this.L&4)){a=80286>this.ca?0:1;for(var b=0;2>b;b++){switch(a){case 0:if(this.Ea&1&&this.X&512){var c=Me(this.S);if(-1<=c&&(this.Ea&=-2,0<=c)){this.Ea&=-5;Ne.call(this,c);break a}}break;case 1:if(this.Ea&2){this.Ea&=-3;80386<=
this.ca&&(this.qb[6]|=16384);Ne.call(this,1);break a}}a=1-a}}if(this.Ea&4){this.L=this.A=0;break}}this.L=0;this.ma[this.na()].call(this)}while(0<this.A);return this.ea.complete?this.mc-this.A:void 0===this.ea.complete?0:-1};Ia(function(){for(var a=cb(document,"pcx86","cpu"),b=0;b<a.length;b++){var c=a[b],d=$a(c),d=new Tc(d);bb(d,c)}});
@ -172,9 +172,9 @@ function vh(a,b){return b>>(this.J&this.N)&(1<<(this.G&31))-1&this.N}function wh
function xh(a,b){if(-1===this.F){switch(this.W&7){case 0:this.J=this.J&~this.N|a;break;case 1:this.G=this.G&~this.N|a;break;case 2:this.M=this.M&~this.N|a;break;case 3:this.D=this.D&~this.N|a;break;case 4:y(this,A(this)&~this.N|a);break;case 5:this.K=this.D&~this.N|a;break;case 6:this.I=this.I&~this.N|a;break;case 7:this.H=this.H&~this.N|a}this.A-=this.B.jh}else this.C=this.F,this.L&2||this.Xb(this.Eb.Rb(this.La,this.U),a),this.A-=this.B.ih;return b}
function yh(a,b){var c=a^b;H(this,c,128);this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return c}function zh(a,b){this.A-=-1===this.C?-1===this.F?this.B.dc:this.B.yb:this.B.qc;return H(this,a^b,this.fb)&this.N}function Ah(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function Bh(a){var b=a-1|0;ke(this,a,1,b,this.fb|62,!0);this.A-=2;return a&~this.N|b&this.N}
function Ch(a,b,c){c>>>=0;if(!c||c<=b>>>0)return!1;var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0<Ah(a,c);){var f=b=c;b[0]+=f[0];b[1]+=f[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=Ah(a,c)&&(b=a,f=c,b[0]-=f[0],b[1]-=f[1],0>b[0]&&(b[0]>>>=0,b[1]--),d+=e),b=c,b[0]>>>=1,b[1]&1&&(b[0]=(b[0]|2147483648)>>>0),b[1]>>>=1,e/=2;while(1<=e);this.ua=d;this.Ga=a[0];return!0}function Dh(a){var b=a+1|0;ke(this,a,1,b,this.fb|62);this.A-=2;return a&~this.N|b&this.N}
function Sc(a){this.bd=a;this.Pa&-2147483648&&Fb(this)}function Eh(a){this.L|=1;this.Gb.call(this,a);this.A-=-1===this.F?4:5}function fh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;H(this,a,32768,d&1)}return a}
function Sc(a){this.bd=a;this.Pa&-2147483648&&Bb(this)}function Eh(a){this.L|=1;this.Gb.call(this,a);this.A-=-1===this.F?4:5}function fh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;H(this,a,32768,d&1)}return a}
function nh(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;H(this,a,-2147483648,d&1)}return a}function Fh(){this.A-=-1===this.F?2:this.B.zj;return 1}function Gh(){var a=this.G&255;this.A-=(-1===this.F?this.B.$g:this.B.Zg)+(a<<this.B.ah);return a}function Hh(){var a=this.na();this.A-=(-1===this.F?this.B.$g:this.B.Zg)+(a<<this.B.ah);return a}function Ih(){return null}function Jh(){return this.oa}
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 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=Oc(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 "+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)}
@ -293,8 +293,8 @@ this.A-=this.B.ec},function(){this.D=this.D&~this.N|w(this);this.A-=this.B.ec},f
ui,this.O);this.A-=-1===this.C?1:this.B.Pf},function(){this.Gb.call(this,sh)},function(){this.qa.call(this,th)},function(){this.Bb.call(this,wh)},function(){this.Z.call(this,xh)},hi,ii,ji,ki,function(){this.L|=1;this.qa.call(this,Lg)},function(){this.L|=1;this.va=this.rb=this.cg;this.Z.call(this,Bg)},function(){var a;this.Z.call(this,Kg);switch(this.W>>3&7){case 0:a=this.J;this.J=this.oa;Nc(this,a);break;case 1:a=this.G;this.G=this.oa;ge(this,a);break;case 2:a=this.M;this.M=this.oa;Gc(this,a);break;
case 3:a=this.D;this.D=this.oa;Mc(this,a);break;case 4:a=A(this);y(this,this.oa);80386<=this.ca?this.Ta.load(a):Nc(this,a);break;case 5:a=this.K;this.K=this.oa;80386<=this.ca?this.Xa.load(a):ge(this,a);break;case 6:a=this.I;this.I=this.oa;Gc(this,a);break;case 7:a=this.H,this.H=this.oa,Mc(this,a)}},function(){this.L|=1;this.ka=this.ra;this.oa=w(this);this.Ja.call(this,vi,Jh);this.ka=-1},function(){this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.G&this.N;this.G=this.G&~this.N|a&this.N;
this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.M&this.N;this.M=this.M&~this.N|a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.D&this.N;this.D=this.D&~this.N|a&this.N;this.A-=3},function(){var a=this.J,b=A(this);this.J=this.J&~this.N|b&this.N;y(this,b&~this.N|a&this.N);this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.K&this.N;this.K=this.K&~this.N|a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.I&this.N;this.I=this.I&~this.N|
a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.H&this.N;this.H=this.H&~this.N|a&this.N;this.A-=3},function(){this.J=2==this.U?this.J&-65536|this.J<<24>>24&65535:this.J<<16>>16;this.A-=2},function(){this.M=2==this.U?this.M&-65536|(this.J&32768?65535:0):this.J&-2147483648?-1:0;this.A-=this.B.Fi},function(){Kh.call(this,this.Aa(),Le(this));this.A-=this.B.Ii},function(){this.A-=3},function(){var a=Pc(this);a&131072&&3>this.Cb?v.call(this,13,0):(B(this,a&-196609),this.A-=this.B.Ac)},
function(){if(this.X&131072&&3>this.Cb)v.call(this,13,0);else{var a=w(this),a=a&65535|this.X&-65536;Qc(this,a);this.A-=this.B.ec}},function(){var a=this.J>>8&255;a&1?re(this):se(this);a&4?(this.resultType&=-3,this.X|=4):(this.resultType&=-3,this.X&=-5);a&16?Be(this):ze(this);a&64?Ce(this):Ae(this);a&128?(this.resultType&=-17,this.X|=128):(this.resultType&=-17,this.X&=-129);this.A-=this.B.Mb},function(){this.J=this.J&-65281|(Pc(this)&213)<<8;this.A-=this.B.Mb},function(){var a=this.J&-256,b;b=P(this);
a&this.N;this.A-=3},function(){var a=this.J;this.J=this.J&~this.N|this.H&this.N;this.H=this.H&~this.N|a&this.N;this.A-=3},function(){this.J=2==this.U?this.J&-65536|this.J<<24>>24&65535:this.J<<16>>16;this.A-=2},function(){this.M=2==this.U?this.M&-65536|(this.J&32768?65535:0):this.J&-2147483648?-1:0;this.A-=this.B.Fi},function(){Kh.call(this,this.Aa(),Le(this));this.A-=this.B.Ii},function(){this.A-=3},function(){var a=Oc(this);a&131072&&3>this.Cb?v.call(this,13,0):(B(this,a&-196609),this.A-=this.B.Ac)},
function(){if(this.X&131072&&3>this.Cb)v.call(this,13,0);else{var a=w(this),a=a&65535|this.X&-65536;Qc(this,a);this.A-=this.B.ec}},function(){var a=this.J>>8&255;a&1?re(this):se(this);a&4?(this.resultType&=-3,this.X|=4):(this.resultType&=-3,this.X&=-5);a&16?Be(this):ze(this);a&64?Ce(this):Ae(this);a&128?(this.resultType&=-17,this.X|=128):(this.resultType&=-17,this.X&=-129);this.A-=this.B.Mb},function(){this.J=this.J&-65281|(Oc(this)&213)<<8;this.A-=this.B.Mb},function(){var a=this.J&-256,b;b=P(this);
b=this.Jb(this.va.Qb(b,1));this.J=a|b;this.A-=this.B.Pg},function(){this.J=this.J&~this.N|Kc(this,this.va,P(this));this.A-=this.B.Pg},function(){var a=P(this),b=this.J;this.Mc(this.va.Rb(a,1),b);this.A-=this.B.Qg},function(){var a=P(this),b=this.J;this.Xb(this.va.Rb(a,this.U),b);this.A-=this.B.Qg},function(){var a=1,b=0,c=this.sa,d=this.B.Rg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Tg,this.wa&256||(this.A-=this.B.Sg));if(a--){var e=this.Jb(this.va.Qb(this.I&c,1));this.Mc(this.pa.Rb(this.H&c,1),e);e=
this.X&1024?-1:1;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.A-=d;this.G=this.G&~c|this.G-b&c;a&&(je(this),this.L|=256)}},function(){var a=1,b=0,c=this.sa,d=this.B.Rg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Tg,this.wa&256||(this.A-=this.B.Sg));if(a--){var e=Kc(this,this.va,this.I&c);this.Xb(this.pa.Rb(this.H&c,this.U),e);e=this.X&1024?-this.U:this.U;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.A-=d;this.G=this.G&~c|this.G-b&c;a&&(je(this),this.L|=256)}},function(){var a=
1,b=0,c=this.sa,d=this.B.Cg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Eg,this.wa&256||(this.A-=this.B.Dg));if(a--){var e=Ge(this,this.va,this.I),f=Ge(this,this.pa,this.H);this.C=this.F;pg.call(this,e,f);e=this.X&1024?-1:1;this.I=this.I&~c|this.I+e&c;this.H=this.H&~c|this.H+e&c;this.G=this.G&~c|this.G-b&c;this.A-=d-this.B.yb;a&&oe(this)==(this.wa&64)&&(je(this),this.L|=256)}},function(){var a=1,b=0,c=this.sa,d=this.B.Cg;this.wa&192&&(a=this.G&c,b=1,d=this.B.Eg,this.wa&256||(this.A-=this.B.Dg));if(a--){var e=
@ -326,14 +326,14 @@ te(this)):(se(this),we(this));this.Hb=!0;this.A-=-1===this.F?this.B.qj:this.B.pj
c)return Oh.call(this),a;this.ua=c&65535;this.Ga=b%a&65535}else{if(!Ch.call(this,this.J,this.M,a))return Oh.call(this),a;this.ua|=0;this.Ga|=0}this.Hb=!0;this.A-=-1===this.F?this.B.Oi:this.B.Ni;this.L|=2;return a},function(a,b){if(2==this.U){if(!a)return Oh.call(this),a;var c=a<<16>>16,d=(b=this.M<<16|this.J&65535)/c|0;if(d!=d<<16>>16||8086==this.ca&&-32768==d)return Oh.call(this),a;this.ua=d&65535;this.Ga=b%c&65535}else{var c=this.J,d=this.M,e=a,f=0,g=0;0>e&&(e=-e|0,f=1-f);0>d&&(c=-c|0,d=~d+(c?0:
1)|0,g=1,f=1-f);!Ch.call(this,c,d,e)||this.ua>2147483647+f||this.Ga>2147483647+g?c=!1:(f&&(this.ua=-this.ua),g&&(this.Ga=-this.Ga),c=!0);if(!c)return Oh.call(this),a;this.ua|=0;this.Ga|=0}this.Hb=!0;this.A-=-1===this.F?this.B.Si:this.B.Ri;this.L|=2;return a}],Vc=[function(a){var b=a+1|0;ke(this,a,1,b,190);this.A-=-1===this.F?this.B.af:this.B.$e;return b&255},function(a){var b=a-1|0;ke(this,a,1,b,190,!0);this.A-=-1===this.F?this.B.af:this.B.$e;return b&255},T,T,T,T,T,T],Wc=[function(a){var b=a+1|0;
ke(this,a,1,b,this.fb|62);this.A-=-1===this.F?this.B.af:this.B.$e;return b&this.N},function(a){var b=a-1|0;ke(this,a,1,b,this.fb|62,!0);this.A-=-1===this.F?this.B.af:this.B.$e;return b&this.N},function(a){B(this,C(this));G(this,a);this.A-=-1===this.F?this.B.Ki:this.B.Ji;this.L|=2;return a},function(a){if(-1===this.F)return T.call(this,a);this.ka=this.ra;Kh.call(this,a,this.ga(this.F+this.U));this.A-=this.B.Hi;this.L|=2;this.ka=-1;return a},function(a){G(this,a);this.A-=-1===this.F?this.B.ej:this.B.dj;
this.L|=2;return a},function(a){if(-1===this.F)return T.call(this,a);Rc(this,a,this.ga(this.F+this.U));this.A-=this.B.bj;this.L|=2;return a},function(a){var b=a;this.L&512&&(a=a-2&65535,80286>this.ca&&(b=a));B(this,b);this.A-=-1===this.F?this.B.Ac:this.B.uj;this.L|=2;return a},T];function zd(){this.Z.call(this,vh);this.A-=-1===this.F?6:13}function Ad(){this.qa.call(this,uh);this.A-=-1===this.F?12:19}var rd=Array(256);
rd[0]=function(){16>(this.Jb(this.Y)&56)&&(this.L|=1);this.Ja.call(this,this.Rh,Ih)};rd[1]=function(){this.Jb(this.Y)&16||(this.L|=1);this.Ja.call(this,zi,Ih)};rd[2]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,zg)};rd[3]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,Fg)};
rd[5]=function(){this.za?v.call(this,13,0,0,!0):(De(this,this.ga(2054)),this.H=this.ga(2086),this.I=this.ga(2088),this.K=this.ga(2090),this.D=this.ga(2094),this.M=this.ga(2096),this.G=this.ga(2098),this.J=this.ga(2100),Fc(this.pa,2102,this.ga(2084)),Fc(this.Ca,2108,this.ga(2082)),Fc(this.P,2114,this.ga(2080)),Fc(this.xa,2120,this.ga(2078)),Qc(this,this.ga(2072)),G(this,this.ga(2074)),y(this,this.ga(2092)),this.ub=this.ga(2126)|this.Jb(2128)<<16,this.wc=this.ub+this.ga(2130),this.Ab=this.ga(2138)|
this.Jb(2140)<<16,this.xc=this.Ab+this.ga(2142),Fc(this.Zb,2132,this.ga(2076)),Fc(this.ha,2144,this.ga(2070)),this.A-=195)};rd[6]=function(){this.za?v.call(this,13,0):(this.Pa&=-9,this.A-=2)};rd[11]=Yc;rd[166]=Yc;rd[255]=Yc;var D=[];D[5]=Yc;
D[7]=function(){if(this.za)v.call(this,13,0,0,!0);else{var a=this.pa.Qb(this.H&this.sa,204);if(-1!==a){this.Pa=this.fa(a);Ic(this);this.Pa&-2147483648?Fb(this):Dd(this);var b=this.fa(a+168),c=(b&24576)>>13;Qc(this,this.fa(a+4),c);this.ub=this.fa(a+112);this.wc=this.ub+this.fa(a+116);this.Ab=this.fa(a+100);this.xc=this.Ab+this.fa(a+104);Ec(this.Zb,this.fa(a+56),this.fa(a+120),this.fa(a+124),this.fa(a+128));Ec(this.ha,this.fa(a+52),this.fa(a+84),this.fa(a+88),this.fa(a+92));this.H=this.fa(a+12);this.I=
this.L|=2;return a},function(a){if(-1===this.F)return T.call(this,a);Rc(this,a,this.ga(this.F+this.U));this.A-=this.B.bj;this.L|=2;return a},function(a){var b=a;this.L&512&&(a=a-2&65535,80286>this.ca&&(b=a));B(this,b);this.A-=-1===this.F?this.B.Ac:this.B.uj;this.L|=2;return a},T];function zd(){this.Z.call(this,vh);this.A-=-1===this.F?6:13}function Ad(){this.qa.call(this,uh);this.A-=-1===this.F?12:19}var qd=Array(256);
qd[0]=function(){16>(this.Jb(this.Y)&56)&&(this.L|=1);this.Ja.call(this,this.Rh,Ih)};qd[1]=function(){this.Jb(this.Y)&16||(this.L|=1);this.Ja.call(this,zi,Ih)};qd[2]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,zg)};qd[3]=function(){!(this.Pa&1)||this.X&131072?v.call(this,6):this.Z.call(this,Fg)};
qd[5]=function(){this.za?v.call(this,13,0,0,!0):(De(this,this.ga(2054)),this.H=this.ga(2086),this.I=this.ga(2088),this.K=this.ga(2090),this.D=this.ga(2094),this.M=this.ga(2096),this.G=this.ga(2098),this.J=this.ga(2100),Fc(this.pa,2102,this.ga(2084)),Fc(this.Ca,2108,this.ga(2082)),Fc(this.P,2114,this.ga(2080)),Fc(this.xa,2120,this.ga(2078)),Qc(this,this.ga(2072)),G(this,this.ga(2074)),y(this,this.ga(2092)),this.ub=this.ga(2126)|this.Jb(2128)<<16,this.wc=this.ub+this.ga(2130),this.Ab=this.ga(2138)|
this.Jb(2140)<<16,this.xc=this.Ab+this.ga(2142),Fc(this.Zb,2132,this.ga(2076)),Fc(this.ha,2144,this.ga(2070)),this.A-=195)};qd[6]=function(){this.za?v.call(this,13,0):(this.Pa&=-9,this.A-=2)};qd[11]=Yc;qd[166]=Yc;qd[255]=Yc;var D=[];D[5]=Yc;
D[7]=function(){if(this.za)v.call(this,13,0,0,!0);else{var a=this.pa.Qb(this.H&this.sa,204);if(-1!==a){this.Pa=this.fa(a);Ic(this);this.Pa&-2147483648?Bb(this):Dd(this);var b=this.fa(a+168),c=(b&24576)>>13;Qc(this,this.fa(a+4),c);this.ub=this.fa(a+112);this.wc=this.ub+this.fa(a+116);this.Ab=this.fa(a+100);this.xc=this.Ab+this.fa(a+104);Ec(this.Zb,this.fa(a+56),this.fa(a+120),this.fa(a+124),this.fa(a+128));Ec(this.ha,this.fa(a+52),this.fa(a+84),this.fa(a+88),this.fa(a+92));this.H=this.fa(a+12);this.I=
this.fa(a+16);this.K=this.fa(a+20);this.D=this.fa(a+28);this.M=this.fa(a+32);this.G=this.fa(a+36);this.J=this.fa(a+40);Ec(this.Xa,this.fa(a+60),this.fa(a+132),this.fa(a+136),this.fa(a+140));Ec(this.Ta,this.fa(a+64),this.fa(a+144),this.fa(a+148),this.fa(a+152));Ec(this.xa,this.fa(a+68),this.fa(a+156),this.fa(a+160),this.fa(a+164));Ec(this.P,this.fa(a+72),b,this.fa(a+172),this.fa(a+176));Ec(this.Ca,this.fa(a+76),this.fa(a+180),this.fa(a+184),this.fa(a+188));Ec(this.pa,this.fa(a+80),this.fa(a+192),this.fa(a+
196),this.fa(a+200));G(this,this.fa(a+8));y(this,this.fa(a+24))}this.A-=122<<(a&3?1:0)}};D[16]=hi;D[17]=ii;D[18]=ji;D[19]=ki;D[32]=function(){if(this.za)v.call(this,13,0);else{var a,b=this.na();switch((b&56)>>3){case 0:a=this.Pa;break;case 2:a=this.pd;break;case 3:a=this.bd;break;default:sd.call(this);return}Fd(this,b&7,a);this.A-=6}};D[33]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?sd.call(this):(Fd(this,a&7,this.qb[b]),this.A-=22)}};
D[34]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=Ed(this,a&7);switch((a&56)>>3){case 0:this.Pa=b;Ic(this);this.Pa&-2147483648?Fb(this):Dd(this);this.A-=10;break;case 2:this.pd=b;this.A-=4;break;case 3:Sc.call(this,b);this.A-=5;break;default:sd.call(this)}}};D[35]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?sd.call(this):(a=Ed(this,a&7),a!=this.qb[b]&&(ce(this,!1),this.qb[b]=a,ce(this,!0)),this.A-=4>b?22:14)}};
D[34]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=Ed(this,a&7);switch((a&56)>>3){case 0:this.Pa=b;Ic(this);this.Pa&-2147483648?Bb(this):Dd(this);this.A-=10;break;case 2:this.pd=b;this.A-=4;break;case 3:Sc.call(this,b);this.A-=5;break;default:sd.call(this)}}};D[35]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;4==b||5==b?sd.call(this):(a=Ed(this,a&7),a!=this.qb[b]&&(ce(this,!1),this.qb[b]=a,ce(this,!0)),this.A-=4>b?22:14)}};
D[36]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;6>b?sd.call(this):(Fd(this,a&7,this.uf[b]),this.A-=12)}};D[38]=function(){if(this.za)v.call(this,13,0);else{var a=this.na(),b=(a&56)>>3;6>b?sd.call(this):(this.uf[b]=Ed(this,a&7),this.A-=12)}};D[128]=function(){var a=this.Aa();qe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[129]=function(){var a=this.Aa();qe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};
D[130]=function(){var a=this.Aa();le(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[131]=function(){var a=this.Aa();le(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[132]=function(){var a=this.Aa();oe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[133]=function(){var a=this.Aa();oe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[134]=function(){var a=this.Aa();le(this)||oe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};
D[135]=function(){var a=this.Aa();le(this)||oe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[136]=function(){var a=this.Aa();pe(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[137]=function(){var a=this.Aa();pe(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};D[138]=function(){var a=this.Aa();me(this)?(G(this,C(this)+a),this.A-=this.B.Ma):this.A-=this.B.Na};D[139]=function(){var a=this.Aa();me(this)?this.A-=this.B.Na:(G(this,C(this)+a),this.A-=this.B.Ma)};
@ -390,7 +390,7 @@ function Uj(a,b){var c=!!(b&2),d=!!(a.S&2);a.S=b;a.C&&Vj(a.C,!(b&128),!!(b&64));
l.Kl=function(a,b){Uj(this,b)};l.vk=function(){return this.ka};l.wk=function(){var a=this.ua;this.H&=-258;this.C&&Wj(this.C);return a};l.Nl=function(a,b){if(this.H&8)switch(this.P){case 96:Xj(this,b);break;case 209:Yj(this,b);break;default:if(Xj(this,this.R&-17),this.C){var c=this.C,d=b,e=-1;switch(c.G||d){case 255:e=250;c.Pb=[];Zj(c,170);break;case 243:c.G&&(d=0);Zj(c,250);c.G=d;break;case 237:c.G&&(d=0),Zj(c,250),c.G=d}ak(this,e)}}this.P=b;this.H&=-9};
l.xk=function(){return this.S&-209|(wc(this.A)&64?16:0)};l.Ol=function(a,b){Uj(this,b)};l.yk=function(){var a=this.H&255;this.H&256&&(this.H|=1,this.H&=-257);return a};
l.Ml=function(a,b){this.P=b;this.H|=8;var c=0;240<=this.P&&(c=this.P^15,this.P=240);switch(this.P){case 32:ak(this,this.R);break;case 173:Xj(this,this.R|16);break;case 174:Xj(this,this.R&-17);this.C&&Wj(this.C);break;case 170:this.C&&(this.C.Pb=[]);Xj(this,this.R|16);ak(this,85);Yj(this,3);break;case 171:ak(this,0);break;case 192:ak(this,this.W);break;case 208:ak(this,this.va);break;case 224:ak(this,this.R&16?0:1);break;case 240:c&1&&Bd(this.A)}};
function Xj(a,b){a.R=b;a.H=a.H&-5|b&4;a.C&&Vj(a.C,!!(b&8),!(b&16))}function ak(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Yj(a,b){a.va=b;Cb(a.ia,!!(b&2));b&1||Bd(a.A)}function bk(a,b){a.ca<Te?(Ve(a,1,4),a.ka|=1):a.R&16||a.H&257||(ak(a,b,!0),ck(a.C),Ve(a,1,120))}l.Mk=function(){return this.da};l.bm=function(a,b){this.da=b;this.ma=b&128?0:128};
function Xj(a,b){a.R=b;a.H=a.H&-5|b&4;a.C&&Vj(a.C,!!(b&8),!(b&16))}function ak(a,b,c){0<=b&&(a.ua=b,c?a.H|=1:(a.H&=-2,a.H|=256))}function Yj(a,b){a.va=b;xb(a.ia,!!(b&2));b&1||Bd(a.A)}function bk(a,b){a.ca<Te?(Ve(a,1,4),a.ka|=1):a.R&16||a.H&257||(ak(a,b,!0),ck(a.C),Ve(a,1,120))}l.Mk=function(){return this.da};l.bm=function(a,b){this.da=b;this.ma=b&128?0:128};
l.Nk=function(a,b){var c=this.da&63,d;if(13>=c)if(d=this.B[c],10>c){var e=!1;4!=c&&5!=c||this.B[11]&2||(12>d?d=d?d:12:d=(d-=12)?d+128:140,e=!0);this.B[11]&4||(e&&128<d&&(d-=48),d=d%10|d/10<<4)}else 10==c&&(this.B[c]^=128);else d=this.B[c];null!=b&&12==c&&(this.B[c]&=15,d&128&&Ue(this,8),d&64&&this.B[11]&64&&ej(this));return d};
l.cm=function(a,b){var c=this.da&63,d=b^this.B[c],e;if(13>=c){if(e=b,10>c){var f=!1;this.B[11]&4||(e=10*(e>>4)+(e&15),f=!0);if(4==c||5==c)f&&23<e&&(e+=48),this.B[11]&2||(12>=e?e=12==e?0:e:(e-=116,e=24==e?12:e))}}else e=b;this.B[c]=e;11==c&&d&64&&b&64&&ej(this)};l.Ej=function(a,b){this.ma=b};l.mm=function(){};l.nm=function(){this.od&&Pe(this.od)};
function fj(a,b){if(a.qa)try{void 0!==b?a.Oa=b:b=a.Oa&&a.A&&a.A.ea.Nb;var c=Math.round(1193181/Qj(a,2));if(20>c||2E4<c)b=!1;b?a.L?a.L.frequency.value=c:(a.L=a.qa.createOscillator(),a.L&&(a.L.type="number"==typeof a.L.type?1:"square",a.L.connect(a.qa.destination),a.L.frequency.value=c,"start"in a.L?a.L.start(0):a.L.noteOn(0))):a.L&&("stop"in a.L?a.L.stop(0):a.L.noteOff(0),a.L.disconnect(),delete a.L)}catch(d){a.Ba("AudioContext exception: "+d.message),a.qa=null}}
@ -407,10 +407,10 @@ 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 ("+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,
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(yb(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")};
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&&yb(this.ia,this.C,this.B,1)&&(this.D=!0,"ramCPQ"==this.Sd&&(this.controller=new jk(this),yb(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")};
l.save=function(){var a=new ee(this);this.controller&&F(a,0,this.controller.save());return a.data()};l.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function jk(a){this.G=a;this.C=lk;this.D=mk;this.B=nk;this.A=null}var kk=-2134900736,lk=65535,mk=2575,nk=2,ok=[null,0],pk=[function(a){return this.controller.Jb(a)},null,null,function(a,b){this.controller.Mc(a,b)},null,null];l=jk.prototype;l.save=function(){return[this.C,this.B]};
l.restore=function(a){this.Mc(0,a[0]&255);this.Mc(2,a[1]&255);return!0};l.Jb=function(a){var b=255;2>a?b=a&1?this.D>>8:this.D&255:4>a&&(b=a&1?this.B>>8:this.B&255);return b};l.Mc=function(a,b){if(a)2==a&&(this.B=this.B&-256|b);else if(b!=(this.C&255)){var c=this.G.ia;if(b&1)this.A&&(Hb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Ib(c,917504,131072));var d=Ib(c,16646144,131072);Hb(c,917504,131072,d,b&2?1:Lb)}this.C=this.C&-256|b}};l.ti=function(){return ok};l.qg=function(){return pk};
Ia(function(){for(var a=cb(document,"pcx86","ram"),b=0;b<a.length;b++){var c=a[b],d=$a(c),d=new ik(d);bb(d,c)}});function qk(a){Ma.call(this,"Keyboard",a,qk);rk(this,a.model);this.Y=Ba("Mobi");this.W=Ba("MSIE");this.R=0;this.P=this.ng=!1;this.B=[];this.da=50;eb(this)}Ua(qk);
@ -458,7 +458,7 @@ bl[98]=function(a,b){var c=a+this.H,d=Vk[b&15],d=d&this.controller.ob,d=d&this.c
bl[226]=function(a,b){var c=a+this.H,d=Vk[b&15],d=d^this.controller.ob,d=d&this.controller.tb|this.controller.ob&~this.controller.tb,d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ha=!0)};bl[3]=function(a,b){var c=a+this.H;b=b>>this.controller.Hc|b<<8-this.controller.Hc&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.tb;d=this.controller.ef&d|this.controller.ob&~d;d=d&this.controller.$a|this.V[c]&~this.controller.$a;this.V[c]!=d&&(this.V[c]=d,this.Ha=!0)};
function cl(a){var b=[];if(void 0!==a.Ra){b[0]=a.cc;b[1]=a.Lc;b[2]=a.lf;b[3]=a.aa;b[4]=a.sc|a.Vf<<8;b[5]=a.ab;if(5<=a.Ra){var c=[];c[0]=a.Pe;c[1]=a.Wd;c[2]=a.Kc;c[3]=a.ph;c[4]=a.mf;c[5]=a.Xf;c[6]=a.Ee;c[7]=a.De;c[8]=a.Gj;c[9]=a.Hj;c[10]=a.Ce;c[11]=a.Gd;c[12]=a.ob;c[13]=[a.cb,a.Fb,a.Vc];var d;a:if(d=a.sd){var e=0,f=[];if(void 0!==d[0])for(var g=0;2>g;g++)for(var h=g;h<d.length;){for(var k=d[h],m=h+2;m<d.length&&d[m]===k;)m+=2;f[e++]=m-h>>1;f[e++]=k;h=m}if(f.length<d.length){d=f;break a}}c[14]=d;c[15]=
a.tg|-2147483648;c[16]=a.kh;c[17]=a.$a;c[18]=a.Hc;c[19]=a.tb;c[20]=a.ef;c[21]=a.ld;c[22]=a.Cd;c[23]=a.vg;c[24]=a.wg;c[25]=a.cd;a.Ra==hk&&(c[26]=a.qh,c[27]=a.oh,c[28]=a.dd,c[29]=a.Bc,c[30]=a.Wf,c[31]=a.Be);b[6]=c}b[7]=a.Bg}return b}Xk.prototype.ti=function(a){return[this.sd,a-this.cb]};Xk.prototype.qg=function(){return this.A};
Xk.prototype.Zf=function(a){if(null!=a&&a!=this.tg){var b=a&65280,c=bl[b];c||b&4096&&(c=bl[4096]);var b=a&255,d=bl[b];d||b&16&&(d=bl[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.tg=a}};
Xk.prototype.Zf=function(a){if(null!=a&&a!=this.tg){var b=a&65280,c=bl[b];c||b&4096&&(c=bl[4096]);var b=a&255,d=bl[b];d||b&16&&(d=bl[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[1]=d;this.tg=a}};
function dl(a,b){var c=a.ab[b];if(null!=c&&5<=a.Ra){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ra==hk&&(e=32);break;case 10:5==a.Ra&&(d=32);break;case 16:d=4;a.Ra==hk&&(e=128);break;case 18:d=2;a.Ra==hk&&(e=64);break;case 21:d=8;a.Ra==hk&&(f=32);break;case 24:d=16,a.Ra==hk&&(f=64)}d&&(c|=a.ab[7]&d?256:0,c|=a.ab[7]&e?512:0,c|=a.ab[9]&f?512:0)}return c}var Yk=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Yk[hk]=["VGA",980,753664,16384,262144,7];var Kk=0;
l=Y.prototype;
l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;c=(c=Ik[this.ca])&&c[0];3!==c&&(Sb(b,this,el),Ub(b,this,fl));1!==c&&(Sb(b,this,gl),Ub(b,this,hl));5<=this.Ra&&(Sb(b,this,il),Ub(b,this,jl));this.Ra==hk&&(Sb(b,this,kl),Ub(b,this,ll));if((this.C=ob(a,"Keyboard"))&&this.Y){for(var e in this.la)0<e.indexOf("lock")&&this.C.zb("led",e,this.la[e]);this.C.zb(this.ce?"textarea":"canvas","kbd",this.G)}this.Bb=9;(this.S=ob(a,"ChipSet"))&&this.od&&5==this.Ra&&(this.Bb=Di(this.od,this.Bb));"mouse"==this.pd?
@ -475,22 +475,22 @@ function Mk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e
function vl(a,b){if(1==b)return a.oa[0]=Rk[0],a.oa[1]=Rk[7],a.oa;if(2==b){var c=a.D.lf;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Rk[c&15];c=c&32?Tk:Sk;for(d=0;d<c.length;d++)a.oa[d+1]=Rk[c[d]];return a.oa}if(a.R===a.Cb)return Rk;a.La&&b&&!a.oa[16]&&(a.La=!1);if(!a.La){var c=a.B,d=c.Be,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Uk;for(f=0;16>f;f++)g=e[f]&63,m?(g|=
(c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function gk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d}
function rl(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=vl(a);null!=a.Xa[0]&&wl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(wl(a,1,a.Xa[1],d,e,14,a.Ab,Pk,Qk)&&(c=!0),a.Ja&&wl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function wl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(xl(a,b,c,d,e,f,g,h,k)&&(m=!0),a.ae&&xl(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function xl(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],t=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,de:Array(t),ci:h.slice(0,t),Je:k,fg:Array(t)});for(k=0;k<t;k++){var z=h[k],E=x.de[k]?x.ci[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,qd=g,cn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),zb=void 0,Oc=void 0,$b=void 0,ve=8>va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b=
0;$b<va;$b++)for(var dn=m.Je&&E&1&&$b>=va-2,en=qd[$b<ve?W+zb*ve+$b:da+zb*ve+$b-ve],Hf=0;Hf<=J;Hf++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=($b<<J)+Hf,wj=dn||en&128>>(8<=Oc&&192<=zb&&223>=zb?7:Oc)?z:cn;yl(Gf,uj,vj,wj);J&&yl(Gf,uj+1,vj,wj)}tj.putImageData(Gf,(zb&15)*m.tc,(zb>>4)*m.uc)}m.de[E]="#"+fa(z[0],2)+fa(z[1],2)+fa(z[2],2);m.ci[E]=z;m.fg[E]=ue;m=!0}}a.xa[b]=x;return m}function zl(a){0<a.za||0<=a.ha?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function xl(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],t=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,de:Array(t),ci:h.slice(0,t),Je:k,fg:Array(t)});for(k=0;k<t;k++){var z=h[k],E=x.de[k]?x.ci[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,rd=g,cn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),zb=void 0,Pc=void 0,$b=void 0,ve=8>va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b=
0;$b<va;$b++)for(var dn=m.Je&&E&1&&$b>=va-2,en=rd[$b<ve?W+zb*ve+$b:da+zb*ve+$b-ve],Hf=0;Hf<=J;Hf++)for(Pc=0;Pc<ua;Pc++){var uj=Pc<<J,vj=($b<<J)+Hf,wj=dn||en&128>>(8<=Pc&&192<=zb&&223>=zb?7:Pc)?z:cn;yl(Gf,uj,vj,wj);J&&yl(Gf,uj+1,vj,wj)}tj.putImageData(Gf,(zb&15)*m.tc,(zb>>4)*m.uc)}m.de[E]="#"+fa(z[0],2)+fa(z[1],2)+fa(z[2],2);m.ci[E]=z;m.fg[E]=ue;m=!0}}a.xa[b]=x;return m}function zl(a){0<a.za||0<=a.ha?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function ul(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Al(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ha!=c&&(Al(a),a.ha=c);d=d-b+1;if(a.rd!=b||a.Gc!=d)a.rd=b,a.Gc=d;a.Da=e+1;zl(a)}}}
function Al(a){if(0<=a.ha){if(void 0!==a.ba){var b=a.ba[a.ha];if(b&131072){var b=b&-131073,c=a.ha%a.H,d=a.ha/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&Bl(a,c,d,b,a.Ga),Bl(a,c,d,b));a.ba[a.ha]=b}}a.ha=-1}}
function Cl(a){var b,c=a.D;a.Xc=!1;var d=c.Gd[5];if(null!=d){b=1024;var e=0,f=c.Gd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ra==hk&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.De[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Xc=!0));b|=e}return b}
function Dl(a,b){var c=a.D;return c&&null!=b&&b!=c.tg?(c.Zf(b),a.ia.Zf(c.cb,c.Fb,c.qg(),!0),!0):!1}
function tl(a,b){var c,d=a.va,e=a.D;if(e)if(1==e.Ra)d=7;else if(5<=e.Ra){var d=null,f=e.Vc>>2,g=32768<f?32768:f,h=e.Gd[6];if(null!=h){switch(h&12){case 0:e.cb=655360;e.Fb=f;d=255;break;case 4:e.cb=655360;e.Fb=f;d=3==a.ma?15:16;break;case 8:e.cb=720896;e.Fb=g;d=7;break;case 12:e.cb=753664,e.Fb=g,d=3==a.ma?2:3}c=80==(e.Gd[5]&80);!c||e.cb==a.cb&&e.Fb==a.Fb||(b=!0);var f=dl(e,6),g=e.ab[9],k=e.ab[23],m=e.De[1]&8;255!=d&&(h&1?655360==e.cb||c||k&1?e.Gd[5]&64?d=g&31?143>=e.ab[18]?19:20:21:g&128||350>f?d=
m?13:14:480<=f&&(d=3==a.ma?17:18):d=m?7-d:6:d-=m?2:0);c=Cl(a)}}else e.Lc&8&&(e.Lc&2?(d=e.Lc&16?6:5,e.Lc&4||--d):(d=e.Lc&1?3:1,e.Lc&4&&--d));else a.va=null,null==d&&(d=a.ka);if(!sl(a,d,b))return!1;Dl(a,c);return!0}
function sl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.R);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){Al(a);if(a.cb){if(!Kb(a.ia,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!Db(a.ia,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Ob;a.L=a.wc;a.Ta=a.H;a.Hb=Jk[7][2];b=0;if(c=Jk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>dl(a.B,18)?43:50:a.I=a.Ra);a.nd=a.H*a.L|0;a.md=a.nd/a.Hb|
function sl(a,b,c){if(null!=b&&(b!=a.va||c)){a.Id=0;a.va=b;a.La=!1;b=a.D||(7==b?a.Z:a.R);if(b!=a.D||b.cb!=a.cb||b.Fb!=a.Fb){Al(a);if(a.cb){if(!Kb(a.ia,a.cb,a.Fb))return!1;a.D&&(a.D.cc=!1)}a.D=b;b.cc=!0;a.cb=b.cb;a.Fb=b.Fb;if(!yb(a.ia,b.cb,b.Fb,3,b===a.B?b:null))return!1}a:{a.I=0;a.H=a.Ob;a.L=a.wc;a.Ta=a.H;a.Hb=Jk[7][2];b=0;if(c=Jk[a.va])a.H=c[0],a.L=c[1],a.Hb=c[2],b=c[3],a.I=c[4],4!=a.ma&&7!=a.ma||a.D!==a.B||3!=a.I||(7==(a.B.ab[9]&31)?a.L=350>dl(a.B,18)?43:50:a.I=a.Ra);a.nd=a.H*a.L|0;a.md=a.nd/a.Hb|
0;a.fb=a.md;a.fc=0;void 0!==b&&(a.fb=(a.fb<<1)+b|0,a.fc=a.fb+b>>1);if(a.xa.length){a.ra=a.da/a.H|0;a.ua=a.pa/a.L|0;if(a.I){b=a.xa[a.I];if(!b)break a;c=a.xa[a.I<<1];a.bd&&80==a.H?c&&a.ra>=3*c.tc>>2&&(a.I<<=1,b=c):(c&&a.ra>=c.tc&&(a.I<<=1,b=c),a.bd||(a.ra=b.tc,a.ua=b.uc));a.pb=a.qb=0;b&&(a.pb=a.H*b.tc,a.qb=a.L*b.uc)}else a.ra=a.ua=1,a.pb=a.H,a.qb=a.L;a.Oa=a.P.createImageData(a.pb,a.qb);a.Fa=document.createElement("canvas");a.Fa.width=a.pb;a.Fa.height=a.qb;a.Ga=a.Fa.getContext("2d");a.yc=a.zc=0;a.ic=
a.da;a.mc=a.pa;b=a.da-a.H*a.ra;c=a.pa-a.L*a.ua;0<b&&(a.yc=b>>1,a.ic-=b);0<c&&(a.zc=c>>1,a.mc-=c);if(b||c)a.P.fillStyle=a.Y.style.backgroundColor,a.P.fillRect(0,0,a.da,a.pa)}}El(a,!0);nl(a)}return!0}function yl(a,b,c,d){b=(b+c*a.width)*d.length;a.data[b]=d[0];a.data[b+1]=d[1];a.data[b+2]=d[2];a.data[b+3]=d[3]}function Fl(a){a.za=-1;a.qa=!1;var b=a.md;if(void 0===a.ba||a.ba.length!=b)a.ba=Array(b)}function El(a,b){b||(a.La=!1);Fl(a)}
function Bl(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.xa[a.I];h.Je&&(d=h.Je[d]);var k=g>>4&15;h.Je&&(k=h.Je[k]);e?(b*=h.tc,c*=h.uc,e.fillStyle=h.de[k],e.fillRect(b,c,h.tc,h.uc)):(b=b*a.ra+a.yc,c=c*a.ua+a.zc,a.P.fillStyle=h.de[k],a.P.fillRect(b,c,a.ra,a.ua));g&256&&(k=(f&15)*h.tc,f=(f>>4)*h.uc,e?e.drawImage(h.fg[d],k,f,h.tc,h.uc,b,c,h.tc,h.uc):a.P.drawImage(h.fg[d],k,f,h.tc,h.uc,b,c,a.ra,a.ua));g&512&&(f=a.rd,g=a.Gc,e?(a.Da&&a.Da!==h.uc&&(f=f*h.uc/a.Da|0,g=g*h.uc/a.Da|0),e.fillStyle=h.de[d],e.fillRect(b,
c+f,h.tc,g)):(a.Da&&a.Da!==a.ua&&(f=f*a.ua/a.Da|0,g=g*a.ua/a.Da|0),a.P.fillStyle=h.de[d],a.P.fillRect(b,c+f,a.ra,g)))}
function nl(a,b){if(a.ea.Vb){var c=!1,d=a.D;d&&(d!==a.B?d.Lc&8&&(c=!0):d.Wd&32&&(c=!0));if(c||b){if(b)Fl(a);else if(void 0===a.ba)return;var e=!1;!(b||++a.Id&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.nd,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(Gl(a,d)&8||d.ye&&d.ye<d.lh){var m=(d.ab[12]<<8)+d.ab[13]|0;d.cd!==m&&(d.cd=m,El(a));d.ye=0}m=d.cd;a.I&&(m<<=1);var c=c+m,p=a.fb;5<=a.Ra&&d.ab[19]&&d.ab[19]<<1!=d.ab[1]+1&&(a.Ta=d.ab[19]<<(a.I?1:d.ab[20]&64?3:4),p=(a.Ta*(a.L-1)+a.H)/a.Hb|0,7>=a.va&&
(p<<=1));c+p>k&&(p=k-c,0>p&&(p=0));k=c+p;if(m=!b&&a.qa){for(var m=a.ia,x=!0,t=c>>>m.da;0<p&&t<m.R.length;)m.R[t].Ha&&(m.R[t].Ha=x=!1,m.R[t].pi=!0),p-=m.xb,t++;m=x}if(m){if(!e)return;if(!a.za){f=a.ha-d.cd;if(0>f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;p=a.D.Lc&32;5<=a.Ra&&(p=a.D.Kc[16]&8);m=a.ha-a.D.cd;p&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)p=Qb(a.ia,c),p|=65536,p&e&&(a.za++,p&=h),d==m&&(p|=a.Ea&1?131072:0),a.qa&&p===a.ba[d]||(Bl(a,d%a.H,d/a.H|0,p,a.Ga),
a.ba[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.P.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);zl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=vl(a,h),x=p=0,t=a.H,E=0,J=a.L,W=0;k<g;){z=Qb(a.ia,k);if(a.qa&&z===a.ba[d])p+=f;else{a.ba[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<t&&(t=p);for(var va=0;va<f;va++){var qd=(z&(da>>=h))>>(ua-=h);yl(a.Oa,p++,x,m[qd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
a.ba[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.P.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);zl(a)}}else if(a.fc){for(var g=k,z,k=c,d=a.za=0,f=a.Hb,e=16==f?65536:196608,h=16==f?1:2,m=vl(a,h),x=p=0,t=a.H,E=0,J=a.L,W=0;k<g;){z=Qb(a.ia,k);if(a.qa&&z===a.ba[d])p+=f;else{a.ba[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<t&&(t=p);for(var va=0;va<f;va++){var rd=(z&(da>>=h))>>(ua-=h);yl(a.Oa,p++,x,m[rd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
!0;t<a.H&&(a.Ga.putImageData(a.Oa,0,0,t,J,E-t,W-J),a.P.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else if(a.Xc){g=h;f=a.za=0;e=vl(a,8);h=a.D.sd;p=m=0;x=a.H;t=0;E=a.L;J=0;W=a.D.De[4]&8?4:1;z=a.D.Kc[19]&15;for(da=a.Ta>a.H?a.Ta-a.H-z>>3:0;c<k;){d=h[c-g];va=4;z||(a.qa&&d===a.ba[f]?(m+=va,va=0):a.ba[f]=d,f++);if(va){m<x&&(x=m);for(ua=0;ua<va;ua++)yl(a.Oa,m++,p,e[d&255]),d>>=8;m>t&&(t=m);p<E&&(E=p);p>=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);x<a.H&&(a.Ga.putImageData(a.Oa,0,0,
x,E,t-x,J-E),a.P.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else{g=h;d=a.za=0;f=vl(a);e=a.D.sd;m=h=0;p=a.H;x=0;t=a.L;E=0;J=a.D.Kc[19]&15;for(W=a.Ta>a.H?a.Ta-a.H-J>>3:0;c<k;){z=c++-g;z=e[z];ua=8;J?h?(da=a.H-h,ua>da&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.ba[d]?(h+=ua,ua=0):a.ba[d]=z,d++);if(ua){h<p&&(p=h);for(da=0;da<ua;da++)va=Wk[z&2155905152]||0,yl(a.Oa,h++,m,f[va]),z<<=1;h>x&&(x=h);m<t&&(t=m);m>=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);p<a.H&&(a.Ga.putImageData(a.Oa,0,
0,p,t,x-p,E-t),a.P.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}}}}function Gl(a,b){var c=0,d=wc(a.A)-b.Bg;0>d&&(b.Bg=d,d=-d|0);d%b.xg>b.Gl&&(c|=1);d%b.Ag>b.Il&&(c|=9);b.lh=d/b.Ag|0;return c}l.el=function(){var a=this.Z,b;a.cc&&(b=a.sc);return b};l.wm=function(a,b){var c=this.Z;c.Vf=c.sc;c.sc=b&31};l.dl=function(){return Hl(this.Z)};l.vm=function(a,b){Il(this,this.Z,b)};l.fl=function(){return this.Z.Lc};l.xm=function(a,b){this.Z.Lc=b;tl(this,!1)};l.gl=function(){return Jl(this,this.Z)};
@ -528,7 +528,7 @@ function cm(a,b,c){Ma.call(this,"Disk",{id:a.Fe+".disk"+fa(++dm,4)},cm);this.con
l.Tb=function(a,b){if(this.D){var c,d=0;if(this.R&&!wa("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=fm(this,!1);)if(d=c[0]){this.controller.Ba('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.D&&(c="action=close&volume="+this.H,c+="&machine="+this.controller.ue(),c+="&user="+this.controller.yd(),sa(ta()+"/api/v1/disk?"+c,null,!0),this.D=!1);!d&&a&&this.controller.Ba(this.B+" saved")}return!0};
function em(a,b,c,d,e,f){a.mode=b;a.ib=c;a.jb=d;a.eb=e;a.nb=f;a.A=[];if("preload"!=a.mode){b=Array(a.ib);for(c=0;c<b.length;c++){d=Array(a.jb);for(e=0;e<d.length;e++){f=Array(a.eb);for(var g=1;g<=f.length;g++)f[g-1]=gm(null,c,e,g,a.nb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.sh=ga(b);var g=this;this.K=d;this.ia=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.ib=d[0];g.jb=d[1];g.eb=d[2];g.nb=512;b=g.nb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.jb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.eb),W=0;W<J.length;W++){for(var da=gm(null,c,E,W+1,g.nb,0),ua=da.data,va=0;va<
b;va++,e+=4)var qd=ua[va]=a.getInt32(e,!0),d=d+qd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ha(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=hm(this,b),this.Ff=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
b;va++,e+=4)var rd=ua[va]=a.getInt32(e,!0),d=d+rd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ha(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=hm(this,b),this.Ff=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):
ia(b,"/")&&(c="dir"),f=ta()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.qe?"":d)+"&format=json"));return!!sa(f,null,!0,function(a,b,c){im(g,a,b,c)})};
function im(a,b,c,d){var e=null;a.te=!1;var f=0>d&&a.ba&&!a.ba.ea.Vb;if(a.Ff)d?a.controller.Ba('Unable to connect to disk "'+a.H+'" (error '+d+": "+c+")",f):(a.D=!0,e=a);else if(d)a.controller.Ba('Unable to load disk "'+a.B+'" (error '+d+": "+b+")",f);else{Wa(a.controller.Fe,b,c);try{if(0<ga(a.sh,!0).toLowerCase().indexOf("-readonly"))a.te=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.te=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)r(h[0]);else{a.ib=h.length;a.jb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.nb=k&&k.length||512;for(d=c=0;d<a.ib;d++)for(f=0;f<a.jb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,p=k.pattern;void 0===p&&(p=k.pattern=0);var x=k.data;if(void 0===x){var t=k.bytes;if(void 0!==t&&t.length){for(var z=
@ -620,7 +620,7 @@ function zn(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Bn(a,"1.30.0");d.d
function ob(a,b,c){a=Xa(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}function xc(a,b){if(a.I.length){var c=0,d=0;b&&window&&(c=window.scrollX,d=window.scrollY);var e=a.I[0];e.G&&e.G.focus();b&&window&&window.scrollTo(c,d)}}l.Zd=function(a){this.A&&this.A.Zd(a);this.D&&this.D.Zd(a)};
function Ac(a,b){for(var c=0;c<a.I.length;c++)nl(a.I[c],b);if(a.D&&(c=a.D,c.ua)){sb(c,18,c.S,c.ra);if(c.Ga){var d=c.ia,e=c.B,f,g;null==f&&(f=0);null==g&&(g=d.L-f|0);null==e&&(e={lg:0,fd:0,eg:[]});var h=f>>>d.da;f=f+g-1>>>d.da;e.lg=0;for(e.fd=0;h<=f;)g=d.R[h],e.lg+=g.size,g.size&&(e.eg.push(qa(rb,h,0,0,g.type)),e.fd++),h++;c.B=e;c.ma=c.B.fd*c.ia.xb/691200;d=0;c.B.hi=0;c.B.Ke||(c.B.Ke=[]);var e=-1,h=0,k=-1;for(f=0;f<c.B.fd;f++){var m=c.B.eg[f];g=ra(rb.type,m);m=ra(rb.Bj,m);if(g!=e||m!=k+1)(k=f-h)&&
(d+=ub(c,h,k,e)),e=g,h=f;k=m}d+=ub(c,h,f-h,e);e=c.B.ek!=d;c.B.ek=d;if(e){e=new mb(0,0,c.S.width,c.S.height);c.B.ee=[];h=c.B.fd;for(d=0;d<c.B.hi;d++)f=c.B.Ke[d].fd,c.B.ee.push(nb(e,f,h,!d)),h-=f;for(d=0;d<c.B.ee.length;d++)e=c.B.Ke[d],h=f=c.B.ee[d],g=c.ra,(k=ac[e.type])||(k=new lb),g.strokeStyle="black",g.strokeRect(h.x,h.y,h.Fc,h.A),g.fillStyle="string"==typeof k?k:k.toString(),g.fillRect(h.x,h.y,h.Fc,h.A),h=c,g=f,h.P=h.ha,h.L=h.ka,f=g.x+(g.Fc>>1),k=g.y+(g.A>>1),m=g.A,g.Fc<g.A&&(m=g.Fc,h.da=!0,h.G.save(),
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.P=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Gb[e.type]+" ("+(e.fd*c.ia.xb/1024|0)+"Kb)",h.G.font=h.P,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,tb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else tb(c,"This space intentionally left blank");c.context.drawImage(c.S,0,0,c.S.width,c.S.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
h.G.translate(f,k),h.G.rotate(-Math.PI/2),f=k=0),m<h.L&&(h.L=m,h.P=h.L+"px Monaco, Lucida Console, Courier New"),g=k,h.D=f,h.K=g,h=c,e=Cb[e.type]+" ("+(e.fd*c.ia.xb/1024|0)+"Kb)",h.G.font=h.P,h.D-=h.G.measureText(e).width>>1,h.K+=(h.L>>1)-2,tb(h,e),h.da&&(h.G.restore(),h.da=!1)}}else tb(c,"This space intentionally left blank");c.context.drawImage(c.S,0,0,c.S.width,c.S.height,c.Oa,c.Xa,c.Da,c.Fa);c.ua=!1}}
Ia(function(){for(var a=cb(document,"pcx86-machine"),b=0;b<a.length;b++)for(var c=a[b],d=$a(c),c=cb(c,"pcx86","computer"),e=0;e<c.length;e++){var f=c[e],g=$a(f),g=new ln(g,d,!0);bb(g,f);g.ba&&qn(g,g.hf)}});Da.show.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=$a(a[b]);(c=Za("Computer",c.id))&&c.ka&&!c.ea.Vb&&c.hf(-1)}});
Da.exit.push(function(){for(var a=cb(document,"pcx86","computer"),b=0;b<a.length;b++){var c=$a(a[b]);(c=Za("Computer",c.id))&&c.ea.Vb&&yn(c,!(!c.B||c.S),!0)}});function ee(a,b,c){this.id=a.id;this.key=Bn(a,b,c);this.Ia=a.Ia;vn(this,a.Fj)}function Bn(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}
ee.prototype={constructor:ee,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:ya()&&(a=za(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){vn(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)==

View file

@ -9,7 +9,7 @@ function t(a){window&&window.alert(a)}function ya(a){var b=!1;window&&(b=window.
function Ca(a,b){try{return window.localStorage.setItem(a,b),!0}catch(d){}return!1}function Ia(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ja(a,b,d){function c(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(c,0):d()}c()}
function Ka(a,b){function d(){b(100===c)&&(e=setTimeout(d,c),c=100)}var c=0,e=null,f=!1;a.onmousedown=function(){f||e||(c=500,d())};a.ontouchstart=function(){e||(c=500,d())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var La={init:[],show:[],exit:[]},Ma=!1,Na=!1,Oa=!0;function Pa(a,b){if(window){var d=window[a];window[a]="function"!==typeof d?b:function(){d&&d();b()}}}function Qa(a){La.init.push(a)}
function Ra(a){if(Oa)try{for(var b=0;b<a.length;b++)a[b]()}catch(d){t(""+("An unexpected exception occurred:\n\n"+d.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Sa(a){!Oa&&a?(Oa=!0,Ma&&Ta("init"),Na&&Ta("show")):Oa=a}function Ta(a){La[a]&&Ra(La[a])}Pa("onload",function(){Ma=!0;Ra(La.init)});Pa("onpageshow",function(){Na=!0;Ra(La.show)});Pa(Ia("Opera")||Ia("iOS")?"onunload":"onbeforeunload",function(){Ra(La.exit)});
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.tb=b.comment;this.Mb=b;b=this.id.indexOf(".");0>b?this.gb=this.id:(this.ub=this.id.substr(0,b),this.gb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,Ga:!1,hb:!1,$:!1,error:!1};this.bb=null;this.A.error=!1;this.K={};this.I=null;this.aa=c||0;x.push(this)}var Ua=void 0,Va={};
function u(a,b,d,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.tb=b.comment;this.Mb=b;b=this.id.indexOf(".");0>b?this.gb=this.id:(this.ub=this.id.substr(0,b),this.gb=this.id.substr(b+1));this[a]=d;this.A={ready:!1,Ha:!1,hb:!1,$:!1,error:!1};this.bb=null;this.A.error=!1;this.K={};this.I=null;this.aa=c||0;x.push(this)}var Ua=void 0,Va={};
if(window){Ua||(Ua=window.location.search.substr(1));for(var Wa,Xa=/\+/g,Ya=/([^&=]+)=?([^&]*)/g;Wa=Ya.exec(Ua);)Va[decodeURIComponent(Wa[1].replace(Xa," "))]=decodeURIComponent(Wa[2].replace(Xa," "))}function Za(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var d=typeof a;if("object"!==d&&"function"!==d)throw new TypeError;}b.prototype=a;return new b}
function y(a,b){b||(b=u);a.prototype=Za(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var $a=window.PCjs.Machines||(window.PCjs.Machines={}),x=window.PCjs.Components||(window.PCjs.Components=[])}else $a={},x=[];function ab(a,b,d){$a[a]&&b&&($a[a][b]=d)}function bb(a){var b,d=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var c=x[b];a&&c.id.indexOf(a)||d.push(c)}return d}
function cb(a,b){var d;if(void 0!==a){var c;b&&(b=0<(c=b.indexOf("."))?b.substr(0,c+1):"");for(c=0;c<x.length;c++)if(d)d==x[c]&&(d=null);else if(!(a!=x[c].type||b&&x[c].id.indexOf(b)))return x[c]}return null}function B(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(d){t(d.message+" ("+a+")")}return b}
@ -17,51 +17,51 @@ function nb(a,b){for(var d=C(b.parentNode,"pdp11-control"),c=0;c<d.length;c++)fo
function C(a,b,d){d&&(b+="-"+d+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var c;d=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(c=a.length;b<c;b++)e.test(a[b].className)&&d.push(a[b]);return d}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},ha:function(a,b,d){switch(b){case "clear":return this.K[b]||(this.K[b]=d,d.onclick=function(a){return function(){a.K.print&&(a.K.print.value="")}}(this)),!0;case "print":return this.K[b]||(this.xa=this.K[b]=d,d.value="",this.g=function(a){return function(b,d){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==d?d+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(d),
this.ea=function(a){this.g(a,this.gb)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.gb+": "+a)},ea:function(a,b,d){d=d||this.type;b||t((d?d+": ":"")+a)},ta:function(){return this.A.$=!0},sa:function(a,b){b&&(this.A.$=!1);return!0}};function ob(a,b){if(a.I){a===a.I?b|=0:b=b||a.aa;var d=a.I.aa&b;return!!b&&d===b||!!(d&a.I.Hb)}return!1}
function pb(a,b){if(a.A.hb)return a.A.Ga&&(a.A.Ga=!1),a.A.hb=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.Ga=b;return a.A.Ga}function qb(a,b){a.A.Ga&&(b?a.A.hb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Ga}function E(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.bb;a.bb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.bb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.ea(b)}
function pb(a,b){if(a.A.hb)return a.A.Ha&&(a.A.Ha=!1),a.A.hb=!1;if(a.A.error)return a.g(a.toString()+" error"),!1;a.A.Ha=b;return a.A.Ha}function qb(a,b){a.A.Ha&&(b?a.A.hb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Ha}function E(a){if(!a.A.error&&(a.A.ready=!0,a.A.ready)){var b=a.bb;a.bb=null;b&&b()}}function rb(a,b){b&&(a.A.ready?b():a.bb=b);return a.A.ready}function sb(a,b){a.A.error=!0;a.ea(b)}
var tb="undefined"!==typeof ArrayBuffer,F={cpu:1,bus:64,mem:128,keyboard:65536,key:131072,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};function ub(a){u.call(this,"Panel",a,ub)}y(ub);m=ub.prototype;m.ha=function(a,b,d,c){return this.j&&this.j.ha(a,b,d,c)||this.f&&this.f.ha(a,b,d,c)||this.I&&this.I.ha(a,b,d,c)?!0:this.parent.ha.call(this,a,b,d,c)};m.va=function(a,b,d,c){this.j=a;this.F=b;this.f=d;this.I=c};
m.ta=function(a,b){b||vb();return!0};m.sa=function(){return!0};m.ja=function(){};function vb(){for(var a=!1,b=C(document,"pdp11","panel"),d=0;d<b.length;d++){var c=b[d],e=B(c),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new ub(e));nb(f,c);a&&E(f)}}Qa(vb);
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.I=d;this.L=a.busWidth||16;this.J=Math.pow(2,this.L);this.j=this.J-1|0;this.S=(this.L>>1)+2;10>this.S&&(this.S=10);15<this.S&&(this.S=15);this.ma=1<<this.S;this.M=this.ma>>2;this.F=this.ma-1;this.G=this.J/this.ma|0;this.B=this.G-1;this.$a=[];a=new G;xb(a,this.I);this.N=Array(this.G);for(b=0;b<this.G;b++)this.N[b]=a;this.Oa=Array(4);this.Oa[0]=yb;this.Oa[1]=zb;this.Oa[2]=Ab;this.Oa[3]=Bb;this.H=this.J-8192;Cb(this,this.H,8192,Db,this);E(this)}
y(wb);function yb(){return 0}function zb(a,b){var d=this.controller.$a[a];return d?d[0](b):0}function Ab(){}function Bb(a,b,d){return(a=this.controller.$a[a])?a[1](b,d):0}m=wb.prototype;m.reset=function(){};m.ta=function(a,b){b||this.reset();return!0};
function Cb(a,b,d,c,e){for(var f=b,h=d,g=f>>>a.S;0<h&&g<a.N.length;){var k=a.N[g],l=g*a.ma,n=a.ma-(f-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==e){if(f+h<=k.D)return k.Ya+=k.D-f,k.D=f,!0;if(f>=k.D+k.Ya){n=k.size-(f-l);n>h&&(n=h);k.Ya=f-k.D+n;f=l+a.ma;h-=n;g++;continue}}return Eb(1,f,h)}f=new G(f,n,a.ma,c,e);xb(f,a.I,k);a.N[g++]=f;f=l+a.ma;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Qb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
m.Sa=function(a){return this.N[(a&this.j)>>>this.S].Ka(a&this.F,a)};m.pa=function(a){var b=a&this.F,d=(a&this.j)>>>this.S;return b!=this.F?this.N[d].Db(b,a):this.N[d++].Ka(b,a)|this.N[d&this.B].Ka(0,a+1)<<8};function Rb(a,b){var d=b&a.F,c=(b&a.j)>>>a.S;return d!=a.F?a.N[c].kb(d,b):a.N[c++].Wa(d,b)|a.N[c&a.B].Wa(0,b+1)<<8}m.fb=function(a,b){this.N[(a&this.j)>>>this.S].Ma(a&this.F,b&255,a)};
m.lb=function(a,b){var d=a&this.F,c=(a&this.j)>>>this.S;d!=this.F?this.N[c].Fb(d,b&65535,a):(this.N[c++].Ma(d,b&255,a),this.N[c&this.B].Ma(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}function Sb(a){u.call(this,"Device",a,Sb);this.j=a.name}y(Sb);
Sb.prototype.va=function(a,b,d,c){this.F=b;this.f=d;this.I=c;switch(this.j){default:a=Tb;for(var e in a){var f=a[e];d=b;c=+e;for(var h=f[0]?f[0].bind(this):null,f=f[1]?f[1].bind(this):null,g=+e;g<=c;g+=2){var k=g&8191;if(0>k||8192<=k){t("I/O address out of bounds: "+r(d.H+k,8,!0));break}void 0!==d.$a[k]?t("I/O address already registered: "+r(d.H+k,8,!0)):d.$a[k]=[h,f,!1]}}}E(this)};Sb.prototype.cb=function(){return this.f.cb()};Sb.prototype.Za=function(a){this.f.Za(a)};var Tb={};
Tb[4194302]=[Sb.prototype.cb,Sb.prototype.Za];Qa(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Sb(c);nb(c,d)}});var Ub;if(tb){var Vb=new ArrayBuffer(2);(new DataView(Vb)).setUint16(0,256,!0);Ub=256===(new Uint16Array(Vb))[0]}else Ub=!1;var Wb=Ub;
function G(a,b,d,c,e){this.id=Xb+=2;this.f=null;this.D=a;this.Ya=b;this.size=d||0;this.type=c||Yb;this.K=c==Zb;this.controller=null;xb(this);this.ua=this.Jb=!1;if(d)if(e)this.controller=e,this.f=null,$b(this,e.Oa);else if(tb)this.H=new ArrayBuffer(d),this.J=new DataView(this.H,0,d),this.F=new Uint8Array(this.H,0,d),this.M=new Uint16Array(this.H,0,d>>1),this.f=new Int32Array(this.H,0,d>>2),$b(this,Wb?ac:bc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;$b(this,cc)}else $b(this)}
var Yb=0,Zb=2,Db=4,Qb=["NONE","RAM","ROM","VID","H/W"],Xb=0;
function wb(a,b,d){u.call(this,"Bus",a,wb);this.f=b;this.I=d;this.L=a.busWidth||16;this.J=Math.pow(2,this.L);this.j=this.J-1|0;this.S=(this.L>>1)+2;10>this.S&&(this.S=10);15<this.S&&(this.S=15);this.ma=1<<this.S;this.M=this.ma>>2;this.F=this.ma-1;this.G=this.J/this.ma|0;this.B=this.G-1;this.Ea=[];a=new G;xb(a,this.I);this.N=Array(this.G);for(b=0;b<this.G;b++)this.N[b]=a;this.Pa=Array(4);this.Pa[0]=yb;this.Pa[1]=zb;this.Pa[2]=Ab;this.Pa[3]=Bb;this.H=this.J-8192;Cb(this,this.H,8192,Db,this);E(this)}
y(wb);function yb(a,b){var d=this.controller.Ea[a];return d&&d[0]?d[0](b):0}function Ab(a,b,d){if((a=this.controller.Ea[a])&&a[1])a[1](d,b)}function zb(a,b){var d=this.controller.Ea[a];if(d){if(d[2])return d[2](b);if(d[0])return d[0](b)|d[0](b+1)<<8}return 0}function Bb(a,b,d){if(a=this.controller.Ea[a])if(a[3])a[3](d,b);else a[1]&&(a[1](d,b&255),a[1](d+1,b>>8))}m=wb.prototype;m.reset=function(){};m.ta=function(a,b){b||this.reset();return!0};
function Cb(a,b,d,c,e){for(var f=b,h=d,g=f>>>a.S;0<h&&g<a.N.length;){var k=a.N[g],l=g*a.ma,n=a.ma-(f-l);n>h&&(n=h);if(k&&k.size){if(k.type==c&&k.controller==e){if(f+h<=k.D)return k.Za+=k.D-f,k.D=f,!0;if(f>=k.D+k.Za){n=k.size-(f-l);n>h&&(n=h);k.Za=f-k.D+n;f=l+a.ma;h-=n;g++;continue}}return Eb(1,f,h)}f=new G(f,n,a.ma,c,e);xb(f,a.I,k);a.N[g++]=f;f=l+a.ma;h-=n}return 0>=h?(a.status(Math.floor(d/1024)+"Kb "+Fb[c]+" at "+r(b,8,!0)),!0):Eb(2,b,d)}
m.Ta=function(a){return this.N[(a&this.j)>>>this.S].La(a&this.F,a)};m.pa=function(a){var b=a&this.F,d=(a&this.j)>>>this.S;return b!=this.F?this.N[d].Db(b,a):this.N[d++].La(b,a)|this.N[d&this.B].La(0,a+1)<<8};function Rb(a,b){var d=b&a.F,c=(b&a.j)>>>a.S;return d!=a.F?a.N[c].kb(d,b):a.N[c++].Xa(d,b)|a.N[c&a.B].Xa(0,b+1)<<8}m.fb=function(a,b){this.N[(a&this.j)>>>this.S].Na(a&this.F,b&255,a)};
m.lb=function(a,b){var d=a&this.F,c=(a&this.j)>>>this.S;d!=this.F?this.N[c].Fb(d,b&65535,a):(this.N[c++].Na(d,b&255,a),this.N[c&this.B].Na(0,b>>8&255,a+1))};function Eb(a,b,d){t("Memory block error ("+a+": "+r(b)+","+r(d)+")");return!1}function Sb(a){u.call(this,"Device",a,Sb);this.j=a.name}y(Sb);
Sb.prototype.va=function(a,b,d,c){this.F=b;this.f=d;this.I=c;switch(this.j){default:a=Tb;for(var e in a){var f=a[e];d=b;c=+e;for(var h=f[0]?f[0].bind(this):null,g=f[1]?f[1].bind(this):null,k=f[2]?f[2].bind(this):null,f=f[3]?f[3].bind(this):null,l=+e;l<=c;l+=2){var n=l&8191;if(0>n||8192<=n){t("I/O address out of bounds: "+r(d.H+n,8,!0));break}void 0!==d.Ea[n]?t("I/O address already registered: "+r(d.H+n,8,!0)):d.Ea[n]=[h,g,k,f,!1]}}}E(this)};Sb.prototype.cb=function(){return this.f.cb()};
Sb.prototype.$a=function(a){this.f.$a(a)};var Tb={};Tb[4194302]=[null,null,Sb.prototype.cb,Sb.prototype.$a];Qa(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Sb(c);nb(c,d)}});var Ub;if(tb){var Vb=new ArrayBuffer(2);(new DataView(Vb)).setUint16(0,256,!0);Ub=256===(new Uint16Array(Vb))[0]}else Ub=!1;var Wb=Ub;
function G(a,b,d,c,e){this.id=Xb+=2;this.f=null;this.D=a;this.Za=b;this.size=d||0;this.type=c||Yb;this.K=c==Zb;this.controller=null;xb(this);this.ua=this.Jb=!1;if(d)if(e)this.controller=e,this.f=null,$b(this,e.Pa);else if(tb)this.H=new ArrayBuffer(d),this.J=new DataView(this.H,0,d),this.F=new Uint8Array(this.H,0,d),this.M=new Uint16Array(this.H,0,d>>1),this.f=new Int32Array(this.H,0,d>>2),$b(this,Wb?ac:bc);else{this.f=Array(d>>2);for(a=0;a<this.f.length;a++)this.f[a]=0;$b(this,cc)}else $b(this)}
var Yb=0,Zb=2,Db=4,Fb=["NONE","RAM","ROM","VID","H/W"],Xb=0;
G.prototype={constructor:G,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(tb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.J.getInt32(b<<2,!0);else a=this.f;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(tb)for(b=0;b<a.length;b++)this.J.setInt32(b<<2,a[b],!0);else this.f=a;return this.ua=!0}return!1},wa:function(a,b){b?0===this.B++&&dc(this,ec,!1):0===this.j++&&fc(this,ec,!1)},O:function(){this.I&&ob(this.I,129)&&
this.I.message("attempt to read invalid block %"+r(this.D),!0);return 255},G:function(a,b){this.I&&ob(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},P:function(a,b){return this.Ka(a++,b++)|this.Ka(a,b)<<8},L:function(a,b,d){this.Ma(a++,b&255,d++);this.Ma(a,b>>8,d)},V:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},Z:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ia:function(a,b){var d=a>>2,c=(a&
3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.ua=!0},qa:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.ua=!0},T:function(a,b){if(this.I&&null!=this.D){var d=this.I;gc(d,this.D+a,1,d.R)&&d.ca(!0)}return this.Wa(a,b)},X:function(a,b){if(this.I&&null!=this.D){var d=this.I;gc(d,this.D+a,2,d.R)&&d.ca(!0)}return this.kb(a,b)},fa:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;gc(c,this.D+a,1,
c.J)&&c.ca(!0)}this.K?this.G(a,b,d):this.Na(a,b,d)},la:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;gc(c,this.D+a,2,c.J)&&c.ca(!0)}this.K?this.G(a,b,d):this.nb(a,b,d)},R:function(a){return this.F[a]},U:function(a){return this.F[a]},W:function(a){return this.J.getUint16(a,!0)},Y:function(a){return a&1?this.F[a]|this.F[a+1]<<8:this.M[a>>1]},da:function(a,b){this.F[a]=b;this.ua=!0},ga:function(a,b){this.F[a]=b;this.ua=!0},ka:function(a,b){this.J.setUint16(a,b,!0);this.ua=!0},na:function(a,b){a&
1?(this.F[a]=b,this.F[a+1]=b>>8):this.M[a>>1]=b;this.ua=!0}};function xb(a,b,d){a.I=b;a.j=a.B=0;d&&((a.j=d.j)&&fc(a,ec,!1),(a.B=d.B)&&dc(a,ec,!1))}function hc(a,b){b?0===--a.B&&(a.Ma=a.K?a.G:a.Na,a.Fb=a.K?a.L:a.nb):0===--a.j&&(a.Ka=a.Wa,a.Db=a.kb)}function dc(a,b,d){d&&a.B||(a.Ma=!a.K&&b[2]||a.G,a.Fb=!a.K&&b[3]||a.L);if(d||void 0===d)a.Na=b[2]||a.G,a.nb=b[3]||a.L}function fc(a,b,d){d&&a.j||(a.Ka=b[0]||a.O,a.Db=b[1]||a.P);if(d||void 0===d)a.Wa=b[0]||a.O,a.kb=b[1]||a.P}
function $b(a,b){b||(b=ic);fc(a,b,void 0);dc(a,b,void 0)}var ic=[],cc=[G.prototype.V,G.prototype.Z,G.prototype.ia,G.prototype.qa],ec=[G.prototype.T,G.prototype.X,G.prototype.fa,G.prototype.la];if(tb)var bc=[G.prototype.R,G.prototype.W,G.prototype.da,G.prototype.ka],ac=[G.prototype.U,G.prototype.Y,G.prototype.ga,G.prototype.na];
function jc(a,b){u.call(this,"CPU",a,jc,1);var d=a.multiplier||1;this.Fa=a.cycles||b;this.za=d;this.Da=Math.round(this.Fa/1E4)/100;this.ya=this.Da*this.za;this.A.ba=!1;this.A.mb=!1;this.A.Pa=a.autoStart;this.A.rb=!1;this.A.Ha=!1;this.Ta=this.Y=0;this.Ua=a.csStart;this.Ia=a.csInterval;this.Ja=a.csStop;this.ia=[];this.Lb=this.Ba.bind(this);E(this)}y(jc);var kc=["power","reset"];m=jc.prototype;
m.va=function(a,b,d,c){this.j=a;this.F=b;this.I=c;for(b=0;b<kc.length;b++)(d=this.K[kc[b]])&&this.j.ha(null,kc[b],d);this.fa=null;a=lc(a,"autoStart");null!=a&&(this.A.Pa="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.ta=function(a,b){if(!b){if(a&&this.restore){mc(this);if(!this.restore(a))return!1;nc(this)}else this.reset();if(this.I){var d=this.I;d.g("Type ? for help with PDP11 Debugger commands");d.ja();if(d.qa){var c=d.qa;d.qa=null;oc(d,c)}}else this.g("No debugger detected")}H(this);return!0};m.sa=function(a){return a?this.save():!0};m.Pa=function(){return this.A.Pa||!this.I&&void 0===this.K.run?(this.Ba(!0),!0):!1};m.vb=function(){return 0};
function nc(a){void 0===a.Ua&&(a.Ua=0);void 0===a.Ia&&(a.Ia=-1);void 0===a.Ja&&(a.Ja=-1);a.A.Ha=0<=a.Ua&&0<a.Ia;a.A.Ha&&(a.Ta=0,a.Y=a.Ua-a.V)}function pc(a,b){if(a.A.Ha){var d=!1;a.Ta=a.Ta+a.vb()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.Ia,d=!0);0<=a.Ja&&a.Ja<=qc(a)&&(a.Ia=a.Ja=-1,nc(a),a.ca(),d=!0);d&&a.g(qc(a)+" cycles: checksum="+r(a.Ta))}}
this.I.message("attempt to read invalid block %"+r(this.D),!0);return 255},G:function(a,b){this.I&&ob(this.I,129)&&this.I.message("attempt to write "+r(b,4,!0)+" to invalid block %"+r(this.D),!0)},P:function(a,b){return this.La(a++,b++)|this.La(a,b)<<8},L:function(a,b,d){this.Na(a++,b&255,d++);this.Na(a,b>>8,d)},V:function(a){return this.f[a>>2]>>>((a&3)<<3)&255},Z:function(a){var b=a>>2;a=(a&3)<<3;var d=this.f[b]>>a;return 24>a?d&65535:d&255|(this.f[b+1]&255)<<8},ia:function(a,b){var d=a>>2,c=(a&
3)<<3;this.f[d]=this.f[d]&~(255<<c)|b<<c;this.ua=!0},qa:function(a,b){var d=a>>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<<c)|b<<c:(this.f[d]=this.f[d]&16777215|b<<24,d++,this.f[d]=this.f[d]&-256|b>>8);this.ua=!0},T:function(a,b){if(this.I&&null!=this.D){var d=this.I;gc(d,this.D+a,1,d.R)&&d.ca(!0)}return this.Xa(a,b)},X:function(a,b){if(this.I&&null!=this.D){var d=this.I;gc(d,this.D+a,2,d.R)&&d.ca(!0)}return this.kb(a,b)},fa:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;gc(c,this.D+a,1,
c.J)&&c.ca(!0)}this.K?this.G(a,b,d):this.Oa(a,b,d)},la:function(a,b,d){if(this.I&&null!=this.D){var c=this.I;gc(c,this.D+a,2,c.J)&&c.ca(!0)}this.K?this.G(a,b,d):this.nb(a,b,d)},R:function(a){return this.F[a]},U:function(a){return this.F[a]},W:function(a){return this.J.getUint16(a,!0)},Y:function(a){return a&1?this.F[a]|this.F[a+1]<<8:this.M[a>>1]},da:function(a,b){this.F[a]=b;this.ua=!0},ga:function(a,b){this.F[a]=b;this.ua=!0},ka:function(a,b){this.J.setUint16(a,b,!0);this.ua=!0},na:function(a,b){a&
1?(this.F[a]=b,this.F[a+1]=b>>8):this.M[a>>1]=b;this.ua=!0}};function xb(a,b,d){a.I=b;a.j=a.B=0;d&&((a.j=d.j)&&fc(a,ec,!1),(a.B=d.B)&&dc(a,ec,!1))}function hc(a,b){b?0===--a.B&&(a.Na=a.K?a.G:a.Oa,a.Fb=a.K?a.L:a.nb):0===--a.j&&(a.La=a.Xa,a.Db=a.kb)}function dc(a,b,d){d&&a.B||(a.Na=!a.K&&b[1]||a.G,a.Fb=!a.K&&b[3]||a.L);if(d||void 0===d)a.Oa=b[1]||a.G,a.nb=b[3]||a.L}function fc(a,b,d){d&&a.j||(a.La=b[0]||a.O,a.Db=b[2]||a.P);if(d||void 0===d)a.Xa=b[0]||a.O,a.kb=b[2]||a.P}
function $b(a,b){b||(b=ic);fc(a,b,void 0);dc(a,b,void 0)}var ic=[],cc=[G.prototype.V,G.prototype.ia,G.prototype.Z,G.prototype.qa],ec=[G.prototype.T,G.prototype.fa,G.prototype.X,G.prototype.la];if(tb)var bc=[G.prototype.R,G.prototype.da,G.prototype.W,G.prototype.ka],ac=[G.prototype.U,G.prototype.ga,G.prototype.Y,G.prototype.na];
function jc(a,b){u.call(this,"CPU",a,jc,1);var d=a.multiplier||1;this.Ga=a.cycles||b;this.za=d;this.Da=Math.round(this.Ga/1E4)/100;this.ya=this.Da*this.za;this.A.ba=!1;this.A.mb=!1;this.A.Qa=a.autoStart;this.A.rb=!1;this.A.Ia=!1;this.Ua=this.Y=0;this.Va=a.csStart;this.Ja=a.csInterval;this.Ka=a.csStop;this.ia=[];this.Lb=this.Ba.bind(this);E(this)}y(jc);var kc=["power","reset"];m=jc.prototype;
m.va=function(a,b,d,c){this.j=a;this.F=b;this.I=c;for(b=0;b<kc.length;b++)(d=this.K[kc[b]])&&this.j.ha(null,kc[b],d);this.fa=null;a=lc(a,"autoStart");null!=a&&(this.A.Qa="true"==a?!0:"false"==a?!1:!!a);E(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};
m.ta=function(a,b){if(!b){if(a&&this.restore){mc(this);if(!this.restore(a))return!1;nc(this)}else this.reset();if(this.I){var d=this.I;d.g("Type ? for help with PDP11 Debugger commands");d.ja();if(d.qa){var c=d.qa;d.qa=null;oc(d,c)}}else this.g("No debugger detected")}H(this);return!0};m.sa=function(a){return a?this.save():!0};m.Qa=function(){return this.A.Qa||!this.I&&void 0===this.K.run?(this.Ba(!0),!0):!1};m.vb=function(){return 0};
function nc(a){void 0===a.Va&&(a.Va=0);void 0===a.Ja&&(a.Ja=-1);void 0===a.Ka&&(a.Ka=-1);a.A.Ia=0<=a.Va&&0<a.Ja;a.A.Ia&&(a.Ua=0,a.Y=a.Va-a.V)}function pc(a,b){if(a.A.Ia){var d=!1;a.Ua=a.Ua+a.vb()|0;a.Y-=b;0>=a.Y&&(a.Y+=a.Ja,d=!0);0<=a.Ka&&a.Ka<=qc(a)&&(a.Ja=a.Ka=-1,nc(a),a.ca(),d=!0);d&&a.g(qc(a)+" cycles: checksum="+r(a.Ua))}}
function Dc(a,b,d,c){if(a.K[b]){void 0===d&&(sb(a,"Value for "+b+" is invalid"),a.ca());var e=a.I&&a.I.fa||8;d=!a.A.ba||a.A.rb?8==e?ga(d,c):r(d,c):"--------".substr(0,c||4);a.K[b].textContent!=d&&(a.K[b].textContent=d)}}
m.ha=function(a,b,d){var c=this;a=!1;switch(b){case "power":case "reset":this.K[b]=d;a=!0;break;case "run":this.K[b]=d;d.onclick=function(){var a;if(a=c.j)if(a=c.j,a.A.$)a=!0;else{var b=null,d,g=bb(a.id);for(d=0;d<g.length&&(b=g[d],b===a||b.A.ready);d++);if(d==g.length)for(d=0;d<g.length&&(b=g[d],b===a||b.A.$);d++);d==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.bb?" (waiting for notification)":""))+".");a=!1}a&&(c.A.ba?c.ca():c.Ba())};a=
!0;break;case "speed":this.K[b]=d;a=!0;break;case "setSpeed":this.K[b]=d,d.onclick=function(){Ec(c,c.za<<1,!0)},d.textContent=this.ya.toFixed(2)+"Mhz",a=!0}return a};function Fc(a,b,d){a.V+=b;d&&(a.U=a.P=0)}function Gc(a,b){var d=1;b&&1<a.za&&a.R&&(d=a.R/a.Da);a.zb=Math.round(1E3/30);a.na=Math.floor(a.Fa/30*d);b||(a.Z=a.na);a.Qa=0}function qc(a){return a.V+a.O+a.U-a.P}function mc(a){a.R=0;a.Ab=0;a.V=a.O=a.U=a.P=0;nc(a);Ec(a,1)}
function Ec(a,b,d){var c=!1;if(void 0!==b){.8>a.R/a.ya?b=1:c=!0;a.za=b;b=a.Da*a.za;if(a.ya!=b){a.ya=b;b=a.ya.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}d&&a.j&&a.j.Xa()}Fc(a,a.O);a.O=0;a.M=va();a.T=0;Gc(a);return c}function Hc(a){a.U-=a.P;a.P=0}
m.Ba=function(a){if(pb(this,!0)){if(!this.A.ba){Ec(this);this.j&&this.j.start(this.M,qc(this));this.A.ba=!0;this.A.mb=!0;this.fa&&this.fa.start();var b=this.K.run;b&&(b.textContent="Halt");this.j&&(this.j.ja(!0),a&&this.j.Xa(!0))}this.Qa>=this.Fa&&Gc(this,!0);this.ga=0;this.la=va();this.T&&(a=this.la-this.T,a>this.zb&&(this.M+=a,this.M>this.la&&(this.M=this.la)));try{do{for(var d=this.A.Ha?1:this.na,c=this.ia.length-1;0<=c;c--){var e=this.ia[c];0>e[0]||d>e[0]&&(d=e[0])}this.La(d);var f=this.U-this.P;
!0;break;case "speed":this.K[b]=d;a=!0;break;case "setSpeed":this.K[b]=d,d.onclick=function(){Ec(c,c.za<<1,!0)},d.textContent=this.ya.toFixed(2)+"Mhz",a=!0}return a};function Fc(a,b,d){a.V+=b;d&&(a.U=a.P=0)}function Gc(a,b){var d=1;b&&1<a.za&&a.R&&(d=a.R/a.Da);a.zb=Math.round(1E3/30);a.na=Math.floor(a.Ga/30*d);b||(a.Z=a.na);a.Ra=0}function qc(a){return a.V+a.O+a.U-a.P}function mc(a){a.R=0;a.Ab=0;a.V=a.O=a.U=a.P=0;nc(a);Ec(a,1)}
function Ec(a,b,d){var c=!1;if(void 0!==b){.8>a.R/a.ya?b=1:c=!0;a.za=b;b=a.Da*a.za;if(a.ya!=b){a.ya=b;b=a.ya.toFixed(2)+"Mhz";var e=a.K.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}d&&a.j&&a.j.Ya()}Fc(a,a.O);a.O=0;a.M=va();a.T=0;Gc(a);return c}function Hc(a){a.U-=a.P;a.P=0}
m.Ba=function(a){if(pb(this,!0)){if(!this.A.ba){Ec(this);this.j&&this.j.start(this.M,qc(this));this.A.ba=!0;this.A.mb=!0;this.fa&&this.fa.start();var b=this.K.run;b&&(b.textContent="Halt");this.j&&(this.j.ja(!0),a&&this.j.Ya(!0))}this.Ra>=this.Ga&&Gc(this,!0);this.ga=0;this.la=va();this.T&&(a=this.la-this.T,a>this.zb&&(this.M+=a,this.M>this.la&&(this.M=this.la)));try{do{for(var d=this.A.Ia?1:this.na,c=this.ia.length-1;0<=c;c--){var e=this.ia[c];0>e[0]||d>e[0]&&(d=e[0])}this.Ma(d);var f=this.U-this.P;
a=f;for(var h=this.ia.length-1;0<=h;h--){var g=this.ia[h];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ga+=f;this.O+=f;Fc(this,0,!0);pc(this,f);this.Z-=f;if(0>=this.Z){this.Z+=this.na;15<=++this.Ab&&(this.j&&this.j.ja(),this.Ab=0);break}}while(this.A.ba)}catch(k){this.ca();H(this);this.j&&this.j.stop(va(),qc(this));pb(this,!1);sb(this,k.stack||k.message);return}d=setTimeout;c=this.Lb;this.T=va();e=this.zb;this.ga&&(e=Math.round(e*this.ga/this.na));e=e-(this.T-this.la);if(f=this.T-this.M)this.R=
Math.round(this.O/(10*f))/100,864E5<=f&&(this.V=0,Ec(this));if(0>e||this.R<this.ya)-1E3>e&&(this.M-=e),e=0;this.Qa+=this.ga;this.T+=e;d(c,e)}else H(this),this.j&&this.j.stop(va(),qc(this))};m.La=function(){return 0};m.ca=function(a){qb(this,!0);Hc(this);Fc(this,this.O);this.O=0;if(this.A.ba){this.A.ba=!1;this.fa&&this.fa.stop();var b=this.K.run;b&&(b.textContent="Run")}this.A.complete=a};function H(a,b){a.j&&a.j.ja(b)}
function Ic(a){this.Cb=+a.model||1170;this.Nb=a.resetAddr||0;jc.call(this,a,1E6);this.ab=0;this.C=65536;this.u=32768;this.w=65535;this.i=32768;this.f=15;this.b=[0,0,0,0,0,0,0,this.Nb];this.eb=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.memory=[];this.H=[];this.Ra=this.Bb=0;this.W=2;this.X=255;this.G=0;this.da=-1;this.yb=this.Ca=this.xb=this.B=this.qa=this.L=this.J=0;this.ka=[7,7,7,7];this.Ea=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
Math.round(this.O/(10*f))/100,864E5<=f&&(this.V=0,Ec(this));if(0>e||this.R<this.ya)-1E3>e&&(this.M-=e),e=0;this.Ra+=this.ga;this.T+=e;d(c,e)}else H(this),this.j&&this.j.stop(va(),qc(this))};m.Ma=function(){return 0};m.ca=function(a){qb(this,!0);Hc(this);Fc(this,this.O);this.O=0;if(this.A.ba){this.A.ba=!1;this.fa&&this.fa.stop();var b=this.K.run;b&&(b.textContent="Run")}this.A.complete=a};function H(a,b){a.j&&a.j.ja(b)}
function Ic(a){this.Cb=+a.model||1170;this.Nb=a.resetAddr||0;jc.call(this,a,1E6);this.ab=0;this.C=65536;this.u=32768;this.w=65535;this.i=32768;this.f=15;this.b=[0,0,0,0,0,0,0,this.Nb];this.eb=[0,0,0,0,0,0];this.Aa=[0,0,0,0];this.memory=[];this.H=[];this.Sa=this.Bb=0;this.W=2;this.X=255;this.G=0;this.da=-1;this.yb=this.Ca=this.xb=this.B=this.qa=this.L=this.J=0;this.ka=[7,7,7,7];this.Fa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Pb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.A.complete=this.A.Ib=!1}y(Ic,jc);m=Ic.prototype;m.reset=function(){this.A.ba&&this.ca();Jc(this);mc(this);this.A.error=!1;this.parent.reset.call(this)};
function Jc(a){a.X=255;a.H=[];a.Bb=0;a.J=a.L=a.qa=a.xb=0;a.ka[0]=a.ka[1]=a.ka[3]=7;a.Ca=0}m.vb=function(){return 0};m.save=function(){var a=new I(this);J(a,0,[]);J(a,1,[this.wb,this.V,this.za]);for(var b=this.F,d=0,c=[],e=0;e<b.G;e++){var f=b.N[e];if(f.ua||f.Jb){c[d++]=e;var h=d++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var n=f[g],p=g+1;p<f.length&&f[p]===n;)p++;l[k++]=p-g;l[k++]=n;g=p}if(l.length<f.length){f=l;break a}}c[h]=f}}J(a,2,c);return a.data()};
m.restore=function(a){var b=a[1];this.wb=b[0];this.V=b[1];Ec(this,b[3]);a:{b=this.F;a=a[2];var d;for(d=0;d<a.length-1;d+=2){var c=a[d],e=a[d+1];if(e&&e.length<b.M){for(var f=0,h=Array(b.M),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.N[c];if(!f||!f.restore(e)){t("Unable to restore memory block "+c);b=!1;break a}}b=!0}return b};
m.ha=function(a,b,d){var c=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PSW":this.K[b]=d;this.ab++;c=!0;break;default:c=this.parent.ha.call(this,a,b,d)}return c};
m.ja=function(a){if(this.ab&&(a||!this.A.ba||this.A.rb)){for(a=0;a<this.b.length;a++)Dc(this,"R"+a,this.b[a]);a=Kc(this);Dc(this,"PSW",a);Dc(this,"NF",a&8?1:0,1);Dc(this,"ZF",a&4?1:0,1);Dc(this,"VF",a&2?1:0,1);Dc(this,"CF",a&1?1:0,1)}if(a=this.K.speed)a.textContent=this.A.ba&&this.R?this.R.toFixed(2)+"Mhz":"Stopped"};function Kc(a){return a.f&-16|(a.i&32768?8:0)|(a.w&65535?0:4)|(a.u&32768?2:0)|(a.C&65536?1:0)}
m.Za=function(a){this.i=a<<12;this.w=~a&4;this.u=a<<14;this.C=a<<16;if((a^this.f)&2048)for(var b=this.eb.length;0<=--b;){var d=this.b[b];this.b[b]=this.eb[b];this.eb[b]=d}this.B=a>>14&3;b=this.f>>14&3;this.B!=b&&(this.Aa[b]=this.b[6],this.b[6]=this.Aa[this.B]);this.W=2;this.f=a};m.cb=function(){return this.f=this.f&63728|(this.i&32768?8:0)|(this.w&65535?0:4)|(this.u&32768?2:0)|(this.C&65536?1:0)};
function K(a,b){var d,c,e=0;0>a.da?a.da=a.cb():a.B||(b=4,e=1);a.J&57344||(a.L=63222);a.B=0;0<=(d=L(a,b|65536))&&0<=(c=L(a,b+2&65535|65536))&&(a.Za(c&53247|a.da>>2&12288),e&&(a.b[6]=4),0<=Lc(a,a.da)&&0<=Lc(a,a.b[7])&&(a.b[7]=d));a.G=0;return a.da=-1}
function Mc(a,b,d){var c,e,f,h=0;if(d&a.xb){c=b>>13&a.ka[a.B];e=a.Ea[a.B][c];f=(a.Ea[a.B][c+16]<<6)+(b&8191)&4194303;if(a.qa&16){if(3932160<=f&&4186112>f){f=f&262143;var g=f>>13&31;31>g?a.qa&32&&(f=a.Pb[g]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}}else f&=262143,253952<=f&&(f|=4186112);if(3932160>f&&(3915776<=f||f&1&&!(d&1)))return K(a,4);switch(e&7){case 1:h=4096;case 2:e|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:e|=d&4?192:128;break;
default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.Ea[a.B][c]=e;if(4194170!==f||a.B)a.Ca=a.B,a.yb=c;if(h){if(h&57344)return 0<=a.da&&(h|=128),a.J&57344||(a.J=a.J|h|a.Ca<<5|a.yb<<1),K(a,168);a.J&61440||!(4191360>f||4194239<f)||(a.J|=4096,a.J&512&&(a.G|=2))}}else if(f=b&65535,57344<=f)f|=4186112;else if(f&1&&!(d&1))return K(a,4);return f}function M(a,b){return 4194304<=b?a.b[b-4194304]:3932160<=b?-1:0<=b?a.F.pa(b):b}
function O(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.F.lb(b,d),d):b}function P(a,b){return 4194304<=b?a.b[b-4194304]&255:3932160<=b?-1:0<=b?a.F.Sa(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:3932160<=b?-1:0<=b?(a.F.fb(b,d),d):b}function L(a,b){return M(a,Mc(a,b,2))}function Nc(a){var b=L(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
m.$a=function(a){this.i=a<<12;this.w=~a&4;this.u=a<<14;this.C=a<<16;if((a^this.f)&2048)for(var b=this.eb.length;0<=--b;){var d=this.b[b];this.b[b]=this.eb[b];this.eb[b]=d}this.B=a>>14&3;b=this.f>>14&3;this.B!=b&&(this.Aa[b]=this.b[6],this.b[6]=this.Aa[this.B]);this.W=2;this.f=a};m.cb=function(){return this.f=this.f&63728|(this.i&32768?8:0)|(this.w&65535?0:4)|(this.u&32768?2:0)|(this.C&65536?1:0)};
function K(a,b){var d,c,e=0;0>a.da?a.da=a.cb():a.B||(b=4,e=1);a.J&57344||(a.L=63222);a.B=0;0<=(d=L(a,b|65536))&&0<=(c=L(a,b+2&65535|65536))&&(a.$a(c&53247|a.da>>2&12288),e&&(a.b[6]=4),0<=Lc(a,a.da)&&0<=Lc(a,a.b[7])&&(a.b[7]=d));a.G=0;return a.da=-1}
function Mc(a,b,d){var c,e,f,h=0;if(d&a.xb){c=b>>13&a.ka[a.B];e=a.Fa[a.B][c];f=(a.Fa[a.B][c+16]<<6)+(b&8191)&4194303;if(a.qa&16){if(3932160<=f&&4186112>f){f=f&262143;var g=f>>13&31;31>g?a.qa&32&&(f=a.Pb[g]+(f&8190)&4194302,3932160<=f&&4186112>f&&console.log("panic(898)")):f|=4186112}}else f&=262143,253952<=f&&(f|=4186112);if(3932160>f&&(3915776<=f||f&1&&!(d&1)))return K(a,4);switch(e&7){case 1:h=4096;case 2:e|=128;d&4&&(h=8192);break;case 4:h=4096;case 5:d&4&&(h=4096);case 6:e|=d&4?192:128;break;
default:h=32768}32512!==(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(h|=16384):(b&8128)>(e>>2&8128)&&(h|=16384));a.Fa[a.B][c]=e;if(4194170!==f||a.B)a.Ca=a.B,a.yb=c;if(h){if(h&57344)return 0<=a.da&&(h|=128),a.J&57344||(a.J=a.J|h|a.Ca<<5|a.yb<<1),K(a,168);a.J&61440||!(4191360>f||4194239<f)||(a.J|=4096,a.J&512&&(a.G|=2))}}else if(f=b&65535,57344<=f)f|=4186112;else if(f&1&&!(d&1))return K(a,4);return f}function M(a,b){return 4194304<=b?a.b[b-4194304]:3932160<=b?-1:0<=b?a.F.pa(b):b}
function O(a,b,d){d&=65535;return 4194304<=b?a.b[b-4194304]=d:0<=b?(a.F.lb(b,d),d):b}function P(a,b){return 4194304<=b?a.b[b-4194304]&255:3932160<=b?-1:0<=b?a.F.Ta(b):b}function Q(a,b,d){d&=255;return 4194304<=b?a.b[b-4194304]=a.b[b-4194304]&65280|d:3932160<=b?-1:0<=b?(a.F.fb(b,d),d):b}function L(a,b){return M(a,Mc(a,b,2))}function Nc(a){var b=L(a,a.b[6]|65536);0<=b&&(a.b[6]=a.b[6]+2&65535);return b}
function Lc(a,b){var d,c;a.b[6]=c=a.b[6]-2&65535;a.J&57344||(a.L=a.L<<8|246);if(!a.B&&c<=a.X&&4<c){if(c<=a.X-32)return a.b[6]=4,K(a,4);a.G|=4}return 0<=(d=Mc(a,c|65536,4))?O(a,d,b):d}
function Oc(a,b,d){var c,e,f=b&7;switch(b>>3&7){case 0:return K(a,4);case 1:if(6===f&&!a.B&&d&4&&(a.b[6]<=a.X||65534<=a.b[6])){if(a.b[6]<=a.X-32||65534<=a.b[6])return a.b[6]=4,K(a,4);a.G|=4}return 7===f?a.b[f]:a.b[f]|65536;case 2:e=2;c=a.b[f];7!==f&&(c|=65536,6>f&&d&1&&(e=1));break;case 3:e=2;c=a.b[f];7!==f&&(c|=65536);if(0>(c=L(a,c)))return c;c|=65536;break;case 4:e=-2;6>f&&d&1&&(e=-1);c=a.b[f]+e&65535;7!==f&&(c|=65536);break;case 5:e=-2;c=a.b[f]-2&65535;7!==f&&(c|=65536);if(0>(c=L(a,c)))return c;
c|=65536;break;case 6:if(0>(c=L(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[f]&65535;return c|65536;case 7:if(0>(c=L(a,a.b[7])))return c;a.b[7]=a.b[7]+2&65535;c=c+a.b[f]&65535;return 0>(c=L(a,c|65536))?c:c|65536}a.b[f]=a.b[f]+e&65535;a.J&57344||(a.L=a.L<<8|e<<3&248|f);if(6===f&&!a.B&&d&4&&0>=e&&(a.b[6]<=a.X||65534<=a.b[6])){if(a.b[6]<=a.X-32)return a.b[6]=4,K(a,4);a.G|=4}return c}function R(a,b,d){var c;return b&56?(0<=(c=Oc(a,b,d))&&(c=Mc(a,c,d)),c):4194304+(b&7)}
function S(a,b){var d;b&56?0<=(d=R(a,b,2))&&(d=M(a,d)):d=a.b[b&7];return d}function Pc(a,b){var d;b&56?0<=(d=R(a,b,3))&&(d=P(a,d)):d=a.b[b&7]&255;return d}function V(a,b){return((b&128?b|65280:b&255)<<1)+a&65535}
m.La=function(a){this.A.complete=!0;var b=this.A.Ib=this.I&&Qc(this.I),d=a?this.A.mb?0:1:-1;this.A.mb=!1;this.U=this.P=a;this.wb&256?(Hc(this),a=!1):a=!0;if(a){do{if(b){if(Rc(this.I,this.b[7],d)){this.ca();break}d=1}var c,e,f,h,g;if(this.W)if(1===this.W)this.W=2;else{this.W=0;g=-1;c=this.Bb&224;if(0<(a=this.H.length))for(;0<a--;){if(0<this.H[a].jb){this.H[a].jb--;this.W=2;break}if(this.H[a].pb){if(!this.H[a].pb()){this.H.splice(a,1);g--;continue}this.H[a].pb=null}this.H[a].Ob>c&&(c=this.H[a].Ob,g=
m.Ma=function(a){this.A.complete=!0;var b=this.A.Ib=this.I&&Qc(this.I),d=a?this.A.mb?0:1:-1;this.A.mb=!1;this.U=this.P=a;this.wb&256?(Hc(this),a=!1):a=!0;if(a){do{if(b){if(Rc(this.I,this.b[7],d)){this.ca();break}d=1}var c,e,f,h,g;if(this.W)if(1===this.W)this.W=2;else{this.W=0;g=-1;c=this.Bb&224;if(0<(a=this.H.length))for(;0<a--;){if(0<this.H[a].jb){this.H[a].jb--;this.W=2;break}if(this.H[a].pb){if(!this.H[a].pb()){this.H.splice(a,1);g--;continue}this.H[a].pb=null}this.H[a].Ob>c&&(c=this.H[a].Ob,g=
a)}c>(this.f&224)&&(0>g?K(this,160):(K(this,this.H[g].Rb),this.H.splice(g,1)))}this.J&57344||(this.L=0);this.G=this.f&16;if(0<=(a=L(this,this.b[7])))switch(this.b[7]=this.b[7]+2&65535,a&61440){case 4096:0<=(c=S(this,a>>6))&&(a&56?0<=(f=R(this,a,4))&&0<=O(this,f,c)&&(this.i=this.w=c,this.u=0):(this.i=this.w=this.b[a&7]=c,this.u=0));break;case 8192:0<=(c=S(this,a>>6))&&0<=(e=S(this,a))&&(this.i=this.w=this.C=a=c-e,this.u=(c^e)&(c^a));break;case 12288:0<=(c=S(this,a>>6))&&0<=(e=S(this,a))&&(this.i=this.w=
c&e,this.u=0);break;case 16384:0<=(c=S(this,a>>6))&&(a&56?0<=(e=M(this,f=R(this,a,6)))&&(a=e&~c,0<=O(this,f,a)&&(this.i=this.w=a,this.u=0)):(this.i=this.w=a=this.b[a&7]&=~c,this.u=0));break;case 20480:0<=(c=S(this,a>>6))&&(a&56?0<=(e=M(this,f=R(this,a,6)))&&(a=e|c,0<=O(this,f,a)&&(this.i=this.w=a,this.u=0)):(this.i=this.w=a=this.b[a&7]|=c,this.u=0));break;case 24576:0<=(c=S(this,a>>6))&&(a&56?0<=(e=M(this,f=R(this,a,6)))&&(a=c+e,0<=O(this,f,a)&&(this.i=this.w=this.C=a,this.u=(c^a)&(e^a))):(g=a&7,
e=this.b[g],this.b[g]=(a=c+e)&65535,this.i=this.w=this.C=a,this.u=(c^a)&(e^a)));break;case 36864:0<=(c=Pc(this,a>>6))&&(a&56?0<=(f=R(this,a,5))&&0<=Q(this,f,c)&&(this.i=this.w=c<<8,this.u=0):(c&128&&(c|=65280),this.i=this.w=this.b[a&7]=c,this.u=0));break;case 40960:0<=(c=Pc(this,a>>6))&&0<=(e=Pc(this,a))&&(a=c-e,this.i=this.w=this.C=a<<8,this.u=((c^e)&(c^a))<<8);break;case 45056:0<=(c=Pc(this,a>>6))&&0<=(e=Pc(this,a))&&(this.i=this.w=(c&e)<<8,this.u=0);break;case 49152:0<=(c=Pc(this,a>>6))&&0<=(e=
@ -82,13 +82,13 @@ e))<<8));break;case 35520:0<=(e=P(this,f=R(this,a,7)))&&(a=e-1,0<=Q(this,f,a)&&(
case 35776:0<=(e=Pc(this,a))&&(this.i=this.w=e<<8,this.C=this.u=0);break;case 35840:0<=(e=P(this,f=R(this,a,7)))&&(a=((this.C&65536)>>8|e)>>1,0<=Q(this,f,a)&&(this.C=e<<16,this.i=this.w=a<<8,this.u=this.i^this.C>>1));break;case 35904:0<=(e=P(this,f=R(this,a,7)))&&(a=e<<1|this.C>>16&1,0<=Q(this,f,a)&&(this.C=this.i=this.w=a<<8,this.u=(a^e)<<8));break;case 35968:0<=(e=P(this,f=R(this,a,7)))&&(a=e&128|e>>1,0<=Q(this,f,a)&&(this.C=e<<16,this.i=this.w=a<<8,this.u=this.i^this.C>>1));break;case 36032:0<=
(e=P(this,f=R(this,a,7)))&&(a=e<<1,0<=Q(this,f,a)&&(this.C=this.i=this.w=a<<8,this.u=(a^e)<<8));break;case 36160:a&56?0<=(h=Oc(this,a,0))&&(this.B=this.f>>12&3,0<=(c=L(this,h|65536))&&(this.B=this.f>>14&3,0<=Lc(this,c)&&(this.i=this.w=c,this.u=0))):(g=a&7,c=6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]:this.Aa[this.f>>12&3],0<=Lc(this,c)&&(this.i=this.w=c,this.u=0));break;case 36224:0<=(e=Nc(this))&&((this.J&57344||(this.L=22),a&56)?0<=(h=Oc(this,a,0))&&(this.B=this.f>>12&3,0<=(f=Mc(this,h|
65536,4))&&(this.B=this.f>>14&3,0<=O(this,f,e)&&(this.i=this.w=e,this.u=0))):(g=a&7,6!==g||(this.f>>2&12288)===(this.f&12288)?this.b[g]=e:this.Aa[this.f>>12&3]=e,this.i=this.w=e,this.u=0));break;default:switch(a&65528){case 128:0<=(c=Nc(this))&&(g=a&7,this.b[7]=this.b[g],this.b[g]=c);break;case 152:this.f&49152||(this.f=this.f&63519|(a&7)<<5,this.W=1);break;case 160:case 168:a&1&&(this.C=0);a&2&&(this.u=0);a&4&&(this.w=1);a&8&&(this.i=0);break;case 176:case 184:a&1&&(this.C=65536);a&2&&(this.u=32768);
a&4&&(this.w=0);a&8&&(this.i=32768);break;default:switch(a){case 0:49152&this.f?K(this,4):(this.Ra=3,Hc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.H.length))for(;0<a--;)g+=this.H[a].jb,this.H[a].jb=0;0===g&&0===this.Ra&&(this.Ra=2,Hc(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.f&49152||Jc(this);break;case 2:case 6:f=this.b[6];0<=(h=L(this,f|65536))&&(f=f+2&65535,0<=(c=L(this,f|65536))&&(this.b[6]=f+2&65535,c&=63743,this.f&49152&&
(c=c&63519|this.f&63712),this.b[7]=h,this.Za(c),this.G&=-17,2===a&&(this.G|=this.f&16)));break;default:K(this,8)}}}}}}this.G&&(this.G&2?K(this,168):this.G&4?K(this,4):this.G&16&&K(this,12),this.G=0)}while(0<this.P)}return this.A.complete?this.U-this.P:void 0===this.A.complete?0:-1};Qa(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Ic(c);nb(c,d)}});
a&4&&(this.w=0);a&8&&(this.i=32768);break;default:switch(a){case 0:49152&this.f?K(this,4):(this.Sa=3,Hc(this),console.log("HALT at "+this.b[7].toString(8)));break;case 1:g=0;if(0<(a=this.H.length))for(;0<a--;)g+=this.H[a].jb,this.H[a].jb=0;0===g&&0===this.Sa&&(this.Sa=2,Hc(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.f&49152||Jc(this);break;case 2:case 6:f=this.b[6];0<=(h=L(this,f|65536))&&(f=f+2&65535,0<=(c=L(this,f|65536))&&(this.b[6]=f+2&65535,c&=63743,this.f&49152&&
(c=c&63519|this.f&63712),this.b[7]=h,this.$a(c),this.G&=-17,2===a&&(this.G|=this.f&16)));break;default:K(this,8)}}}}}}this.G&&(this.G&2?K(this,168):this.G&4?K(this,4):this.G&16&&K(this,12),this.G=0)}while(0<this.P)}return this.A.complete?this.U-this.P:void 0===this.A.complete?0:-1};Qa(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Ic(c);nb(c,d)}});
function Sc(a){u.call(this,"ROM",a,Sc);this.j=null;this.J=a.addr;this.B=a.size;this.L=a.writable;this.G=a.alias;this.H=a.file;this.M=ha(this.H);if(this.H){a=this.H;var b=ia(this.M);"json"!=b&&"hex"!=b&&(a=ka()+"/api/v1/dump?file="+this.H+"&format=bytes&decimal=true");var d=this;xa(a,null,!0,function(a,b,f){Tc(d,a,b,f)})}}y(Sc);Sc.prototype.va=function(a,b,d,c){this.F=b;this.f=d;this.I=c;Uc(this)};
Sc.prototype.ta=function(){if(this.ra){if(this.I){var a=this.I,b=this.id,d=this.J,c=this.B,e=this.ra,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var n=f,k=[k>>>0,h],p=ra(n,k,a.qb);0>p&&n.splice(-(p+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.L.push({Qb:b,D:d,Kb:c,ra:e,ob:f})}delete this.ra}return!0};Sc.prototype.sa=function(){return!0};
function Tc(a,b,d,c){if(c)a.ea("Unable to load system ROM (error "+c+": "+b+")");else{ab(a.ub,b,d);var e;if("["==d.charAt(0)||"{"==d.charAt(0))try{var f,h,g=eval("("+d+")");if(f=g.bytes)a.j=f;else if(f=g.words)for(a.j=Array(2*f.length),h=e=0;e<f.length;e++)a.j[h++]=f[e]&255,a.j[h++]=f[e]>>8&255;else if(f=g.data)for(a.j=Array(4*f.length),h=e=0;e<f.length;e++)a.j[h++]=f[e]&255,a.j[h++]=f[e]>>8&255,a.j[h++]=f[e]>>16&255,a.j[h++]=f[e]>>24&255;else a.j=g;a.ra=g.symbols;if(!a.j.length){t("Empty ROM: "+
b);return}if(1==a.j.length){t(a.j[0]);return}}catch(k){a.ea("ROM data error: "+k.message);return}else for(b=d.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.j=Array(b.length),e=0;e<b.length;e++)a.j[e]=aa(b[e],16);Uc(a)}}
function Uc(a){if(!rb(a))if(!a.H)E(a);else if(a.j&&a.F){a.B||(a.B=a.j.length);if(a.j.length!=a.B)sb(a,"ROM size ("+r(a.j.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.F,b,a.B,a.L?1:Zb)){var d;for(d=0;d<a.j.length;d++){var c=a.F,e=b+d;c.N[(e&c.j)>>>c.S].Na(e&c.F,a.j[d]&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(d=0;d<b.length;d++){for(var f=a,c=b[d],e=f.F,h=f.B,g=[],k=f.J>>>e.S;0<h&&k<e.N.length;)g.push(e.N[k++]),
function Uc(a){if(!rb(a))if(!a.H)E(a);else if(a.j&&a.F){a.B||(a.B=a.j.length);if(a.j.length!=a.B)sb(a,"ROM size ("+r(a.j.length,8,!0)+") does not match specified size ("+r(a.B,8,!0)+")");else{var b;b=a.J;if(Cb(a.F,b,a.B,a.L?1:Zb)){var d;for(d=0;d<a.j.length;d++){var c=a.F,e=b+d;c.N[(e&c.j)>>>c.S].Oa(e&c.F,a.j[d]&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(d=0;d<b.length;d++){for(var f=a,c=b[d],e=f.F,h=f.B,g=[],k=f.J>>>e.S;0<h&&k<e.N.length;)g.push(e.N[k++]),
h-=e.ma;e=f.F;f=f.B;h=0;for(c>>>=e.S;0<f&&c<e.N.length;){k=g[h++];if(!k)break;e.N[c++]=k;f-=e.ma}}delete a.j}}E(a)}}Qa(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Sc(c);nb(c,d)}});function Vc(a){u.call(this,"RAM",a,Vc);this.G=a.addr;this.B=a.size;this.j=!1}y(Vc);m=Vc.prototype;m.va=function(a,b,d,c){this.F=b;this.f=d;this.I=c;E(this)};m.ta=function(a,b){b||this.reset();return!0};m.sa=function(a){return a?this.save():!0};
m.reset=function(){!this.j&&this.B&&Cb(this.F,this.G,this.B,1)&&(this.j=!0);this.j||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Qa(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Vc(c);nb(c,d)}});function Wc(a){u.call(this,"Keyboard",a,Wc,65536);E(this)}y(Wc);Wc.prototype.ha=function(){return!1};Wc.prototype.va=function(a,b,d,c){this.j=a;this.f=d;this.I=c;this.fa=null};
Qa(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new Wc(c);nb(c,d)}});function Xc(a){u.call(this,"Debugger",a,Xc);this.fa=a.base||16;this.T=this.la=this.M=0;this.V=!1;this.H=-1;this.G=[];this.X={}}y(Xc);var Yc={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
@ -104,68 +104,68 @@ var jd={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output
ld={61440:{4096:[62,4032,63],8192:[47,4032,63],12288:[18,4032,63],16384:[14,4032,63],20480:[16,4032,63],24576:[3,4032,63],36864:[63,4032,63],40960:[48,4032,63],45056:[19,4032,63],49152:[15,4032,63],53248:[17,4032,63],57344:[94,4032,63]},65024:{2048:[57,448,63],28672:[100,63,448],29184:[101,63,448],29696:[102,63,448],30208:[103,63,448],30720:[104,448,63],32256:[105,448,8192]},65280:{256:[27,4096],512:[24,4096],768:[10,4096],1024:[11,4096],1280:[22,4096],1536:[12,4096],1792:[20,4096],32768:[25,4096],
33024:[23,4096],33280:[13,4096],33536:[21,4096],33792:[28,4096],34048:[29,4096],34304:[8,4096],34560:[9,4096],34816:[106],35072:[107]},65472:{64:[56,63],192:[95,63],2560:[39,63],2624:[49,63],2688:[53,63],2752:[51,63],2816:[67,63],2880:[1,63],2944:[77,63],3008:[97,63],3072:[73,63],3136:[71,63],3200:[6,63],3264:[4,63],3328:[58,24576],3392:[60,63],3456:[65,63],3520:[96,63],35328:[40,63],35392:[50,63],35456:[54,63],35520:[52,63],35584:[68,63],35648:[2,63],35712:[78,63],35776:[98,63],35840:[74,63],35904:[72,
63],35968:[7,63],36032:[5,63],36096:[66,63],36160:[59,63],36224:[64,63],36288:[61,63]},65528:{128:[76,7],152:[108,12288]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}};m=fd.prototype;
m.va=function(a,b,d,c){this.F=b;this.f=d;this.j=a;(a=lc(a,"messages"))&&id(this,a);this.Fa=ld;md(this,function(a){a:{var b=c.F.N,d=a[0],g=a=0,k=b.length;if(d){a=Y(Z(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.F.S;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Qb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.F.S,8)+" %%"+r(n.D,8)+" "+r(n.Ya,4,!0)+
m.va=function(a,b,d,c){this.F=b;this.f=d;this.j=a;(a=lc(a,"messages"))&&id(this,a);this.Ga=ld;md(this,function(a){a:{var b=c.F.N,d=a[0],g=a=0,k=b.length;if(d){a=Y(Z(c,d));if(-1===a){c.g("invalid address: "+d);break a}g=a>>>c.F.S;k=1}c.g("blockid physical blockaddr used size type");c.g("-------- --------- ---------- ------ ------ ----");for(var d=-1,l=0;k--;){var n=b[g];n.type==d?l++||c.g("..."):(d=n.type,l=Fb[d],n&&c.g(r(n.id,8)+" %"+r(g<<c.F.S,8)+" %%"+r(n.D,8)+" "+r(n.Za,4,!0)+
" "+r(n.size,4,!0)+" "+l),d!=Yb&&(d=-1),l=0);a+=c.F.ma;g++}}});E(this)};
m.ha=function(a,b,d){var c=this;switch(b){case "debugInput":return this.da=this.K[b]=d,d.onkeydown=function(a){var b;if(13==a.keyCode)b=d.value,d.value="",oc(c,b,!0);else if(27==a.keyCode)d.value=b="";else if(38==a.keyCode?(b=null,c.H<c.G.length-1&&(b=c.G[++c.H])):40==a.keyCode&&(0<c.H?b=c.G[--c.H]:(b="",c.H=-1)),null!=b){var h=b.length;d.value=b;d.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.K[b]=d,Ka(d,function(){if(c.da){var a=c.da.value;
c.da.value="";oc(c,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.La(a?1:0),pb(c,!1));return b}),!0}return!1};m.Xa=function(){this.da&&this.da.focus()};function Y(a){a=a&&a.D;null==a&&(a=-1);return a}m.Sa=function(a,b){var d=255,c=Y(a);-1!==c&&(d=this.F,d=d.N[(c&d.j)>>>d.S].Wa(c&d.F,c),b&&nd(a,b));return d};m.pa=function(a,b){var d=65535,c=Y(a);-1!==c&&(d=Rb(this.F,c),b&&nd(a,b));return d};
m.fb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.F;e.N[(c&e.j)>>>e.S].Na(c&e.F,b&255,c);d&&nd(a,d);H(this.f,!0)}};m.lb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.F,f=c&e.F,h=(c&e.j)>>>e.S;f!=e.F?e.N[h].nb(f,b&65535,c):(e.N[h++].Na(f,b&255,c),e.N[h&e.B].Na(0,b>>8&255,c+1));d&&nd(a,d);H(this.f,!0)}};function X(a){return{D:a,oa:!1}}function od(a){return[a.D,a.oa]}function pd(a){return{D:a[0],oa:a[1]}}
c.da.value="";oc(c,a,!0);return!0}return!1}),!0;case "step":return this.K[b]=d,Ka(d,function(a){var b=!1;qb(c,!0)||(pb(c,!0),b=c.Ma(a?1:0),pb(c,!1));return b}),!0}return!1};m.Ya=function(){this.da&&this.da.focus()};function Y(a){a=a&&a.D;null==a&&(a=-1);return a}m.Ta=function(a,b){var d=255,c=Y(a);-1!==c&&(d=this.F,d=d.N[(c&d.j)>>>d.S].Xa(c&d.F,c),b&&nd(a,b));return d};m.pa=function(a,b){var d=65535,c=Y(a);-1!==c&&(d=Rb(this.F,c),b&&nd(a,b));return d};
m.fb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.F;e.N[(c&e.j)>>>e.S].Oa(c&e.F,b&255,c);d&&nd(a,d);H(this.f,!0)}};m.lb=function(a,b,d){var c=Y(a);if(-1!==c){var e=this.F,f=c&e.F,h=(c&e.j)>>>e.S;f!=e.F?e.N[h].nb(f,b&65535,c):(e.N[h++].Oa(f,b&255,c),e.N[h&e.B].Oa(0,b>>8&255,c+1));d&&nd(a,d);H(this.f,!0)}};function X(a){return{D:a,oa:!1}}function od(a){return[a.D,a.oa]}function pd(a){return{D:a[0],oa:a[1]}}
function Z(a,b,d){var c;d=(d?a.P:a.Da).D;if(void 0!==b){c=b=bd(a,b);var e;if(c.match(/^[a-z_][a-z0-9_]*$/i))for(c=c.toUpperCase(),d=0;d<a.L.length;d++){var f=a.L[d].ra[c];if(void 0!==f){c=f.o;void 0!==c&&(e=X(c));break}}if(c=e)return c;d=ad(a,b,void 0)}null!=d&&(c=X(d));return c}function qd(a,b,d){d&&(d=d.match(/(['"])(.*?)\1/))&&(b.Gb=Zc(a,b.Eb=d[2]))}function nd(a,b){null!=a.D&&(a.D+=b||1)}
function id(a,b){a.I=a;a.aa=a.Hb=536870912;a.ia=null;a.ka=[];var d=Zc(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(d.length)for(var c in F){var e;a:if(e=void 0,Array.prototype.indexOf)e=d.indexOf(c,e);else{e=e||0;0>e&&(e+=d.length);0>e&&(e=0);for(var f=d.length;e<f;e++)if(e in d&&d[e]===c)break a;e=-1}0<=e&&(a.aa|=F[c],a.g(c+" messages enabled"))}}function md(a,b){for(var d in F)if(64==F[d]){a.na[d]=b;break}}
m.message=function(a,b){b&&(a+=" at "+W(this,X(this.f.b[7]).D));if(this.aa&1073741824)this.ka.push(a);else if(!this.ia||a!=this.ia)if(this.ia=a,this.aa&-2147483648&&(this.ca(),a+=" (cpu halted)"),this.g(a),this.f){var d=this.f;Hc(d);d.Z=0;H(d)}};
function hd(a){var b;if(Qc(a)){if(!a.O||!a.O.length){a.O=Array(1E3);for(b=0;b<a.O.length;b++)a.O[b]=X();a.Z=0;a.g("instruction history buffer allocated")}if(!a.Y||!a.Y.length)for(a.Y=Array(256),b=0;b<a.Y.length;b++)a.Y[b]=[b,0]}else a.O&&a.O.length&&a.g("instruction history buffer freed"),a.Z=0,a.O=[],a.Y=[]}m.Ba=function(a){if(!rd(this))return!1;this.f.Ba(a);return!0};
m.La=function(a,b,d){if(!rd(this))return!1;this.M=0;a||Qc(this)&&Rc(this,this.f.b[7],0);try{var c=this.f.La(a);0<c&&(this.M+=c,Fc(this.f,c,!0),pc(this.f,c),this.T++)}catch(e){"number"!=typeof e&&(this.M=0,sb(this.f,e.stack||e.message))}!1!==d&&H(this.f);this.ja(b||!1);return 0<this.M};m.ca=function(a){this.f&&this.f.ca(a)};m.ja=function(a){void 0===a&&(a=!0);this.P=X(this.f.b[7]);a&&1!=this.W?sd(this):td(this)};
m.Ma=function(a,b,d){if(!rd(this))return!1;this.M=0;a||Qc(this)&&Rc(this,this.f.b[7],0);try{var c=this.f.Ma(a);0<c&&(this.M+=c,Fc(this.f,c,!0),pc(this.f,c),this.T++)}catch(e){"number"!=typeof e&&(this.M=0,sb(this.f,e.stack||e.message))}!1!==d&&H(this.f);this.ja(b||!1);return 0<this.M};m.ca=function(a){this.f&&this.f.ca(a)};m.ja=function(a){void 0===a&&(a=!0);this.P=X(this.f.b[7]);a&&1!=this.W?sd(this):td(this)};
function rd(a){var b;if(b=a.f&&rb(a.f))b=a.f,b.A.$?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!qb(a.f)?(a=a.f,a.A.error?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.ta=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.sa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){hd(this);this.T=this.la=0;this.ia=null;this.M=0;this.P=X(this.f.b[7]);this.A.ba=!1;ud(this);a||this.ja()};
m.save=function(){var a=new I(this);J(a,0,od(this.P));J(a,1,od(this.U));J(a,2,[this.G,this.V,this.aa]);J(a,3,this.L);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.P=pd(a[b++]),this.U=pd(a[b++]),this.G=a[b][0],"string"==typeof this.G&&(this.G=[this.G]),this.V=a[b][1],this.aa|=a[b][2]);a[3]&&(this.L=a[3]);return!0};m.start=function(a,b){this.W||this.g("running");this.A.ba=!0;this.Qa=a;this.Ra=b};
m.stop=function(a,b){if(this.A.ba){this.A.ba=!1;this.M=b-this.Ra;if(!this.W){var d="stopped";if(this.M){var c=a-this.Qa,e=0<c?Math.round(1E3*this.M/c):0,d=d+" (";Qc(this)&&(d+=this.T+" opcodes, ",this.la-=this.T,this.T=0);d+=this.M+" cycles, "+c+" ms, "+e+" hz)"}else ob(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.ja(!0);this.Xa();ud(this,this.f.b[7])}};function Qc(a){return 1<a.B.length||!!a.ga}
m.save=function(){var a=new I(this);J(a,0,od(this.P));J(a,1,od(this.U));J(a,2,[this.G,this.V,this.aa]);J(a,3,this.L);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.P=pd(a[b++]),this.U=pd(a[b++]),this.G=a[b][0],"string"==typeof this.G&&(this.G=[this.G]),this.V=a[b][1],this.aa|=a[b][2]);a[3]&&(this.L=a[3]);return!0};m.start=function(a,b){this.W||this.g("running");this.A.ba=!0;this.Ra=a;this.Sa=b};
m.stop=function(a,b){if(this.A.ba){this.A.ba=!1;this.M=b-this.Sa;if(!this.W){var d="stopped";if(this.M){var c=a-this.Ra,e=0<c?Math.round(1E3*this.M/c):0,d=d+" (";Qc(this)&&(d+=this.T+" opcodes, ",this.la-=this.T,this.T=0);d+=this.M+" cycles, "+c+" ms, "+e+" hz)"}else ob(this,-2147483648)&&(d+=" (use the 't' command to execute blocked faults)");this.g(d)}this.ja(!0);this.Ya();ud(this,this.f.b[7])}};function Qc(a){return 1<a.B.length||!!a.ga}
function Rc(a,b,d){var c=a.f;if(0<d&&(a.ga&&!--a.ga||gc(a,b,1,a.B)))return!0;0<=d&&a.Y.length&&(a.T++,null!=Rb(a.F,b)&&(b=a.O[a.Z],b.D=c.b[7],b.oa=!1,++a.Z==a.O.length&&(a.Z=0)));return!1}function gd(a){var b,d;a.B=["bp"];if(void 0!==a.R)for(b=1;b<a.R.length;b++){d=a.R[b];var c=a.F;hc(c.N[Y(d)>>>c.S],!1)}a.R=["br"];if(void 0!==a.J)for(b=1;b<a.J.length;b++)d=a.J[b],c=a.F,hc(c.N[Y(d)>>>c.S],!0);a.J=["bw"];a.Ca=0}
m.wa=function(a,b,d){var c=!0;d||vd(this,a,b,!1,!0);if(a!=this.B){var e=Y(b);if(-1===e)this.g("invalid address: "+W(this,b.D)),c=!1;else{var f=this.F;f.N[e>>>f.S].wa(e&f.F,a==this.J)}}c&&(a.push(b),d?b.oa=!0:(wd(this,a,a.length-1,"set"),hd(this)));return c};function vd(a,b,d,c,e){var f=!1;d=Y(d);for(var h=1;h<b.length;h++){var g=b[h];if(d==Y(g)&&(!c||g.oa)){f=!0;g.oa||e||wd(a,b,h,"cleared");b.splice(h,1);b!=a.B&&(c=a.F,hc(c.N[d>>>c.S],b==a.J));g.oa||hd(a);break}}return f}
function Vd(a,b){for(var d=1;d<b.length;d++)wd(a,b,d);return b.length-1}function wd(a,b,d,c){d=b[d];a.g(b[0]+" "+W(a,d.D)+(c?" "+c:d.Eb?' "'+d.Eb+'"':""))}function ud(a,b){if(void 0!==b)gc(a,b,1,a.B,!0),a.W=0;else for(var d=1;d<a.B.length;d++){var c=a.B[d];if(c.oa){if(!vd(a,a.B,c,!0))break;d=0}}}
function gc(a,b,d,c,e){var f=!1;if(!a.Ca++)for(var h=1;!f&&h<c.length;h++){var g=c[h];if(!e||g.oa)for(var k=Y(g),l=0;l<d;l++)if(b+l==k){var n,f=!0;g.oa&&(vd(a,c,g,!0),e=!0);if(n=g.Gb){for(var f=!1,p=0;p<n.length;p++)if(!Wd(a,n[p],!0)){if(n[p].indexOf("if")){f=!0;break}for(var q=p+1;q<n.length&&n[q].indexOf("else");q++)p++;if(q==n.length){f=!0;break}}a.f.A.ba||(f=!0)}if(f){e||wd(a,c,h,"hit");break}}}a.Ca--;return f}
function Xd(a,b,d,c){var e=X(b.D),f=a.pa(b,2),h,g;for(g in a.Fa)if(h=a.Fa[g][f&g])break;h||(h=[0]);g="";for(var k=kd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var A=p,p=b,v="",w=void 0,w=void 0,w=A&61440;if(4096==w)w=(f&255)<<24>>23,w=p.D+w&65535,v=W(q,w);else if(8192==w)w=(f&63)<<1,w=p.D-w&65535,v=W(q,w);else if(12288==w)w=f&7,v=W(q,w,2);else if(24576==w)w=f&63,v=W(q,w);else if(w=f&A,A&4032&&(w>>=6,A>>=6),A&63){var A=void 0,z=w&7;switch((w&56)>>3){case 0:v=Yd(z);break;
function Xd(a,b,d,c){var e=X(b.D),f=a.pa(b,2),h,g;for(g in a.Ga)if(h=a.Ga[g][f&g])break;h||(h=[0]);g="";for(var k=kd[h[0]],l=h.length-1,n=1;n<=l;n++){var p=h[n];if(void 0!==p){var q;q=a;var A=p,p=b,v="",w=void 0,w=void 0,w=A&61440;if(4096==w)w=(f&255)<<24>>23,w=p.D+w&65535,v=W(q,w);else if(8192==w)w=(f&63)<<1,w=p.D-w&65535,v=W(q,w);else if(12288==w)w=f&7,v=W(q,w,2);else if(24576==w)w=f&63,v=W(q,w);else if(w=f&A,A&4032&&(w>>=6,A>>=6),A&63){var A=void 0,z=w&7;switch((w&56)>>3){case 0:v=Yd(z);break;
case 1:v="@"+Yd(z);break;case 2:7>z?v="("+Yd(z)+")+":(A=q.pa(p,2),v="#"+W(q,A));break;case 3:7>z?v="@("+Yd(z)+")+":(A=q.pa(p,2),v="@#"+W(q,A));break;case 4:v="-("+Yd(z)+")";break;case 5:v="@-("+Yd(z)+")";break;case 6:A=q.pa(p,2);v=W(q,A)+"("+Yd(z)+")";7==z&&(v=[v,W(q,A+p.D&65535)]);break;case 7:A=q.pa(p,2),v="@"+W(q,A)+"("+Yd(z)+")",7==z&&(v=[v,W(q,A+p.D&65535)])}}q=v;if(!q||!q.length){g="INVALID";break}"string"!=typeof q&&(d||(d=q[1]),q=q[0]);0<g.length&&(g+=",");g+=q||"???"}}f="";h=W(a,e.D)+":";
if(-1!==e.D&&-1!==b.D){do if(f+=" "+W(a,a.pa(e,2)),null==e.D)break;while(e.D!=b.D)}h+=pa(f,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.Ha?h+("cycles="+qc(a.f).toString()+" cs="+r(a.f.Ta)):h+(null!=c?"="+c.toString():""));return h}function Zd(a,b){var d;switch(b){case "N":d=a.f.i&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
if(-1!==e.D&&-1!==b.D){do if(f+=" "+W(a,a.pa(e,2)),null==e.D)break;while(e.D!=b.D)}h+=pa(f,24);h+=pa(k,5);g&&(h+=" "+g);d&&(h=pa(h,60)+";"+d,h=a.f.A.Ia?h+("cycles="+qc(a.f).toString()+" cs="+r(a.f.Ua)):h+(null!=c?"="+c.toString():""));return h}function Zd(a,b){var d;switch(b){case "N":d=a.f.i&32768?8:0;break;case "Z":d=a.f.w&65535?0:4;break;case "V":d=a.f.u&32768?2:0;break;case "C":d=a.f.C&65536?1:0;break;default:d=0}return b.charAt(0)+(d?"1":"0")+" "}
function Yd(a){return 6>a?"R"+a:6==a?"SP":"PC"}function $d(a,b){var d="",c=a.f;8>b?(d=Yd(b),d+="="+W(a,c.b[b])):13>b?d="A"+(b-8)+"="+W(a,c.eb[b-8]):16<=b&&20>b?d="S"+(b-16)+"="+W(a,c.Aa[b-16]):20==b&&(d="PS="+W(a,Kc(c)));d&&(d+=" ");return d}m.qb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};function ae(a,b,d){var c=[],e=Y(b)>>>0;for(b=0;b<a.L.length;b++){var f=a.L[b],h=f.D>>>0,g=f.Kb;if(e>=h&&e<h+g){e=ra(f.ob,[e-h],a.qb);0<=e?be(a,b,e,c):d&&(e=~e,be(a,b,e-1,c),be(a,b,e,c));break}}return c}
function be(a,b,d,c){var e={},f=a.L[b].ob,h=0,g=null;0<=d&&d<f.length&&(h=f[d][0],g=f[d][1]);g&&(e=a.L[b].ra[g],g="."==g.charAt(0)?null:e.l||g);c.push(g);c.push(h);c.push(e.a);c.push(e.c)}function ce(a,b){var d=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(d){if(!d[1])return ed(a)||a.g("no variables"),!0;if(!d[2])return ed(a,d[1]);if(!d[3])return delete a.X[d[1]],!0;var c=ad(a,d[3]);return void 0!==c?(a.X[d[1]]=c,!0):!1}a.g("invalid assignment:"+b);return!1}
function de(a,b,d){var c=null;if(b=Z(a,b,!0)){var e=ae(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.D-e[1])&&(h=" + "+r(f,4,!0)),f=e[0]+" ("+W(a,e[1])+")"+h,d&&a.g(f),c=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.D)&&(h=" - "+r(f,4,!0)),f=e[4]+" ("+W(a,e[5])+")"+h,d&&a.g(f),c||(c=f))}else d&&a.g("no symbols")}return c}
function sd(a,b){var d;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var c=a.f;null==d&&(d=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=ad(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "PC":c.b[7]=g;a.P=X(c.b[7]);break;case "NF":c.i=g?32768:0;break;case "ZF":c.w=g?0:1;break;case "VF":c.u=
g?32768:0;break;case "CF":c.C=g?65536:0;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}H(c);a.g("updated registers:")}f="";for(e=0;6>e;e++)f+=$d(a,e);f=f+"\n"+($d(a,6)+$d(a,7));f+=Zd(a,"T")+Zd(a,"N")+Zd(a,"Z")+Zd(a,"V")+Zd(a,"C");a.g(f);d&&(a.P=X(c.b[7]),td(a,W(a,a.P.D)))}}function ee(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):ad(a,b,!0)}
function fe(a,b,d){var c="t"!=b;d=cd(a,d,null,!0)||1;var e=1==d?0:1;"tc"==b&&(e=d,d=1);Ja(d,function(){return pb(a,!0)&&a.La(e,c,!1)},function(){H(a.f);pb(a,!1)})}
g?32768:0;break;case "CF":c.C=g?65536:0;break;default:a.g("unknown register: "+e);return}if(!h){a.g("invalid value: "+f);return}H(c);a.g("updated registers:")}f="";for(e=0;6>e;e++)f+=$d(a,e);f=f+"\n"+($d(a,6)+$d(a,7)+$d(a,20));f+=Zd(a,"T")+Zd(a,"N")+Zd(a,"Z")+Zd(a,"V")+Zd(a,"C");a.g(f);d&&(a.P=X(c.b[7]),td(a,W(a,a.P.D)))}}function ee(a,b){b=qa(b);var d=b.match(/^(['"])(.*?)\1$/);d?a.g(d[2]):ad(a,b,!0)}
function fe(a,b,d){var c="t"!=b;d=cd(a,d,null,!0)||1;var e=1==d?0:1;"tc"==b&&(e=d,d=1);Ja(d,function(){return pb(a,!0)&&a.Ma(e,c,!1)},function(){H(a.f);pb(a,!1)})}
function td(a,b,d,c){if(b=Z(a,b,!0)){void 0===c&&(c=1);var e=256;if(void 0!==d){c=Z(a,d,!0);if(!c||c.D<b.D)return;e=c.D-b.D;if(256<e){a.g("range too large");return}c=-1}d=0;for(var f;0<e&&c--;){f=qb(a,!1)||a.W?a.M:null;var h=null!=f?"cycles":null,g=ae(a,b),k=b.D;if(g[0]&&c&&(!d&&c||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=Xd(a,b,h,f);a.g(f);a.P=b;e-=b.D-k;d++}}}
function Wd(a,b,d){var c=!0;try{b.length&&"end"!=b?d||a.g(">> "+b):(a.V&&(a.g("ended assemble at "+W(a,a.U.D)),a.P=a.U,a.V=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.ia=null;if(rb(a)&&0<b.length){a.V&&(b="a "+W(a,a.U.D)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var n=Z(a,f[1],!0);if(n)if(a.U=
n,void 0===f[2])a.g("begin assemble at "+W(a,n.D)),a.V=!0,H(a.f);else{var p;a.g("not supported yet");p=[];if(p.length){for(var q=0;q<p.length;q++)a.fb(n,p[q],1);a.g(Xd(a,a.U))}}break;case "b":a:{var A=f[0],v=f[1],w=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");
else{var z=A.charAt(1);if("l"==z){var Da=0,Da=Da+Vd(a,a.B),Da=Da+Vd(a,a.R);(Da+=Vd(a,a.J))||a.g("no breakpoints")}else if("n"==z)a.ga=cd(a,v),a.g("break after "+a.ga+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var T=X();if("*"!=v&&(T=Z(a,v,!0),!T))break a;"c"==z?null==T.D?(gd(a),a.g("all breakpoints cleared")):vd(a,a.B,T)||vd(a,a.R,T)||vd(a,a.J,T)||a.g("breakpoint missing: "+W(a,T.D)):null!=T.D&&(qd(a,T,w),"p"==z?a.wa(a.B,T):"r"==z?a.wa(a.R,T):"w"==z?a.wa(a.J,T):a.g("unknown breakpoint command: "+
z))}}}break;case "c":a.xa&&(a.xa.value="");break;case "d":a:{var Ea,Fa=f[0],ba=f[1],sa=f[2],ze=f[3];if("?"==ba){var ca="";for(Ea in F)a.na[Ea]&&(ca&&(ca+=","),ca+=Ea);ca+=",state,symbols";a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ca.length&&a.g("dump extension commands:\n\t"+ca)}else if("state"==ba){var xd=ge(a.j,
!0);"console"==sa?console.log(xd):(a.xa&&(a.xa.value=""),a.g(xd))}else if("symbols"==ba)for(var rc=0;rc<a.L.length;rc++){var sc=a.L[rc],Ga;for(Ga in sc.ra)if("."!=Ga.charAt(0)){var yd=sc.ra[Ga].o;if(void 0!==yd){var zd=sc.ra[Ga].l;zd&&(Ga=zd);a.g(W(a,yd)+" "+Ga)}}}else{if("d"==Fa){for(Ea in F)if(f[1]==Ea){var Ad=a.na[Ea];Ad?(f.shift(),f.shift(),Ad(f)):a.g("no dump registered for "+ba);break a}ba||(Fa=a.ab||"db")}else a.ab=Fa;if("dh"==Fa){var Bd=ba,Cd=sa,Dd="",Ed=0,N=a.Z,da=a.O;if(da.length){var U=
+Bd||a.Ea,Ha=+Cd||10;isNaN(U)?U=Ha:Dd="more ";U>da.length&&(a.g("note: only "+da.length+" available"),U=da.length);N-=U;0>N&&(null==da[da.length-1].D?(U=N+U,N=0):N+=da.length);var tc=[];"call"==Cd&&(Ha=1E5,tc=["CALL"]);for(void 0!==Bd&&a.g(U+" instructions earlier:");0<Ha&&N!=a.Z;){var Fd=da[N++];if(null==Fd.D)break;var db=X(Fd.D),Ae=U--,Gd=Xd(a,db,"history",Ae);(!tc.length||0<=Gd.indexOf(tc[0]))&&a.g(Gd);db.ib&&(N+=db.ib,Ha-=db.ib,U-=db.ib);N>=da.length&&(N=0);a.Ea=U;Ed++;Ha--}}Ed||(a.g("no "+Dd+
"history available"),a.Ea=void 0)}else{var Fb=Z(a,ba);if(Fb){var Gb=0;sa&&("l"==sa.charAt(0)&&(sa=sa.substr(1)||ze),Gb=cd(a,sa)>>>0,65536<Gb&&(Gb=65536));for(var ta="",Hb="dd"==Fa?4:"dw"==Fa?2:1,Ib=Hb*Gb||128,Be=Ib+15>>4||1;Be--&&0<Ib;){var Jb=0,uc=0,eb,fb="",vc="",ba=W(a,Fb.D);for(eb=16;0<eb&&0<Ib;eb--){var Kb=a.Sa(Fb,1),Jb=Jb|Kb<<(uc++<<3);uc==Hb&&(fb+=r(Jb,2*Hb),fb+=1==Hb?9==eb?"-":" ":" ",Jb=uc=0);vc+=32<=Kb&&128>Kb?String.fromCharCode(Kb):".";Ib--}ta&&(ta+="\n");ta+=ba+" "+fb+(0==eb?" "+vc:
"")}ta&&a.g(ta);a.Da=Fb}}}}break;case "e":if("else"==f[0])break;var Lb=1,Hd=255,Id=a.Sa,Jd=a.fb;"ew"==f[0]&&(Lb=2,Hd=65535,Id=a.pa,Jd=a.lb);var Kd=Lb<<1,Ld=f[1];if(null==Ld)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Mb=Z(a,Ld);if(Mb)for(var Nb=2;Nb<f.length;Nb++){var gb=ad(a,f[Nb]);if(void 0===gb){a.g("unrecognized value: "+f[Nb]);break}gb&~Hd&&a.g("warning: "+r(gb)+" exceeds "+Lb+"-byte value");var Ce=Id.call(a,
Mb);a.g("changing "+W(a,Mb.D)+" from "+r(Ce,Kd,!0)+" to "+r(gb,Kd,!0));Jd.call(a,Mb,gb,Lb)}}break;case "g":a:{var Md=f[1],De=b;if(void 0!==Md){var wc=Z(a,Md,!0);if(!wc)break a;qd(a,wc,De);a.wa(a.B,wc,!0)}a.Ba(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var xc;if(a.A.ba)xc="halting",a.ca();else{if(qb(a,!0))break a;xc="already halted"}d||a.g(xc)}break;case "i":if("if"==f[0]){var yc;var hb=b.substr(2),hb=qa(hb);ad(a,hb)?(d||a.g("true: "+hb),yc=!0):(d||a.g("false: "+
hb),yc=!1);yc||(c=!1)}break;case "k":var Ee=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var zc=0,Nd=X(),ib=X(a.f.b[6]);for(a.g("stack trace for "+W(a,ib.D));10>zc;){for(var ua=null,Fe=256;65536>ib.D>>>0;){Nd.D=a.pa(ib,2);if(null==ib.D||!Fe--)break;for(var Ge=a,Ob=Nd,Od=null,jb=Ob.D,Pd=jb,Ac=1;6>=Ac&&jb;Ac++){if(2<Ac){Ob.D=jb;var Pb=Xd(Ge,Ob);if(0<=Pb.indexOf("JSR")){var Qd=Pb.indexOf(" ");if(jb+(Pb.indexOf(" ",Qd+1)-Qd-
1)/2==Pd){Od=Pb;break}}}jb--}Ob.D=Pd;if(ua=Od)break}if(!ua||null==ua)break;var Rd=null;if("ks"==Ee){var Sd=ua.match(/[0-9A-F]+$/);Sd&&(Rd=de(a,Sd[0]))}ua=pa(ua,50)+" ;"+(Rd||"stack="+W(a,ib.D));a.g(ua);zc++}zc||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){de(a,f[1],!0);break}break;case "m":a:{var ea,fa=null,D=f[1];"?"==D&&(D=void 0);if(void 0!==D){var ma=0;if("all"==D)ma=1878917119,D=null;else if("on"==D)fa=!0,D=null;else if("off"==D)fa=!1,D=null;else{"keys"==D&&(D="key");"kbd"==
+Bd||a.Fa,Ha=+Cd||10;isNaN(U)?U=Ha:Dd="more ";U>da.length&&(a.g("note: only "+da.length+" available"),U=da.length);N-=U;0>N&&(null==da[da.length-1].D?(U=N+U,N=0):N+=da.length);var tc=[];"call"==Cd&&(Ha=1E5,tc=["CALL"]);for(void 0!==Bd&&a.g(U+" instructions earlier:");0<Ha&&N!=a.Z;){var Fd=da[N++];if(null==Fd.D)break;var db=X(Fd.D),Ae=U--,Gd=Xd(a,db,"history",Ae);(!tc.length||0<=Gd.indexOf(tc[0]))&&a.g(Gd);db.ib&&(N+=db.ib,Ha-=db.ib,U-=db.ib);N>=da.length&&(N=0);a.Fa=U;Ed++;Ha--}}Ed||(a.g("no "+Dd+
"history available"),a.Fa=void 0)}else{var Gb=Z(a,ba);if(Gb){var Hb=0;sa&&("l"==sa.charAt(0)&&(sa=sa.substr(1)||ze),Hb=cd(a,sa)>>>0,65536<Hb&&(Hb=65536));for(var ta="",Ib="dd"==Fa?4:"dw"==Fa?2:1,Jb=Ib*Hb||128,Be=Jb+15>>4||1;Be--&&0<Jb;){var Kb=0,uc=0,eb,fb="",vc="",ba=W(a,Gb.D);for(eb=16;0<eb&&0<Jb;eb--){var Lb=a.Ta(Gb,1),Kb=Kb|Lb<<(uc++<<3);uc==Ib&&(fb+=r(Kb,2*Ib),fb+=1==Ib?9==eb?"-":" ":" ",Kb=uc=0);vc+=32<=Lb&&128>Lb?String.fromCharCode(Lb):".";Jb--}ta&&(ta+="\n");ta+=ba+" "+fb+(0==eb?" "+vc:
"")}ta&&a.g(ta);a.Da=Gb}}}}break;case "e":if("else"==f[0])break;var Mb=1,Hd=255,Id=a.Ta,Jd=a.fb;"ew"==f[0]&&(Mb=2,Hd=65535,Id=a.pa,Jd=a.lb);var Kd=Mb<<1,Ld=f[1];if(null==Ld)a.g("edit memory commands:"),a.g("\teb [a] [...] edit bytes at address a"),a.g("\tew [a] [...] edit words at address a");else{var Nb=Z(a,Ld);if(Nb)for(var Ob=2;Ob<f.length;Ob++){var gb=ad(a,f[Ob]);if(void 0===gb){a.g("unrecognized value: "+f[Ob]);break}gb&~Hd&&a.g("warning: "+r(gb)+" exceeds "+Mb+"-byte value");var Ce=Id.call(a,
Nb);a.g("changing "+W(a,Nb.D)+" from "+r(Ce,Kd,!0)+" to "+r(gb,Kd,!0));Jd.call(a,Nb,gb,Mb)}}break;case "g":a:{var Md=f[1],De=b;if(void 0!==Md){var wc=Z(a,Md,!0);if(!wc)break a;qd(a,wc,De);a.wa(a.B,wc,!0)}a.Ba(!0)||d||a.g("cpu busy or unavailable, run command ignored")}break;case "h":a:{var xc;if(a.A.ba)xc="halting",a.ca();else{if(qb(a,!0))break a;xc="already halted"}d||a.g(xc)}break;case "i":if("if"==f[0]){var yc;var hb=b.substr(2),hb=qa(hb);ad(a,hb)?(d||a.g("true: "+hb),yc=!0):(d||a.g("false: "+
hb),yc=!1);yc||(c=!1)}break;case "k":var Ee=f[0];if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var zc=0,Nd=X(),ib=X(a.f.b[6]);for(a.g("stack trace for "+W(a,ib.D));10>zc;){for(var ua=null,Fe=256;65536>ib.D>>>0;){Nd.D=a.pa(ib,2);if(null==ib.D||!Fe--)break;for(var Ge=a,Pb=Nd,Od=null,jb=Pb.D,Pd=jb,Ac=1;6>=Ac&&jb;Ac++){if(2<Ac){Pb.D=jb;var Qb=Xd(Ge,Pb);if(0<=Qb.indexOf("JSR")){var Qd=Qb.indexOf(" ");if(jb+(Qb.indexOf(" ",Qd+1)-Qd-
1)/2==Pd){Od=Qb;break}}}jb--}Pb.D=Pd;if(ua=Od)break}if(!ua||null==ua)break;var Rd=null;if("ks"==Ee){var Sd=ua.match(/[0-9A-F]+$/);Sd&&(Rd=de(a,Sd[0]))}ua=pa(ua,50)+" ;"+(Rd||"stack="+W(a,ib.D));a.g(ua);zc++}zc||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){de(a,f[1],!0);break}break;case "m":a:{var ea,fa=null,D=f[1];"?"==D&&(D=void 0);if(void 0!==D){var ma=0;if("all"==D)ma=1878917119,D=null;else if("on"==D)fa=!0,D=null;else if("off"==D)fa=!1,D=null;else{"keys"==D&&(D="key");"kbd"==
D&&(D="keyboard");for(ea in F)if(D==ea){ma=F[ea];fa=!!(a.aa&ma);break}if(!ma){a.g("unknown message category: "+D);break a}}if(ma)if("on"==f[2])a.aa|=ma,fa=!0;else if("off"==f[2]&&(a.aa&=~ma,fa=!1,1073741824==ma)){for(var Bc=0;Bc<a.ka.length;Bc++)a.g(a.ka[Bc]);a.ka=[]}}var He=0,na="";for(ea in F)if(!D||D==ea){var Ie=!!(a.aa&F[ea]);if(null===fa||fa==Ie)na&&(na+=","),++He%10||(na+="\n\t"),"key"==ea&&(ea="keys"),na+=ea}void 0===D&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.g((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(na||"none"));hd(a)}break;case "p":if("print"==f[0]){ee(a,b.substr(5));break}var Je="pr"==f[0]?1:0;if(a.W)a.g("step in progress");else{var Td=X(a.f.b[7]);a.Sa(Td);a.W?(a.wa(a.B,Td,!0),a.Ba()||(a.j&&a.j.Xa(),a.W=0)):fe(a,Je?"tr":"t")}break;case "r":if("reset"==b){a.j&&a.j.reset();break}sd(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var kb=+f[2];if(8==kb||10==kb||16==kb)a.fa=kb;else{a.g("invalid base: "+kb);break}}a.g("default base: "+
a.fa);break;case "cs":var lb;void 0!==f[3]&&(lb=+f[3]);switch(f[2]){case "int":a.f.Ia=lb;break;case "start":a.f.Ua=lb;break;case "stop":a.f.Ja=lb;break;default:a.g("unknown cs option");break a}void 0!==lb&&nc(a.f);a.g("checksums "+(a.f.A.Ha?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(Ec(a.f,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.ya.toFixed(2)+"Mhz")+" ("+a.f.za+"x)");break;case "?":a.g("debugger options:");a.g("\tbase #\t\tset default base to #");
a.g((null!==fa?fa?"messages on: ":"messages off: ":"message categories:\n\t")+(na||"none"));hd(a)}break;case "p":if("print"==f[0]){ee(a,b.substr(5));break}var Je="pr"==f[0]?1:0;if(a.W)a.g("step in progress");else{var Td=X(a.f.b[7]);a.Ta(Td);a.W?(a.wa(a.B,Td,!0),a.Ba()||(a.j&&a.j.Ya(),a.W=0)):fe(a,Je?"tr":"t")}break;case "r":if("reset"==b){a.j&&a.j.reset();break}sd(a,f);break;case "s":a:switch(f[1]){case "base":if(f[2]){var kb=+f[2];if(8==kb||10==kb||16==kb)a.fa=kb;else{a.g("invalid base: "+kb);break}}a.g("default base: "+
a.fa);break;case "cs":var lb;void 0!==f[3]&&(lb=+f[3]);switch(f[2]){case "int":a.f.Ja=lb;break;case "start":a.f.Va=lb;break;case "stop":a.f.Ka=lb;break;default:a.g("unknown cs option");break a}void 0!==lb&&nc(a.f);a.g("checksums "+(a.f.A.Ia?"enabled":"disabled"));break;case "sp":void 0!==f[2]&&(Ec(a.f,+f[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.f.ya.toFixed(2)+"Mhz")+" ("+a.f.za+"x)");break;case "?":a.g("debugger options:");a.g("\tbase #\t\tset default base to #");
a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:f[1]&&a.g("unknown option: "+f[1])}break;case "t":fe(a,f[0],f[1]);break;case "u":td(a,f[1],f[2],8);break;case "v":if("var"==f[0]){ce(a,b.substr(3))||(c=!1);break}a.g("PDP11js version 1.30.0 ("+a.f.Cb+",RELEASE"+(tb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(window?window.navigator.userAgent:
"");break;case "?":if(f[1]){ee(a,b.substr(1));break}var mb="commands:",Cc;for(Cc in jd)mb+="\n"+pa(Cc,9)+jd[Cc];Qc(a)||(mb+="\nnote: history disabled if no exec breakpoints");a.g(mb);break;default:a.g("unknown command: "+b),c=!1}}}catch(Ud){a.g("debugger error: "+(Ud.stack||Ud.message)),c=!1}return c}function oc(a,b,d){b=Zc(a,b,d);for(var c in b)if(!Wd(a,b[c]))return!1;return!0}Qa(function(){for(var a=C(document,"pdp11","debugger"),b=0;b<a.length;b++){var d=a[b],c=B(d),c=new fd(c);nb(c,d)}});
function he(a,b,d){u.call(this,"Computer",a,he,67108864);this.A.$=!1;ie(this,b);this.R=lc(this,"autoPower",a);this.G=0;this.X=a.busWidth||a.buswidth;this.j=je;this.O=null;this.L=this.V=!1;this.Y=lc(this,"url")||"";(Math.random()+.1).toString(36);this.B=ke(this);if(this.f=cb("CPU",this.id)){this.I=cb("Debugger",this.id);this.F=new wb({id:this.ub+".bus",busWidth:this.X},this.f,this.I);var c,e=bb(this.id);if((this.H=cb("Panel",this.id))&&this.H.xa)for(b=0;b<e.length;b++)c=e[b],c.ea=this.H.ea,c.g=this.H.g,
c.xa=this.H.xa;this.g("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<e.length;b++)c=e[b],c.va&&c.va(this,this.F,this.f,this.I);b=null;c=a.resume;void 0!==c&&(1<c.length?b=this.M=c:this.j=parseInt(c,10));var f;if(a=lc(this,"state")||(f=!0,a.state))b=this.T=a,f||(this.L=!0,this.j=je),this.j&&(this.P=
new I(this,"1.30.0"),le(this.P)?b=null:delete this.P);!b&&this.j&&(b=me(this))&&(this.L=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.M=null,h.L=!1,h.ea("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.O=b,h.V=!0);E(h)})}else E(this);this.K.power||(this.R=!0);!d&&this.R&&ne(this,this.Va)}else t("Unable to find CPU component")}y(he);var je=0;
new I(this,"1.30.0"),le(this.P)?b=null:delete this.P);!b&&this.j&&(b=me(this))&&(this.L=!0);if(b){var h=this;xa(b,null,!0,function(a,b,c){c?(h.M=null,h.L=!1,h.ea("Unable to load machine state from server (error "+c+(b?": "+qa(b):"")+")")):(h.O=b,h.V=!0);E(h)})}else E(this);this.K.power||(this.R=!0);!d&&this.R&&ne(this,this.Wa)}else t("Unable to find CPU component")}y(he);var je=0;
function ie(a,b){if(!b){var d;if("object"==typeof resources&&(d=resources.parms))try{b=eval("("+d+")")}catch(c){t(c.message+" ("+d+")")}}a.W=b}function lc(a,b,d){var c=b.toLowerCase(),c=Va[b]||Va[c];void 0===c&&a.W&&(c=a.W[b]);void 0===c&&d&&(c=d[b]);void 0===c&&"object"==typeof resources&&resources[b]&&(c=b);return c}function ne(a,b,d){for(var c=bb(a.id),e=0;e<=c.length;e++){var f=e<c.length?c[e]:a;if(!rb(f)){rb(f,function(){ne(a,b,d)});return}}b.call(a,d)}
function oe(a,b){var d=new I(a,"1.30.0","validate");if(le(d)&&pe(d)){var c=qe(d,"timestamp"),e=b?qe(b,"timestamp"):"unknown";c!=e&&(a.ea("Machine state may be out-of-date\n("+c+" vs. "+e+")\nCheck your browser's local storage limits"),b||d.clear())}}m=he.prototype;
m.Va=function(a){void 0===a&&(a=this.j||(this.O?1:je));if(!this.G){this.G++;var b=!1,d=!1;this.U=!1;var c=this.P||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>je){if(le(c,this.O)){this.J=new I(this,"1.30.0","failsafe");le(this.J)&&(re(this,c),a=2,se(this.J));J(this.J,"timestamp",wa());te(this.J);var e=this.j&&!this.L;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=pe(c)){var f=qe(c,"code"),h=qe(c,"data");f&&("ok"==f?le(c,h):("error"==f&&
m.Wa=function(a){void 0===a&&(a=this.j||(this.O?1:je));if(!this.G){this.G++;var b=!1,d=!1;this.U=!1;var c=this.P||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>je){if(le(c,this.O)){this.J=new I(this,"1.30.0","failsafe");le(this.J)&&(re(this,c),a=2,se(this.J));J(this.J,"timestamp",wa());te(this.J);var e=this.j&&!this.L;if(1==a||ya("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(d=pe(c)){var f=qe(c,"code"),h=qe(c,"data");f&&("ok"==f?le(c,h):("error"==f&&
"no machine state"!=h?(this.ea("Error: "+h),"unable to verify user"==h&&(Ca("user",""),this.B=null)):this.g(f+": "+h),se(c),le(c)?(d=pe(c),e=!0):d=!1))}e&&oe(this,d?c:null)}else 2==a&&c.clear()}else oe(this);delete this.O;delete this.P}e=bb(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.f&&(d=ue(this,h,c,b,d));b=[c,a,d];-1!=a?ne(this,this.sb,b):this.sb(b)}};
function ue(a,b,d,c,e){if(!b.A.$){b.A.$=!0;if(b.ta){var f=null;e&&((f=qe(d,b.id))||(f=qe(d,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ta(f,c)&&f&&(t("Unable to restore state for "+b.type),a.T&&!a.V?(d.clear(),a.j=je,window&&window.location.reload()):a.U=!0,b.ta(null),e=!1)}if(!c&&b.tb)for(a=b.tb.split("|"),d=0;d<a.length;d++)b.status(a[d])}return e}
m.sb=function(a){var b=a[0],d=0>a[1];a=a[2];this.Z=!0;this.A.$=!0;var c=this.K.power;c&&(c.textContent="Shutdown");this.f&&(ue(this,this.f,b,d,a),this.f.Pa());this.U&&(re(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.G=0};
m.sb=function(a){var b=a[0],d=0>a[1];a=a[2];this.Z=!0;this.A.$=!0;var c=this.K.power;c&&(c.textContent="Shutdown");this.f&&(ue(this,this.f,b,d,a),this.f.Qa());this.U&&(re(this,b),b.clear());!d&&this.J&&(this.J.clear(),delete this.J);this.G=0};
function re(a,b){if(ya("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var d=a.B||"",c=b.toString(),e={app:"PDP11js",ver:"1.30.0"};e.url=a.Y;e.user=d;e.type="bug";e.data=c;xa("http://www.pcjs.org/api/v1/report",e,!0)}}
function ge(a,b,d){var c,e="none";if(a.G)return null;a.G--;var f=new I(a,"1.30.0"),h=new I(a,"1.30.0","validate"),g=wa();J(h,"timestamp",g);J(f,"timestamp",g);J(f,"version","1.30.0");J(f,"url",window?window.location.href:null);J(f,"browser",window?window.navigator.userAgent:"");a.f&&a.f.sa&&(d&&a.f.ca(),c=a.f.sa(b,d),"object"===typeof c&&J(f,a.f.id,c),d&&(a.f.A.$=!1,!1===c&&(e=null)));for(var g=bb(a.id),k=0;k<g.length;k++){var l=g[k];l.A.$&&(l.sa&&(c=l.sa(b,d),"object"===typeof c&&J(f,l.id,c)),d&&
(l.A.$=!1,!1===c&&(e=null)))}e&&(d?(g=c=!1,b?(a.B&&ve(a,a.B,f.toString()),te(h)&&te(f)||(e=null,c=g=!0)):a.j&&(c=!0,g=3==a.j),c&&f.clear(g)):e=f.toString());d&&(a.A.$=!1,b=a.K.power)&&(b.textContent="Power");a.G=0;return e}m.reset=function(){this.F&&this.F.reset&&(this.I&&ob(this,0)&&this.I.message("Resetting "+this.F.type,void 0),this.F.reset());for(var a=bb(this.id),b=0;b<a.length;b++){var d=a[b];d!==this&&d!==this.F&&d.reset&&(this.I&&ob(this,0)&&this.I.message("Resetting "+d.type,void 0),d.reset())}};
m.start=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var d=bb(this.id),c=0;c<d.length;c++){var e=d[c];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
m.ha=function(a,b,d){var c=this;switch(b){case "power":return this.K[b]=d,d.onclick=function(){c.G||(c.A.$?ge(c,!1,!0):ne(c,c.Va))},!0;case "reset":return this.K[b]=d,d.onclick=function(){if(c.A.$&&!c.G)if(c.j&&!c.M){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ge(c,a,!0);!a&&c.T?window&&window.location.reload():c.Va(je)}else c.reset(),c.f&&c.f.Pa()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.K[b]=
m.ha=function(a,b,d){var c=this;switch(b){case "power":return this.K[b]=d,d.onclick=function(){c.G||(c.A.$?ge(c,!1,!0):ne(c,c.Wa))},!0;case "reset":return this.K[b]=d,d.onclick=function(){if(c.A.$&&!c.G)if(c.j&&!c.M){var a=ya("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");ge(c,a,!0);!a&&c.T?window&&window.location.reload():c.Wa(je)}else c.reset(),c.f&&c.f.Qa()},!0;case "save":if(ja()){d.parentNode.removeChild(d);break}this.K[b]=
d;d.onclick=function(){var a=ke(c,!0);if(a){var b=!!(c.j&&!c.M||c.T),d=ge(c,b);b?ve(c,a,d):c.ea("Resume disabled, machine state not saved")}};return!0}return!1};
function ke(a,b){var d=a.B;d||(d=Ba("user"),void 0!==d?!d&&b&&(d=null,window&&(d=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.","")),d&&((d=we(a,d))||a.ea("The user ID is invalid."))):b&&a.ea("Browser local storage is not available"));return d}
function we(a,b){a.B=null;var d=xa(ka()+"/api/v1/user?req=verify&user="+b),c=d[1];if(!d[0]&&c)try{d=eval("("+c+")"),d.code&&"ok"==d.code&&(Ca("user",d.data),a.B=d.data)}catch(e){t(e.message+" ("+c+")")}return a.B}function me(a){var b=null;a.B&&(b=ka()+"/api/v1/user?req=load&user="+a.B+"&state="+xe(a,"1.30.0"));return b}
function ve(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=xe(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.ea("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.ea(d),Ca("user",""),a.B=null)}}m.Xa=function(){};
m.ja=function(a){this.f&&this.f.ja(a);this.H&&this.H.ja(a)};Qa(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=B(d),d=C(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],h=B(f),h=new he(h,c,!0);nb(h,f);h.R&&ne(h,h.Va)}});La.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=cb("Computer",d.id))&&d.Z&&!d.A.$&&d.Va(-1)}});
function ve(a,b,d){if(d){var c={req:"store"};c.user=b;c.state=xe(a,"1.30.0");c.data=d;b=xa(ka()+"/api/v1/user",c);c=b[0];if(b[1]){if(c){var e=c.indexOf("\n");0<e&&(c=c.substr(0,e));c.indexOf("Error: ")||(c=c.substr(7))}c='{"code":'+b[1]+',"data":"'+c+'"}'}b=JSON.parse(c);b&&"ok"==b.code?a.ea("Machine state saved to server"):d&&(d=b&&b.data||"unable to save machine state",d="error"==b.code?"Error: "+d:"Error "+b.code+": "+d,a.ea(d),Ca("user",""),a.B=null)}}m.Ya=function(){};
m.ja=function(a){this.f&&this.f.ja(a);this.H&&this.H.ja(a)};Qa(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var d=a[b],c=B(d),d=C(d,"pdp11","computer"),e=0;e<d.length;e++){var f=d[e],h=B(f),h=new he(h,c,!0);nb(h,f);h.R&&ne(h,h.Wa)}});La.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=cb("Computer",d.id))&&d.Z&&!d.A.$&&d.Wa(-1)}});
La.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var d=B(a[b]);(d=cb("Computer",d.id))&&d.A.$&&ge(d,!(!d.j||d.M),!0)}});function I(a,b,d){this.id=a.id;this.key=xe(a,b,d);this.I=a.I;se(this,a.Mb)}function xe(a,b,d){a=a.id;if(b){var c=b.indexOf(".");0<c&&(a+=".v"+b.substr(0,c))}d&&(a+="."+d);return a}
I.prototype={constructor:I,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){se(this);var b=[];try{for(var d=0,c=window.localStorage.length;d<c;d++)b.push(window.localStorage.key(d))}catch(e){}for(d=0;d<b.length;d++)if((c=b[d])&&(a||c.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(c)}catch(e){}b.splice(d,1);d=0}}};
function se(a,b){a[a.id]={};b&&J(a,"parms",b);a.f=!1}function te(a){var b=!0;if(Aa()){var d=JSON.stringify(a[a.id]);Ca(a.key,d)||(t("Unable to store "+d.length+" bytes in browser local storage"),b=!1)}return b}function pe(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(d){t(d.message||d),b=!1}return b}function le(a,b){return b?(a[a.id]=b,a.f=!0):a.f?!0:Aa()&&(b=Ba(a.key))?(a[a.id]=b,a.f=!0):!1}function qe(a,b){return a[a.id][b]||null}function J(a,b,d){try{a[a.id][b]=d}catch(c){}}var ye=0;

View file

@ -3,56 +3,56 @@ function aa(a){var b=16,c;if(a){b||(b=10);var d=a.charAt(0),f=0<a.indexOf(",");f
f&&null!==d.match(/^[01]+$/):null!==d.match(/^[0-9]+$/))&&!isNaN(e=parseInt(a,b))&&(c=e|0)}return c}function n(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 f=a&15,f=f+(0<=f&&9>=f?48:55),d=String.fromCharCode(f)+d;a>>=4}return(c?"0x":"")+d}function ba(a){var b=a,c=a.lastIndexOf("/");0<=c&&(b=a.substr(c+1));c=b.indexOf("&");0<c&&(b=b.substr(0,c));return b}
function ca(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function da(){var a=ea();return-1!==a.indexOf("pcjs.org",a.length-8)}var fa={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};function ga(a){return a.replace(/[&<>"']/g,function(a){return fa[a]})}var ha=Date.now||function(){return+new Date};
function ia(){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())}
function p(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];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&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
function q(a,b,c,d){var f=0,e=null,g=null;if("object"==typeof resources&&(e=resources[a]))return d&&d(a,e,f),[e,f];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&&(e=h.responseText,200==h.status||!h.status&&e.length&&"file:"==(window?window.location.protocol:"file:")||(f=h.status||-1),d&&d(a,e,f))});if(b&&"object"==
typeof b){var k="",l;for(l in b)b.hasOwnProperty(l)&&(k&&(k+="&"),k+=l+"="+encodeURIComponent(b[l]));k=k.replace(/%20/g,"+");h.open("POST",a,!!c);h.setRequestHeader("Content-type","application/x-www-form-urlencoded");h.send(k)}else h.open("GET",a,!!c),"bytes"==b&&h.overrideMimeType("text/plain; charset=x-user-defined"),h.send();c||(e=h.responseText,200!=h.status&&(f=h.status||-1),d&&d(a,e,f),g=[e,f]);return g}function ea(){return"http://"+(window?window.location.host:"www.pcjs.org")}
function q(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var r={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function t(a){r.init.push(a)}
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){q(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){r[a]&&ta(r[a])}sa("onload",function(){pa=!0;ta(r.init)});sa("onpageshow",function(){qa=!0;ta(r.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(r.exit)});
function u(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Qa=b.comment;this.hb=b;b=this.id.indexOf(".");0>b?this.za=this.id:(this.Ra=this.id.substr(0,b),this.za=this.id.substr(b+1));this[a]=c;this.h={ready:!1,ia:!1,Aa:!1,B:!1,error:!1};this.va=null;this.h.error=!1;this.o={};this.w=null;w.push(this)}var wa=void 0,xa={};
function r(a){window&&window.alert(a)}function ja(a){var b=!1;window&&(b=window.confirm(a));return b}var ka=null;function la(){if(null==ka){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}ka=a}return ka}function ma(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function na(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function oa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}var t={init:[],show:[],exit:[]},pa=!1,qa=!1,ra=!0;function sa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function u(a){t.init.push(a)}
function ta(a){if(ra)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function ua(a){!ra&&a?(ra=!0,pa&&va("init"),qa&&va("show")):ra=a}function va(a){t[a]&&ta(t[a])}sa("onload",function(){pa=!0;ta(t.init)});sa("onpageshow",function(){qa=!0;ta(t.show)});sa(oa("Opera")||oa("iOS")?"onunload":"onbeforeunload",function(){ta(t.exit)});
function v(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Qa=b.comment;this.hb=b;b=this.id.indexOf(".");0>b?this.za=this.id:(this.Ra=this.id.substr(0,b),this.za=this.id.substr(b+1));this[a]=c;this.h={ready:!1,ja:!1,Aa:!1,B:!1,error:!1};this.va=null;this.h.error=!1;this.o={};this.w=null;w.push(this)}var wa=void 0,xa={};
if(window){wa||(wa=window.location.search.substr(1));for(var ya,za=/\+/g,Aa=/([^&=]+)=?([^&]*)/g;ya=Aa.exec(wa);)xa[decodeURIComponent(ya[1].replace(za," "))]=decodeURIComponent(ya[2].replace(za," "))}function Ba(a){function b(){}if(window){if(!a)throw new TypeError;if(Object.create)return Object.create(a);var c=typeof a;if("object"!==c&&"function"!==c)throw new TypeError;}b.prototype=a;return new b}
function x(a,b){b||(b=u);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},w=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){q(c.message+" ("+a+")")}return b}
function x(a,b){b||(b=v);a.prototype=Ba(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}if(window){window.PCjs||(window.PCjs={});var Ca=window.PCjs.Machines||(window.PCjs.Machines={}),w=window.PCjs.Components||(window.PCjs.Components=[])}else Ca={},w=[];function Da(a,b,c){Ca[a]&&b&&(Ca[a][b]=c)}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<w.length;b++){var d=w[b];a&&d.id.indexOf(a)||c.push(d)}return c}
function Ea(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<w.length;d++)if(c)c==w[d]&&(c=null);else if(!(a!=w[d].type||b&&w[d].id.indexOf(b)))return w[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
function B(a,b){for(var c=C(b.parentNode,"pdp11-control"),d=0;d<c.length;d++)for(var f=c[d].childNodes,e=0;e<f.length;e++){var g=f[e];if(1===g.nodeType){var h=g.getAttribute("class");if(h)for(var k=h.split(" "),l=0;l<k.length;l++)switch(h=k[l],h){case "pdp11-binding":(h=z(g))&&h.binding&&a.L(h.type,h.binding,g,h.value),l=k.length}}}}
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var f=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)f.test(a[b].className)&&c.push(a[b]);return c}
u.prototype={constructor:u,parent:null,toString:function(){return this.name?this.name:this.id||this.type},L:function(a,b,c){switch(b){case "clear":return this.o[b]||(this.o[b]=c,c.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[b]||(this.Ca=this.o[b]=c,c.value="",this.H=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.A=function(a){this.H(a,this.za)}),!0;default:return!1}},log:function(){},H:function(){},status:function(a){this.H(this.za+": "+a)},A:function(a,b,c){c=c||this.type;b||q((c?c+": ":"")+a)},Y:function(){return this.h.B=!0},X:function(a,b){b&&(this.h.B=!1);return!0}};function Fa(a,b){if(a.h.Aa)return a.h.ia&&(a.h.ia=!1),a.h.Aa=!1;if(a.h.error)return a.H(a.toString()+" error"),!1;a.h.ia=b;return a.h.ia}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.va;a.va=null;b&&b()}}
function Ga(a,b){b&&(a.h.ready?b():a.va=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){u.call(this,"Panel",a,Ia)}x(Ia);m=Ia.prototype;m.L=function(a,b,c,d){return this.l&&this.l.L(a,b,c,d)||this.a&&this.a.L(a,b,c,d)?!0:this.parent.L.call(this,a,b,c,d)};m.ba=function(a,b,c,d){this.l=a;this.s=b;this.a=c;this.w=d};m.Y=function(a,b){b||Ja();return!0};m.X=function(){return!0};m.ca=function(){};
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=z(d),e;a:{e=f.id;if(void 0!==e)for(var g=void 0,g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}t(Ja);
function Ka(a,b,c){u.call(this,"Bus",a,Ka);this.a=b;this.w=c;this.m=a.busWidth||16;this.l=Math.pow(2,this.m);this.i=this.l-1|0;this.c=(this.m>>1)+2;10>this.c&&(this.c=10);15<this.c&&(this.c=15);this.f=1<<this.c;this.u=this.f>>2;this.g=this.f-1;this.s=this.l/this.f|0;this.v=this.s-1;this.ta=[];a=new E;La(a,this.w);this.b=Array(this.s);for(b=0;b<this.s;b++)this.b[b]=a;this.ga=Array(4);this.ga[0]=Ma;this.ga[1]=Na;this.ga[2]=Oa;this.ga[3]=Pa;this.j=this.l-8192;Qa(this,this.j,8192,Ra,this);D(this)}x(Ka);
function Ma(){return 0}function Na(a,b){var c=this.controller.ta[a];return c?c[0](b):0}function Oa(){}function Pa(a,b,c){return(a=this.controller.ta[a])?a[1](b,c):0}Ka.prototype.reset=function(){};Ka.prototype.Y=function(a,b){b||this.reset();return!0};
function Qa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.c;0<g&&h<a.b.length;){var k=a.b[h],l=h*a.f,v=a.f-(e-l);v>g&&(v=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.fa)return k.xa+=k.fa-e,k.fa=e,!0;if(e>=k.fa+k.xa){v=k.size-(e-l);v>g&&(v=g);k.xa=e-k.fa+v;e=l+a.f;g-=v;h++;continue}}return Sa(1,e,g)}e=new E(e,v,a.f,d,f);La(e,a.w,k);a.b[h++]=e;e=l+a.f;g-=v}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Ta[d]+" at "+n(b,8,!0)),!0):Sa(2,b,c)}
function Sa(a,b,c){q("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}function F(a){u.call(this,"Device",a,F);this.b=a.name}x(F);
F.prototype.ba=function(a,b,c,d){this.s=b;this.a=c;this.w=d;switch(this.b){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var g=e[0]?e[0].bind(this):null,e=e[1]?e[1].bind(this):null,h=+f;h<=d;h+=2){var k=h&8191;if(0>k||8192<=k){q("I/O address out of bounds: "+n(c.j+k,8,!0));break}void 0!==c.ta[k]?q("I/O address already registered: "+n(c.j+k,8,!0)):c.ta[k]=[g,e,!1]}}}D(this)};F.prototype.wa=function(){return this.a.wa()};F.prototype.ma=function(a){this.a.ma(a)};var Ua={};
Ua[4194302]=[F.prototype.wa,F.prototype.ma];t(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new F(d);B(d,c)}});var Va;if(Ha){var Wa=new ArrayBuffer(2);(new DataView(Wa)).setUint16(0,256,!0);Va=256===(new Uint16Array(Wa))[0]}else Va=!1;var Xa=Va;
function E(a,b,c,d,f){this.id=Ya+=2;this.a=null;this.fa=a;this.xa=b;this.size=c||0;this.type=d||Za;this.g=d==$a;this.controller=null;La(this);this.W=this.bb=!1;if(c)if(f)this.controller=f,this.a=null,ab(this,f.ga);else if(Ha)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.s=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),ab(this,Xa?bb:cb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ab(this,db)}else ab(this)}
v.prototype={constructor:v,parent:null,toString:function(){return this.name?this.name:this.id||this.type},L:function(a,b,c){switch(b){case "clear":return this.o[b]||(this.o[b]=c,c.onclick=function(a){return function(){a.o.print&&(a.o.print.value="")}}(this)),!0;case "print":return this.o[b]||(this.Ca=this.o[b]=c,c.value="",this.H=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
this.A=function(a){this.H(a,this.za)}),!0;default:return!1}},log:function(){},H:function(){},status:function(a){this.H(this.za+": "+a)},A:function(a,b,c){c=c||this.type;b||r((c?c+": ":"")+a)},Y:function(){return this.h.B=!0},X:function(a,b){b&&(this.h.B=!1);return!0}};function Fa(a,b){if(a.h.Aa)return a.h.ja&&(a.h.ja=!1),a.h.Aa=!1;if(a.h.error)return a.H(a.toString()+" error"),!1;a.h.ja=b;return a.h.ja}function D(a){if(!a.h.error&&(a.h.ready=!0,a.h.ready)){var b=a.va;a.va=null;b&&b()}}
function Ga(a,b){b&&(a.h.ready?b():a.va=b);return a.h.ready}var Ha="undefined"!==typeof ArrayBuffer;function Ia(a){v.call(this,"Panel",a,Ia)}x(Ia);m=Ia.prototype;m.L=function(a,b,c,d){return this.l&&this.l.L(a,b,c,d)||this.a&&this.a.L(a,b,c,d)?!0:this.parent.L.call(this,a,b,c,d)};m.ba=function(a,b,c,d){this.l=a;this.s=b;this.a=c;this.w=d};m.Y=function(a,b){b||Ja();return!0};m.X=function(){return!0};m.ca=function(){};
function Ja(){for(var a=!1,b=C(document,"pdp11","panel"),c=0;c<b.length;c++){var d=b[c],f=z(d),e;a:{e=f.id;if(void 0!==e)for(var g=void 0,g=0;g<w.length;g++)if(w[g].id===e){e=w[g];break a}e=null}e||(a=!0,e=new Ia(f));B(e,d);a&&D(e)}}u(Ja);
function Ka(a,b,c){v.call(this,"Bus",a,Ka);this.a=b;this.w=c;this.m=a.busWidth||16;this.l=Math.pow(2,this.m);this.i=this.l-1|0;this.c=(this.m>>1)+2;10>this.c&&(this.c=10);15<this.c&&(this.c=15);this.f=1<<this.c;this.u=this.f>>2;this.g=this.f-1;this.s=this.l/this.f|0;this.v=this.s-1;this.da=[];a=new E;La(a,this.w);this.b=Array(this.s);for(b=0;b<this.s;b++)this.b[b]=a;this.ha=Array(4);this.ha[0]=Ma;this.ha[1]=Na;this.ha[2]=Oa;this.ha[3]=Pa;this.j=this.l-8192;Qa(this,this.j,8192,Ra,this);D(this)}x(Ka);
function Ma(a,b){var c=this.controller.da[a];return c&&c[0]?c[0](b):0}function Oa(a,b,c){if((a=this.controller.da[a])&&a[1])a[1](c,b)}function Na(a,b){var c=this.controller.da[a];if(c){if(c[2])return c[2](b);if(c[0])return c[0](b)|c[0](b+1)<<8}return 0}function Pa(a,b,c){if(a=this.controller.da[a])if(a[3])a[3](c,b);else a[1]&&(a[1](c,b&255),a[1](c+1,b>>8))}Ka.prototype.reset=function(){};Ka.prototype.Y=function(a,b){b||this.reset();return!0};
function Qa(a,b,c,d,f){for(var e=b,g=c,h=e>>>a.c;0<g&&h<a.b.length;){var k=a.b[h],l=h*a.f,p=a.f-(e-l);p>g&&(p=g);if(k&&k.size){if(k.type==d&&k.controller==f){if(e+g<=k.ga)return k.xa+=k.ga-e,k.ga=e,!0;if(e>=k.ga+k.xa){p=k.size-(e-l);p>g&&(p=g);k.xa=e-k.ga+p;e=l+a.f;g-=p;h++;continue}}return Sa(1,e,g)}e=new E(e,p,a.f,d,f);La(e,a.w,k);a.b[h++]=e;e=l+a.f;g-=p}return 0>=g?(a.status(Math.floor(c/1024)+"Kb "+Ta[d]+" at "+n(b,8,!0)),!0):Sa(2,b,c)}
function Sa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}function F(a){v.call(this,"Device",a,F);this.b=a.name}x(F);
F.prototype.ba=function(a,b,c,d){this.s=b;this.a=c;this.w=d;switch(this.b){default:a=Ua;for(var f in a){var e=a[f];c=b;d=+f;for(var g=e[0]?e[0].bind(this):null,h=e[1]?e[1].bind(this):null,k=e[2]?e[2].bind(this):null,e=e[3]?e[3].bind(this):null,l=+f;l<=d;l+=2){var p=l&8191;if(0>p||8192<=p){r("I/O address out of bounds: "+n(c.j+p,8,!0));break}void 0!==c.da[p]?r("I/O address already registered: "+n(c.j+p,8,!0)):c.da[p]=[g,h,k,e,!1]}}}D(this)};F.prototype.wa=function(){return this.a.wa()};
F.prototype.na=function(a){this.a.na(a)};var Ua={};Ua[4194302]=[null,null,F.prototype.wa,F.prototype.na];u(function(){for(var a=C(document,"pdp11","device"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new F(d);B(d,c)}});var Va;if(Ha){var Wa=new ArrayBuffer(2);(new DataView(Wa)).setUint16(0,256,!0);Va=256===(new Uint16Array(Wa))[0]}else Va=!1;var Xa=Va;
function E(a,b,c,d,f){this.id=Ya+=2;this.a=null;this.ga=a;this.xa=b;this.size=c||0;this.type=d||Za;this.g=d==$a;this.controller=null;La(this);this.W=this.bb=!1;if(c)if(f)this.controller=f,this.a=null,ab(this,f.ha);else if(Ha)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.s=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),ab(this,Xa?bb:cb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;ab(this,db)}else ab(this)}
var Za=0,$a=2,Ra=4,Ta=["NONE","RAM","ROM","VID","H/W"],Ya=0;
E.prototype={constructor:E,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.W=!0}return!1},j:function(){return 255},m:function(){},l:function(a,b){return this.ka(a++,b++)|this.ka(a,b)<<8},u:function(a,b,
c){this.la(a++,b&255,c++);this.la(a,b>>8,c)},G:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},O:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},T:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.W=!0},aa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.W=!0},C:function(a,b){return this.D(a,b)},J:function(a,b){return this.K(a,
E.prototype={constructor:E,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(Ha)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(Ha)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.W=!0}return!1},j:function(){return 255},m:function(){},l:function(a,b){return this.la(a++,b++)|this.la(a,b)<<8},u:function(a,b,
c){this.ma(a++,b&255,c++);this.ma(a,b>>8,c)},G:function(a){return this.a[a>>2]>>>((a&3)<<3)&255},O:function(a){var b=a>>2;a=(a&3)<<3;var c=this.a[b]>>a;return 24>a?c&65535:c&255|(this.a[b+1]&255)<<8},T:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.W=!0},aa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.W=!0},C:function(a,b){return this.D(a,b)},J:function(a,b){return this.K(a,
b)},R:function(a,b,c){this.g||this.$a(a,b,c)},V:function(a,b,c){this.g||this.Z(a,b,c)},v:function(a){return this.b[a]},F:function(a){return this.b[a]},I:function(a){return this.f.getUint16(a,!0)},N:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.s[a>>1]},P:function(a,b){this.b[a]=b;this.W=!0},S:function(a,b){this.b[a]=b;this.W=!0},U:function(a,b){this.f.setUint16(a,b,!0);this.W=!0},$:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.s[a>>1]=b;this.W=!0}};
function La(a,b,c){a.w=b;a.i=a.o=0;c&&((a.i=c.i)&&eb(a,fb,!1),(a.o=c.o)&&gb(a,fb,!1))}function gb(a,b,c){c&&a.o||(a.la=!a.g&&b[2]||a.m,a.kb=!a.g&&b[3]||a.u);if(c||void 0===c)a.$a=b[2]||a.m,a.Z=b[3]||a.u}function eb(a,b,c){c&&a.i||(a.ka=b[0]||a.j,a.eb=b[1]||a.l);if(c||void 0===c)a.D=b[0]||a.j,a.K=b[1]||a.l}function ab(a,b){b||(b=hb);eb(a,b,void 0);gb(a,b,void 0)}var hb=[],db=[E.prototype.G,E.prototype.O,E.prototype.T,E.prototype.aa],fb=[E.prototype.C,E.prototype.J,E.prototype.R,E.prototype.V];
if(Ha)var cb=[E.prototype.v,E.prototype.I,E.prototype.P,E.prototype.U],bb=[E.prototype.F,E.prototype.N,E.prototype.S,E.prototype.$];function ib(a,b){u.call(this,"CPU",a,ib);var c=a.multiplier||1;this.Ga=a.cycles||b;this.T=c;this.Ba=Math.round(this.Ga/1E4)/100;this.R=this.Ba*this.T;this.h.M=!1;this.h.Ya=!1;this.h.ha=a.autoStart;this.h.Ma=!1;this.h.ua=!1;this.ra=this.S=0;this.sa=a.csStart;this.$=a.csInterval;this.aa=a.csStop;this.oa=[];this.gb=this.Ka.bind(this);D(this)}x(ib);var jb=["power","reset"];
m=ib.prototype;m.ba=function(a,b,c,d){this.l=a;this.s=b;this.w=d;for(b=0;b<jb.length;b++)(c=this.o[jb[b]])&&this.l.L(null,jb[b],c);this.Z=null;a=kb(a,"autoStart");null!=a&&(this.h.ha="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Y=function(a,b){if(!b){if(a&&this.restore){lb(this);if(!this.restore(a))return!1;mb(this)}else this.reset();this.H("No debugger detected")}nb(this);return!0};
m.X=function(a){return a?this.save():!0};m.ha=function(){return this.h.ha||void 0===this.o.run?(this.Ka(),!0):!1};m.Oa=function(){return 0};function mb(a){void 0===a.sa&&(a.sa=0);void 0===a.$&&(a.$=-1);void 0===a.aa&&(a.aa=-1);a.h.ua=0<=a.sa&&0<a.$;a.h.ua&&(a.ra=0,a.S=a.sa-a.N)}
function La(a,b,c){a.w=b;a.i=a.o=0;c&&((a.i=c.i)&&eb(a,fb,!1),(a.o=c.o)&&gb(a,fb,!1))}function gb(a,b,c){c&&a.o||(a.ma=!a.g&&b[1]||a.m,a.kb=!a.g&&b[3]||a.u);if(c||void 0===c)a.$a=b[1]||a.m,a.Z=b[3]||a.u}function eb(a,b,c){c&&a.i||(a.la=b[0]||a.j,a.eb=b[2]||a.l);if(c||void 0===c)a.D=b[0]||a.j,a.K=b[2]||a.l}function ab(a,b){b||(b=hb);eb(a,b,void 0);gb(a,b,void 0)}var hb=[],db=[E.prototype.G,E.prototype.T,E.prototype.O,E.prototype.aa],fb=[E.prototype.C,E.prototype.R,E.prototype.J,E.prototype.V];
if(Ha)var cb=[E.prototype.v,E.prototype.P,E.prototype.I,E.prototype.U],bb=[E.prototype.F,E.prototype.S,E.prototype.N,E.prototype.$];function ib(a,b){v.call(this,"CPU",a,ib);var c=a.multiplier||1;this.Ga=a.cycles||b;this.T=c;this.Ba=Math.round(this.Ga/1E4)/100;this.R=this.Ba*this.T;this.h.M=!1;this.h.Ya=!1;this.h.ia=a.autoStart;this.h.Ma=!1;this.h.ua=!1;this.sa=this.S=0;this.ta=a.csStart;this.$=a.csInterval;this.aa=a.csStop;this.pa=[];this.gb=this.Ka.bind(this);D(this)}x(ib);var jb=["power","reset"];
m=ib.prototype;m.ba=function(a,b,c,d){this.l=a;this.s=b;this.w=d;for(b=0;b<jb.length;b++)(c=this.o[jb[b]])&&this.l.L(null,jb[b],c);this.Z=null;a=kb(a,"autoStart");null!=a&&(this.h.ia="true"==a?!0:"false"==a?!1:!!a);D(this)};m.reset=function(){};m.save=function(){return null};m.restore=function(){return!1};m.Y=function(a,b){if(!b){if(a&&this.restore){lb(this);if(!this.restore(a))return!1;mb(this)}else this.reset();this.H("No debugger detected")}nb(this);return!0};
m.X=function(a){return a?this.save():!0};m.ia=function(){return this.h.ia||void 0===this.o.run?(this.Ka(),!0):!1};m.Oa=function(){return 0};function mb(a){void 0===a.ta&&(a.ta=0);void 0===a.$&&(a.$=-1);void 0===a.aa&&(a.aa=-1);a.h.ua=0<=a.ta&&0<a.$;a.h.ua&&(a.sa=0,a.S=a.ta-a.N)}
function G(a,b,c,d){if(a.o[b]){void 0===c&&(a.h.error=!0,a.A("Value for "+b+" is invalid"),H(a));var f=a.w&&a.w.b||8;if(!a.h.M||a.h.Ma)if(8==f){f="";d?11<d&&(d=11):d=c&-65536?11:6;if(null==c||isNaN(c))for(;0<d--;)f="?"+f;else for(;0<d--;)f=String.fromCharCode((c&7)+48)+f,c>>=3;d=""+f}else d=n(c,d);else d="--------".substr(0,d||4);a.o[b].textContent!=d&&(a.o[b].textContent=d)}}
m.L=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.o[b]=c;a=!0;break;case "run":this.o[b]=c;c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.h.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.B);c++);c==h.length&&(b=a);q("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.va?" (waiting for notification)":""))+".");a=!1}a&&(d.h.M?H(d):d.Ka())};a=!0;break;
case "speed":this.o[b]=c;a=!0;break;case "setSpeed":this.o[b]=c,c.onclick=function(){ob(d,d.T<<1)},c.textContent=this.R.toFixed(2)+"Mhz",a=!0}return a};function pb(a,b,c){a.N+=b;c&&(a.K=a.G=0)}function qb(a,b){var c=1;b&&1<a.T&&a.I&&(c=a.I/a.Ba);a.Va=Math.round(1E3/30);a.na=Math.floor(a.Ga/30*c);b||(a.da=a.na);a.Ha=0}function rb(a){return a.N+a.F+a.K-a.G}function lb(a){a.I=0;a.Wa=0;a.N=a.F=a.K=a.G=0;mb(a);ob(a,1)}
m.L=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.o[b]=c;a=!0;break;case "run":this.o[b]=c;c.onclick=function(){var a;if(a=d.l)if(a=d.l,a.h.B)a=!0;else{var b=null,c,h=y(a.id);for(c=0;c<h.length&&(b=h[c],b===a||b.h.ready);c++);if(c==h.length)for(c=0;c<h.length&&(b=h[c],b===a||b.h.B);c++);c==h.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ready?"powered yet":"ready yet"+(b.va?" (waiting for notification)":""))+".");a=!1}a&&(d.h.M?H(d):d.Ka())};a=!0;break;
case "speed":this.o[b]=c;a=!0;break;case "setSpeed":this.o[b]=c,c.onclick=function(){ob(d,d.T<<1)},c.textContent=this.R.toFixed(2)+"Mhz",a=!0}return a};function pb(a,b,c){a.N+=b;c&&(a.K=a.G=0)}function qb(a,b){var c=1;b&&1<a.T&&a.I&&(c=a.I/a.Ba);a.Va=Math.round(1E3/30);a.oa=Math.floor(a.Ga/30*c);b||(a.ea=a.oa);a.Ha=0}function rb(a){return a.N+a.F+a.K-a.G}function lb(a){a.I=0;a.Wa=0;a.N=a.F=a.K=a.G=0;mb(a);ob(a,1)}
function ob(a,b){if(void 0!==b){.8>a.I/a.R&&(b=1);a.T=b;var c=a.Ba*a.T;if(a.R!=c){a.R=c;var c=a.R.toFixed(2)+"Mhz",d=a.o.setSpeed;d&&(d.textContent=c);a.H("target speed: "+c)}}pb(a,a.F);a.F=0;a.D=ha();a.J=0;qb(a)}function sb(a){a.K-=a.G;a.G=0}
m.Ka=function(){if(Fa(this,!0)){if(!this.h.M){ob(this);this.l&&this.l.start(this.D,rb(this));this.h.M=!0;this.h.Ya=!0;this.Z&&this.Z.start();var a=this.o.run;a&&(a.textContent="Halt");this.l&&this.l.ca(!0)}this.Ha>=this.Ga&&qb(this,!0);this.ea=0;this.qa=ha();this.J&&(a=this.qa-this.J,a>this.Va&&(this.D+=a,this.D>this.qa&&(this.D=this.qa)));try{do{for(var b=this.h.ua?1:this.na,c=this.oa.length-1;0<=c;c--){var d=this.oa[c];0>d[0]||b>d[0]&&(b=d[0])}this.Za(b);for(var f=this.K-this.G,a=f,e=this.oa.length-
1;0<=e;e--){var g=this.oa[e];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.ea+=f;this.F+=f;pb(this,0,!0);a=f;if(this.h.ua){var h=!1;this.ra=this.ra+this.Oa()|0;this.S-=a;0>=this.S&&(this.S+=this.$,h=!0);0<=this.aa&&this.aa<=rb(this)&&(this.$=this.aa=-1,mb(this),H(this),h=!0);h&&this.H(rb(this)+" cycles: checksum="+n(this.ra))}this.da-=f;if(0>=this.da){this.da+=this.na;15<=++this.Wa&&(this.l&&this.l.ca(),this.Wa=0);break}}while(this.h.M)}catch(k){H(this);nb(this);this.l&&this.l.stop(ha(),rb(this));
Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.A(b);return}b=setTimeout;c=this.gb;this.J=ha();d=this.Va;this.ea&&(d=Math.round(d*this.ea/this.na));d=d-(this.J-this.qa);if(f=this.J-this.D)this.I=Math.round(this.F/(10*f))/100,864E5<=f&&(this.N=0,ob(this));if(0>d||this.I<this.R)-1E3>d&&(this.D-=d),d=0;this.Ha+=this.ea;this.J+=d;b(c,d)}else nb(this),this.l&&this.l.stop(ha(),rb(this))};m.Za=function(){return 0};
function H(a){a.h.ia&&(a.h.Aa=!0);sb(a);pb(a,a.F);a.F=0;if(a.h.M){a.h.M=!1;a.Z&&a.Z.stop();var b=a.o.run;b&&(b.textContent="Run")}a.h.complete=void 0}function nb(a){a.l&&a.l.ca(void 0)}
function tb(a){this.fb=+a.model||1170;this.ib=a.resetAddr||0;ib.call(this,a,1E6);this.Pa=0;this.g=65536;this.c=32768;this.f=65535;this.b=32768;this.i=15;this.a=[0,0,0,0,0,0,0,this.ib];this.Ia=[0,0,0,0,0,0];this.U=[0,0,0,0];this.memory=[];this.u=[];this.Ja=this.Xa=0;this.O=2;this.P=255;this.m=0;this.V=-1;this.Ua=this.Da=this.Ta=this.j=this.ya=this.C=this.v=0;this.pa=[7,7,7,7];this.Fa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
m.Ka=function(){if(Fa(this,!0)){if(!this.h.M){ob(this);this.l&&this.l.start(this.D,rb(this));this.h.M=!0;this.h.Ya=!0;this.Z&&this.Z.start();var a=this.o.run;a&&(a.textContent="Halt");this.l&&this.l.ca(!0)}this.Ha>=this.Ga&&qb(this,!0);this.fa=0;this.ra=ha();this.J&&(a=this.ra-this.J,a>this.Va&&(this.D+=a,this.D>this.ra&&(this.D=this.ra)));try{do{for(var b=this.h.ua?1:this.oa,c=this.pa.length-1;0<=c;c--){var d=this.pa[c];0>d[0]||b>d[0]&&(b=d[0])}this.Za(b);for(var f=this.K-this.G,a=f,e=this.pa.length-
1;0<=e;e--){var g=this.pa[e];0>g[0]||(g[0]-=a,0>=g[0]&&(g[0]=-1,g[1]()))}this.fa+=f;this.F+=f;pb(this,0,!0);a=f;if(this.h.ua){var h=!1;this.sa=this.sa+this.Oa()|0;this.S-=a;0>=this.S&&(this.S+=this.$,h=!0);0<=this.aa&&this.aa<=rb(this)&&(this.$=this.aa=-1,mb(this),H(this),h=!0);h&&this.H(rb(this)+" cycles: checksum="+n(this.sa))}this.ea-=f;if(0>=this.ea){this.ea+=this.oa;15<=++this.Wa&&(this.l&&this.l.ca(),this.Wa=0);break}}while(this.h.M)}catch(k){H(this);nb(this);this.l&&this.l.stop(ha(),rb(this));
Fa(this,!1);b=k.stack||k.message;this.h.error=!0;this.A(b);return}b=setTimeout;c=this.gb;this.J=ha();d=this.Va;this.fa&&(d=Math.round(d*this.fa/this.oa));d=d-(this.J-this.ra);if(f=this.J-this.D)this.I=Math.round(this.F/(10*f))/100,864E5<=f&&(this.N=0,ob(this));if(0>d||this.I<this.R)-1E3>d&&(this.D-=d),d=0;this.Ha+=this.fa;this.J+=d;b(c,d)}else nb(this),this.l&&this.l.stop(ha(),rb(this))};m.Za=function(){return 0};
function H(a){a.h.ja&&(a.h.Aa=!0);sb(a);pb(a,a.F);a.F=0;if(a.h.M){a.h.M=!1;a.Z&&a.Z.stop();var b=a.o.run;b&&(b.textContent="Run")}a.h.complete=void 0}function nb(a){a.l&&a.l.ca(void 0)}
function tb(a){this.fb=+a.model||1170;this.ib=a.resetAddr||0;ib.call(this,a,1E6);this.Pa=0;this.g=65536;this.c=32768;this.f=65535;this.b=32768;this.i=15;this.a=[0,0,0,0,0,0,0,this.ib];this.Ia=[0,0,0,0,0,0];this.U=[0,0,0,0];this.memory=[];this.u=[];this.Ja=this.Xa=0;this.O=2;this.P=255;this.m=0;this.V=-1;this.Ua=this.Da=this.Ta=this.j=this.ya=this.C=this.v=0;this.qa=[7,7,7,7];this.Fa=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.jb=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h.complete=this.h.ab=!1}x(tb,ib);m=tb.prototype;m.reset=function(){this.h.M&&H(this);ub(this);lb(this);this.h.error=!1;this.parent.reset.call(this)};
function ub(a){a.P=255;a.u=[];a.Xa=0;a.v=a.C=a.ya=a.Ta=0;a.pa[0]=a.pa[1]=a.pa[3]=7;a.Da=0}m.Oa=function(){return 0};m.save=function(){var a=new I(this);J(a,0,[]);J(a,1,[this.Sa,this.N,this.T]);for(var b=this.s,c=0,d=[],f=0;f<b.s;f++){var e=b.b[f];if(e.W||e.bb){d[c++]=f;var g=c++;a:if(e=e.save()){for(var h=0,k=0,l=[];h<e.length;){for(var v=e[h],A=h+1;A<e.length&&e[A]===v;)A++;l[k++]=A-h;l[k++]=v;h=A}if(l.length<e.length){e=l;break a}}d[g]=e}}J(a,2,d);return a.data()};
m.restore=function(a){var b=a[1];this.Sa=b[0];this.N=b[1];ob(this,b[3]);a:{b=this.s;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.u){for(var e=0,g=Array(b.u),h=0;h<f.length-1;)for(var k=f[h++],l=f[h++];k--;)g[e++]=l;f=g}e=b.b[d];if(!e||!e.restore(f)){q("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
function ub(a){a.P=255;a.u=[];a.Xa=0;a.v=a.C=a.ya=a.Ta=0;a.qa[0]=a.qa[1]=a.qa[3]=7;a.Da=0}m.Oa=function(){return 0};m.save=function(){var a=new I(this);J(a,0,[]);J(a,1,[this.Sa,this.N,this.T]);for(var b=this.s,c=0,d=[],f=0;f<b.s;f++){var e=b.b[f];if(e.W||e.bb){d[c++]=f;var g=c++;a:if(e=e.save()){for(var h=0,k=0,l=[];h<e.length;){for(var p=e[h],A=h+1;A<e.length&&e[A]===p;)A++;l[k++]=A-h;l[k++]=p;h=A}if(l.length<e.length){e=l;break a}}d[g]=e}}J(a,2,d);return a.data()};
m.restore=function(a){var b=a[1];this.Sa=b[0];this.N=b[1];ob(this,b[3]);a:{b=this.s;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],f=a[c+1];if(f&&f.length<b.u){for(var e=0,g=Array(b.u),h=0;h<f.length-1;)for(var k=f[h++],l=f[h++];k--;)g[e++]=l;f=g}e=b.b[d];if(!e||!e.restore(f)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
m.L=function(a,b,c){var d=!1;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PSW":this.o[b]=c;this.Pa++;d=!0;break;default:d=this.parent.L.call(this,a,b,c)}return d};
m.ca=function(a){if(this.Pa&&(a||!this.h.M||this.h.Ma)){for(a=0;a<this.a.length;a++)G(this,"R"+a,this.a[a]);a=this.i&-16|(this.b&32768?8:0)|(this.f&65535?0:4)|(this.c&32768?2:0)|(this.g&65536?1:0);G(this,"PSW",a);G(this,"NF",a&8?1:0,1);G(this,"ZF",a&4?1:0,1);G(this,"VF",a&2?1:0,1);G(this,"CF",a&1?1:0,1)}if(a=this.o.speed)a.textContent=this.h.M&&this.I?this.I.toFixed(2)+"Mhz":"Stopped"};
m.ma=function(a){this.b=a<<12;this.f=~a&4;this.c=a<<14;this.g=a<<16;if((a^this.i)&2048)for(var b=this.Ia.length;0<=--b;){var c=this.a[b];this.a[b]=this.Ia[b];this.Ia[b]=c}this.j=a>>14&3;b=this.i>>14&3;this.j!=b&&(this.U[b]=this.a[6],this.a[6]=this.U[this.j]);this.O=2;this.i=a};m.wa=function(){return this.i=this.i&63728|(this.b&32768?8:0)|(this.f&65535?0:4)|(this.c&32768?2:0)|(this.g&65536?1:0)};
function K(a,b){var c,d,f=0;0>a.V?a.V=a.wa():a.j||(b=4,f=1);a.v&57344||(a.C=63222);a.j=0;0<=(c=L(a,b|65536))&&0<=(d=L(a,b+2&65535|65536))&&(a.ma(d&53247|a.V>>2&12288),f&&(a.a[6]=4),0<=M(a,a.V)&&0<=M(a,a.a[7])&&(a.a[7]=c));a.m=0;return a.V=-1}
function vb(a,b,c){var d,f,e,g=0;if(c&a.Ta){d=b>>13&a.pa[a.j];f=a.Fa[a.j][d];e=(a.Fa[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ya&16){if(3932160<=e&&4186112>e){e=e&262143;var h=e>>13&31;31>h?a.ya&32&&(e=a.jb[h]+(e&8190)&4194302,3932160<=e&&4186112>e&&console.log("panic(898)")):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e&&(3915776<=e||e&1&&!(c&1)))return K(a,4);switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;
m.na=function(a){this.b=a<<12;this.f=~a&4;this.c=a<<14;this.g=a<<16;if((a^this.i)&2048)for(var b=this.Ia.length;0<=--b;){var c=this.a[b];this.a[b]=this.Ia[b];this.Ia[b]=c}this.j=a>>14&3;b=this.i>>14&3;this.j!=b&&(this.U[b]=this.a[6],this.a[6]=this.U[this.j]);this.O=2;this.i=a};m.wa=function(){return this.i=this.i&63728|(this.b&32768?8:0)|(this.f&65535?0:4)|(this.c&32768?2:0)|(this.g&65536?1:0)};
function K(a,b){var c,d,f=0;0>a.V?a.V=a.wa():a.j||(b=4,f=1);a.v&57344||(a.C=63222);a.j=0;0<=(c=L(a,b|65536))&&0<=(d=L(a,b+2&65535|65536))&&(a.na(d&53247|a.V>>2&12288),f&&(a.a[6]=4),0<=M(a,a.V)&&0<=M(a,a.a[7])&&(a.a[7]=c));a.m=0;return a.V=-1}
function vb(a,b,c){var d,f,e,g=0;if(c&a.Ta){d=b>>13&a.qa[a.j];f=a.Fa[a.j][d];e=(a.Fa[a.j][d+16]<<6)+(b&8191)&4194303;if(a.ya&16){if(3932160<=e&&4186112>e){e=e&262143;var h=e>>13&31;31>h?a.ya&32&&(e=a.jb[h]+(e&8190)&4194302,3932160<=e&&4186112>e&&console.log("panic(898)")):e|=4186112}}else e&=262143,253952<=e&&(e|=4186112);if(3932160>e&&(3915776<=e||e&1&&!(c&1)))return K(a,4);switch(f&7){case 1:g=4096;case 2:f|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:f|=c&4?192:128;break;
default:g=32768}32512!==(f&32520)&&(f&8?f&32512&&(b&8128)<(f>>2&8128)&&(g|=16384):(b&8128)>(f>>2&8128)&&(g|=16384));a.Fa[a.j][d]=f;if(4194170!==e||a.j)a.Da=a.j,a.Ua=d;if(g){if(g&57344)return 0<=a.V&&(g|=128),a.v&57344||(a.v=a.v|g|a.Da<<5|a.Ua<<1),K(a,168);a.v&61440||!(4191360>e||4194239<e)||(a.v|=4096,a.v&512&&(a.m|=2))}}else if(e=b&65535,57344<=e)e|=4186112;else if(e&1&&!(c&1))return K(a,4);return e}
function N(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(3932160<=b)c=-1;else if(0<=b){c=a.s;var d=b&c.g,f=(b&c.i)>>>c.c;c=d!=c.g?c.b[f].eb(d,b):c.b[f++].ka(d,b)|c.b[f&c.v].ka(0,b+1)<<8}else c=b;return c}function O(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.s;var d=c,f=b&a.g,e=(b&a.i)>>>a.c;f!=a.g?a.b[e].kb(f,d&65535,b):(a.b[e++].la(f,d&255,b),a.b[e&a.v].la(0,d>>8&255,b+1));return c}return b}
function P(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:3932160<=b?c=-1:0<=b?(c=a.s,c=c.b[(b&c.i)>>>c.c].ka(b&c.g,b)):c=b;return c}function Q(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:3932160<=b?-1:0<=b?(a=a.s,a.b[(b&a.i)>>>a.c].la(b&a.g,c&255,b),c):b}function L(a,b){return N(a,vb(a,b,2))}function wb(a){var b=L(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
function N(a,b){var c;if(4194304<=b)c=a.a[b-4194304];else if(3932160<=b)c=-1;else if(0<=b){c=a.s;var d=b&c.g,f=(b&c.i)>>>c.c;c=d!=c.g?c.b[f].eb(d,b):c.b[f++].la(d,b)|c.b[f&c.v].la(0,b+1)<<8}else c=b;return c}function O(a,b,c){c&=65535;if(4194304<=b)return a.a[b-4194304]=c;if(0<=b){a=a.s;var d=c,f=b&a.g,e=(b&a.i)>>>a.c;f!=a.g?a.b[e].kb(f,d&65535,b):(a.b[e++].ma(f,d&255,b),a.b[e&a.v].ma(0,d>>8&255,b+1));return c}return b}
function P(a,b){var c;4194304<=b?c=a.a[b-4194304]&255:3932160<=b?c=-1:0<=b?(c=a.s,c=c.b[(b&c.i)>>>c.c].la(b&c.g,b)):c=b;return c}function Q(a,b,c){c&=255;return 4194304<=b?a.a[b-4194304]=a.a[b-4194304]&65280|c:3932160<=b?-1:0<=b?(a=a.s,a.b[(b&a.i)>>>a.c].ma(b&a.g,c&255,b),c):b}function L(a,b){return N(a,vb(a,b,2))}function wb(a){var b=L(a,a.a[6]|65536);0<=b&&(a.a[6]=a.a[6]+2&65535);return b}
function M(a,b){var c,d;a.a[6]=d=a.a[6]-2&65535;a.v&57344||(a.C=a.C<<8|246);if(!a.j&&d<=a.P&&4<d){if(d<=a.P-32)return a.a[6]=4,K(a,4);a.m|=4}return 0<=(c=vb(a,d|65536,4))?O(a,c,b):c}
function R(a,b,c){var d,f,e=b&7;switch(b>>3&7){case 0:return K(a,4);case 1:if(6===e&&!a.j&&c&4&&(a.a[6]<=a.P||65534<=a.a[6])){if(a.a[6]<=a.P-32||65534<=a.a[6])return a.a[6]=4,K(a,4);a.m|=4}return 7===e?a.a[e]:a.a[e]|65536;case 2:f=2;d=a.a[e];7!==e&&(d|=65536,6>e&&c&1&&(f=1));break;case 3:f=2;d=a.a[e];7!==e&&(d|=65536);if(0>(d=L(a,d)))return d;d|=65536;break;case 4:f=-2;6>e&&c&1&&(f=-1);d=a.a[e]+f&65535;7!==e&&(d|=65536);break;case 5:f=-2;d=a.a[e]-2&65535;7!==e&&(d|=65536);if(0>(d=L(a,d)))return d;
d|=65536;break;case 6:if(0>(d=L(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return d|65536;case 7:if(0>(d=L(a,a.a[7])))return d;a.a[7]=a.a[7]+2&65535;d=d+a.a[e]&65535;return 0>(d=L(a,d|65536))?d:d|65536}a.a[e]=a.a[e]+f&65535;a.v&57344||(a.C=a.C<<8|f<<3&248|e);if(6===e&&!a.j&&c&4&&0>=f&&(a.a[6]<=a.P||65534<=a.a[6])){if(a.a[6]<=a.P-32)return a.a[6]=4,K(a,4);a.m|=4}return d}function S(a,b,c){var d;return b&56?(0<=(d=R(a,b,c))&&(d=vb(a,d,c)),d):4194304+(b&7)}
@ -78,43 +78,43 @@ break;case 35584:0<=(c=P(this,d=S(this,a,7)))&&(a=-c,0<=Q(this,d,a)&&(this.g=thi
65536)>>8|c)>>1,0<=Q(this,d,a)&&(this.g=c<<16,this.b=this.f=a<<8,this.c=this.b^this.g>>1));break;case 35904:0<=(c=P(this,d=S(this,a,7)))&&(a=c<<1|this.g>>16&1,0<=Q(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a^c)<<8));break;case 35968:0<=(c=P(this,d=S(this,a,7)))&&(a=c&128|c>>1,0<=Q(this,d,a)&&(this.g=c<<16,this.b=this.f=a<<8,this.c=this.b^this.g>>1));break;case 36032:0<=(c=P(this,d=S(this,a,7)))&&(a=c<<1,0<=Q(this,d,a)&&(this.g=this.b=this.f=a<<8,this.c=(a^c)<<8));break;case 36160:a&56?0<=(f=R(this,
a,0))&&(this.j=this.i>>12&3,0<=(b=L(this,f|65536))&&(this.j=this.i>>14&3,0<=M(this,b)&&(this.b=this.f=b,this.c=0))):(e=a&7,b=6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]:this.U[this.i>>12&3],0<=M(this,b)&&(this.b=this.f=b,this.c=0));break;case 36224:0<=(c=wb(this))&&((this.v&57344||(this.C=22),a&56)?0<=(f=R(this,a,0))&&(this.j=this.i>>12&3,0<=(d=vb(this,f|65536,4))&&(this.j=this.i>>14&3,0<=O(this,d,c)&&(this.b=this.f=c,this.c=0))):(e=a&7,6!==e||(this.i>>2&12288)===(this.i&12288)?this.a[e]=
c:this.U[this.i>>12&3]=c,this.b=this.f=c,this.c=0));break;default:switch(a&65528){case 128:0<=(b=wb(this))&&(e=a&7,this.a[7]=this.a[e],this.a[e]=b);break;case 152:this.i&49152||(this.i=this.i&63519|(a&7)<<5,this.O=1);break;case 160:case 168:a&1&&(this.g=0);a&2&&(this.c=0);a&4&&(this.f=1);a&8&&(this.b=0);break;case 176:case 184:a&1&&(this.g=65536);a&2&&(this.c=32768);a&4&&(this.f=0);a&8&&(this.b=32768);break;default:switch(a){case 0:49152&this.i?K(this,4):(this.Ja=3,sb(this),console.log("HALT at "+
this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.u.length))for(;0<a--;)e+=this.u[a].Ea,this.u[a].Ea=0;0===e&&0===this.Ja&&(this.Ja=2,sb(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.i&49152||ub(this);break;case 2:case 6:d=this.a[6];0<=(f=L(this,d|65536))&&(d=d+2&65535,0<=(b=L(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.i&49152&&(b=b&63519|this.i&63712),this.a[7]=f,this.ma(b),this.m&=-17,2===a&&(this.m|=this.i&16)));break;default:K(this,8)}}}}}}this.m&&(this.m&
2?K(this,168):this.m&4?K(this,4):this.m&16&&K(this,12),this.m=0)}while(0<this.G)}return this.h.complete?this.K-this.G:void 0===this.h.complete?0:-1};t(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new tb(d);B(d,c)}});
function W(a){u.call(this,"ROM",a,W);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ba(this.g);if(this.g){a=this.g;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,e){xb(c,a,b,e)})}}x(W);W.prototype.ba=function(a,b,c,d){this.s=b;this.a=c;this.w=d;yb(this)};W.prototype.Y=function(){this.i&&(this.w&&this.w.a(this.id,this.j,this.c,this.i),delete this.i);return!0};
this.a[7].toString(8)));break;case 1:e=0;if(0<(a=this.u.length))for(;0<a--;)e+=this.u[a].Ea,this.u[a].Ea=0;0===e&&0===this.Ja&&(this.Ja=2,sb(this));break;case 3:K(this,12);break;case 4:K(this,16);break;case 5:this.i&49152||ub(this);break;case 2:case 6:d=this.a[6];0<=(f=L(this,d|65536))&&(d=d+2&65535,0<=(b=L(this,d|65536))&&(this.a[6]=d+2&65535,b&=63743,this.i&49152&&(b=b&63519|this.i&63712),this.a[7]=f,this.na(b),this.m&=-17,2===a&&(this.m|=this.i&16)));break;default:K(this,8)}}}}}}this.m&&(this.m&
2?K(this,168):this.m&4?K(this,4):this.m&16&&K(this,12),this.m=0)}while(0<this.G)}return this.h.complete?this.K-this.G:void 0===this.h.complete?0:-1};u(function(){for(var a=C(document,"pdp11","cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new tb(d);B(d,c)}});
function W(a){v.call(this,"ROM",a,W);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ba(this.g);if(this.g){a=this.g;var b=ca(this.m);"json"!=b&&"hex"!=b&&(a=ea()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;q(a,null,!0,function(a,b,e){xb(c,a,b,e)})}}x(W);W.prototype.ba=function(a,b,c,d){this.s=b;this.a=c;this.w=d;yb(this)};W.prototype.Y=function(){this.i&&(this.w&&this.w.a(this.id,this.j,this.c,this.i),delete this.i);return!0};
W.prototype.X=function(){return!0};
function xb(a,b,c,d){if(d)a.A("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Ra,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.i=h.symbols;if(!a.b.length){q("Empty ROM: "+b);
return}if(1==a.b.length){q(a.b[0]);return}}catch(k){a.A("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);yb(a)}}
function xb(a,b,c,d){if(d)a.A("Unable to load system ROM (error "+d+": "+b+")");else{Da(a.Ra,b,c);var f;if("["==c.charAt(0)||"{"==c.charAt(0))try{var e,g,h=eval("("+c+")");if(e=h.bytes)a.b=e;else if(e=h.words)for(a.b=Array(2*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;f<e.length;f++)a.b[g++]=e[f]&255,a.b[g++]=e[f]>>8&255,a.b[g++]=e[f]>>16&255,a.b[g++]=e[f]>>24&255;else a.b=h;a.i=h.symbols;if(!a.b.length){r("Empty ROM: "+b);
return}if(1==a.b.length){r(a.b[0]);return}}catch(k){a.A("ROM data error: "+k.message);return}else for(b=c.replace(/\n/gm," ").replace(/ +$/,"").split(" "),a.b=Array(b.length),f=0;f<b.length;f++)a.b[f]=aa(b[f]);yb(a)}}
function yb(a){if(!Ga(a))if(!a.g)D(a);else if(a.b&&a.s){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size ("+n(a.b.length,8,!0)+") does not match specified size ("+n(a.c,8,!0)+")";a.h.error=!0;a.A(b)}else{b=a.j;if(Qa(a.s,b,a.c,a.l?1:$a)){var c;for(c=0;c<a.b.length;c++){var d=a.s,f=b+c;d.b[(f&d.i)>>>d.c].$a(f&d.g,a.b[c]&255,f)}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 e=a,d=b[c],f=e.s,g=e.c,h=[],k=e.j>>>f.c;0<g&&
k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.s;e=e.c;g=0;for(d>>>=f.c;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}D(a)}}t(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new W(d);B(d,c)}});function zb(a){u.call(this,"RAM",a,zb);this.f=a.addr;this.c=a.size;this.b=!1}x(zb);m=zb.prototype;m.ba=function(a,b,c,d){this.s=b;this.a=c;this.w=d;D(this)};m.Y=function(a,b){b||this.reset();return!0};m.X=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.c&&Qa(this.s,this.f,this.c,1)&&(this.b=!0);this.b||q("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};t(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zb(d);B(d,c)}});function Ab(a){u.call(this,"Keyboard",a,Ab);D(this)}x(Ab);Ab.prototype.L=function(){return!1};Ab.prototype.ba=function(a,b,c,d){this.l=a;this.a=c;this.w=d;this.Z=null};
t(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ab(d);B(d,c)}});
function Bb(a,b,c){u.call(this,"Computer",a,Bb);this.h.B=!1;Cb(this,b);this.v=kb(this,"autoPower",a);this.f=0;this.I=a.busWidth||a.buswidth;this.b=X;this.m=null;this.j=this.F=!1;this.J=kb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Db(this);if(this.a=Ea("CPU",this.id)){this.w=Ea("Debugger",this.id);this.s=new Ka({id:this.Ra+".bus",busWidth:this.I},this.a,this.w);var d,f=y(this.id);if((this.g=Ea("Panel",this.id))&&this.g.Ca)for(b=0;b<f.length;b++)d=f[b],d.A=this.g.A,d.H=this.g.H,d.Ca=this.g.Ca;
k<f.b.length;)h.push(f.b[k++]),g-=f.f;f=e.s;e=e.c;g=0;for(d>>>=f.c;0<e&&d<f.b.length;){k=h[g++];if(!k)break;f.b[d++]=k;e-=f.f}}delete a.b}}D(a)}}u(function(){for(var a=C(document,"pdp11","rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new W(d);B(d,c)}});function zb(a){v.call(this,"RAM",a,zb);this.f=a.addr;this.c=a.size;this.b=!1}x(zb);m=zb.prototype;m.ba=function(a,b,c,d){this.s=b;this.a=c;this.w=d;D(this)};m.Y=function(a,b){b||this.reset();return!0};m.X=function(a){return a?this.save():!0};
m.reset=function(){!this.b&&this.c&&Qa(this.s,this.f,this.c,1)&&(this.b=!0);this.b||r("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};u(function(){for(var a=C(document,"pdp11","ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zb(d);B(d,c)}});function Ab(a){v.call(this,"Keyboard",a,Ab);D(this)}x(Ab);Ab.prototype.L=function(){return!1};Ab.prototype.ba=function(a,b,c,d){this.l=a;this.a=c;this.w=d;this.Z=null};
u(function(){for(var a=C(document,"pdp11","keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Ab(d);B(d,c)}});
function Bb(a,b,c){v.call(this,"Computer",a,Bb);this.h.B=!1;Cb(this,b);this.v=kb(this,"autoPower",a);this.f=0;this.I=a.busWidth||a.buswidth;this.b=X;this.m=null;this.j=this.F=!1;this.J=kb(this,"url")||"";(Math.random()+.1).toString(36);this.c=Db(this);if(this.a=Ea("CPU",this.id)){this.w=Ea("Debugger",this.id);this.s=new Ka({id:this.Ra+".bus",busWidth:this.I},this.a,this.w);var d,f=y(this.id);if((this.g=Ea("Panel",this.id))&&this.g.Ca)for(b=0;b<f.length;b++)d=f[b],d.A=this.g.A,d.H=this.g.H,d.Ca=this.g.Ca;
this.H("PDP11js v1.30.0\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.H("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis <paulnank@hotmail.com>");for(b=0;b<f.length;b++)d=f[b],d.ba&&d.ba(this,this.s,this.a,this.w);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.l=d:this.b=parseInt(d,10));var e;if(a=kb(this,"state")||(e=!0,a.state))b=this.C=a,e||(this.j=!0,this.b=X),this.b&&(this.u=new I(this,
"1.30.0"),Y(this.u)?b=null:delete this.u);!b&&this.b&&(b=Eb(this))&&(this.j=!0);if(b){var g=this;p(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.A("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.m=b,g.F=!0);D(g)})}else D(this);this.o.power||(this.v=!0);!c&&this.v&&Fb(this,this.ja)}else q("Unable to find CPU component")}x(Bb);var X=0;
function Cb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){q(d.message+" ("+c+")")}}a.G=b}function kb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.G&&(d=a.G[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Fb(a,b,c){for(var d=y(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Fb(a,b,c)});return}}b.call(a,c)}
"1.30.0"),Y(this.u)?b=null:delete this.u);!b&&this.b&&(b=Eb(this))&&(this.j=!0);if(b){var g=this;q(b,null,!0,function(a,b,c){c?(g.l=null,g.j=!1,g.A("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(g.m=b,g.F=!0);D(g)})}else D(this);this.o.power||(this.v=!0);!c&&this.v&&Fb(this,this.ka)}else r("Unable to find CPU component")}x(Bb);var X=0;
function Cb(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.G=b}function kb(a,b,c){var d=b.toLowerCase(),d=xa[b]||xa[d];void 0===d&&a.G&&(d=a.G[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function Fb(a,b,c){for(var d=y(a.id),f=0;f<=d.length;f++){var e=f<d.length?d[f]:a;if(!Ga(e)){Ga(e,function(){Fb(a,b,c)});return}}b.call(a,c)}
function Gb(a,b){var c=new I(a,"1.30.0","validate");if(Y(c)&&Hb(c)){var d=Z(c,"timestamp"),f=b?Z(b,"timestamp"):"unknown";d!=f&&(a.A("Machine state may be out-of-date\n("+d+" vs. "+f+")\nCheck your browser's local storage limits"),b||c.clear())}}m=Bb.prototype;
m.ja=function(a){void 0===a&&(a=this.b||(this.m?1:X));if(!this.f){this.f++;var b=!1,c=!1;this.D=!1;var d=this.u||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>X){if(Y(d,this.m)){this.i=new I(this,"1.30.0","failsafe");Y(this.i)&&(Ib(this,d),a=2,Jb(this.i));J(this.i,"timestamp",ia());Kb(this.i);var f=this.b&&!this.j;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Hb(d)){var e=Z(d,"code"),g=Z(d,"data");e&&("ok"==e?Y(d,g):("error"==e&&"no machine state"!=
m.ka=function(a){void 0===a&&(a=this.b||(this.m?1:X));if(!this.f){this.f++;var b=!1,c=!1;this.D=!1;var d=this.u||new I(this,"1.30.0");if(-1==a)b=!0;else if(a>X){if(Y(d,this.m)){this.i=new I(this,"1.30.0","failsafe");Y(this.i)&&(Ib(this,d),a=2,Jb(this.i));J(this.i,"timestamp",ia());Kb(this.i);var f=this.b&&!this.j;if(1==a||ja("Click OK to restore the previous PDP11js machine state, or CANCEL to reset the machine.")){if(c=Hb(d)){var e=Z(d,"code"),g=Z(d,"data");e&&("ok"==e?Y(d,g):("error"==e&&"no machine state"!=
g?(this.A("Error: "+g),"unable to verify user"==g&&(na("user",""),this.c=null)):this.H(e+": "+g),Jb(d),Y(d)?(c=Hb(d),f=!0):c=!1))}f&&Gb(this,c?d:null)}else 2==a&&d.clear()}else Gb(this);delete this.m;delete this.u}f=y(this.id);for(e=0;e<f.length;e++)g=f[e],g!==this&&g!=this.a&&(c=Lb(this,g,d,b,c));b=[d,a,c];-1!=a?Fb(this,this.Na,b):this.Na(b)}};
function Lb(a,b,c,d,f){if(!b.h.B){b.h.B=!0;if(b.Y){var e=null;f&&((e=Z(c,b.id))||(e=Z(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Y(e,d)&&e&&(q("Unable to restore state for "+b.type),a.C&&!a.F?(c.clear(),a.b=X,window&&window.location.reload()):a.D=!0,b.Y(null),f=!1)}if(!d&&b.Qa)for(a=b.Qa.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Na=function(a){var b=a[0],c=0>a[1];a=a[2];this.K=!0;this.h.B=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(Lb(this,this.a,b,c,a),this.a.ha());this.D&&(Ib(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
function Ib(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.J;f.user=c;f.type="bug";f.data=d;p("http://www.pcjs.org/api/v1/report",f,!0)}}
function Lb(a,b,c,d,f){if(!b.h.B){b.h.B=!0;if(b.Y){var e=null;f&&((e=Z(c,b.id))||(e=Z(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof e&&(e=null);!b.Y(e,d)&&e&&(r("Unable to restore state for "+b.type),a.C&&!a.F?(c.clear(),a.b=X,window&&window.location.reload()):a.D=!0,b.Y(null),f=!1)}if(!d&&b.Qa)for(a=b.Qa.split("|"),c=0;c<a.length;c++)b.status(a[c])}return f}
m.Na=function(a){var b=a[0],c=0>a[1];a=a[2];this.K=!0;this.h.B=!0;var d=this.o.power;d&&(d.textContent="Shutdown");this.a&&(Lb(this,this.a,b,c,a),this.a.ia());this.D&&(Ib(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
function Ib(a,b){if(ja("There may be a problem with your PDP11js machine.\n\nTo help us diagnose it, click OK to send this PDP11js machine state to http://www.pcjs.org.")){var c=a.c||"",d=b.toString(),f={app:"PDP11js",ver:"1.30.0"};f.url=a.J;f.user=c;f.type="bug";f.data=d;q("http://www.pcjs.org/api/v1/report",f,!0)}}
function Mb(a,b,c){var d,f="none";if(a.f)return null;a.f--;var e=new I(a,"1.30.0"),g=new I(a,"1.30.0","validate"),h=ia();J(g,"timestamp",h);J(e,"timestamp",h);J(e,"version","1.30.0");J(e,"url",window?window.location.href:null);J(e,"browser",window?window.navigator.userAgent:"");a.a&&a.a.X&&(c&&H(a.a),d=a.a.X(b,c),"object"===typeof d&&J(e,a.a.id,d),c&&(a.a.h.B=!1,!1===d&&(f=null)));for(var h=y(a.id),k=0;k<h.length;k++){var l=h[k];l.h.B&&(l.X&&(d=l.X(b,c),"object"===typeof d&&J(e,l.id,d)),c&&(l.h.B=
!1,!1===d&&(f=null)))}f&&(c?(h=d=!1,b?(a.c&&Nb(a,a.c,e.toString()),Kb(g)&&Kb(e)||(f=null,d=h=!0)):a.b&&(d=!0,h=3==a.b),d&&e.clear(h)):f=e.toString());c&&(a.h.B=!1,b=a.o.power)&&(b.textContent="Power");a.f=0;return f}m.reset=function(){this.s&&this.s.reset&&this.s.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.s&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.start&&f.start(a,b)}};
m.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var f=c[d];"CPU"!=f.type&&f!==this&&f.stop&&f.stop(a,b)}};
m.L=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.f||(d.h.B?Mb(d,!1,!0):Fb(d,d.ja))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.h.B&&!d.f)if(d.b&&!d.l){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Mb(d,a,!0);!a&&d.C?window&&window.location.reload():d.ja(X)}else d.reset(),d.a&&d.a.ha()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.o[b]=c;
m.L=function(a,b,c){var d=this;switch(b){case "power":return this.o[b]=c,c.onclick=function(){d.f||(d.h.B?Mb(d,!1,!0):Fb(d,d.ka))},!0;case "reset":return this.o[b]=c,c.onclick=function(){if(d.h.B&&!d.f)if(d.b&&!d.l){var a=ja("Click OK to save changes to this PDP11js machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Mb(d,a,!0);!a&&d.C?window&&window.location.reload():d.ka(X)}else d.reset(),d.a&&d.a.ia()},!0;case "save":if(da()){c.parentNode.removeChild(c);break}this.o[b]=c;
c.onclick=function(){var a=Db(d,!0);if(a){var b=!!(d.b&&!d.l||d.C),c=Mb(d,b);b?Nb(d,a,c):d.A("Resume disabled, machine state not saved")}};return!0}return!1};
function Db(a,b){var c=a.c;c||(c=ma("user"),void 0!==c?!c&&b&&(c=null,window&&(c=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&&((c=Ob(a,c))||a.A("The user ID is invalid."))):b&&a.A("Browser local storage is not available"));return c}
function Ob(a,b){a.c=null;var c=p(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.c=c.data)}catch(f){q(f.message+" ("+d+")")}return a.c}function Eb(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+Pb(a,"1.30.0"));return b}
function Nb(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Pb(a,"1.30.0");d.data=c;b=p(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.A("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.A(c),na("user",""),a.c=null)}}
m.ca=function(a){this.a&&this.a.ca(a);this.g&&this.g.ca(a)};t(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=z(e),g=new Bb(g,d,!0);B(g,e);g.v&&Fb(g,g.ja)}});r.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.K&&!c.h.B&&c.ja(-1)}});
r.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.h.B&&Mb(c,!(!c.b||c.l),!0)}});function I(a,b,c){this.id=a.id;this.key=Pb(a,b,c);this.w=a.w;Jb(this,a.hb)}function Pb(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}
function Ob(a,b){a.c=null;var c=q(ea()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(na("user",c.data),a.c=c.data)}catch(f){r(f.message+" ("+d+")")}return a.c}function Eb(a){var b=null;a.c&&(b=ea()+"/api/v1/user?req=load&user="+a.c+"&state="+Pb(a,"1.30.0"));return b}
function Nb(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Pb(a,"1.30.0");d.data=c;b=q(ea()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var f=d.indexOf("\n");0<f&&(d=d.substr(0,f));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.A("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.A(c),na("user",""),a.c=null)}}
m.ca=function(a){this.a&&this.a.ca(a);this.g&&this.g.ca(a)};u(function(){for(var a=C(document,"pdp11-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,"pdp11","computer"),f=0;f<c.length;f++){var e=c[f],g=z(e),g=new Bb(g,d,!0);B(g,e);g.v&&Fb(g,g.ka)}});t.show.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.K&&!c.h.B&&c.ka(-1)}});
t.exit.push(function(){for(var a=C(document,"pdp11","computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=Ea("Computer",c.id))&&c.h.B&&Mb(c,!(!c.b||c.l),!0)}});function I(a,b,c){this.id=a.id;this.key=Pb(a,b,c);this.w=a.w;Jb(this,a.hb)}function Pb(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}
I.prototype={constructor:I,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Jb(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(f){}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(f){}b.splice(c,1);c=0}}};
function Jb(a,b){a[a.id]={};b&&J(a,"parms",b);a.a=!1}function Kb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(q("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Hb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){q(c.message||c),b=!1}return b}function Y(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}function Z(a,b){return a[a.id][b]||null}function J(a,b,c){try{a[a.id][b]=c}catch(d){}}var Qb=0;
function Rb(a,b,c,d,f,e){f("Loading "+a+"...");p(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Sb(h,a,b,c,d,f,e)})}
function Jb(a,b){a[a.id]={};b&&J(a,"parms",b);a.a=!1}function Kb(a){var b=!0;if(la()){var c=JSON.stringify(a[a.id]);na(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Hb(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function Y(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:la()&&(b=ma(a.key))?(a[a.id]=b,a.a=!0):!1}function Z(a,b){return a[a.id][b]||null}function J(a,b,c){try{a[a.id][b]=c}catch(d){}}var Qb=0;
function Rb(a,b,c,d,f,e){f("Loading "+a+"...");q(a,null,!0,function(g,h,k){k?(h||(h="unable to load "+a+" ("+k+")"),e(h,null)):Sb(h,a,b,c,d,f,e)})}
function Sb(a,b,c,d,f,e,g){function h(a,e){if(e)g(e,null);else{if(c){Da(c,b,a);var h=b;h&&0>h.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+h+'"}';"object"==typeof resources&&(h=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDP11js$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(h=new window.ActiveXObject("Microsoft.XMLDOM"),h.async=!1,h.loadXML(a)):h=(new window.DOMParser).parseFromString(a,"text/xml")}catch(A){h=null,a=A.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,h)}}a?f?Tb(a,e,h):h(a,null):g("no data"+(b?" for file: "+b:""),null)}
function Tb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");p(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,v=/( [a-z]+=)(['"])(.*?)\2/g;l=v.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
function Tb(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var f=d[2];b("Loading "+f+"...");q(f,null,!0,function(e,g,h){if(h||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+h+")");else{if(e=d[3])if(h=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=h[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(e);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);h[0]!=k&&(g=g.replace(h[0],k))}else{c(a,"missing <"+d[1]+"> in "+f);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
"");a=a.replace(d[0],g);Tb(a,b,c)}})}else c(a,null)}
function Ub(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Qb||ua(!0));k=!1}var g,h,k=!0;Qb++;Ca[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var v=document.head||document.getElementsByTagName("head")[0],A=document.createElement("style");A.type="text/css";A.styleSheet?A.styleSheet.cssText=l:A.appendChild(document.createTextNode(l));v.appendChild(A)}c||
function Ub(a,b,c,d){function f(a){if(void 0===h){var b=g&&C(g,"machine-warning");h=b&&b[0]||g}h&&(h.innerHTML=ga(a))}function e(a){f("Error: "+a);k&&(--Qb||ua(!0));k=!1}var g,h,k=!0;Qb++;Ca[a]={};try{if(g=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],A=document.createElement("style");A.type="text/css";A.styleSheet?A.styleSheet.cssText=l:A.appendChild(document.createTextNode(l));p.appendChild(A)}c||
(c="/versions/pdp11/1.30.0/components.xsl");l=function(d,h){h?Rb(c,null,null,!1,f,function(d,k){if(k)if(Da(a,c,d),f("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=h.transformNode(k);l?(g.outerHTML=l,--Qb||ua(!0)):e("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(h,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--Qb||ua(!0)):e("invalid machine element: "+
a):e("transformToFragment failed")):e("unable to transform XML: unsupported browser");else e(d)}):e(d)};"<"!=b.charAt(0)?Rb(b,a,d,!0,f,l):Sb(b,null,a,d,!1,f,l)}else e("missing machine element: "+a)}catch(Vb){e(Vb.message)}return k}window.embedPDP11=function(a,b,c,d){ua(!1);return Ub(a,b,c,d)};window.enableEvents=ua;window.sendEvent=va;})();