From dfe367f53d9d930f854963571162cb9a5b20c469 Mon Sep 17 00:00:00 2001 From: Jeff Date: Wed, 21 Sep 2016 12:44:25 -0700 Subject: [PATCH] New improved I/O handler functions for the PDP-11 --- docs/pcx86/examples/pcx86-dbg.js | 88 +++--- docs/pcx86/examples/pcx86.js | 80 ++--- modules/pc6502/lib/bus.js | 442 +++------------------------ modules/pc6502/lib/memory.js | 41 ++- modules/pc8080/lib/bus.js | 101 +++--- modules/pc8080/lib/memory.js | 49 ++- modules/pcx86/lib/bus.js | 68 +++-- modules/pcx86/lib/memory.js | 112 +++++-- modules/pcx86/lib/video.js | 2 +- modules/pdp11/lib/bus.js | 217 ++++++------- modules/pdp11/lib/device.js | 6 +- modules/pdp11/lib/memory.js | 46 +-- versions/pc8080/1.30.0/pc8080-dbg.js | 238 +++++++-------- versions/pc8080/1.30.0/pc8080.js | 18 +- versions/pcx86/1.30.0/pcx86-dbg.js | 88 +++--- versions/pcx86/1.30.0/pcx86.js | 80 ++--- versions/pdp11/1.30.0/pdp11-dbg.js | 116 +++---- versions/pdp11/1.30.0/pdp11.js | 124 ++++---- 18 files changed, 852 insertions(+), 1064 deletions(-) diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index de522b41b..3e0a89023 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -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=this.N?12:24>=this.N?14:15;this.Sb=1<>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>>a.La;0g&&(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>>this.La;0>>a.La;0>>=a.La;0>>a.La;0g&&(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<>>this.La;0>>a.La;0>>=a.La;0>>a.La;0>>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.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>>=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>>=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>>=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>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>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<>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;ba.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.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;ba.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.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;ba.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>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<>=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>>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>>=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>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<>>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>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<>>32-c;zf(this,a,-2147483648,d&-2147483648)}return a} function aj(a,b,c){if(c){16>>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<>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=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=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>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>>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>>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;cthis.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>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>1;f[e++]=k;h=l}if(f.length>3;for(c=0;c=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<W||!H?W:8,wa=ja.createImageData(l.Qc,l.Rc),Ha=0;256>Ha;Ha++){for(Ba= -0;Ba=W-2,Sc=P[Ba>(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){0a.cb&&(a.cb=0):a.cb=-1} +0;Ba=W-2,Sc=P[Ba>(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){0a.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=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>1,a.Cd-=b);0>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>>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;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<>>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>>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=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>> -0,65536>4||1;gs--&&0vg?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;ygvi;){for(var uc=null,ls=256;Vc.Ra>>>0>>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>>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=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>> +0,65536>4||1;gs--&&0vg?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;ygvi;){for(var uc=null,ls=256;Vc.Ra>>>0>>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\nLicense: GPL version 3 or later ");for(b=0;b>>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>1),k=g.y+(g.A>>1),l=g.A,g.ad>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>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;ba.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=this.D?12:24>=this.D?14:15;this.xb=1<>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>>a.da;0g&&(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>>this.da;0>>a.da;0>>=a.da;0>>a.da;0g&&(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<>>this.da;0>>a.da;0>>=a.da;0>>a.da;0>>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.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>>=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>>=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>>=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>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>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<>2,d=(a&3)<<3;24>d?this.V[c]=this.V[c]&~(65535<>8);this.Ha=!0},fc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<>>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=e.ub&&bh||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>>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>>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.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;ba.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;ba.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>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<>=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>>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<>>=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>>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)2this.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.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>>=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>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16>>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>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16>>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.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=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=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=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>>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>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>>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>>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;cthis.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>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>1;f[e++]=k;h=m}if(f.lengthf;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<va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b= -0;$b=va-2,en=qd[$b>(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){0a.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<va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b= +0;$b=va-2,en=rd[$b>(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){0a.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=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>1,a.ic-=b);0>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=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;0f)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>8|(z&255)<<8;var da=e,ua=16;p>=h))>>(ua-=h);yl(a.Oa,p++,x,m[qd])}p>E&&(E=p);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>8|(z&255)<<8;var da=e,ua=16;p>=h))>>(ua-=h);yl(a.Oa,p++,x,m[rd])}p>E&&(E=p);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;ta.H?a.Ta-a.H-z>>3:0;c>=8;m>t&&(t=m);p=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);xa.H?a.Ta-a.H-J>>3:0;cda&&(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){hx&&(x=h);m=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);pd&&(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>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;cb.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(0g&&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>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>>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>1),k=g.y+(g.A>>1),m=g.A,g.Fc>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>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> 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. - * }} - */ -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. + * }} + */ +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) * diff --git a/modules/pc6502/lib/memory.js b/modules/pc6502/lib/memory.js index d24c41260..6c91972c6 100644 --- a/modules/pc6502/lib/memory.js +++ b/modules/pc6502/lib/memory.js @@ -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; diff --git a/modules/pc8080/lib/bus.js b/modules/pc8080/lib/bus.js index 64b4b963a..e29ddc529 100644 --- a/modules/pc8080/lib/bus.js +++ b/modules/pc8080/lib/bus.js @@ -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. - * }} - */ -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. + * }} + */ +var BusInfo8080; + /** * scanMemory(info, addr, size) * diff --git a/modules/pc8080/lib/memory.js b/modules/pc8080/lib/memory.js index 0ca04ae49..5a7f4d1f1 100644 --- a/modules/pc8080/lib/memory.js +++ b/modules/pc8080/lib/memory.js @@ -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; diff --git a/modules/pcx86/lib/bus.js b/modules/pcx86/lib/bus.js index ef3bc4217..431df4159 100644 --- a/modules/pcx86/lib/bus.js +++ b/modules/pcx86/lib/bus.js @@ -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. - * }} - */ -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. + * }} + */ +var BusInfo; + /** * scanMemory(info, addr, size) * diff --git a/modules/pcx86/lib/memory.js b/modules/pcx86/lib/memory.js index 0c2218834..ed70294e4 100644 --- a/modules/pcx86/lib/memory.js +++ b/modules/pcx86/lib/memory.js @@ -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.} [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; diff --git a/modules/pcx86/lib/video.js b/modules/pcx86/lib/video.js index 916b28274..c8b6da4ff 100644 --- a/modules/pcx86/lib/video.js +++ b/modules/pcx86/lib/video.js @@ -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; } }; diff --git a/modules/pdp11/lib/bus.js b/modules/pdp11/lib/bus.js index 26c4872a8..af72340b2 100644 --- a/modules/pdp11/lib/bus.js +++ b/modules/pdp11/lib/bus.js @@ -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. - * }} - */ -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. + * }} 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); } }; diff --git a/modules/pdp11/lib/device.js b/modules/pdp11/lib/device.js index 19c6396b7..851a76be7 100644 --- a/modules/pdp11/lib/device.js +++ b/modules/pdp11/lib/device.js @@ -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() diff --git a/modules/pdp11/lib/memory.js b/modules/pdp11/lib/memory.js index 6c7570006..b95077a30 100644 --- a/modules/pdp11/lib/memory.js +++ b/modules/pdp11/lib/memory.js @@ -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.} [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 ]; } diff --git a/versions/pc8080/1.30.0/pc8080-dbg.js b/versions/pc8080/1.30.0/pc8080-dbg.js index 36597fd35..0330a4f89 100644 --- a/versions/pc8080/1.30.0/pc8080-dbg.js +++ b/versions/pc8080/1.30.0/pc8080-dbg.js @@ -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=this.G?10:20>=this.G?12:24>=this.G?14:15;this.Ha=1<>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>>a.sa;0f&&(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>>=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>2),b=0;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<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>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>1)+2;10>this.ia&&(this.ia=10);15>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>>a.ia;0f&&(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>>=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>2),b=0;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<>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<>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=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;ca.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=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.Ke&&(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>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.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;ca.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=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.Je&&(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>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?255:1<b&&!(a.j&1<b?255:1<>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>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>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>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>>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>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>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>>f.sa;0>>=f.sa;0>>f.ia;0>>=f.ia;0d?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;bc||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>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.fc?8:16,f=8>(7>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>=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>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<>8|(C&255)<<8);k>u&r,oe(a,a.lc,k++,m,y),u+=x;k>q&&(q=k);m=e&&(e=m+1)}f+=2;g++;if(k>=a.J&&(k=0,m++,m>a.ba))break}a.ia= -!0;c>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.fc?8:16,f=8>(7>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>=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>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<>8|(C&255)<<8);k>u&r,oe(a,a.lc,k++,m,y),u+=x;k>q&&(q=k);m=e&&(e=m+1)}f+=2;g++;if(k>=a.K&&(k=0,m++,m>a.ba))break}a.ja= +!0;cMissing <canvas> 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");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");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":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=":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":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=":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<>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f":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>=1;d=p+d;f>>=8}f=c;h=0;g="";h?11>=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>>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.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<>>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;cc&&(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>>d.sa],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b>>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>>d.sa],b==a.D));g.Oa||Je(a);break}}return f}function Df(a,b){for(var c=1;c>>d.ia],!1)}a.O=["br"];if(void 0!==a.D)for(b=1;b>>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>>d.ia],b==a.D));g.Oa||Je(a);break}}return f}function Df(a,b){for(var c=1;c>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}0b[0]?1:a[0]>>0;for(b=0;b>>0,g=f.Wd;if(e>=h&&e>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.Fg[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.Fg[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)&&0m||"z"> "+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)&&0m||"z"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>4||1;kg--&&0xc?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;Acyd;){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\nLicense: GPL version 3 or later ");for(b=0;b\nLicense: GPL version 3 or later ");for(b=0;bUf){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;fUf){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;fa[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=this.i?10:20>=this.i?12:24>=this.i?14:15;this.c=1<>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>1)+2;10>this.j&&(this.j=10);15>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>>a.j;0f&&(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>2),b=0;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<>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<>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;bg[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.Oe&&(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>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>>=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>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>=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>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<>>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>v&z,Mc(a,a.Ja,l++,n,I),v+=C;l>t&&(t=l);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<>>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>v&z,Mc(a,a.Ja,l++,n,I),v+=C;l>t&&(t=l);n=e&& (e=n+1)}f+=2;g++;if(l>=a.o&&(l=0,n++,n>a.G))break}a.O=!0;cMissing <canvas> 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)}}); diff --git a/versions/pcx86/1.30.0/pcx86-dbg.js b/versions/pcx86/1.30.0/pcx86-dbg.js index de522b41b..3e0a89023 100644 --- a/versions/pcx86/1.30.0/pcx86-dbg.js +++ b/versions/pcx86/1.30.0/pcx86-dbg.js @@ -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=this.N?12:24>=this.N?14:15;this.Sb=1<>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>>a.La;0g&&(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>>this.La;0>>a.La;0>>=a.La;0>>a.La;0g&&(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<>>this.La;0>>a.La;0>>=a.La;0>>a.La;0>>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.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>>=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>>=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>>=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>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>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<>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;ba.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.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;ba.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.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;ba.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>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<>=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>>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>>=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>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<>>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>>16-c)&65535;zf(this,a,32768,d&32768)}return a}function Xi(a,b,c){if(c){var d=a<>>32-c;zf(this,a,-2147483648,d&-2147483648)}return a} function aj(a,b,c){if(c){16>>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<>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=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=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>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>>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>>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;cthis.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>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>1;f[e++]=k;h=l}if(f.length>3;for(c=0;c=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<W||!H?W:8,wa=ja.createImageData(l.Qc,l.Rc),Ha=0;256>Ha;Ha++){for(Ba= -0;Ba=W-2,Sc=P[Ba>(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){0a.cb&&(a.cb=0):a.cb=-1} +0;Ba=W-2,Sc=P[Ba>(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){0a.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=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>1,a.Cd-=b);0>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>>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;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<>>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>>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=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>> -0,65536>4||1;gs--&&0vg?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;ygvi;){for(var uc=null,ls=256;Vc.Ra>>>0>>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>>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=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>> +0,65536>4||1;gs--&&0vg?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;ygvi;){for(var uc=null,ls=256;Vc.Ra>>>0>>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\nLicense: GPL version 3 or later ");for(b=0;b>>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>1),k=g.y+(g.A>>1),l=g.A,g.ad>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>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;ba.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=this.D?12:24>=this.D?14:15;this.xb=1<>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>>a.da;0g&&(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>>this.da;0>>a.da;0>>=a.da;0>>a.da;0g&&(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<>>this.da;0>>a.da;0>>=a.da;0>>a.da;0>>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.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>>=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>>=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>>=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>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>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<>2,d=(a&3)<<3;24>d?this.V[c]=this.V[c]&~(65535<>8);this.Ha=!0},fc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<>>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=e.ub&&bh||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>>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>>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.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;ba.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;ba.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>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<>=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>>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<>>=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>>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)2this.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.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>>=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>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16>>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>>16-c)&65535;H(this,a,32768,d&32768)}return a}function hh(a,b,c){if(c){var d=a<>>32-c;H(this,a,-2147483648,d&-2147483648)}return a}function lh(a,b,c){if(c){16>>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.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=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=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=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>>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>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>>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>>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;cthis.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>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>1;f[e++]=k;h=m}if(f.lengthf;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<va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b= -0;$b=va-2,en=qd[$b>(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){0a.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<va||!da?va:8,Gf=tj.createImageData(m.tc,m.uc),zb=0;256>zb;zb++){for($b= +0;$b=va-2,en=rd[$b>(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){0a.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=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>1,a.ic-=b);0>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=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;0f)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>8|(z&255)<<8;var da=e,ua=16;p>=h))>>(ua-=h);yl(a.Oa,p++,x,m[qd])}p>E&&(E=p);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>8|(z&255)<<8;var da=e,ua=16;p>=h))>>(ua-=h);yl(a.Oa,p++,x,m[rd])}p>E&&(E=p);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;ta.H?a.Ta-a.H-z>>3:0;c>=8;m>t&&(t=m);p=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);xa.H?a.Ta-a.H-J>>3:0;cda&&(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){hx&&(x=h);m=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);pd&&(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>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;cb.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(0g&&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>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>>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>1),k=g.y+(g.A>>1),m=g.A,g.Fc>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>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;bb?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>1)+2;10>this.S&&(this.S=10);15>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>>a.S;0h&&(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>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>1)+2;10>this.S&&(this.S=10);15>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>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;0h&&(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>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>2),b=0;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<>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<>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=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<>2,c=(a&3)<<3;24>c?this.f[d]=this.f[d]&~(65535<>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=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;da.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&&1a.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.Re&&(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.Re&&(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>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>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>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(;0c&&(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(;0c&&(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>>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>8&255;else if(f=g.data)for(a.j=Array(4*f.length),h=e=0;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>>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>>e.S;0>>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>>e.S;0>>=e.S;0=":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;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<>>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;de&&(e+=d.length);0>e&&(e=0);for(var f=d.length;e>>c.S],!1)}a.R=["br"];if(void 0!==a.J)for(b=1;b>>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>>c.S],b==a.J));g.oa||hd(a);break}}return f} function Vd(a,b){for(var d=1;d>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]);0a?"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]>>0;for(b=0;b>>0,g=f.Kb;if(e>=h&&ee;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.Dg[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)&&0l||"z"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=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>4||1;Be--&&0Kb?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;Nbzc;){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(2da.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=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>4||1;Be--&&0Lb?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;Obzc;){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\nLicense: GPL version 3 or later ");this.g("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bje){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;fa[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=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":">",'"':""","'":"'"};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;bb?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;bb?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>1)+2;10>this.c&&(this.c=10);15>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>>a.c;0g&&(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>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>1)+2;10>this.c&&(this.c=10);15>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>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;0g&&(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>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>2),b=0;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<>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<>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>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<>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<>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>=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;ca.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.Id&&(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.Id&&(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>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>>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>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>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;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>8&255;else if(e=h.data)for(a.b=Array(4*e.length),g=f=0;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>>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>>f.c;0>>=f.c;0>>=f.c;0\nLicense: GPL version 3 or later ");this.H("Portions adapted from the PDP-11/70 Emulator v1.3 by Paul Nankervis ");for(b=0;bX){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;ea[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;ca[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;kh.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(h=window.location.pathname+h);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(h?' url="'+h+'"':""))}f||(a=a.replace(/().*?(<\/xsl:variable>)/,"$1PDP11js$2"), a=a.replace(/().*?(<\/xsl:variable>)/,"$1pdp11$2"));h=null;if("<"==a.charAt(0))try{f||(a=a.replace(/\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/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;})();