Fixed an old annoying bug where a restored video card wouldn't properly display a blinking cursor; originally, I assumed it was a CRTC register restoration bug, but actually, some supporting variables (eg, cBlinks) were not getting initialized in both the reset() and restore() code paths. This is also a good time to remember that when an uninitialized array from some hardware state gets serialized and deserialized to/from JSON, the array is restored as a series of "null" values, not as "undefined" values, so it's best for any code checking for undefined values to use "== null" rather than "=== undefined".

This commit is contained in:
Jeff Parsons 2017-06-26 08:56:17 -07:00 • committed by Jeff Parsons
commit ed75397b83
10 changed files with 58 additions and 36 deletions

View file

@ -1,3 +1,17 @@
---
layout: page
permalink: /
machines:
- id: ibm5150
type: pcx86
resume: 1
name: "IBM PC (Model 5150) with Monochrome Display"
config: /devices/pcx86/machine/5150/mda/64kb/machine.xml
- id: demoC1P
type: c1p
config: /devices/c1p/machine/8kb/large/machine.xml
---
PCjs Machines PCjs Machines
============= =============
@ -14,7 +28,7 @@ All PCjs machine simulations are written entirely in [JavaScript](/modules/). N
required. Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge, required. Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge,
and assorted mobile browsers. and assorted mobile browsers.
[Embedded IBM PC](/devices/pcx86/machine/5150/mda/64kb/ "PCx86:ibm5150") {% include machine.html id="ibm5150" %}
The [JavaScript Machine](/devices/pcx86/machine/5150/mda/64kb/) above uses [PCx86](/docs/pcx86/) configured with an Intel The [JavaScript Machine](/devices/pcx86/machine/5150/mda/64kb/) above uses [PCx86](/docs/pcx86/) configured with an Intel
8088 running at 4.77Mhz, with 64Kb of RAM and an IBM Monochrome Display Adapter. For more control, there are also 8088 running at 4.77Mhz, with 64Kb of RAM and an IBM Monochrome Display Adapter. For more control, there are also
@ -62,7 +76,7 @@ Below is the [OSI Challenger C1P](/docs/c1pjs/), another simulation in the PCjs
It simulates Ohio Scientific's 6502-based microcomputer, released in 1978. More details about this simulation It simulates Ohio Scientific's 6502-based microcomputer, released in 1978. More details about this simulation
and the original machine are available in the [C1Pjs Documentation](/docs/c1pjs/). and the original machine are available in the [C1Pjs Documentation](/docs/c1pjs/).
[Embedded OSI Challenger C1P](/devices/c1p/machine/8kb/large/ "C1Pjs:demoC1P") {% include machine.html id="demoC1P" %}
<!--BEGIN:EXCLUDE--> <!--BEGIN:EXCLUDE-->

View file

@ -110,7 +110,7 @@ function Ec(a,b,c){if(!(b&a.D||!c||c&a.D)){for(var d=b>>>a.A;0<c;){var e=a.aa[d]
function zc(a,b,c,d,e){for(var f=0,g=b>>>a.A;0<c&&g<a.aa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new x(b),m=k,p=e,v=a.ba;m.id=h.id|1;m.we=h.we;m.size=h.size;p&&(m.type=p,m.D=p==Gc);Qb?(m.I=h.I,m.G=h.G,m.Pa=h.Pa,m.Sd=h.Sd,m.X=h.X,Cc(m,Hc?Ic:Jc)):(m.X=h.X,Cc(m,Kc));pc(m,v,h);h=k}a.aa[g++]=h;c-=a.B}}l.Ia=function(a){return this.aa[(a&this.C)>>>this.A].Bc(a&this.D,a)};function Mc(a,b){var c=b&a.D,d=(b&a.C)>>>a.A;return c!=a.D?a.aa[d].Of(c,b):a.aa[d++].$d(c,b)|a.aa[d&a.W].$d(0,b+1)<<8} function zc(a,b,c,d,e){for(var f=0,g=b>>>a.A;0<c&&g<a.aa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new x(b),m=k,p=e,v=a.ba;m.id=h.id|1;m.we=h.we;m.size=h.size;p&&(m.type=p,m.D=p==Gc);Qb?(m.I=h.I,m.G=h.G,m.Pa=h.Pa,m.Sd=h.Sd,m.X=h.X,Cc(m,Hc?Ic:Jc)):(m.X=h.X,Cc(m,Kc));pc(m,v,h);h=k}a.aa[g++]=h;c-=a.B}}l.Ia=function(a){return this.aa[(a&this.C)>>>this.A].Bc(a&this.D,a)};function Mc(a,b){var c=b&a.D,d=(b&a.C)>>>a.A;return c!=a.D?a.aa[d].Of(c,b):a.aa[d++].$d(c,b)|a.aa[d&a.W].$d(0,b+1)<<8}
l.fc=function(a,b){this.aa[(a&this.C)>>>this.A].Dc(a&this.D,b&255,a)};function Nc(a,b,c){var d=b&a.D,e=(b&a.C)>>>a.A;d!=a.D?a.aa[e].ti(d,c&65535,b):(a.aa[e++].cf(d,c&255,b),a.aa[e&a.W].cf(0,c>>8&255,b+1))}l.yj=function(){return null}; l.fc=function(a,b){this.aa[(a&this.C)>>>this.A].Dc(a&this.D,b&255,a)};function Nc(a,b,c){var d=b&a.D,e=(b&a.C)>>>a.A;d!=a.D?a.aa[e].ti(d,c&65535,b):(a.aa[e++].cf(d,c&255,b),a.aa[e&a.W].cf(0,c>>8&255,b+1))}l.yj=function(){return null};
function Oc(a,b){var c=0,d=[],e=!a.J&&a.N==a.C;e||qc(a,!0);for(var f=0;f<a.M;f++){var g=a.aa[f];if(b&&g.type!=Gc||g.Oa||g.sj){d[c++]=f;var h=c++;if(g=g.save()){for(var k=0,m=0,p=[];k<g.length;){for(var v=g[k],u=k+1;u<g.length&&g[u]===v;)u++;p[m++]=u-k;p[m++]=v;k=u}p.length<g.length&&(g=p)}d[h]=g}}e||qc(a,!1);d[c]=e;return d}function Pc(a,b){if(null==b)return a.K=!a.K,a.K;void 0===a.F[b]&&(a.F[b]=[null,!1]);a.F[b][1]=!a.F[b][1];return a.F[b][1]} function Oc(a,b){var c=0,d=[],e=!a.J&&a.N==a.C;e||qc(a,!0);for(var f=0;f<a.M;f++){var g=a.aa[f];if(b&&g.type!=Gc||g.Oa||g.sj){d[c++]=f;var h=c++;if(g=g.save()){for(var k=0,m=0,p=[];k<g.length;){for(var v=g[k],u=k+1;u<g.length&&g[u]===v;)u++;p[m++]=u-k;p[m++]=v;k=u}p.length<g.length&&(g=p)}d[h]=g}}e||qc(a,!1);d[c]=e;return d}function Pc(a,b){if(null==b)return a.K=!a.K,a.K;void 0===a.F[b]&&(a.F[b]=[null,!1]);a.F[b][1]=!a.F[b][1];return a.F[b][1]}
function Qc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.F[k]?kb("Input port "+sa(k)+" already registered"):f.F[k]=[h,!1]}}function Rc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.F[b],h=a.Y[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g?(g[0]&&(m=g[0](b,d),void 0===m?m=k:m&=k),a.ba&&a.K!=g[1]&&Sc(a.ba,b,m)):a.ba&&(Pb(a.ba,a,b,null,d),a.K&&Sc(a.ba,b,m));e|=m<<f;f+=h<<3;b+=h;c-=h}return e} function Qc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.F[k]?kb("Input port "+sa(k)+" already registered"):f.F[k]=[h,!1]}}function Rc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.F[b],h=a.Y[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g?(g[0]&&(m=g[0](b,d),null==m?m=k:m&=k),a.ba&&a.K!=g[1]&&Sc(a.ba,b,m)):a.ba&&(Pb(a.ba,a,b,null,d),a.K&&Sc(a.ba,b,m));e|=m<<f;f+=h<<3;b+=h;c-=h}return e}
function Tc(a,b){if(null==b)return a.L=!a.L,a.L;void 0===a.G[b]&&(a.G[b]=[null,!1]);a.G[b][1]=!a.G[b][1];return a.G[b][1]}function Uc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.G[k]?kb("Output port "+sa(k)+" already registered"):f.G[k]=[h,!1]}} function Tc(a,b){if(null==b)return a.L=!a.L,a.L;void 0===a.G[b]&&(a.G[b]=[null,!1]);a.G[b][1]=!a.G[b][1];return a.G[b][1]}function Uc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.G[k]?kb("Output port "+sa(k)+" already registered"):f.G[k]=[h,!1]}}
function Vc(a,b,c,d,e){for(var f=0;0<c;){var g=a.G[b],h=a.Z[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ba&&a.L!=g[1]&&Wc(a.ba,b,k)}else a.ba&&(Pb(a.ba,a,b,k,e),a.L&&Wc(a.ba,b,k));f+=h<<3;b+=h;c-=h}}function tc(a,b,c,d,e){b="Memory block error ("+b+": "+q(c)+","+q(d)+")";e?a.ba?a.ba.message(b):a.log(b):kb(b);return!1}var ec,Xc={Jk:20,count:8,fq:1,type:3},Yc=0,Zc;for(Zc in Xc){var $c=Xc[Zc];Xc[Zc]={ph:(1<<$c)-1<<Yc,shift:Yc};Yc+=$c}ec=Xc; function Vc(a,b,c,d,e){for(var f=0;0<c;){var g=a.G[b],h=a.Z[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ba&&a.L!=g[1]&&Wc(a.ba,b,k)}else a.ba&&(Pb(a.ba,a,b,k,e),a.L&&Wc(a.ba,b,k));f+=h<<3;b+=h;c-=h}}function tc(a,b,c,d,e){b="Memory block error ("+b+": "+q(c)+","+q(d)+")";e?a.ba?a.ba.message(b):a.log(b):kb(b);return!1}var ec,Xc={Jk:20,count:8,fq:1,type:3},Yc=0,Zc;for(Zc in Xc){var $c=Xc[Zc];Xc[Zc]={ph:(1<<$c)-1<<Yc,shift:Yc};Yc+=$c}ec=Xc;
var uc=1,yc=2,Bc=3,Dc=4,Fc=5,ad;if(Qb){var bd=new ArrayBuffer(2);(new DataView(bd)).setUint16(0,256,!0);ad=256===(new Uint16Array(bd))[0]}else ad=!1;var Hc=ad; var uc=1,yc=2,Bc=3,Dc=4,Fc=5,ad;if(Qb){var bd=new ArrayBuffer(2);(new DataView(bd)).setUint16(0,256,!0);ad=256===(new Uint16Array(bd))[0]}else ad=!1;var Hc=ad;
@ -557,13 +557,13 @@ function ps(a,b){!b&&a.N&&(a.Tc?a.O.style.width=a.O.style.height="":a.N.style.wi
function Bs(a,b){var c=a.D;c&&!a.tc&&(c.addEventListener("touchstart",function(b){Fs(a,b,!0)},!1),c.addEventListener("touchmove",function(b){Fs(a,b)},!0),c.addEventListener("touchend",function(b){Fs(a,b,!1)},!1),a.tc=b,a.hb=a.ib=a.md=-1,a.lc=!1,a.Db=null,a.kc=!1,a.Qd=function(){a.kc=!0;a.G.Wd(Gs,!0)})}l.Dg=function(a){this.C&&this.C.Dg(a)}; function Bs(a,b){var c=a.D;c&&!a.tc&&(c.addEventListener("touchstart",function(b){Fs(a,b,!0)},!1),c.addEventListener("touchmove",function(b){Fs(a,b)},!0),c.addEventListener("touchend",function(b){Fs(a,b,!1)},!1),a.tc=b,a.hb=a.ib=a.md=-1,a.lc=!1,a.Db=null,a.kc=!1,a.Qd=function(){a.kc=!0;a.G.Wd(Gs,!0)})}l.Dg=function(a){this.C&&this.C.Dg(a)};
function Fs(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.Z/a.O.offsetWidth,k=a.la/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(a.tc==Ds)c&&xq(a.C,Hs[e/(a.la/3)|0][d/(a.Z/3)|0],!0);else if(a.G){g=a.lc;f=b.timeStamp-a.md;!0===c?(a.lc=500<f,a.md=b.timeStamp,a.Db=setTimeout(a.Qd,500)):null!=a.Db&&(clearTimeout(a.Db),a.Db= function Fs(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.Z/a.O.offsetWidth,k=a.la/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(a.tc==Ds)c&&xq(a.C,Hs[e/(a.la/3)|0][d/(a.Z/3)|0],!0);else if(a.G){g=a.lc;f=b.timeStamp-a.md;!0===c?(a.lc=500<f,a.md=b.timeStamp,a.Db=setTimeout(a.Qd,500)):null!=a.Db&&(clearTimeout(a.Db),a.Db=
null);void 0===c&&(a.lc=!1);g||b.preventDefault();if(!1===c){a.kc?(a.G.Wd(Gs,!1),a.kc=!1,b=!0):b=!1;if(b)return;if(200>f){a.G.Wd(Gs,!0);a.G.Wd(Gs,!1);return}}if(c||0>a.hb||0>a.ib)a.hb=d,a.ib=e;c=Math.round(d-a.hb);b=Math.round(e-a.ib);a.hb=d;a.ib=e;a.G.uf(c,b,a.hb,a.ib)}}l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0}; null);void 0===c&&(a.lc=!1);g||b.preventDefault();if(!1===c){a.kc?(a.G.Wd(Gs,!1),a.kc=!1,b=!0):b=!1;if(b)return;if(200>f){a.G.Wd(Gs,!0);a.G.Wd(Gs,!1);return}}if(c||0>a.hb||0>a.ib)a.hb=d,a.ib=e;c=Math.round(d-a.hb);b=Math.round(e-a.ib);a.hb=d;a.ib=e;a.G.uf(c,b,a.hb,a.ib)}}l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};
l.reset=function(){var a=!0,b=0;this.W&&(b=+Vl(this.W,jl,void 0));this.ca||(this.La=b==Wl?us:rs);this.ea=Is;switch(this.La){case fq:b=7;break;case dq:var c=Js[this.xb];c&&(b=c[0]);b||(b=4);break;case us:b=Wl;this.ea=Ks;break;default:b=2}this.ga!==b&&(this.ga=b,a=!0);this.B=null;this.Y=this.Kb=new nr(this,us);this.K=this.yb=new nr(this,rs);this.La<dq?this.A=new nr:(this.A=new nr(this,this.La,null,this.sd),Ls(this));Ms(this);this.oa=null;this.Aa=this.aa=-1;this.xa=0;Ns(this,this.ea);if(this.B.bb&&a){a= l.reset=function(){var a=!0,b=0;this.W&&(b=+Vl(this.W,jl,void 0));this.ca||(this.La=b==Wl?us:rs);this.ea=Is;switch(this.La){case fq:b=7;break;case dq:var c=Js[this.xb];c&&(b=c[0]);b||(b=4);break;case us:b=Wl;this.ea=Ks;break;default:b=2}this.ga!==b&&(this.ga=b,a=!0);this.B=null;this.Y=this.Kb=new nr(this,us);this.K=this.yb=new nr(this,rs);this.La<dq?this.A=new nr:(this.A=new nr(this,this.La,null,this.sd),Ls(this));Ms(this);this.oa=null;Ns(this,this.ea);if(this.B.bb&&a){a=this.B.bb+this.Xa;for(b=this.B.bb;b<
this.B.bb+this.Xa;for(b=this.B.bb;b<a;b+=2){var d=65536*Math.random()|0;4==this.ga||7==this.ga?(c=b>>1&255,d=d>>8&~Os,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?Ps|Qs:Rs|Ss)|Ts&d>>8);Nc(this.ka,b,c|d<<8)}Es(this,!0)}};function Ls(a){a.A.bf&wr?(a.Y=a.Kb,a.K=a.A):(a.Y=a.A,a.K=a.yb)}l.save=function(){var a=new Zf(this);a.set(0,Nr(this.Kb));a.set(1,Nr(this.yb));a.set(2,[this.ga,this.ea,this.oa]);a.set(3,Nr(this.A));return a.data()}; a;b+=2){var d=65536*Math.random()|0;4==this.ga||7==this.ga?(c=b>>1&255,d=d>>8&~Os,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?Ps|Qs:Rs|Ss)|Ts&d>>8);Nc(this.ka,b,c|d<<8)}Es(this,!0)}};function Ls(a){a.A.bf&wr?(a.Y=a.Kb,a.K=a.A):(a.Y=a.A,a.K=a.yb)}l.save=function(){var a=new Zf(this);a.set(0,Nr(this.Kb));a.set(1,Nr(this.yb));a.set(2,[this.ga,this.ea,this.oa]);a.set(3,Nr(this.A));return a.data()};
l.restore=function(a){var b=a[2];this.ga=b[0];this.ea=b[1];this.oa=b[2];this.B=null;this.Y=this.Kb=new nr(this,us,a[0]);this.K=this.yb=new nr(this,rs,a[1]);this.A=new nr(this,this.La,a[3],this.sd);this.A.rc&&Ls(this);Ms(this);if(!Us(this))return!1;Vs(this);return!0}; l.restore=function(a){var b=a[2];this.ga=b[0];this.ea=b[1];this.oa=b[2];this.B=null;this.Y=this.Kb=new nr(this,us,a[0]);this.K=this.yb=new nr(this,rs,a[1]);this.A=new nr(this,this.La,a[3],this.sd);this.A.rc&&Ls(this);Ms(this);if(!Us(this))return!1;Vs(this);return!0};
function qs(a,b,c,d){if(d)a.Da("Unable to load font ROM (error "+d+": "+b+")");else{sb(a.ye,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){kb("Empty font ROM: "+b);return}if(1==f.length){kb(f[0]);return}if(8192==f.length)eq(a,f,[6144,0]);else if(2048==f.length)eq(a,f,[0]);else{a.Da("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Da("Font ROM data error: "+g.message);return}(a.L||a.ba)&&Lb(a)}} function qs(a,b,c,d){if(d)a.Da("Unable to load font ROM (error "+d+": "+b+")");else{sb(a.ye,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){kb("Empty font ROM: "+b);return}if(1==f.length){kb(f[0]);return}if(8192==f.length)eq(a,f,[6144,0]);else if(2048==f.length)eq(a,f,[0]);else{a.Da("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Da("Font ROM data error: "+g.message);return}(a.L||a.ba)&&Lb(a)}}
function Ws(a,b){if(1==b)return a.ha[0]=Xs[Rs],a.ha[1]=Xs[Ps],a.ha;if(2==b){var c=a.B.$e;if(a.B===a.A){var d=a.A.Cc[0],c=d&7;d&16&&(c|=8);18!=a.A.Cc[1]&&(c|=32)}a.ha[0]=Xs[c&15];c=c&32?Ys:Zs;for(d=0;d<c.length;d++)a.ha[d+1]=Xs[c[d]];return a.ha}if(a.K===a.yb)return Xs;a.Ga&&b&&!a.ha[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.af,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ha[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.Cc[15]?c.Cc:$s;for(e=0;16>e;e++)f=b[e]&63,k?(f|= function Ws(a,b){if(1==b)return a.ha[0]=Xs[Rs],a.ha[1]=Xs[Ps],a.ha;if(2==b){var c=a.B.$e;if(a.B===a.A){var d=a.A.Cc[0],c=d&7;d&16&&(c|=8);18!=a.A.Cc[1]&&(c|=32)}a.ha[0]=Xs[c&15];c=c&32?Ys:Zs;for(d=0;d<c.length;d++)a.ha[d+1]=Xs[c[d]];return a.ha}if(a.K===a.yb)return Xs;a.Ga&&b&&!a.ha[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.af,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ha[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.Cc[15]?c.Cc:$s;for(e=0;16>e;e++)f=b[e]&63,k?(f|=
(c.Cc[20]&12)<<4,c.Cc[16]&128&&(f&=-49,f|=(c.Cc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ha[e]=[g,h,f,255]}a.Ga=!0}return a.ha}function eq(a,b,c,d){a.wb=b;a.Ua=c;a.Ea=d} (c.Cc[20]&12)<<4,c.Cc[16]&128&&(f&=-49,f|=(c.Cc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ha[e]=[g,h,f,255]}a.Ga=!0}return a.ha}function eq(a,b,c,d){a.wb=b;a.Ua=c;a.Ea=d}
function Ms(a,b){var c=!1;if(window&&a.wb&&(!b||a.I)){b=0;var d=a.Ea?a.Ea:8,e=Ws(a);null!=a.Ua[0]&&at(a,bt,a.Ua[0],b,d,8,a.wb,e)&&(c=!0);b=a.Ea?0:2048;d=a.Ea?a.Ea:9;null!=a.Ua[1]&&(at(a,ct,a.Ua[1],b,d,14,a.wb,dt,et)&&(c=!0),a.Ea&&at(a,a.La,a.Ua[1],0,a.Ea,14,a.wb,e)&&(c=!0))}return c}function at(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ft(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Dd&&ft(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m} function Ms(a,b){var c=!1;if(window&&a.wb&&(!b||a.I)){var d=0,e=a.Ea?a.Ea:8,f=Ws(a);null!=a.Ua[0]&&at(a,bt,a.Ua[0],d,e,8,a.wb,f)&&(c=!0);d=a.Ea?0:2048;e=a.Ea?a.Ea:9;null!=a.Ua[1]&&(at(a,ct,a.Ua[1],d,e,14,a.wb,dt,et)&&(c=!0),a.Ea&&at(a,a.La,a.Ua[1],0,a.Ea,14,a.wb,f)&&(c=!0))}b||(a.aa=-1,a.Aa=-1,a.xa=0);return c}function at(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ft(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Dd&&ft(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function ft(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,v=a.va[b],u=16>h.length?h.length:16;v||(v={Fc:e<<p,Gc:f<<p,Ce:Array(u),Si:h.slice(0,u),kf:k,Ug:Array(u)});for(k=0;k<u;k++){var E=h[k],G=v.Ce[k]?v.Si[k]:[];if(E[0]!==G[0]||E[1]!==G[1]||E[2]!==G[2]){var m=v,G=k,I=p,J=c,T=d,L=e,ua=f,ca=g,xb=[0,0,0,0],za=document.createElement("canvas");za.width=m.Fc<<4;za.height=m.Gc<<4;var cb=za.getContext("2d"),Sa,rb,db,rc=8>ua||!T?ua:8,ib=cb.createImageData(m.Fc,m.Gc);for(Sa=0;256>Sa;Sa++){for(db=0;db<ua;db++)for(var df= function ft(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,v=a.va[b],u=16>h.length?h.length:16;v||(v={Fc:e<<p,Gc:f<<p,Ce:Array(u),Si:h.slice(0,u),kf:k,Ug:Array(u)});for(k=0;k<u;k++){var E=h[k],G=v.Ce[k]?v.Si[k]:[];if(E[0]!==G[0]||E[1]!==G[1]||E[2]!==G[2]){var m=v,G=k,I=p,J=c,T=d,L=e,ua=f,ca=g,xb=[0,0,0,0],za=document.createElement("canvas");za.width=m.Fc<<4;za.height=m.Gc<<4;var cb=za.getContext("2d"),Sa,rb,db,rc=8>ua||!T?ua:8,ib=cb.createImageData(m.Fc,m.Gc);for(Sa=0;256>Sa;Sa++){for(db=0;db<ua;db++)for(var df=
m.kf&&G&1&&db>=ua-2,Ld=ca[db<rc?J+Sa*rc+db:T+Sa*rc+db-rc],ef=0;ef<=I;ef++)for(rb=0;rb<L;rb++){var xg=rb<<I,ff=(db<<I)+ef,yg=df||Ld&128>>(8<=rb&&192<=Sa&&223>=Sa?7:rb)?E:xb;gt(ib,xg,ff,yg);I&&gt(ib,xg+1,ff,yg)}cb.putImageData(ib,(Sa&15)*m.Fc,(Sa>>4)*m.Gc)}m.Ce[G]="#"+q(E[0],2)+q(E[1],2)+q(E[2],2);m.Si[G]=E;m.Ug[G]=za;m=!0}}a.va[b]=v;return m}function ht(a){0<a.xa||0<=a.aa?0>a.Aa&&(a.Aa=0):a.Aa=-1} m.kf&&G&1&&db>=ua-2,Ld=ca[db<rc?J+Sa*rc+db:T+Sa*rc+db-rc],ef=0;ef<=I;ef++)for(rb=0;rb<L;rb++){var xg=rb<<I,ff=(db<<I)+ef,yg=df||Ld&128>>(8<=rb&&192<=Sa&&223>=Sa?7:rb)?E:xb;gt(ib,xg,ff,yg);I&&gt(ib,xg+1,ff,yg)}cb.putImageData(ib,(Sa&15)*m.Fc,(Sa>>4)*m.Gc)}m.Ce[G]="#"+q(E[0],2)+q(E[1],2)+q(E[2],2);m.Si[G]=E;m.Ug[G]=za;m=!0}}a.va[b]=v;return m}function ht(a){0<a.xa||0<=a.aa?0>a.Aa&&(a.Aa=0):a.Aa=-1}
function Vs(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.B.Sa[b])return;var c=a.B.Sa[10],b=c&31,d=a.B.Sa[11]&31,e=a.B.Sa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)it(a);else{c=a.B.Sa[15]+((a.B.Sa[14]&63)<<8);a.aa!=c&&(it(a),a.aa=c);d=d-b+1;if(a.od!=b||a.Hc!=d)a.od=b,a.Hc=d;a.za=e+1;ht(a)}}} function Vs(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.B.Sa[b])return;var c=a.B.Sa[10],b=c&31,d=a.B.Sa[11]&31,e=a.B.Sa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)it(a);else{c=a.B.Sa[15]+((a.B.Sa[14]&63)<<8);a.aa!=c&&(it(a),a.aa=c);d=d-b+1;if(a.od!=b||a.Hc!=d)a.od=b,a.Hc=d;a.za=e+1;ht(a)}}}

View file

@ -97,7 +97,7 @@ function dc(a,b,c){if(!(b&a.C||!c||c&a.C)){for(var d=b>>>a.B;0<c;){var e=a.X[d];
function Zb(a,b,c,d,e){for(var f=0,g=b>>>a.B;0<c&&g<a.X.length;){var h=d[f++];if(!h)break;if(void 0!==e){var l=new u(b),m=l,q=e,y=a.Ea;m.id=h.id|1;m.xe=h.xe;m.size=h.size;q&&(m.type=q,m.H=q==fc);rb?(m.L=h.L,m.K=h.K,m.Fa=h.Fa,m.rd=h.rd,m.T=h.T,bc(m,gc?hc:ic)):(m.T=h.T,bc(m,jc));Rb(m,y,h);h=l}a.X[g++]=h;c-=a.A}}k.Eb=function(a){return this.X[(a&this.D)>>>this.B].mc(a&this.C,a)};function kc(a,b){var c=b&a.C,d=(b&a.D)>>>a.B;return c!=a.C?a.X[d].cf(c,b):a.X[d++].Ad(c,b)|a.X[d&a.L].Ad(0,b+1)<<8} function Zb(a,b,c,d,e){for(var f=0,g=b>>>a.B;0<c&&g<a.X.length;){var h=d[f++];if(!h)break;if(void 0!==e){var l=new u(b),m=l,q=e,y=a.Ea;m.id=h.id|1;m.xe=h.xe;m.size=h.size;q&&(m.type=q,m.H=q==fc);rb?(m.L=h.L,m.K=h.K,m.Fa=h.Fa,m.rd=h.rd,m.T=h.T,bc(m,gc?hc:ic)):(m.T=h.T,bc(m,jc));Rb(m,y,h);h=l}a.X[g++]=h;c-=a.A}}k.Eb=function(a){return this.X[(a&this.D)>>>this.B].mc(a&this.C,a)};function kc(a,b){var c=b&a.C,d=(b&a.D)>>>a.B;return c!=a.C?a.X[d].cf(c,b):a.X[d++].Ad(c,b)|a.X[d&a.L].Ad(0,b+1)<<8}
k.Dc=function(a,b){this.X[(a&this.D)>>>this.B].nc(a&this.C,b&255,a)};function lc(a,b,c){var d=b&a.C,e=(b&a.D)>>>a.B;d!=a.C?a.X[e].wh(d,c&65535,b):(a.X[e++].jf(d,c&255,b),a.X[e&a.L].jf(0,c>>8&255,b+1))} k.Dc=function(a,b){this.X[(a&this.D)>>>this.B].nc(a&this.C,b&255,a)};function lc(a,b,c){var d=b&a.C,e=(b&a.D)>>>a.B;d!=a.C?a.X[e].wh(d,c&65535,b):(a.X[e++].jf(d,c&255,b),a.X[e&a.L].jf(0,c>>8&255,b+1))}
function mc(a,b){var c=0,d=[],e=!a.G&&a.W==a.D;e||Sb(a,!0);for(var f=0;f<a.H;f++){var g=a.X[f];if(b&&g.type!=fc||g.Da||g.oi){d[c++]=f;var h=c++;if(g=g.save()){for(var l=0,m=0,q=[];l<g.length;){for(var y=g[l],w=l+1;w<g.length&&g[w]===y;)w++;q[m++]=w-l;q[m++]=y;l=w}q.length<g.length&&(g=q)}d[h]=g}}e||Sb(a,!1);d[c]=e;return d} function mc(a,b){var c=0,d=[],e=!a.G&&a.W==a.D;e||Sb(a,!0);for(var f=0;f<a.H;f++){var g=a.X[f];if(b&&g.type!=fc||g.Da||g.oi){d[c++]=f;var h=c++;if(g=g.save()){for(var l=0,m=0,q=[];l<g.length;){for(var y=g[l],w=l+1;w<g.length&&g[w]===y;)w++;q[m++]=w-l;q[m++]=y;l=w}q.length<g.length&&(g=q)}d[h]=g}}e||Sb(a,!1);d[c]=e;return d}
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(h)for(var l=+e+d;l<=g;l++)void 0!==f.I[l]?r("Input port "+oa(l,4,!0)+" already registered"):f.I[l]=[h,!1]}}function oc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.M[b]||1,l=1==h?255:2==h?65535:-1,m=l;void 0!==g&&g[0]&&(m=g[0](b,d),void 0===m?m=l:m&=l);e|=m<<f;f+=h<<3;b+=h;c-=h}return e} 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(h)for(var l=+e+d;l<=g;l++)void 0!==f.I[l]?r("Input port "+oa(l,4,!0)+" already registered"):f.I[l]=[h,!1]}}function oc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.M[b]||1,l=1==h?255:2==h?65535:-1,m=l;void 0!==g&&g[0]&&(m=g[0](b,d),null==m?m=l:m&=l);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}
function qc(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(h)for(var l=+e+d;l<=g;l++)void 0!==f.J[l]?r("Output port "+oa(l,4,!0)+" already registered"):f.J[l]=[h,!1]}}function rc(a,b,c,d,e){for(var f=0;0<c;){var g=a.J[b],h=a.O[b]||1,l=1==h?255:2==h?65535:-1,l=(d>>>=f)&l;if(void 0!==g&&g[0])g[0](b,l,e);f+=h<<3;b+=h;c-=h}}function Ub(a,b,c,d,e){b="Memory block error ("+b+": "+oa(c)+","+oa(d)+")";e?a.Ea?a.Ea.message(b):a.log(b):r(b);return!1} function qc(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(h)for(var l=+e+d;l<=g;l++)void 0!==f.J[l]?r("Output port "+oa(l,4,!0)+" already registered"):f.J[l]=[h,!1]}}function rc(a,b,c,d,e){for(var f=0;0<c;){var g=a.J[b],h=a.O[b]||1,l=1==h?255:2==h?65535:-1,l=(d>>>=f)&l;if(void 0!==g&&g[0])g[0](b,l,e);f+=h<<3;b+=h;c-=h}}function Ub(a,b,c,d,e){b="Memory block error ("+b+": "+oa(c)+","+oa(d)+")";e?a.Ea?a.Ea.message(b):a.log(b):r(b);return!1}
var Fb,sc={Fj:20,count:8,Ho:1,type:3},tc=0,uc;for(uc in sc){var vc=sc[uc];sc[uc]={sg:(1<<vc)-1<<tc,shift:tc};tc+=vc}Fb=sc;var Vb=1,Yb=2,ac=3,cc=4,ec=5,wc;if(rb){var xc=new ArrayBuffer(2);(new DataView(xc)).setUint16(0,256,!0);wc=256===(new Uint16Array(xc))[0]}else wc=!1;var gc=wc; var Fb,sc={Fj:20,count:8,Ho:1,type:3},tc=0,uc;for(uc in sc){var vc=sc[uc];sc[uc]={sg:(1<<vc)-1<<tc,shift:tc};tc+=vc}Fb=sc;var Vb=1,Yb=2,ac=3,cc=4,ec=5,wc;if(rb){var xc=new ArrayBuffer(2);(new DataView(xc)).setUint16(0,256,!0);wc=256===(new Uint16Array(xc))[0]}else wc=!1;var gc=wc;
function u(a,b,c,d,e,f){this.id=yc+=2;this.T=null;this.G=0;this.ee=a;this.xe=b;this.size=c||0;this.type=d||zc;this.H=d==fc;this.controller=null;this.F=f;Rb(this);this.Da=this.oi=!1;if(c)if(e)this.controller=e,a=e.ui(a),this.T=a[0],this.G=a[1],bc(this,e.rg());else if(rb)this.L=new ArrayBuffer(c),this.K=new DataView(this.L,0,c),this.Fa=new Uint8Array(this.L,0,c),this.rd=new Uint16Array(this.L,0,c>>1),this.T=new Int32Array(this.L,0,c>>2),bc(this,gc?hc:ic);else{this.T=Array(c>>2);for(e=0;e<this.T.length;e++)this.T[e]= function u(a,b,c,d,e,f){this.id=yc+=2;this.T=null;this.G=0;this.ee=a;this.xe=b;this.size=c||0;this.type=d||zc;this.H=d==fc;this.controller=null;this.F=f;Rb(this);this.Da=this.oi=!1;if(c)if(e)this.controller=e,a=e.ui(a),this.T=a[0],this.G=a[1],bc(this,e.rg());else if(rb)this.L=new ArrayBuffer(c),this.K=new DataView(this.L,0,c),this.Fa=new Uint8Array(this.L,0,c),this.rd=new Uint16Array(this.L,0,c>>1),this.T=new Int32Array(this.L,0,c>>2),bc(this,gc?hc:ic);else{this.T=Array(c>>2);for(e=0;e<this.T.length;e++)this.T[e]=
@ -521,13 +521,13 @@ function Yp(a,b){!b&&a.M&&(a.Hc?a.O.style.width=a.O.style.height="":a.M.style.wi
function jq(a,b){var c=a.D;c&&!a.dc&&(c.addEventListener("touchstart",function(b){nq(a,b,!0)},!1),c.addEventListener("touchmove",function(b){nq(a,b)},!0),c.addEventListener("touchend",function(b){nq(a,b,!1)},!1),a.dc=b,a.bb=a.ib=a.Tc=-1,a.Wb=!1,a.sb=null,a.Vb=!1,a.nd=function(){a.Vb=!0;a.K.ie(oq,!0)})}k.Tf=function(a){this.C&&this.C.Tf(a)}; function jq(a,b){var c=a.D;c&&!a.dc&&(c.addEventListener("touchstart",function(b){nq(a,b,!0)},!1),c.addEventListener("touchmove",function(b){nq(a,b)},!0),c.addEventListener("touchend",function(b){nq(a,b,!1)},!1),a.dc=b,a.bb=a.ib=a.Tc=-1,a.Wb=!1,a.sb=null,a.Vb=!1,a.nd=function(){a.Vb=!0;a.K.ie(oq,!0)})}k.Tf=function(a){this.C&&this.C.Tf(a)};
function nq(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.X/a.O.offsetWidth,l=a.ja/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*l;if(a.dc==lq)c&&mo(a.C,pq[e/(a.ja/3)|0][d/(a.X/3)|0],!0);else if(a.K){g=a.Wb;f=b.timeStamp-a.Tc;!0===c?(a.Wb=500<f,a.Tc=b.timeStamp,a.sb=setTimeout(a.nd,500)):null!=a.sb&&(clearTimeout(a.sb),a.sb= function nq(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.X/a.O.offsetWidth,l=a.ja/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*l;if(a.dc==lq)c&&mo(a.C,pq[e/(a.ja/3)|0][d/(a.X/3)|0],!0);else if(a.K){g=a.Wb;f=b.timeStamp-a.Tc;!0===c?(a.Wb=500<f,a.Tc=b.timeStamp,a.sb=setTimeout(a.nd,500)):null!=a.sb&&(clearTimeout(a.sb),a.sb=
null);void 0===c&&(a.Wb=!1);g||b.preventDefault();if(!1===c){a.Vb?(a.K.ie(oq,!1),a.Vb=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.ie(oq,!0);a.K.ie(oq,!1);return}}if(c||0>a.bb||0>a.ib)a.bb=d,a.ib=e;c=Math.round(d-a.bb);b=Math.round(e-a.ib);a.bb=d;a.ib=e;a.K.tg(c,b,a.bb,a.ib)}}k.Ob=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Nb=function(a){return a?this.save():!0}; null);void 0===c&&(a.Wb=!1);g||b.preventDefault();if(!1===c){a.Vb?(a.K.ie(oq,!1),a.Vb=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.ie(oq,!0);a.K.ie(oq,!1);return}}if(c||0>a.bb||0>a.ib)a.bb=d,a.ib=e;c=Math.round(d-a.bb);b=Math.round(e-a.ib);a.bb=d;a.ib=e;a.K.tg(c,b,a.bb,a.ib)}}k.Ob=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Nb=function(a){return a?this.save():!0};
k.reset=function(){var a=!0,b=0;this.V&&(b=+gk(this.V,zj,void 0));this.ba||(this.Ma=b==hk?cq:$p);this.ca=qq;switch(this.Ma){case Un:b=7;break;case Sn:var c=rq[this.qb];c&&(b=c[0]);b||(b=4);break;case cq:b=hk;this.ca=sq;break;default:b=2}this.ea!==b&&(this.ea=b,a=!0);this.B=null;this.W=this.Bb=new bp(this,cq);this.I=this.rb=new bp(this,$p);this.Ma<Sn?this.A=new bp:(this.A=new bp(this,this.Ma,null,this.Wc),tq(this));uq(this);this.qa=null;this.ya=this.Z=-1;this.ua=0;vq(this,this.ca);if(this.B.Ya&&a){a= k.reset=function(){var a=!0,b=0;this.V&&(b=+gk(this.V,zj,void 0));this.ba||(this.Ma=b==hk?cq:$p);this.ca=qq;switch(this.Ma){case Un:b=7;break;case Sn:var c=rq[this.qb];c&&(b=c[0]);b||(b=4);break;case cq:b=hk;this.ca=sq;break;default:b=2}this.ea!==b&&(this.ea=b,a=!0);this.B=null;this.W=this.Bb=new bp(this,cq);this.I=this.rb=new bp(this,$p);this.Ma<Sn?this.A=new bp:(this.A=new bp(this,this.Ma,null,this.Wc),tq(this));uq(this);this.qa=null;vq(this,this.ca);if(this.B.Ya&&a){a=this.B.Ya+this.Xa;for(b=this.B.Ya;b<
this.B.Ya+this.Xa;for(b=this.B.Ya;b<a;b+=2){var d=65536*Math.random()|0;4==this.ea||7==this.ea?(c=b>>1&255,d=d>>8&~wq,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?xq|yq:zq|Aq)|Bq&d>>8);lc(this.ma,b,c|d<<8)}mq(this,!0)}};function tq(a){a.A.ff&ip?(a.W=a.Bb,a.I=a.A):(a.W=a.A,a.I=a.rb)}k.save=function(){var a=new Te(this);a.set(0,wp(this.Bb));a.set(1,wp(this.rb));a.set(2,[this.ea,this.ca,this.qa]);a.set(3,wp(this.A));return a.data()}; a;b+=2){var d=65536*Math.random()|0;4==this.ea||7==this.ea?(c=b>>1&255,d=d>>8&~wq,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?xq|yq:zq|Aq)|Bq&d>>8);lc(this.ma,b,c|d<<8)}mq(this,!0)}};function tq(a){a.A.ff&ip?(a.W=a.Bb,a.I=a.A):(a.W=a.A,a.I=a.rb)}k.save=function(){var a=new Te(this);a.set(0,wp(this.Bb));a.set(1,wp(this.rb));a.set(2,[this.ea,this.ca,this.qa]);a.set(3,wp(this.A));return a.data()};
k.restore=function(a){var b=a[2];this.ea=b[0];this.ca=b[1];this.qa=b[2];this.B=null;this.W=this.Bb=new bp(this,cq,a[0]);this.I=this.rb=new bp(this,$p,a[1]);this.A=new bp(this,this.Ma,a[3],this.Wc);this.A.Ub&&tq(this);uq(this);if(!Cq(this))return!1;Dq(this);return!0}; k.restore=function(a){var b=a[2];this.ea=b[0];this.ca=b[1];this.qa=b[2];this.B=null;this.W=this.Bb=new bp(this,cq,a[0]);this.I=this.rb=new bp(this,$p,a[1]);this.A=new bp(this,this.Ma,a[3],this.Wc);this.A.Ub&&tq(this);uq(this);if(!Cq(this))return!1;Dq(this);return!0};
function Zp(a,b,c,d){if(d)a.wa("Unable to load font ROM (error "+d+": "+b+")");else{Ya(a.Wd,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(8192==f.length)Tn(a,f,[6144,0]);else if(2048==f.length)Tn(a,f,[0]);else{a.wa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.wa("Font ROM data error: "+g.message);return}(a.J||a.Ea)&&pb(a)}} function Zp(a,b,c,d){if(d)a.wa("Unable to load font ROM (error "+d+": "+b+")");else{Ya(a.Wd,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(8192==f.length)Tn(a,f,[6144,0]);else if(2048==f.length)Tn(a,f,[0]);else{a.wa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.wa("Font ROM data error: "+g.message);return}(a.J||a.Ea)&&pb(a)}}
function Eq(a,b){if(1==b)return a.ga[0]=Fq[zq],a.ga[1]=Fq[xq],a.ga;if(2==b){var c=a.B.ef;if(a.B===a.A){var d=a.A.rc[0],c=d&7;d&16&&(c|=8);18!=a.A.rc[1]&&(c|=32)}a.ga[0]=Fq[c&15];c=c&32?Gq:Hq;for(d=0;d<c.length;d++)a.ga[d+1]=Fq[c[d]];return a.ga}if(a.I===a.rb)return Fq;a.Ga&&b&&!a.ga[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.we,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ga[e]=[g,h,f,255];else{var l=d&&d[255];b=null!=c.rc[15]?c.rc:Iq;for(e=0;16>e;e++)f=b[e]&63,l?(f|= function Eq(a,b){if(1==b)return a.ga[0]=Fq[zq],a.ga[1]=Fq[xq],a.ga;if(2==b){var c=a.B.ef;if(a.B===a.A){var d=a.A.rc[0],c=d&7;d&16&&(c|=8);18!=a.A.rc[1]&&(c|=32)}a.ga[0]=Fq[c&15];c=c&32?Gq:Hq;for(d=0;d<c.length;d++)a.ga[d+1]=Fq[c[d]];return a.ga}if(a.I===a.rb)return Fq;a.Ga&&b&&!a.ga[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.we,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ga[e]=[g,h,f,255];else{var l=d&&d[255];b=null!=c.rc[15]?c.rc:Iq;for(e=0;16>e;e++)f=b[e]&63,l?(f|=
(c.rc[20]&12)<<4,c.rc[16]&128&&(f&=-49,f|=(c.rc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ga[e]=[g,h,f,255]}a.Ga=!0}return a.ga}function Tn(a,b,c,d){a.nb=b;a.Va=c;a.Ca=d} (c.rc[20]&12)<<4,c.rc[16]&128&&(f&=-49,f|=(c.rc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ga[e]=[g,h,f,255]}a.Ga=!0}return a.ga}function Tn(a,b,c,d){a.nb=b;a.Va=c;a.Ca=d}
function uq(a,b){var c=!1;if(window&&a.nb&&(!b||a.G)){b=0;var d=a.Ca?a.Ca:8,e=Eq(a);null!=a.Va[0]&&Jq(a,Kq,a.Va[0],b,d,8,a.nb,e)&&(c=!0);b=a.Ca?0:2048;d=a.Ca?a.Ca:9;null!=a.Va[1]&&(Jq(a,Lq,a.Va[1],b,d,14,a.nb,Mq,Nq)&&(c=!0),a.Ca&&Jq(a,a.Ma,a.Va[1],0,a.Ca,14,a.nb,e)&&(c=!0))}return c}function Jq(a,b,c,d,e,f,g,h,l){var m=!1;null!=c&&(Oq(a,b,c,d,e,f,g,h,l)&&(m=!0),a.md&&Oq(a,b<<1,c,d,e,f,g,h,l)&&(m=!0));return m} function uq(a,b){var c=!1;if(window&&a.nb&&(!b||a.G)){var d=0,e=a.Ca?a.Ca:8,f=Eq(a);null!=a.Va[0]&&Jq(a,Kq,a.Va[0],d,e,8,a.nb,f)&&(c=!0);d=a.Ca?0:2048;e=a.Ca?a.Ca:9;null!=a.Va[1]&&(Jq(a,Lq,a.Va[1],d,e,14,a.nb,Mq,Nq)&&(c=!0),a.Ca&&Jq(a,a.Ma,a.Va[1],0,a.Ca,14,a.nb,f)&&(c=!0))}b||(a.Z=-1,a.ya=-1,a.ua=0);return c}function Jq(a,b,c,d,e,f,g,h,l){var m=!1;null!=c&&(Oq(a,b,c,d,e,f,g,h,l)&&(m=!0),a.md&&Oq(a,b<<1,c,d,e,f,g,h,l)&&(m=!0));return m}
function Oq(a,b,c,d,e,f,g,h,l){var m=!1,q=b&1?0:1,y=a.ta[b],w=16>h.length?h.length:16;y||(y={oc:e<<q,pc:f<<q,ae:Array(w),Xh:h.slice(0,w),De:l,ig:Array(w)});for(l=0;l<w;l++){var z=h[l],B=y.ae[l]?y.Xh[l]:[];if(z[0]!==B[0]||z[1]!==B[1]||z[2]!==B[2]){var m=y,B=l,S=q,X=c,ca=d,$a=e,yb=f,Vh=g,Qt=[0,0,0,0],Pf=document.createElement("canvas");Pf.width=m.oc<<4;Pf.height=m.pc<<4;var Om=Pf.getContext("2d"),Lb,pd,pc,Qf=8>yb||!ca?yb:8,Wh=Om.createImageData(m.oc,m.pc);for(Lb=0;256>Lb;Lb++){for(pc=0;pc<yb;pc++)for(var Rt= function Oq(a,b,c,d,e,f,g,h,l){var m=!1,q=b&1?0:1,y=a.ta[b],w=16>h.length?h.length:16;y||(y={oc:e<<q,pc:f<<q,ae:Array(w),Xh:h.slice(0,w),De:l,ig:Array(w)});for(l=0;l<w;l++){var z=h[l],B=y.ae[l]?y.Xh[l]:[];if(z[0]!==B[0]||z[1]!==B[1]||z[2]!==B[2]){var m=y,B=l,S=q,X=c,ca=d,$a=e,yb=f,Vh=g,Qt=[0,0,0,0],Pf=document.createElement("canvas");Pf.width=m.oc<<4;Pf.height=m.pc<<4;var Om=Pf.getContext("2d"),Lb,pd,pc,Qf=8>yb||!ca?yb:8,Wh=Om.createImageData(m.oc,m.pc);for(Lb=0;256>Lb;Lb++){for(pc=0;pc<yb;pc++)for(var Rt=
m.De&&B&1&&pc>=yb-2,St=Vh[pc<Qf?X+Lb*Qf+pc:ca+Lb*Qf+pc-Qf],Xh=0;Xh<=S;Xh++)for(pd=0;pd<$a;pd++){var Pm=pd<<S,Qm=(pc<<S)+Xh,Rm=Rt||St&128>>(8<=pd&&192<=Lb&&223>=Lb?7:pd)?z:Qt;Pq(Wh,Pm,Qm,Rm);S&&Pq(Wh,Pm+1,Qm,Rm)}Om.putImageData(Wh,(Lb&15)*m.oc,(Lb>>4)*m.pc)}m.ae[B]="#"+oa(z[0],2)+oa(z[1],2)+oa(z[2],2);m.Xh[B]=z;m.ig[B]=Pf;m=!0}}a.ta[b]=y;return m}function Qq(a){0<a.ua||0<=a.Z?0>a.ya&&(a.ya=0):a.ya=-1} m.De&&B&1&&pc>=yb-2,St=Vh[pc<Qf?X+Lb*Qf+pc:ca+Lb*Qf+pc-Qf],Xh=0;Xh<=S;Xh++)for(pd=0;pd<$a;pd++){var Pm=pd<<S,Qm=(pc<<S)+Xh,Rm=Rt||St&128>>(8<=pd&&192<=Lb&&223>=Lb?7:pd)?z:Qt;Pq(Wh,Pm,Qm,Rm);S&&Pq(Wh,Pm+1,Qm,Rm)}Om.putImageData(Wh,(Lb&15)*m.oc,(Lb>>4)*m.pc)}m.ae[B]="#"+oa(z[0],2)+oa(z[1],2)+oa(z[2],2);m.Xh[B]=z;m.ig[B]=Pf;m=!0}}a.ta[b]=y;return m}function Qq(a){0<a.ua||0<=a.Z?0>a.ya&&(a.ya=0):a.ya=-1}
function Dq(a){if(a.G){for(var b=10;15>=b;b++)if(null==a.B.Oa[b])return;var c=a.B.Oa[10],b=c&31,d=a.B.Oa[11]&31,e=a.B.Oa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Rq(a);else{c=a.B.Oa[15]+((a.B.Oa[14]&63)<<8);a.Z!=c&&(Rq(a),a.Z=c);d=d-b+1;if(a.Uc!=b||a.xc!=d)a.Uc=b,a.xc=d;a.xa=e+1;Qq(a)}}}function Rq(a){if(0<=a.Z){if(void 0!==a.L){var b=Sq<<8,c=a.L[a.Z];if(c&b){var c=c&~b,b=a.Z%a.F,d=a.Z/a.F|0;a.G&&a.ta[a.G]&&(a.Ba&&Tq(a,b,d,c,a.Ba),Tq(a,b,d,c));a.L[a.Z]=c}}a.Z=-1}} function Dq(a){if(a.G){for(var b=10;15>=b;b++)if(null==a.B.Oa[b])return;var c=a.B.Oa[10],b=c&31,d=a.B.Oa[11]&31,e=a.B.Oa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Rq(a);else{c=a.B.Oa[15]+((a.B.Oa[14]&63)<<8);a.Z!=c&&(Rq(a),a.Z=c);d=d-b+1;if(a.Uc!=b||a.xc!=d)a.Uc=b,a.xc=d;a.xa=e+1;Qq(a)}}}function Rq(a){if(0<=a.Z){if(void 0!==a.L){var b=Sq<<8,c=a.L[a.Z];if(c&b){var c=c&~b,b=a.Z%a.F,d=a.Z/a.F|0;a.G&&a.ta[a.G]&&(a.Ba&&Tq(a,b,d,c,a.Ba),Tq(a,b,d,c));a.L[a.Z]=c}}a.Z=-1}}

View file

@ -1308,7 +1308,7 @@ class Bus extends Component {
if (aNotify !== undefined) { if (aNotify !== undefined) {
if (aNotify[0]) { if (aNotify[0]) {
dataPort = aNotify[0](port, addrLIP); dataPort = aNotify[0](port, addrLIP);
if (dataPort === undefined) { if (dataPort == null) {
dataPort = maskPort; dataPort = maskPort;
} else { } else {
dataPort &= maskPort; dataPort &= maskPort;

View file

@ -3166,10 +3166,6 @@ class Video extends Component {
this.buildFonts(); this.buildFonts();
this.nMode = null; this.nMode = null;
this.iCellCursor = -1; // initially, there is no visible cursor cell
this.cBlinks = -1; // initially, blinking is not active
this.cBlinkVisible = 0; // no visible blinking characters (yet)
this.setMode(this.nModeDefault); this.setMode(this.nModeDefault);
if (this.cardActive.addrBuffer && fRandomize) { if (this.cardActive.addrBuffer && fRandomize) {
@ -3697,6 +3693,14 @@ class Video extends Component {
} }
} }
} }
if (!fRebuild) {
/*
* Perform some additional initialization common to both reset() and restore() sequences.
*/
this.iCellCursor = -1; // initially, there is no visible cursor cell
this.cBlinks = -1; // initially, blinking is not active
this.cBlinkVisible = 0; // no visible blinking characters (yet)
}
return fChanges; return fChanges;
} }
@ -6399,7 +6403,7 @@ class Video extends Component {
* The IBM VGA ROM makes some hardware determinations based on how the CRTC controller responds when * The IBM VGA ROM makes some hardware determinations based on how the CRTC controller responds when
* the IO_SELECT bit in the Miscellaneous Output Register is cleared; normally, that would mean ports * the IO_SELECT bit in the Miscellaneous Output Register is cleared; normally, that would mean ports
* 0x3B? are decoded and ports 0x3D? are ignored. We didn't used to bother ignoring them, but the * 0x3B? are decoded and ports 0x3D? are ignored. We didn't used to bother ignoring them, but the
* VGA ROM's logic requires it, so now we also check fActive. However, we ignore only CTRC reads; * VGA ROM's logic requires it, so now we also check fActive. However, we ignore only CRTC reads;
* we retain any writes in case that information proves useful later. * we retain any writes in case that information proves useful later.
* *
* Note that returning an undefined value now signals the Bus component to return whatever default value * Note that returning an undefined value now signals the Bus component to return whatever default value
@ -7328,7 +7332,7 @@ Video.TOUCH = {
* Why simulate a SPACE if the tap is in the middle third (center) of the screen? Well, apparently * Why simulate a SPACE if the tap is in the middle third (center) of the screen? Well, apparently
* I didn't explain earlier that the WHOLE reason I originally added KEYGRID support (before it was * I didn't explain earlier that the WHOLE reason I originally added KEYGRID support (before it was
* even called KEYGRID support) was to make the 1985 game "Rogue" (pcjs.org/apps/pcx86/1985/rogue) * even called KEYGRID support) was to make the 1985 game "Rogue" (pcjs.org/apps/pcx86/1985/rogue)
* more fun to play on an iPad, and space is a commonly required key. * more fun to play on an iPad (the space-bar is a commonly required key).
*/ */
Video.KEYGRID = [ Video.KEYGRID = [
[Keyboard.SIMCODE.HOME, Keyboard.SIMCODE.UP, Keyboard.SIMCODE.PGUP], [Keyboard.SIMCODE.HOME, Keyboard.SIMCODE.UP, Keyboard.SIMCODE.PGUP],

View file

@ -110,7 +110,7 @@ function Ec(a,b,c){if(!(b&a.D||!c||c&a.D)){for(var d=b>>>a.A;0<c;){var e=a.aa[d]
function zc(a,b,c,d,e){for(var f=0,g=b>>>a.A;0<c&&g<a.aa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new x(b),m=k,p=e,v=a.ba;m.id=h.id|1;m.we=h.we;m.size=h.size;p&&(m.type=p,m.D=p==Gc);Qb?(m.I=h.I,m.G=h.G,m.Pa=h.Pa,m.Sd=h.Sd,m.X=h.X,Cc(m,Hc?Ic:Jc)):(m.X=h.X,Cc(m,Kc));pc(m,v,h);h=k}a.aa[g++]=h;c-=a.B}}l.Ia=function(a){return this.aa[(a&this.C)>>>this.A].Bc(a&this.D,a)};function Mc(a,b){var c=b&a.D,d=(b&a.C)>>>a.A;return c!=a.D?a.aa[d].Of(c,b):a.aa[d++].$d(c,b)|a.aa[d&a.W].$d(0,b+1)<<8} function zc(a,b,c,d,e){for(var f=0,g=b>>>a.A;0<c&&g<a.aa.length;){var h=d[f++];if(!h)break;if(void 0!==e){var k=new x(b),m=k,p=e,v=a.ba;m.id=h.id|1;m.we=h.we;m.size=h.size;p&&(m.type=p,m.D=p==Gc);Qb?(m.I=h.I,m.G=h.G,m.Pa=h.Pa,m.Sd=h.Sd,m.X=h.X,Cc(m,Hc?Ic:Jc)):(m.X=h.X,Cc(m,Kc));pc(m,v,h);h=k}a.aa[g++]=h;c-=a.B}}l.Ia=function(a){return this.aa[(a&this.C)>>>this.A].Bc(a&this.D,a)};function Mc(a,b){var c=b&a.D,d=(b&a.C)>>>a.A;return c!=a.D?a.aa[d].Of(c,b):a.aa[d++].$d(c,b)|a.aa[d&a.W].$d(0,b+1)<<8}
l.fc=function(a,b){this.aa[(a&this.C)>>>this.A].Dc(a&this.D,b&255,a)};function Nc(a,b,c){var d=b&a.D,e=(b&a.C)>>>a.A;d!=a.D?a.aa[e].ti(d,c&65535,b):(a.aa[e++].cf(d,c&255,b),a.aa[e&a.W].cf(0,c>>8&255,b+1))}l.yj=function(){return null}; l.fc=function(a,b){this.aa[(a&this.C)>>>this.A].Dc(a&this.D,b&255,a)};function Nc(a,b,c){var d=b&a.D,e=(b&a.C)>>>a.A;d!=a.D?a.aa[e].ti(d,c&65535,b):(a.aa[e++].cf(d,c&255,b),a.aa[e&a.W].cf(0,c>>8&255,b+1))}l.yj=function(){return null};
function Oc(a,b){var c=0,d=[],e=!a.J&&a.N==a.C;e||qc(a,!0);for(var f=0;f<a.M;f++){var g=a.aa[f];if(b&&g.type!=Gc||g.Oa||g.sj){d[c++]=f;var h=c++;if(g=g.save()){for(var k=0,m=0,p=[];k<g.length;){for(var v=g[k],u=k+1;u<g.length&&g[u]===v;)u++;p[m++]=u-k;p[m++]=v;k=u}p.length<g.length&&(g=p)}d[h]=g}}e||qc(a,!1);d[c]=e;return d}function Pc(a,b){if(null==b)return a.K=!a.K,a.K;void 0===a.F[b]&&(a.F[b]=[null,!1]);a.F[b][1]=!a.F[b][1];return a.F[b][1]} function Oc(a,b){var c=0,d=[],e=!a.J&&a.N==a.C;e||qc(a,!0);for(var f=0;f<a.M;f++){var g=a.aa[f];if(b&&g.type!=Gc||g.Oa||g.sj){d[c++]=f;var h=c++;if(g=g.save()){for(var k=0,m=0,p=[];k<g.length;){for(var v=g[k],u=k+1;u<g.length&&g[u]===v;)u++;p[m++]=u-k;p[m++]=v;k=u}p.length<g.length&&(g=p)}d[h]=g}}e||qc(a,!1);d[c]=e;return d}function Pc(a,b){if(null==b)return a.K=!a.K,a.K;void 0===a.F[b]&&(a.F[b]=[null,!1]);a.F[b][1]=!a.F[b][1];return a.F[b][1]}
function Qc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.F[k]?kb("Input port "+sa(k)+" already registered"):f.F[k]=[h,!1]}}function Rc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.F[b],h=a.Y[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g?(g[0]&&(m=g[0](b,d),void 0===m?m=k:m&=k),a.ba&&a.K!=g[1]&&Sc(a.ba,b,m)):a.ba&&(Pb(a.ba,a,b,null,d),a.K&&Sc(a.ba,b,m));e|=m<<f;f+=h<<3;b+=h;c-=h}return e} function Qc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.F[k]?kb("Input port "+sa(k)+" already registered"):f.F[k]=[h,!1]}}function Rc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.F[b],h=a.Y[b]||1,k=1==h?255:2==h?65535:-1,m=k;void 0!==g?(g[0]&&(m=g[0](b,d),null==m?m=k:m&=k),a.ba&&a.K!=g[1]&&Sc(a.ba,b,m)):a.ba&&(Pb(a.ba,a,b,null,d),a.K&&Sc(a.ba,b,m));e|=m<<f;f+=h<<3;b+=h;c-=h}return e}
function Tc(a,b){if(null==b)return a.L=!a.L,a.L;void 0===a.G[b]&&(a.G[b]=[null,!1]);a.G[b][1]=!a.G[b][1];return a.G[b][1]}function Uc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.G[k]?kb("Output port "+sa(k)+" already registered"):f.G[k]=[h,!1]}} function Tc(a,b){if(null==b)return a.L=!a.L,a.L;void 0===a.G[b]&&(a.G[b]=[null,!1]);a.G[b][1]=!a.G[b][1];return a.G[b][1]}function Uc(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(h)for(var k=+e+d;k<=g;k++)void 0!==f.G[k]?kb("Output port "+sa(k)+" already registered"):f.G[k]=[h,!1]}}
function Vc(a,b,c,d,e){for(var f=0;0<c;){var g=a.G[b],h=a.Z[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ba&&a.L!=g[1]&&Wc(a.ba,b,k)}else a.ba&&(Pb(a.ba,a,b,k,e),a.L&&Wc(a.ba,b,k));f+=h<<3;b+=h;c-=h}}function tc(a,b,c,d,e){b="Memory block error ("+b+": "+q(c)+","+q(d)+")";e?a.ba?a.ba.message(b):a.log(b):kb(b);return!1}var ec,Xc={Jk:20,count:8,fq:1,type:3},Yc=0,Zc;for(Zc in Xc){var $c=Xc[Zc];Xc[Zc]={ph:(1<<$c)-1<<Yc,shift:Yc};Yc+=$c}ec=Xc; function Vc(a,b,c,d,e){for(var f=0;0<c;){var g=a.G[b],h=a.Z[b]||1,k=1==h?255:2==h?65535:-1,k=(d>>>=f)&k;if(void 0!==g){if(g[0])g[0](b,k,e);a.ba&&a.L!=g[1]&&Wc(a.ba,b,k)}else a.ba&&(Pb(a.ba,a,b,k,e),a.L&&Wc(a.ba,b,k));f+=h<<3;b+=h;c-=h}}function tc(a,b,c,d,e){b="Memory block error ("+b+": "+q(c)+","+q(d)+")";e?a.ba?a.ba.message(b):a.log(b):kb(b);return!1}var ec,Xc={Jk:20,count:8,fq:1,type:3},Yc=0,Zc;for(Zc in Xc){var $c=Xc[Zc];Xc[Zc]={ph:(1<<$c)-1<<Yc,shift:Yc};Yc+=$c}ec=Xc;
var uc=1,yc=2,Bc=3,Dc=4,Fc=5,ad;if(Qb){var bd=new ArrayBuffer(2);(new DataView(bd)).setUint16(0,256,!0);ad=256===(new Uint16Array(bd))[0]}else ad=!1;var Hc=ad; var uc=1,yc=2,Bc=3,Dc=4,Fc=5,ad;if(Qb){var bd=new ArrayBuffer(2);(new DataView(bd)).setUint16(0,256,!0);ad=256===(new Uint16Array(bd))[0]}else ad=!1;var Hc=ad;
@ -557,13 +557,13 @@ function ps(a,b){!b&&a.N&&(a.Tc?a.O.style.width=a.O.style.height="":a.N.style.wi
function Bs(a,b){var c=a.D;c&&!a.tc&&(c.addEventListener("touchstart",function(b){Fs(a,b,!0)},!1),c.addEventListener("touchmove",function(b){Fs(a,b)},!0),c.addEventListener("touchend",function(b){Fs(a,b,!1)},!1),a.tc=b,a.hb=a.ib=a.md=-1,a.lc=!1,a.Db=null,a.kc=!1,a.Qd=function(){a.kc=!0;a.G.Wd(Gs,!0)})}l.Dg=function(a){this.C&&this.C.Dg(a)}; function Bs(a,b){var c=a.D;c&&!a.tc&&(c.addEventListener("touchstart",function(b){Fs(a,b,!0)},!1),c.addEventListener("touchmove",function(b){Fs(a,b)},!0),c.addEventListener("touchend",function(b){Fs(a,b,!1)},!1),a.tc=b,a.hb=a.ib=a.md=-1,a.lc=!1,a.Db=null,a.kc=!1,a.Qd=function(){a.kc=!0;a.G.Wd(Gs,!0)})}l.Dg=function(a){this.C&&this.C.Dg(a)};
function Fs(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.Z/a.O.offsetWidth,k=a.la/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(a.tc==Ds)c&&xq(a.C,Hs[e/(a.la/3)|0][d/(a.Z/3)|0],!0);else if(a.G){g=a.lc;f=b.timeStamp-a.md;!0===c?(a.lc=500<f,a.md=b.timeStamp,a.Db=setTimeout(a.Qd,500)):null!=a.Db&&(clearTimeout(a.Db),a.Db= function Fs(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.Z/a.O.offsetWidth,k=a.la/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*k;if(a.tc==Ds)c&&xq(a.C,Hs[e/(a.la/3)|0][d/(a.Z/3)|0],!0);else if(a.G){g=a.lc;f=b.timeStamp-a.md;!0===c?(a.lc=500<f,a.md=b.timeStamp,a.Db=setTimeout(a.Qd,500)):null!=a.Db&&(clearTimeout(a.Db),a.Db=
null);void 0===c&&(a.lc=!1);g||b.preventDefault();if(!1===c){a.kc?(a.G.Wd(Gs,!1),a.kc=!1,b=!0):b=!1;if(b)return;if(200>f){a.G.Wd(Gs,!0);a.G.Wd(Gs,!1);return}}if(c||0>a.hb||0>a.ib)a.hb=d,a.ib=e;c=Math.round(d-a.hb);b=Math.round(e-a.ib);a.hb=d;a.ib=e;a.G.uf(c,b,a.hb,a.ib)}}l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0}; null);void 0===c&&(a.lc=!1);g||b.preventDefault();if(!1===c){a.kc?(a.G.Wd(Gs,!1),a.kc=!1,b=!0):b=!1;if(b)return;if(200>f){a.G.Wd(Gs,!0);a.G.Wd(Gs,!1);return}}if(c||0>a.hb||0>a.ib)a.hb=d,a.ib=e;c=Math.round(d-a.hb);b=Math.round(e-a.ib);a.hb=d;a.ib=e;a.G.uf(c,b,a.hb,a.ib)}}l.Xb=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};
l.reset=function(){var a=!0,b=0;this.W&&(b=+Vl(this.W,jl,void 0));this.ca||(this.La=b==Wl?us:rs);this.ea=Is;switch(this.La){case fq:b=7;break;case dq:var c=Js[this.xb];c&&(b=c[0]);b||(b=4);break;case us:b=Wl;this.ea=Ks;break;default:b=2}this.ga!==b&&(this.ga=b,a=!0);this.B=null;this.Y=this.Kb=new nr(this,us);this.K=this.yb=new nr(this,rs);this.La<dq?this.A=new nr:(this.A=new nr(this,this.La,null,this.sd),Ls(this));Ms(this);this.oa=null;this.Aa=this.aa=-1;this.xa=0;Ns(this,this.ea);if(this.B.bb&&a){a= l.reset=function(){var a=!0,b=0;this.W&&(b=+Vl(this.W,jl,void 0));this.ca||(this.La=b==Wl?us:rs);this.ea=Is;switch(this.La){case fq:b=7;break;case dq:var c=Js[this.xb];c&&(b=c[0]);b||(b=4);break;case us:b=Wl;this.ea=Ks;break;default:b=2}this.ga!==b&&(this.ga=b,a=!0);this.B=null;this.Y=this.Kb=new nr(this,us);this.K=this.yb=new nr(this,rs);this.La<dq?this.A=new nr:(this.A=new nr(this,this.La,null,this.sd),Ls(this));Ms(this);this.oa=null;Ns(this,this.ea);if(this.B.bb&&a){a=this.B.bb+this.Xa;for(b=this.B.bb;b<
this.B.bb+this.Xa;for(b=this.B.bb;b<a;b+=2){var d=65536*Math.random()|0;4==this.ga||7==this.ga?(c=b>>1&255,d=d>>8&~Os,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?Ps|Qs:Rs|Ss)|Ts&d>>8);Nc(this.ka,b,c|d<<8)}Es(this,!0)}};function Ls(a){a.A.bf&wr?(a.Y=a.Kb,a.K=a.A):(a.Y=a.A,a.K=a.yb)}l.save=function(){var a=new Zf(this);a.set(0,Nr(this.Kb));a.set(1,Nr(this.yb));a.set(2,[this.ga,this.ea,this.oa]);a.set(3,Nr(this.A));return a.data()}; a;b+=2){var d=65536*Math.random()|0;4==this.ga||7==this.ga?(c=b>>1&255,d=d>>8&~Os,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?Ps|Qs:Rs|Ss)|Ts&d>>8);Nc(this.ka,b,c|d<<8)}Es(this,!0)}};function Ls(a){a.A.bf&wr?(a.Y=a.Kb,a.K=a.A):(a.Y=a.A,a.K=a.yb)}l.save=function(){var a=new Zf(this);a.set(0,Nr(this.Kb));a.set(1,Nr(this.yb));a.set(2,[this.ga,this.ea,this.oa]);a.set(3,Nr(this.A));return a.data()};
l.restore=function(a){var b=a[2];this.ga=b[0];this.ea=b[1];this.oa=b[2];this.B=null;this.Y=this.Kb=new nr(this,us,a[0]);this.K=this.yb=new nr(this,rs,a[1]);this.A=new nr(this,this.La,a[3],this.sd);this.A.rc&&Ls(this);Ms(this);if(!Us(this))return!1;Vs(this);return!0}; l.restore=function(a){var b=a[2];this.ga=b[0];this.ea=b[1];this.oa=b[2];this.B=null;this.Y=this.Kb=new nr(this,us,a[0]);this.K=this.yb=new nr(this,rs,a[1]);this.A=new nr(this,this.La,a[3],this.sd);this.A.rc&&Ls(this);Ms(this);if(!Us(this))return!1;Vs(this);return!0};
function qs(a,b,c,d){if(d)a.Da("Unable to load font ROM (error "+d+": "+b+")");else{sb(a.ye,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){kb("Empty font ROM: "+b);return}if(1==f.length){kb(f[0]);return}if(8192==f.length)eq(a,f,[6144,0]);else if(2048==f.length)eq(a,f,[0]);else{a.Da("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Da("Font ROM data error: "+g.message);return}(a.L||a.ba)&&Lb(a)}} function qs(a,b,c,d){if(d)a.Da("Unable to load font ROM (error "+d+": "+b+")");else{sb(a.ye,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){kb("Empty font ROM: "+b);return}if(1==f.length){kb(f[0]);return}if(8192==f.length)eq(a,f,[6144,0]);else if(2048==f.length)eq(a,f,[0]);else{a.Da("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Da("Font ROM data error: "+g.message);return}(a.L||a.ba)&&Lb(a)}}
function Ws(a,b){if(1==b)return a.ha[0]=Xs[Rs],a.ha[1]=Xs[Ps],a.ha;if(2==b){var c=a.B.$e;if(a.B===a.A){var d=a.A.Cc[0],c=d&7;d&16&&(c|=8);18!=a.A.Cc[1]&&(c|=32)}a.ha[0]=Xs[c&15];c=c&32?Ys:Zs;for(d=0;d<c.length;d++)a.ha[d+1]=Xs[c[d]];return a.ha}if(a.K===a.yb)return Xs;a.Ga&&b&&!a.ha[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.af,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ha[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.Cc[15]?c.Cc:$s;for(e=0;16>e;e++)f=b[e]&63,k?(f|= function Ws(a,b){if(1==b)return a.ha[0]=Xs[Rs],a.ha[1]=Xs[Ps],a.ha;if(2==b){var c=a.B.$e;if(a.B===a.A){var d=a.A.Cc[0],c=d&7;d&16&&(c|=8);18!=a.A.Cc[1]&&(c|=32)}a.ha[0]=Xs[c&15];c=c&32?Ys:Zs;for(d=0;d<c.length;d++)a.ha[d+1]=Xs[c[d]];return a.ha}if(a.K===a.yb)return Xs;a.Ga&&b&&!a.ha[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.af,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ha[e]=[g,h,f,255];else{var k=d&&d[255];b=null!=c.Cc[15]?c.Cc:$s;for(e=0;16>e;e++)f=b[e]&63,k?(f|=
(c.Cc[20]&12)<<4,c.Cc[16]&128&&(f&=-49,f|=(c.Cc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ha[e]=[g,h,f,255]}a.Ga=!0}return a.ha}function eq(a,b,c,d){a.wb=b;a.Ua=c;a.Ea=d} (c.Cc[20]&12)<<4,c.Cc[16]&128&&(f&=-49,f|=(c.Cc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ha[e]=[g,h,f,255]}a.Ga=!0}return a.ha}function eq(a,b,c,d){a.wb=b;a.Ua=c;a.Ea=d}
function Ms(a,b){var c=!1;if(window&&a.wb&&(!b||a.I)){b=0;var d=a.Ea?a.Ea:8,e=Ws(a);null!=a.Ua[0]&&at(a,bt,a.Ua[0],b,d,8,a.wb,e)&&(c=!0);b=a.Ea?0:2048;d=a.Ea?a.Ea:9;null!=a.Ua[1]&&(at(a,ct,a.Ua[1],b,d,14,a.wb,dt,et)&&(c=!0),a.Ea&&at(a,a.La,a.Ua[1],0,a.Ea,14,a.wb,e)&&(c=!0))}return c}function at(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ft(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Dd&&ft(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m} function Ms(a,b){var c=!1;if(window&&a.wb&&(!b||a.I)){var d=0,e=a.Ea?a.Ea:8,f=Ws(a);null!=a.Ua[0]&&at(a,bt,a.Ua[0],d,e,8,a.wb,f)&&(c=!0);d=a.Ea?0:2048;e=a.Ea?a.Ea:9;null!=a.Ua[1]&&(at(a,ct,a.Ua[1],d,e,14,a.wb,dt,et)&&(c=!0),a.Ea&&at(a,a.La,a.Ua[1],0,a.Ea,14,a.wb,f)&&(c=!0))}b||(a.aa=-1,a.Aa=-1,a.xa=0);return c}function at(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ft(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Dd&&ft(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function ft(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,v=a.va[b],u=16>h.length?h.length:16;v||(v={Fc:e<<p,Gc:f<<p,Ce:Array(u),Si:h.slice(0,u),kf:k,Ug:Array(u)});for(k=0;k<u;k++){var E=h[k],G=v.Ce[k]?v.Si[k]:[];if(E[0]!==G[0]||E[1]!==G[1]||E[2]!==G[2]){var m=v,G=k,I=p,J=c,T=d,L=e,ua=f,ca=g,xb=[0,0,0,0],za=document.createElement("canvas");za.width=m.Fc<<4;za.height=m.Gc<<4;var cb=za.getContext("2d"),Sa,rb,db,rc=8>ua||!T?ua:8,ib=cb.createImageData(m.Fc,m.Gc);for(Sa=0;256>Sa;Sa++){for(db=0;db<ua;db++)for(var df= function ft(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,v=a.va[b],u=16>h.length?h.length:16;v||(v={Fc:e<<p,Gc:f<<p,Ce:Array(u),Si:h.slice(0,u),kf:k,Ug:Array(u)});for(k=0;k<u;k++){var E=h[k],G=v.Ce[k]?v.Si[k]:[];if(E[0]!==G[0]||E[1]!==G[1]||E[2]!==G[2]){var m=v,G=k,I=p,J=c,T=d,L=e,ua=f,ca=g,xb=[0,0,0,0],za=document.createElement("canvas");za.width=m.Fc<<4;za.height=m.Gc<<4;var cb=za.getContext("2d"),Sa,rb,db,rc=8>ua||!T?ua:8,ib=cb.createImageData(m.Fc,m.Gc);for(Sa=0;256>Sa;Sa++){for(db=0;db<ua;db++)for(var df=
m.kf&&G&1&&db>=ua-2,Ld=ca[db<rc?J+Sa*rc+db:T+Sa*rc+db-rc],ef=0;ef<=I;ef++)for(rb=0;rb<L;rb++){var xg=rb<<I,ff=(db<<I)+ef,yg=df||Ld&128>>(8<=rb&&192<=Sa&&223>=Sa?7:rb)?E:xb;gt(ib,xg,ff,yg);I&&gt(ib,xg+1,ff,yg)}cb.putImageData(ib,(Sa&15)*m.Fc,(Sa>>4)*m.Gc)}m.Ce[G]="#"+q(E[0],2)+q(E[1],2)+q(E[2],2);m.Si[G]=E;m.Ug[G]=za;m=!0}}a.va[b]=v;return m}function ht(a){0<a.xa||0<=a.aa?0>a.Aa&&(a.Aa=0):a.Aa=-1} m.kf&&G&1&&db>=ua-2,Ld=ca[db<rc?J+Sa*rc+db:T+Sa*rc+db-rc],ef=0;ef<=I;ef++)for(rb=0;rb<L;rb++){var xg=rb<<I,ff=(db<<I)+ef,yg=df||Ld&128>>(8<=rb&&192<=Sa&&223>=Sa?7:rb)?E:xb;gt(ib,xg,ff,yg);I&&gt(ib,xg+1,ff,yg)}cb.putImageData(ib,(Sa&15)*m.Fc,(Sa>>4)*m.Gc)}m.Ce[G]="#"+q(E[0],2)+q(E[1],2)+q(E[2],2);m.Si[G]=E;m.Ug[G]=za;m=!0}}a.va[b]=v;return m}function ht(a){0<a.xa||0<=a.aa?0>a.Aa&&(a.Aa=0):a.Aa=-1}
function Vs(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.B.Sa[b])return;var c=a.B.Sa[10],b=c&31,d=a.B.Sa[11]&31,e=a.B.Sa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)it(a);else{c=a.B.Sa[15]+((a.B.Sa[14]&63)<<8);a.aa!=c&&(it(a),a.aa=c);d=d-b+1;if(a.od!=b||a.Hc!=d)a.od=b,a.Hc=d;a.za=e+1;ht(a)}}} function Vs(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.B.Sa[b])return;var c=a.B.Sa[10],b=c&31,d=a.B.Sa[11]&31,e=a.B.Sa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)it(a);else{c=a.B.Sa[15]+((a.B.Sa[14]&63)<<8);a.aa!=c&&(it(a),a.aa=c);d=d-b+1;if(a.od!=b||a.Hc!=d)a.od=b,a.Hc=d;a.za=e+1;ht(a)}}}

File diff suppressed because one or more lines are too long

View file

@ -9462,7 +9462,7 @@ class Bus extends Component {
if (aNotify !== undefined) { if (aNotify !== undefined) {
if (aNotify[0]) { if (aNotify[0]) {
dataPort = aNotify[0](port, addrLIP); dataPort = aNotify[0](port, addrLIP);
if (dataPort === undefined) { if (dataPort == null) {
dataPort = maskPort; dataPort = maskPort;
} else { } else {
dataPort &= maskPort; dataPort &= maskPort;
@ -49588,10 +49588,6 @@ class Video extends Component {
this.buildFonts(); this.buildFonts();
this.nMode = null; this.nMode = null;
this.iCellCursor = -1; // initially, there is no visible cursor cell
this.cBlinks = -1; // initially, blinking is not active
this.cBlinkVisible = 0; // no visible blinking characters (yet)
this.setMode(this.nModeDefault); this.setMode(this.nModeDefault);
if (this.cardActive.addrBuffer && fRandomize) { if (this.cardActive.addrBuffer && fRandomize) {
@ -50119,6 +50115,14 @@ class Video extends Component {
} }
} }
} }
if (!fRebuild) {
/*
* Perform some additional initialization common to both reset() and restore() sequences.
*/
this.iCellCursor = -1; // initially, there is no visible cursor cell
this.cBlinks = -1; // initially, blinking is not active
this.cBlinkVisible = 0; // no visible blinking characters (yet)
}
return fChanges; return fChanges;
} }
@ -52821,7 +52825,7 @@ class Video extends Component {
* The IBM VGA ROM makes some hardware determinations based on how the CRTC controller responds when * The IBM VGA ROM makes some hardware determinations based on how the CRTC controller responds when
* the IO_SELECT bit in the Miscellaneous Output Register is cleared; normally, that would mean ports * the IO_SELECT bit in the Miscellaneous Output Register is cleared; normally, that would mean ports
* 0x3B? are decoded and ports 0x3D? are ignored. We didn't used to bother ignoring them, but the * 0x3B? are decoded and ports 0x3D? are ignored. We didn't used to bother ignoring them, but the
* VGA ROM's logic requires it, so now we also check fActive. However, we ignore only CTRC reads; * VGA ROM's logic requires it, so now we also check fActive. However, we ignore only CRTC reads;
* we retain any writes in case that information proves useful later. * we retain any writes in case that information proves useful later.
* *
* Note that returning an undefined value now signals the Bus component to return whatever default value * Note that returning an undefined value now signals the Bus component to return whatever default value
@ -53750,7 +53754,7 @@ Video.TOUCH = {
* Why simulate a SPACE if the tap is in the middle third (center) of the screen? Well, apparently * Why simulate a SPACE if the tap is in the middle third (center) of the screen? Well, apparently
* I didn't explain earlier that the WHOLE reason I originally added KEYGRID support (before it was * I didn't explain earlier that the WHOLE reason I originally added KEYGRID support (before it was
* even called KEYGRID support) was to make the 1985 game "Rogue" (pcjs.org/apps/pcx86/1985/rogue) * even called KEYGRID support) was to make the 1985 game "Rogue" (pcjs.org/apps/pcx86/1985/rogue)
* more fun to play on an iPad, and space is a commonly required key. * more fun to play on an iPad (the space-bar is a commonly required key).
*/ */
Video.KEYGRID = [ Video.KEYGRID = [
[Keyboard.SIMCODE.HOME, Keyboard.SIMCODE.UP, Keyboard.SIMCODE.PGUP], [Keyboard.SIMCODE.HOME, Keyboard.SIMCODE.UP, Keyboard.SIMCODE.PGUP],

View file

@ -97,7 +97,7 @@ function dc(a,b,c){if(!(b&a.C||!c||c&a.C)){for(var d=b>>>a.B;0<c;){var e=a.X[d];
function Zb(a,b,c,d,e){for(var f=0,g=b>>>a.B;0<c&&g<a.X.length;){var h=d[f++];if(!h)break;if(void 0!==e){var l=new u(b),m=l,q=e,y=a.Ea;m.id=h.id|1;m.xe=h.xe;m.size=h.size;q&&(m.type=q,m.H=q==fc);rb?(m.L=h.L,m.K=h.K,m.Fa=h.Fa,m.rd=h.rd,m.T=h.T,bc(m,gc?hc:ic)):(m.T=h.T,bc(m,jc));Rb(m,y,h);h=l}a.X[g++]=h;c-=a.A}}k.Eb=function(a){return this.X[(a&this.D)>>>this.B].mc(a&this.C,a)};function kc(a,b){var c=b&a.C,d=(b&a.D)>>>a.B;return c!=a.C?a.X[d].cf(c,b):a.X[d++].Ad(c,b)|a.X[d&a.L].Ad(0,b+1)<<8} function Zb(a,b,c,d,e){for(var f=0,g=b>>>a.B;0<c&&g<a.X.length;){var h=d[f++];if(!h)break;if(void 0!==e){var l=new u(b),m=l,q=e,y=a.Ea;m.id=h.id|1;m.xe=h.xe;m.size=h.size;q&&(m.type=q,m.H=q==fc);rb?(m.L=h.L,m.K=h.K,m.Fa=h.Fa,m.rd=h.rd,m.T=h.T,bc(m,gc?hc:ic)):(m.T=h.T,bc(m,jc));Rb(m,y,h);h=l}a.X[g++]=h;c-=a.A}}k.Eb=function(a){return this.X[(a&this.D)>>>this.B].mc(a&this.C,a)};function kc(a,b){var c=b&a.C,d=(b&a.D)>>>a.B;return c!=a.C?a.X[d].cf(c,b):a.X[d++].Ad(c,b)|a.X[d&a.L].Ad(0,b+1)<<8}
k.Dc=function(a,b){this.X[(a&this.D)>>>this.B].nc(a&this.C,b&255,a)};function lc(a,b,c){var d=b&a.C,e=(b&a.D)>>>a.B;d!=a.C?a.X[e].wh(d,c&65535,b):(a.X[e++].jf(d,c&255,b),a.X[e&a.L].jf(0,c>>8&255,b+1))} k.Dc=function(a,b){this.X[(a&this.D)>>>this.B].nc(a&this.C,b&255,a)};function lc(a,b,c){var d=b&a.C,e=(b&a.D)>>>a.B;d!=a.C?a.X[e].wh(d,c&65535,b):(a.X[e++].jf(d,c&255,b),a.X[e&a.L].jf(0,c>>8&255,b+1))}
function mc(a,b){var c=0,d=[],e=!a.G&&a.W==a.D;e||Sb(a,!0);for(var f=0;f<a.H;f++){var g=a.X[f];if(b&&g.type!=fc||g.Da||g.oi){d[c++]=f;var h=c++;if(g=g.save()){for(var l=0,m=0,q=[];l<g.length;){for(var y=g[l],w=l+1;w<g.length&&g[w]===y;)w++;q[m++]=w-l;q[m++]=y;l=w}q.length<g.length&&(g=q)}d[h]=g}}e||Sb(a,!1);d[c]=e;return d} function mc(a,b){var c=0,d=[],e=!a.G&&a.W==a.D;e||Sb(a,!0);for(var f=0;f<a.H;f++){var g=a.X[f];if(b&&g.type!=fc||g.Da||g.oi){d[c++]=f;var h=c++;if(g=g.save()){for(var l=0,m=0,q=[];l<g.length;){for(var y=g[l],w=l+1;w<g.length&&g[w]===y;)w++;q[m++]=w-l;q[m++]=y;l=w}q.length<g.length&&(g=q)}d[h]=g}}e||Sb(a,!1);d[c]=e;return d}
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(h)for(var l=+e+d;l<=g;l++)void 0!==f.I[l]?r("Input port "+oa(l,4,!0)+" already registered"):f.I[l]=[h,!1]}}function oc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.M[b]||1,l=1==h?255:2==h?65535:-1,m=l;void 0!==g&&g[0]&&(m=g[0](b,d),void 0===m?m=l:m&=l);e|=m<<f;f+=h<<3;b+=h;c-=h}return e} 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(h)for(var l=+e+d;l<=g;l++)void 0!==f.I[l]?r("Input port "+oa(l,4,!0)+" already registered"):f.I[l]=[h,!1]}}function oc(a,b,c,d){for(var e=0,f=0;0<c;){var g=a.I[b],h=a.M[b]||1,l=1==h?255:2==h?65535:-1,m=l;void 0!==g&&g[0]&&(m=g[0](b,d),null==m?m=l:m&=l);e|=m<<f;f+=h<<3;b+=h;c-=h}return e}
function qc(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(h)for(var l=+e+d;l<=g;l++)void 0!==f.J[l]?r("Output port "+oa(l,4,!0)+" already registered"):f.J[l]=[h,!1]}}function rc(a,b,c,d,e){for(var f=0;0<c;){var g=a.J[b],h=a.O[b]||1,l=1==h?255:2==h?65535:-1,l=(d>>>=f)&l;if(void 0!==g&&g[0])g[0](b,l,e);f+=h<<3;b+=h;c-=h}}function Ub(a,b,c,d,e){b="Memory block error ("+b+": "+oa(c)+","+oa(d)+")";e?a.Ea?a.Ea.message(b):a.log(b):r(b);return!1} function qc(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(h)for(var l=+e+d;l<=g;l++)void 0!==f.J[l]?r("Output port "+oa(l,4,!0)+" already registered"):f.J[l]=[h,!1]}}function rc(a,b,c,d,e){for(var f=0;0<c;){var g=a.J[b],h=a.O[b]||1,l=1==h?255:2==h?65535:-1,l=(d>>>=f)&l;if(void 0!==g&&g[0])g[0](b,l,e);f+=h<<3;b+=h;c-=h}}function Ub(a,b,c,d,e){b="Memory block error ("+b+": "+oa(c)+","+oa(d)+")";e?a.Ea?a.Ea.message(b):a.log(b):r(b);return!1}
var Fb,sc={Fj:20,count:8,Ho:1,type:3},tc=0,uc;for(uc in sc){var vc=sc[uc];sc[uc]={sg:(1<<vc)-1<<tc,shift:tc};tc+=vc}Fb=sc;var Vb=1,Yb=2,ac=3,cc=4,ec=5,wc;if(rb){var xc=new ArrayBuffer(2);(new DataView(xc)).setUint16(0,256,!0);wc=256===(new Uint16Array(xc))[0]}else wc=!1;var gc=wc; var Fb,sc={Fj:20,count:8,Ho:1,type:3},tc=0,uc;for(uc in sc){var vc=sc[uc];sc[uc]={sg:(1<<vc)-1<<tc,shift:tc};tc+=vc}Fb=sc;var Vb=1,Yb=2,ac=3,cc=4,ec=5,wc;if(rb){var xc=new ArrayBuffer(2);(new DataView(xc)).setUint16(0,256,!0);wc=256===(new Uint16Array(xc))[0]}else wc=!1;var gc=wc;
function u(a,b,c,d,e,f){this.id=yc+=2;this.T=null;this.G=0;this.ee=a;this.xe=b;this.size=c||0;this.type=d||zc;this.H=d==fc;this.controller=null;this.F=f;Rb(this);this.Da=this.oi=!1;if(c)if(e)this.controller=e,a=e.ui(a),this.T=a[0],this.G=a[1],bc(this,e.rg());else if(rb)this.L=new ArrayBuffer(c),this.K=new DataView(this.L,0,c),this.Fa=new Uint8Array(this.L,0,c),this.rd=new Uint16Array(this.L,0,c>>1),this.T=new Int32Array(this.L,0,c>>2),bc(this,gc?hc:ic);else{this.T=Array(c>>2);for(e=0;e<this.T.length;e++)this.T[e]= function u(a,b,c,d,e,f){this.id=yc+=2;this.T=null;this.G=0;this.ee=a;this.xe=b;this.size=c||0;this.type=d||zc;this.H=d==fc;this.controller=null;this.F=f;Rb(this);this.Da=this.oi=!1;if(c)if(e)this.controller=e,a=e.ui(a),this.T=a[0],this.G=a[1],bc(this,e.rg());else if(rb)this.L=new ArrayBuffer(c),this.K=new DataView(this.L,0,c),this.Fa=new Uint8Array(this.L,0,c),this.rd=new Uint16Array(this.L,0,c>>1),this.T=new Int32Array(this.L,0,c>>2),bc(this,gc?hc:ic);else{this.T=Array(c>>2);for(e=0;e<this.T.length;e++)this.T[e]=
@ -521,13 +521,13 @@ function Yp(a,b){!b&&a.M&&(a.Hc?a.O.style.width=a.O.style.height="":a.M.style.wi
function jq(a,b){var c=a.D;c&&!a.dc&&(c.addEventListener("touchstart",function(b){nq(a,b,!0)},!1),c.addEventListener("touchmove",function(b){nq(a,b)},!0),c.addEventListener("touchend",function(b){nq(a,b,!1)},!1),a.dc=b,a.bb=a.ib=a.Tc=-1,a.Wb=!1,a.sb=null,a.Vb=!1,a.nd=function(){a.Vb=!0;a.K.ie(oq,!0)})}k.Tf=function(a){this.C&&this.C.Tf(a)}; function jq(a,b){var c=a.D;c&&!a.dc&&(c.addEventListener("touchstart",function(b){nq(a,b,!0)},!1),c.addEventListener("touchmove",function(b){nq(a,b)},!0),c.addEventListener("touchend",function(b){nq(a,b,!1)},!1),a.dc=b,a.bb=a.ib=a.Tc=-1,a.Wb=!1,a.sb=null,a.Vb=!1,a.nd=function(){a.Vb=!0;a.K.ie(oq,!0)})}k.Tf=function(a){this.C&&this.C.Tf(a)};
function nq(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.X/a.O.offsetWidth,l=a.ja/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*l;if(a.dc==lq)c&&mo(a.C,pq[e/(a.ja/3)|0][d/(a.X/3)|0],!0);else if(a.K){g=a.Wb;f=b.timeStamp-a.Tc;!0===c?(a.Wb=500<f,a.Tc=b.timeStamp,a.sb=setTimeout(a.nd,500)):null!=a.sb&&(clearTimeout(a.sb),a.sb= function nq(a,b,c){var d,e,f=0,g=0;d=a.O;do isNaN(d.offsetLeft)||(f+=d.offsetLeft,g+=d.offsetTop);while(d=d.offsetParent);var h=a.X/a.O.offsetWidth,l=a.ja/a.O.offsetHeight;b.targetTouches&&b.targetTouches.length?(d=b.targetTouches[0].pageX,e=b.targetTouches[0].pageY):(d=b.pageX,e=b.pageY);d=(d-f)*h;e=(e-g)*l;if(a.dc==lq)c&&mo(a.C,pq[e/(a.ja/3)|0][d/(a.X/3)|0],!0);else if(a.K){g=a.Wb;f=b.timeStamp-a.Tc;!0===c?(a.Wb=500<f,a.Tc=b.timeStamp,a.sb=setTimeout(a.nd,500)):null!=a.sb&&(clearTimeout(a.sb),a.sb=
null);void 0===c&&(a.Wb=!1);g||b.preventDefault();if(!1===c){a.Vb?(a.K.ie(oq,!1),a.Vb=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.ie(oq,!0);a.K.ie(oq,!1);return}}if(c||0>a.bb||0>a.ib)a.bb=d,a.ib=e;c=Math.round(d-a.bb);b=Math.round(e-a.ib);a.bb=d;a.ib=e;a.K.tg(c,b,a.bb,a.ib)}}k.Ob=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Nb=function(a){return a?this.save():!0}; null);void 0===c&&(a.Wb=!1);g||b.preventDefault();if(!1===c){a.Vb?(a.K.ie(oq,!1),a.Vb=!1,b=!0):b=!1;if(b)return;if(200>f){a.K.ie(oq,!0);a.K.ie(oq,!1);return}}if(c||0>a.bb||0>a.ib)a.bb=d,a.ib=e;c=Math.round(d-a.bb);b=Math.round(e-a.ib);a.bb=d;a.ib=e;a.K.tg(c,b,a.bb,a.ib)}}k.Ob=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};k.Nb=function(a){return a?this.save():!0};
k.reset=function(){var a=!0,b=0;this.V&&(b=+gk(this.V,zj,void 0));this.ba||(this.Ma=b==hk?cq:$p);this.ca=qq;switch(this.Ma){case Un:b=7;break;case Sn:var c=rq[this.qb];c&&(b=c[0]);b||(b=4);break;case cq:b=hk;this.ca=sq;break;default:b=2}this.ea!==b&&(this.ea=b,a=!0);this.B=null;this.W=this.Bb=new bp(this,cq);this.I=this.rb=new bp(this,$p);this.Ma<Sn?this.A=new bp:(this.A=new bp(this,this.Ma,null,this.Wc),tq(this));uq(this);this.qa=null;this.ya=this.Z=-1;this.ua=0;vq(this,this.ca);if(this.B.Ya&&a){a= k.reset=function(){var a=!0,b=0;this.V&&(b=+gk(this.V,zj,void 0));this.ba||(this.Ma=b==hk?cq:$p);this.ca=qq;switch(this.Ma){case Un:b=7;break;case Sn:var c=rq[this.qb];c&&(b=c[0]);b||(b=4);break;case cq:b=hk;this.ca=sq;break;default:b=2}this.ea!==b&&(this.ea=b,a=!0);this.B=null;this.W=this.Bb=new bp(this,cq);this.I=this.rb=new bp(this,$p);this.Ma<Sn?this.A=new bp:(this.A=new bp(this,this.Ma,null,this.Wc),tq(this));uq(this);this.qa=null;vq(this,this.ca);if(this.B.Ya&&a){a=this.B.Ya+this.Xa;for(b=this.B.Ya;b<
this.B.Ya+this.Xa;for(b=this.B.Ya;b<a;b+=2){var d=65536*Math.random()|0;4==this.ea||7==this.ea?(c=b>>1&255,d=d>>8&~wq,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?xq|yq:zq|Aq)|Bq&d>>8);lc(this.ma,b,c|d<<8)}mq(this,!0)}};function tq(a){a.A.ff&ip?(a.W=a.Bb,a.I=a.A):(a.W=a.A,a.I=a.rb)}k.save=function(){var a=new Te(this);a.set(0,wp(this.Bb));a.set(1,wp(this.rb));a.set(2,[this.ea,this.ca,this.qa]);a.set(3,wp(this.A));return a.data()}; a;b+=2){var d=65536*Math.random()|0;4==this.ea||7==this.ea?(c=b>>1&255,d=d>>8&~wq,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?xq|yq:zq|Aq)|Bq&d>>8);lc(this.ma,b,c|d<<8)}mq(this,!0)}};function tq(a){a.A.ff&ip?(a.W=a.Bb,a.I=a.A):(a.W=a.A,a.I=a.rb)}k.save=function(){var a=new Te(this);a.set(0,wp(this.Bb));a.set(1,wp(this.rb));a.set(2,[this.ea,this.ca,this.qa]);a.set(3,wp(this.A));return a.data()};
k.restore=function(a){var b=a[2];this.ea=b[0];this.ca=b[1];this.qa=b[2];this.B=null;this.W=this.Bb=new bp(this,cq,a[0]);this.I=this.rb=new bp(this,$p,a[1]);this.A=new bp(this,this.Ma,a[3],this.Wc);this.A.Ub&&tq(this);uq(this);if(!Cq(this))return!1;Dq(this);return!0}; k.restore=function(a){var b=a[2];this.ea=b[0];this.ca=b[1];this.qa=b[2];this.B=null;this.W=this.Bb=new bp(this,cq,a[0]);this.I=this.rb=new bp(this,$p,a[1]);this.A=new bp(this,this.Ma,a[3],this.Wc);this.A.Ub&&tq(this);uq(this);if(!Cq(this))return!1;Dq(this);return!0};
function Zp(a,b,c,d){if(d)a.wa("Unable to load font ROM (error "+d+": "+b+")");else{Ya(a.Wd,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(8192==f.length)Tn(a,f,[6144,0]);else if(2048==f.length)Tn(a,f,[0]);else{a.wa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.wa("Font ROM data error: "+g.message);return}(a.J||a.Ea)&&pb(a)}} function Zp(a,b,c,d){if(d)a.wa("Unable to load font ROM (error "+d+": "+b+")");else{Ya(a.Wd,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){r("Empty font ROM: "+b);return}if(1==f.length){r(f[0]);return}if(8192==f.length)Tn(a,f,[6144,0]);else if(2048==f.length)Tn(a,f,[0]);else{a.wa("Unrecognized font data length ("+f.length+")");return}}catch(g){a.wa("Font ROM data error: "+g.message);return}(a.J||a.Ea)&&pb(a)}}
function Eq(a,b){if(1==b)return a.ga[0]=Fq[zq],a.ga[1]=Fq[xq],a.ga;if(2==b){var c=a.B.ef;if(a.B===a.A){var d=a.A.rc[0],c=d&7;d&16&&(c|=8);18!=a.A.rc[1]&&(c|=32)}a.ga[0]=Fq[c&15];c=c&32?Gq:Hq;for(d=0;d<c.length;d++)a.ga[d+1]=Fq[c[d]];return a.ga}if(a.I===a.rb)return Fq;a.Ga&&b&&!a.ga[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.we,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ga[e]=[g,h,f,255];else{var l=d&&d[255];b=null!=c.rc[15]?c.rc:Iq;for(e=0;16>e;e++)f=b[e]&63,l?(f|= function Eq(a,b){if(1==b)return a.ga[0]=Fq[zq],a.ga[1]=Fq[xq],a.ga;if(2==b){var c=a.B.ef;if(a.B===a.A){var d=a.A.rc[0],c=d&7;d&16&&(c|=8);18!=a.A.rc[1]&&(c|=32)}a.ga[0]=Fq[c&15];c=c&32?Gq:Hq;for(d=0;d<c.length;d++)a.ga[d+1]=Fq[c[d]];return a.ga}if(a.I===a.rb)return Fq;a.Ga&&b&&!a.ga[16]&&(a.Ga=!1);if(!a.Ga){var c=a.A,d=c.we,e,f,g,h;if(8==b)for(e=0;256>e;e++)f=d[e]||0,g=f<<2&252,h=f>>4&252,f=f>>10&252,a.ga[e]=[g,h,f,255];else{var l=d&&d[255];b=null!=c.rc[15]?c.rc:Iq;for(e=0;16>e;e++)f=b[e]&63,l?(f|=
(c.rc[20]&12)<<4,c.rc[16]&128&&(f&=-49,f|=(c.rc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ga[e]=[g,h,f,255]}a.Ga=!0}return a.ga}function Tn(a,b,c,d){a.nb=b;a.Va=c;a.Ca=d} (c.rc[20]&12)<<4,c.rc[16]&128&&(f&=-49,f|=(c.rc[20]&3)<<4),f=d[f],g=f<<2&252,h=f>>4&252,f=f>>10&252):(g=(f&4?170:0)|(f&32?85:0),h=(f&2?170:0)|(f&16?85:0),f=(f&1?170:0)|(f&8?85:0)),a.ga[e]=[g,h,f,255]}a.Ga=!0}return a.ga}function Tn(a,b,c,d){a.nb=b;a.Va=c;a.Ca=d}
function uq(a,b){var c=!1;if(window&&a.nb&&(!b||a.G)){b=0;var d=a.Ca?a.Ca:8,e=Eq(a);null!=a.Va[0]&&Jq(a,Kq,a.Va[0],b,d,8,a.nb,e)&&(c=!0);b=a.Ca?0:2048;d=a.Ca?a.Ca:9;null!=a.Va[1]&&(Jq(a,Lq,a.Va[1],b,d,14,a.nb,Mq,Nq)&&(c=!0),a.Ca&&Jq(a,a.Ma,a.Va[1],0,a.Ca,14,a.nb,e)&&(c=!0))}return c}function Jq(a,b,c,d,e,f,g,h,l){var m=!1;null!=c&&(Oq(a,b,c,d,e,f,g,h,l)&&(m=!0),a.md&&Oq(a,b<<1,c,d,e,f,g,h,l)&&(m=!0));return m} function uq(a,b){var c=!1;if(window&&a.nb&&(!b||a.G)){var d=0,e=a.Ca?a.Ca:8,f=Eq(a);null!=a.Va[0]&&Jq(a,Kq,a.Va[0],d,e,8,a.nb,f)&&(c=!0);d=a.Ca?0:2048;e=a.Ca?a.Ca:9;null!=a.Va[1]&&(Jq(a,Lq,a.Va[1],d,e,14,a.nb,Mq,Nq)&&(c=!0),a.Ca&&Jq(a,a.Ma,a.Va[1],0,a.Ca,14,a.nb,f)&&(c=!0))}b||(a.Z=-1,a.ya=-1,a.ua=0);return c}function Jq(a,b,c,d,e,f,g,h,l){var m=!1;null!=c&&(Oq(a,b,c,d,e,f,g,h,l)&&(m=!0),a.md&&Oq(a,b<<1,c,d,e,f,g,h,l)&&(m=!0));return m}
function Oq(a,b,c,d,e,f,g,h,l){var m=!1,q=b&1?0:1,y=a.ta[b],w=16>h.length?h.length:16;y||(y={oc:e<<q,pc:f<<q,ae:Array(w),Xh:h.slice(0,w),De:l,ig:Array(w)});for(l=0;l<w;l++){var z=h[l],B=y.ae[l]?y.Xh[l]:[];if(z[0]!==B[0]||z[1]!==B[1]||z[2]!==B[2]){var m=y,B=l,S=q,X=c,ca=d,$a=e,yb=f,Vh=g,Qt=[0,0,0,0],Pf=document.createElement("canvas");Pf.width=m.oc<<4;Pf.height=m.pc<<4;var Om=Pf.getContext("2d"),Lb,pd,pc,Qf=8>yb||!ca?yb:8,Wh=Om.createImageData(m.oc,m.pc);for(Lb=0;256>Lb;Lb++){for(pc=0;pc<yb;pc++)for(var Rt= function Oq(a,b,c,d,e,f,g,h,l){var m=!1,q=b&1?0:1,y=a.ta[b],w=16>h.length?h.length:16;y||(y={oc:e<<q,pc:f<<q,ae:Array(w),Xh:h.slice(0,w),De:l,ig:Array(w)});for(l=0;l<w;l++){var z=h[l],B=y.ae[l]?y.Xh[l]:[];if(z[0]!==B[0]||z[1]!==B[1]||z[2]!==B[2]){var m=y,B=l,S=q,X=c,ca=d,$a=e,yb=f,Vh=g,Qt=[0,0,0,0],Pf=document.createElement("canvas");Pf.width=m.oc<<4;Pf.height=m.pc<<4;var Om=Pf.getContext("2d"),Lb,pd,pc,Qf=8>yb||!ca?yb:8,Wh=Om.createImageData(m.oc,m.pc);for(Lb=0;256>Lb;Lb++){for(pc=0;pc<yb;pc++)for(var Rt=
m.De&&B&1&&pc>=yb-2,St=Vh[pc<Qf?X+Lb*Qf+pc:ca+Lb*Qf+pc-Qf],Xh=0;Xh<=S;Xh++)for(pd=0;pd<$a;pd++){var Pm=pd<<S,Qm=(pc<<S)+Xh,Rm=Rt||St&128>>(8<=pd&&192<=Lb&&223>=Lb?7:pd)?z:Qt;Pq(Wh,Pm,Qm,Rm);S&&Pq(Wh,Pm+1,Qm,Rm)}Om.putImageData(Wh,(Lb&15)*m.oc,(Lb>>4)*m.pc)}m.ae[B]="#"+oa(z[0],2)+oa(z[1],2)+oa(z[2],2);m.Xh[B]=z;m.ig[B]=Pf;m=!0}}a.ta[b]=y;return m}function Qq(a){0<a.ua||0<=a.Z?0>a.ya&&(a.ya=0):a.ya=-1} m.De&&B&1&&pc>=yb-2,St=Vh[pc<Qf?X+Lb*Qf+pc:ca+Lb*Qf+pc-Qf],Xh=0;Xh<=S;Xh++)for(pd=0;pd<$a;pd++){var Pm=pd<<S,Qm=(pc<<S)+Xh,Rm=Rt||St&128>>(8<=pd&&192<=Lb&&223>=Lb?7:pd)?z:Qt;Pq(Wh,Pm,Qm,Rm);S&&Pq(Wh,Pm+1,Qm,Rm)}Om.putImageData(Wh,(Lb&15)*m.oc,(Lb>>4)*m.pc)}m.ae[B]="#"+oa(z[0],2)+oa(z[1],2)+oa(z[2],2);m.Xh[B]=z;m.ig[B]=Pf;m=!0}}a.ta[b]=y;return m}function Qq(a){0<a.ua||0<=a.Z?0>a.ya&&(a.ya=0):a.ya=-1}
function Dq(a){if(a.G){for(var b=10;15>=b;b++)if(null==a.B.Oa[b])return;var c=a.B.Oa[10],b=c&31,d=a.B.Oa[11]&31,e=a.B.Oa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Rq(a);else{c=a.B.Oa[15]+((a.B.Oa[14]&63)<<8);a.Z!=c&&(Rq(a),a.Z=c);d=d-b+1;if(a.Uc!=b||a.xc!=d)a.Uc=b,a.xc=d;a.xa=e+1;Qq(a)}}}function Rq(a){if(0<=a.Z){if(void 0!==a.L){var b=Sq<<8,c=a.L[a.Z];if(c&b){var c=c&~b,b=a.Z%a.F,d=a.Z/a.F|0;a.G&&a.ta[a.G]&&(a.Ba&&Tq(a,b,d,c,a.Ba),Tq(a,b,d,c));a.L[a.Z]=c}}a.Z=-1}} function Dq(a){if(a.G){for(var b=10;15>=b;b++)if(null==a.B.Oa[b])return;var c=a.B.Oa[10],b=c&31,d=a.B.Oa[11]&31,e=a.B.Oa[9]&31,f=!1;a.B===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)Rq(a);else{c=a.B.Oa[15]+((a.B.Oa[14]&63)<<8);a.Z!=c&&(Rq(a),a.Z=c);d=d-b+1;if(a.Uc!=b||a.xc!=d)a.Uc=b,a.xc=d;a.xa=e+1;Qq(a)}}}function Rq(a){if(0<=a.Z){if(void 0!==a.L){var b=Sq<<8,c=a.L[a.Z];if(c&b){var c=c&~b,b=a.Z%a.F,d=a.Z/a.F|0;a.G&&a.ta[a.G]&&(a.Ba&&Tq(a,b,d,c,a.Ba),Tq(a,b,d,c));a.L[a.Z]=c}}a.Z=-1}}

File diff suppressed because one or more lines are too long