Added smoothing control to both PCjs and PC8080 (setting it to false should probably be the new default)
It can be controlled with a new "smoothing" attribute on the <video> component and/or overridden with a "smoothing" URL parameter set to either "true" or "false"
This commit is contained in:
parent
5fbcc034e3
commit
c31f6222a1
12 changed files with 666 additions and 426 deletions
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<video id="videoEGA" model="ega" memory="0x20000" screenwidth="1280" screenheight="700" scale="true" touchscreen="mouse" autolock="true" pos="center" padding="8px">
|
||||
<video id="videoEGA" model="ega" memory="0x20000" screenWidth="1280" screenHeight="700" scale="true" smoothing="false" touchscreen="mouse" autoLock="true" pos="center" padding="8px">
|
||||
<comment>
|
||||
If [Wikipedia](https://en.wikipedia.org/wiki/Enhanced_Graphics_Adapter) is correct that the IBM EGA
|
||||
(presumably when paired with an IBM 5154 EGA monitor) has a "pixel aspect ratio" of 1:1.37 at its highest
|
||||
|
|
|
|||
|
|
@ -9,9 +9,12 @@
|
|||
<rom id="romF" addr="0x1000" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-F.json"/>
|
||||
<rom id="romE" addr="0x1800" size="0x0800" file="/devices/pc8080/rom/invaders/INVADERS-E.json"/>
|
||||
<ram id="ram" addr="0x2000" size="0x0400"/>
|
||||
<video id="video" screenWidth="896" screenHeight="1024" screenRotate="90" bufferAddr="0x2400" bufferCols="256" bufferRows="224" bufferBits="1" bufferLeft="0" interruptRate="120" width="40%" pos="left" padding="8px">
|
||||
<video id="video" screenWidth="896" screenHeight="1024" screenRotate="90" smoothing="false" bufferAddr="0x2400" bufferCols="256" bufferRows="224" bufferBits="1" bufferLeft="0" interruptRate="120" width="40%" pos="left" padding="8px">
|
||||
<menu>
|
||||
<title>224x256 Screen (Rotated)</title>
|
||||
<control type="container" pos="right">
|
||||
<control type="button" binding="fullScreen" padleft="8px;line-height:1em">Full Screen</control>
|
||||
</control>
|
||||
</menu>
|
||||
</video>
|
||||
<chipset id="chipset" model="SI1978"/>
|
||||
|
|
|
|||
|
|
@ -1092,6 +1092,12 @@
|
|||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="smoothing">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@smoothing"><xsl:value-of select="@smoothing"/></xsl:when>
|
||||
<xsl:otherwise>null</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="interruptRate">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@interruptRate"><xsl:value-of select="@interruptRate"/></xsl:when>
|
||||
|
|
@ -1107,7 +1113,7 @@
|
|||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">video</xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,screenColor:'<xsl:value-of select="$screenColor"/>',screenRotate:<xsl:value-of select="$screenRotate"/>,bufferAddr:<xsl:value-of select="$bufferAddr"/>,bufferCols:<xsl:value-of select="$bufferCols"/>,bufferRows:<xsl:value-of select="$bufferRows"/>,bufferBits:<xsl:value-of select="$bufferBits"/>,bufferLeft:<xsl:value-of select="$bufferLeft"/>,bufferRotate:<xsl:value-of select="$bufferRotate"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',touchScreen:'<xsl:value-of select="$touchScreen"/>',autoLock:<xsl:value-of select="$autoLock"/>,aspectRatio:<xsl:value-of select="$aspectRatio"/>,interruptRate:<xsl:value-of select="$interruptRate"/>,refreshRate:<xsl:value-of select="$refreshRate"/></xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,screenColor:'<xsl:value-of select="$screenColor"/>',screenRotate:<xsl:value-of select="$screenRotate"/>,bufferAddr:<xsl:value-of select="$bufferAddr"/>,bufferCols:<xsl:value-of select="$bufferCols"/>,bufferRows:<xsl:value-of select="$bufferRows"/>,bufferBits:<xsl:value-of select="$bufferBits"/>,bufferLeft:<xsl:value-of select="$bufferLeft"/>,bufferRotate:<xsl:value-of select="$bufferRotate"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',touchScreen:'<xsl:value-of select="$touchScreen"/>',autoLock:<xsl:value-of select="$autoLock"/>,aspectRatio:<xsl:value-of select="$aspectRatio"/>,smoothing:<xsl:value-of select="$smoothing"/>,interruptRate:<xsl:value-of select="$interruptRate"/>,refreshRate:<xsl:value-of select="$refreshRate"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ qj:25,nj:20,pj:28,Nj:13,Pj:21,Mj:16,Oj:24,sj:13,uj:21,rj:16,tj:24,Sf:2,Rf:7,Ph:5
|
|||
Ab.prototype.toString=function(){this.B||(this.B="#"+r(this.A[0],2)+r(this.A[1],2)+r(this.A[2],2));return this.B};function Bb(a,b,c,d){this.x=a;this.y=b;this.ad=c;this.A=d}Bb.prototype.contains=function(a,b){return a>=this.x&&a<this.x+this.ad&&b>=this.y&&b<this.y+this.A};function Cb(a,b,c,d){void 0===d&&(d=b>=c>>2);d?(b=new Bb(a.x,a.y,a.ad,a.A*b/c|0),a.y+=b.A,a.A-=b.A):(b=new Bb(a.x,a.y,a.ad*b/c|0,a.A),a.x+=b.ad,a.ad-=b.ad);return b}m=zb.prototype;
|
||||
m.Pb=function(a,b,c,d){return this.V&&this.V.Pb(a,b,c,d)||this.F&&this.F.Pb(a,b,c,d)||this.B&&this.B.Pb(a,b,c,d)||this.ha&&this.ha.Pb(a,b,c,d)?!0:this.parent.Pb.call(this,a,b,c,d)};m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;this.B=Eb(a,"Keyboard")};m.ic=function(a,b){b||Fb();return!0};m.hc=function(){return!0};m.je=function(a,b){a.button||(this.fa=b?0:-1,Gb(this,a,b))};m.Hf=function(a){Gb(this,a)};
|
||||
function Gb(a,b,c){var d=1280/null.offsetWidth,e=720/null.offsetHeight,f=null.getBoundingClientRect(),d=(b.clientX-f.left)*d|0;b=(b.clientY-f.top)*e|0;null==c&&(a.fa||(a.fa=Math.abs(a.L-d)>Math.abs(a.W-b)?1:2),1==a.fa?b=a.W:2==a.fa&&(d=a.L));a.L=d;a.W=b;if(0<=d&&1280>d&&0<=b&&720>b){a:{c=d;if(960>c&&a.A&&a.A.Pe)for(f=0;f<a.A.Pe.length;f++)if(e=a.A.Pe[f],e.contains(c,b)){c-=e.x;b-=e.y;var d=a.A.Af[f],g=ta(Hb.$j,a.A.Rg[d.Qk]),f=g*a.ea.Sb,d=(g+d.Ud)*a.ea.Sb-1;0<b&&(f+=e.ad*(b-1)*a.ya);f+=c*a.ya;f|=0;
|
||||
f>d&&(f=d);c=f;break a}c=-1}if(-1!==c&&(c&=-16,c!=a.Ca)){b=c;if(a.context&&a.ja&&a.ka){e=a.ja.width;a.ka.fillStyle="black";a.ka.fillRect(0,360,e,360);Ib(a,378,a.ja,a.ka);a.pa=a.Ea.width/24|0;if(null==b)Jb(a,"Mouse over memory to dump");else for(Jb(a,"0x"+r(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ea;var k=b++;h=h.sa[(k&h.Gb)>>>h.La].se(k&h.A,k);Jb(a,r(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}Jb(a,d,null,0,1)}a.context.drawImage(a.ja,0,360,e,360,a.rb,a.Db,a.Pa,a.cb)}a.Ca=
|
||||
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&&a.ka){e=a.ia.width;a.ka.fillStyle="black";a.ka.fillRect(0,360,e,360);Ib(a,378,a.ia,a.ka);a.pa=a.Ea.width/24|0;if(null==b)Jb(a,"Mouse over memory to dump");else for(Jb(a,"0x"+r(b),null,0,1),f=1;16>=f;f++){d="";for(g=1;8>=g;g++){var h;h=a.ea;var k=b++;h=h.sa[(k&h.Gb)>>>h.La].se(k&h.A,k);Jb(a,r(h,2),null,1);d+=32<=h&&128>h?String.fromCharCode(h):"."}Jb(a,d,null,0,1)}a.context.drawImage(a.ia,0,360,e,360,a.rb,a.Db,a.Pa,a.cb)}a.Ca=
|
||||
c}}}m.qd=function(){};function Kb(a,b,c,d){a.A.Af[a.A.Ai++]={Qk:b,Ud:c,type:d};return sa(Hb,b,c,0,d)}function Ib(a,b,c,d){var e,f=null.style.color,g=a.Oa=10;a.C=g;a.U=b;a.X=a.wa=18;e||(e=a.ua||a.wa+"px Monaco, Lucida Console, Courier New");a.ga=a.ua=e;c&&(a.Ea=c);d&&(a.N=d,a.Fa=f||"white")}
|
||||
function Jb(a,b,c,d,e){a.N.font=a.ga;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+=r(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.X+2)*(e||1))}function Fb(){for(var a=!1,b=nb(document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=jb(d),f=hb(e.id);f||(a=!0,f=new zb(e));mb(f,d);a&&rb(f)}}Qa(Fb);
|
||||
function Lb(a,b,c){Ua.call(this,"Bus",a,Lb);this.F=b;this.ha=c;this.N=a.busWidth||20;this.X=Math.pow(2,this.N);this.xg=this.Gb=this.X-1|0;this.La=32==this.N||20>=this.N?12:24>=this.N?14:15;this.Sb=1<<this.La;this.ga=this.Sb>>2;this.A=this.Sb-1;this.U=this.X/this.Sb|0;this.ea=this.U-1;this.B=[];this.C=[];this.L=this.W=!1;this.aa=[];this.fa=[];a=new B;Mb(a,this.ha);this.sa=Array(this.U);for(b=0;b<this.U;b++)this.sa[b]=a;a=this.F;b=this.sa;c=this.La;a.ld=a.sa=b;a.La=c;a.Sb=1<<a.La;a.Fa=a.Sb-1;a.Gd=b.length;
|
||||
|
|
@ -55,7 +55,7 @@ function mc(a,b,c,d,e){for(var f=0;0<c;){var g=a.C[b],h=a.fa[b]||1,k=1==h?255:2=
|
|||
function B(a,b,c,d,e,f){this.id=qc+=2;this.da=null;this.C=0;this.Da=a;this.Ne=b;this.size=c||0;this.type=d||rc;this.N=d==$b;this.controller=null;this.F=f;Mb(this);this.Wa=this.Ni=!1;if(c)if(e)this.controller=e,a=e.Ri(a),this.da=a[0],this.C=a[1],Yb(this,e.gh());else if(vb)this.V=new ArrayBuffer(c),this.qa=new DataView(this.V,0,c),this.Ya=new Uint8Array(this.V,0,c),this.fe=new Uint16Array(this.V,0,c>>1),this.da=new Int32Array(this.V,0,c>>2),Yb(this,ac?bc:cc);else{this.da=Array(c>>2);for(e=0;e<this.da.length;e++)this.da[e]=
|
||||
0;Yb(this,dc)}else Yb(this)}var rc=0,$b=2,sc="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),xc=["black","blue","green","cyan"],qc=0;function yc(a){vb&&!ac&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
|
||||
B.prototype={constructor:B,parent:null,hh:function(a){this.Da=a},save:function(){var a,b;if(this.controller)a=null;else if(vb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.qa.getInt32(b<<2,!0);else a=this.da;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(vb)for(b=0;b<a.length;b++)this.qa.setInt32(b<<2,a[b],!0);else this.da=a;return this.Wa=!0}return!1},Sd:function(a,b,c){b?0===this.Ue++&&(c&&(this.F=c),Bc(this,Ac,!1)):0===this.Te++&&
|
||||
(c&&(this.F=c),zc(this,Ac,!1))},ja:function(){this.ha&&A(this.ha,129)&&this.ha.message("attempt to read invalid block %"+r(this.Da),!0);return 255},L:function(a,b){this.ha&&A(this.ha,129)&&this.ha.message("attempt to write "+u(b)+" to invalid block %"+r(this.Da),!0)},ka:function(a,b){return this.jc(a++,b++)|this.jc(a,b)<<8},fa:function(a,b){return this.jc(a++,b++)|this.jc(a++,b++)<<8|this.jc(a++,b++)<<16|this.jc(a,b)<<24},X:function(a,b,c){this.sc(a++,b&255,c++);this.sc(a,b>>8,c)},U:function(a,b,
|
||||
(c&&(this.F=c),zc(this,Ac,!1))},ia:function(){this.ha&&A(this.ha,129)&&this.ha.message("attempt to read invalid block %"+r(this.Da),!0);return 255},L:function(a,b){this.ha&&A(this.ha,129)&&this.ha.message("attempt to write "+u(b)+" to invalid block %"+r(this.Da),!0)},ka:function(a,b){return this.jc(a++,b++)|this.jc(a,b)<<8},fa:function(a,b){return this.jc(a++,b++)|this.jc(a++,b++)<<8|this.jc(a++,b++)<<16|this.jc(a,b)<<24},X:function(a,b,c){this.sc(a++,b&255,c++);this.sc(a,b>>8,c)},U:function(a,b,
|
||||
c){this.sc(a++,b&255,c++);this.sc(a++,b>>8&255,c++);this.sc(a++,b>>16&255,c++);this.sc(a,b>>>24,c)},Fa:function(a){return this.da[a>>2]>>>((a&3)<<3)&255},sb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b]>>a;return 24>a?c&65535:c&255|(this.da[b+1]&255)<<8},$a:function(a){var b=a>>2;a=(a&3)<<3;var c=this.da[b];a&&(c=c>>>a|this.da[b+1]<<32-a);return c},uc:function(a,b){var c=a>>2,d=(a&3)<<3;this.da[c]=this.da[c]&~(255<<d)|b<<d;this.Wa=!0},Dd:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.da[c]=this.da[c]&
|
||||
~(65535<<d)|b<<d:(this.da[c]=this.da[c]&16777215|b<<24,c++,this.da[c]=this.da[c]&-256|b>>8);this.Wa=!0},Xc:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.da[c]=this.da[c]&~e|b<<d;c++;this.da[c]=this.da[c]&e|b>>>32-d}else this.da[c]=b;this.Wa=!0},Ea:function(a,b){this.ha&&null!=this.Da&&Cc(this.ha,this.Da+a)||this.F&&Dc(this.F,b,1,!1);return this.se(a,b)},rb:function(a,b){this.ha&&null!=this.Da&&Cc(this.ha,this.Da+a,2)||this.F&&Dc(this.F,b,2,!1);return this.cg(a,b)},Pa:function(a,b){this.ha&&
|
||||
null!=this.Da&&Cc(this.ha,this.Da+a,4)||this.F&&Dc(this.F,b,4,!1);return this.ii(a,b)},tc:function(a,b,c){this.ha&&null!=this.Da&&Ec(this.ha,this.Da+a)||this.F&&Dc(this.F,c,1,!0);this.N?this.L(a,b,c):this.wf(a,b,c)},td:function(a,b,c){this.ha&&null!=this.Da&&Ec(this.ha,this.Da+a,2)||this.F&&Dc(this.F,c,2,!0);this.N?this.L(a,b,c):this.oi(a,b,c)},Wc:function(a,b,c){this.ha&&null!=this.Da&&Ec(this.ha,this.Da+a,4)||this.F&&Dc(this.F,c,4,!0);this.N?this.L(a,b,c):this.ua(a,b,c)},Ja:function(a,b){this.yb.da[this.A]|=
|
||||
|
|
@ -64,7 +64,7 @@ this.W;this.Cd.xf(a,b,c)},Ka:function(a,b){return Fc(this.F,b,!1).jc(a,b)},Ub:fu
|
|||
!0)},pa:function(a){return a&1?this.Ya[a]|this.Ya[a+1]<<8:this.fe[a>>1]},Db:function(a){this.yb.da[this.A]|=32;this.zb.da[this.B]|=32;this.rf=this.pa;return a&1?this.Ya[a]|this.Ya[a+1]<<8:this.fe[a>>1]},Oa:function(a){return this.qa.getInt32(a,!0)},ga: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.Nd=this.ga;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]},bc:function(a,b){this.Ya[a]=b;this.Wa=!0},ra:function(a,b){this.Ya[a]=b;this.Wa=!0},Cc:function(a,b){this.Ya[a]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.sc=this.ra;this.Cd.Wa=!0},rd: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.fe[a>>1]=b;this.Wa=!0},Gd:function(a,b){a&1?(this.Ya[a]=b,this.Ya[a+1]=b>>8):this.fe[a>>1]=b;this.yb.da[this.A]|=32;this.zb.da[this.B]|=96;this.yf=this.ya;this.Cd.Wa=!0},Vc:function(a,b){this.qa.setInt32(a,
|
||||
b,!0);this.Wa=!0},wa: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},jd: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.xf=this.wa;this.Cd.Wa=!0}};function Mb(a,b,c){a.ha=b;a.Te=a.Ue=0;c&&(c.F&&(a.F=c.F),(a.Te=c.Te)&&zc(a,Ac,!1),(a.Ue=c.Ue)&&Bc(a,Ac,!1))}
|
||||
function Gc(a,b){b?0===--a.Ue&&(a.sc=a.N?a.L:a.wf,a.yf=a.N?a.X:a.oi,a.xf=a.N?a.U:a.ua):0===--a.Te&&(a.jc=a.se,a.rf=a.cg,a.Nd=a.ii)}function Bc(a,b,c){c&&a.Ue||(a.sc=!a.N&&b[3]||a.L,a.yf=!a.N&&b[4]||a.X,a.xf=!a.N&&b[5]||a.U);if(c||void 0===c)a.wf=b[3]||a.L,a.oi=b[4]||a.X,a.ua=b[5]||a.U}function zc(a,b,c){c&&a.Te||(a.jc=b[0]||a.ja,a.rf=b[1]||a.ka,a.Nd=b[2]||a.fa);if(c||void 0===c)a.se=b[0]||a.ja,a.cg=b[1]||a.ka,a.ii=b[2]||a.fa}
|
||||
function Gc(a,b){b?0===--a.Ue&&(a.sc=a.N?a.L:a.wf,a.yf=a.N?a.X:a.oi,a.xf=a.N?a.U:a.ua):0===--a.Te&&(a.jc=a.se,a.rf=a.cg,a.Nd=a.ii)}function Bc(a,b,c){c&&a.Ue||(a.sc=!a.N&&b[3]||a.L,a.yf=!a.N&&b[4]||a.X,a.xf=!a.N&&b[5]||a.U);if(c||void 0===c)a.wf=b[3]||a.L,a.oi=b[4]||a.X,a.ua=b[5]||a.U}function zc(a,b,c){c&&a.Te||(a.jc=b[0]||a.ia,a.rf=b[1]||a.ka,a.Nd=b[2]||a.fa);if(c||void 0===c)a.se=b[0]||a.ia,a.cg=b[1]||a.ka,a.ii=b[2]||a.fa}
|
||||
function Yb(a,b,c){b||(b=5==a.type?Hc:6==a.type?Ic:Jc);zc(a,b,c);Bc(a,b,c)}var Jc=[],dc=[B.prototype.Fa,B.prototype.sb,B.prototype.$a,B.prototype.uc,B.prototype.Dd,B.prototype.Xc],Ac=[B.prototype.Ea,B.prototype.rb,B.prototype.Pa,B.prototype.tc,B.prototype.td,B.prototype.Wc],Ic=[B.prototype.Ja,B.prototype.Jb,B.prototype.fb,B.prototype.Uc,B.prototype.Hd,B.prototype.ve],Hc=[B.prototype.Ka,B.prototype.Ub,B.prototype.gb,B.prototype.ee,B.prototype.Id,B.prototype.kd];
|
||||
if(vb)var cc=[B.prototype.Ca,B.prototype.Tb,B.prototype.Oa,B.prototype.bc,B.prototype.rd,B.prototype.Vc],bc=[B.prototype.aa,B.prototype.pa,B.prototype.ga,B.prototype.ra,B.prototype.ya,B.prototype.wa],Kc=[B.prototype.Ia,B.prototype.Db,B.prototype.cb,B.prototype.Cc,B.prototype.Gd,B.prototype.jd];
|
||||
function Lc(a,b){Ua.call(this,"CPU",a,Lc,1);var c=a.cycles||b,d=a.multiplier||1;this.Y={};this.Y.Jd=c;this.Y.Yd=d;this.Y.ug=Math.round(this.Y.Jd/1E4)/100;this.Y.Fe=this.Y.ug*this.Y.Yd;this.la.Ib=!1;this.la.eh=!1;this.la.Ki=a.autoStart;this.la.Oi=!1;this.la.Ye=!1;this.Y.If=this.Y.kf=0;this.Y.Jf=a.csStart;this.Y.jf=a.csInterval;this.Y.lf=a.csStop;this.pi=this.Ke.bind(this);rb(this)}db(Lc);var Mc=["power","reset"];m=Lc.prototype;
|
||||
|
|
@ -83,7 +83,7 @@ function dd(a,b,c,d){this.F=a;this.ha=a.ha;this.id=b;this.lc=c||"";this.Z=0;this
|
|||
m.lh=function(a){this.Z=a&65535;return this.Aa=this.Z<<4};m.tg=function(a,b){var c,d,e=this.F;a&=65535;a&4?(c=e.Bc.Aa,d=c+e.Bc.Ta|0):(c=e.Ec,d=e.Ad);if(c){c=c+(a&65528)|0;if(d-c|0)return e.A-=15,gd(this,c,a,b);6>this.id&&C.call(e,b&&3==this.id?10:13,a&65532)}return-1};m.gm=function(a){var b=this.F;a=b.Mc+(a<<2);var c=b.na(a);b.ca&=-769;return this.load(b.na(a+2))+c|0};
|
||||
m.fm=function(a){var b=this.F;a<<=3;var c=b.Mc+a|0;if(7<=(b.Td-c|0))return this.C=!0,a=gd(this,c,a),-1!==a&&(a+=this.Xf),a;C.call(b,13,a|2);return-1};m.Di=function(a){return this.Aa+a|0};m.Fi=function(a){return this.Aa+a|0};m.Ci=function(a,b){return(a>>>0)+b<=this.Zb?this.Aa+a|0:this.og()};m.Ik=function(a,b){return(a>>>0)+b>this.Zb?this.Aa+a|0:this.og()};m.og=function(){C.call(this.F,13,0);return-1};m.Ei=function(a,b){return(a>>>0)+b<=this.Zb?this.Aa+a|0:this.pg()};
|
||||
m.Jk=function(a,b){return(a>>>0)+b>this.Zb?this.Aa+a|0:this.pg()};m.pg=function(){C.call(this.F,13,0);return-1};function hd(a,b,c,d,e){a.Z=b;a.Aa=d;a.Ta=e;a.Zb=(e>>>0)+1;a.wb=c;a.type=c&7936;a.ext=c>>16&192;a.Xb=(b&4?a.F.Bc.Aa:a.F.Ec)+(b&65528)|0;4>a.id&&ed(a,!0)}function id(a,b,c){var d=a.F,e=d.na(b+2),f=d.na(b)|(e&255)<<16,d=d.na(b+4);a.Z=c;a.Aa=f;a.Ta=d;a.Zb=(d>>>0)+1;a.wb=e;a.type=e&7936;a.ext=0;a.Xb=b;4>a.id&&ed(a,!0)}
|
||||
function gd(a,b,c,d){var e=a.F;if(!d&&c===a.A.Z)return a.Z=c,a.Aa=a.A.Aa,a.Ta=a.A.Ta,a.Zb=(a.A.Ta>>>0)+1,a.wb=a.A.wb,a.type=a.A.type,a.ext=a.A.ext,a.Xb=a.A.Xb,a.A.Z=-1,ed(a,!0,!0,!1),a.Aa;a.A.Z=-1;var f=e.na(b+0),g=e.na(b+4),h=g&7936,k=e.na(b+2)|(g&255)<<16,l=e.na(b+6),n=c&65528;if(80386<=e.ia){var q=f,k=k|(l&65280)<<16,f=f|(l&15)<<16;l&128&&(f=f<<12|4095)}switch(a.id){case 1:var p=a.C;a.cf=!1;if(p&&1==c&&a.B.length){var z=a.B[a.Xf-1];if(z&&!z())return-1}var F=c&3,v=(g&24576)>>13,z=-1,E,H;n||b>=e.Ec&&
|
||||
function gd(a,b,c,d){var e=a.F;if(!d&&c===a.A.Z)return a.Z=c,a.Aa=a.A.Aa,a.Ta=a.A.Ta,a.Zb=(a.A.Ta>>>0)+1,a.wb=a.A.wb,a.type=a.A.type,a.ext=a.A.ext,a.Xb=a.A.Xb,a.A.Z=-1,ed(a,!0,!0,!1),a.Aa;a.A.Z=-1;var f=e.na(b+0),g=e.na(b+4),h=g&7936,k=e.na(b+2)|(g&255)<<16,l=e.na(b+6),n=c&65528;if(80386<=e.ja){var q=f,k=k|(l&65280)<<16,f=f|(l&15)<<16;l&128&&(f=f<<12|4095)}switch(a.id){case 1:var p=a.C;a.cf=!1;if(p&&1==c&&a.B.length){var z=a.B[a.Xf-1];if(z&&!z())return-1}var F=c&3,v=(g&24576)>>13,z=-1,E,H;n||b>=e.Ec&&
|
||||
b<e.Ad&&(h=0);if(6144<=h)null!=d?z=0:!1!==p?(h&1024?v<=a.Lb&&(z=0):F<=a.Lb&&v==a.Lb&&(z=0),z||(c=c&-4|a.Lb&3)):F>=a.Lb&&(F>a.Lb&&(z=D(e),jd(e,D(e),!0),G(e,z),a.cf=!0),z=0);else{if(256==h||2304==h)return kd(a,c,p)?a.Aa:-1;if(1024==h)z=2,H=0,F<a.Lb&&(F=a.Lb);else if(3072==h)z=4,H=0,F<a.Lb&&(F=a.Lb);else if(1536==h)z=2,H=148224;else if(3584==h)z=4,H=148224;else if(1792==h)z=2,H=147712;else if(3840==h)z=4,H=147712;else if(1280==h)return kd(a,k&65535,p)?a.Aa:-1}0<z&&!(g&32768)&&(z=0);if(0<z&&(n=a.Lb,E=
|
||||
b==e.Mc+c,F<=v&&(!E||0<=e.rb||n<=v))){b=k&65535;h&2048&&(f=q|l<<16);l=h=0;d=b&3;if(d<n){if(-1===a.tg(b,!0))return-1;l=e.Sa.Aa;e.Sa.type&2048?(c=(d<<3)+4,k=4):(c=(d<<2)+2,k=2);h=e.na(l+c+k);if(!h)return C.call(e,10,h),-1;if(-1===e.ta.tg(h,!0))return-1;l=2==k?e.na(l+c):e.oa(l+c)}c=e.ca;e.ca&=~H;c&131072&&ld(e,!0,!1);if(-1===a.tg(b,!1))return-1;md(e,z);a.Xf=f;if(d<n){if(!0!==p)return-1;z=I(e);f=0;for(g&=31;g--;)a.N[f++]=nd(e,e.ta,z),z+=2;p=e.ta.Z;g=I(e);jd(e,h,!0);G(e,l);c&131072&&(md(e,4),od(e,e.Ob.Z,
|
||||
4,2),e.Ob.load(0),od(e,e.Nb.Z,4,2),e.Nb.load(0),od(e,e.vb.Z,4,2),pd(e,0),od(e,e.Xa.Z,4,2),vd(e,0));od(e,p,e.ba,2);for(J(e,g);f;)J(e,a.N[--f]);a.cf=!0}return a.Aa}if(0!=z)return C.call(e,13,c&65532|(E?2:0)),-1;if(!(g&32768))return C.call(e,11,c&65532|(E?2:0)),-1;break;case 2:if(n){if(4096>h||2048==(h&2560))return C.call(e,13,c&65532),-1;if(!(g&32768))return C.call(e,11,c&65532),-1}break;case 3:if(!n||4096>h||512!=(h&2560))return C.call(e,13,c&65532),-1;if(!(g&32768))return C.call(e,12,c&65532),-1;
|
||||
|
|
@ -93,27 +93,27 @@ function kd(a,b,c){var d=a.F,e=a.Lb,f=d.Sa.Z,g=d.Sa.Aa;if(!c){if(!(d.Sa.type&512
|
|||
60,d.P),d.nb(g+64,d.K),d.nb(g+68,d.J),d.nb(g+72,d.Xa.Z),d.nb(g+76,d.va.Z),d.nb(g+80,d.ta.Z),d.nb(g+84,d.vb.Z),d.nb(g+88,d.Nb.Z),d.nb(g+92,d.Ob.Z),zd.call(d,d.oa(h+28)),d.Bc.load(d.na(h+96)),xd(d,d.oa(h+36)|(c?16384:0)),d.G=d.oa(h+40),d.I=d.oa(h+44),d.M=d.oa(h+48),d.H=d.oa(h+52),d.P=d.oa(h+60),d.K=d.oa(h+64),d.J=d.oa(h+68),d.Xa.load(d.na(h+72)),d.vb.load(d.na(h+84)),d.Nb.load(d.na(h+88)),d.Ob.load(d.na(h+92)),yd(d,d.oa(h+32),d.na(h+76)),b=80,g=56,a.Lb<e&&(g=(a.Lb<<3)+4,b=g+4),jd(d,d.na(h+b),!0),G(d,
|
||||
d.oa(h+g)));c&&d.jb(h+0,f);d.Za|=8;return!0}m.save=function(){return[this.Z,this.Aa,this.Ta,this.wb,this.id,this.lc,this.Lb,this.Gc,this.Xb,this.Oc,this.Ba,this.ba,this.R,this.type,this.Zb]};m.restore=function(a){"number"==typeof a?this.load(a):(this.Z=a[0],this.Aa=a[1],this.Ta=a[2],this.wb=a[3],this.id=a[4],this.lc=a[5],this.Lb=a[6],this.Gc=a[7],this.Xb=a[8],this.Oc=a[9]||2,this.Ba=a[10]||65535,this.ba=a[11]||2,this.R=a[12]||65535,this.type=a[13]||this.wb&7936,this.Zb=a[14]||(this.Ta>>>0)+1)};
|
||||
function ed(a,b,c,d){void 0===c&&(c=!!(a.F.Za&1));a.cd=!1;if(c)if(a.load=a.tg,a.Wi=a.fm,a.nc=a.Ci,a.oc=a.Ei,void 0===d&&(d=!!(a.F.ca&131072)),d)a.load=a.V,a.nc=a.ea,a.oc=a.qa,a.Lb=a.Gc=3,a.ba=a.Oc=2,a.R=a.Ba=65535,a.Ta=65535,a.Zb=a.Ta+1,a.Oc=a.ba,a.Xb=-1,a.cf=!1;else{if(!(a.Z&-4))a.nc=a.og,a.oc=a.pg;else if(a.type&4096){6144==(a.type&6656)&&(a.nc=a.og);if(a.type&2048||!(a.type&512))a.oc=a.pg;1024==(a.type&3072)&&(a.nc==a.Ci&&(a.nc=a.Ik),a.oc==a.Ei&&(a.oc=a.Jk),a.cd=!0);b&&6>a.id&&a.Z&-4&&-1!==a.Xb&&
|
||||
(c=a.Xb+5,d=a.F.Qa(c),d&1||a.F.qc(c,d|1))}b&&(a.Lb=a.Z&3,a.Gc=(a.wb&24576)>>13,80386>a.F.ia||!(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.lh,a.Wi=a.gm,a.nc=a.Di,a.oc=a.Fi,a.Lb=a.Gc=0,a.Xb=-1,a.cf=!1}
|
||||
function Ad(a){this.ia=a.model||8088;var b=a.stepping;this.Uc=this.ia+(b?ca(b,16):0);b=0;switch(this.ia){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Lc.call(this,a,b);this.Yf=61442;this.Cc=1792;this.Wf=28672;this.Dd=4;this.ra=255;this.B=80286<=this.ia?xb:wb;this.X=Bd;this.bg=Cd;this.gg=Dd;this.hg=Ed;if(80186<=this.ia&&(this.X=Bd.slice(),this.bg=Cd.slice(),this.gg=Dd.slice(),this.ra=31,this.X[15]=Fd,this.X[96]=Gd,this.X[97]=Hd,this.X[98]=Id,this.X[99]=Fd,this.X[100]=Fd,this.X[101]=
|
||||
Fd,this.X[102]=Fd,this.X[103]=Fd,this.X[104]=Jd,this.X[105]=Kd,this.X[106]=Ld,this.X[107]=Md,this.X[108]=Nd,this.X[109]=Od,this.X[110]=Pd,this.X[111]=Qd,this.X[192]=Rd,this.X[193]=Sd,this.X[200]=Td,this.X[201]=Ud,this.X[241]=Yd,this.bg[7]=Zd,this.gg[7]=Zd,80286<=this.ia)){this.Yf=2;this.Cc|=28672;this.Dd=0;this.X[15]=$d;this.tc=ae.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ge);this.X[84]=he;this.X[99]=ie;if(80386<=this.ia){var c;this.Wf=0;this.Cc|=196608;this.X[100]=je;this.X[101]=
|
||||
(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.lh,a.Wi=a.gm,a.nc=a.Di,a.oc=a.Fi,a.Lb=a.Gc=0,a.Xb=-1,a.cf=!1}
|
||||
function Ad(a){this.ja=a.model||8088;var b=a.stepping;this.Uc=this.ja+(b?ca(b,16):0);b=0;switch(this.ja){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Lc.call(this,a,b);this.Yf=61442;this.Cc=1792;this.Wf=28672;this.Dd=4;this.ra=255;this.B=80286<=this.ja?xb:wb;this.X=Bd;this.bg=Cd;this.gg=Dd;this.hg=Ed;if(80186<=this.ja&&(this.X=Bd.slice(),this.bg=Cd.slice(),this.gg=Dd.slice(),this.ra=31,this.X[15]=Fd,this.X[96]=Gd,this.X[97]=Hd,this.X[98]=Id,this.X[99]=Fd,this.X[100]=Fd,this.X[101]=
|
||||
Fd,this.X[102]=Fd,this.X[103]=Fd,this.X[104]=Jd,this.X[105]=Kd,this.X[106]=Ld,this.X[107]=Md,this.X[108]=Nd,this.X[109]=Od,this.X[110]=Pd,this.X[111]=Qd,this.X[192]=Rd,this.X[193]=Sd,this.X[200]=Td,this.X[201]=Ud,this.X[241]=Yd,this.bg[7]=Zd,this.gg[7]=Zd,80286<=this.ja)){this.Yf=2;this.Cc|=28672;this.Dd=0;this.X[15]=$d;this.tc=ae.slice();for(a=0;a<this.tc.length;a++)this.tc[a]||(this.tc[a]=ge);this.X[84]=he;this.X[99]=ie;if(80386<=this.ja){var c;this.Wf=0;this.Cc|=196608;this.X[100]=je;this.X[101]=
|
||||
ke;this.X[102]=le;this.X[103]=me;for(c in M)this.tc[+c]=M[c];80546<=this.Uc&&80562>=this.Uc&&(this.tc[166]=ne,this.tc[167]=oe)}}this.Id=[];this.le=[];this.ne=0;Oc(this);this.la.Wd=this.la.Mi=!1;this.Pg=0;this.ld=this.sa=[];this.La=this.Sb=this.Fa=this.Gd=this.jd=this.Gb=this.Db=0;pe(this)}db(Ad,Lc);function qe(a,b,c,d){Gc((d?a.ld:a.sa)[b>>>a.La],c);d&&Ub(a)}
|
||||
function re(a){var b;if(a.sa===a.ld){a.sa=Array(a.Gd);a.me=new B(null,0,0,5,null,a);Mb(a.me,a.ha);for(b=0;b<a.Gd;b++)a.sa[b]=a.me;a.kd=new B;a.ag=Array(512);a.oe=0}else for(var c=0;c<a.Hd.length;c++){b=a.Hd[c];var d=a.sa[b];512>a.oe&&(a.ag[a.oe++]=d);a.sa[b]=a.me}a.Hd=[]}function Ub(a){a.Za&-2147483648&&re(a)}
|
||||
function Fc(a,b,c,d){var e=(b&-4194304)>>>20,f=a.ld[(a.Pd+e&a.Gb)>>>a.La],g=f.Nd(e);if(!(g&1))return d||se.call(a,b,!1,c),a.kd;if(!(g&4)&&3==a.pa)return d||se.call(a,b,!0,c),a.kd;var h=(b&4190208)>>>10,g=a.ld[((g&-4096)+h&a.Gb)>>>a.La],k=g.Nd(h);if(!(k&1))return d||se.call(a,b,!1,c),a.kd;if(!(k&4)&&3==a.pa)return d||se.call(a,b,!0,c),a.kd;c=a.ld[((k&-4096)+(b&4095)&a.Gb)>>>a.La];if(d)return c;d=b>>>a.La;k=a.sa[d];b=b&-4096;var l;0<a.oe?(l=a.ag[--a.oe],l.hh(b)):l=new B(b,0,0,6);b=l;b.Cd=c;b.yb=f;b.A=
|
||||
e>>2;b.zb=g;b.B=h>>2;vb&&ac&&c.da&&!c.controller&&!c.Te&&!c.Ue?(b.Ya=c.Ya,b.fe=c.fe,b.da=c.da,Yb(b,Kc)):(b.ea=c?yc(32):0,b.W=c?yc(96):0,Yb(b,Ic));Mb(b,a.ha,k);a.sa[d]=b;a.Hd.push(d);return b}function te(a){a.sa!==a.ld&&(a.sa=a.ld,a.me=null,a.Hd=null,a.kd=null)}m=Ad.prototype;m.reset=function(){this.la.Ib&&this.Wb();pe(this);Oc(this);this.la.ud=!1};
|
||||
function ue(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=I(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function ve(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:G(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}}
|
||||
function pe(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.ja=a.wa=0;a.aa=0;a.ig=0;a.L=0;a.Za=65520;a.Mc=0;a.Td=1023;a.ca=a.Pa=0;a.Wc=a.td=a.Vc=a.Xc=0;a.rb=-1;a.bc=a.sb=-1;a.re=a.U=-1;a.va=new dd(a,1,"CS");a.vb=new dd(a,2,"DS");a.Xa=new dd(a,2,"ES");a.ta=new dd(a,3,"SS");G(a,0);jd(a,0);if(80386<=a.ia){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.ji=0;a.te=0;a.Pd=0;a.Ja=[0,0,0,0,null,null,0,
|
||||
0];a.Ce=[null,null,null,null,null,null,0,0];a.Nb=new dd(a,2,"FS");a.Ob=new dd(a,2,"GS");te(a)}a.qf=new dd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ha=0;a.D=a.C=-1;a.$b=a.qf;a.ua=0;if(80286>a.ia)yd(a,0,65535);else{a.Ec=0;a.Ad=65535;a.Bc=new dd(a,5,"LDT",!0);a.Sa=new dd(a,4,"TSS",!0);a.Ea=new dd(a,6,"VER",!0);yd(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ia&&(d&=16777215);b=b.Aa=d;a.Ga=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}xd(a,0);ld(a)}
|
||||
function we(a){2==a.Oc?(a.dc=a.na,a.Oa=xe,a.$a=ye,a.Jb=ze,2==a.ba?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=De,a.fa=Ee,a.ya=Fe)):(a.dc=a.oa,a.Oa=Ge,a.$a=He,a.Jb=Ie,2==a.ba?(a.W=Le,a.fa=Me,a.ya=Ne):(a.W=Oe,a.fa=Pe,a.ya=Qe))}function md(a,b){a.ba!=b&&(a.Ha|=1024,a.ba=b,a.R=2==b?65535:-1,Re(a))}function Re(a){2==a.ba?(a.Ia=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=Le,a.fa=Me,a.ya=Ne)):(a.Ia=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.W=De,a.fa=Ee,a.ya=Fe):(a.W=Oe,a.fa=Pe,a.ya=Qe))}
|
||||
function Se(a){a.Oc=a.va.Oc;a.Ba=a.va.Ba;we(a);a.ba=a.va.ba;a.R=a.va.R;Re(a);a.Ha&=-3073}m.Qi=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+wd(this)|0};function Te(a,b,c){void 0===a.Id[b]&&(a.Id[b]=[]);a.Id[b].push(c)}function df(a,b,c){void 0!==c&&(null==a.le[b]&&a.ne++,a.le[b]=c)}function ef(a,b){var c=a.le[b];null!=c&&(c(--a.ne),delete a.le[b])}
|
||||
function pe(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.wa=0;a.aa=0;a.ig=0;a.L=0;a.Za=65520;a.Mc=0;a.Td=1023;a.ca=a.Pa=0;a.Wc=a.td=a.Vc=a.Xc=0;a.rb=-1;a.bc=a.sb=-1;a.re=a.U=-1;a.va=new dd(a,1,"CS");a.vb=new dd(a,2,"DS");a.Xa=new dd(a,2,"ES");a.ta=new dd(a,3,"SS");G(a,0);jd(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.ji=0;a.te=0;a.Pd=0;a.Ja=[0,0,0,0,null,null,0,
|
||||
0];a.Ce=[null,null,null,null,null,null,0,0];a.Nb=new dd(a,2,"FS");a.Ob=new dd(a,2,"GS");te(a)}a.qf=new dd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ha=0;a.D=a.C=-1;a.$b=a.qf;a.ua=0;if(80286>a.ja)yd(a,0,65535);else{a.Ec=0;a.Ad=65535;a.Bc=new dd(a,5,"LDT",!0);a.Sa=new dd(a,4,"TSS",!0);a.Ea=new dd(a,6,"VER",!0);yd(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ja&&(d&=16777215);b=b.Aa=d;a.Ga=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}xd(a,0);ld(a)}
|
||||
function we(a){2==a.Oc?(a.dc=a.na,a.Oa=xe,a.$a=ye,a.Jb=ze,2==a.ba?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=De,a.fa=Ee,a.ya=Fe)):(a.dc=a.oa,a.Oa=Ge,a.$a=He,a.Jb=Ie,2==a.ba?(a.W=Je,a.fa=Me,a.ya=Ne):(a.W=Oe,a.fa=Pe,a.ya=Qe))}function md(a,b){a.ba!=b&&(a.Ha|=1024,a.ba=b,a.R=2==b?65535:-1,Re(a))}function Re(a){2==a.ba?(a.Ia=32768,a.tb=a.na,a.rc=a.jb,2==a.Oc?(a.W=Ae,a.fa=Be,a.ya=Ce):(a.W=Je,a.fa=Me,a.ya=Ne)):(a.Ia=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Oc?(a.W=De,a.fa=Ee,a.ya=Fe):(a.W=Oe,a.fa=Pe,a.ya=Qe))}
|
||||
function Se(a){a.Oc=a.va.Oc;a.Ba=a.va.Ba;we(a);a.ba=a.va.ba;a.R=a.va.R;Re(a);a.Ha&=-3073}m.Qi=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+wd(this)|0};function Te(a,b,c){void 0===a.Id[b]&&(a.Id[b]=[]);a.Id[b].push(c)}function Ue(a,b,c){void 0!==c&&(null==a.le[b]&&a.ne++,a.le[b]=c)}function ef(a,b){var c=a.le[b];null!=c&&(c(--a.ne),delete a.le[b])}
|
||||
function ff(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].Sd(g&a.Fa,f,a):Gc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Dc(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<<g;a.ua|=2;break}}e>>=2;f>>=4}}}
|
||||
function ld(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.hg=b&&!c?gf:Ed;ed(a.va,!1,b,c);ed(a.vb,!1,b,c);ed(a.ta,!1,b,c);ed(a.Xa,!1,b,c);80386<=a.ia&&(ed(a.Nb,!1,b,c),ed(a.Ob,!1,b,c));Se(a)}
|
||||
m.save=function(){var a=new hf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.Ad,this.Mc,this.Td,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ia&&(g.push(this.ji),g.push(this.te),g.push(this.Pd),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,wd(this)];80386<=this.ia&&(b.push(this.Nb.save()),b.push(this.Ob.save()));N(a,1,b);N(a,2,[this.ka.lc,
|
||||
function ld(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.hg=b&&!c?gf:Ed;ed(a.va,!1,b,c);ed(a.vb,!1,b,c);ed(a.ta,!1,b,c);ed(a.Xa,!1,b,c);80386<=a.ja&&(ed(a.Nb,!1,b,c),ed(a.Ob,!1,b,c));Se(a)}
|
||||
m.save=function(){var a=new hf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Ec?(g=[this.Za,this.Ec,this.Ad,this.Mc,this.Td,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ja&&(g.push(this.ji),g.push(this.te),g.push(this.Pd),g.push(this.Ja),g.push(this.Ce))):g=null;b=[b,c,d,e,f,g,wd(this)];80386<=this.ja&&(b.push(this.Nb.save()),b.push(this.Ob.save()));N(a,1,b);N(a,2,[this.ka.lc,
|
||||
this.Ka.lc,this.S,this.Ha,this.ua,this.D,this.C]);N(a,3,[0,this.uc,this.Y.Yd]);b=this.ea;c=!!(this.Za&-2147483648);d=0;e=[];(f=!b.V&&b.xg==b.Gb)||Rb(b,!0);for(g=0;g<b.U;g++){var h=b.sa[g];if(c&&h.type!=$b||h.Wa||h.Ni){e[d++]=g;var k=d++;a:if(h=h.save()){for(var l=0,n=0,q=[];l<h.length;){for(var p=h[l],z=l+1;z<h.length&&h[z]===p;)z++;q[n++]=z-l;q[n++]=p;l=z}if(q.length<h.length){h=q;break a}}e[k]=h}}f||Rb(b,!1);e[d]=f;N(a,4,e);return a.data()};
|
||||
m.restore=function(a){var b=a[0];this.G=b[0];this.H=b[1];this.I=b[2];this.M=b[3];var c=b[4];this.P=b[5];this.K=b[6];this.J=b[7];b=a[1];this.va.restore(b[1]);this.vb.restore(b[2]);this.ta.restore(b[3]);this.Xa.restore(b[4]);var d=b[5];d&&d.length&&(this.Za=d[0],this.Ec=d[1],this.Ad=d[2],this.Mc=d[3],this.Td=d[4],this.Bc.restore(d[5]),this.Sa.restore(d[6]),this.Pa=d[7],80386<=this.ia&&(this.ji=d[8],this.te=d[9],this.Pd=d[10],this.Ja=d[11],this.Ce=d[12]),ld(this));xd(this,b[6]);var d=!1,e;a:{e=this.ea;
|
||||
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ga){for(var l=0,n=Array(e.ga),q=0;q<k.length-1;)for(var p=k[q++],z=k[q++];p--;)n[l++]=z;k=n}l=e.sa[h];if(!l||!l.restore(k)){w("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Rb(e,f[g]);e=!0}e&&(yd(this,b[0],this.va.Z),G(this,c),jd(this,this.ta.Z),80386<=this.ia&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&jf(this,b[0])||this.vb;this.Ka=null!=b[1]&&jf(this,b[1])||this.ta;
|
||||
m.restore=function(a){var b=a[0];this.G=b[0];this.H=b[1];this.I=b[2];this.M=b[3];var c=b[4];this.P=b[5];this.K=b[6];this.J=b[7];b=a[1];this.va.restore(b[1]);this.vb.restore(b[2]);this.ta.restore(b[3]);this.Xa.restore(b[4]);var d=b[5];d&&d.length&&(this.Za=d[0],this.Ec=d[1],this.Ad=d[2],this.Mc=d[3],this.Td=d[4],this.Bc.restore(d[5]),this.Sa.restore(d[6]),this.Pa=d[7],80386<=this.ja&&(this.ji=d[8],this.te=d[9],this.Pd=d[10],this.Ja=d[11],this.Ce=d[12]),ld(this));xd(this,b[6]);var d=!1,e;a:{e=this.ea;
|
||||
var f=a[4],g;for(g=0;g<f.length-1;g+=2){var h=f[g],k=f[g+1];if(k&&k.length<e.ga){for(var l=0,n=Array(e.ga),q=0;q<k.length-1;)for(var p=k[q++],z=k[q++];p--;)n[l++]=z;k=n}l=e.sa[h];if(!l||!l.restore(k)){w("Unable to restore memory block "+h);e=!1;break a}}void 0!==f[g]&&Rb(e,f[g]);e=!0}e&&(yd(this,b[0],this.va.Z),G(this,c),jd(this,this.ta.Z),80386<=this.ja&&(this.Nb.restore(b[7]),this.Ob.restore(b[8])),d=!0);b=a[2];this.ka=null!=b[0]&&jf(this,b[0])||this.vb;this.Ka=null!=b[1]&&jf(this,b[1])||this.ta;
|
||||
this.S=b[2];this.Ha=b[3];this.ua=b[4];this.D=b[5];this.C=b[6];b=a[3];this.uc=b[1];Xc(this,b[2]);return d};function jf(a,b){switch(b){case "CS":return a.va;case "DS":return a.vb;case "SS":return a.ta;case "ES":return a.Xa;case "NULL":return a.qf;default:return[0,b,0,0,""]}}function kf(a,b){null!=yd(a,K(a),b)&&(a.S|=a.Dd)}function pd(a,b){-1!==a.vb.load(b)&&(a.S|=a.Dd)}
|
||||
function jd(a,b,c){var d=I(a);-1!==a.ta.load(b)&&(G(a,d),a.ta.cd?(a.Lg=a.ta.Aa+a.ta.Ba|0,a.rd=a.ta.Aa+a.ta.Ta|0):(a.Lg=a.ta.Aa+a.ta.Ta|0,a.rd=a.ta.Aa),c||(a.S|=4))}function vd(a,b){-1!==a.Xa.load(b)&&(a.S|=a.Dd)}function K(a){return a.Ga-a.va.Aa|0}function O(a,b){a.Ga=a.va.Aa+(b&a.R)|0}function lf(a,b){a.Ga=b;a.gf=(a.va.Aa>>>0)+(a.va.Ta>>>0)+1;a.pa=a.va.Lb;Se(a)}function yd(a,b,c,d){var e=a.va;e.Xf=b;e.C=d;b=e.load(c);return-1!==b?(lf(a,b+(a.va.Xf&a.va.R)),a.va.cf):null}
|
||||
function mf(a,b){var c=(a.Ga>>>0)+b;c>a.gf&&(8088>=a.ia||a.va.Ta==a.va.Ba?c=a.va.Aa+(c-a.gf&a.R):C.call(a,13,0));return c|0}function nf(a){a.Ga=a.re}function I(a){return a.gb&~a.ta.Ba|a.ga-a.ta.Aa}function G(a,b){a.gb=b;a.ga=a.ta.Aa+(b&a.ta.Ba)|0}function of(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&pf(a),g&2&&qf(a),g&4&&rf(a),g&8&&sf(a),g&16&&tf(a),g&32&&uf(a))}f?(a.Wc=d,a.Vc=b):(a.Wc=b,a.Vc=d);a.td=c;a.Xc=d;a.resultType=e}
|
||||
function mf(a,b){var c=(a.Ga>>>0)+b;c>a.gf&&(8088>=a.ja||a.va.Ta==a.va.Ba?c=a.va.Aa+(c-a.gf&a.R):C.call(a,13,0));return c|0}function nf(a){a.Ga=a.re}function I(a){return a.gb&~a.ta.Ba|a.ga-a.ta.Aa}function G(a,b){a.gb=b;a.ga=a.ta.Aa+(b&a.ta.Ba)|0}function of(a,b,c,d,e,f){if(63!=(e&63)&&e!=a.resultType){var g=(e^a.resultType)&a.resultType;g&&(g&1&&pf(a),g&2&&qf(a),g&4&&rf(a),g&8&&sf(a),g&16&&tf(a),g&32&&uf(a))}f?(a.Wc=d,a.Vc=b):(a.Wc=b,a.Vc=d);a.td=c;a.Xc=d;a.resultType=e}
|
||||
function vf(a,b,c,d,e){a.resultType=c|26;a.Xc=b;d?wf(a):xf(a);e?yf(a):zf(a);return b}function Af(a,b,c,d){c&d?wf(a):xf(a);(b^c)&d?yf(a):zf(a)}function Bf(a){return pf(a)?1:0}function pf(a){a.resultType&1&&(a.ca&=-2,(a.Wc^(a.Wc^a.td)&(a.td^a.Vc))&a.resultType&-2147450752&&(a.ca|=1),a.resultType&=-2);return a.ca&1}function qf(a){a.resultType&2&&(a.ca&=-5,38505>>((a.Xc^a.Xc>>4)&15)&1&&(a.ca|=4),a.resultType&=-3);return a.ca&4}
|
||||
function rf(a){a.resultType&4&&(a.ca&=-17,(a.Vc^a.Wc^a.td)&16&&(a.ca|=16),a.resultType&=-5);return a.ca&16}function sf(a){a.resultType&8&&(a.ca&=-65,a.Xc&((a.resultType&-2147450752)-1|a.resultType&-2147450752)||(a.ca|=64),a.resultType&=-9);return a.ca&64}function tf(a){a.resultType&16&&(a.ca&=-129,a.Xc&a.resultType&-2147450752&&(a.ca|=128),a.resultType&=-17);return a.ca&128}
|
||||
function uf(a){a.resultType&32&&(a.ca&=-2049,(a.Wc^a.Vc)&(a.td^a.Vc)&a.resultType&-2147450752&&(a.ca|=2048),a.resultType&=-33);return a.ca&2048}function xf(a){a.resultType&=-2;a.ca&=-2}function Cf(a){a.resultType&=-5;a.ca&=-17}function Df(a){a.resultType&=-9;a.ca&=-65}function zf(a){a.resultType&=-33;a.ca&=-2049}function wf(a){a.resultType&=-2;a.ca|=1}function Ef(a){a.resultType&=-5;a.ca|=16}function Ff(a){a.resultType&=-9;a.ca|=64}function yf(a){a.resultType&=-33;a.ca|=2048}
|
||||
|
|
@ -125,16 +125,16 @@ m.na=function(a){var b=a&this.Fa,c=(a&this.Db)>>>this.La;this.A-=this.B.Eg;if(b<
|
|||
m.jb=function(a,b){var c=a&this.Fa,d=(a&this.Db)>>>this.La;this.A-=this.B.Eg;c<this.Fa?this.sa[d].yf(c,b&65535,a):(this.sa[d++].sc(c,b&255,a),this.S&4096||this.sa[d&this.jd].sc(0,b>>8&255,a+1))};m.nb=function(a,b){var c=a&this.Fa,d=(a&this.Db)>>>this.La;this.A-=this.B.Eg;if(c<this.Fa-2)this.sa[d].xf(c,b,a);else for(var e=4,f=4-(c&3);e--;){this.sa[d].sc(c++,b&255,a++);if(this.S&4096)break;--f||(d=d+1&this.jd,c=0);b>>>=8}};
|
||||
function Jf(a,b,c){a.$b=b;a.Ca=c&a.Ba;a.D=b.nc(a.Ca,1);return a.S&1?0:a.Qa(a.D)}function Q(a,b){return Jf(a,a.ka,b)}function Kf(a,b){return Jf(a,a.Ka,b)}function Lf(a,b,c){a.$b=b;a.Ca=c&a.Ba;a.D=b.nc(a.Ca,a.ba);return a.S&1?0:a.tb(a.D)}function R(a,b){a.$b=a.ka;a.Ca=b&a.Ba;a.D=a.$b.nc(a.Ca,2);return a.S&1?0:a.na(a.D)}function Mf(a,b){a.$b=a.Ka;a.Ca=b&a.Ba;a.D=a.$b.nc(a.Ca,2);return a.S&1?0:a.na(a.D)}function S(a,b){a.$b=a.ka;a.Ca=b&a.Ba;a.D=a.$b.nc(a.Ca,4);return a.S&1?0:a.oa(a.D)}
|
||||
function Nf(a,b){a.$b=a.Ka;a.Ca=b&a.Ba;a.D=a.$b.nc(a.Ca,4);return a.S&1?0:a.oa(a.D)}function Of(a,b){a.S&2||a.qc(a.$b.oc(a.Ca,1),b)}function Pf(a,b){a.S&2||a.jb(a.$b.oc(a.Ca,2),b)}function Qf(a,b){a.S&2||a.nb(a.$b.oc(a.Ca,4),b)}function nd(a,b,c){return a.tb(b.nc(c,a.ba))}m.xa=function(){var a=mf(this,1),b=this.Qa(this.Ga);this.Ga=a;return b};function Rf(a){var b=mf(a,2),c=a.na(a.Ga);a.Ga=b;return c}function T(a){var b=mf(a,a.Oc),c=a.dc(a.Ga);a.Ga=b;return c}
|
||||
m.Ma=function(){var a=mf(this,this.ba),b=this.tb(this.Ga);this.Ga=a;return b};m.T=function(){var a=mf(this,1),b=this.Qa(this.Ga)<<24>>24;this.Ga=a;return b};function D(a){var b=a.tb(a.ga);a.ga=a.ga+a.ba|0;var c=a.Lg-a.ga|0;0>c&&0<=(a.Lg^a.ga)&&(8088>=a.ia||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?G(a,a.ga-a.ta.Aa&a.ta.Ba):-1>c&&C.call(a,12,0));return b}
|
||||
function od(a,b,c,d){c=a.ga-c|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ia||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));switch(d){case 1:a.qc(c,b);break;case 2:a.jb(c,b);break;case 4:a.nb(c,b)}a.ga=c}function J(a,b){var c=a.ga-a.ba|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ia||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));a.rc(c,b);a.ga=c}
|
||||
function Sf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ia)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.qa[b]&&(void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.Wb()),d=!a.la.Ib||a.la.Oi?r(c,d):"--------".substr(0,d),a.qa[b].textContent!=d&&(a.qa[b].textContent=d))}
|
||||
m.Ma=function(){var a=mf(this,this.ba),b=this.tb(this.Ga);this.Ga=a;return b};m.T=function(){var a=mf(this,1),b=this.Qa(this.Ga)<<24>>24;this.Ga=a;return b};function D(a){var b=a.tb(a.ga);a.ga=a.ga+a.ba|0;var c=a.Lg-a.ga|0;0>c&&0<=(a.Lg^a.ga)&&(8088>=a.ja||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?G(a,a.ga-a.ta.Aa&a.ta.Ba):-1>c&&C.call(a,12,0));return b}
|
||||
function od(a,b,c,d){c=a.ga-c|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ja||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));switch(d){case 1:a.qc(c,b);break;case 2:a.jb(c,b);break;case 4:a.nb(c,b)}a.ga=c}function J(a,b){var c=a.ga-a.ba|0;0>(c-a.rd|0)&&0<=(a.rd^c)&&(8088>=a.ja||!a.ta.cd&&a.ta.Ta==a.ta.Ba||a.ta.cd&&!a.ta.Ta?(G(a,c-a.ta.Aa&a.ta.Ba),c=a.ga):C.call(a,12,0));a.rc(c,b);a.ga=c}
|
||||
function Sf(a,b,c){var d=4;1==b.length&&(d=1,c=c?1:0);if(80386>a.ja)2<b.length&&(b=b.substr(1,2));else if("PS"==b||2<b.length)d=8;a.qa[b]&&(void 0===c&&(ub(a,"Value for "+b+" is invalid"),a.Wb()),d=!a.la.Ib||a.la.Oi?r(c,d):"--------".substr(0,d),a.qa[b].textContent!=d&&(a.qa[b].textContent=d))}
|
||||
m.qd=function(a){this.Pg&&(a||!this.la.Ib||this.la.Oi)&&(Sf(this,"EAX",this.G),Sf(this,"EBX",this.H),Sf(this,"ECX",this.I),Sf(this,"EDX",this.M),Sf(this,"ESP",I(this)),Sf(this,"EBP",this.P),Sf(this,"ESI",this.K),Sf(this,"EDI",this.J),Sf(this,"CS",this.va.Z),Sf(this,"DS",this.vb.Z),Sf(this,"SS",this.ta.Z),Sf(this,"ES",this.Xa.Z),Sf(this,"EIP",K(this)),a=wd(this),Sf(this,"PS",a),Sf(this,"V",a&2048),Sf(this,"D",a&1024),Sf(this,"I",a&512),Sf(this,"T",a&256),Sf(this,"S",a&128),Sf(this,"Z",a&64),Sf(this,
|
||||
"A",a&16),Sf(this,"P",a&4),Sf(this,"C",a&1),80386==this.ia&&(Sf(this,"FS",this.Nb.Z),Sf(this,"GS",this.Ob.Z),Sf(this,"CR0",this.Za),Sf(this,"CR2",this.te),Sf(this,"CR3",this.Pd)));if(a=this.qa.speed)a.textContent=this.la.Ib&&this.Y.pe?this.Y.pe.toFixed(2)+"Mhz":"Stopped"};
|
||||
m.vf=function(a){this.la.Wd=!0;var b=this.la.Mi=this.ha&&Tf(this.ha),c=a?this.la.eh?0:1:-1;this.la.eh=!1;this.fb=this.A=a;this.N&&!a&&ad(this.N);a||A(this,1024)||(this.S|=4);do{var d=this.S&3312;if(d)this.Ha|=d;else if(this.re=this.Ga,this.ka=this.vb,this.Ka=this.ta,this.D=this.C=-1,this.Ha&3072&&Se(this),this.Ha=this.S&256,this.ua){a:{if(!(this.S&4))for(var d=80286>this.ia?0:1,e=0;2>e;e++){switch(d){case 0:if(this.ua&1&&this.ca&512){var f=Uf(this.N);if(-1<=f&&(this.ua&=-2,0<=f)){this.ua&=-5;Vf.call(this,
|
||||
f);d=!0;break a}}break;case 1:if(this.ua&2){this.ua&=-3;80386<=this.ia&&(this.Ja[6]|=16384);Vf.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.O("interrupt dispatched");this.S=0;break}if(this.ua&4){this.S=this.A=0;break}}if(b){if(Wf(this.ha,this.Ga,c)){this.Wb();break}c=1}this.S=0;this.X[this.xa()].call(this)}while(0<this.A);return this.la.Wd?this.fb-this.A:void 0===this.la.Wd?0:-1};Qa(function(){for(var a=nb(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new Ad(d);mb(d,c)}});
|
||||
function Xf(a){Ua.call(this,"FPU",a,Xf);this.ia=a.model||8087;(a=a.stepping)&&ca(a,16);this.V=new Float64Array(8);this.aa=new Int32Array(this.V.buffer);this.pa=new Float32Array(1);this.ua=new Int32Array(this.pa.buffer);this.X=new Float64Array(1);this.L=new Int32Array(this.X.buffer);this.ea=Array(3);this.fa=this.ga=-1;this.W=this.U=this.ja=this.A=0;this.ka=new Float64Array(1);this.ra=new Int32Array(this.ka.buffer);this.ra[0]=0;this.ra[1]=268402688;Yf(this)}db(Xf);m=Xf.prototype;
|
||||
"A",a&16),Sf(this,"P",a&4),Sf(this,"C",a&1),80386==this.ja&&(Sf(this,"FS",this.Nb.Z),Sf(this,"GS",this.Ob.Z),Sf(this,"CR0",this.Za),Sf(this,"CR2",this.te),Sf(this,"CR3",this.Pd)));if(a=this.qa.speed)a.textContent=this.la.Ib&&this.Y.pe?this.Y.pe.toFixed(2)+"Mhz":"Stopped"};
|
||||
m.vf=function(a){this.la.Wd=!0;var b=this.la.Mi=this.ha&&Tf(this.ha),c=a?this.la.eh?0:1:-1;this.la.eh=!1;this.fb=this.A=a;this.N&&!a&&ad(this.N);a||A(this,1024)||(this.S|=4);do{var d=this.S&3312;if(d)this.Ha|=d;else if(this.re=this.Ga,this.ka=this.vb,this.Ka=this.ta,this.D=this.C=-1,this.Ha&3072&&Se(this),this.Ha=this.S&256,this.ua){a:{if(!(this.S&4))for(var d=80286>this.ja?0:1,e=0;2>e;e++){switch(d){case 0:if(this.ua&1&&this.ca&512){var f=Uf(this.N);if(-1<=f&&(this.ua&=-2,0<=f)){this.ua&=-5;Vf.call(this,
|
||||
f);d=!0;break a}}break;case 1:if(this.ua&2){this.ua&=-3;80386<=this.ja&&(this.Ja[6]|=16384);Vf.call(this,1);d=!0;break a}}d=1-d}d=!1}if(d&&!a){this.O("interrupt dispatched");this.S=0;break}if(this.ua&4){this.S=this.A=0;break}}if(b){if(Wf(this.ha,this.Ga,c)){this.Wb();break}c=1}this.S=0;this.X[this.xa()].call(this)}while(0<this.A);return this.la.Wd?this.fb-this.A:void 0===this.la.Wd?0:-1};Qa(function(){for(var a=nb(document,"pcjs","cpu"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new Ad(d);mb(d,c)}});
|
||||
function Xf(a){Ua.call(this,"FPU",a,Xf);this.ja=a.model||8087;(a=a.stepping)&&ca(a,16);this.V=new Float64Array(8);this.aa=new Int32Array(this.V.buffer);this.pa=new Float32Array(1);this.ua=new Int32Array(this.pa.buffer);this.X=new Float64Array(1);this.L=new Int32Array(this.X.buffer);this.ea=Array(3);this.fa=this.ga=-1;this.W=this.U=this.ia=this.A=0;this.ka=new Float64Array(1);this.ra=new Int32Array(this.ka.buffer);this.ra[0]=0;this.ra[1]=268402688;Yf(this)}db(Xf);m=Xf.prototype;
|
||||
m.Ic=function(a,b,c){this.F=c;this.N=Eb(a,"ChipSet");rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)Yf(this);else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.save=function(){var a=new hf(this),b=[],c=0;b[c++]=this.kc;b[c++]=Zf(this);b[c++]=$f(this);for(var d=0;d<this.V.length;d++)b[c++]=this.V[d];N(a,0,b);return a.data()};
|
||||
m.restore=function(a){a=a[0];var b=0;this.kc=a[b++]&-57409;var c=a[b++];this.ma=c&-14337;this.B=(c&14336)>>11;ag(this);bg(this,a[b++]);for(c=0;c<this.V.length;c++)this.V[c]=a[b++];return!0};function Yf(a){a.C=0;a.kc=959;a.ma=0;a.B=0;a.N&&(a=a.N,a.ia>=cg&&dg(a,13))}function ag(a){a.ma&=-129;a.ma&~a.kc&63&&(a.ma|=128);if(a.ma&128&&!(a.kc&128))return a=a.N,a.ia>=cg?eg(a,13):a.ya&0||Vf.call(a.F,2),!0;a=a.N;a.ia>=cg&&dg(a,13);return!1}function fg(a,b){80387<=a.ia||(b&=-65);a.ma|=b;return ag(a)}
|
||||
m.restore=function(a){a=a[0];var b=0;this.kc=a[b++]&-57409;var c=a[b++];this.ma=c&-14337;this.B=(c&14336)>>11;ag(this);bg(this,a[b++]);for(c=0;c<this.V.length;c++)this.V[c]=a[b++];return!0};function Yf(a){a.C=0;a.kc=959;a.ma=0;a.B=0;a.N&&(a=a.N,a.ja>=cg&&dg(a,13))}function ag(a){a.ma&=-129;a.ma&~a.kc&63&&(a.ma|=128);if(a.ma&128&&!(a.kc&128))return a=a.N,a.ja>=cg?eg(a,13):a.ya&0||Vf.call(a.F,2),!0;a=a.N;a.ja>=cg&&dg(a,13);return!1}function fg(a,b){80387<=a.ja||(b&=-65);a.ma|=b;return ag(a)}
|
||||
function Zf(a){return a.ma|a.B<<11}function gg(a,b){return isFinite(b)?!0:!fg(a,Infinity===b?8:16)}function hg(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,gg(a,d)||(d=null));return d}function ig(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,gg(a,d)||(d=null));return d}function jg(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,gg(a,d)||(d=null));return d}function kg(a,b,c){var d=null;null==b||null==c||!c&&fg(a,2)||(d=b/c,gg(a,d)||(d=null));return d}
|
||||
function lg(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:0===b&&(d=16384));a.ma=a.ma&-18177|d;return!0}return!1}function mg(a,b,c){if(null==b)return null;var d=a.kc&3072;0==d?(d=Math.round(b),.5===d-b&&d%2&&d--):d=1024==d||3072==d&&0<b?Math.floor(b):Math.ceil(b);if(c){if(d>=c){if(fg(a,1))return null;d=-c}else if(d<-c){if(fg(a,1))return null;d=-c}a.L[0]=d|0;2147483648<c&&(a.L[1]=d/4294967296|0,!a.L[1]&&0>d&&(a.L[1]=-1))}return d}
|
||||
function ng(a,b){var c=3;if(a.C&1<<b){var d=a.V[b],c=0;0===d?c=1:isFinite(d)||(c=2)}return c}function $f(a){for(var b=0,c=a.V.length-1;0<=c;c--)b<<=2,b|=ng(a,c);return b}function bg(a,b){a.C=0;for(var c=1;128>=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function og(a){var b=a.B+0&7;return a.C&1<<b?(a.pa[0]=a.V[b],!0):fg(a,1)?!1:(a.pa[0]=a.ka[0],!0)}function pg(a){var b=a.B+0&7;return a.C&1<<b?(a.X[0]=a.V[b],!0):fg(a,1)?!1:(a.X[0]=a.ka[0],!0)}
|
||||
|
|
@ -142,10 +142,10 @@ function U(a,b){var c=null,d=a.B+b&7;a.C&1<<d?c=a.V[d]:fg(a,1)||(c=a.ka[0]);retu
|
|||
function Ig(a){a.ea[0]=a.F.oa(a.F.D);a.ea[1]=a.F.oa(a.F.D+4);a.ea[2]=a.F.na(a.F.D+8);return a.ea}m.ni=function(){this.F.nb(this.F.D,this.L[0])};m.nk=function(){this.F.nb(this.F.D,this.L[0]);this.F.nb(this.F.D+4,this.L[1])};m.qk=Xf.prototype.ni;m.pk=Xf.prototype.nk;function Jg(a){a.F.nb(a.F.D,a.ea[0]);a.F.nb(a.F.D+4,a.ea[1]);a.F.jb(a.F.D+8,a.ea[2])}
|
||||
function Kg(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.L[0]=f;a.L[1]=c|(d|e)<<20;return a.X[0]}function Dg(a,b,c){var d=c>>20&2047,e=2147483648|(c&1048575)<<11|b>>>21;2047==d?d=32767:d?d+=15360:e&=2147483647;a.ea[0]=b<<11;a.ea[1]=e;a.ea[2]=c>>16&32768|d;return a.ea}function Lg(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function Mg(a,b){for(var c=0,d=0;b--;)c|=a%10<<d,a/=10,d+=4;return c}
|
||||
function Ng(a){var b=null,c=1<<a.B;if(!(a.C&c)&&(a.ma&=-513,fg(a,65)))return b;a.C&=~c;b=a.V[a.B];a.B=a.B+1&7;return b}function Og(a,b){if(null!=b){var c=a.B-1&7,d=1<<c;if(a.C&d&&(a.ma|=512,fg(a,65)))return;if(isNaN(b)&&fg(a,1)){if(fg(a,1))return;b=NaN}a.V[a.B=c]=b;a.C|=d}}
|
||||
function Pg(a,b){var c,d=a.F;c=d.tb(b);a.kc=c&-57409;c=d.tb(b+=d.ba);a.ma=c&-14337;a.B=(c&14336)>>11;ag(a);bg(a,d.tb(b+=d.ba));!(d.Za&1)||d.ca&131072?(a.W=d.tb(b+=d.ba),c=d.tb(b+=d.ba),a.ja=c&2047,a.W|=(c&-4096)<<4,a.fa=-1,a.U=d.tb(b+=d.ba),a.U|=(d.tb(b+=d.ba)&-4096)<<4,a.ga=-1):(a.W=d.tb(b+=d.ba),c=d.tb(b+=d.ba),a.fa=c&65535,a.ja=c>>16&2047,a.U=d.tb(b+=d.ba),a.ga=d.tb(b+=d.ba)&65535);return b+d.ba}
|
||||
function Qg(a,b){var c=a.F;c.rc(b,a.kc);c.rc(b+=c.ba,Zf(a));c.rc(b+=c.ba,$f(a));if(!(c.Za&1)||c.ca&131072){var d=(a.fa<<4)+a.W;c.rc(b+=c.ba,d);c.rc(b+=c.ba,d>>4&-4096|a.ja);d=(a.ga<<4)+a.U;c.rc(b+=c.ba,d);c.rc(b+=c.ba,d>>4&-4096)}else c.rc(b+=c.ba,a.W),c.rc(b+=c.ba,a.fa|a.ja<<16),c.rc(b+=c.ba,a.U),c.rc(b+=c.ba,a.ga);return b+c.ba}var Rg=Math.log(10)/Math.LN2,Sg=Math.LOG2E,Tg=Math.PI,Ug=Math.log(2)/Math.LN10,Vg=Math.LN2,Wg=Math.pow(2,63);function Xg(){this.ma&=-32896;ag(this)}
|
||||
function Pg(a,b){var c,d=a.F;c=d.tb(b);a.kc=c&-57409;c=d.tb(b+=d.ba);a.ma=c&-14337;a.B=(c&14336)>>11;ag(a);bg(a,d.tb(b+=d.ba));!(d.Za&1)||d.ca&131072?(a.W=d.tb(b+=d.ba),c=d.tb(b+=d.ba),a.ia=c&2047,a.W|=(c&-4096)<<4,a.fa=-1,a.U=d.tb(b+=d.ba),a.U|=(d.tb(b+=d.ba)&-4096)<<4,a.ga=-1):(a.W=d.tb(b+=d.ba),c=d.tb(b+=d.ba),a.fa=c&65535,a.ia=c>>16&2047,a.U=d.tb(b+=d.ba),a.ga=d.tb(b+=d.ba)&65535);return b+d.ba}
|
||||
function Qg(a,b){var c=a.F;c.rc(b,a.kc);c.rc(b+=c.ba,Zf(a));c.rc(b+=c.ba,$f(a));if(!(c.Za&1)||c.ca&131072){var d=(a.fa<<4)+a.W;c.rc(b+=c.ba,d);c.rc(b+=c.ba,d>>4&-4096|a.ia);d=(a.ga<<4)+a.U;c.rc(b+=c.ba,d);c.rc(b+=c.ba,d>>4&-4096)}else c.rc(b+=c.ba,a.W),c.rc(b+=c.ba,a.fa|a.ia<<16),c.rc(b+=c.ba,a.U),c.rc(b+=c.ba,a.ga);return b+c.ba}var Rg=Math.log(10)/Math.LN2,Sg=Math.LOG2E,Tg=Math.PI,Ug=Math.log(2)/Math.LN10,Vg=Math.LN2,Wg=Math.pow(2,63);function Xg(){this.ma&=-32896;ag(this)}
|
||||
function Yg(){lg(this,U(this,0),U(this,this.A))}function Zg(){lg(this,U(this,0),U(this,this.A))&&Ng(this)}function $g(){Zg.call(this)}function ah(){W(this,0,kg(this,U(this,0),Gg(this)))}function bh(){this.C&=~(1<<this.B)}function ch(){Yf(this)}function dh(){this.kc=this.F.na(this.F.D)&-57409}function eh(){Pg(this,this.F.D)}function fh(){for(var a=this.F,b=Pg(this,a.D),c=this.ea,d=0;d<this.V.length;d++)c[0]=a.oa(b),c[1]=a.oa(b+=4),c[2]=a.na(b+=4),c&&W(this,d,Kg(this,c)),b+=2}
|
||||
function gh(){for(var a=this.F,b=Qg(this,a.D),c=0;c<this.V.length;c++){var d=Cg(this,c,!0);a.nb(b,d[0]);a.nb(b+=4,d[1]);a.jb(b+=4,d[2]);b+=2}Yf(this)}function hh(){Qg(this,this.F.D);this.kc|=63}function ih(){W(this,this.A,U(this,0))&&Ng(this)}function jh(){ih.call(this)}function kh(){this.F.jb(this.F.D,this.kc)}function lh(){this.F.jb(this.F.D,Zf(this))}function mh(){80287<=this.ia&&(this.F.G=this.F.G&-65536|Zf(this))}function nh(){var a=U(this,0);W(this,0,U(this,this.A));W(this,this.A,a)}
|
||||
function gh(){for(var a=this.F,b=Qg(this,a.D),c=0;c<this.V.length;c++){var d=Cg(this,c,!0);a.nb(b,d[0]);a.nb(b+=4,d[1]);a.jb(b+=4,d[2]);b+=2}Yf(this)}function hh(){Qg(this,this.F.D);this.kc|=63}function ih(){W(this,this.A,U(this,0))&&Ng(this)}function jh(){ih.call(this)}function kh(){this.F.jb(this.F.D,this.kc)}function lh(){this.F.jb(this.F.D,Zf(this))}function mh(){80287<=this.ja&&(this.F.G=this.F.G&-65536|Zf(this))}function nh(){var a=U(this,0);W(this,0,U(this,this.A));W(this,this.A,a)}
|
||||
function oh(){nh.call(this)}
|
||||
var ph={216:{0:function(){W(this,0,hg(this,U(this,0),Gg(this)))},1:function(){W(this,0,jg(this,U(this,0),Gg(this)))},2:function(){lg(this,U(this,0),Gg(this))},3:function(){lg(this,U(this,0),Gg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Gg(this)))},5:function(){W(this,0,ig(this,Gg(this),U(this,0)))},6:ah,7:ah,48:function(){W(this,0,hg(this,U(this,0),U(this,this.A)))},49:function(){W(this,0,jg(this,U(this,0),U(this,this.A)))},50:Yg,51:Zg,52:function(){W(this,0,ig(this,U(this,0),U(this,
|
||||
this.A)))},53:function(){W(this,0,ig(this,U(this,this.A),U(this,0)))},54:function(){W(this,0,kg(this,U(this,0),U(this,this.A)))},55:function(){W(this,0,kg(this,U(this,this.A),U(this,0)))}},217:{0:function(){Og(this,Gg(this))},2:function(){og(this)&&this.qk()},3:function(){og(this)&&(this.qk(),Ng(this))},4:eh,5:dh,6:hh,7:kh,48:function(){Og(this,U(this,this.A))},49:nh,50:function(){},51:jh,64:function(){W(this,0,-U(this,0))},65:function(){W(this,0,Math.abs(U(this,0)))},68:function(){lg(this,U(this,
|
||||
|
|
@ -153,7 +153,7 @@ this.A)))},53:function(){W(this,0,ig(this,U(this,this.A),U(this,0)))},54:functio
|
|||
1,U(this,1)*Math.log(U(this,0))/Math.LN2)&&Ng(this)},98:function(){W(this,0,Math.tan(U(this,0)))&&Og(this,1)},99:function(){W(this,1,Math.atan2(U(this,1),U(this,0)))&&Ng(this)},100:function(){var a=U(this,0);null!=a&&(this.X[0]=a,W(this,0,(this.L[1]>>20&2047)-1023),this.L[1]=(this.L[1]|1072693248)&-1073741825,Og(this,this.X[0]))},102:function(){this.B=this.B-1&7;this.ma&=-513},103:function(){this.B=this.B+1&7;this.ma&=-513},112:function(){W(this,0,U(this,0)%U(this,1))},113:function(){W(this,1,U(this,
|
||||
1)*Math.log(U(this,0)+1)/Math.LN2)&&Ng(this)},114:function(){var a=U(this,0),b=null;if(0<=a||!fg(this,1))b=Math.sqrt(a),gg(this,b)||(b=null);W(this,0,b)},116:function(){W(this,0,mg(this,U(this,0),Wg))},117:function(){var a=U(this,0),b=U(this,1);null!=a&&null!=b&&W(this,0,a*Math.pow(2,0<b?Math.floor(b):Math.ceil(b)))}},218:{0:function(){W(this,0,hg(this,U(this,0),Fg(this)))},1:function(){W(this,0,jg(this,U(this,0),Fg(this)))},2:function(){lg(this,U(this,0),Fg(this))},3:function(){lg(this,U(this,0),
|
||||
Fg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Fg(this)))},5:function(){W(this,0,ig(this,Fg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Fg(this)))},7:function(){W(this,0,kg(this,Fg(this),U(this,0)))}},219:{0:function(){Og(this,Fg(this))},2:function(){null!=mg(this,U(this,0),2147483648)&&this.ni()},3:function(){null!=mg(this,U(this,0),2147483648)&&(this.ni(),Ng(this))},5:function(){Og(this,Kg(this,Ig(this)))},7:function(){Cg(this,0)&&(Jg(this),Ng(this))},64:function(){8087==
|
||||
this.ia&&(this.kc&=-129)},65:function(){8087==this.ia&&(this.kc|=128)},66:Xg,67:ch,68:function(){},115:function(){}},220:{0:function(){W(this,0,hg(this,U(this,0),Hg(this)))},1:function(){W(this,0,jg(this,U(this,0),Hg(this)))},2:function(){lg(this,U(this,0),Hg(this))},3:function(){lg(this,U(this,0),Hg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Hg(this)))},5:function(){W(this,0,ig(this,Hg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Hg(this)))},7:function(){W(this,0,kg(this,
|
||||
this.ja&&(this.kc&=-129)},65:function(){8087==this.ja&&(this.kc|=128)},66:Xg,67:ch,68:function(){},115:function(){}},220:{0:function(){W(this,0,hg(this,U(this,0),Hg(this)))},1:function(){W(this,0,jg(this,U(this,0),Hg(this)))},2:function(){lg(this,U(this,0),Hg(this))},3:function(){lg(this,U(this,0),Hg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Hg(this)))},5:function(){W(this,0,ig(this,Hg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Hg(this)))},7:function(){W(this,0,kg(this,
|
||||
Hg(this),U(this,0)))},48:function(){W(this,this.A,hg(this,U(this,this.A),U(this,0)))},49:function(){W(this,this.A,jg(this,U(this,this.A),U(this,0)))},50:function(){Yg.call(this)},51:$g,52:function(){W(this,this.A,ig(this,U(this,0),U(this,this.A)))},53:function(){W(this,this.A,ig(this,U(this,this.A),U(this,0)))},54:function(){W(this,this.A,kg(this,U(this,0),U(this,this.A)))},55:function(){W(this,this.A,kg(this,U(this,this.A),U(this,0)))}},221:{0:function(){Og(this,Hg(this))},2:function(){pg(this)&&
|
||||
this.pk()},3:function(){pg(this)&&(this.pk(),Ng(this))},4:fh,6:gh,7:lh,48:bh,49:oh,50:function(){W(this,this.A,U(this,0))},51:ih},222:{0:function(){W(this,0,hg(this,U(this,0),Eg(this)))},1:function(){W(this,0,jg(this,U(this,0),Eg(this)))},2:function(){lg(this,U(this,0),Eg(this))},3:function(){lg(this,U(this,0),Eg(this))&&Ng(this)},4:function(){W(this,0,ig(this,U(this,0),Eg(this)))},5:function(){W(this,0,ig(this,Eg(this),U(this,0)))},6:function(){W(this,0,kg(this,U(this,0),Eg(this)))},7:function(){W(this,
|
||||
0,kg(this,Eg(this),U(this,0)))},48:function(){W(this,this.A,hg(this,U(this,this.A),U(this,0)))&&Ng(this)},49:function(){W(this,this.A,jg(this,U(this,this.A),U(this,0)))&&Ng(this)},50:$g,51:function(){lg(this,U(this,0),U(this,1))&&null!=Ng(this)&&Ng(this)},52:function(){W(this,this.A,ig(this,U(this,0),U(this,this.A)))&&Ng(this)},53:function(){W(this,this.A,ig(this,U(this,this.A),U(this,0)))&&Ng(this)},54:function(){W(this,this.A,kg(this,U(this,0),U(this,this.A)))&&Ng(this)},55:function(){W(this,this.A,
|
||||
|
|
@ -166,15 +166,15 @@ function Bh(a,b){a&1<<(b&(2==this.ba?15:31))?wf(this):xf(this);this.A-=-1===this
|
|||
function Fh(a,b){if(-1===this.D)return Bh.call(this,a,b);var c=this.ba<<3;if(b>=c||b<-c)a=Lf(this,this.$b,this.Ca+(b>>(2==this.ba?4:5))*this.ba);b=1<<(b&(2==this.ba?15:31));a&b?wf(this):xf(this);this.A-=6;this.S|=2;return a}function Gh(a,b){if(-1===this.D)return Ch.call(this,a,b);var c=this.ba<<3;if(b>=c||b<-c)a=Lf(this,this.$b,this.Ca+(b>>(2==this.ba?4:5))*this.ba);b=1<<(b&(2==this.ba?15:31));a&b?wf(this):xf(this);this.A-=8;return a^b}
|
||||
function Hh(a,b){if(-1===this.D)return Dh.call(this,a,b);var c=this.ba<<3;if(b>=c||b<-c)a=Lf(this,this.$b,this.Ca+(b>>(2==this.ba?4:5))*this.ba);b=1<<(b&(2==this.ba?15:31));a&b?wf(this):xf(this);this.A-=8;return a&~b}function Ih(a,b){if(-1===this.D)return Eh.call(this,a,b);var c=this.ba<<3;if(b>=c||b<-c)a=Lf(this,this.$b,this.Ca+(b>>(2==this.ba?4:5))*this.ba);b=1<<(b&(2==this.ba?15:31));a&b?wf(this):xf(this);this.A-=8;return a|b}
|
||||
function Jh(a,b){of(this,a,b,a-b|0,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.zh:this.B.Vb;this.S|=2;return a}function Kh(a,b){of(this,a,b,a-b|0,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.zh:this.B.Vb;this.S|=2;return a}
|
||||
function Lh(a){if(this.Tb){var b=this.Tb,c=this.ig,d=this.L,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=ph[c][f]){if(0>qh.indexOf(e)){var f=b.F,g=f.re;8087==b.ia&&(f.Ha&16&&g++,f.Ha&32&&g++);b.fa=f.va.Z;b.W=g-f.va.Aa;-1!==f.D&&(b.ga=f.$b.Z,b.U=f.D-f.$b.Aa);b.ja=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.D?2:8;return a}function Mh(a){if(80186>this.ia)return Nh.call(this,a);C.call(this,13,0);return a}function Zd(a){C.call(this,6);return a}
|
||||
function Nh(a){ge.call(this);return a}function Oh(a,b){var c=Ph.call(this,this.T(),b);80386>this.ia&&(this.A-=12);return c}function Qh(a,b){var c;a=this.Ma();c=2==this.ba?Ph.call(this,a,b):Rh.call(this,a,b);80386>this.ia&&(this.A-=12);return c}function Sh(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Th.call(this,a,b);c&&(this.ja=~this.ja+1|0,this.wa=~this.wa+(this.ja?0:1)|0)}
|
||||
function Ph(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(wf(this),yf(this)):(xf(this),zf(this));this.A-=-1===this.D?9:12;return c&65535}function Rh(a,b){Sh.call(this,a,b);this.wa!=this.ja>>31?(wf(this),yf(this)):(xf(this),zf(this));this.A-=-1===this.D?9:12;return this.ja}function Uh(a,b){this.A-=14+(-1===this.D?0:2);Df(this);-1!==this.Ea.load(b)&&this.Ea.Gc>=this.pa&&this.Ea.Gc>=(b&3)&&(Ff(this),a=this.Ea.wb&-256,2<this.ba&&(a|=(this.Ea.ext&-65281)<<16));return a}
|
||||
function Lh(a){if(this.Tb){var b=this.Tb,c=this.ig,d=this.L,e=d>>3&7;b.A=d&7;var f=(3>(d>>6&3)?0:48)+e;(217==c||219==c)&&52<=f&&(f=e<<4|b.A);if(e=ph[c][f]){if(0>qh.indexOf(e)){var f=b.F,g=f.re;8087==b.ja&&(f.Ha&16&&g++,f.Ha&32&&g++);b.fa=f.va.Z;b.W=g-f.va.Aa;-1!==f.D&&(b.ga=f.$b.Z,b.U=f.D-f.$b.Aa);b.ia=(c&7)<<8|d}e.call(b)}}this.A-=-1===this.D?2:8;return a}function Mh(a){if(80186>this.ja)return Nh.call(this,a);C.call(this,13,0);return a}function Zd(a){C.call(this,6);return a}
|
||||
function Nh(a){ge.call(this);return a}function Oh(a,b){var c=Ph.call(this,this.T(),b);80386>this.ja&&(this.A-=12);return c}function Qh(a,b){var c;a=this.Ma();c=2==this.ba?Ph.call(this,a,b):Rh.call(this,a,b);80386>this.ja&&(this.A-=12);return c}function Sh(a,b){var c=!1;0>b&&(b=-b|0,c=!c);0>a&&(a=-a|0,c=!c);Th.call(this,a,b);c&&(this.ia=~this.ia+1|0,this.wa=~this.wa+(this.ia?0:1)|0)}
|
||||
function Ph(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(wf(this),yf(this)):(xf(this),zf(this));this.A-=-1===this.D?9:12;return c&65535}function Rh(a,b){Sh.call(this,a,b);this.wa!=this.ia>>31?(wf(this),yf(this)):(xf(this),zf(this));this.A-=-1===this.D?9:12;return this.ia}function Uh(a,b){this.A-=14+(-1===this.D?0:2);Df(this);-1!==this.Ea.load(b)&&this.Ea.Gc>=this.pa&&this.Ea.Gc>=(b&3)&&(Ff(this),a=this.Ea.wb&-256,2<this.ba&&(a|=(this.Ea.ext&-65281)<<16));return a}
|
||||
function Vh(a,b){if(-1===this.D)return ge.call(this),a;pd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b}function Wh(){this.A-=this.B.Ej;return this.D}function Xh(a,b){if(-1===this.D)return ge.call(this),a;vd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b}function Yh(a,b){if(-1===this.D)return ge.call(this),a;var c=this.na(this.D+this.ba);this.Nb.load(c);this.A-=this.B.of;return b}
|
||||
function Zh(a,b){if(-1===this.D)return ge.call(this),a;var c=this.na(this.D+this.ba);this.Ob.load(c);this.A-=this.B.of;return b}function $h(a,b){this.A-=14+(-1===this.D?0:2);if(b&65528&&-1!==this.Ea.load(b)&&(7168==(this.Ea.wb&7168)||this.Ea.Gc>=this.pa)&&this.Ea.Gc>=(b&3))return Ff(this),this.Ea.Ta;Df(this);return a}function ai(a,b){if(-1===this.D)return ge.call(this),a;jd(this,this.na(this.D+this.ba));this.A-=this.B.of;return b}
|
||||
function bi(a,b){this.A-=-1===this.C?-1===this.D?this.B.Lj:this.B.Kj:this.B.Ij;return b}function ci(a,b){switch(this.L>>3&7){case 4:this.aa=this.G;break;case 5:this.aa=this.I;break;case 6:this.aa=this.M;break;case 7:this.aa=this.H}return b}function di(a,b){return b}
|
||||
function ei(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ia||80386==this.ia&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return bi.call(this,0,b)}
|
||||
function fi(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ia){b=this.Nb.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ia){b=this.Ob.Z;break}default:C.call(this,6),b=a}-1!==this.C&&md(this,2);return bi.call(this,0,b)}
|
||||
function Th(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ja=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ja=a*b|0,this.wa=0}function gi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function hi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R}
|
||||
function ei(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ja||80386==this.ja&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return bi.call(this,0,b)}
|
||||
function fi(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ja){b=this.Nb.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ja){b=this.Ob.Z;break}default:C.call(this,6),b=a}-1!==this.C&&md(this,2);return bi.call(this,0,b)}
|
||||
function Th(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ia=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ia=a*b|0,this.wa=0}function gi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function hi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R}
|
||||
function ii(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function ji(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ki(){return uf(this)?1:0}function li(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0}
|
||||
function Hi(){return pf(this)||sf(this)?0:1}function Ii(){return tf(this)?1:0}function Ji(){return tf(this)?0:1}function Ki(){return qf(this)?1:0}function Li(){return qf(this)?0:1}function Mi(){return!tf(this)!=!uf(this)?1:0}function Ni(){return!tf(this)!=!uf(this)?0:1}function Oi(){return sf(this)||!tf(this)!=!uf(this)?1:0}function Pi(){return sf(this)||!tf(this)!=!uf(this)?0:1}function Qi(a,b){return Ri.call(this,a,b,this.xa())}function Si(a,b){return Ti.call(this,a,b,this.xa())}
|
||||
function Ui(a,b){return Ri.call(this,a,b,this.I&31)}function Vi(a,b){return Ti.call(this,a,b,this.I&31)}function Wi(a,b){return Xi.call(this,a,b,this.xa())}function Yi(a,b){return Zi.call(this,a,b,this.xa())}function $i(a,b){return Xi.call(this,a,b,this.I&31)}function aj(a,b){return Zi.call(this,a,b,this.I&31)}function bj(a,b){var c=a-b|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}
|
||||
|
|
@ -182,12 +182,12 @@ function cj(a,b){var c=a-b|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1
|
|||
function gj(a,b){return b>>(this.G&this.R)&(1<<(this.I&31))-1&this.R}function hj(a,b){if(-1===this.D){switch(this.L&7){case 0:this.G=this.G&-256|a;break;case 1:this.I=this.I&-256|a;break;case 2:this.M=this.M&-256|a;break;case 3:this.H=this.H&-256|a;break;case 4:this.G=this.G&-65281|a<<8;break;case 5:this.I=this.I&-65281|a<<8;break;case 6:this.M=this.M&-65281|a<<8;break;case 7:this.H=this.H&-65281|a<<8}this.A-=this.B.ci}else this.C=this.D,Of(this,a),this.A-=this.B.bi;return b}
|
||||
function ij(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:G(this,I(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.ci}else this.C=this.D,this.S&2||this.rc(this.$b.oc(this.Ca,this.ba),a),this.A-=this.B.bi;return b}
|
||||
function jj(a,b){var c=a^b;vf(this,c,128);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c}function kj(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a^b,this.Ia)&this.R}function lj(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}function mj(a){var b=a-1|0;of(this,a,1,b,this.Ia|62,!0);this.A-=2;return a&~this.R|b&this.R}
|
||||
function nj(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<lj(a,c);){var f=b=c;b[0]+=f[0];b[1]+=f[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=lj(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.ja=d;this.wa=a[0];return!0}function oj(a){var b=a+1|0;of(this,a,1,b,this.Ia|62);this.A-=2;return a&~this.R|b&this.R}
|
||||
function nj(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<lj(a,c);){var f=b=c;b[0]+=f[0];b[1]+=f[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=lj(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.wa=a[0];return!0}function oj(a){var b=a+1|0;of(this,a,1,b,this.Ia|62);this.A-=2;return a&~this.R|b&this.R}
|
||||
function pj(a){this.Za=a;ld(this);this.Za&-2147483648?re(this):te(this)}function zd(a){this.Pd=a;Ub(this)}function qj(a){this.S|=1;this.$a.call(this,a);this.A-=-1===this.D?4:5}function Ri(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a<<c-1;a=(d<<1|b>>>16-c)&65535;vf(this,a,32768,d&32768)}return a}function Ti(a,b,c){if(c){var d=a<<c-1;a=d<<1|b>>>32-c;vf(this,a,-2147483648,d&-2147483648)}return a}
|
||||
function Xi(a,b,c){if(c){16<c&&(a=b,c-=16);var d=a>>>c-1;a=(d>>>1|b<<16-c)&65535;vf(this,a,32768,d&1)}return a}function Zi(a,b,c){if(c){var d=a>>>c-1;a=d>>>1|b<<32-c;vf(this,a,-2147483648,d&1)}return a}function rj(){this.A-=-1===this.D?2:this.B.Yj;return 1}function sj(){var a=this.I&255;this.A-=(-1===this.D?this.B.Uh:this.B.Th)+(a<<this.B.Vh);return a}function tj(){var a=this.xa();this.A-=(-1===this.D?this.B.Uh:this.B.Th)+(a<<this.B.Vh);return a}function uj(){return null}
|
||||
function vj(){return this.aa}function wj(a,b){this.bc=this.va.Z;this.sb=this.ta.Z;this.U=this.ga;var c=K(this),d=this.ba;null!=yd(this,a,b,!0)&&(od(this,this.bc,d,2),od(this,c,d,d));this.bc=this.sb=this.U=-1}function xj(a,b,c){this.A-=this.B.wj+(c||0);c=wd(this);var d=this.va.Z,e=K(this);a=this.va.Wi(a);-1!==a&&(J(this,c),J(this,d),J(this,e),null!=b&&J(this,b),this.rb=-1,lf(this,a))}
|
||||
function yj(a){this.sb=this.ta.Z;this.U=this.ga;var b=D(this),c=D(this);a&&G(this,I(this)+a);yd(this,b,c,!1)&&(a&&G(this,I(this)+a),zj.call(this,this.vb),zj.call(this,this.Xa),80386<=this.ia&&(zj.call(this,this.Nb),zj.call(this,this.Ob)));2==a&&this.ne&&ef(this,this.Ga);this.sb=this.U=-1}function Aj(){8086==this.ia?(this.rb=-1,xj.call(this,0,null,2)):C.call(this,0,null,2)}function Vf(a,b){this.rb=a;void 0===b&&(b=11);xj.call(this,a,null,b)}
|
||||
function C(a,b,c,d){var e=!1;this.la.Wd?80186<=this.ia&&(e=!0,0>this.rb?(-1!=this.bc&&(this.bc!==this.va.Z&&(this.va.Lb=this.bc&3,kf(this,this.bc)),this.bc=-1),this.re!==this.Ga&&lf(this,this.re),-1!=this.sb&&(this.sb!==this.ta.Z&&jd(this,this.sb),this.sb=-1),-1!==this.U&&(this.U!==this.ga&&G(this,this.gb&~this.ta.Ba|this.U-this.ta.Aa),this.U=-1)):8!=this.rb?(b=0,a=8):(b=0,a=-1,pe(this),e=d=!1)):lf(this,this.re);var f=a,g=b,h=32,k=If(this,this.Ga);204!=k||this.Td||(d=!1);this.ca&131072&&(6==f&&99==
|
||||
function yj(a){this.sb=this.ta.Z;this.U=this.ga;var b=D(this),c=D(this);a&&G(this,I(this)+a);yd(this,b,c,!1)&&(a&&G(this,I(this)+a),zj.call(this,this.vb),zj.call(this,this.Xa),80386<=this.ja&&(zj.call(this,this.Nb),zj.call(this,this.Ob)));2==a&&this.ne&&ef(this,this.Ga);this.sb=this.U=-1}function Aj(){8086==this.ja?(this.rb=-1,xj.call(this,0,null,2)):C.call(this,0,null,2)}function Vf(a,b){this.rb=a;void 0===b&&(b=11);xj.call(this,a,null,b)}
|
||||
function C(a,b,c,d){var e=!1;this.la.Wd?80186<=this.ja&&(e=!0,0>this.rb?(-1!=this.bc&&(this.bc!==this.va.Z&&(this.va.Lb=this.bc&3,kf(this,this.bc)),this.bc=-1),this.re!==this.Ga&&lf(this,this.re),-1!=this.sb&&(this.sb!==this.ta.Z&&jd(this,this.sb),this.sb=-1),-1!==this.U&&(this.U!==this.ga&&G(this,this.gb&~this.ta.Ba|this.U-this.ta.Aa),this.U=-1)):8!=this.rb?(b=0,a=8):(b=0,a=-1,pe(this),e=d=!1)):lf(this,this.re);var f=a,g=b,h=32,k=If(this,this.Ga);204!=k||this.Td||(d=!1);this.ca&131072&&(6==f&&99==
|
||||
k||13==f&&205==k)&&(d=!1);!1===d&&(h|=1);983040<=this.Ga&&1048575>=this.Ga&&(d=!1);A(this,h|-2147483648)&&(d=!0);if(A(this,h)||d){var l=this.la.Ib,f="Fault "+t(f)+(null!=g?" ("+u(g)+")":"")+" on opcode "+t(k);d&&l&&(f+=" (blocked)");this.ha?(y(this,f,d||h,!0),d&&(d=l,this.ha.Wb())):(this.Na(f),this.Wb())}if(d&&e)throw-1;if(e)throw this.rb=a,xj.call(this,a,b,c),this.re=this.Ga,this.S=1==a?this.S|8192:this.S|4096,a;}
|
||||
function se(a,b,c){this.te=a;a=0;b&&(a|=1);c&&(a|=2);3==this.pa&&(a|=4);C.call(this,14,a)}function zj(a){var b=a.wb&7680;a.Z&65528&&(6144==b||7168==b||7168>b&&a.Gc<this.pa&&a.Gc<(a.Z&3))&&a.load(0)}
|
||||
function xe(a){var b,c;switch((this.L=this.xa())&199){case 0:c=Q(this,this.H+this.K);this.A-=this.B.ed;break;case 1:c=Q(this,this.H+this.J);this.A-=this.B.fd;break;case 2:c=Kf(this,this.P+this.K);this.A-=this.B.fd;break;case 3:c=Kf(this,this.P+this.J);this.A-=this.B.ed;break;case 4:c=Q(this,this.K);this.A-=this.B.Jc;break;case 5:c=Q(this,this.J);this.A-=this.B.Jc;break;case 6:c=Q(this,T(this));this.A-=this.B.Kd;break;case 7:c=Q(this,this.H);this.A-=this.B.Jc;break;case 64:c=Q(this,this.H+this.K+this.T());
|
||||
|
|
@ -250,7 +250,7 @@ function Ie(a,b){var c,d=(this.L=this.xa())&199;switch(d){case 0:c=Q(this,this.G
|
|||
this.C=this.D;break;case 66:c=Q(this,this.M+this.T());this.C=this.D;break;case 67:c=Q(this,this.H+this.T());this.C=this.D;break;case 68:c=Q(this,Bj.call(this,1)+this.T());this.C=this.D;break;case 69:c=Kf(this,this.P+this.T());this.C=this.D;break;case 70:c=Q(this,this.K+this.T());this.C=this.D;break;case 71:c=Q(this,this.J+this.T());this.C=this.D;break;case 128:c=Q(this,this.G+T(this));this.C=this.D;break;case 129:c=Q(this,this.I+T(this));this.C=this.D;break;case 130:c=Q(this,this.M+T(this));this.C=
|
||||
this.D;break;case 131:c=Q(this,this.H+T(this));this.C=this.D;break;case 132:c=Q(this,Bj.call(this,2)+T(this));this.C=this.D;break;case 133:c=Kf(this,this.P+T(this));this.C=this.D;break;case 134:c=Q(this,this.K+T(this));this.C=this.D;break;case 135:c=Q(this,this.J+T(this));this.C=this.D;break;case 192:c=this.G&255;break;case 193:c=this.I&255;break;case 194:c=this.M&255;break;case 195:c=this.H&255;break;case 196:c=this.G>>8&255;break;case 197:c=this.I>>8&255;break;case 198:c=this.M>>8&255;break;case 199:c=
|
||||
this.H>>8&255;break;default:c=0}c=a[this.L>>3&7].call(this,c,b.call(this));switch(d){case 192:this.G=this.G&-256|c;break;case 193:this.I=this.I&-256|c;break;case 194:this.M=this.M&-256|c;break;case 195:this.H=this.H&-256|c;break;case 196:this.G=this.G&-65281|c<<8;break;case 197:this.I=this.I&-65281|c<<8;break;case 198:this.M=this.M&-65281|c<<8;break;case 199:this.H=this.H&-65281|c<<8;break;default:Of(this,c)}}
|
||||
function Le(a){var b,c;switch((this.L=this.xa())&199){case 0:c=R(this,this.G);break;case 1:c=R(this,this.I);break;case 2:c=R(this,this.M);break;case 3:c=R(this,this.H);break;case 4:c=R(this,Bj.call(this,0));break;case 5:c=R(this,T(this));break;case 6:c=R(this,this.K);break;case 7:c=R(this,this.J);break;case 64:c=R(this,this.G+this.T());break;case 65:c=R(this,this.I+this.T());break;case 66:c=R(this,this.M+this.T());break;case 67:c=R(this,this.H+this.T());break;case 68:c=R(this,Bj.call(this,1)+this.T());
|
||||
function Je(a){var b,c;switch((this.L=this.xa())&199){case 0:c=R(this,this.G);break;case 1:c=R(this,this.I);break;case 2:c=R(this,this.M);break;case 3:c=R(this,this.H);break;case 4:c=R(this,Bj.call(this,0));break;case 5:c=R(this,T(this));break;case 6:c=R(this,this.K);break;case 7:c=R(this,this.J);break;case 64:c=R(this,this.G+this.T());break;case 65:c=R(this,this.I+this.T());break;case 66:c=R(this,this.M+this.T());break;case 67:c=R(this,this.H+this.T());break;case 68:c=R(this,Bj.call(this,1)+this.T());
|
||||
break;case 69:c=Mf(this,this.P+this.T());break;case 70:c=R(this,this.K+this.T());break;case 71:c=R(this,this.J+this.T());break;case 128:c=R(this,this.G+T(this));break;case 129:c=R(this,this.I+T(this));break;case 130:c=R(this,this.M+T(this));break;case 131:c=R(this,this.H+T(this));break;case 132:c=R(this,Bj.call(this,2)+T(this));break;case 133:c=Mf(this,this.P+T(this));break;case 134:c=R(this,this.K+T(this));break;case 135:c=R(this,this.J+T(this));break;case 192:c=this.G&65535;break;case 193:c=this.I&
|
||||
65535;break;case 194:c=this.M&65535;break;case 195:c=this.H&65535;break;case 196:c=I(this)&65535;break;case 197:c=this.P&65535;break;case 198:c=this.K&65535;break;case 199:c=this.J&65535;break;default:c=0}var d=this.L>>3&7;switch(d){case 0:b=this.G&65535;break;case 1:b=this.I&65535;break;case 2:b=this.M&65535;break;case 3:b=this.H&65535;break;case 4:b=I(this)&65535;break;case 5:b=this.P&65535;break;case 6:b=this.K&65535;break;case 7:b=this.J&65535;break;default:b=0}a=a.call(this,b,c);switch(d){case 0:this.G=
|
||||
this.G&-65536|a;break;case 1:this.I=this.I&-65536|a;break;case 2:this.M=this.M&-65536|a;break;case 3:this.H=this.H&-65536|a;break;case 4:G(this,I(this)&-65536|a);break;case 5:this.P=this.P&-65536|a;break;case 6:this.K=this.K&-65536|a;break;case 7:this.J=this.J&-65536|a}}
|
||||
|
|
@ -296,13 +296,13 @@ function(){this.G=this.G&~this.R|sh.call(this,this.G&this.R,this.Ma());this.A--}
|
|||
function(){od(this,this.vb.Z,this.ba,2);this.A-=this.B.Ie},function(){this.U=this.ga;pd(this,D(this));this.A-=this.B.zc;this.U=-1},function(){this.$a.call(this,vh)},function(){this.fa.call(this,wh)},function(){this.Oa.call(this,vh)},function(){this.W.call(this,wh)},function(){this.G=this.G&-256|vh.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|wh.call(this,this.G&this.R,this.Ma());this.A--},function(){this.S|=20;this.ka=this.Ka=this.Xa;this.A-=this.B.od},function(){var a=
|
||||
this.G&255,b=rf(this),c=pf(this);9<(a&15)||b?(a+=6,b=16):b=0;159<a||c?(a+=96,c=1):c=0;a&=255;this.G=this.G&-256|a;vf(this,a,128);c?wf(this):xf(this);b?Ef(this):Cf(this);this.A-=this.B.He},function(){this.$a.call(this,bj)},function(){this.fa.call(this,cj)},function(){this.Oa.call(this,bj)},function(){this.W.call(this,cj)},function(){this.G=this.G&-256|bj.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|cj.call(this,this.G&this.R,this.Ma());this.A--},function(){this.S|=20;
|
||||
this.ka=this.Ka=this.va;this.A-=this.B.od},function(){var a=this.G&255,b=rf(this),c=pf(this);9<(a&15)||b?(a-=6,b=16):b=0;159<a||c?(a-=96,c=1):c=0;a&=255;this.G=this.G&-256|a;vf(this,a,128);c?wf(this):xf(this);b?Ef(this):Cf(this);this.A-=this.B.He},function(){this.$a.call(this,jj)},function(){this.fa.call(this,kj)},function(){this.Oa.call(this,jj)},function(){this.W.call(this,kj)},function(){this.G=this.G&-256|jj.call(this,this.G&255,this.xa());this.A--},function(){this.G=this.G&~this.R|kj.call(this,
|
||||
this.G&this.R,this.Ma());this.A--},function(){this.S|=20;this.ka=this.Ka=this.ta;this.A-=this.B.od},function(){var a,b,c=this.G&255,d=this.G>>8&255;9<(c&15)||rf(this)?(c+=6,80286<=this.ia&&255<c&&d++,d++,a=b=1):a=b=0;this.G=this.G&-65536|(d<<8|c)&65295;a?wf(this):xf(this);b?Ef(this):Cf(this);this.A-=this.B.He},function(){this.$a.call(this,Jh)},function(){this.fa.call(this,Kh)},function(){this.Oa.call(this,Jh)},function(){this.W.call(this,Kh)},function(){Jh.call(this,this.G&255,this.xa());this.A--},
|
||||
this.G&this.R,this.Ma());this.A--},function(){this.S|=20;this.ka=this.Ka=this.ta;this.A-=this.B.od},function(){var a,b,c=this.G&255,d=this.G>>8&255;9<(c&15)||rf(this)?(c+=6,80286<=this.ja&&255<c&&d++,d++,a=b=1):a=b=0;this.G=this.G&-65536|(d<<8|c)&65295;a?wf(this):xf(this);b?Ef(this):Cf(this);this.A-=this.B.He},function(){this.$a.call(this,Jh)},function(){this.fa.call(this,Kh)},function(){this.Oa.call(this,Jh)},function(){this.W.call(this,Kh)},function(){Jh.call(this,this.G&255,this.xa());this.A--},
|
||||
function(){Kh.call(this,this.G&this.R,this.Ma());this.A--},function(){this.S|=20;this.ka=this.Ka=this.vb;this.A-=this.B.od},function(){var a,b,c=this.G&255,d=this.G>>8&255;9<(c&15)||rf(this)?(c=c-6&15,d=d-1&255,a=b=1):a=b=0;this.G=this.G&-65536|d<<8|c;a?wf(this):xf(this);b?Ef(this):Cf(this);this.A-=this.B.He},function(){this.G=oj.call(this,this.G)},function(){this.I=oj.call(this,this.I)},function(){this.M=oj.call(this,this.M)},function(){this.H=oj.call(this,this.H)},function(){G(this,oj.call(this,
|
||||
I(this)))},function(){this.P=oj.call(this,this.P)},function(){this.K=oj.call(this,this.K)},function(){this.J=oj.call(this,this.J)},function(){this.G=mj.call(this,this.G)},function(){this.I=mj.call(this,this.I)},function(){this.M=mj.call(this,this.M)},function(){this.H=mj.call(this,this.H)},function(){G(this,mj.call(this,I(this)))},function(){this.P=mj.call(this,this.P)},function(){this.K=mj.call(this,this.K)},function(){this.J=mj.call(this,this.J)},function(){J(this,this.G&this.R);this.A-=this.B.Sc},
|
||||
function(){J(this,this.I&this.R);this.A-=this.B.Sc},function(){J(this,this.M&this.R);this.A-=this.B.Sc},function(){J(this,this.H&this.R);this.A-=this.B.Sc},function(){J(this,I(this)-2&65535);this.A-=this.B.Sc},function(){J(this,this.P&this.R);this.A-=this.B.Sc},function(){J(this,this.K&this.R);this.A-=this.B.Sc},function(){J(this,this.J&this.R);this.A-=this.B.Sc},function(){this.G=this.G&~this.R|D(this);this.A-=this.B.zc},function(){this.I=this.I&~this.R|D(this);this.A-=this.B.zc},function(){this.M=
|
||||
this.M&~this.R|D(this);this.A-=this.B.zc},function(){this.H=this.H&~this.R|D(this);this.A-=this.B.zc},function(){G(this,I(this)&~this.R|D(this));this.A-=this.B.zc},function(){this.P=this.P&~this.R|D(this);this.A-=this.B.zc},function(){this.K=this.K&~this.R|D(this);this.A-=this.B.zc},function(){this.J=this.J&~this.R|D(this);this.A-=this.B.zc},Cj,Dj,Ej,Fj,Gj,Hj,Ij,Jj,Kj,Lj,Mj,Nj,Oj,Pj,Qj,Rj,Cj,Dj,Ej,Fj,Gj,Hj,Ij,Jj,Kj,Lj,Mj,Nj,Oj,Pj,Qj,Rj,Sj,function(){this.ya.call(this,hk,this.Ma);this.A-=-1===this.C?
|
||||
1:this.B.Dg},Sj,function(){this.ya.call(this,hk,this.T);this.A-=-1===this.C?1:this.B.Dg},function(){this.$a.call(this,dj)},function(){this.fa.call(this,ej)},function(){this.Oa.call(this,hj)},function(){this.W.call(this,ij)},Uj,Vj,Wj,Xj,function(){this.S|=1;this.fa.call(this,fi)},function(){this.S|=1;this.ka=this.Ka=this.qf;this.W.call(this,Wh)},function(){var a;this.W.call(this,ei);switch(this.L>>3&7){case 0:a=this.G;this.G=this.aa;vd(this,a);break;case 1:a=this.I;this.I=this.aa;kf(this,a);break;
|
||||
case 2:a=this.M;this.M=this.aa;jd(this,a);break;case 3:a=this.H;this.H=this.aa;pd(this,a);break;case 4:a=I(this);G(this,this.aa);80386<=this.ia?this.Nb.load(a):vd(this,a);break;case 5:a=this.P;this.P=this.aa;80386<=this.ia?this.Ob.load(a):kf(this,a);break;case 6:a=this.K;this.K=this.aa;jd(this,a);break;case 7:a=this.J,this.J=this.aa,pd(this,a)}},function(){this.S|=1;this.U=this.ga;this.aa=D(this);this.ya.call(this,ik,vj);this.U=-1},function(){this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|
|
||||
case 2:a=this.M;this.M=this.aa;jd(this,a);break;case 3:a=this.H;this.H=this.aa;pd(this,a);break;case 4:a=I(this);G(this,this.aa);80386<=this.ja?this.Nb.load(a):vd(this,a);break;case 5:a=this.P;this.P=this.aa;80386<=this.ja?this.Ob.load(a):kf(this,a);break;case 6:a=this.K;this.K=this.aa;jd(this,a);break;case 7:a=this.J,this.J=this.aa,pd(this,a)}},function(){this.S|=1;this.U=this.ga;this.aa=D(this);this.ya.call(this,ik,vj);this.U=-1},function(){this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|
|
||||
this.I&this.R;this.I=this.I&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.M&this.R;this.M=this.M&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.H&this.R;this.H=this.H&~this.R|a&this.R;this.A-=3},function(){var a=this.G,b=I(this);this.G=this.G&~this.R|b&this.R;G(this,b&~this.R|a&this.R);this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.P&this.R;this.P=this.P&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&
|
||||
~this.R|this.K&this.R;this.K=this.K&~this.R|a&this.R;this.A-=3},function(){var a=this.G;this.G=this.G&~this.R|this.J&this.R;this.J=this.J&~this.R|a&this.R;this.A-=3},function(){this.G=2==this.ba?this.G&-65536|this.G<<24>>24&65535:this.G<<16>>16;this.A-=2},function(){this.M=2==this.ba?this.M&-65536|(this.G&32768?65535:0):this.G&-2147483648?-1:0;this.A-=this.B.dj},function(){wj.call(this,this.Ma(),Rf(this));this.A-=this.B.gj},function(){this.A-=3},function(){var a=wd(this);a&131072&&3>this.Pa?C.call(this,
|
||||
13,0):(J(this,a&-196609),this.A-=this.B.Sc)},function(){if(this.ca&131072&&3>this.Pa)C.call(this,13,0);else{var a=D(this),a=a&65535|this.ca&-65536;xd(this,a);this.A-=this.B.zc}},function(){var a=this.G>>8&255;a&1?wf(this):xf(this);a&4?(this.resultType&=-3,this.ca|=4):(this.resultType&=-3,this.ca&=-5);a&16?Ef(this):Cf(this);a&64?Ff(this):Df(this);a&128?(this.resultType&=-17,this.ca|=128):(this.resultType&=-17,this.ca&=-129);this.A-=this.B.gc},function(){this.G=this.G&-65281|(wd(this)&213)<<8;this.A-=
|
||||
|
|
@ -324,20 +324,20 @@ b=this.I-1&this.Ba;this.I=this.I&~this.Ba|b;b&&!sf(this)?(O(this,K(this)+a),this
|
|||
Hf(this,a,1,!0)&&(this.G=this.G&-256|ic(this.ea,a,1,this.Ga-2)&255,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|ic(this.ea,a,this.ba,this.Ga-2)&this.R,this.A-=this.B.Bh)},function(){var a=this.xa();Hf(this,a,1,!1)&&(mc(this.ea,a,1,this.G&255,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.xa();Hf(this,a,this.ba,!1)&&(mc(this.ea,a,this.ba,this.G&this.R,this.Ga-2),this.A-=this.B.Ph)},function(){var a=this.Ma(),b=K(this),a=b+a;J(this,b);O(this,a);
|
||||
this.A-=this.B.ej},function(){var a=this.Ma();O(this,K(this)+a);this.A-=this.B.Ch},function(){yd(this,this.Ma(),Rf(this));this.A-=this.B.Bj},function(){var a=this.T();O(this,K(this)+a);this.A-=this.B.Ch},function(){var a=this.M&65535;Hf(this,a,1,!0)&&(this.G=this.G&-256|ic(this.ea,a,1,this.Ga-1)&255,this.A-=this.B.Ah)},function(){var a=this.M&65535;Hf(this,a,this.ba,!0)&&(this.G=this.G&~this.R|ic(this.ea,a,this.ba,this.Ga-1)&this.R,this.A-=this.B.Ah)},function(){var a=this.M&65535;Hf(this,a,1,!1)&&
|
||||
(mc(this.ea,a,1,this.G&255,this.Ga-1),this.A-=this.B.Oh)},function(){var a=this.M&65535;Hf(this,a,2,!1)&&(mc(this.ea,a,this.ba,this.G&this.R,this.Ga-1),this.A-=this.B.Oh)},gk,gk,function(){this.S|=132;this.A-=this.B.od},function(){this.S|=68;this.A-=this.B.od},function(){this.ca&131072?C.call(this,13,0):(this.ua|=4,this.A-=2,this.ha&&A(this,-2147483648)?(nf(this),this.ha.Wb()):this.ca&512||(this.ha&&nf(this),this.Wb()))},function(){pf(this)?xf(this):wf(this);this.A-=2},function(){this.cb=!1;this.Jb.call(this,
|
||||
lk,uj);this.cb&&(this.G=this.G&~this.R|this.ja&this.R)},function(){this.cb=!1;this.ya.call(this,mk,uj);this.cb&&(this.G=this.G&~this.R|this.ja&this.R,this.M=this.M&~this.R|this.wa&this.R)},function(){xf(this);this.A-=2},function(){wf(this);this.A-=2},function(){this.pa>this.Pa?C.call(this,13,0):(this.ca&=-513,this.A-=this.B.cj)},function(){this.pa>this.Pa?C.call(this,13,0):(this.ca|=512,this.S|=4,this.A-=2)},function(){this.ca&=-1025;this.A-=2},function(){this.ca|=1024;this.A-=2},function(){this.Jb.call(this,
|
||||
lk,uj);this.cb&&(this.G=this.G&~this.R|this.ia&this.R)},function(){this.cb=!1;this.ya.call(this,mk,uj);this.cb&&(this.G=this.G&~this.R|this.ia&this.R,this.M=this.M&~this.R|this.wa&this.R)},function(){xf(this);this.A-=2},function(){wf(this);this.A-=2},function(){this.pa>this.Pa?C.call(this,13,0):(this.ca&=-513,this.A-=this.B.cj)},function(){this.pa>this.Pa?C.call(this,13,0):(this.ca|=512,this.S|=4,this.A-=2)},function(){this.ca&=-1025;this.A-=2},function(){this.ca|=1024;this.A-=2},function(){this.Jb.call(this,
|
||||
Cd,uj)},function(){this.ya.call(this,Dd,uj)}],Tj=[th,gi,rh,ii,vh,bj,jj,Jh],hk=[uh,hi,sh,ji,wh,cj,kj,Kh],ik=[function(a,b){this.A-=-1===this.C?this.B.zc:this.B.Rj;return b},Mh,Mh,Mh,Mh,Mh,Mh,Mh],jk=[function(a,b){this.A-=-1===this.C?this.B.Jj:this.B.Hj;return b},Nh,Nh,Nh,Nh,Nh,Nh,Nh],Yj=[function(a,b){var c=a,d=b&this.ra;if(d){var e;(d&=7)?(e=a<<d-1,c=(a<<d|a>>8-d)&255):e=a<<7;Af(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e;(d&=7)?(e=a<<8-d,c=(a>>>d|e)&255):e=a;Af(this,c,e,
|
||||
128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=Bf(this);(d%=9)?(c=(a<<d|e<<d-1|a>>9-d)&255,e=a<<d-1):e<<=7;Af(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=Bf(this);(d%=9)?(c=(a>>d|e<<8-d|a<<9-d)&255,e=a<<8-d):e<<=7;Af(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=0;8<d?c=0:(e=a<<d-1,c=e<<1&255);vf(this,c,128,e&128,(c^e)&128)}return c},function(a,b){var c=b&this.ra;c&&(c=8<c?0:a>>>c-1,a=c>>>1&255,vf(this,a,128,c&1,a&128));return a},Nh,
|
||||
function(a,b){var c=b&this.ra;c&&(9<c&&(c=9),c=a<<24>>24>>c-1,a=c>>1&255,vf(this,a,128,c&1));return a}],Zj=[function(a,b){var c=a,d=b&this.ra;if(d){var e;(d&=15)?(e=a<<d-1,c=(a<<d|a>>16-d)&65535):e=a<<15;Af(this,c,e,32768)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e;(d&=15)?(e=a<<16-d,c=(a>>>d|e)&65535):e=a;Af(this,c,e,32768)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=Bf(this);(d%=17)?(c=(a<<d|e<<d-1|a>>17-d)&65535,e=a<<d-1):e<<=15;Af(this,c,e,32768)}return c},function(a,
|
||||
b){var c=a,d=b&this.ra;if(d){var e=Bf(this);(d%=17)?(c=(a>>d|e<<16-d|a<<17-d)&65535,e=a<<16-d):e<<=15;Af(this,c,e,32768)}return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=0;16<d?c=0:(e=a<<d-1,c=e<<1&65535);vf(this,c,32768,e&32768,(c^e)&32768)}return c},function(a,b){var c=b&this.ra;c&&(c=16<c?0:a>>>c-1,a=c>>>1&65535,vf(this,a,32768,c&1,a&32768));return a},Nh,function(a,b){var c=b&this.ra;c&&(17<c&&(c=17),c=a<<16>>16>>c-1,a=c>>1&65535,vf(this,a,32768,c&1));return a}],ak=[function(a,b){var c=
|
||||
a,d=b&this.ra;d&&(c=a<<d|a>>>32-d,Af(this,c,a<<d-1,-2147483648));return c},function(a,b){var c=a,d=b&this.ra;if(d){var e=a<<32-d,c=a>>>d|e;Af(this,c,e,-2147483648)}return c},function(a,b){var c=a,d=b&this.ra;d&&(c=Bf(this),c=a<<d|c<<d-1|a>>>32-d>>>1,Af(this,c,a<<d-1,-2147483648));return c},function(a,b){var c=a,d=b&this.ra;d&&(c=Bf(this),c=a>>>d|c<<32-d|a<<32-d<<1,Af(this,c,a<<32-d,-2147483648));return c},function(a,b){var c=a,d=b&this.ra;d&&(d=a<<d-1,c=d<<1,vf(this,c,-2147483648,d&-2147483648,(c^
|
||||
d)&-2147483648));return c},function(a,b){var c=b&this.ra;c&&(c=a>>>c-1,a=c>>>1,vf(this,a,-2147483648,c&1,a&-2147483648));return a},Nh,function(a,b){var c=b&this.ra;c&&(c=a>>c-1,a=c>>1,vf(this,a,-2147483648,c&1));return a}],lk=[function(a,b){b=this.xa();vf(this,a&b,128);this.A-=-1===this.D?this.B.$h:this.B.Zh;this.S|=2;return a},Nh,function(a){this.A-=-1===this.D?this.B.Sf:this.B.Rf;return a^255},function(a){var b=-a|0;of(this,0,a,b,191,!0);this.A-=-1===this.D?this.B.Sf:this.B.Rf;return b&255},function(a){this.ja=
|
||||
(this.G&255)*a&65535;this.ja&65280?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.Nj:this.B.Mj;this.S|=2;return a},function(a){var b=(this.G<<24>>24)*(a<<24>>24)|0;this.ja=b&65535;127<b||-128>b?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.sj:this.B.rj;this.S|=2;return a},function(a,b){if(!a)return Aj.call(this),a;var c=(b=this.G&65535)/a;if(255<c)return Aj.call(this),a;this.ja=c&255|(b%a&255)<<8;this.cb=!0;this.A-=-1===this.D?this.B.kj:
|
||||
this.B.jj;this.S|=2;return a},function(a,b){if(!a)return Aj.call(this),a;var c=a<<24>>24,d=(b=this.G<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.ia&&-128==d)return Aj.call(this),a;this.ja=d&255|(b%c&255)<<8;this.cb=!0;this.A-=-1===this.D?this.B.oj:this.B.nj;this.S|=2;return a}],mk=[function(a,b){b=this.Ma();vf(this,a&b,this.Ia);this.A-=-1===this.D?this.B.$h:this.B.Zh;this.S|=2;return a},Nh,function(a){this.A-=-1===this.D?this.B.Sf:this.B.Rf;return a^this.R},function(a){var b=-a|0;of(this,0,a,b,this.Ia|
|
||||
63,!0);this.A-=-1===this.D?this.B.Sf:this.B.Rf;return b&this.R},function(a,b){if(2==this.ba){b=this.G&65535;var c=b*a|0;this.ja=c&65535;this.wa=c>>16&65535}else Th.call(this,a,this.G),80563==this.Uc&&68657152==this.G&&129==a&&(this.wa=0);this.wa?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.Pj:this.B.Oj;this.S|=2;return a},function(a,b){var c;2==this.ba?(b=this.G&65535,c=(b<<16>>16)*(a<<16>>16)|0,this.ja=c&65535,this.wa=c>>16&65535,c=32767<c||-32768>c):(Sh.call(this,
|
||||
a,this.G),c=this.wa!=this.ja>>31);c?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.uj:this.B.tj;this.S|=2;return a},function(a,b){if(2==this.ba){if(!a)return Aj.call(this),a;b=65536*(this.M&65535)+(this.G&65535);var c=b/a;if(65536<=c)return Aj.call(this),a;this.ja=c&65535;this.wa=b%a&65535}else{if(!nj.call(this,this.G,this.M,a))return Aj.call(this),a;this.ja|=0;this.wa|=0}this.cb=!0;this.A-=-1===this.D?this.B.mj:this.B.lj;this.S|=2;return a},function(a,b){if(2==this.ba){if(!a)return Aj.call(this),
|
||||
a;var c=a<<16>>16,d=(b=this.M<<16|this.G&65535)/c|0;if(d!=d<<16>>16||8086==this.ia&&-32768==d)return Aj.call(this),a;this.ja=d&65535;this.wa=b%c&65535}else{var c=this.G,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);!nj.call(this,c,d,e)||this.ja>2147483647+f||this.wa>2147483647+g?c=!1:(f&&(this.ja=-this.ja),g&&(this.wa=-this.wa),c=!0);if(!c)return Aj.call(this),a;this.ja|=0;this.wa|=0}this.cb=!0;this.A-=-1===this.D?this.B.qj:this.B.pj;this.S|=2;return a}],Cd=[function(a){var b=
|
||||
d)&-2147483648));return c},function(a,b){var c=b&this.ra;c&&(c=a>>>c-1,a=c>>>1,vf(this,a,-2147483648,c&1,a&-2147483648));return a},Nh,function(a,b){var c=b&this.ra;c&&(c=a>>c-1,a=c>>1,vf(this,a,-2147483648,c&1));return a}],lk=[function(a,b){b=this.xa();vf(this,a&b,128);this.A-=-1===this.D?this.B.$h:this.B.Zh;this.S|=2;return a},Nh,function(a){this.A-=-1===this.D?this.B.Sf:this.B.Rf;return a^255},function(a){var b=-a|0;of(this,0,a,b,191,!0);this.A-=-1===this.D?this.B.Sf:this.B.Rf;return b&255},function(a){this.ia=
|
||||
(this.G&255)*a&65535;this.ia&65280?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.Nj:this.B.Mj;this.S|=2;return a},function(a){var b=(this.G<<24>>24)*(a<<24>>24)|0;this.ia=b&65535;127<b||-128>b?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.sj:this.B.rj;this.S|=2;return a},function(a,b){if(!a)return Aj.call(this),a;var c=(b=this.G&65535)/a;if(255<c)return Aj.call(this),a;this.ia=c&255|(b%a&255)<<8;this.cb=!0;this.A-=-1===this.D?this.B.kj:
|
||||
this.B.jj;this.S|=2;return a},function(a,b){if(!a)return Aj.call(this),a;var c=a<<24>>24,d=(b=this.G<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.ja&&-128==d)return Aj.call(this),a;this.ia=d&255|(b%c&255)<<8;this.cb=!0;this.A-=-1===this.D?this.B.oj:this.B.nj;this.S|=2;return a}],mk=[function(a,b){b=this.Ma();vf(this,a&b,this.Ia);this.A-=-1===this.D?this.B.$h:this.B.Zh;this.S|=2;return a},Nh,function(a){this.A-=-1===this.D?this.B.Sf:this.B.Rf;return a^this.R},function(a){var b=-a|0;of(this,0,a,b,this.Ia|
|
||||
63,!0);this.A-=-1===this.D?this.B.Sf:this.B.Rf;return b&this.R},function(a,b){if(2==this.ba){b=this.G&65535;var c=b*a|0;this.ia=c&65535;this.wa=c>>16&65535}else Th.call(this,a,this.G),80563==this.Uc&&68657152==this.G&&129==a&&(this.wa=0);this.wa?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.Pj:this.B.Oj;this.S|=2;return a},function(a,b){var c;2==this.ba?(b=this.G&65535,c=(b<<16>>16)*(a<<16>>16)|0,this.ia=c&65535,this.wa=c>>16&65535,c=32767<c||-32768>c):(Sh.call(this,
|
||||
a,this.G),c=this.wa!=this.ia>>31);c?(wf(this),yf(this)):(xf(this),zf(this));this.cb=!0;this.A-=-1===this.D?this.B.uj:this.B.tj;this.S|=2;return a},function(a,b){if(2==this.ba){if(!a)return Aj.call(this),a;b=65536*(this.M&65535)+(this.G&65535);var c=b/a;if(65536<=c)return Aj.call(this),a;this.ia=c&65535;this.wa=b%a&65535}else{if(!nj.call(this,this.G,this.M,a))return Aj.call(this),a;this.ia|=0;this.wa|=0}this.cb=!0;this.A-=-1===this.D?this.B.mj:this.B.lj;this.S|=2;return a},function(a,b){if(2==this.ba){if(!a)return Aj.call(this),
|
||||
a;var c=a<<16>>16,d=(b=this.M<<16|this.G&65535)/c|0;if(d!=d<<16>>16||8086==this.ja&&-32768==d)return Aj.call(this),a;this.ia=d&65535;this.wa=b%c&65535}else{var c=this.G,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);!nj.call(this,c,d,e)||this.ia>2147483647+f||this.wa>2147483647+g?c=!1:(f&&(this.ia=-this.ia),g&&(this.wa=-this.wa),c=!0);if(!c)return Aj.call(this),a;this.ia|=0;this.wa|=0}this.cb=!0;this.A-=-1===this.D?this.B.qj:this.B.pj;this.S|=2;return a}],Cd=[function(a){var b=
|
||||
a+1|0;of(this,a,1,b,190);this.A-=-1===this.D?this.B.Qf:this.B.Pf;return b&255},function(a){var b=a-1|0;of(this,a,1,b,190,!0);this.A-=-1===this.D?this.B.Qf:this.B.Pf;return b&255},Nh,Nh,Nh,Nh,Nh,Nh],Dd=[function(a){var b=a+1|0;of(this,a,1,b,this.Ia|62);this.A-=-1===this.D?this.B.Qf:this.B.Pf;return b&this.R},function(a){var b=a-1|0;of(this,a,1,b,this.Ia|62,!0);this.A-=-1===this.D?this.B.Qf:this.B.Pf;return b&this.R},function(a){J(this,K(this));O(this,a);this.A-=-1===this.D?this.B.ij:this.B.hj;this.S|=
|
||||
2;return a},function(a){if(-1===this.D)return Nh.call(this,a);this.U=this.ga;wj.call(this,a,this.na(this.D+this.ba));this.A-=this.B.fj;this.S|=2;this.U=-1;return a},function(a){O(this,a);this.A-=-1===this.D?this.B.Dj:this.B.Cj;this.S|=2;return a},function(a){if(-1===this.D)return Nh.call(this,a);yd(this,a,this.na(this.D+this.ba));this.A-=this.B.Aj;this.S|=2;return a},function(a){var b=a;this.S&512&&(a=a-2&65535,80286>this.ia&&(b=a));J(this,b);this.A-=-1===this.D?this.B.Sc:this.B.Tj;this.S|=2;return a},
|
||||
2;return a},function(a){if(-1===this.D)return Nh.call(this,a);this.U=this.ga;wj.call(this,a,this.na(this.D+this.ba));this.A-=this.B.fj;this.S|=2;this.U=-1;return a},function(a){O(this,a);this.A-=-1===this.D?this.B.Dj:this.B.Cj;this.S|=2;return a},function(a){if(-1===this.D)return Nh.call(this,a);yd(this,a,this.na(this.D+this.ba));this.A-=this.B.Aj;this.S|=2;return a},function(a){var b=a;this.S&512&&(a=a-2&65535,80286>this.ja&&(b=a));J(this,b);this.A-=-1===this.D?this.B.Sc:this.B.Tj;this.S|=2;return a},
|
||||
Nh];function ne(){this.W.call(this,gj);this.A-=-1===this.D?6:13}function oe(){this.fa.call(this,fj);this.A-=-1===this.D?12:19}var ae=Array(256);ae[0]=function(){16>(this.Qa(this.Ga)&56)&&(this.S|=1);this.ya.call(this,this.hg,uj)};ae[1]=function(){this.Qa(this.Ga)&16||(this.S|=1);this.ya.call(this,nk,uj)};ae[2]=function(){!(this.Za&1)||this.ca&131072?C.call(this,6):this.W.call(this,Uh)};ae[3]=function(){!(this.Za&1)||this.ca&131072?C.call(this,6):this.W.call(this,$h)};
|
||||
ae[5]=function(){this.pa?C.call(this,13,0,0,!0):(Gf(this,this.na(2054)),this.J=this.na(2086),this.K=this.na(2088),this.P=this.na(2090),this.H=this.na(2094),this.M=this.na(2096),this.I=this.na(2098),this.G=this.na(2100),id(this.Xa,2102,this.na(2084)),id(this.va,2108,this.na(2082)),id(this.ta,2114,this.na(2080)),id(this.vb,2120,this.na(2078)),xd(this,this.na(2072)),O(this,this.na(2074)),G(this,this.na(2092)),this.Ec=this.na(2126)|this.Qa(2128)<<16,this.Ad=this.Ec+this.na(2130),this.Mc=this.na(2138)|
|
||||
this.Qa(2140)<<16,this.Td=this.Mc+this.na(2142),id(this.Bc,2132,this.na(2076)),id(this.Sa,2144,this.na(2070)),this.A-=195)};ae[6]=function(){this.pa?C.call(this,13,0):(this.Za&=-9,this.A-=2)};ae[11]=Fd;ae[166]=Fd;ae[255]=Fd;var M=[];M[5]=Fd;
|
||||
|
|
@ -359,31 +359,31 @@ M[188]=function(){this.W.call(this,zh)};M[189]=function(){this.W.call(this,Ah)};
|
|||
M[190]=function(){this.Oa.call(this,ci);switch(this.L>>3&7){case 0:this.G=this.G&~this.R|(this.G&255)<<24>>24&this.R;break;case 1:this.I=this.I&~this.R|(this.I&255)<<24>>24&this.R;break;case 2:this.M=this.M&~this.R|(this.M&255)<<24>>24&this.R;break;case 3:this.H=this.H&~this.R|(this.H&255)<<24>>24&this.R;break;case 4:this.gb=this.gb&~this.R|this.G<<16>>24&this.R;this.G=this.aa;break;case 5:this.P=this.P&~this.R|this.I<<16>>24&this.R;this.I=this.aa;break;case 6:this.K=this.K&~this.R|this.M<<16>>24&
|
||||
this.R;this.M=this.aa;break;case 7:this.J=this.J&~this.R|this.H<<16>>24&this.R,this.H=this.aa}this.A-=-1===this.D?3:6};M[191]=function(){md(this,2);this.W.call(this,di);switch(this.L>>3&7){case 0:this.G=this.G<<16>>16;break;case 1:this.I=this.I<<16>>16;break;case 2:this.M=this.M<<16>>16;break;case 3:this.H=this.H<<16>>16;break;case 4:this.gb=this.gb<<16>>16;break;case 5:this.P=this.P<<16>>16;break;case 6:this.K=this.K<<16>>16;break;case 7:this.J=this.J<<16>>16}this.A-=-1===this.D?3:6};
|
||||
var gf=[function(){this.A-=2+(-1===this.D?0:1);return this.Bc.Z},function(){this.A-=2+(-1===this.D?0:1);return this.Sa.Z},function(a){this.S|=2;this.Bc.load(a);this.A-=17+(-1===this.D?0:2);return a},function(a){this.S|=2;-1!==this.Sa.load(a)&&(this.jb(this.Sa.Xb+4,this.Sa.wb|=512),this.Sa.type|=512);this.A-=17+(-1===this.D?0:2);return a},function(a){this.S|=2;this.A-=14+(-1===this.D?0:2);if(-1!==this.Ea.load(a)&&2048!=(this.Ea.wb&2560)&&(this.Ea.Gc>=this.pa&&this.Ea.Gc>=(a&3)||7168==(this.Ea.wb&7168)))return Ff(this),
|
||||
a;Df(this);return a},function(a){this.S|=2;this.A-=14+(-1===this.D?0:2);if(-1!==this.Ea.load(a)&&512==(this.Ea.wb&2560)&&this.Ea.Gc>=this.pa&&this.Ea.Gc>=(a&3))return Ff(this),a;Df(this);return a},Nh,Nh],Ed=[Zd,Zd,Zd,Zd,Zd,Zd,Nh,Nh],nk=[function(a){if(-1===this.D)C.call(this,6);else{a=this.Ad-this.Ec;var b=this.Ec;80286==this.ia?b|=-16777216:80386<=this.ia&&2!=this.ba&&(a|=b<<16);this.nb(this.D+2,b);this.A-=11}return a},function(a){if(-1===this.D)C.call(this,6);else{a=this.Td-this.Mc;var b=this.Mc;
|
||||
80286==this.ia?b|=-16777216:80386<=this.ia&&2!=this.ba&&(a|=b<<16);this.nb(this.D+2,b);this.A-=12}return a},function(a){-1===this.D||this.ca&131072?C.call(this,6):(this.Ec=this.oa(this.D+2)&(this.R|this.R<<8),a&=65535,this.Ad=this.Ec+a,this.S|=2,this.A-=11);return a},function(a){-1===this.D||this.ca&131072?C.call(this,6):(this.Mc=this.oa(this.D+2)&(this.R|this.R<<8),a&=65535,this.Td=this.Mc+a,this.S|=2,this.A-=12);return a},function(){this.A-=2+(-1===this.D?0:1);return this.Za},Nh,function(a){this.ca&
|
||||
a;Df(this);return a},function(a){this.S|=2;this.A-=14+(-1===this.D?0:2);if(-1!==this.Ea.load(a)&&512==(this.Ea.wb&2560)&&this.Ea.Gc>=this.pa&&this.Ea.Gc>=(a&3))return Ff(this),a;Df(this);return a},Nh,Nh],Ed=[Zd,Zd,Zd,Zd,Zd,Zd,Nh,Nh],nk=[function(a){if(-1===this.D)C.call(this,6);else{a=this.Ad-this.Ec;var b=this.Ec;80286==this.ja?b|=-16777216:80386<=this.ja&&2!=this.ba&&(a|=b<<16);this.nb(this.D+2,b);this.A-=11}return a},function(a){if(-1===this.D)C.call(this,6);else{a=this.Td-this.Mc;var b=this.Mc;
|
||||
80286==this.ja?b|=-16777216:80386<=this.ja&&2!=this.ba&&(a|=b<<16);this.nb(this.D+2,b);this.A-=12}return a},function(a){-1===this.D||this.ca&131072?C.call(this,6):(this.Ec=this.oa(this.D+2)&(this.R|this.R<<8),a&=65535,this.Ad=this.Ec+a,this.S|=2,this.A-=11);return a},function(a){-1===this.D||this.ca&131072?C.call(this,6):(this.Mc=this.oa(this.D+2)&(this.R|this.R<<8),a&=65535,this.Td=this.Mc+a,this.S|=2,this.A-=12);return a},function(){this.A-=2+(-1===this.D?0:1);return this.Za},Nh,function(a){this.ca&
|
||||
131072?C.call(this,6):(Gf(this,a),this.A-=-1===this.D?3:6,this.S|=2);return a},Nh],ok=[Nh,Nh,Nh,Nh,Bh,Eh,Dh,Ch];
|
||||
function pk(a){Ua.call(this,"ChipSet",a,pk,32768);var b=a.model;b&&!qk[b]&&w("Unrecognized ChipSet model: "+b);this.ia=qk[b]||rk;this.C=[];b=sk(a[tk]);this.C[0]=[b,b];null==b&&(this.ja=[360,360],(b=a.floppies)&&b.length&&(this.ja=b),uk(this,vk,this.ja.length),uk(this,wk,a.monitor||(this.ia<cg?"mono":"ega")));b=sk(a[xk]);this.C[1]=[b,b];this.cb=this.Ea=1;this.ia>=cg&&(this.cb=this.Ea=2);this.ka=a.scaleTimers||!1;this.Ub=a.rtcDate;this.Db=!1;a.sound&&(this.sb=this.Fa=null,window&&(this.sb=window.AudioContext||
|
||||
function pk(a){Ua.call(this,"ChipSet",a,pk,32768);var b=a.model;b&&!qk[b]&&w("Unrecognized ChipSet model: "+b);this.ja=qk[b]||rk;this.C=[];b=sk(a[tk]);this.C[0]=[b,b];null==b&&(this.ia=[360,360],(b=a.floppies)&&b.length&&(this.ia=b),uk(this,vk,this.ia.length),uk(this,wk,a.monitor||(this.ja<cg?"mono":"ega")));b=sk(a[xk]);this.C[1]=[b,b];this.cb=this.Ea=1;this.ja>=cg&&(this.cb=this.Ea=2);this.ka=a.scaleTimers||!1;this.Ub=a.rtcDate;this.Db=!1;a.sound&&(this.sb=this.Fa=null,window&&(this.sb=window.AudioContext||
|
||||
window.webkitAudioContext),this.sb&&(this.Fa=new this.sb));this.reset(!0);rb(this)}db(pk);var rk=5150.9,cg=5170,qk={5150:5150,5160:5160,5170:cg,att6300:5160.101,mpc1600:5150.101,z150:5160.15,compaq:5150.102,other:rk,deskpro386:5180},tk="sw1",xk="sw2",yk={Bk:1,ONE:0,co:64,ao:128,Fn:192,Lc:192,Qg:6},zk={bo:16,yn:32,Nn:48,Lc:48,Qg:4},vk=1,wk=4,Ak={5150:[{},{}]};Ak[5150][0][vk]={Lc:192,hd:{1:0,2:64,3:128,4:192},Qd:"Number of Floppy Drives"};Ak[5150][0][3]={Lc:2,hd:{0:0,1:2},Qd:"Coprocessor"};
|
||||
Ak[5150][0][wk]={Lc:48,hd:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},Qd:"Monitor Type"};Ak[5150][0][5]={Lc:12,hd:{16:0,32:4,48:8,64:12},Qd:"Base Memory (16Kb Increments)"};Ak[5150][1][6]={Lc:31,hd:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},Qd:"Expansion Memory (32Kb Increments)"};Ak[5160]=[{},{}];Ak[5160][0][vk]=Ak[5150][0][vk];Ak[5160][0][3]=Ak[5150][0][3];Ak[5160][0][wk]=Ak[5150][0][wk];
|
||||
Ak[5160][0][5]={Lc:12,hd:{64:0,128:4,192:8,256:12},Qd:"Base Memory (64Kb Increments)"};Ak[5160][1][6]=Ak[5150][1][6];Ak[5160.101]=[{},{}];Ak[5160.101][0][5]={Lc:143,hd:{128:1,256:130,512:8,640:141},Qd:"Base Memory (128Kb Increments)"};Ak[5160.101][0][3]={Lc:16,hd:{0:0,1:16},Qd:"Coprocessor"};Ak[5160.101][1][2]={Lc:1,hd:{0:0,1:1},Qd:"Floppy Type"};Ak[5160.101][1][vk]=Ak[5150][0][vk];Ak[5160.101][1][wk]=Ak[5150][0][wk];m=pk.prototype;
|
||||
m.Pb=function(a,b,c){switch(b){case tk:return this.qa[b]=c,Bk(this,0,b),!0;case xk:if(5150==(this.ia|0)||5160.101==this.ia)return this.qa[b]=c,Bk(this,1,b),!0;break;case "swdesc":return this.qa[b]=c,!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.Tb=Eb(a,"FPU");uk(this,3,this.Tb?1:0,!0);this.B=Eb(a,"Keyboard");this.gb=c.Y.Jd/1193181;hc(b,this,Ck);lc(b,this,Dk);this.ia<cg?5160.101!=this.ia?(hc(b,this,Ek),lc(b,this,Fk)):(hc(b,this,Gk),lc(b,this,Hk)):(hc(b,this,Ik),lc(b,this,Jk),5180==(this.ia|0)&&(hc(b,this,Kk),lc(b,this,Lk)));if(d){var e=this;Mk(d,1024,function(){for(var a=0;a<e.vc.length;a++){for(var b=e.vc[a],c="PIC"+a+":",d=0;d<b.Yc.length;d++)c+=" IC"+(d+1)+"="+t(b.Yc[d]);
|
||||
m.Pb=function(a,b,c){switch(b){case tk:return this.qa[b]=c,Bk(this,0,b),!0;case xk:if(5150==(this.ja|0)||5160.101==this.ja)return this.qa[b]=c,Bk(this,1,b),!0;break;case "swdesc":return this.qa[b]=c,!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.Tb=Eb(a,"FPU");uk(this,3,this.Tb?1:0,!0);this.B=Eb(a,"Keyboard");this.gb=c.Y.Jd/1193181;hc(b,this,Ck);lc(b,this,Dk);this.ja<cg?5160.101!=this.ja?(hc(b,this,Ek),lc(b,this,Fk)):(hc(b,this,Gk),lc(b,this,Hk)):(hc(b,this,Ik),lc(b,this,Jk),5180==(this.ja|0)&&(hc(b,this,Kk),lc(b,this,Lk)));if(d){var e=this;Mk(d,1024,function(){for(var a=0;a<e.vc.length;a++){for(var b=e.vc[a],c="PIC"+a+":",d=0;d<b.Yc.length;d++)c+=" IC"+(d+1)+"="+t(b.Yc[d]);
|
||||
c+=" IMR="+t(b.Bd)+" IRR="+t(b.mc)+" ISR="+t(b.Pc)+" DELAY="+b.nf;e.ha.O(c)}});Mk(d,2048,function(a){a=(a=a[0])?+a:null;for(var b=0;b<e.W.length;b++)if(null==a||b==a){Nk(e,b);var c=e.W[b],d="TIMER"+b+":",l=0;if(null!=c.nd)for(var n=0;n<=c.nd;n++)l|=c.Ab[n]<<8*n;d+=" mode="+(c.mode>>1)+" bytes="+c.nd+" count="+u(l);e.ha.O(d)}});Mk(d,4096,function(){for(var a="",b=0;64>b;b++){var c=13>=b?Ok(e,b):e.A[b];a&&(a+="\n");a+="CMOS["+t(b)+"]: "+t(c)}e.ha.O(a)})}Te(c,26,this.am.bind(this))};
|
||||
m.ic=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};
|
||||
m.reset=function(a){var b;Pk(this);this.L=Array(this.cb);for(b=0;b<this.cb;b++)Qk(this,b);this.vc=Array(this.Ea);Rk(this,0,32);1<this.Ea&&Rk(this,1,160);this.Pa=this.Oa=null;this.W=Array(5180==(this.ia|0)?6:3);for(b=0;b<this.W.length;b++)Sk(this,b);this.Ca=this.rb=this.X=this.$a=null;this.ya=0;5160.101==this.ia&&(this.wa=0);if(this.ia>=cg){this.N=16;this.fa=0;this.aa=16;this.Ja=0;this.ga=160;512<=Tk(this)&&(this.ga|=16);3==+Uk(this,wk,void 0)&&(this.ga|=64);5180==(this.ia|0)&&(this.ga|=12);this.Ka=
|
||||
m.reset=function(a){var b;Pk(this);this.L=Array(this.cb);for(b=0;b<this.cb;b++)Qk(this,b);this.vc=Array(this.Ea);Rk(this,0,32);1<this.Ea&&Rk(this,1,160);this.Pa=this.Oa=null;this.W=Array(5180==(this.ja|0)?6:3);for(b=0;b<this.W.length;b++)Sk(this,b);this.Ca=this.rb=this.X=this.$a=null;this.ya=0;5160.101==this.ja&&(this.wa=0);if(this.ja>=cg){this.N=16;this.fa=0;this.aa=16;this.Ja=0;this.ga=160;512<=Tk(this)&&(this.ga|=16);3==+Uk(this,wk,void 0)&&(this.ga|=64);5180==(this.ja|0)&&(this.ga|=12);this.Ka=
|
||||
3;this.ra=Array(8);this.pa=0;a&&(this.A=Array(64));Vk(this,this.Ub);for(a=21;24>=a;a++)this.A[a]=0;for(a=14;46>a;a++)void 0===this.A[a]&&(this.A[a]=0);a=0|+Uk(this,wk,void 0)<<zk.Qg&zk.Lc;a|=+Uk(this,3,void 0)?2:0;b=+Uk(this,vk,void 0);a|=b?b-1<<yk.Qg&yk.Lc|yk.Bk:0;this.A[20]=a;this.A[16]=Wk(this,0)<<4|Wk(this,1);Xk(this)}};
|
||||
function Vk(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.O("CMOS date invalid ("+b+"), using "+c)):b&&a.O("CMOS date: "+c);a.A[0]=c.getSeconds();a.A[1]=0;a.A[2]=c.getMinutes();a.A[3]=0;a.A[4]=c.getHours();a.A[5]=0;a.A[6]=c.getDay()+1;a.A[7]=c.getDate();a.A[8]=c.getMonth()+1;c=c.getFullYear();a.A[9]=c%100;c/=100;a.A[50]=c%10|c/10<<4;a.A[10]=38;a.A[11]=2;a.A[12]=0;a.A[13]=128;a.Ia=a.ua=0;a.Jb=a.fb=null}
|
||||
function Ok(a,b){var c=a.A[b];if(10>b){var d=!1;4!=b&&5!=b||a.A[11]&2||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[11]&4||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else 10==b&&(a.A[b]^=128);return c}function Yk(a){var b;void 0===b&&(b=a.fb);a.ua=Wc(a.F,a.ka)+b;a.A[11]&64&&Yc(a.F,b)}function Xk(a){for(var b=0,c=16;46>c;c++)b+=a.A[c];a.A[47]=b&255;a.A[46]=b>>8}
|
||||
m.save=function(){var a=new hf(this);N(a,0,[this.C]);for(var b=[],c=0;c<this.L;c++){for(var d=this.L[c],e=d,f=[],g=0;g<e.Dc.length;g++){var h=e.Dc[g];f[g]=[h.Ee,h.jg,h.Fc,h.Eb,h.Ab,h.mode,h.lg,h.rn,h.sn]}b[c]=[d.Yb,d.Xg,d.yi,d.Kb,f,d.zi]}N(a,1,[b]);b=[];for(c=0;c<this.vc.length;c++)d=this.vc[c],b[c]=[d.nf,d.Yc,d.Zd,d.Bd,d.mc,d.Pc,d.ye,d.Cf];N(a,2,[b]);b=[];for(c=0;c<this.W.length;c++)d=this.W[c],b[c]=[d.Fc,d.$c,d.Ab,d.ze,d.Zg,d.mode,d.eg,d.Fd,d.nd,d.vd,d.Ze,d.Be,d.xd,d.Yb,d.df];N(a,3,[this.Oa,b,this.Pa]);
|
||||
N(a,4,[this.$a,this.X,this.rb,this.Ca,this.ya]);this.ia>=cg&&(N(a,5,[this.N,this.fa,this.aa,this.Ja,this.ga,this.Ka]),N(a,6,[this.ra[7],this.ra,this.pa,this.A,this.Ia,this.ua]));return a.data()};
|
||||
N(a,4,[this.$a,this.X,this.rb,this.Ca,this.ya]);this.ja>=cg&&(N(a,5,[this.N,this.fa,this.aa,this.Ja,this.ga,this.Ka]),N(a,6,[this.ra[7],this.ra,this.pa,this.A,this.Ia,this.ua]));return a.data()};
|
||||
m.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.C=b[0]:(this.C[0][0]=b[0],this.C[1][0]=b[1]&15,this.C[0][1]=b[2],this.C[1][1]=b[3]&15);Pk(this);b=a[1];for(c=0;c<this.cb;c++)Qk(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.Ea;c++)Rk(this,c,0===c?32:160,b[0][c]);b=a[3];this.Oa=b[0];this.Pa=b[2];for(c=0;c<this.W.length;c++)Sk(this,c,b[1][c]);b=a[4];this.$a=b[0];this.X=b[1];this.rb=b[2];this.Ca=b[3];this.ya=b[4];if(b=a[5])this.N=b[0],this.fa=b[1],this.aa=b[2],this.Ja=b[3],this.ga=
|
||||
b[4],this.Ka=b[5];if(b=a[6])this.ra=b[1],this.ra[7]=b[0],this.pa=b[2],this.A=b[3],this.Ia=b[4],this.ua=b[5],Vk(this);return!0};m.start=function(){Zk(this)};m.stop=function(){Zk(this)};var $k=[0,null,null,0,Array(4),0];function Qk(a,b,c){var d=a.L[b];d||(d={Dc:Array(4)});c=c&&5<=c.length?c:$k;d.Yb=c[0];d.Xg=c[1];d.yi=c[2];d.Kb=c[3];d.hm=b<<2;for(var e=0;e<d.Dc.length;e++)al(d,e,c[4][e]);d.zi=c[5]||0;a.L[b]=d}var bl=[!0,[0,0],[0,0],[0,0],[0,0]];
|
||||
function al(a,b,c){var d=a.Dc[b];d||(d={jg:[0,0],Fc:[0,0],Eb:[0,0],Ab:[0,0]});c=c&&8==c.length?c:bl;d.Ee=c[0];d.jg[0]=c[1][0];d.jg[1]=c[1][1];d.Fc[0]=c[2][0];d.Fc[1]=c[2][1];d.Eb[0]=c[3][0];d.Eb[1]=c[3][1];d.Ab[0]=c[4][0];d.Ab[1]=c[4][1];d.mode=c[5];d.lg=c[6];d.controller=a;d.Ti=b;cl(d,c[8],c[9]);a.Dc[b]=d}function cl(a,b,c,d){"string"==typeof b&&(b=hb(b));b&&(a.done=null,a.rn=b.id,a.sn=c,a.qg=b,a.fh=b[c],a.Fg=d)}var dl=[0,Array(4)];
|
||||
function Rk(a,b,c,d){var e=a.vc[b];e||(e={Yc:[null,null,null,null]});d=d&&8==d.length?d:dl;e.port=c;e.xo=b<<3;e.nf=d[0];e.Yc[0]=d[1][0];e.Yc[1]=d[1][1];e.Yc[2]=d[1][2];e.Yc[3]=d[1][3];e.Zd=d[2];e.Bd=d[3];e.mc=d[4];e.Pc=d[5];e.ye=d[6];e.Cf=d[7];a.vc[b]=e}var el=[[0,0],[0,0],[0,0],[0,0]];
|
||||
function Sk(a,b,c){var d=a.W[b];d||(d={Fc:[0,0],$c:[0,0],Ab:[0,0],ze:[0,0]});c=c&&13<=c.length?c:el;d.Fc[0]=c[0][0];d.Fc[1]=c[0][1];d.$c[0]=c[1][0];d.$c[1]=c[1][1];d.Ab[0]=c[2][0];d.Ab[1]=c[2][1];d.ze[0]=c[3][0];d.ze[1]=c[3][1];d.Zg=c[4];d.mode=c[5];d.eg=c[6];d.Fd=c[7];d.nd=c[8];d.vd=c[9];d.Ze=c[10];d.Be=c[11];d.xd=c[12];d.Yb=c[13]||0;d.df=c[14]||!1;a.W[b]=d}
|
||||
function Bk(a,b,c){for(var d="",e=a.qa[c],f=1;8>=f;f++){var g="pcjs-bitCell";f||(g+=" pcjs-bitCellLeft");d+='<div id="'+(c+"-"+f)+'" class="'+g+'" data-value="0">'+f+"</div>\n"}e.innerHTML=d;fl(a,b,c,!0)}function gl(a,b,c){if(b=(a=Ak[a.ia|0])&&a[b])for(var d in b)if(a=b[d],a.Lc&1<<c)return a;return null}
|
||||
function Uk(a,b,c){for(var d=null,e=Ak[a.ia]||Ak[a.ia|0]||Ak[5150],f=0;f<e.length;f++){var g=e[f];if(g&&(g=g[b])){a=a.C[f][c?0:1]&g.Lc;for(var h in g.hd)if(g.hd[h]==a&&(d=h,"number"==typeof+d))break;break}}return d}function Wk(a,b){if(b<+Uk(a,vk,void 0)){if(!a.ja)return 1;if(b<a.ja.length)switch(a.ja[b]){case 160:case 180:case 320:case 360:return 1;case 720:return 3;case 1200:return 2;case 1440:return 4}}return 0}function Tk(a,b){return+Uk(a,5,b)+ +Uk(a,6,b)}
|
||||
function sk(a,b){var c=b;if(a)for(var c=0,d=1,e=0;e<a.length;e++)"0"==a.charAt(e)&&(c|=d),d<<=1;return c}function uk(a,b,c,d){for(var e=Ak[a.ia]||Ak[a.ia|0]||Ak[5150],f=0;f<e.length;f++){var g=e[f];if(g&&(g=g[b]))for(var h in g.hd)if(h==c){a.C[f][d?0:1]&=~g.Lc;a.C[f][d?0:1]|=g.hd[h];return}}}function hl(a,b){a.setAttribute("data-value",b?"1":"0");a.style.color=b?"#ffffff":"#000000";a.style.backgroundColor=b?"#000000":"#ffffff"}function Pk(a){fl(a,0,tk);fl(a,1,xk);il(a)}
|
||||
function Bk(a,b,c){for(var d="",e=a.qa[c],f=1;8>=f;f++){var g="pcjs-bitCell";f||(g+=" pcjs-bitCellLeft");d+='<div id="'+(c+"-"+f)+'" class="'+g+'" data-value="0">'+f+"</div>\n"}e.innerHTML=d;fl(a,b,c,!0)}function gl(a,b,c){if(b=(a=Ak[a.ja|0])&&a[b])for(var d in b)if(a=b[d],a.Lc&1<<c)return a;return null}
|
||||
function Uk(a,b,c){for(var d=null,e=Ak[a.ja]||Ak[a.ja|0]||Ak[5150],f=0;f<e.length;f++){var g=e[f];if(g&&(g=g[b])){a=a.C[f][c?0:1]&g.Lc;for(var h in g.hd)if(g.hd[h]==a&&(d=h,"number"==typeof+d))break;break}}return d}function Wk(a,b){if(b<+Uk(a,vk,void 0)){if(!a.ia)return 1;if(b<a.ia.length)switch(a.ia[b]){case 160:case 180:case 320:case 360:return 1;case 720:return 3;case 1200:return 2;case 1440:return 4}}return 0}function Tk(a,b){return+Uk(a,5,b)+ +Uk(a,6,b)}
|
||||
function sk(a,b){var c=b;if(a)for(var c=0,d=1,e=0;e<a.length;e++)"0"==a.charAt(e)&&(c|=d),d<<=1;return c}function uk(a,b,c,d){for(var e=Ak[a.ja]||Ak[a.ja|0]||Ak[5150],f=0;f<e.length;f++){var g=e[f];if(g&&(g=g[b]))for(var h in g.hd)if(h==c){a.C[f][d?0:1]&=~g.Lc;a.C[f][d?0:1]|=g.hd[h];return}}}function hl(a,b){a.setAttribute("data-value",b?"1":"0");a.style.color=b?"#ffffff":"#000000";a.style.backgroundColor=b?"#000000":"#ffffff"}function Pk(a){fl(a,0,tk);fl(a,1,xk);il(a)}
|
||||
function fl(a,b,c,d){if(c=a.qa[c]){d=d?a.C[b][0]:a.C[b][1]=a.C[b][0];c=nb(c,"pcjs-bitCell");for(var e=0;e<c.length;e++){var f=gl(a,b,e);c[e].setAttribute("title",f&&f.Qd||"Reserved");hl(c[e],d&1<<e?!1:!0);c[e].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");hl(b,c);var d=b.getAttribute("id").split("-"),e=1<<+d[1]-1;switch(d[0]){case tk:a.C[0][0]=a.C[0][0]&~e|(c?0:e);break;case xk:a.C[1][0]=a.C[1][0]&~e|(c?0:e)}il(a)}}(a,c[e])}}}
|
||||
function il(a){var b=a.qa.swdesc;if(null!=b){var c;c=""+(Tk(a,!0)+"Kb");c+=", "+(+ +Uk(a,3,!0)?"":"No ")+"Coprocessor";c+=", "+{0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"}[+Uk(a,wk,!0)]+" Monitor";c+=", "+ +Uk(a,vk,!0)+" Floppy Drives";if(null!=a.C[0][1]&&a.C[0][1]!=a.C[0][0]||null!=a.C[1][1]&&a.C[1][1]!=a.C[1][0])c+=" (Reset required)";b.textContent=c}}
|
||||
function jl(a,b,c,d,e){var f=a.L[b],g=f.Dc[c],h=g.Eb[f.Kb];A(a,768)&&x(a,d,null,e,"DMA"+b+".CHANNEL"+c+".ADDR["+f.Kb+"]",h,!0);f.Kb^=1;b||0!=c||f.Kb||(g.Eb[0]++,255<g.Eb[0]&&(g.Eb[0]=0,g.Eb[1]++,255<g.Eb[1]&&(g.Eb[1]=0)));return h}function kl(a,b,c,d,e,f){var g=a.L[b];A(a,768)&&x(a,d,e,f,"DMA"+b+".CHANNEL"+c+".ADDR["+g.Kb+"]",null,!0);a=g.Dc[c];a.Eb[g.Kb]=a.jg[g.Kb]=e;g.Kb^=1}
|
||||
|
|
@ -401,18 +401,18 @@ function Il(a,b,c,d,e,f){A(a,2304)&&x(a,d,e,f,"PIT"+b+".TIMER"+c,null,!0);f=b?3:
|
|||
function Ll(a,b,c,d,e){x(a,c,d,e,"PIT"+b+".CTRL",null,2048);e=0;c=d&192;b?(e=3,a.Pa=d):a.Oa=d;if(192==c){if(!(d&16))for(c=0;2>=c;c++)if(d&2<<c){b=e+c;var f=a.W[b];f.df||(Nk(a,b),f.Yb=f.Zg|f.mode|f.eg|(f.Fd<f.nd?64:0)|(f.vd?128:0),f.df=!0)}if(!(d&32))for(c=0;2>=c;c++)d&2<<c&&Ml(a,e+c)}else{c>>=6;var f=d&1,g=d&14;d&=48;if(0==d)Ml(a,e+c);else{e=e+c;var h=a.W[e];h.eg=d;h.mode=g;h.Zg=f;h.Fc=[0,0];h.Ab=[0,0];h.ze=[0,0];h.vd=!1;h.Ze=!1;h.Be=!1;h.df=!1;Hl(a,e);0==b&&0==c&&dg(a,0);0==b&&2==c&&255==a.vc[0].Bd&&
|
||||
77==a.X&&(b=a.W[0],b.$c[0]=b.Fc[0],b.$c[1]=b.Fc[1],b.xd=Wc(a.F,a.ka))}}}function Jl(a,b){var c=a.W[b],d=c.Fc[1]<<8|c.Fc[0];d||(d=1==c.nd?256:65536);return d}function bd(a,b){var c=a.W[b],d=c.$c[1]<<8|c.$c[0];d||(d=1==c.nd?256:65536);return d}function Ml(a,b){Nk(a,b);var c=a.W[b];c.ze[0]=c.Ab[0];c.ze[1]=c.Ab[1];c.Ze=!0;Hl(a,b)}function Hl(a,b){var c=a.W[b];c.Fd=32==c.eg?1:0;c.nd=48==c.eg?2:1}
|
||||
function Nk(a,b,c){var d=a.W[b];if(d.Be&&(2!=b||a.X&1)){var e=Wc(a.F,a.ka),f=(e-d.xd)/a.gb|0;0>f&&(d.xd=e,f=0);var g=Jl(a,b),h=bd(a,b)-f;0==d.mode?(0>=h&&(h=0),h||(d.vd=!0,d.Be=!1,b||eg(a,0))):4==d.mode?(d.vd=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.$c[0]=h&255,d.$c[1]=h>>8&255,d.xd=e,!b&&d.vd&&eg(a,0))):6==d.mode&&(h-=f,0>=h&&(d.vd=!d.vd,h=g+h,0>=h&&(h=g),d.$c[0]=h&255,d.$c[1]=h>>8&255,d.xd=e,!b&&d.vd&&eg(a,0)));d.Ab[0]=h&255;d.Ab[1]=h>>8&255;c&&(a.xd=0)}return d}
|
||||
function ad(a,b){for(var c=0;c<a.W.length;c++)Nk(a,c,b);if(a.ia>=cg){var c=a.F.Y.Jd,d=Wc(a.F,a.ka);null==a.fb&&(a.Ia=Wc(a.F,a.ka),a.Jb=1024,a.fb=Math.floor(a.F.Y.Jd/a.Jb),Yk(a));d>=a.ua&&(a.A[12]|=64,a.A[11]&64&&(a.A[12]|=128,eg(a,8)),a.ua=d+a.fb);a.A[0]==a.A[1]&&a.A[2]==a.A[3]&&a.A[4]==a.A[5]&&(a.A[12]|=32,a.A[11]&32&&(a.A[12]|=128,eg(a,8)));var e=d-a.Ia,f=Math.floor(e/c);if(f&&!(a.A[11]&128)){for(;f--;)if(60<=++a.A[0]&&(a.A[0]=0,60<=++a.A[2]&&(a.A[2]=0,24<=++a.A[4]))){a.A[4]=0;a.A[6]=a.A[6]%7+1;
|
||||
function ad(a,b){for(var c=0;c<a.W.length;c++)Nk(a,c,b);if(a.ja>=cg){var c=a.F.Y.Jd,d=Wc(a.F,a.ka);null==a.fb&&(a.Ia=Wc(a.F,a.ka),a.Jb=1024,a.fb=Math.floor(a.F.Y.Jd/a.Jb),Yk(a));d>=a.ua&&(a.A[12]|=64,a.A[11]&64&&(a.A[12]|=128,eg(a,8)),a.ua=d+a.fb);a.A[0]==a.A[1]&&a.A[2]==a.A[3]&&a.A[4]==a.A[5]&&(a.A[12]|=32,a.A[11]&32&&(a.A[12]|=128,eg(a,8)));var e=d-a.Ia,f=Math.floor(e/c);if(f&&!(a.A[11]&128)){for(;f--;)if(60<=++a.A[0]&&(a.A[0]=0,60<=++a.A[2]&&(a.A[2]=0,24<=++a.A[4]))){a.A[4]=0;a.A[6]=a.A[6]%7+1;
|
||||
var g;g=a.A[9];var h=ra[a.A[8]-1];28==h&&0===g%4&&(g%100||0===g%400)&&h++;g=h;++a.A[7]>g&&(a.A[7]=1,12<++a.A[8]&&(a.A[8]=1,a.A[9]=(a.A[9]+1)%100))}a.A[12]|=16;a.A[11]&16&&(a.A[12]|=128,eg(a,8))}a.Ia=d-e%c}}m=pk.prototype;m.Kl=function(a,b){var c=this.$a;this.Ca&16&&(this.X&128?c=this.C[0][1]:this.B&&(c=Nl(this.B)));x(this,a,null,b,"PPI_A",c);return c};m.dn=function(a,b,c){x(this,a,b,c,"PPI_A");this.$a=b};m.Ll=function(a,b){var c=this.X;x(this,a,null,b,"PPI_B",c);return c};
|
||||
m.en=function(a,b,c){x(this,a,b,c,"PPI_B");Ol(this,b)};function Ol(a,b){var c=!!(b&2),d=!!(a.X&2);a.X=b;a.B&&Pl(a.B,!(b&128),!!(b&64));c!=d&&Zk(a,c)}m.Ml=function(a,b){var c=0,c=5150==(this.ia|0)?this.X&4?c|this.C[1][1]&15:c|this.C[1][1]>>4&1:this.X&8?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.X&1&&Nk(this,2).vd&&(c=this.X&2?c|32:c|16);x(this,a,null,b,"PPI_C",c,32896);return c};m.fn=function(a,b,c){x(this,a,b,c,"PPI_C");this.rb=b};m.Nl=function(a,b){var c=this.Ca;x(this,a,null,b,"PPI_CTRL",c);return c};
|
||||
m.en=function(a,b,c){x(this,a,b,c,"PPI_B");Ol(this,b)};function Ol(a,b){var c=!!(b&2),d=!!(a.X&2);a.X=b;a.B&&Pl(a.B,!(b&128),!!(b&64));c!=d&&Zk(a,c)}m.Ml=function(a,b){var c=0,c=5150==(this.ja|0)?this.X&4?c|this.C[1][1]&15:c|this.C[1][1]>>4&1:this.X&8?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.X&1&&Nk(this,2).vd&&(c=this.X&2?c|32:c|16);x(this,a,null,b,"PPI_C",c,32896);return c};m.fn=function(a,b,c){x(this,a,b,c,"PPI_C");this.rb=b};m.Nl=function(a,b){var c=this.Ca;x(this,a,null,b,"PPI_CTRL",c);return c};
|
||||
m.gn=function(a,b,c){x(this,a,b,c,"PPI_CTRL");this.Ca=b};m.Wk=function(a,b){var c=this.B?Nl(this.B):0;x(this,a,null,b,"8041_KBD",c);this.wa&=-2;return c};m.pm=function(a,b,c){x(this,a,b,c,"8041_KBD")};m.Vk=function(a,b){var c=this.X;x(this,a,null,b,"8041_CTRL",c);return c};m.om=function(a,b,c){x(this,a,b,c,"8041_CTRL");Ol(this,b)};m.Xk=function(a,b){var c=this.wa;x(this,a,null,b,"8041_STATUS",c);return c};
|
||||
m.Yk=function(a,b){var c=this.Ja;x(this,a,null,b,"8042_OUTBUFF",c,16384);this.N&=-258;this.B&&Ql(this.B);return c};
|
||||
m.rm=function(a,b,c){x(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.N&8)switch(this.fa){case 96:Rl(this,b);break;case 209:Sl(this,b);break;default:if(Rl(this,this.aa&-17),this.B){a=this.B;c=b;var d=-1;A(a)&&y(a,"sendCmd("+t(c)+")");switch(a.W||c){case 255:d=250;Tl(a);break;case 243:a.W&&(c=0);Ul(a,250);a.W=c;break;case 237:a.W&&(c=0);Ul(a,250);a.W=c;break;default:y(a,"sendCmd(): unrecognized command")}Vl(this,d)}}this.fa=b;this.N&=-9};
|
||||
m.Zk=function(a,b){var c=this.X&-209|(Wc(this.F)&64?16:0);x(this,a,null,b,"8042_RWREG",c,16384);return c};m.sm=function(a,b,c){x(this,a,b,c,"8042_RWREG",null,16384);Ol(this,b)};m.$k=function(a,b){x(this,a,null,b,"8042_STATUS",this.N,16384);var c=this.N&255;this.N&256&&(this.N|=1,this.N&=-257);return c};
|
||||
m.qm=function(a,b,c){x(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.fa=b;this.N|=8;a=0;240<=this.fa&&(a=this.fa^15,this.fa=240);switch(this.fa){case 32:Vl(this,this.aa);break;case 173:Rl(this,this.aa|16);break;case 174:Rl(this,this.aa&-17);this.B&&Ql(this.B);break;case 170:this.B&&(a=this.B,a.A=[],A(a)&&y(a,"scan codes flushed"));Rl(this,this.aa|16);Vl(this,85);Sl(this,3);break;case 171:Vl(this,0);break;case 192:Vl(this,this.ga);break;case 208:Vl(this,this.Ka);break;case 224:Vl(this,this.aa&16?0:
|
||||
1);break;case 240:a&1&&pe(this.F)}};function Rl(a,b){a.aa=b;a.N=a.N&-5|b&4;a.B&&Pl(a.B,!!(b&8),!(b&16))}function Vl(a,b,c){0<=b&&(a.Ja=b,c?a.N|=1:(a.N&=-2,a.N|=256))}function Sl(a,b){a.Ka=b;Rb(a.ea,!!(b&2));b&1||pe(a.F)}function Wl(a,b){a.ia<cg?(eg(a,1,4),a.wa|=1):a.aa&16||a.N&257||(Vl(a,b,!0),Xl(a.B),eg(a,1,120))}function Yl(a,b,c,d){var e=a.C[b][1];x(a,c,null,d,"DIPSW-"+b,e,32768);return e}m.nl=function(a,b){x(this,a,null,b,"CMOS.ADDR",this.pa,4096);return this.pa};
|
||||
1);break;case 240:a&1&&pe(this.F)}};function Rl(a,b){a.aa=b;a.N=a.N&-5|b&4;a.B&&Pl(a.B,!!(b&8),!(b&16))}function Vl(a,b,c){0<=b&&(a.Ja=b,c?a.N|=1:(a.N&=-2,a.N|=256))}function Sl(a,b){a.Ka=b;Rb(a.ea,!!(b&2));b&1||pe(a.F)}function Wl(a,b){a.ja<cg?(eg(a,1,4),a.wa|=1):a.aa&16||a.N&257||(Vl(a,b,!0),Xl(a.B),eg(a,1,120))}function Yl(a,b,c,d){var e=a.C[b][1];x(a,c,null,d,"DIPSW-"+b,e,32768);return e}m.nl=function(a,b){x(this,a,null,b,"CMOS.ADDR",this.pa,4096);return this.pa};
|
||||
m.Gm=function(a,b,c){x(this,a,b,c,"CMOS.ADDR",null,4096);this.pa=b;this.ya=b&128?0:128};m.ol=function(a,b){var c=this.pa&63,d=13>=c?Ok(this,c):this.A[c];A(this,4352)&&x(this,a,null,b,"CMOS.DATA["+t(c)+"]",d,!0);null!=b&&12==c&&(this.A[c]&=15,d&128&&dg(this,8),d&64&&this.A[11]&64&&Yk(this));return d};
|
||||
m.Hm=function(a,b,c){var d=this.pa&63;A(this,4352)&&x(this,a,b,c,"CMOS.DATA["+t(d)+"]",null,!0);a=b^this.A[d];if(13>=d){if(c=b,10>d){var e=!1;this.A[11]&4||(c=10*(c>>4)+(c&15),e=!0);if(4==d||5==d)e&&23<c&&(c+=48),this.A[11]&2||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;11==d&&a&64&&b&64&&Yk(this)};m.fk=function(a,b,c){x(this,a,b,c,"NMI");this.ya=b};m.Rm=function(a,b,c){x(this,a,b,c,"FPU.CLEAR")};m.Sm=function(a,b,c){x(this,a,b,c,"FPU.RESET");this.Tb&&Yf(this.Tb)};
|
||||
m.am=function(a){if(A(this,16)&&kk(this.ha,26,a)){var b=this.F.G>>8;df(this.F,a,function(a,d){return function(e){d=Wc(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)="+u(h)+" CL(min)="+t(g)+" DH(sec)="+t(l);else if(4==b||5==b)f=" CX(year)="+u(a.F.I)+" DH(month)="+t(l)+" DL(day)="+t(k);g=a.ha;h=d;g.message("INT "+t(26)+": C="+(pf(g.F)?1:0)+(f||"")+" (cycles="+h+(e?",level="+(e+1):"")+")")}}(this,Wc(this.F)))}return!0};
|
||||
m.am=function(a){if(A(this,16)&&kk(this.ha,26,a)){var b=this.F.G>>8;Ue(this.F,a,function(a,d){return function(e){d=Wc(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)="+u(h)+" CL(min)="+t(g)+" DH(sec)="+t(l);else if(4==b||5==b)f=" CX(year)="+u(a.F.I)+" DH(month)="+t(l)+" DL(day)="+t(k);g=a.ha;h=d;g.message("INT "+t(26)+": C="+(pf(g.F)?1:0)+(f||"")+" (cycles="+h+(e?",level="+(e+1):"")+")")}}(this,Wc(this.F)))}return!0};
|
||||
function Zk(a,b){if(a.Fa)try{void 0!==b?a.Db=b:b=a.Db&&a.F&&a.F.la.Ib;var c=Math.round(1193181/Jl(a,2));if(20>c||2E4<c)b=!1;b?a.U?(a.U.frequency.value=c,A(a,33554432)&&y(a,"speaker set to "+c+"hz",!0)):(a.U=a.Fa.createOscillator(),a.U&&(a.U.type="number"==typeof a.U.type?1:"square",a.U.connect(a.Fa.destination),a.U.frequency.value=c,"start"in a.U?a.U.start(0):a.U.noteOn(0),A(a,33554432)&&y(a,"speaker on at "+c+"hz",!0))):a.U&&("stop"in a.U?a.U.stop(0):a.U.noteOff(0),a.U.disconnect(),delete a.U,A(a,
|
||||
33554432)&&y(a,"speaker off at "+c+"hz",!0))}catch(d){a.Na("AudioContext exception: "+d.message),a.Fa=null}else b&&y(a,"BEEP",33554432)}
|
||||
var Ck={0:function(a,b){return jl(this,0,0,a,b)},1:function(a,b){return ll(this,0,0,a,b)},2:function(a,b){return jl(this,0,1,a,b)},3:function(a,b){return ll(this,0,1,a,b)},4:function(a,b){return jl(this,0,2,a,b)},5:function(a,b){return ll(this,0,2,a,b)},6:function(a,b){return jl(this,0,3,a,b)},7:function(a,b){return ll(this,0,3,a,b)},8:function(a,b){return nl(this,0,a,b)},13:function(a,b){return sl(this,0,a,b)},32:function(a,b){return Bl(this,0,b)},33:function(a,b){return El(this,0,b)},64:function(a,
|
||||
|
|
@ -436,7 +436,7 @@ m.ic=function(a,b){return!b&&(this.reset(),a&&this.controller&&!this.restore(a))
|
|||
m.reset=function(){if(!this.B&&!this.V&&this.N){var a=1024*Tk(this.N);this.A&&a!=this.A&&(Zb(this.ea,this.B,this.A),this.C=!1);this.A=a}!this.C&&this.A&&Sb(this.ea,this.B,this.A,1)&&(this.C=!0,this.status(Math.floor(this.A/1024)+"Kb allocated"),"ramCPQ"==this.ee&&(this.controller=new fm(this),Sb(this.ea,gm,4,4,this.controller)));if(this.C){if(this.L||fc(this.ea,1138,4660),"ramCPQ"!=this.ee&&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;Xk(a)}}else w("No RAM allocated")};m.save=function(){var a=new hf(this);this.controller&&N(a,0,this.controller.save());return a.data()};m.restore=function(a){return this.controller?this.controller.restore(a[0]):!0};function fm(a){this.N=a;this.C=hm;this.ha=im;this.B=jm;this.A=null}var gm=-2134900736,hm=65535,im=2575,jm=2,km=[null,0],lm=[function(a){return this.controller.Qa(a)},null,null,function(a,b){this.controller.qc(a,b)},null,null];m=fm.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.ea;if(b&1)this.A&&(Wb(c,917504,131072,this.A),this.A=null);else{this.A||(this.A=Xb(c,917504,131072));var d=Xb(c,16646144,131072);Wb(c,917504,131072,d,b&2?1:$b)}this.C=this.C&-256|b}};m.Ri=function(){return km};m.gh=function(){return lm};
|
||||
Qa(function(){for(var a=nb(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new em(d);mb(d,c)}});function mm(a){Ua.call(this,"Keyboard",a,mm,65536);nm(this,a.model);this.ja=Ga("Mobi");this.pa=Ga("MSIE");y(this,"mobile keyboard support: "+(this.ja?"true":"false"));this.ga=0;this.ka=this.bh=!1;this.B=[];this.ua=50;rb(this)}db(mm);
|
||||
Qa(function(){for(var a=nb(document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new em(d);mb(d,c)}});function mm(a){Ua.call(this,"Keyboard",a,mm,65536);nm(this,a.model);this.ia=Ga("Mobi");this.pa=Ga("MSIE");y(this,"mobile keyboard support: "+(this.ia?"true":"false"));this.ga=0;this.ka=this.bh=!1;this.B=[];this.ua=50;rb(this)}db(mm);
|
||||
var om=["US83","US84","US101"],X={zn:1,An:3,Bn:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,vn:65,wn:66,xn:67,Cn:68,E:69,Dn:70,Gn:71,Hn:72,In:73,Jn:74,Kn:75,Ln:76,Mn:77,On:78,Pn:79,Qn:80,Q:81,Rn:82,Vn:83,$n:84,eo:85,fo:86,ho:87,jo:88,ko:89,lo:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,mo:97,no:98,po:99,d:100,e:101,qo:102,ro:103,so:104,
|
||||
to:105,uo:106,k:107,vo:108,wo:109,n:110,yo:111,p:112,q:113,r:114,zo:115,t:116,Bo:117,Co:118,Do:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},pm={};pm[186]=X[";"];pm[187]=X["="];pm[188]=X[","];pm[189]=X["-"];pm[190]=X["."];pm[191]=X["/"];pm[192]=X["`"];pm[219]=X["["];pm[220]=X["\\"];pm[221]=X["]"];pm[222]=X["'"];pm[173]=X["-"];var qm={};qm[X["1"]]=X["!"];qm[X["2"]]=X["@"];qm[X["3"]]=X["#"];qm[X["4"]]=X.$;qm[X["5"]]=X["%"];qm[X["6"]]=X["^"];qm[X["7"]]=X["&"];qm[X["8"]]=X["*"];qm[X["9"]]=X["("];
|
||||
qm[X["0"]]=X[")"];qm[186]=X[":"];qm[187]=X["+"];qm[188]=X["<"];qm[189]=X._;qm[190]=X[">"];qm[191]=X["?"];qm[192]=X["~"];qm[219]=X["{"];qm[220]=X["|"];qm[221]=X["}"];qm[222]=X['"'];qm[173]=X._;qm[61]=X["+"];qm[59]=X[":"];
|
||||
|
|
@ -449,21 +449,22 @@ Y[1115]=62;Y[1116]=63;Y[1117]=64;Y[1118]=65;Y[1119]=66;Y[1120]=67;Y[1121]=68;Y[1
|
|||
m.Pb=function(a,b,c,d){var e=this,f=a+"-"+b;if(void 0===this.qa[f])switch(b){case "kbd":return c.onkeydown=function(a){return vm(e,a,!0)},c.onkeypress=function(a){a=a||window.event;a=a.which||a.keyCode;e.L="";var b=!Y[a]||!!(e.xc&128);b||wm(e,a,!0);return b},c.onkeyup=function(a){return vm(e,a,!1)},!0;case "caps-lock":return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();wm(e,1020,!0)},!0;case "num-lock":return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();wm(e,1144,!0)},!0;case "scroll-lock":return this.qa[f]=
|
||||
c,c.onclick=function(){e.V&&e.V.yd();wm(e,1145,!0)},!0;default:var g=b.toUpperCase().replace(/-/g,"_");if(void 0!==sm[g]&&"button"==a)return this.qa[f]=c,c.onclick=function(a,b,c){return function(){a.V&&a.V.yd();xm(a,c,!0);wm(a,c,!0)}}(this,g,sm[g]),!0;if(void 0!==tm[b])return this.ga++,this.qa[f]=c,a=function(a,b,c){return function(){wm(a,c)}}(this,b,tm[b]),b=function(a,b,c){return function(){ym(a,c)}}(this,b,tm[b]),"ontouchstart"in window?(c.ontouchstart=a,c.ontouchend=b):(c.onmousedown=a,c.onmouseup=
|
||||
c.onmouseout=b),!0;if(d)return this.qa[f]=c,c.onclick=function(){e.V&&e.V.yd();d&&!e.L&&(e.L=d,zm(e,300))},!0}return!1};function Am(a,b,c){if(a.ga){for(var d in qm)if(b==qm[d]){b=+d;(d=pm[d])&&(b=d);break}for(var e in tm)if((d=tm[e]==b)||(d=b,97<=d&&122>=d&&(d-=32),d=tm[e]==d),d){(a=a.qa["key-"+e])&&void 0!==c&&(a.style.color=c?"#ffffff":"#000000",a.style.backgroundColor=c?"#000000":"#ffffff");break}}}m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet")};
|
||||
function nm(a,b){var c=0;a.ia=null;b&&(a.ia=b.toUpperCase(),c=om.indexOf(a.ia),0>c&&(c=0));b=om[c];a.ra=parseInt(b.substr(2),10)}function Tl(a){y(a,"keyboard reset",65792);a.A=[];Ul(a,170)}function Pl(a,b,c){a.aa!==c&&(a.aa=a.fa=c)&&(a.U=!0);a.X!==b&&(a.X=b)&&!a.fa&&Xl(a,!0);a.X&&a.fa&&(Tl(a),a.fa=!1)}function Ul(a,b){a.N&&(a.A.unshift(b),a.U=!0,Wl(a.N,b))}function Ql(a){var b=0;a.A.length&&a.U&&(b=a.A[0],a.N&&Wl(a.N,b));A(a)&&y(a,b?"scan code "+t(b)+" available":"no scan codes available")}
|
||||
function nm(a,b){var c=0;a.ja=null;b&&(a.ja=b.toUpperCase(),c=om.indexOf(a.ja),0>c&&(c=0));b=om[c];a.ra=parseInt(b.substr(2),10)}function Tl(a){y(a,"keyboard reset",65792);a.A=[];Ul(a,170)}function Pl(a,b,c){a.aa!==c&&(a.aa=a.fa=c)&&(a.U=!0);a.X!==b&&(a.X=b)&&!a.fa&&Xl(a,!0);a.X&&a.fa&&(Tl(a),a.fa=!1)}function Ul(a,b){a.N&&(a.A.unshift(b),a.U=!0,Wl(a.N,b))}function Ql(a){var b=0;a.A.length&&a.U&&(b=a.A[0],a.N&&Wl(a.N,b));A(a)&&y(a,b?"scan code "+t(b)+" available":"no scan codes available")}
|
||||
function Nl(a){var b=0;a.A.length&&(b=a.A[0]);A(a)&&y(a,"scan code "+t(b)+" delivered");return b}function Xl(a,b){0<a.A.length&&(a.A.shift(),(a.U=b)&&(a.A.length&&a.N?Wl(a.N,a.A[0]):b=!1),A(a)&&y(a,"scan codes shifted, notify "+(b?"true":"false")))}m.ic=function(a,b){return!b&&(this.reset(),a&&this.restore&&!this.restore(a))?!1:!0};m.hc=function(a){return a?this.save():!0};
|
||||
m.reset=function(){if(!this.ia&&this.N)switch(this.N.ia){case 5150:case 5160:nm(this,om[0]);break;default:nm(this,om[1])}Bm(this);this.xc=this.C=0;this.A=[];this.U=!0;this.L=""};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.aa;c[b]=this.X;N(a,0,c);return a.data()};m.restore=function(a){return Bm(this,a[0])};function Bm(a,b){var c=0;void 0===b&&(b=[]);a.aa=a.U=b[c++];a.X=b[c];a.W=0;return!0}
|
||||
m.reset=function(){if(!this.ja&&this.N)switch(this.N.ja){case 5150:case 5160:nm(this,om[0]);break;default:nm(this,om[1])}Bm(this);this.xc=this.C=0;this.A=[];this.U=!0;this.L=""};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.aa;c[b]=this.X;N(a,0,c);return a.data()};m.restore=function(a){return Bm(this,a[0])};function Bm(a,b){var c=0;void 0===b&&(b=[]);a.aa=a.U=b[c++];a.X=b[c];a.W=0;return!0}
|
||||
function zm(a,b){if(0<a.L.length){var c=a.L.charCodeAt(0);10==c&&(c=13);a.L=a.L.substr(1);wm(a,c,!0)}0<a.L.length&&setTimeout(function(a){return function(){zm(a,b)}}(a),b)}
|
||||
function xm(a,b,c,d){if(Y[b]){var e=Math.floor(b/1E3)&2;if(b=rm[b]||0){!e||b&85||(b>>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.C:a.xc)&b):d||b&255&&(b=255);if(c){a.C&=~b;d&&(a.C|=b);c=b;var f,g;for(g in um)d="led-"+g,e=um[g],c&&c!=e||!(f=a.qa[d])||(f.style.backgroundColor=a.C&e?"#00ff00":"#000000")}else a.xc&=~b,d&&(a.xc|=b);return!0}}return!1}
|
||||
function wm(a,b,c){if(Y[b]&&a.F&&a.F.la.Ib){rm[b]&&a.B.length&&0<a.B[0].Ld&&(a.B[0].Ld=0);for(var d,e=0;e<a.B.length;e++)if(d=a.B[e],d.Me==b){if(!c||0<=d.Ld){e=-1;break}0<e&&(0<a.B[0].Ld&&(a.B[0].Ld=0),a.B.splice(e,1));break}0>e||(e==a.B.length&&(d={},d.Me=b,d.xc=a.xc,Am(a,b,!0),e++),0<e&&a.B.splice(0,0,d),d.Ef=!0,d.Ld=c?-1:rm[b]?0:1,Cm(a,d))}}
|
||||
function ym(a,b,c){if(!Y[b]||!(c||a.F&&a.F.la.Ib))return!1;for(var d=!1,e=0;e<a.B.length;e++){var f=a.B[e];if(f.Me==b||f.Me==qm[b]){a.B.splice(e,1);f.rk&&clearTimeout(f.rk);f.Ef&&!c&&Dm(a,f.Me,!1);Am(a,b,!1);d=!0;break}}!a.B.length&&a.ka&&(xm(a,1020),a.ka=!1);return d}function Cm(a,b){if(!a.F||!a.F.la.Ib)ym(a,b.Me,!0);else if(Dm(a,b.Me,b.Ef)&&b.Ld){var c;if(0>b.Ld){if(!b.Ef){ym(a,b.Me);return}b.Ef=!1;c=a.ua}else c=1==b.Ld++?500:100;b.rk=setTimeout(function(a){return function(){Cm(a,b)}}(a),c)}}
|
||||
function Em(a,b,c){var d=b;if(65<=b&&90>=b)!(a.xc&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.xc&515)==c&&(d=b-32);else if(!!(a.xc&3)==c){if(a=qm[b])d=a}else if(a=pm[b])d=a;return d}m.Gg=function(a){a||(this.xc&=-256)};
|
||||
function vm(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Em(a,g,!0);a.bh&&h==X["`"]&&(g=h=27);if(Y[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),xm(a,h,!1,c)){if(20==g||144==g||145==g)a.pa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.B.length;k++){var l=a.B[k];l.Ef=!1;0<l.Ld&&(l.Ld=0)}}else 8==g&&8==(a.xc&40)&&(h=4008),d=!1;else if(Y[h]&&a.xc&60&&(d=!1),d&&c||a.xc&192)f=!0;d||b.preventDefault();f||a.ja&&d||(c?wm(a,h,e):ym(a,h)||(b=Em(a,g,!1),b!=h&&ym(a,b)));return d}
|
||||
function vm(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Em(a,g,!0);a.bh&&h==X["`"]&&(g=h=27);if(Y[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),xm(a,h,!1,c)){if(20==g||144==g||145==g)a.pa||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.B.length;k++){var l=a.B[k];l.Ef=!1;0<l.Ld&&(l.Ld=0)}}else 8==g&&8==(a.xc&40)&&(h=4008),d=!1;else if(Y[h]&&a.xc&60&&(d=!1),d&&c||a.xc&192)f=!0;d||b.preventDefault();f||a.ia&&d||(c?wm(a,h,e):ym(a,h)||(b=Em(a,g,!1),b!=h&&ym(a,b)));return d}
|
||||
function Dm(a,b,c){var d=!1;xm(a,b,!0,c);var e=Y[b]||Y[b+1E3];if(void 0!==e){14==e&&40==(a.xc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.ra)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,h=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==h?a.C&3||a.C&512&&b||(g=h):29==h?a.C&12||(g=h):56==h?a.C&48||(g=h):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.A&&(20>e.A.length?(A(e)&&y(e,"scan code "+t(f)+" buffered"),e.A.push(f),1==
|
||||
e.A.length&&e.N&&Wl(e.N,f)):(20==e.A.length&&e.A.push(255),y(e,"scan code buffer overflow")));d=!0}return d}Qa(function(){for(var a=nb(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new mm(d);mb(d,c)}});
|
||||
function Z(a,b,c,d,e){Ua.call(this,"Video",a,Z,262144);this.ia=a.model;var f=Fm[this.ia]||Fm.mda;this.Ua=f[0];this.Ed=a.memory||0;this.bg=a.switches;this.wa=a.mode;if(null==this.wa||null==Gm[this.wa])this.wa=f[1];this.kd=a.charCols;this.le=a.charRows;if(void 0===this.kd||void 0===this.le)this.kd=Gm[this.wa][0],this.le=Gm[this.wa][1];this.ra=a.screenWidth;this.Ea=a.screenHeight;this.Wf=a.scale;this.tn=12<=Math.round(this.ra/this.kd);this.ka=b;this.ja=c;this.V=(this.vk=d)||b||null;this.gg=a.touchScreen;
|
||||
this.me=Hm;this.W=null;this.pi=a.autoLock;this.ob=this.ac=0;this.Oa=[];this.Ca=Array(this.Ua==dm?256:16);this.rb=!1;var g=this;this.qf=Ga("Gecko/");b=["","moz","webkit","ms"];if(this.ga=e)if(this.ga.We=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ga.We){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){Im(g,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
|
||||
document.msFullscreenElement?!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){Im(g,null)},!1);break}}this.V&&(this.V.onfocus=function(){return g.Gg(!0)},this.V.onblur=function(){return g.Gg(!1)},this.V.De=this.V.requestPointerLock||this.V.mozRequestPointerLock||this.V.webkitRequestPointerLock,this.V.sk=this.V.exitPointerLock||this.V.mozExitPointerLock||this.V.webkitExitPointerLock,this.V.De&&(e=function(){g.Vf(document.pointerLockElement===
|
||||
g.V||document.mozPointerLockElement===g.V||document.webkitPointerLockElement===g.V)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=xa()+"/api/v1/dump?file="+a+"&format=bytes"),va(a,null,!0,function(a,b,c){Jm(g,a,b,c)})}db(Z);
|
||||
function Z(a,b,c,d,e){var f=this;this.qf=Ga("Gecko/");var g=["","moz","webkit","ms"];Ua.call(this,"Video",a,Z,262144);this.ja=a.model;var h=Fm[this.ja]||Fm.mda;this.Ua=h[0];this.Ed=a.memory||0;this.bg=a.switches;this.wa=a.mode;if(null==this.wa||null==Gm[this.wa])this.wa=h[1];this.kd=a.charCols;this.le=a.charRows;if(void 0===this.kd||void 0===this.le)this.kd=Gm[this.wa][0],this.le=Gm[this.wa][1];this.ra=a.screenWidth;this.Ea=a.screenHeight;this.Wf=a.scale;this.tn=12<=Math.round(this.ra/this.kd);this.ka=
|
||||
b;this.ia=c;this.V=(this.vk=d)||b||null;b=a.smoothing;(c=Ya.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<g.length;c++)d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",this.ia[d]=b;this.gg=a.touchScreen;this.me=Hm;this.W=null;this.pi=a.autoLock;this.ob=this.ac=0;this.Oa=[];this.Ca=Array(this.Ua==dm?256:16);this.rb=!1;if(this.ga=e)if(this.ga.We=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ga.We){for(c=0;c<g.length;c++)if(d=g[c]+
|
||||
"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Im(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Im(f,null)},!1);break}}this.V&&(this.V.onfocus=function(){return f.Gg(!0)},this.V.onblur=function(){return f.Gg(!1)},this.V.De=this.V.requestPointerLock||this.V.mozRequestPointerLock||
|
||||
this.V.webkitRequestPointerLock,this.V.sk=this.V.exitPointerLock||this.V.mozExitPointerLock||this.V.webkitExitPointerLock,this.V.De&&(e=function(){f.Vf(document.pointerLockElement===f.V||document.mozPointerLockElement===f.V||document.webkitPointerLockElement===f.V)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",
|
||||
e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=xa()+"/api/v1/dump?file="+a+"&format=bytes"),va(a,null,!0,function(a,b,c){Jm(f,a,b,c)})}db(Z);
|
||||
var dm=7,Fm={mda:[1,7],cga:[3,3],ega:[5,3],vga:[dm,3]},Km={2:{Cg:15700,Bg:208,Hg:85,Ig:96},3:{Cg:18432,Bg:364,Hg:85,Ig:96},4:{Cg:21850,Bg:364,Hg:85,Ig:96},7:{Cg:16700,Bg:480,Hg:85,Ig:83}},Lm={6:[1,3,!0],7:[2,3,!0],8:[6,3,!0],9:[4,3,!0],10:[3,1,!0],11:[3,2,!0],0:[1,3,!1],1:[2,3,!1],2:[6,3,!1],3:[4,3,!1],4:[3,1,!1],5:[3,2,!1]},Gm=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192],[80,25,1,0,1]];Gm[13]=[320,200,8];Gm[14]=[640,200,8];Gm[15]=[640,350,8];Gm[16]=[640,350,8];
|
||||
Gm[17]=[640,480,8];Gm[18]=[640,480,8];Gm[19]=[320,200,1];Gm[20]=[320,240,4];Gm[21]=[320,400,4];Gm[0]=Gm[1];Gm[2]=Gm[3];Gm[5]=Gm[4];
|
||||
var Mm=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Nm=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Om=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Pm=[2,4,6],Qm=[3,5,7],Rm=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Sm=[0,255,65280,65535,16711680,16711935,16776960,
|
||||
|
|
@ -489,7 +490,7 @@ a.wg|-2147483648;c[16]=a.di;c[17]=a.qb;c[18]=a.dd;c[19]=a.Mb;c[20]=a.Uf;c[21]=a.
|
|||
Um.prototype.Ri=function(a){return[this.sd,a-this.ob]};Um.prototype.gh=function(){return this.A};Um.prototype.Og=function(a){if(null!=a&&a!=this.wg){var b=a&65280,c=dn[b];c||b&4096&&(c=dn[4096]);var b=a&255,d=dn[b];d||b&16&&(d=dn[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.wg=a}};
|
||||
function gn(a,b){var c=a.mb[b];if(null!=c&&5<=a.Ua){var d=0,e=0,f=0;switch(b){case 6:d=1;a.Ua==dm&&(e=32);break;case 10:5==a.Ua&&(d=32);break;case 16:d=4;a.Ua==dm&&(e=128);break;case 18:d=2;a.Ua==dm&&(e=64);break;case 21:d=8;a.Ua==dm&&(f=32);break;case 24:d=16,a.Ua==dm&&(f=64)}d&&(c|=a.mb[7]&d?256:0,c|=a.mb[7]&e?512:0,c|=a.mb[9]&f?512:0)}return c}var Vm=[,["MDA",948,720896,4096,0,3],,["CGA",980,753664,16384,0,2],,["EGA",980,753664,16384,65536,4]];Vm[dm]=["VGA",980,753664,16384,262144,7];var Hm=0;
|
||||
m=Z.prototype;
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;c=(c=Fm[this.ia])&&c[0];3!==c&&(hc(b,this,hn),lc(b,this,jn));1!==c&&(hc(b,this,kn),lc(b,this,ln));5<=this.Ua&&(hc(b,this,mn),lc(b,this,nn));this.Ua==dm&&(hc(b,this,on),lc(b,this,pn));if(d){var e=this;Mk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.sd){var c,d,f,q=!1,p=8,z=8,F=-1,v=b.video.L>>3;for(c=0;c<a.length;c++){var E=a[c];if(c){var H=E.charAt(0);d=ca(E.substr(1));switch(H){case "l":p=d;break;case "n":1<=d&&8>=d&&(z=d,q=!0);break;case "p":0<=
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;c=(c=Fm[this.ja])&&c[0];3!==c&&(hc(b,this,hn),lc(b,this,jn));1!==c&&(hc(b,this,kn),lc(b,this,ln));5<=this.Ua&&(hc(b,this,mn),lc(b,this,nn));this.Ua==dm&&(hc(b,this,on),lc(b,this,pn));if(d){var e=this;Mk(d,262144,function(a){if(e.C)if(a[0]){var b=e.C;if(b.sd){var c,d,f,q=!1,p=8,z=8,F=-1,v=b.video.L>>3;for(c=0;c<a.length;c++){var E=a[c];if(c){var H=E.charAt(0);d=ca(E.substr(1));switch(H){case "l":p=d;break;case "n":1<=d&&8>=d&&(z=d,q=!0);break;case "p":0<=
|
||||
d&&3>=d&&(F=d);break;case "w":d<v&&(v=d);break;default:b.ha.O("unrecognized argument: "+E)}}else f=ca(E)}void 0===f?f=b.B||0:f>=b.ob&&(f-=b.ob);a="";for(c=0;c<p;c++){E=r(b.ob+f)+":";for(d=0;d<z&&f<b.sd.length;d++)H=b.sd[f++],E+=" "+(0>F?r(H):da(H>>(F<<3),8));q&&(f+=v-z);a&&(a+="\n");a+=E}a&&b.ha.O(a);b.B=f}else b.ha.O("no buffer")}else e.ha.O("BIOSMODE: "+t(e.Ia)),b=e.C,fn(b,"CRTC",b.Ac,b.mb,b.kg),5<=b.Ua&&(fn(b," GRC",b.be,b.ae,b.Ug),fn(b," SEQ",b.ce,b.Je,b.Vg),fn(b," ATC",b.Od,b.Tc,b.Tg),fn(b," ATCINDX",
|
||||
b.Od),b.ha.O(" ATCDATA: "+b.Xe),fn(b," FEAT",b.dg),fn(b," MISC",b.uf),fn(b," STATUS0",b.Mg)),fn(b," STATUS1",b.ma),1!=b.Ua&&3!=b.Ua||fn(b," MODEREG",b.gd),3==b.Ua&&fn(b," COLOR",b.sf),5<=b.Ua&&(b.ha.O(" LATCHES: "+r(b.Fb)),b.ha.O(" ACCESS: "+r(b.wg,4)),b.ha.O("Use 'dump video [addr]' to dump video memory"));else e.ha.O("no active video card")})}if((this.B=Eb(a,"Keyboard"))&&this.ka){for(var f in this.qa)0<f.indexOf("lock")&&this.B.Pb("led",f,this.qa[f]);this.B.Pb(this.vk?"textarea":"canvas",
|
||||
"kbd",this.V)}this.Vc=9;(this.N=Eb(a,"ChipSet"))&&this.bg&&5==this.Ua&&(this.Vc=sk(this.bg,this.Vc));"mouse"==this.gg?(this.W=Eb(a,"Mouse"))&&qn(this,2):"keygrid"==this.gg&&this.B&&qn(this,1)};
|
||||
|
|
@ -499,15 +500,15 @@ function Im(a,b){!b&&a.ga&&(a.qf?a.ka.style.width=a.ka.style.height="":a.ga.styl
|
|||
function qn(a,b){var c=a.V;c&&!a.me&&(c.addEventListener("touchstart",function(b){sn(a,b,!0)},!1),c.addEventListener("touchmove",function(b){sn(a,b)},!0),c.addEventListener("touchend",function(b){sn(a,b,!1)},!1),a.me=b,a.uc=a.Cc=a.hg=-1,a.Id=!1,a.Xc=null,a.Hd=!1,a.un=function(){a.Hd=!0;a.W.je(tn,!0)})}m.Gg=function(a){this.B&&this.B.Gg(a)};
|
||||
function sn(a,b,c){var d,e,f=0,g=0;e=a.ka;do isNaN(e.offsetLeft)||(f+=e.offsetLeft,g+=e.offsetTop);while(e=e.offsetParent);var h=a.ra/a.ka.offsetWidth,k=a.Ea/a.ka.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(1==a.me)d=d/(a.ra/3)|0,e=e/(a.Ea/3)|0,1!=e?e?wm(a.B,1040,!0):wm(a.B,1038,!0):1!=d&&(d?wm(a.B,1039,!0):wm(a.B,1037,!0));else if(a.W){g=a.Id;f=b.timeStamp-a.hg;!0===c?(a.Id=500<f,a.hg=b.timeStamp,
|
||||
a.Xc=setTimeout(a.un,500)):null!=a.Xc&&(clearTimeout(a.Xc),a.Xc=null);void 0===c&&(a.Id=!1);g||b.preventDefault();if(!1===c){a.Hd?(a.W.je(tn,!1),a.Hd=!1,b=!0):b=!1;if(b)return;if(200>f){a.W.je(tn,!0);a.W.je(tn,!1);return}}if(c||0>a.uc||0>a.Cc)a.uc=d,a.Cc=e;c=Math.round(d-a.uc);b=Math.round(e-a.Cc);a.uc=d;a.Cc=e;a.W.Hf(c,b,a.uc,a.Cc)}}m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};
|
||||
m.reset=function(){var a=!0,b=0;this.N&&(b=+Uk(this.N,wk,void 0));this.ia||(this.Ua=3==b?1:3);this.wa=3;switch(this.Ua){case dm:b=7;break;case 5:var c=Lm[this.Vc];c&&(b=c[0]);b||(b=4);break;case 1:b=3;this.wa=7;break;default:b=2}this.ya!==b&&(this.ya=b,a=!0);this.C=null;this.pa=this.rd=new Um(this,1);this.aa=this.Wc=new Um(this,3);5>this.Ua?this.A=new Um:(this.A=new Um(this,this.Ua,null,this.Ed),un(this));vn(this);this.Ia=null;this.cb=this.ua=-1;this.Pa=0;wn(this,this.wa);if(this.C.ob&&a){a=this.C.ob+
|
||||
m.reset=function(){var a=!0,b=0;this.N&&(b=+Uk(this.N,wk,void 0));this.ja||(this.Ua=3==b?1:3);this.wa=3;switch(this.Ua){case dm:b=7;break;case 5:var c=Lm[this.Vc];c&&(b=c[0]);b||(b=4);break;case 1:b=3;this.wa=7;break;default:b=2}this.ya!==b&&(this.ya=b,a=!0);this.C=null;this.pa=this.rd=new Um(this,1);this.aa=this.Wc=new Um(this,3);5>this.Ua?this.A=new Um:(this.A=new Um(this,this.Ua,null,this.Ed),un(this));vn(this);this.Ia=null;this.cb=this.ua=-1;this.Pa=0;wn(this,this.wa);if(this.C.ob&&a){a=this.C.ob+
|
||||
this.Ub;for(b=this.C.ob;b<a;b+=2){var d=65536*Math.random()|0;4==this.ya||7==this.ya?(c=b>>1&255,d=d>>8&-129,d>>4==(d&15)&&(d^=15)):(c=d&255,d=(d&256?7:112)|8&d>>8);fc(this.ea,b,c|d<<8)}rn(this,!0)}};function un(a){a.A.uf&1?(a.pa=a.rd,a.aa=a.A):(a.pa=a.A,a.aa=a.Wc)}m.save=function(){var a=new hf(this);N(a,0,en(this.rd));N(a,1,en(this.Wc));N(a,2,[this.ya,this.wa,this.Ia]);N(a,3,en(this.A));return a.data()};
|
||||
m.restore=function(a){var b=a[2];this.ya=b[0];this.wa=b[1];this.Ia=b[2];this.C=null;this.pa=this.rd=new Um(this,1,a[0]);this.aa=this.Wc=new Um(this,3,a[1]);this.A=new Um(this,this.Ua,a[3],this.Ed);this.A.Hc&&un(this);vn(this);if(!xn(this))return!1;yn(this);return!0};
|
||||
function Jm(a,b,c,d){if(d)a.Na("Unable to load font ROM (error "+d+": "+b+")");else{fb(a.ve,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(8192==f.length)cm(a,f,[6144,0]);else if(2048==f.length)cm(a,f,[0]);else{a.Na("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Na("Font ROM data error: "+g.message);return}(a.ja||a.ha)&&rb(a)}}
|
||||
function Jm(a,b,c,d){if(d)a.Na("Unable to load font ROM (error "+d+": "+b+")");else{fb(a.ve,b,c);try{var e=eval("("+c+")"),f=e.bytes||e;if(!f.length){w("Empty font ROM: "+b);return}if(1==f.length){w(f[0]);return}if(8192==f.length)cm(a,f,[6144,0]);else if(2048==f.length)cm(a,f,[0]);else{a.Na("Unrecognized font data length ("+f.length+")");return}}catch(g){a.Na("Font ROM data error: "+g.message);return}(a.ia||a.ha)&&rb(a)}}
|
||||
function zn(a,b){if(1==b)return a.Ca[0]=Om[0],a.Ca[1]=Om[7],a.Ca;if(2==b){var c=a.C.sf;if(a.C===a.A){var d=a.A.Tc[0],c=d&7;d&16&&(c|=8);18!=a.A.Tc[1]&&(c|=32)}a.Ca[0]=Om[c&15];c=c&32?Qm:Pm;for(d=0;d<c.length;d++)a.Ca[d+1]=Om[c[d]];return a.Ca}if(a.aa===a.Wc)return Om;a.rb&&b&&!a.Ca[16]&&(a.rb=!1);if(!a.rb){var c=a.A,d=c.tf,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.Ca[f]=[h,k,g,255];else{var l=d&&d[255];e=null!=c.Tc[15]?c.Tc:Rm;for(f=0;16>f;f++)g=e[f]&63,l?(g|=
|
||||
(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 cm(a,b,c,d){a.Uc=b;a.Jb=c;a.Tb=d}
|
||||
function vn(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]&&An(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]&&(An(a,1,a.Jb[1],d,e,14,a.Uc,Mm,Nm)&&(c=!0),a.Tb&&An(a,a.Ua,a.Jb[1],0,a.Tb,14,a.Uc,f)&&(c=!0))}return c}function An(a,b,c,d,e,f,g,h,k){var l=!1;null!=c&&(Bn(a,b,c,d,e,f,g,h,k)&&(l=!0),a.tn&&Bn(a,b<<1,c,d,e,f,g,h,k)&&(l=!0));return l}
|
||||
function Bn(a,b,c,d,e,f,g,h,k){var l=!1,n=b&1?0:1,q=a.Oa[b],p=16>h.length?h.length:16;q||(q={Qc:e<<n,Rc:f<<n,Oe:Array(p),si:h.slice(0,p),zf:k,Sg:Array(p)});for(k=0;k<p;k++){var z=h[k],F=q.Oe[k]?q.si[k]:[];if(z[0]!==F[0]||z[1]!==F[1]||z[2]!==F[2]){var l=q,F=k,v=n,E=c,H=d,L=e,V=f,P=g,bb=[0,0,0,0],ia=document.createElement("canvas");ia.width=l.Qc<<4;ia.height=l.Rc<<4;for(var ja=ia.getContext("2d"),Ha=void 0,Xa=void 0,Ba=void 0,Vb=8>V||!H?V:8,wa=ja.createImageData(l.Qc,l.Rc),Ha=0;256>Ha;Ha++){for(Ba=
|
||||
0;Ba<V;Ba++)for(var Vd=l.zf&&F&1&&Ba>=V-2,Rc=P[Ba<Vb?E+Ha*Vb+Ba:H+Ha*Vb+Ba-Vb],Wd=0;Wd<=v;Wd++)for(Xa=0;Xa<L;Xa++){var Je=Xa<<v,Xd=(Ba<<v)+Wd,Ke=Vd||Rc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?z:bb;Cn(wa,Je,Xd,Ke);v&&Cn(wa,Je+1,Xd,Ke)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Oe[F]="#"+r(z[0],2)+r(z[1],2)+r(z[2],2);l.si[F]=z;l.Sg[F]=ia;l=!0}}a.Oa[b]=q;return l}function Dn(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
|
||||
0;Ba<V;Ba++)for(var Vd=l.zf&&F&1&&Ba>=V-2,Rc=P[Ba<Vb?E+Ha*Vb+Ba:H+Ha*Vb+Ba-Vb],Wd=0;Wd<=v;Wd++)for(Xa=0;Xa<L;Xa++){var Ke=Xa<<v,Xd=(Ba<<v)+Wd,Le=Vd||Rc&128>>(8<=Xa&&192<=Ha&&223>=Ha?7:Xa)?z:bb;Cn(wa,Ke,Xd,Le);v&&Cn(wa,Ke+1,Xd,Le)}ja.putImageData(wa,(Ha&15)*l.Qc,(Ha>>4)*l.Rc)}l.Oe[F]="#"+r(z[0],2)+r(z[1],2)+r(z[2],2);l.si[F]=z;l.Sg[F]=ia;l=!0}}a.Oa[b]=q;return l}function Dn(a){0<a.Pa||0<=a.ua?0>a.cb&&(a.cb=0):a.cb=-1}
|
||||
function yn(a){if(a.U){for(var b=10;15>=b;b++)if(null==a.C.mb[b])return;var c=a.C.mb[10],b=c&31,d=a.C.mb[11]&31,e=a.C.mb[9]&31,f=!1;a.C===a.A&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)En(a);else{c=a.C.mb[15]+((a.C.mb[14]&63)<<8);a.ua!=c&&(En(a),a.ua=c);d=d-b+1;if(a.ig!=b||a.Ce!=d)a.ig=b,a.Ce=d;a.$a=e+1;Dn(a)}}}
|
||||
function En(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&&bo(a,c,d,b,a.gb),bo(a,c,d,b));a.fa[a.ua]=b}}a.ua=-1}}
|
||||
function co(a){var b,c=a.C;a.gf=!1;var d=c.ae[5];if(null!=d){b=1024;var e=0,f=c.ae[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.dd=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==dm&&(e=3,c.dd=f&7)}d&8&&(b=1280);c=c.Je[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.gf=!0));b|=e}return b}
|
||||
|
|
@ -515,15 +516,15 @@ function eo(a,b){var c=a.C;return c&&null!=b&&b!=c.wg?(c.Og(b),a.ea.Og(c.ob,c.ac
|
|||
function xn(a,b){var c,d=a.Ia,e=a.C;if(e)if(1==e.Ua)d=7;else if(5<=e.Ua){var d=null,f=e.Ed>>2,g=32768<f?32768:f,h=e.ae[6];if(null!=h){switch(h&12){case 0:e.ob=655360;e.ac=f;d=255;break;case 4:e.ob=655360;e.ac=f;d=3==a.ya?15:16;break;case 8:e.ob=720896;e.ac=g;d=7;break;case 12:e.ob=753664,e.ac=g,d=3==a.ya?2:3}c=80==(e.ae[5]&80);!c||e.ob==a.ob&&e.ac==a.ac||(b=!0);var f=gn(e,6),g=e.mb[9],k=e.mb[23],l=e.Je[1]&8;255!=d&&(h&1?655360==e.ob||c||k&1?e.ae[5]&64?d=g&31?143>=e.mb[18]?19:20:21:g&128||350>f?d=
|
||||
l?13:14:480<=f&&(d=3==a.ya?17:18):d=l?7-d:6:d-=l?2:0);c=co(a)}}else e.gd&8&&(e.gd&2?(d=e.gd&16?6:5,e.gd&4||--d):(d=e.gd&1?3:1,e.gd&4&&--d));else a.Ia=null,null==d&&(d=a.wa);if(!wn(a,d,b))return!1;eo(a,c);return!0}
|
||||
function wn(a,b,c){if(null!=b&&(b!=a.Ia||c)){a.Pg=0;a.Ia=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){En(a);if(a.ob){if(!Zb(a.ea,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(!Sb(a.ea,b.ob,b.ac,3,b===a.A?b:null))return!1}a:{a.U=0;a.L=a.kd;a.X=a.le;a.Db=a.L;a.jd=Gm[7][2];b=0;if(c=Gm[a.Ia])a.L=c[0],a.X=c[1],a.jd=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.X=350>gn(a.A,18)?43:50:a.U=a.Ua);a.ag=a.L*a.X|0;a.Yf=a.ag/
|
||||
a.jd|0;a.Ub=a.Yf;a.td=0;void 0!==b&&(a.Ub=(a.Ub<<1)+b|0,a.td=a.Ub+b>>1);if(a.Oa.length){a.Ja=a.ra/a.L|0;a.Ka=a.Ea/a.X|0;if(a.U){b=a.Oa[a.U];if(!b)break a;c=a.Oa[a.U<<1];a.Wf&&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.Wf||(a.Ja=b.Qc,a.Ka=b.Rc));a.bc=a.tc=0;b&&(a.bc=a.L*b.Qc,a.tc=a.X*b.Rc)}else a.Ja=a.Ka=1,a.bc=a.L,a.tc=a.X;a.sb=a.ja.createImageData(a.bc,a.tc);a.fb=document.createElement("canvas");a.fb.width=a.bc;a.fb.height=a.tc;a.gb=a.fb.getContext("2d");a.ne=a.oe=
|
||||
0;a.Dd=a.ra;a.Gd=a.Ea;b=a.ra-a.L*a.Ja;c=a.Ea-a.X*a.Ka;0<b&&(a.ne=b>>1,a.Dd-=b);0<c&&(a.oe=c>>1,a.Gd-=c);if(b||c)a.ja.fillStyle=a.ka.style.backgroundColor,a.ja.fillRect(0,0,a.ra,a.Ea)}}fo(a,!0);rn(a)}return!0}function Cn(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 go(a){a.Pa=-1;a.Fa=!1;var b=a.Yf;if(void 0===a.fa||a.fa.length!=b)a.fa=Array(b)}function fo(a,b){b||(a.rb=!1);go(a)}
|
||||
function bo(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.zf&&(d=h.zf[d]);var k=g>>4&15;h.zf&&(k=h.zf[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Oe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.ne,c=c*a.Ka+a.oe,a.ja.fillStyle=h.Oe[k],a.ja.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ja.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.ig,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.Oe[d],
|
||||
e.fillRect(b,c+f,h.Qc,g)):(a.$a&&a.$a!==a.Ka&&(f=f*a.Ka/a.$a|0,g=g*a.Ka/a.$a|0),a.ja.fillStyle=h.Oe[d],a.ja.fillRect(b,c+f,a.Ja,g)))}
|
||||
a.jd|0;a.Ub=a.Yf;a.td=0;void 0!==b&&(a.Ub=(a.Ub<<1)+b|0,a.td=a.Ub+b>>1);if(a.Oa.length){a.Ja=a.ra/a.L|0;a.Ka=a.Ea/a.X|0;if(a.U){b=a.Oa[a.U];if(!b)break a;c=a.Oa[a.U<<1];a.Wf&&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.Wf||(a.Ja=b.Qc,a.Ka=b.Rc));a.bc=a.tc=0;b&&(a.bc=a.L*b.Qc,a.tc=a.X*b.Rc)}else a.Ja=a.Ka=1,a.bc=a.L,a.tc=a.X;a.sb=a.ia.createImageData(a.bc,a.tc);a.fb=document.createElement("canvas");a.fb.width=a.bc;a.fb.height=a.tc;a.gb=a.fb.getContext("2d");a.ne=a.oe=
|
||||
0;a.Dd=a.ra;a.Gd=a.Ea;b=a.ra-a.L*a.Ja;c=a.Ea-a.X*a.Ka;0<b&&(a.ne=b>>1,a.Dd-=b);0<c&&(a.oe=c>>1,a.Gd-=c);if(b||c)a.ia.fillStyle=a.ka.style.backgroundColor,a.ia.fillRect(0,0,a.ra,a.Ea)}}fo(a,!0);rn(a)}return!0}function Cn(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 go(a){a.Pa=-1;a.Fa=!1;var b=a.Yf;if(void 0===a.fa||a.fa.length!=b)a.fa=Array(b)}function fo(a,b){b||(a.rb=!1);go(a)}
|
||||
function bo(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.Oa[a.U];h.zf&&(d=h.zf[d]);var k=g>>4&15;h.zf&&(k=h.zf[k]);e?(b*=h.Qc,c*=h.Rc,e.fillStyle=h.Oe[k],e.fillRect(b,c,h.Qc,h.Rc)):(b=b*a.Ja+a.ne,c=c*a.Ka+a.oe,a.ia.fillStyle=h.Oe[k],a.ia.fillRect(b,c,a.Ja,a.Ka));g&256&&(k=(f&15)*h.Qc,f=(f>>4)*h.Rc,e?e.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,h.Qc,h.Rc):a.ia.drawImage(h.Sg[d],k,f,h.Qc,h.Rc,b,c,a.Ja,a.Ka));g&512&&(f=a.ig,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.Oe[d],
|
||||
e.fillRect(b,c+f,h.Qc,g)):(a.$a&&a.$a!==a.Ka&&(f=f*a.Ka/a.$a|0,g=g*a.Ka/a.$a|0),a.ia.fillStyle=h.Oe[d],a.ia.fillRect(b,c+f,a.Ja,g)))}
|
||||
function rn(a,b){if(a.la.cc){var c=!1,d=a.C;d&&(d!==a.A?d.gd&8&&(c=!0):d.Od&32&&(c=!0));if(c||b){if(b)go(a);else if(void 0===a.fa)return;var e=!1;!(b||++a.Pg&15)&&0<=a.cb&&(a.cb++,e=!0);var f=0,g=a.ag,h=a.ob,c=h,k=c+a.ac;19<=a.Ia&&(h=c=655360,k=c+65536);if(ho(a,d)&8||d.pf&&d.pf<d.ei){var l=(d.mb[12]<<8)+d.mb[13]|0;d.Md!==l&&(d.Md=l,fo(a));d.pf=0}l=d.Md;a.U&&(l<<=1);var c=c+l,n=a.Ub;5<=a.Ua&&d.mb[19]&&d.mb[19]<<1!=d.mb[1]+1&&(a.Db=d.mb[19]<<(a.U?1:d.mb[20]&64?3:4),n=(a.Db*(a.X-1)+a.L)/a.jd|0,7>=a.Ia&&
|
||||
(n<<=1));c+n>k&&(n=k-c,0>n&&(n=0));k=c+n;if(l=!b&&a.Fa){for(var l=a.ea,q=!0,p=c>>>l.La;0<n&&p<l.sa.length;)l.sa[p].Wa&&(l.sa[p].Wa=q=!1,l.sa[p].Ni=!0),n-=l.Sb,p++;l=q}if(l){if(!e)return;if(!a.Pa){f=a.ua-d.Md;if(0>f)return;g=f+1}}if(a.U){if(a.Oa[a.U]){d=f;f=0;e=a.Pa=0;h=1048575;n=a.C.gd&32;5<=a.Ua&&(n=a.C.Tc[16]&8);l=a.ua-a.C.Md;n&&(e=32768,h&=~e,a.cb&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)n=ec(a.ea,c),n|=65536,n&e&&(a.Pa++,n&=h),d==l&&(n|=a.cb&1?131072:0),a.Fa&&n===a.fa[d]||(bo(a,d%a.L,d/a.L|0,n,a.gb),
|
||||
a.fa[d]=n,f++),c+=2,d++;a.Fa=!0;f&&a.gb&&a.ja.drawImage(a.fb,0,0,a.bc,a.tc,a.ne,a.oe,a.Dd,a.Gd);Dn(a)}}else if(a.td){for(var g=k,z,k=c,d=a.Pa=0,f=a.jd,e=16==f?65536:196608,h=16==f?1:2,l=zn(a,h),q=n=0,p=a.L,F=0,v=a.X,E=0;k<g;){z=ec(a.ea,k);if(a.Fa&&z===a.fa[d])n+=f;else{a.fa[d]=z;z=z>>8|(z&255)<<8;var H=e,L=16;n<p&&(p=n);for(var V=0;V<f;V++){var P=(z&(H>>=h))>>(L-=h);Cn(a.sb,n++,q,l[P])}n>F&&(F=n);q<v&&(v=q);q>=E&&(E=q+1)}k+=2;d++;if(n>=a.L){n=0;q+=2;if(q>a.X)break;q==a.X&&(q=1,k=c+a.td)}}a.Fa=!0;
|
||||
p<a.L&&(a.gb.putImageData(a.sb,0,0,p,v,F-p,E-v),a.ja.drawImage(a.fb,0,0,a.L,a.X,0,0,a.ra,a.Ea))}else if(a.gf){g=h;f=a.Pa=0;e=zn(a,8);h=a.C.sd;n=l=0;q=a.L;p=0;F=a.X;v=0;E=a.C.Je[4]&8?4:1;z=a.C.Tc[19]&15;for(H=a.Db>a.L?a.Db-a.L-z>>3:0;c<k;){d=h[c-g];V=4;z||(a.Fa&&d===a.fa[f]?(l+=V,V=0):a.fa[f]=d,f++);if(V){l<q&&(q=l);for(L=0;L<V;L++)Cn(a.sb,l++,n,e[d&255]),d>>=8;l>p&&(p=l);n<F&&(F=n);n>=v&&(v=n+1)}c+=E;if(l>=a.L){l=0;if(++n>a.X)break;c+=H}}z||(a.Fa=!0);q<a.L&&(a.gb.putImageData(a.sb,0,0,q,F,p-q,v-F),
|
||||
a.ja.drawImage(a.fb,0,0,a.L,a.X,0,0,a.ra,a.Ea))}else{g=h;d=a.Pa=0;f=zn(a);e=a.C.sd;l=h=0;n=a.L;q=0;p=a.X;F=0;v=a.C.Tc[19]&15;for(E=a.Db>a.L?a.Db-a.L-v>>3:0;c<k;){z=c++-g;z=e[z];L=8;v?h?(H=a.L-h,L>H&&(L=H)):(z<<=v,L-=v,a.Fa=!1):(a.Fa&&z===a.fa[d]?(h+=L,L=0):a.fa[d]=z,d++);if(L){h<n&&(n=h);for(H=0;H<L;H++)V=Tm[z&2155905152]||0,Cn(a.sb,h++,l,f[V]),z<<=1;h>q&&(q=h);l<p&&(p=l);l>=F&&(F=l+1)}if(h>=a.L){h=0;if(++l>a.X)break;c+=E}}v||(a.Fa=!0);n<a.L&&(a.gb.putImageData(a.sb,0,0,n,p,q-n,F-p),a.ja.drawImage(a.fb,
|
||||
a.fa[d]=n,f++),c+=2,d++;a.Fa=!0;f&&a.gb&&a.ia.drawImage(a.fb,0,0,a.bc,a.tc,a.ne,a.oe,a.Dd,a.Gd);Dn(a)}}else if(a.td){for(var g=k,z,k=c,d=a.Pa=0,f=a.jd,e=16==f?65536:196608,h=16==f?1:2,l=zn(a,h),q=n=0,p=a.L,F=0,v=a.X,E=0;k<g;){z=ec(a.ea,k);if(a.Fa&&z===a.fa[d])n+=f;else{a.fa[d]=z;z=z>>8|(z&255)<<8;var H=e,L=16;n<p&&(p=n);for(var V=0;V<f;V++){var P=(z&(H>>=h))>>(L-=h);Cn(a.sb,n++,q,l[P])}n>F&&(F=n);q<v&&(v=q);q>=E&&(E=q+1)}k+=2;d++;if(n>=a.L){n=0;q+=2;if(q>a.X)break;q==a.X&&(q=1,k=c+a.td)}}a.Fa=!0;
|
||||
p<a.L&&(a.gb.putImageData(a.sb,0,0,p,v,F-p,E-v),a.ia.drawImage(a.fb,0,0,a.L,a.X,0,0,a.ra,a.Ea))}else if(a.gf){g=h;f=a.Pa=0;e=zn(a,8);h=a.C.sd;n=l=0;q=a.L;p=0;F=a.X;v=0;E=a.C.Je[4]&8?4:1;z=a.C.Tc[19]&15;for(H=a.Db>a.L?a.Db-a.L-z>>3:0;c<k;){d=h[c-g];V=4;z||(a.Fa&&d===a.fa[f]?(l+=V,V=0):a.fa[f]=d,f++);if(V){l<q&&(q=l);for(L=0;L<V;L++)Cn(a.sb,l++,n,e[d&255]),d>>=8;l>p&&(p=l);n<F&&(F=n);n>=v&&(v=n+1)}c+=E;if(l>=a.L){l=0;if(++n>a.X)break;c+=H}}z||(a.Fa=!0);q<a.L&&(a.gb.putImageData(a.sb,0,0,q,F,p-q,v-F),
|
||||
a.ia.drawImage(a.fb,0,0,a.L,a.X,0,0,a.ra,a.Ea))}else{g=h;d=a.Pa=0;f=zn(a);e=a.C.sd;l=h=0;n=a.L;q=0;p=a.X;F=0;v=a.C.Tc[19]&15;for(E=a.Db>a.L?a.Db-a.L-v>>3:0;c<k;){z=c++-g;z=e[z];L=8;v?h?(H=a.L-h,L>H&&(L=H)):(z<<=v,L-=v,a.Fa=!1):(a.Fa&&z===a.fa[d]?(h+=L,L=0):a.fa[d]=z,d++);if(L){h<n&&(n=h);for(H=0;H<L;H++)V=Tm[z&2155905152]||0,Cn(a.sb,h++,l,f[V]),z<<=1;h>q&&(q=h);l<p&&(p=l);l>=F&&(F=l+1)}if(h>=a.L){h=0;if(++l>a.X)break;c+=E}}v||(a.Fa=!0);n<a.L&&(a.gb.putImageData(a.sb,0,0,n,p,q-n,F-p),a.ia.drawImage(a.fb,
|
||||
0,0,a.L,a.X,0,0,a.ra,a.Ea))}}}}function ho(a,b){var c=0,d=Wc(a.F)-b.vh;0>d&&(b.vh=d,d=-d|0);d%b.qh>b.jm&&(c|=1);d%b.th>b.lm&&(c|=9);b.ei=d/b.th|0;return c}m.Gl=function(a,b){return io(this,this.pa,a,b)};m.an=function(a,b,c){var d=this.pa;d.Jg=d.Ac;d.Ac=b&31;x(this,a,b,c,"CRTC.INDX")};m.Fl=function(a,b){return jo(this,this.pa,a,b)};m.$m=function(a,b,c){ko(this,this.pa,a,b,c)};m.Hl=function(a,b){return lo(this,this.pa,b)};m.bn=function(a,b,c){a=this.pa;x(this,a.port+4,b,c,"MODE");a.gd=b;xn(this,!1)};
|
||||
m.Il=function(a,b){return mo(this,this.pa,b)};m.ek=function(a,b,c){this.A.dg=this.A.dg&-4|b&3;x(this,a,b,c,"FEAT")};m.el=function(a,b){var c=this.A.Od;b&&!A(this)||x(this,960,null,b,"ATC.INDX",c);return c};m.Ck=function(a,b){var c=this.A.Tc[this.A.Od&31];b&&!A(this)||x(this,960,null,b,"ATC."+this.A.Tg[this.A.Od&31],c);return c};
|
||||
m.dk=function(a,b,c){var d=this.A,e=d.Od&32;if(d.Xe){d.Xe=!1;var f=d.Od&31;if(16<=f||!e)c&&!A(this)||x(this,a,b,c,"ATC."+d.Tg[f]),d.Tc[f]=b,fo(this,!1)}else d.Od=b,x(this,a,b,c,"ATC.INDX"),d.Xe=!0,b&32&&!e&&vn(this,!0)&&rn(this,!0),a=(d.mb[12]<<8)+d.mb[13]|0,d.Md!=a&&(d.Md=a,fo(this)),d.pf=0};
|
||||
|
|
@ -549,20 +550,20 @@ var po={0:no.prototype.tl,1:no.prototype.Rl,2:no.prototype.pl},qo={0:no.prototyp
|
|||
function to(a){this.ra=a.adapter;switch(this.ra){case 1:this.ka=1016;this.fa=4;break;case 2:this.ka=760;this.fa=3;break;default:w("Unrecognized serial adapter #"+this.ra);return}this.V=this.U=null;this.Ca=a.tabSize;this.ya=a.charBOL;this.X=0;Ua.call(this,"SerialPort",a,to,8388608);a=a.binding;"console"==a?this.U="":kb(this,a,uo)}db(to);var uo="buffer";m=to.prototype;m.wi=function(a,b){return a==this.ee?(this.W=b,this):null};
|
||||
m.Pb=function(a,b,c){var d=this;switch(b){case uo:return this.qa[b]=this.V=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;if(8===b||a.ctrlKey&&65<=b&&90>=b)a.preventDefault&&a.preventDefault(),64<b&&(b-=64),vo(d,[b]);return!0},c.onkeypress=function(a){a=a||window.event;vo(d,[a.which||a.keyCode]);a.preventDefault&&a.preventDefault();return!0},c.removeAttribute("readonly"),!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.N=Eb(a,"ChipSet");hc(b,this,wo,this.ka);lc(b,this,xo,this.ka);rb(this)};m.ic=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){yo(this)};
|
||||
m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.pa;c[b++]=this.wa;c[b++]=this.aa;c[b++]=this.ja;c[b++]=this.L;c[b++]=this.B;c[b++]=this.C;c[b++]=this.A;c[b++]=this.ua;c[b]=this.ga;N(a,0,c);return a.data()};m.restore=function(a){return yo(this,a[0])};function yo(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.pa=b[c++];a.wa=b[c++];a.aa=b[c++];a.ja=b[c++];a.L=b[c++];a.B=b[c++];a.C=b[c++];a.A=b[c++];a.ua=b[c++];a.ga=b[c];return!0}function vo(a,b){a.ga=a.ga.concat(b);zo(a)}
|
||||
function zo(a){0<a.ga.length&&!(a.A&1)&&(a.pa=a.ga.shift(),a.A|=1);var b=-1;a.A&1&&a.ja&1&&(b=4);0<=b?(a.L&=-8,a.L|=b,a.N&&a.fa&&eg(a.N,a.fa,100)):(a.L|=1,a.N&&a.fa&&dg(a.N,a.fa))}m.Ol=function(a,b){var c=this.B&128?this.aa&255:this.pa;x(this,a,null,b,this.B&128?"DLL":"RBR",c);this.A&=-2;zo(this);return c};m.Al=function(a,b){var c=this.B&128?this.aa>>8:this.ja;x(this,a,null,b,this.B&128?"DLM":"IER",c);return c};m.Bl=function(a,b){var c=this.L;x(this,a,null,b,"IIR",c);return c};
|
||||
m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.pa;c[b++]=this.wa;c[b++]=this.aa;c[b++]=this.ia;c[b++]=this.L;c[b++]=this.B;c[b++]=this.C;c[b++]=this.A;c[b++]=this.ua;c[b]=this.ga;N(a,0,c);return a.data()};m.restore=function(a){return yo(this,a[0])};function yo(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.pa=b[c++];a.wa=b[c++];a.aa=b[c++];a.ia=b[c++];a.L=b[c++];a.B=b[c++];a.C=b[c++];a.A=b[c++];a.ua=b[c++];a.ga=b[c];return!0}function vo(a,b){a.ga=a.ga.concat(b);zo(a)}
|
||||
function zo(a){0<a.ga.length&&!(a.A&1)&&(a.pa=a.ga.shift(),a.A|=1);var b=-1;a.A&1&&a.ia&1&&(b=4);0<=b?(a.L&=-8,a.L|=b,a.N&&a.fa&&eg(a.N,a.fa,100)):(a.L|=1,a.N&&a.fa&&dg(a.N,a.fa))}m.Ol=function(a,b){var c=this.B&128?this.aa&255:this.pa;x(this,a,null,b,this.B&128?"DLL":"RBR",c);this.A&=-2;zo(this);return c};m.Al=function(a,b){var c=this.B&128?this.aa>>8:this.ia;x(this,a,null,b,this.B&128?"DLM":"IER",c);return c};m.Bl=function(a,b){var c=this.L;x(this,a,null,b,"IIR",c);return c};
|
||||
m.Cl=function(a,b){var c=this.B;x(this,a,null,b,"LCR",c);return c};m.El=function(a,b){var c=this.C;x(this,a,null,b,"MCR",c);return c};m.Dl=function(a,b){var c=this.A;x(this,a,null,b,"LSR",c);return c};m.Jl=function(a,b){var c=this.ua;x(this,a,null,b,"MSR",c);return c};
|
||||
m.kn=function(a,b,c){x(this,a,b,c,this.B&128?"DLL":"THR");if(this.B&128)this.aa=this.aa&-256|b;else{this.wa=b;this.A&=-97;if(this.V)13==b?this.X=0:8==b?(this.V.value=this.V.value.slice(0,-1),0<this.X&&this.X--):(a=String.fromCharCode(b),c=32<=b?1:0,9==b&&(b=this.Ca||8,c=b-this.X%b,this.Ca&&(a=ma("",c))),this.ya&&!this.X&&c&&(a=String.fromCharCode(this.ya)+a),this.V.value+=a,this.V.scrollTop=this.V.scrollHeight,this.X+=c),b=!0;else if(null!=this.U){if(10==b||1024<=this.U.length)this.O(this.U),this.U=
|
||||
"";10!=b&&(this.U+=String.fromCharCode(b));b=!0}else b=!1;b&&(this.A|=96)}};m.Xm=function(a,b,c){x(this,a,b,c,this.B&128?"DLM":"IER");this.B&128?this.aa=this.aa&255|b<<8:this.ja=b};m.Ym=function(a,b,c){x(this,a,b,c,"LCR");this.B=b};
|
||||
"";10!=b&&(this.U+=String.fromCharCode(b));b=!0}else b=!1;b&&(this.A|=96)}};m.Xm=function(a,b,c){x(this,a,b,c,this.B&128?"DLM":"IER");this.B&128?this.aa=this.aa&255|b<<8:this.ia=b};m.Ym=function(a,b,c){x(this,a,b,c,"LCR");this.B=b};
|
||||
m.Zm=function(a,b,c){var d=this.C;x(this,a,b,c,"MCR");this.C=b;this.W&&(d^b)&3&&(a=this.W,b=this.C,(c=3==(b&3))?a.Hc||(d=!1,a.C&2||(a.reset(),y(a,"serial mouse reset"),d=!0),a.C&1||(y(a,"serial mouse ID requested"),d=!0),d&&(vo(a.N,[77,77]),y(a,"serial mouse ID sent")),Ao(a),a.Hc=c):a.Hc&&(y(a,"serial mouse inactive"),Bo(a),a.Hc=c),a.C=b)};
|
||||
var wo={0:to.prototype.Ol,1:to.prototype.Al,2:to.prototype.Bl,3:to.prototype.Cl,4:to.prototype.El,5:to.prototype.Dl,6:to.prototype.Jl},xo={0:to.prototype.kn,1:to.prototype.Xm,3:to.prototype.Ym,4:to.prototype.Zm};Qa(function(){for(var a=nb(document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new to(d);mb(d,c)}});function Co(a){Ua.call(this,"Mouse",a,Co,16777216);if(this.ka=a.serial)this.pa="SerialPort";this.ja=this.ga=this.Hc=!1;this.B=[];this.A=[];rb(this)}db(Co);var tn=0;m=Co.prototype;
|
||||
var wo={0:to.prototype.Ol,1:to.prototype.Al,2:to.prototype.Bl,3:to.prototype.Cl,4:to.prototype.El,5:to.prototype.Dl,6:to.prototype.Jl},xo={0:to.prototype.kn,1:to.prototype.Xm,3:to.prototype.Ym,4:to.prototype.Zm};Qa(function(){for(var a=nb(document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new to(d);mb(d,c)}});function Co(a){Ua.call(this,"Mouse",a,Co,16777216);if(this.ka=a.serial)this.pa="SerialPort";this.ia=this.ga=this.Hc=!1;this.B=[];this.A=[];rb(this)}db(Co);var tn=0;m=Co.prototype;
|
||||
m.Ic=function(a,b,c,d){this.V=a;this.ea=b;this.F=c;this.ha=d;for(b=null;b=Eb(a,"Video",b);)this.B.push(b)};m.ic=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.pa&&!this.N){for(var c=null;(c=Eb(this.V,this.pa,c))&&(!c.wi||!(this.N=c.wi(this.ka,this))););if(this.N)for(this.A=[],c=0;c<this.B.length;c++){var d;d=this.B[c];d.W=this;(d=d.V)&&this.A.push(d)}else w(this.id+": "+this.pa+" "+this.ka+" unavailable")}this.Hc?Ao(this):Bo(this)}return!0};
|
||||
m.hc=function(a){return a?this.save():!0};m.reset=function(){Do(this)};m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.Hc;c[b++]=this.L;c[b++]=this.W;c[b++]=this.U;c[b++]=this.X;c[b++]=this.aa;c[b++]=this.fa;c[b]=this.C;N(a,0,c);return a.data()};m.restore=function(a){return Do(this,a[0])};function Do(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.Hc=d;a.L=b[c++];a.W=b[c++];a.U=b[c++];a.X=b[c++];a.aa=b[c++];a.fa=b[c++];a.C=b[c];return!0}m.Vf=function(a){this.ga=a};
|
||||
function Ao(a){if(!a.ja)for(var b=0;b<a.A.length;b++)Eo(a,a.A[b])&&(a.ja=!0)}function Bo(a){if(a.ja)for(var b=0;b<a.A.length;b++){var c=a.A[b];c&&(c.style.cursor="auto")}}function Eo(a,b){return b?(b.addEventListener("mousemove",function(b){Fo(a,b)},!1),b.addEventListener("mousedown",function(b){Fo(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Fo(a,b,!1)},!1),b.style.cursor="none",!0):!1}
|
||||
function Ao(a){if(!a.ia)for(var b=0;b<a.A.length;b++)Eo(a,a.A[b])&&(a.ia=!0)}function Bo(a){if(a.ia)for(var b=0;b<a.A.length;b++){var c=a.A[b];c&&(c.style.cursor="auto")}}function Eo(a,b){return b?(b.addEventListener("mousemove",function(b){Fo(a,b)},!1),b.addEventListener("mousedown",function(b){Fo(a,b,!0)},!1),b.addEventListener("mouseup",function(b){Fo(a,b,!1)},!1),b.style.cursor="none",!0):!1}
|
||||
function Fo(a,b,c){if(void 0!==c){var d;!(d=!1!==a.ga)&&(d=a.B.length)&&(d=a.B[0],d=d.pi?d.De(!0):!1);d||(a.ga=null);a.je(b.button,c)}else{if(0>a.L||0>a.W)a.L=b.clientX,a.W=b.clientY;a.ga?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.L,d=b.clientY-a.W);a.L=b.clientX;a.W=b.clientY;a.Hf(c,d,a.L,a.W)}}
|
||||
m.je=function(a,b){if(this.Hc&&this.F&&this.F.la.Ib){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case tn:if(this.aa!=b){this.aa=b;Go(this,c);return}break;case 2:if(this.fa!=b){this.fa=b;Go(this,c);return}}y(this,c+": ignored")}};m.Hf=function(a,b,c,d){this.Hc&&this.F&&this.F.la.Ib&&(a||b)&&(this.U=a,this.X=b,Go(this,null,c,d))};
|
||||
function Go(a,b,c,d){var e=64|(a.aa?32:0)|(a.fa?16:0)|(a.X&192)>>4|(a.U&192)>>6,f=a.U&63,g=a.X&63;A(a,8388608)&&y(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+t(e)+","+t(f)+","+t(g)+"]",0,!0);vo(a.N,[e,f,g]);a.U=a.X=0}Qa(function(){for(var a=nb(document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new Co(d);mb(d,c)}});
|
||||
function Ho(a,b,c){Ua.call(this,"Disk",{id:a.ve+".disk"+r(++Io,4)},Ho,2097152);this.controller=a;this.V=a.V;this.ha=a.ha;this.B=b;this.ea=b.name;this.bf=b.bf;this.rg=this.N=!1;Jo(this,c,b.Bb,b.ub,b.lb,b.Va);this.U=[];this.fa=[];this.L=null;this.ja=0;this.ga=!1;rb(this)}var Io=0;db(Ho);function Ko(a,b,c,d,e,f){this.za=a;this.lc=c;this.Wg=d;this.Bi=e;this.xe=f}var Lo=[0,2],Mo=[24,2],No=[60,4],Oo=[0,2],Po=[4,2],Qo=[6,2],Ro=[28,2],So=[32,2],To=[34,2],Uo=[38,2],Vo=[44,4],Wo=[50,2];
|
||||
function Ho(a,b,c){Ua.call(this,"Disk",{id:a.ve+".disk"+r(++Io,4)},Ho,2097152);this.controller=a;this.V=a.V;this.ha=a.ha;this.B=b;this.ea=b.name;this.bf=b.bf;this.rg=this.N=!1;Jo(this,c,b.Bb,b.ub,b.lb,b.Va);this.U=[];this.fa=[];this.L=null;this.ia=0;this.ga=!1;rb(this)}var Io=0;db(Ho);function Ko(a,b,c,d,e,f){this.za=a;this.lc=c;this.Wg=d;this.Bi=e;this.xe=f}var Lo=[0,2],Mo=[24,2],No=[60,4],Oo=[0,2],Po=[4,2],Qo=[6,2],Ro=[28,2],So=[32,2],To=[34,2],Uo=[38,2],Vo=[44,4],Wo=[50,2];
|
||||
function Xo(a,b,c){var d;c=c||2;var e=b&511,f=Yo(a.za,a.xe[b>>9]);if(f){if(e+c<=f.length)return Zo(a.za,f,e,c);for(e=d=0;c--;)d|=Xo(a,b++,1)<<e,e+=8}return d}function $o(a,b,c){return Xo(a,b[0]+(c||0),b[1])}function ap(a,b,c){for(var d=0;!c||b<c;){var e=Xo(a,b,1);if(!e)break;var f;f=a;var g=b+1,h=e,k="";for(h||(h=-1);h--;){var l=Xo(f,g++,1);if(!l)break;k+=String.fromCharCode(l)}f=k;if(!f)break;b+=1+e;if(d){if(e=Xo(a,b),g=a.A[e])g=g[0],a.zd[g]&&a.zd[g].we[e].push(f)}else c||(a.fg=f);b+=2;d++}}
|
||||
Ko.prototype.Si=function(a,b){var c=null;if(this.zd)for(var d in this.zd){var e=this.zd[d];if(a>=e.fi&&a<=e.ak){d=a-=e.fi;var f,g;for(g in e.we){var h=e.we[g],k=a-h[0];if(!k){c=this.fg+"!"+h[1];break}b&&0<k&&k<d&&(f=h,d=k)}!c&&f&&(c=this.fg+"!"+f[1]+"+"+u(d));break}}return c||this.lc+"+"+("0x"+r(a))};m=Ho.prototype;m.Ic=function(a,b,c,d){this.ha=d};m.ic=function(a,b){b||!this.rg||this.N||(rb(this,!1),this.load(this.ea,this.W,null,this.Pk,this));return!0};m.Pk=function(){rb(this,!0)};
|
||||
m.hc=function(a,b){if(this.N){var c,d=0;if(this.ga&&!za("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=bp(this,!1);)if(d=c[0]){this.controller.Na('Unable to save "'+this.ea+'" (error '+d+")");break}b&&this.N&&(c="action=close&volume="+this.W,c+="&machine="+this.controller.ff(),c+="&user="+this.controller.ke(),va(xa()+"/api/v1/disk?"+c,null,!0),this.N=!1);!d&&a&&this.controller.Na(this.ea+" saved")}return!0};
|
||||
|
|
@ -583,7 +584,7 @@ function Yo(a,b){var c=a.ub*a.lb,d=b/c|0;return d<a.Bb?(c=b%c,a.seek(d,c/a.lb|0,
|
|||
function dp(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.Bb+":"+a.ub+":"+a.lb+":"+a.Va;c+="&machine="+a.controller.ff();c+="&user="+a.controller.ke();return xa()+"/api/v1/disk?"+c}
|
||||
function kp(a,b,c,d,e,f,g){if(a.N){var h;h="action=read&volume="+a.W;h+="&chs="+a.Bb+":"+a.ub+":"+a.lb+":"+a.Va;h=h+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.ff());h+="&user="+a.controller.ke();va(xa()+"/api/v1/disk?"+h,null,f,function(h,l,n){h=[b,c,d,e,f,g];var q=!1,p=h[0],z=h[1],F=h[2],v=h[3];if(!n){l=JSON.parse(l);for(q=0;v--;){var E=a.seek(p,z,F,!0);if(!E)break;gp(E,l,q);q+=E.length;F++}q=h[4]}(h=h[5])&&h(n,q)})}else g&&g(-1,!1)}
|
||||
function lp(a,b,c,d,e,f,g){if(a.N){var h={};a.ga=!0;h.action="write";h.volume=a.W;h.chs=a.Bb+":"+a.ub+":"+a.lb+":"+a.Va;h.addr=b+":"+c+":"+d+":"+e;h.machine=a.controller.ff();h.user=a.controller.ke();h.data=JSON.stringify(f);va(xa()+"/api/v1/disk",h,g,function(f,h,n){var q=[b,c,d,e,g];f=q[0];h=q[1];var p=q[2],z=q[3],q=q[4];a.ga=!1;if(0<=f&&f<a.A.length&&0<=h&&h<a.A[f].length)for(p=p-1;0<z--&&0<=p&&p<a.A[f][h].length;p++){var F=a.A[f][h][p];n?mp(a,F,!1):F.Wa||(F.wd=F.Zc=0)}q&&np(a)})}return!1}
|
||||
function mp(a,b,c){b.Wa=!0;var d=a.U.indexOf(b);0<=d&&(a.U.splice(d,1),a.fa.splice(d,1));a.U.push(b);a.fa.push(pa());c&&np(a)}function np(a){if(a.U.length){var b=a.fa[0]+2E3;a.L&&a.ja<b&&(clearTimeout(a.L),a.L=null);if(!a.L){var c=pa(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.L=setTimeout(function(){bp(a,!0)},b);a.ja=c+b}}else a.L&&(clearTimeout(a.L),a.L=null)}
|
||||
function mp(a,b,c){b.Wa=!0;var d=a.U.indexOf(b);0<=d&&(a.U.splice(d,1),a.fa.splice(d,1));a.U.push(b);a.fa.push(pa());c&&np(a)}function np(a){if(a.U.length){var b=a.fa[0]+2E3;a.L&&a.ia<b&&(clearTimeout(a.L),a.L=null);if(!a.L){var c=pa(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.L=setTimeout(function(){bp(a,!0)},b);a.ia=c+b}}else a.L&&(clearTimeout(a.L),a.L=null)}
|
||||
function bp(a,b){b&&(a.L=null);var c=a.U[0];if(c){for(var d=c.Tk,e=c.Uk,c=c.sector,f=0,g=[],h=c-1;h<a.A[d][e].length;h++){var k=a.A[d][e][h];if(!k.Wa)break;var l=a.U.indexOf(k);a.U.splice(l,1);a.fa.splice(l,1);g=g.concat(op(k));k.Wa=!1;f++}d=lp(a,d,e,c,f,g,b);return b||d}return!1}m.info=function(){return this.A.length?[this.A.length,this.A[0].length,this.A[0][0].length,this.A[0][0][0].length]:[0,0,0,0]};
|
||||
m.seek=function(a,b,c,d,e){var f=null,g=this.B,h=this.A[a];if(h){var k=h[b];if(!k&&g.Yg&&b<g.ub)for(k=h[b]=Array(g.he),h=0;h<k.length;h++)k[h]=cp(null,a,b,h+1,g.Hb,0);if(k){for(h=0;h<k.length;h++)if(k[h]&&k[h].sector==c){f=k[h];if(null===f.pattern)if(d)f.pattern=0;else{for(d=1;++h<k.length;)null===k[h].pattern&&d++;kp(this,a,b,c,d,null!=e,function(a,b){a&&(f=null);e&&e(f,b)});return e?null:f}break}!f&&g.Yg&&9==g.xb&&(f=k[h]=cp(null,a,b,g.xb,g.Hb,0))}}e&&e(f,!1);return f};
|
||||
function gp(a,b,c){for(var d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}function op(a){var b=a.length,c=Array(b),d=0,b=b>>2,e=a.data;a=a.pattern;for(var f=0;f<b;f++){var g=f<e.length?e[f]:a;c[d++]=g&255;c[d++]=g>>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}m.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};
|
||||
|
|
@ -592,16 +593,16 @@ m.save=function(){var a=0,b=[];b[a++]=[this.W,this.aa,this.Bb,this.ub,this.lb,th
|
|||
m.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.A.length&&6<=e.length?Jo(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.aa&&e[1]!=this.aa&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.aa+")",b=-2));for(this.A.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],h=g[f++],k=g[f++],l=g[f++];if(h>=this.A.length||k>=this.A[h].length||l>=this.A[h][k].length){c="sector (CHS="+h+":"+k+":"+l+") out of range ("+
|
||||
b+" changes applied)";b=-1;break}if(this.ef){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(h=this.A[h][k][l]){for(k=h.data.length;k<e;)h.data[k++]=h.pattern;k=0;h.wd=e;for(h.Zc=f.length;e<g;)h.data[e++]=f[k++];b++}}}0>b?-2!=b&&this.controller.Na("Unable to restore disk '"+this.ea+": "+c):fp(this);return b};
|
||||
m.toJSON=function(){var a;a=0;for(var b;b=Yo(this,a++);)qp(b);a=JSON.stringify(this.A,function(a,b){return"file"==a?void 0:b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
|
||||
function qp(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function rp(a){Ua.call(this,"FDC",a,rp,524288);this.dmaRead=this.wk;this.dmaWrite=this.xk;this.dmaFormat=this.Lk;this.U=a.autoMount||null;this.ga=a.sortBy||"name";"none"==this.ga&&(this.ga=null);this.B=[];this.ja=!Ga("Mobi")&&window&&"FileReader"in window}db(rp);aa={};
|
||||
function qp(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}function rp(a){Ua.call(this,"FDC",a,rp,524288);this.dmaRead=this.wk;this.dmaWrite=this.xk;this.dmaFormat=this.Lk;this.U=a.autoMount||null;this.ga=a.sortBy||"name";"none"==this.ga&&(this.ga=null);this.B=[];this.ia=!Ga("Mobi")&&window&&"FileReader"in window}db(rp);aa={};
|
||||
var sp={3:{Vd:3,ie:0,name:aa.Zn},4:{Vd:2,ie:1,name:aa.Xn},5:{Vd:9,ie:7,name:aa.io},6:{Vd:9,ie:7,name:aa.Sn},7:{Vd:2,ie:0,name:aa.Un},8:{Vd:1,ie:2,name:aa.Yn},10:{Vd:2,ie:7,name:aa.Tn},13:{Vd:6,ie:7,name:aa.En},15:{Vd:3,ie:0,name:aa.Wn}};m=rp.prototype;
|
||||
m.Pb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.ga){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.ga?a.text.localeCompare(b.text):a.value.localeCompare(b.value)});for(a=0;a<b.length;a++)c.options[a]=b[a]}c.onchange=function(){var a=d.qa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){w("FDC option error: "+h.message)}b=g.desc;void 0===b&&(b="");g=
|
||||
g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value,10),(a=
|
||||
d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;up(d,fa(b,!0),b,a)}return!1};return!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)};
|
||||
g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ia){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value,10),(a=
|
||||
d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ia){c.parentNode.removeChild(c);break}this.qa[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;up(d,fa(b,!0),b,a)}return!1};return!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ia&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)};
|
||||
m.ic=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.V.dh){this.B=[];for(var c=0;c<this.A.length;c++)Ap(this,c,!0);zp(this,!0)}}else if(!this.restore(a))return!1;if(c=this.qa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.value="";for(var d=0;d<this.ka;d++){var e=document.createElement("option");e.value=d;e.text=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.ka&&(c.value="0",tp(this,0))}}return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){vp(this)};
|
||||
m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.hb;c[b++]=0;c[b++]=this.ma;c[b++]=this.W;c[b++]=this.L;c[b++]=this.C;c[b++]=this.aa;for(var d=b++,e=0,f=[],g=0;g<this.A.length;g++){var h=e++,k=this.A[g],l=0,n=[];n[l++]=k.Cb;n[l++]=[k.name,k.Bb,k.ub,k.lb,k.Va,k.bf,k.zg,k.Nf,k.Of];n[l++]=k.kb;n[l++]=k.ge+100;n[l++]=k.Qb;n[l++]=k.xb;n[l++]=k.he;n[l++]=k.Hb;n[l++]=k.eb;n[l++]=k.$e;n[l++]=k.kk;n[l]=k.Le;f[h]=n}c[d]=f;d=b++;for(e=0;e<this.A.length;e++)f=this.A[e],f.za&&Bp(this,f.Le,f.za);c[d]=
|
||||
this.B;c[b++]=this.X;c[b]=this.kc;N(a,0,c);return a.data()};m.restore=function(a){return vp(this,a[0])};
|
||||
function vp(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c++;a.ma=b[c++];a.W=b[c++];a.L=b[c++];a.C=b[c++];a.aa=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.B=d);void 0===a.A&&(a.ka=4,a.N&&(a.ka=+Uk(a.N,vk,void 0)),a.A=Array(4));for(d=0;d<a.A.length;d++){var g=a.A[d];if(void 0===g){var g=a.A[d]={},h;if(a.N)a:{h=a.N;if(d<+Uk(h,vk,void 0)){if(!h.ja){h=360;break a}if(d<h.ja.length){h=h.ja[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.ub=1;default:g.Bb=40;g.lb=9;break;
|
||||
function vp(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c++;a.ma=b[c++];a.W=b[c++];a.L=b[c++];a.C=b[c++];a.aa=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.B=d);void 0===a.A&&(a.ka=4,a.N&&(a.ka=+Uk(a.N,vk,void 0)),a.A=Array(4));for(d=0;d<a.A.length;d++){var g=a.A[d];if(void 0===g){var g=a.A[d]={},h;if(a.N)a:{h=a.N;if(d<+Uk(h,vk,void 0)){if(!h.ia){h=360;break a}if(d<h.ia.length){h=h.ia[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.ub=1;default:g.Bb=40;g.lb=9;break;
|
||||
case 720:g.Bb=80;g.lb=9;break;case 1200:g.Bb=80;g.lb=15;break;case 1440:g.Bb=80,g.lb=18}}var k=a,l=d,n=f[d],q=0;h=!0;g.hb=l;g.bd=g.$e=!1;void 0===n&&(n=[192,!0,0,2,0]);"boolean"==typeof n[1]&&(n[1]=["Floppy Drive",g.Bb||40,g.ub||n[3],g.lb||9,g.Va||512,n[1],g.zg,g.Nf,g.Of]);g.Cb=n[q++];var p=n[q++];g.name=p[0];g.Bb=p[1];g.ub=p[2];g.lb=p[3];g.Va=p[4];g.bf=p[5];(g.zg=p[6])?(g.Nf=p[7],g.Of=p[8]):(g.zg=g.Bb,g.Nf=g.ub,g.Of=g.lb);g.kb=n[q++];g.ge=n[q++];g.Qb=n[q++];g.ge=100<=g.ge?g.ge-100:g.ge-g.Qb;g.xb=
|
||||
n[q++];g.he=n[q++];g.Hb=n[q++];g.eb=n[q++];g.pb=null;g.za||(g.Le="");p=n[q++];102==p&&(p=!1);if("boolean"==typeof p){var z=p,p=n[q++],n=n[q];z?(q=p,p=k.A[l],Ap(k,l,!0,!0),p.$e=!0,l=new Ho(k,p,"preload"),k.Hi(p,l,q,n,!0)):Cp(k,l,p,n,!0)?g.za&&n&&Dp(k,p,n,g.za):rb(k,!1)}else void 0!==p&&g.za&&0>g.za.restore(p)&&(h=!1);h&&g.za&&void 0!==g.eb&&(g.pb=g.za.seek(g.Qb,g.kb,g.xb));h||(e=!1)}a.X=b[c++]||0;a.kc=b[c]||0;return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
|
||||
m.lk=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Qb=Math.floor(b/f),b%=f,a.kb=Math.floor(b/e),a.xb=b%e+1,a.Hb=c*d[3],a.Cb=0,!0}return!1};
|
||||
|
|
@ -621,16 +622,16 @@ function Hp(a,b,c,d,e,f,g,h){Fp(a);Gp(a,b.hb|b.kb<<2|b.Cb&255);Gp(a,(b.Cb&65280)
|
|||
m.wk=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.Cb&&a.za){do{if(a.pb&&(e=a.eb,0<=(b=a.za.read(a.pb,a.eb++)))){d=a.pb;break}a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=1088;break}a.eb=0;Ip(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};m.xk=function(a,b){return void 0!==b&&0<=b?Jp(a,b):-1};
|
||||
m.Lk=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.Cb)c=-1;else{a.md[a.Ve++]=c;if(a.Ve==a.md.length){a.Qb=a.md[0];a.kb=a.md[1];a.xb=a.md[2];a.Hb=128<<a.md[3];for(var d=a.Ve=0;d<a.Hb;d++)if(0>Jp(a,a.xi)){c=-1;break a}a.ng++}a.ng>=a.he&&(c=-1)}else c=-1;return c};function Jp(a,b){if(a.Cb||!a.za)return-1;do{if(a.pb&&a.za.write(a.pb,a.eb++,b))break;a.pb=a.za.seek(a.Qb,a.kb,a.xb);if(!a.pb){a.Cb=8256;b=-1;break}a.eb=0;Ip(a)}while(1);return b}
|
||||
function Ip(a){a.xb++;a.xb>=a.Of+1&&(a.xb=1,a.kb++,a.kb>=a.Nf&&(a.kb=0,a.Qb++))}var wp={1009:rp.prototype.vl,1012:rp.prototype.xl,1013:rp.prototype.ul,1015:rp.prototype.wl},xp={1010:rp.prototype.Qm,1013:rp.prototype.Pm,1015:rp.prototype.Om};Qa(function(){for(var a=nb(document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new rp(d);mb(d,c)}});
|
||||
function Kp(a){Ua.call(this,"HDC",a,Kp,1048576);this.dmaRead=this.yk;this.dmaWrite=this.zk;this.dmaWriteBuffer=this.Mk;this.dmaWriteFormat=this.Nk;this.ua=[];this.Fa=a.drives;this.ja="at"==a.type}db(Kp);
|
||||
function Kp(a){Ua.call(this,"HDC",a,Kp,1048576);this.dmaRead=this.yk;this.dmaWrite=this.zk;this.dmaWriteBuffer=this.Mk;this.dmaWriteFormat=this.Nk;this.ua=[];this.Fa=a.drives;this.ia="at"==a.type}db(Kp);
|
||||
var Lp=["XTC","ATC","COMPAQ"],Mp=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[940,8],5:[940,6],6:[615,4],7:[462,8],8:[733,5],9:[900,15],10:[820,3],11:[855,5],12:[855,7],13:[306,8],14:[733,7],16:[612,4],17:[977,5],18:[977,7],19:[1024,7],20:[733,5],21:[733,7],22:[733,5],23:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,8],5:[940,6],6:[697,5],7:[462,8],8:[925,5],9:[900,15],10:[980,5],11:[925,7],12:[925,9],13:[612,8],14:[980,4],16:[612,4],17:[980,5],18:[966,6],19:[1023,
|
||||
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];m=Kp.prototype;
|
||||
m.Pb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.qa[b]=c,c.onclick=function(a){return function(){var b=d.A&&d.A[a];b&&b.za?(b=b.za,b=Ia(pp(b),"octet-stream",!0,b.Ng.replace(".json",".img")),w(b)):d.Na("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;if(d=Nc(a,"drives"))this.ua=d;else if(this.Fa)try{this.ua=eval("("+this.Fa+")")}catch(e){w("HDC drive configuration error: "+e.message+" ("+this.Fa+")")}this.N=Eb(a,"ChipSet");this.U=0;this.Ia=3;hc(b,this,this.ja?Np:Op);lc(b,this,this.ja?Pp:Qp);this.ja&&(this.U++,this.N&&5180==this.N.ia&&this.U++,this.Ia=2,b.aa[496]=2,b.fa[496]=2);Te(c,19,this.Zl.bind(this));Te(c,64,this.$l.bind(this));this.reset();Rp(this)||rb(this)};
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;if(d=Nc(a,"drives"))this.ua=d;else if(this.Fa)try{this.ua=eval("("+this.Fa+")")}catch(e){w("HDC drive configuration error: "+e.message+" ("+this.Fa+")")}this.N=Eb(a,"ChipSet");this.U=0;this.Ia=3;hc(b,this,this.ia?Np:Op);lc(b,this,this.ia?Pp:Qp);this.ia&&(this.U++,this.N&&5180==this.N.ja&&this.U++,this.Ia=2,b.aa[496]=2,b.fa[496]=2);Te(c,19,this.Zl.bind(this));Te(c,64,this.$l.bind(this));this.reset();Rp(this)||rb(this)};
|
||||
m.ic=function(a,b){if(!b)if(!a||!this.restore)Sp(this),this.V.dh&&Rp(this,!0);else if(!this.restore(a))return!1;return!0};m.hc=function(a){return a?this.save():!0};m.ff=function(){return this.V?this.V.ff():""};m.ke=function(){return this.V?this.V.ke():""};m.reset=function(){Sp(this,null,!0)};
|
||||
m.save=function(){var a=new hf(this),b=0,c=[];this.ja?(c[b++]=this.X,c[b++]=this.Pa,c[b++]=this.aa,c[b++]=this.Ca,c[b++]=this.ya,c[b++]=this.wa,c[b++]=this.ra,c[b++]=this.ma,c[b++]=this.Ea,c[b++]=[this.ga,this.hb]):(c[b++]=this.pa,c[b++]=this.ma,c[b++]=this.W,c[b++]=this.L,c[b++]=this.C,c[b++]=this.Oa,c[b++]=this.Ka,c[b++]=this.Ja,c[b++]=this.ka);for(var d=0,e=[],f=0;f<this.A.length;f++){var g=d++,h=this.A[f],k=0,l=[];l[k++]=h.errorCode;l[k++]=h.mk;l[k++]=h.bf;l[k++]=h.Qe;l[k++]=h.Re;l[k++]=h.kb;
|
||||
m.save=function(){var a=new hf(this),b=0,c=[];this.ia?(c[b++]=this.X,c[b++]=this.Pa,c[b++]=this.aa,c[b++]=this.Ca,c[b++]=this.ya,c[b++]=this.wa,c[b++]=this.ra,c[b++]=this.ma,c[b++]=this.Ea,c[b++]=[this.ga,this.hb]):(c[b++]=this.pa,c[b++]=this.ma,c[b++]=this.W,c[b++]=this.L,c[b++]=this.C,c[b++]=this.Oa,c[b++]=this.Ka,c[b++]=this.Ja,c[b++]=this.ka);for(var d=0,e=[],f=0;f<this.A.length;f++){var g=d++,h=this.A[f],k=0,l=[];l[k++]=h.errorCode;l[k++]=h.mk;l[k++]=h.bf;l[k++]=h.Qe;l[k++]=h.Re;l[k++]=h.kb;
|
||||
l[k++]=h.ub;l[k++]=h.de;l[k++]=h.xb;l[k++]=h.he;l[k++]=h.Hb;l[k++]=h.eb;l[k]=h.za?h.za.save():null;e[g]=l}c[b]=e;N(a,0,c);return a.data()};m.restore=function(a){return Sp(this,a[0])};
|
||||
function Sp(a,b,c){var d=0,e=!0;a.hb=-1;if(a.ja){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.X=b[d++],a.Pa=b[d++],a.aa=b[d++],a.Ca=b[d++],a.ya=b[d++],a.wa=b[d++],a.ra=b[d++],a.ma=b[d++],a.Ea=b[d++],a.ga=b[d++],"object"==typeof a.ga){var f=a.ga;a.ga=f[0];a.hb=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.pa=b[d++],a.ma=b[d++],a.W=b[d++],a.L=b[d++],a.C=b[d++],a.Oa=b[d++],a.Ka=b[d++],a.Ja=b[d++],f=b[d++],void 0!==f?a.ka=f:void 0===a.ka&&(a.ka=-1);void 0===a.A&&(a.A=Array(a.ua.length));b=b[d];void 0===
|
||||
b&&(b=[]);for(d=0;d<a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,l=a.ua[d],n=b[d],q=c,p=0,z=!0;void 0===n&&(n=[0,0,!1,Array(8)]);k.hb=h;k.errorCode=n[p++];k.mk=n[p++];k.bf=n[p++];k.Qe=n[p++];k.Re=n[p++];k.kb=n[p++];k.ub=n[p++];k.de=n[p++];k.xb=n[p++];k.he=n[p++];k.Hb=n[p++];k.mg=g.ja?0:1;k.name=l.name;void 0===k.name&&(k.name="Hard Drive");k.path=l.path;k.mode=l.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.ke()||(k.mode="local");k.type=l.type;
|
||||
function Sp(a,b,c){var d=0,e=!0;a.hb=-1;if(a.ia){if(null==b&&(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.X=b[d++],a.Pa=b[d++],a.aa=b[d++],a.Ca=b[d++],a.ya=b[d++],a.wa=b[d++],a.ra=b[d++],a.ma=b[d++],a.Ea=b[d++],a.ga=b[d++],"object"==typeof a.ga){var f=a.ga;a.ga=f[0];a.hb=f[1]}}else null==b&&(b=[0,0,Array(14),0,0]),a.pa=b[d++],a.ma=b[d++],a.W=b[d++],a.L=b[d++],a.C=b[d++],a.Oa=b[d++],a.Ka=b[d++],a.Ja=b[d++],f=b[d++],void 0!==f?a.ka=f:void 0===a.ka&&(a.ka=-1);void 0===a.A&&(a.A=Array(a.ua.length));b=b[d];void 0===
|
||||
b&&(b=[]);for(d=0;d<a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,l=a.ua[d],n=b[d],q=c,p=0,z=!0;void 0===n&&(n=[0,0,!1,Array(8)]);k.hb=h;k.errorCode=n[p++];k.mk=n[p++];k.bf=n[p++];k.Qe=n[p++];k.Re=n[p++];k.kb=n[p++];k.ub=n[p++];k.de=n[p++];k.xb=n[p++];k.he=n[p++];k.Hb=n[p++];k.mg=g.ia?0:1;k.name=l.name;void 0===k.name&&(k.name="Hard Drive");k.path=l.path;k.mode=l.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.ke()||(k.mode="local");k.type=l.type;
|
||||
if(void 0===k.type||void 0===Mp[g.U][k.type])k.type=g.Ia;l=Mp[g.U][k.type];k.lb=l[2]||17;k.Va=l[3]||512;if(q&&g.N){var F=g.N,v=k.type;if(F.A){var q=null,l=void 0,E=F.A[18];15<v&&(q=v,v=15);h?(E=E&240|v,l=26):(E=E&15|v<<4,l=25);v=F;v.A&&(v.A[18]=E,Xk(v));null!=q&&F.A&&(F.A[l]=q,Xk(F))}}void 0===k.za&&(k.za=null,g.Na("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Tp(g,k);k.eb=n[p++];k.pb=null;k.za&&(g=n[p],void 0!==g&&0>k.za.restore(g)&&(z=!1),z&&void 0!==k.eb&&(k.pb=k.za.seek(k.de,k.kb,k.xb+
|
||||
k.mg)));z||(e=!1);null!=a.pa&&1>=d&&(a.pa|=(f.type&3)<<(1-d<<1))}0<=a.hb&&(a.B=a.A[a.hb]);return e}m.Gi=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
|
||||
function Tp(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.Qe[2])?e=b.Qe[0]<<8|b.Qe[1]:c=b.type);null==c||d||(d=Mp[a.U][c][1],e=Mp[a.U][c][0]);d&&((c=Mp[a.U][b.type])&&e!=c[0]&&d!=c[1]&&a.Na("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.Bb=e,b.ub=d,null==b.za&&(b.za=new Ho(a,b,b.mode)))}}
|
||||
|
|
@ -639,7 +640,7 @@ function Rp(a,b){b||(a.fa=0);for(var c=0;c<a.A.length;c++){var d=a.A[c];if(d.nam
|
|||
m.Ok=function(a,b,c){a.bd=!1;if(a.za=b)this.Na('Mounted disk "'+c+'" in drive '+String.fromCharCode(67+a.hb),a.Ae),b=b.info(),b[0]==a.Bb&&b[1]==a.ub&&b[2]==a.lb&&b[3]==a.Va||this.Na("Warning: disk geometry ("+b[0]+":"+b[1]+":"+b[2]+") does not match "+Lp[this.U]+" drive type "+a.type+" ("+a.Bb+":"+a.ub+":"+a.lb+")");a.Ae&&(a.Ae=!1,--this.fa||rb(this))};
|
||||
m.Xl=function(a,b){var c=0;this.L<this.C&&(c=this.W[this.L]);this.N&&dg(this.N,5);this.ma&=-33;x(this,a,null,b,"DATA["+this.L+"]",c);++this.L>=this.C&&(this.L=this.C=0,this.ma&=-15);return c};m.nn=function(a,b,c){x(this,a,b,c,"DATA["+this.C+"]");this.C<this.W.length&&(this.W[this.C++]=b);a=12!=this.W[0]?6:this.W.length;6==this.C&&(this.ma&=-2);this.C>=a&&(this.ma|=2,this.ma&=-2,Up(this))};m.Yl=function(a,b){var c=this.ma;x(this,a,null,b,"STATUS",c);this.L<this.C&&(this.ma|=1);return c};
|
||||
m.qn=function(a,b,c){x(this,a,b,c,"RESET");this.Oa=b;this.N&&dg(this.N,5);Sp(this)};m.Wl=function(a,b){x(this,a,null,b,"CONFIG",this.pa);return this.pa};m.pn=function(a,b,c){x(this,a,b,c,"PULSE");this.Ka=b;this.ma=13};m.on=function(a,b,c){x(this,a,b,c,"PATTERN");this.Ja=b};m.gi=function(a,b,c){x(this,a,b,c,"NOISE")};
|
||||
function Vp(a,b,c){var d=-1;a.B&&(d=Wp(a.B,function(){}),1==a.B.eb||a.B.eb==a.B.Va)&&(A(a,1048832)&&x(a,b,null,c,"DATA["+a.B.eb+"]",d),1<a.B.eb&&(a.B.Hb-=a.B.Va,a.aa=a.aa-1&255,a.B.Hb>=a.B.Va?(a.ma=128,Wp(a.B,function(b){0<=b?(Xp(a),a.N&&5180==a.N.ia&&(a.ma=0),a.ma|=88):(a.ma=1,a.X=16)},!1)):a.ma=80));return d}m.Ak=function(a,b){return Vp(this,a,b)|Vp(this,a,b)<<8};
|
||||
function Vp(a,b,c){var d=-1;a.B&&(d=Wp(a.B,function(){}),1==a.B.eb||a.B.eb==a.B.Va)&&(A(a,1048832)&&x(a,b,null,c,"DATA["+a.B.eb+"]",d),1<a.B.eb&&(a.B.Hb-=a.B.Va,a.aa=a.aa-1&255,a.B.Hb>=a.B.Va?(a.ma=128,Wp(a.B,function(b){0<=b?(Xp(a),a.N&&5180==a.N.ja&&(a.ma=0),a.ma|=88):(a.ma=1,a.X=16)},!1)):a.ma=80));return d}m.Ak=function(a,b){return Vp(this,a,b)|Vp(this,a,b)<<8};
|
||||
function Yp(a,b,c,d){if(a.B&&a.B.Hb>=a.B.Va)if(0>Zp(a.B,c))a.ma=1,a.X=16;else if(1==a.B.eb||a.B.eb==a.B.Va)A(a,1048832)&&x(a,b,c,d,"DATA["+a.B.eb+"]"),1<a.B.eb&&(a.B.Hb-=a.B.Va,a.aa=a.aa-1&255,Xp(a),a.ma=80,a.B.Hb>=a.B.Va&&(a.ma|=8))}m.wm=function(a,b,c){Yp(this,a,b&255,c);Yp(this,a,b>>8&255,c)};m.dl=function(a,b){var c=this.X;x(this,a,null,b,"ERROR",c);return c};m.Bm=function(a,b,c){x(this,a,b,c,"WPREC");this.Pa=b};m.fl=function(a,b){var c=this.aa;x(this,a,null,b,"SECCNT",c);return c};
|
||||
m.zm=function(a,b,c){x(this,a,b,c,"SECCNT");this.aa=b};m.gl=function(a,b){var c=this.Ca;x(this,a,null,b,"SECNUM",c);return c};m.Am=function(a,b,c){x(this,a,b,c,"SECNUM");this.Ca=b};m.bl=function(a,b){var c=this.ya;x(this,a,null,b,"CYLLO",c);return c};m.vm=function(a,b,c){x(this,a,b,c,"CYLLO");this.ya=b};m.al=function(a,b){var c=this.wa;x(this,a,null,b,"CYLHI",c);return c};m.um=function(a,b,c){x(this,a,b,c,"CYLHI");this.wa=b};m.cl=function(a,b){var c=this.ra;x(this,a,null,b,"DRVHD",c);return c};
|
||||
m.xm=function(a,b,c){x(this,a,b,c,"DRVHD");this.ra=b;this.ma=this.A[this.ra&16?1:0]?this.ma|80:this.ma&-65};m.hl=function(a,b){var c=this.ma;x(this,a,null,b,"STATUS",c);this.ma&64&&(this.ma&=-129);return c};m.tm=function(a,b,c){x(this,a,b,c,"COMMAND");this.Ea=b;this.N&&dg(this.N,14);$p(this)};m.ym=function(a,b,c){x(this,a,b,c,"FDR");this.ga&4&&!(b&4)&&(this.X=1);this.ga=b};
|
||||
|
|
@ -676,21 +677,21 @@ bus:64,mem:128,port:256,dma:512,pic:1024,timer:2048,cmos:4096,rtc:8192,8042:1638
|
|||
[116,12417,4113],[109,12417,4113],[110,12417,4113],[140,12417,4113],[142,12417,4113],xq,[119,12417,4113]],[[115,12420,4113],[116,12420,4113],[109,12420,4113],[110,12420,4113],[140,12420,4113],[142,12420,4113],xq,[119,12420,4113]],[[115,12417,4449],[116,12417,4449],[109,12417,4449],[110,12417,4449],[140,12417,4449],[142,12417,4449],xq,[119,12417,4449]],[[115,12420,4449],[116,12420,4449],[109,12420,4449],[110,12420,4449],[140,12420,4449],[142,12420,4449],xq,[119,12420,4449]],[[155,4225,4097],xq,[98,
|
||||
12417],[96,12417],[95,4225],[42,12417],[32,4225],[41,12417]],[[155,4228,4100],xq,[98,12420],[96,12420],[95,4228],[42,12420],[32,4228],[41,12420]],[[44,12417],[31,12417],xq,xq,xq,xq,xq,xq],[[44,12420],[31,12420],[17,4228],[17,4231],[57,4228],[57,4231],[108,4228],xq],[],[[145,41091],[153,41091],[78,36995],[89,36995],[156,36995],[157,36995],xq,xq],[[139,41091],[144,41091],[75,36995],[77,36995],[146,41091],xq,[79,36995],xq],[xq,xq,xq,xq,[13,53380,4097],[16,57476,4097],[15,57476,4097],[14,57476,4097]]];
|
||||
m=hq.prototype;
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.V=a;this.tc=Eb(a,"FDC");this.Jb=Eb(a,"HDC");this.Tb=Eb(a,"FPU");this.W=Eb(a,"Mouse");(a=Nc(a,"messages"))&&lq(this,a);this.Ca=b.N>>2;this.Ba=b.xg;this.bc=new dd(this.F,7,"DBG");this.Ia=zq;80186<=this.F.ia&&(this.Ia=zq.slice(),this.Ia[15]=xq,80286<=this.F.ia&&(this.Ia[15]=yq,80386<=this.F.ia&&(this.Ja=8)));Mk(this,64,function(a){Dq(d,d.F.ld,a[0])});Mk(this,4,function(a){if(a=a[0]){var b=Eq(d,a);if(void 0===b)d.O("invalid selector: "+a);else if(a=Fq(d,
|
||||
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.V=a;this.tc=Eb(a,"FDC");this.Jb=Eb(a,"HDC");this.Tb=Eb(a,"FPU");this.W=Eb(a,"Mouse");(a=Nc(a,"messages"))&&lq(this,a);this.Ca=b.N>>2;this.Ba=b.xg;this.bc=new dd(this.F,7,"DBG");this.Ia=zq;80186<=this.F.ja&&(this.Ia=zq.slice(),this.Ia[15]=xq,80286<=this.F.ja&&(this.Ia[15]=yq,80386<=this.F.ja&&(this.Ja=8)));Mk(this,64,function(a){Dq(d,d.F.ld,a[0])});Mk(this,4,function(a){if(a=a[0]){var b=Eq(d,a);if(void 0===b)d.O("invalid selector: "+a);else if(a=Fq(d,
|
||||
b,2),d.O("dumpSel("+u(a?a.Z:b)+"): %"+r(a?a.Xb:null,d.Ca)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var h=Gq[a.type];h&&(c=h[0],b=h[1])}!c||a.wb&32768||(c+=",not present");d.O((b?"seg="+u(a.Aa&65535)+" off="+u(a.Ta):"base="+r(a.Aa,d.Ca)+" limit="+Hq(a.Ta))+" type="+t(a.type>>8)+" ("+c+") ext="+u(a.ext&-65296)+
|
||||
" dpl="+t(a.Gc))}}else d.O("no selector")});Mk(this,134217728,function(a){var b;(a=a[0])&&(b=Eq(d,a));if(void 0===b)d.O("invalid MCB");else for(d.O("dumpMCB("+u(b)+")");b;){a=iq(d,0,b);var c=d.Qa(a,1),h=d.na(a,2),k=d.na(a,5);if(77!=c&&90!=c)break;d.O(Iq(0,b)+": '"+String.fromCharCode(c)+"' PID="+u(h)+" LEN="+u(k)+' "'+Jq(d,a,8)+'"');b+=1+k}});Mk(this,128,function(a){Dq(d,d.F.sa,a[0],d.F.sa!==d.F.ld)});Mk(this,8,function(a){a:{if(a=a[0]){var b=Eq(d,a);if(void 0===b){d.O("invalid task selector: "+a);
|
||||
break a}a=Fq(d,b,2)}else a=d.F.Sa;d.O("dumpTSS("+u(a?a.Z:b)+"): %"+r(a?a.Aa:null,d.Ca));if(a){var b="",c=a.type&-513,h=256==c?4:8,k=256==c?Kq:Lq,l,n,q,p;for(p in k)l=k[p],n=a.Aa+l,q=If(d.F,n,2),2304==c&&(q|=If(d.F,n+2,2)<<16),b&&(b+="\n"),b+=u(l)+" "+ma(p+":",11)+r(q,h);if(2304==c)for(p=0,l=q>>>16;l<a.Zb&&1023>p;)n=a.Aa+l,q=If(d.F,n,2),b+="\n"+u(l)+" ports "+u(p)+"-"+u(p+15)+": "+ea(q,2),p+=16,l+=2;d.O(b)}}});this.C=null;this.rb=0;this.cb=!1;Te(this.F,48,this.bm.bind(this));Te(this.F,65,this.cm.bind(this));
|
||||
this.ka=null;Te(this.F,104,this.dm.bind(this));rb(this)};function Mq(a,b,c,d,e,f){b=Jq(a,b);var g=Fq(a,d),g=g?g.Ta+1:0,h=(e?"_CODE":"_DATA")+r(c,2);f&&A(a,128)&&a.message(b+" "+(e?"code":"data")+"("+r(c,4)+")=#"+r(d,4)+" len "+r(g));e=Nq(a,b,c);e[b+h]=0;bm(a,b,c,d,0,null,g,e)}
|
||||
function Oq(a,b,c,d){var e=a.na(b,2),f=a.na(b,2),g=a.oa(b,4),h=a.oa(b,4),k=iq(a,a.oa(b,4),a.na(b,2));b=iq(a,a.oa(b,4),a.na(b,2));b=Jq(a,b).toUpperCase();var k=Jq(a,k).toUpperCase(),l=(c?"_CODE":"_DATA")+r(e,2);d&&A(a,128)&&a.message((b==k?"":b+"!")+k+" "+(c?"code":"data")+"("+r(e,4)+")="+r(f,4)+":"+r(g)+" len "+r(h));c=Nq(a,k,e);c[k+l]=g;bm(a,k,e,f,g,null,h,c)}function Pq(a,b,c){c=Jq(a,c).toUpperCase();Qq(a,c,b)}
|
||||
m.bm=function(){var a=this.F;if(null!=this.C&&2752554==a.G){var b=a.M&65535,c=a.K&65535,d=iq(this,I(a)+12,a.ta.Z);switch(this.oa(d)){case 336:Oq(this,iq(this,a.H,b),!c,!!this.C)}}return!0};
|
||||
m.cm=function(a){var b=this.F,c=b.G&65535,d=b.H&65535,e=b.I&65535,f=b.M&65535,g=b.K&65535,h=b.J&65535,k=b.Xa.Z;if(null==this.C)return 79==c&&df(b,a,function(a){return function(){62342!=(b.G&65535)?(b.G=b.G&-65536|62342,y(a,"INT 0x41 handling enabled",128),a.C=!0):(y(a,"INT 0x41 monitoring enabled",128),a.C=!1)}}(this)),!0;switch(c){case 79:this.C&&(b.G=b.G&-65536|62342,y(this,"INT 0x41 handling enabled",128));break;case 80:Mq(this,iq(this,h,k),d+1,e,!(g&1),!!this.C);break;case 82:Qq(this,null,d);
|
||||
m.cm=function(a){var b=this.F,c=b.G&65535,d=b.H&65535,e=b.I&65535,f=b.M&65535,g=b.K&65535,h=b.J&65535,k=b.Xa.Z;if(null==this.C)return 79==c&&Ue(b,a,function(a){return function(){62342!=(b.G&65535)?(b.G=b.G&-65536|62342,y(a,"INT 0x41 handling enabled",128),a.C=!0):(y(a,"INT 0x41 monitoring enabled",128),a.C=!1)}}(this)),!0;switch(c){case 79:this.C&&(b.G=b.G&-65536|62342,y(this,"INT 0x41 handling enabled",128));break;case 80:Mq(this,iq(this,h,k),d+1,e,!(g&1),!!this.C);break;case 82:Qq(this,null,d);
|
||||
break;case 127:this.C&&(b.G=b.G&-65536|(this.cb?0:1));break;case 131:this.C&&(a=iq(this,b.M,e),this.rb++?(this.O("TRAPFAULT failed"),Rq(this,this.A,a,!0,!0),this.rb=0,this.Wb()):(this.O("INT 0x41 TRAPFAULT: fault="+u(d)+" error="+("0x"+r(b.K))+" addr="+Sq(a)),this.Sd(this.A,a,!0),kq(this,!0)));break;case 141:this.C&&(b.G=b.G&-65536|1);break;case 336:Oq(this,iq(this,b.H,f),!g,!!this.C);break;case 338:Pq(this,d,iq(this,b.J,f))}this.cb=!1;return!this.C};
|
||||
m.dm=function(a){var b=this.F,c=b.G&255,d=b.G>>8&255,e=b.H&65535,f=b.I&65535,g=b.M&65535,h=b.J&65535,k=b.Xa.Z;if(null==this.ka){if(67==d){if(609437257==b.oa((b.va.Z<<4)+10)||1111835735==b.oa((b.va.Z<<4)+95))return!0;df(b,a,function(a){return function(){62342!=(b.G&65535)?(b.G=b.G&-65536|62342,y(a,"INT 0x68 handling enabled",128),a.C=a.ka=!0):(y(a,"INT 0x68 monitoring enabled",128),a.ka=!1)}}(this))}return!0}switch(d){case 67:this.ka&&(b.G=b.G&-65536|62342);break;case 68:this.ka&&(a=fd(b.va,this.Hk.bind(this)))&&
|
||||
m.dm=function(a){var b=this.F,c=b.G&255,d=b.G>>8&255,e=b.H&65535,f=b.I&65535,g=b.M&65535,h=b.J&65535,k=b.Xa.Z;if(null==this.ka){if(67==d){if(609437257==b.oa((b.va.Z<<4)+10)||1111835735==b.oa((b.va.Z<<4)+95))return!0;Ue(b,a,function(a){return function(){62342!=(b.G&65535)?(b.G=b.G&-65536|62342,y(a,"INT 0x68 handling enabled",128),a.C=a.ka=!0):(y(a,"INT 0x68 monitoring enabled",128),a.ka=!1)}}(this))}return!0}switch(d){case 67:this.ka&&(b.G=b.G&-65536|62342);break;case 68:this.ka&&(a=fd(b.va,this.Hk.bind(this)))&&
|
||||
(b.J=a[0],vd(b,a[1]));break;case 72:Qq(this,null,e);break;case 80:32==c?Mq(this,iq(this,h,k),0,f,!0,!!this.ka):128>c?Mq(this,iq(this,h,k),e+1,c&64?g:f,!(c&1),!!this.ka):Oq(this,iq(this,h,k),!(c&1),!!this.ka),this.ka&&(b.G=b.G&-256|1)}return!this.ka};m.Hk=function(){var a=this.F;5==(a.G&255)&&(a.I=a.K=0,a.G=a.G&-256|1);return!1};
|
||||
m.Pb=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Ka=this.qa[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",mq(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.U<d.L.length-1&&(b=d.L[++d.U]):40==a.keyCode&&(0<d.U?b=d.L[--d.U]:(b="",d.U=-1)),null!=b){var g=b.length;c.value=b;c.setSelectionRange(g,g)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.qa[b]=c,Ka(c,function(){if(d.Ka){var a=d.Ka.value;d.Ka.value=
|
||||
"";mq(d,a,!0);return!0}return!1}),!0;case "step":return this.qa[b]=c,Ka(c,function(a){var b=!1;qb(d,!0)||(pb(d,!0),b=d.vf(a?1:0),pb(d,!1));return b}),!0}return!1};m.yd=function(){this.Ka&&this.Ka.focus()};function Tq(a){return a.F&&!!(a.F.Za&1)&&!(a.F.ca&131072)}
|
||||
function Fq(a,b,c){var d=Tq(a)?2:1;c||(c=d);if(c==d){if(b===a.F.va.Z)return a.F.va;if(b===a.F.vb.Z)return a.F.vb;if(b===a.F.Xa.Z)return a.F.Xa;if(b===a.F.ta.Z)return a.F.ta;if(80386<=a.F.ia){if(b===a.F.Nb.Z)return a.F.Nb;if(b===a.F.Ob.Z)return a.F.Ob}if(a.fb&&2==c||!a.bc)return null}a=a.bc;if(2!=c)a.lh(b),a.Ta=65535,a.Zb=65536;else{var e;c=a.F;b=b&65535;b&4?(d=c.Bc.Aa,e=d+c.Bc.Ta|0):(d=c.Ec,e=c.Ad);d=d+(b&65528)|0;if(e-d|0){e=If(c,d+0,2);var f=If(c,d+4,2),g=f&7936,h=If(c,d+2,2)|(f&255)<<16,k=If(c,
|
||||
d+6,2);80386<=c.ia&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.Z=b;a.Aa=h;a.Ta=e;a.Zb=(e>>>0)+1;a.wb=f;a.type=g;a.ext=k;a.Xb=d;ed(a,!0,!0,!1)}}return a}m.dc=function(a,b,c){var d=a&&a.Da;if(null==d&&(d=-1,a)){var e=Fq(this,a.Z,a.type);e&&(b=a.Ra||0,c=c||1,d=e=-1===e.Xb||e.cd&&(b>>>0)+c>e.Zb||!e.cd&&(b>>>0)+c<=e.Zb?e.Aa+b|0:-1,a.Da=d)}return d};m.Qa=function(a,b){var c=255,d=this.dc(a,!1,1);-1!==d&&(c=If(this.F,d,1,5==a.type)|0,b&&Uq(this,a,b));return c};
|
||||
function Fq(a,b,c){var d=Tq(a)?2:1;c||(c=d);if(c==d){if(b===a.F.va.Z)return a.F.va;if(b===a.F.vb.Z)return a.F.vb;if(b===a.F.Xa.Z)return a.F.Xa;if(b===a.F.ta.Z)return a.F.ta;if(80386<=a.F.ja){if(b===a.F.Nb.Z)return a.F.Nb;if(b===a.F.Ob.Z)return a.F.Ob}if(a.fb&&2==c||!a.bc)return null}a=a.bc;if(2!=c)a.lh(b),a.Ta=65535,a.Zb=65536;else{var e;c=a.F;b=b&65535;b&4?(d=c.Bc.Aa,e=d+c.Bc.Ta|0):(d=c.Ec,e=c.Ad);d=d+(b&65528)|0;if(e-d|0){e=If(c,d+0,2);var f=If(c,d+4,2),g=f&7936,h=If(c,d+2,2)|(f&255)<<16,k=If(c,
|
||||
d+6,2);80386<=c.ja&&(h|=(k&65280)<<16,e|=(k&15)<<16,k&128&&(e=e<<12|4095));a.Z=b;a.Aa=h;a.Ta=e;a.Zb=(e>>>0)+1;a.wb=f;a.type=g;a.ext=k;a.Xb=d;ed(a,!0,!0,!1)}}return a}m.dc=function(a,b,c){var d=a&&a.Da;if(null==d&&(d=-1,a)){var e=Fq(this,a.Z,a.type);e&&(b=a.Ra||0,c=c||1,d=e=-1===e.Xb||e.cd&&(b>>>0)+c>e.Zb||!e.cd&&(b>>>0)+c<=e.Zb?e.Aa+b|0:-1,a.Da=d)}return d};m.Qa=function(a,b){var c=255,d=this.dc(a,!1,1);-1!==d&&(c=If(this.F,d,1,5==a.type)|0,b&&Uq(this,a,b));return c};
|
||||
m.tb=function(a,b){return a.Rb?this.oa(a,b?4:0):this.na(a,b?2:0)};m.na=function(a,b){var c=65535,d=this.dc(a,!1,2);-1!==d&&(c=If(this.F,d,2,5==a.type),b&&Uq(this,a,b));return c};m.oa=function(a,b){var c=-1,d=this.dc(a,!1,4);-1!==d&&(c=If(this.F,d,4,5==a.type),b&&Uq(this,a,b));return c};m.qc=function(a,b,c){var d=this.dc(a,!0,1);if(-1!==d){if(5!=a.type)this.F.qc(d,b);else{var e=this.ea;e.sa[(d&e.Gb)>>>e.La].wf(d&e.A,b&255,d)}c&&Uq(this,a,c);Qc(this.F,!0)}};
|
||||
m.jb=function(a,b,c){var d=this.dc(a,!0,2);-1!==d&&(5!=a.type?this.F.jb(d,b):fc(this.ea,d,b),c&&Uq(this,a,c),Qc(this.F,!0))};function iq(a,b,c,d,e,f,g){return Vq(a,{},b,c,d,e,f,g)}function Vq(a,b,c,d,e,f,g,h){b.Ra=c||0;b.Z=d;b.Da=e;b.type=f||(Tq(a)?2:1);b.Rb=null!=g?g:a.F&&4==a.F.va.ba;b.pc=null!=h?h:a.F&&4==a.F.va.Oc;b.Xd=!1;return b}function Wq(a){return[a.Ra,a.Z,a.Da,a.Xd,a.Rb,a.pc,a.Se,a.Wd]}function Xq(a){return{Ra:a[0],Z:a[1],Da:a[2],Xd:a[3],Rb:a[4],pc:a[5],Se:a[6],Wd:a[7]}}
|
||||
function Yq(a,b,c){if(null!=b.Z&&(a=Fq(a,b.Z,b.type))){var d=b.Ra&a.Ba;if(!a.cd){if(d>>>0>=a.Zb)return!1}else if(d>>>0<a.Zb)return!1;c&&(b.Ra=d,b.Rb=4==a.ba,b.pc=4==a.Oc)}return!0}
|
||||
|
|
@ -705,17 +706,17 @@ function Nq(a,b,c){var d=[],e;for(e=null;e=Eb(a.V,"Disk",e);){var f=e,g=b,h=c,d=
|
|||
function Mk(a,b,c){for(var d in wq)if(b==wq[d]){a.$a[d]=c;break}}function er(a,b){var c;a=a.toUpperCase();null==b?c=ua(uq,a):(c=ua(uq,a.substr(b,3)),0>c&&(c=ua(uq,a.substr(b,2))));return c}
|
||||
function fr(a,b){var c=0,d=gr(a,b);if(void 0!==d)switch(b){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c=2;break;case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 22:case 16:case 17:case 18:case 19:case 20:case 21:c=4;break;case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 56:c=8;break;case 23:c=a.Ja}return c?r(d,c):"??"}
|
||||
function gr(a,b){var c;if(0<=b){var d=a.F;switch(b){case 0:c=d.G&255;break;case 1:c=d.I&255;break;case 2:c=d.M&255;break;case 3:c=d.H&255;break;case 4:c=d.G>>8&255;break;case 5:c=d.I>>8&255;break;case 6:c=d.M>>8&255;break;case 7:c=d.H>>8&255;break;case 8:c=d.G&65535;break;case 9:c=d.I&65535;break;case 10:c=d.M&65535;break;case 11:c=d.H&65535;break;case 12:c=I(d)&65535;break;case 13:c=d.P&65535;break;case 14:c=d.K&65535;break;case 15:c=d.J&65535;break;case 22:c=K(d)&65535;break;case 23:c=wd(d);break;
|
||||
case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ia)32==b&&(c=d.Za);else if(80386<=a.F.ia)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.ji;break;case 34:c=d.te;break;case 35:c=d.Pd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c}
|
||||
case 16:c=d.Xa.Z;break;case 17:c=d.va.Z;break;case 18:c=d.ta.Z;break;case 19:c=d.vb.Z;break;default:if(80286==a.F.ja)32==b&&(c=d.Za);else if(80386<=a.F.ja)switch(b){case 24:c=d.G;break;case 25:c=d.I;break;case 26:c=d.M;break;case 27:c=d.H;break;case 28:c=I(d);break;case 29:c=d.P;break;case 30:c=d.K;break;case 31:c=d.J;break;case 32:c=d.Za;break;case 33:c=d.ji;break;case 34:c=d.te;break;case 35:c=d.Pd;break;case 20:c=d.Nb.Z;break;case 21:c=d.Ob.Z;break;case 56:c=K(d)}}}return c}
|
||||
function hr(a,b){b=$q(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=er(b,c+1),0<=e&&(b=b.substr(0,c)+fr(a,e)+b.substr(c+1+uq[e].length)),c++;for(c=0;0<=(c=b.indexOf("#",c));)e=b.substr(c+1,2),d=ca(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=Zq(a,e))?(d=e+' "'+Jq(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=Zq(a,e))?(Uq(a,d),d=e+
|
||||
' "'+Jq(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m=hq.prototype;m.message=function(a,b){b&&(a+=" at "+Sq(iq(this,K(this.F),this.F.va.Z))+" (%"+r(this.F.Ga)+")");if(!this.Pa||a!=this.Pa)if(this.Pa=a,this.wc&-2147483648&&(this.Wb(),a+=" (cpu halted)"),this.O(a),this.F){var c=this.F;c.Y.mf=0;c.fb-=c.A;c.A=0;Qc(c)}};
|
||||
function kk(a,b,c,d){var e,f;if(!d&&(d=A(a,1)&&0>oq.indexOf(b),!d)){var g=nq[b];g&&(d=A(a,g)?!0:524288==g&&A(a,g=1048576))}d&&(e=a.F.G>>8&255,f=a.F.M&255,33==b&&11==e||524288==g&&128<=f||1048576==g&&128>f)&&(d=!1);d&&((g=(g=yb[b])&&g[e]||"")&&(g=" "+hr(a,g)),a.message("INT "+t(b)+": AH="+t(e)+" at "+Iq(c-2-a.F.va.Aa,a.F.va.Z)+g));return d}
|
||||
function ob(a,b,c,d,e,f,g,h){h|=256;if(null==e||(a.wc&h)==h)h=null,null!=e&&(h=a.F.va.Z,e-=a.F.va.Aa),a.message(b.ee+"."+(null!=d?"outPort":"inPort")+"("+u(c)+","+(f?f:"unknown")+(null!=d?","+t(d):"")+")"+(null!=g?": "+t(g):"")+(null!=e?" at "+Iq(e,h):""))}m.hh=function(){this.O("Type ? for help with PCjs Debugger commands");this.qd();if(this.gb){var a=this.gb;this.gb=null;mq(this,a)}};
|
||||
function kq(a,b){var c;if(Tf(a)){if(!a.ja||!a.ja.length){a.ja=Array(1E3);for(c=0;c<a.ja.length;c++)a.ja[c]=iq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.X||!a.X.length)for(a.X=Array(256),c=0;c<a.X.length;c++)a.X[c]=[c,0]}else a.ja&&a.ja.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ja=[],a.X=[]}m.Ke=function(a){if(!ir(this))return!1;this.F.Ke(a);return!0};
|
||||
function kq(a,b){var c;if(Tf(a)){if(!a.ia||!a.ia.length){a.ia=Array(1E3);for(c=0;c<a.ia.length;c++)a.ia[c]=iq(a);a.Fa=0;b||a.O("instruction history buffer allocated")}if(!a.X||!a.X.length)for(a.X=Array(256),c=0;c<a.X.length;c++)a.X[c]=[c,0]}else a.ia&&a.ia.length&&!b&&a.O("instruction history buffer freed"),a.Fa=0,a.ia=[],a.X=[]}m.Ke=function(a){if(!ir(this))return!1;this.F.Ke(a);return!0};
|
||||
m.vf=function(a,b,c){if(!ir(this))return!1;this.fa=0;do{a||Tf(this)&&Wf(this,this.F.Ga,0);try{var d=this.F.vf(a);0<d&&(this.fa+=d,Zc(this.F,d,!0),Vc(this.F,d),this.pa++)}catch(f){if("number"!=typeof f){var e=f;this.fa=0;ub(this.F,e.stack||e.message)}}}while(this.F.S&3312);!1!==c&&Qc(this.F);this.qd(b||!1);return 0<this.fa};m.Wb=function(a){this.F&&this.F.Wb(a)};m.qd=function(a){void 0===a&&(a=!0);this.aa=iq(this,K(this.F),this.F.va.Z);a&&1!=this.N?jr(this):kr(this)};
|
||||
function ir(a){var b;if(b=a.F&&sb(a.F))b=a.F,b.la.cc?b=!0:(b.O(b.toString()+" not powered"),b=!1);b&&!qb(a.F)?(a=a.F,a.la.ud?(a.O(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.ic=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.hc=function(a,b){b&&this.O(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){kq(this);this.pa=this.ya=0;this.Pa=null;this.fa=0;this.aa=iq(this,K(this.F),this.F.va.Z);this.la.Ib=!1;lr(this);a||this.qd()};
|
||||
m.save=function(){var a=new hf(this);N(a,0,Wq(this.aa));N(a,1,Wq(this.ua));N(a,2,[this.L,this.Ea,this.wc]);N(a,3,this.B);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.aa=Xq(a[b++]),this.ua=Xq(a[b++]),this.L=a[b][0],"string"==typeof this.L&&(this.L=[this.L]),this.Ea=a[b][1],this.wc|=a[b][2]);a[3]&&(this.B=a[3]);return!0};m.start=function(a,b){this.N||this.O("running");this.la.Ib=!0;this.uc=a;this.xd=b};
|
||||
m.stop=function(a,b){if(this.la.Ib){this.la.Ib=!1;this.fa=b-this.xd;if(!this.N){var c="stopped";if(this.fa){var d=a-this.uc,e=0<d?Math.round(1E3*this.fa/d):0,c=c+" (";Tf(this)&&(c+=this.pa+" opcodes, ",this.ya-=this.pa,this.pa=0);c+=this.fa+" cycles, "+d+" ms, "+e+" hz)"}else A(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.O(c)}this.qd(!0);this.yd();lr(this,this.F.Ga)}};function Tf(a){return 1<a.A.length||!!a.Oa||A(a,16)}
|
||||
function Wf(a,b,c){var d=a.F;if(0<c&&(a.Oa&&!--a.Oa||mr(a,b,1,a.A)))return!0;0<=c&&a.X.length&&(a.pa++,b=If(d,b),null!=b&&(a.X[b][1]++,Vq(a,a.ja[a.Fa],K(d),d.va.Z),++a.Fa==a.ja.length&&(a.Fa=0)));return!1}function Cc(a,b,c){return mr(a,b,c||1,a.ra)?(a.Wb(!0),!0):!1}function Ec(a,b,c){return mr(a,b,c||1,a.ga)?(a.Wb(!0),!0):!1}function jc(a,b,c){a.O("break on input from port "+u(b)+": "+r(c));a.Wb(!0)}function nc(a,b,c){a.O("break on output to port "+u(b)+": "+r(c));a.Wb(!0)}
|
||||
function Wf(a,b,c){var d=a.F;if(0<c&&(a.Oa&&!--a.Oa||mr(a,b,1,a.A)))return!0;0<=c&&a.X.length&&(a.pa++,b=If(d,b),null!=b&&(a.X[b][1]++,Vq(a,a.ia[a.Fa],K(d),d.va.Z),++a.Fa==a.ia.length&&(a.Fa=0)));return!1}function Cc(a,b,c){return mr(a,b,c||1,a.ra)?(a.Wb(!0),!0):!1}function Ec(a,b,c){return mr(a,b,c||1,a.ga)?(a.Wb(!0),!0):!1}function jc(a,b,c){a.O("break on input from port "+u(b)+": "+r(c));a.Wb(!0)}function nc(a,b,c){a.O("break on output to port "+u(b)+": "+r(c));a.Wb(!0)}
|
||||
function jq(a){var b,c;a.A=["bp"];if(void 0!==a.ra)for(b=1;b<a.ra.length;b++)c=a.ra[b],qe(a.F,a.dc(c),!1,5==c.type);a.ra=["br"];if(void 0!==a.ga)for(b=1;b<a.ga.length;b++)c=a.ga[b],qe(a.F,a.dc(c),!0,5==c.type);a.ga=["bw"];a.fb=0}
|
||||
m.Sd=function(a,b,c){var d=!0;c||Rq(this,a,b,!1,!0);if(a!=this.A){var e=this.dc(b);if(-1===e)this.O("invalid address: "+Sq(b)),d=!1;else{var f=this.F,g=5==b.type;(g?f.ld:f.sa)[e>>>f.La].Sd(e&f.Fa,a==this.ga);g&&Ub(f)}}d&&(a.push(b),c?(null!=b.Da&&(b.Z=null),b.Xd=!0):(nr(this,a,a.length-1,"set"),kq(this)));return d};
|
||||
function Rq(a,b,c,d,e){for(var f=!1,g=or(a,a.dc(c)),h=1;h<b.length;h++){var k=b[h];if(-1!==g&&g==or(a,a.dc(k))||-1===g&&c.Z==k.Z&&c.Ra==k.Ra)if(!d||k.Xd){f=!0;k.Xd||e||nr(a,b,h,"cleared");b.splice(h,1);b!=a.A&&qe(a.F,g,b==a.ga,5==k.type);k.Xd||kq(a);break}}return f}function pr(a,b){for(var c=1;c<b.length;c++)nr(a,b,c);return b.length-1}function nr(a,b,c,d){c=b[c];a.O(b[0]+" "+Sq(c)+(d?" "+d:c.jk?' "'+c.jk+'"':""))}
|
||||
|
|
@ -726,12 +727,12 @@ n="CWDE":28==l?n="CDQ":104<=l&&107>=l&&(n+="D"));if(164<=f&&167>=f||170<=f&&175>
|
|||
ia)ia+=8;else{var P=v,ja=bb,Ha=H,Xa=P.Qa(Ha,1),Ba=Xa>>6,Vb=Xa>>3&7,Xa=Xa&7,wa="";if(ja||5!=Xa)wa=vq[Xa+8];4!=Vb&&(wa&&(wa+="+"),wa+=vq[Vb+8],Ba&&(wa+="*"+(1<<Ba)));ja||5!=Xa||(wa&&(wa+="+"),wa+=r(P.oa(Ha,4)));P=wa}P||(P=vq[ia])}1==bb?(ja=v.Qa(H,1),ja&128?(ja=ja<<24>>24,P+="-"+r(-ja,2)):P+="+"+r(ja,2)):2==bb&&(P&&(P+="+"),H.pc?(ja=v.oa(H,4),P+=r(ja)):(ja=v.na(H,2),P+=r(ja,4)));P="["+P+"]";if(1==V){v="";E&=15;4==E&&(E=H.Rb?5:3);switch(E){case 7:v="FAR";break;case 1:v="BYTE";break;case 3:if(L){v="INT16";
|
||||
break}v="WORD";break;case 5:v="DWORD";break;case 11:if(L){v="INT32";break}case 11:v="REAL32";break;case 12:if(L){v="INT64";break}case 12:v="REAL64";break;case 13:v="REAL80";break;case 14:v="BCD80"}v&&(P=v+" "+P)}}else P=sr(v,ia,E,H);v=P}else v=160==L?sr(a,g&7,E,b):sr(a,g>>3&7,E,b);else if(16==L)v="1";else if(0==L){v=a;H=E;L=b;E=" ";switch(H&15){case 1:H&12288&&(E=r(v.Qa(L,1),2));break;case 2:E=r(v.Qa(L,1)<<24>>24,L.Rb?8:4);break;case 4:if(L.Rb){E=r(v.oa(L,4));break}case 3:E=r(v.na(L,2),4);break;case 7:L=
|
||||
iq(v,v.tb(L,!0),v.na(L,2),null,L.type,L.Rb,L.pc);E=Sq(L);v=tr(v,L);v[0]&&(E+=" ("+v[0]+")");break;default:E="imm("+u(H)+")"}v=E}else 32==L?(b.pc?(v=8,E=a.oa(b,4)):(v=4,E=a.na(b,2)),v="["+r(E,v)+"]"):48==L?(v=1==H?a.Qa(b,1)<<24>>24:a.tb(b,!0),E=b.Ra+v&(b.Rb?-1:65535),v=r(E,b.Rb?8:4),E=tr(a,iq(a,E,b.Z)),E[0]&&(v+=" ("+E[0]+")")):96==L?v=9==H?"ST":10==H?"ST("+(g&7)+")":sr(a,(E&3840)>>8,E,b):112==L?v=sr(a,(E&3840)>>8,192,b):64==L?v="DS:[SI]":80==L&&(v="ES:[DI]");if(!v||!v.length){q="INVALID";break}0<
|
||||
q.length&&(q+=",");q+=v||"???"}}}g="";k=Sq(e)+" ";if(-1!==e.Da&&-1!==b.Da){do if(g+=r(a.Qa(e,1),2),null==e.Da)break;while(e.Da!=b.Da)}k+=ma(g,e.pc?24:16);k+=ma(n,8);q&&(k+=" "+q);a.F.ia<tq[f]&&(c=tq[f]+" CPU only");c&&z&&(k=ma(k,e.pc?74:56)+";"+c,k=a.F.la.Ye?k+("cycles="+Wc(a.F).toString()+" cs="+r(a.F.Y.If)):k+(null!=d?"="+d.toString():""));ur(b,z,h);return k}
|
||||
function sr(a,b,c,d){var e=c&240;if(192==e){if(5<b||4<=b&&80386>a.F.ia)return"??";b+=16}else if(208==e)b+=32;else if(224==e)b+=40;else if(240==e)b+=48;else if(a=c&15,3<=a&&(8>b&&(b+=8),5==a||4==a&&d.Rb))b+=16;return uq[b]}
|
||||
function vr(a,b){var c;switch(b){case "V":c=uf(a.F);break;case "D":c=a.F.ca&1024;break;case "I":c=a.F.ca&512;break;case "T":c=a.F.ca&256;break;case "S":c=tf(a.F);break;case "Z":c=sf(a.F);break;case "A":c=rf(a.F);break;case "P":c=qf(a.F);break;case "C":c=pf(a.F);break;default:c=0}return b+(c?"1":"0")+" "}function Hq(a){return r(a,a&-65536?8:4)}function wr(a,b){8<=b&&15>=b&&4<a.Ja&&(b+=16);var c=uq[b];32==b&&80286==a.F.ia&&(c="MS");return c+"="+fr(a,b)+" "}
|
||||
q.length&&(q+=",");q+=v||"???"}}}g="";k=Sq(e)+" ";if(-1!==e.Da&&-1!==b.Da){do if(g+=r(a.Qa(e,1),2),null==e.Da)break;while(e.Da!=b.Da)}k+=ma(g,e.pc?24:16);k+=ma(n,8);q&&(k+=" "+q);a.F.ja<tq[f]&&(c=tq[f]+" CPU only");c&&z&&(k=ma(k,e.pc?74:56)+";"+c,k=a.F.la.Ye?k+("cycles="+Wc(a.F).toString()+" cs="+r(a.F.Y.If)):k+(null!=d?"="+d.toString():""));ur(b,z,h);return k}
|
||||
function sr(a,b,c,d){var e=c&240;if(192==e){if(5<b||4<=b&&80386>a.F.ja)return"??";b+=16}else if(208==e)b+=32;else if(224==e)b+=40;else if(240==e)b+=48;else if(a=c&15,3<=a&&(8>b&&(b+=8),5==a||4==a&&d.Rb))b+=16;return uq[b]}
|
||||
function vr(a,b){var c;switch(b){case "V":c=uf(a.F);break;case "D":c=a.F.ca&1024;break;case "I":c=a.F.ca&512;break;case "T":c=a.F.ca&256;break;case "S":c=tf(a.F);break;case "Z":c=sf(a.F);break;case "A":c=rf(a.F);break;case "P":c=qf(a.F);break;case "C":c=pf(a.F);break;default:c=0}return b+(c?"1":"0")+" "}function Hq(a){return r(a,a&-65536?8:4)}function wr(a,b){8<=b&&15>=b&&4<a.Ja&&(b+=16);var c=uq[b];32==b&&80286==a.F.ja&&(c="MS");return c+"="+fr(a,b)+" "}
|
||||
function xr(a,b,c){return b.lc+"="+r(b.Z,4)+(c?"["+r(b.Aa,a.Ca)+","+Hq(b.Ta)+"]":"")}function yr(a,b,c,d,e){return b+"="+(null!=c?r(c,4):"")+"["+r(d,a.Ca)+","+r(e-d,4)+"]"}
|
||||
function zr(a,b){var c;void 0===b&&(b=Tq(a));c=wr(a,8)+wr(a,11)+wr(a,9)+wr(a,10)+(4<a.Ja?"\n":"")+wr(a,12)+wr(a,13)+wr(a,14)+wr(a,15)+"\n"+xr(a,a.F.ta,b)+" "+xr(a,a.F.vb,b)+" "+xr(a,a.F.Xa,b)+" ";if(b){var d="TR="+r(a.F.Sa.Z,4),e=a.ea,e="A20="+(e.V||e.xg!=e.Gb?"OFF ":"ON ");80386>a.F.ia&&(d="\n"+d,c+=e,e="");c+="\n"+xr(a,a.F.va,b)+" ";80386<=a.F.ia&&(e+="\n",c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+"\n");c+=yr(a,"LD",a.F.Bc.Z,a.F.Bc.Aa,a.F.Bc.Aa+a.F.Bc.Ta)+" "+yr(a,"GD",null,a.F.Ec,a.F.Ad)+" "+yr(a,"ID",
|
||||
null,a.F.Mc,a.F.Td)+" ";c=c+(d+" "+e)+wr(a,32);80386<=a.F.ia&&(c+=wr(a,34)+wr(a,35))}else 80386<=a.F.ia&&(c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+" ");return c+=wr(a,23)+vr(a,"V")+vr(a,"D")+vr(a,"I")+vr(a,"T")+vr(a,"S")+vr(a,"Z")+vr(a,"A")+vr(a,"P")+vr(a,"C")}var Ar={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function zr(a,b){var c;void 0===b&&(b=Tq(a));c=wr(a,8)+wr(a,11)+wr(a,9)+wr(a,10)+(4<a.Ja?"\n":"")+wr(a,12)+wr(a,13)+wr(a,14)+wr(a,15)+"\n"+xr(a,a.F.ta,b)+" "+xr(a,a.F.vb,b)+" "+xr(a,a.F.Xa,b)+" ";if(b){var d="TR="+r(a.F.Sa.Z,4),e=a.ea,e="A20="+(e.V||e.xg!=e.Gb?"OFF ":"ON ");80386>a.F.ja&&(d="\n"+d,c+=e,e="");c+="\n"+xr(a,a.F.va,b)+" ";80386<=a.F.ja&&(e+="\n",c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+"\n");c+=yr(a,"LD",a.F.Bc.Z,a.F.Bc.Aa,a.F.Bc.Aa+a.F.Bc.Ta)+" "+yr(a,"GD",null,a.F.Ec,a.F.Ad)+" "+yr(a,"ID",
|
||||
null,a.F.Mc,a.F.Td)+" ";c=c+(d+" "+e)+wr(a,32);80386<=a.F.ja&&(c+=wr(a,34)+wr(a,35))}else 80386<=a.F.ja&&(c+=xr(a,a.F.Nb,b)+" "+xr(a,a.F.Ob,b)+" ");return c+=wr(a,23)+vr(a,"V")+vr(a,"D")+vr(a,"I")+vr(a,"T")+vr(a,"S")+vr(a,"Z")+vr(a,"A")+vr(a,"P")+vr(a,"C")}var Ar={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Br(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function ar(a,b,c){var d;if(b){b=$q(a,b);for(var e=0,f=!1,g=b,h=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var n=l[e++],q=n.length,n=na(n);if(!n){f=!0;break}n=Eq(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}h.push(n);if(e==l.length)break;var n=l[e++],p=n.length;k.length&&Ar[n]<Ar[k[k.length-1]]&&Br(h,k,1);k.push(n);b=b.substr(q+p)}Br(h,k)&&1==h.length||(f=!0);f?c&&a.O("error parsing '"+g+"' at character "+(g.length-b.length)):(d=h.pop(),c&&Cr(a,null,
|
||||
|
|
@ -746,10 +747,10 @@ function Ir(a,b,c){var d=null;if(b=Zq(a,b,!0)){a.dc(b);var e=tr(a,b,!0);if(e.len
|
|||
function Jr(a,b){if(b[1]&&"?"!=b[1]){var c="json"==b[1],d,e=0,f=0,g=c?{}:Zq(a,b[1]);if(g&&(d=Eq(a,b[2],"drive #"),void 0!==d)){if(!c){e=Eq(a,b[3],"sector #");if(void 0===e)return;f=Eq(a,b[4],"# of sectors");void 0===f&&(f=1)}var h=a.tc;2<=d&&a.Jb&&(d-=2,h=a.Jb);if(h){var k=h.Gi(d);if(k)if(k.za)if(c)Fr(a),a.O(k.za.toJSON());else if(h.lk(k,e,f)){for(var l=0,n=!1,c=Sq(g);!n&&0<k.Hb--;)(function(a,b){h.jc(k,function(c){0>c?(a.O("out of data at address "+Sq(b)),n=!0):(a.qc(b,c,1),l++)})})(a,g);a.O(l+" bytes read at "+
|
||||
c)}else a.O("sector "+e+" request out of range");else a.O("drive "+d+" not loaded");else a.O("invalid drive: "+d)}else a.O("disk controller not present")}}else a.O("list/load commands:"),a.O("\tl [address] [drive #] [sector #] [# sectors]")}
|
||||
function jr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1];if(a.Tb&&"fp"==e){c=a.Tb;d=Zf(c);for(var f=c.kc,g=0;8>g;g++){var h=c,e=null;if(g<h.V.length){var e=[],k=h.B+g&7;e[0]=k;e[1]=ng(h,k);e[2]=h.V[k];k<<=1;e[3]=h.aa[k];e[4]=h.aa[k+1];h=Dg(h,e[3],e[4]);e[5]=h[0];e[6]=h[1];e[7]=
|
||||
h[2]}if(!e)break;a.O("ST"+g+": "+ma(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+sq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+da(d,16)+" ("+u(d)+") CW: "+da(f,16)+" ("+u(f)+")");return}if("p"==e)d=80286<=a.F.ia;else{f=null;g=e.indexOf("=");if(0<g)f=e.substr(g+1),e=e.substr(0,g);else if(2<b.length)f=b[2];else{a.O("missing value for "+b[1]);return}g=!1;h=ar(a,f);if(void 0!==h)switch(g=!0,k=e.toUpperCase(),"E"==k.charAt(0)&&4>=a.Ja&&(k=null),
|
||||
h[2]}if(!e)break;a.O("ST"+g+": "+ma(e[2].toFixed(15),24,!0)+" "+r(e[4])+","+r(e[3])+" ["+e[0]+":"+sq[e[1]]+"]")}a.O(" B3SSS210ESPUOZDI xxxIRRPPIxPUOZDI");a.O("SW: "+da(d,16)+" ("+u(d)+") CW: "+da(f,16)+" ("+u(f)+")");return}if("p"==e)d=80286<=a.F.ja;else{f=null;g=e.indexOf("=");if(0<g)f=e.substr(g+1),e=e.substr(0,g);else if(2<b.length)f=b[2];else{a.O("missing value for "+b[1]);return}g=!1;h=ar(a,f);if(void 0!==h)switch(g=!0,k=e.toUpperCase(),"E"==k.charAt(0)&&4>=a.Ja&&(k=null),
|
||||
k){case "AL":a.F.G=a.F.G&-256|h&255;break;case "AH":a.F.G=a.F.G&-65281|h<<8&255;break;case "AX":a.F.G=a.F.G&-65536|h&65535;break;case "BL":a.F.H=a.F.H&-256|h&255;break;case "BH":a.F.H=a.F.H&-65281|h<<8&255;break;case "BX":a.F.H=a.F.H&-65536|h&65535;break;case "CL":a.F.I=a.F.I&-256|h&255;break;case "CH":a.F.I=a.F.I&-65281|h<<8&255;break;case "CX":a.F.I=a.F.I&-65536|h&65535;break;case "DL":a.F.M=a.F.M&-256|h&255;break;case "DH":a.F.M=a.F.M&-65281|h<<8&255;break;case "DX":a.F.M=a.F.M&-65536|h&65535;
|
||||
break;case "SP":G(a.F,I(a.F)&-65536|h&65535);break;case "BP":a.F.P=a.F.P&-65536|h&65535;break;case "SI":a.F.K=a.F.K&-65536|h&65535;break;case "DI":a.F.J=a.F.J&-65536|h&65535;break;case "DS":pd(a.F,h);break;case "ES":vd(a.F,h);break;case "SS":jd(a.F,h);break;case "CS":kf(a.F,h);a.aa=iq(a,K(a.F),a.F.va.Z);break;case "IP":case "EIP":O(a.F,h);a.aa=iq(a,K(a.F),a.F.va.Z);break;case "PC":case "PS":xd(a.F,h);break;case "C":h?wf(a.F):xf(a.F);break;case "P":h?(e=a.F,e.resultType&=-3,e.ca|=4):(e=a.F,e.resultType&=
|
||||
-3,e.ca&=-5);break;case "A":h?Ef(a.F):Cf(a.F);break;case "Z":h?Ff(a.F):Df(a.F);break;case "S":h?(e=a.F,e.resultType&=-17,e.ca|=128):(e=a.F,e.resultType&=-17,e.ca&=-129);break;case "I":h?(e=a.F,e.ca|=512):(e=a.F,e.ca&=-513);break;case "D":h?(e=a.F,e.ca|=1024):(e=a.F,e.ca&=-1025);break;case "V":h?yf(a.F):zf(a.F);break;default:var l=!0;if(80286<=a.F.ia)switch(l=!1,k){case "MS":Gf(a.F,h);break;case "TR":-1===a.F.Sa.load(h)&&(g=!1);break;default:if(l=!0,80386<=a.F.ia)switch(l=!1,k){case "EAX":a.F.G=h;
|
||||
-3,e.ca&=-5);break;case "A":h?Ef(a.F):Cf(a.F);break;case "Z":h?Ff(a.F):Df(a.F);break;case "S":h?(e=a.F,e.resultType&=-17,e.ca|=128):(e=a.F,e.resultType&=-17,e.ca&=-129);break;case "I":h?(e=a.F,e.ca|=512):(e=a.F,e.ca&=-513);break;case "D":h?(e=a.F,e.ca|=1024):(e=a.F,e.ca&=-1025);break;case "V":h?yf(a.F):zf(a.F);break;default:var l=!0;if(80286<=a.F.ja)switch(l=!1,k){case "MS":Gf(a.F,h);break;case "TR":-1===a.F.Sa.load(h)&&(g=!1);break;default:if(l=!0,80386<=a.F.ja)switch(l=!1,k){case "EAX":a.F.G=h;
|
||||
break;case "EBX":a.F.H=h;break;case "ECX":a.F.I=h;break;case "EDX":a.F.M=h;break;case "ESP":G(a.F,h);break;case "EBP":a.F.P=h;break;case "ESI":a.F.K=h;break;case "EDI":a.F.J=h;break;case "FS":a.F.Nb.load(h);break;case "GS":a.F.Ob.load(h);break;case "CR0":a.F.Za=h;pj.call(a.F,h);break;case "CR2":a.F.te=h;break;case "CR3":a.F.Pd=h;zd.call(a.F,h);break;default:l=!0}}if(l){a.O("unknown register: "+e);return}}if(!g){a.O("invalid value: "+f);return}Qc(a.F);a.O("updated registers:")}}a.O(zr(a,d));c&&(a.aa=
|
||||
iq(a,K(a.F),a.F.va.Z),kr(a,Sq(a.aa)))}}function Kr(a,b){b=na(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.O(hr(a,c[2])):ar(a,b,!0)}function Lr(a,b,c){for(var d=null,e=b.Ra,f=e,g=1;6>=g&&e;g++){if(2<g){b.Ra=e;b.Da=null;var h=rr(a,b);if(0<=h.indexOf("CALL")||c&&0<=h.indexOf("INT")){var k=h.indexOf(" ");if(e+(h.indexOf(" ",k+1)-k-1)/2==f){d=h;break}}}e--}b.Ra=f;return d}
|
||||
function Mr(a,b,c){var d="t"!=b;c=Eq(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ja(c,function(){return pb(a,!0)&&a.vf(e,d,!1)},function(){Qc(a.F);pb(a,!1)})}function ur(a,b,c){if(a.Wd=b)null!=a.Li&&(a.Rb=a.Li),null!=a.Ji&&(a.pc=a.Ji),a.Li=a.Rb,a.Ji=a.pc;a.Se=c||0}
|
||||
|
|
@ -760,41 +761,41 @@ Zq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+Sq(q)),a.Ea=
|
|||
a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+pr(a,a.A),L=L+pr(a,a.ra);(L+=pr(a,a.ga))||a.O("no breakpoints")}else if("n"==H)a.Oa=Eq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var V={};if("*"!=v&&(V=Zq(a,v,!0,!0),!V))break a;v=null==V.Ra?v:u(V.Ra);"c"==H?null==V.Ra?(jq(a),a.O("all breakpoints cleared")):Rq(a,
|
||||
a.A,V)||Rq(a,a.ra,V)||Rq(a,a.ga,V)||a.O("breakpoint missing: "+Sq(V)):"i"==H?a.O("breakpoint "+(gc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(kc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=V.Ra&&(br(a,V,E),"p"==H?a.Sd(a.A,V):"r"==H?a.Sd(a.ra,V):"w"==H?a.Sd(a.ga,V):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in wq)a.$a[bb]&&(Ba&&(Ba+=
|
||||
","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Vb=Nr(a.V,!0);"console"==Ha?console.log(Vb):(Fr(a),
|
||||
a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa<a.B.length;wa++){var Vd=a.B[wa],Rc;for(Rc in Vd.Rd)if("."!=Rc.charAt(0)){var Wd=Vd.Rd[Rc],Je=Wd.o;if(void 0!==Je){var Xd=Wd.s;void 0===Xd&&(Xd=Vd.Z);var Ke=Vd.Rd[Rc].l;Ke&&(Rc=Ke);a.O(Iq(Je,Xd)+" "+Rc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var mi=P[0];if(mi){var Ue=a.dc(Zq(a,mi));if(-1===Ue)a.O("invalid address: "+mi);else{var be,Da=null;if(80386<=a.F.ia){var ce=
|
||||
a.ea,Da={};Da.bk=(Ue&-4194304)>>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Ue&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Ue&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Ue),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)),
|
||||
qd=qd+(" %%"+r(be.Fk));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";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var Fn=a.$a[bb];Fn?(P.shift(),P.shift(),Fn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Gn=ja,Hn=Ha,In="",Jn=0,tb=a.Fa,tc=a.ja;if(tc.length){var Db=+Gn||a.Ub,de=+Hn||10;isNaN(Db)?Db=de:In="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length);
|
||||
tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ni=[];"call"==Hn&&(de=1E5,ni=["CALL"]);for(void 0!==Gn&&a.O(Db+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var Ve=iq(a,rd.Ra,rd.Z,rd.Da,rd.type,rd.Rb,rd.pc),gs=Db--,Kn=rr(a,Ve,"history",gs);(!ni.length||0<=Kn.indexOf(ni[0]))&&a.O(Kn);Ve.Se&&(tb+=Ve.Se,de-=Ve.Se,Db-=Ve.Se);tb>=tc.length&&(tb=0);a.Ub=Db;Jn++;de--}}Jn||(a.O("no "+In+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift();
|
||||
var oi=P[0];if(oi){var We=Eq(a,oi);if(void 0===We||0>We||255<We)a.O("invalid vector: "+oi);else{var Ln="&",Mn=!!(a.F.Za&1),Nn=!1,qg=a.F.Mc+(We<<(Mn?3:2)),pi=a.F.na(qg+0),hs=a.F.na(qg+2);Mn&&(Ln="#",a.F.na(qg+4)&2048&&(Nn=!0,pi|=a.F.na(qg+6)<<16));a.O("dumpIDT("+u(We)+"): "+Ln+r(hs,4)+":"+r(pi,Nn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=Zq(a,ja);if(ee&&(null!=ee.Z||null!=ee.Da)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=Eq(a,Ha)>>>
|
||||
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,is=tg+15>>4||1;is--&&0<tg;){var ug=0,qi=0,Xe,Ye="",ri="",ja=Sq(ee);for(Xe=16;0<Xe&&0<tg;Xe--){var vg=a.Qa(ee,1),ug=ug|vg<<(qi++<<3);qi==sg&&(Ye+=r(ug,2*sg),Ye+=1==sg?9==Xe?"-":" ":" ",ug=qi=0);ri+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ye+(0==Xe?" "+ri:"")}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var wg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(wg=2,On=65535,Pn=a.na,
|
||||
Qn=a.jb);var Rn=wg<<1,Sn=g[1];if(null==Sn)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=Zq(a,Sn);if(xg)for(var yg=2;yg<g.length;yg++){var Ze=ar(a,g[yg]);if(void 0===Ze){a.O("unrecognized value: "+g[yg]);break}Ze&~On&&a.O("warning: "+r(Ze)+" exceeds "+wg+"-byte value");var js=Pn.call(a,xg);a.O("changing "+Sq(xg)+" from 0x"+r(js,Rn)+" to 0x"+r(Ze,Rn));Qn.call(a,xg,Ze,wg)}}break;case "f":Gr(a,g[1]);break;case "g":a:{var Tn=
|
||||
g[1],ks=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Tn){var si=Zq(a,Tn,!0);if(!si)break a;br(a,si,ks);a.Sd(a.A,si,!0)}a.Ke(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ti;if(a.la.Ib)ti="halting",a.Wb();else{if(qb(a,!0))break a;ti="already halted"}c||a.O(ti)}break;case "i":if("if"==g[0]){var ui;var $e=b.substr(2),$e=na($e);ar(a,$e)?(c||a.O("true: "+$e),ui=!0):(c||a.O("false: "+$e),ui=!1);ui||(d=!1);break}if("int"==g[0]){var zg;a:switch(Eq(a,g[1])){case 19:kk(a,19,a.F.Ga,
|
||||
!0);a.ya=a.pa;zg=!0;break a;case 33:kk(a,33,a.F.Ga,!0);a.ya=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var vi=g[1];if(vi&&"?"!=vi){var wi=Eq(a,vi);if(void 0!==wi){var ls=ic(a.ea,wi,1);a.O(u(wi)+": "+t(ls))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ms=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var xi=0,Un=a.F.va.Z,af=iq(a),
|
||||
Tc=iq(a,I(a.F),a.F.ta.Z);for(a.O("stack trace for "+Sq(Tc));10>xi;){for(var uc=null,ns=256;Tc.Ra>>>0<a.F.Lg>>>0;){af.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;af.Z=Un;if(uc=Lr(a,af))break;af.Z=a.tb(Tc);if(uc=Lr(a,af,!0)){Un=a.tb(Tc,!0);0<uc.indexOf("INT")&&a.tb(Tc,!0);break}}if(!uc||null==uc)break;var Vn=null;if("ks"==ms){var Wn=uc.match(/[0-9A-F]+$/);Wn&&(Vn=Ir(a,Wn[0]))}uc=ma(uc,50)+" ;"+(Vn||"stack="+Sq(Tc));a.O(uc);xi++}xi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Ir(a,
|
||||
a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa<a.B.length;wa++){var Vd=a.B[wa],Rc;for(Rc in Vd.Rd)if("."!=Rc.charAt(0)){var Wd=Vd.Rd[Rc],Ke=Wd.o;if(void 0!==Ke){var Xd=Wd.s;void 0===Xd&&(Xd=Vd.Z);var Le=Vd.Rd[Rc].l;Le&&(Rc=Le);a.O(Iq(Ke,Xd)+" "+Rc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var mi=P[0];if(mi){var Ve=a.dc(Zq(a,mi));if(-1===Ve)a.O("invalid address: "+mi);else{var be,Da=null;if(80386<=a.F.ja){var ce=
|
||||
a.ea,Da={};Da.bk=(Ve&-4194304)>>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Ve&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Ve&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Ve),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)),
|
||||
qd=qd+(" %%"+r(be.Fk));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";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var Fn=a.$a[bb];Fn?(P.shift(),P.shift(),Fn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Gn=ja,Hn=Ha,In="",Jn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Db=+Gn||a.Ub,de=+Hn||10;isNaN(Db)?Db=de:In="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length);
|
||||
tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ni=[];"call"==Hn&&(de=1E5,ni=["CALL"]);for(void 0!==Gn&&a.O(Db+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var We=iq(a,rd.Ra,rd.Z,rd.Da,rd.type,rd.Rb,rd.pc),gs=Db--,Kn=rr(a,We,"history",gs);(!ni.length||0<=Kn.indexOf(ni[0]))&&a.O(Kn);We.Se&&(tb+=We.Se,de-=We.Se,Db-=We.Se);tb>=tc.length&&(tb=0);a.Ub=Db;Jn++;de--}}Jn||(a.O("no "+In+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift();
|
||||
var oi=P[0];if(oi){var Xe=Eq(a,oi);if(void 0===Xe||0>Xe||255<Xe)a.O("invalid vector: "+oi);else{var Ln="&",Mn=!!(a.F.Za&1),Nn=!1,qg=a.F.Mc+(Xe<<(Mn?3:2)),pi=a.F.na(qg+0),hs=a.F.na(qg+2);Mn&&(Ln="#",a.F.na(qg+4)&2048&&(Nn=!0,pi|=a.F.na(qg+6)<<16));a.O("dumpIDT("+u(Xe)+"): "+Ln+r(hs,4)+":"+r(pi,Nn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=Zq(a,ja);if(ee&&(null!=ee.Z||null!=ee.Da)){var rg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),rg=Eq(a,Ha)>>>
|
||||
0,65536<rg&&(rg=65536));for(var sd="",sg="dd"==ia?4:"dw"==ia?2:1,tg=sg*rg||128,is=tg+15>>4||1;is--&&0<tg;){var ug=0,qi=0,Ye,Ze="",ri="",ja=Sq(ee);for(Ye=16;0<Ye&&0<tg;Ye--){var vg=a.Qa(ee,1),ug=ug|vg<<(qi++<<3);qi==sg&&(Ze+=r(ug,2*sg),Ze+=1==sg?9==Ye?"-":" ":" ",ug=qi=0);ri+=32<=vg&&128>vg?String.fromCharCode(vg):".";tg--}sd&&(sd+="\n");sd+=ja+" "+Ze+(0==Ye?" "+ri:"")}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var wg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(wg=2,On=65535,Pn=a.na,
|
||||
Qn=a.jb);var Rn=wg<<1,Sn=g[1];if(null==Sn)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=Zq(a,Sn);if(xg)for(var yg=2;yg<g.length;yg++){var $e=ar(a,g[yg]);if(void 0===$e){a.O("unrecognized value: "+g[yg]);break}$e&~On&&a.O("warning: "+r($e)+" exceeds "+wg+"-byte value");var js=Pn.call(a,xg);a.O("changing "+Sq(xg)+" from 0x"+r(js,Rn)+" to 0x"+r($e,Rn));Qn.call(a,xg,$e,wg)}}break;case "f":Gr(a,g[1]);break;case "g":a:{var Tn=
|
||||
g[1],ks=b;"gt"==g[0]&&(a.cb=!0);if(void 0!==Tn){var si=Zq(a,Tn,!0);if(!si)break a;br(a,si,ks);a.Sd(a.A,si,!0)}a.Ke(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":a:{var ti;if(a.la.Ib)ti="halting",a.Wb();else{if(qb(a,!0))break a;ti="already halted"}c||a.O(ti)}break;case "i":if("if"==g[0]){var ui;var af=b.substr(2),af=na(af);ar(a,af)?(c||a.O("true: "+af),ui=!0):(c||a.O("false: "+af),ui=!1);ui||(d=!1);break}if("int"==g[0]){var zg;a:switch(Eq(a,g[1])){case 19:kk(a,19,a.F.Ga,
|
||||
!0);a.ya=a.pa;zg=!0;break a;case 33:kk(a,33,a.F.Ga,!0);a.ya=a.pa;zg=!0;break a;default:zg=!1}zg||(d=!1);break}var vi=g[1];if(vi&&"?"!=vi){var wi=Eq(a,vi);if(void 0!==wi){var ls=ic(a.ea,wi,1);a.O(u(wi)+": "+t(ls))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ms=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var xi=0,Un=a.F.va.Z,bf=iq(a),
|
||||
Tc=iq(a,I(a.F),a.F.ta.Z);for(a.O("stack trace for "+Sq(Tc));10>xi;){for(var uc=null,ns=256;Tc.Ra>>>0<a.F.Lg>>>0;){bf.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;bf.Z=Un;if(uc=Lr(a,bf))break;bf.Z=a.tb(Tc);if(uc=Lr(a,bf,!0)){Un=a.tb(Tc,!0);0<uc.indexOf("INT")&&a.tb(Tc,!0);break}}if(!uc||null==uc)break;var Vn=null;if("ks"==ms){var Wn=uc.match(/[0-9A-F]+$/);Wn&&(Vn=Ir(a,Wn[0]))}uc=ma(uc,50)+" ;"+(Vn||"stack="+Sq(Tc));a.O(uc);xi++}xi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Ir(a,
|
||||
g[1],!0);break}Jr(a,g);break;case "m":if("mouse"==g[0]){var yi=g[1],Ag=g[2];if(a.W){var Xn=1;"-"==Ag.charAt(0)&&(Xn=-1,Ag=Ag.substr(1));var td=Eq(a,Ag,yi);if(void 0!==td)switch(td=td*Xn|0,yi){case "x":a.W.Hf(td,0);break;case "y":a.W.Hf(0,td);break;case "click":a.W.je(td,!0);a.W.je(td,!1);break;default:a.O("unknown action: "+yi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==
|
||||
Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&(Oa="keyboard");for(vc in wq)if(Oa==vc){ud=wq[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var os=0,Uc="";for(vc in wq)if(!Oa||Oa==vc){var ps=!!(a.wc&wq[vc]);if(null===wc||wc==ps)Uc&&(Uc+=","),++os%10||(Uc+="\n\t"),"key"==vc&&(vc="keys"),Uc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?
|
||||
wc?"messages on: ":"messages off: ":"message categories:\n\t")+(Uc||"none"));kq(a)}break;case "o":var zi=g[1],qs=g[2];if(zi&&"?"!=zi){var Ai=Eq(a,zi,"port #"),Bi=Eq(a,qs);void 0!==Ai&&void 0!==Bi&&(mc(a.ea,Ai,1,Bi),a.O(u(Ai)+": "+t(Bi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Kr(a,b.substr(5));break}var Yn="pr"==g[0]?1:0,fe=1+Yn;if(a.N)a.O("step in progress");else{var Bg,
|
||||
Zn=!1,lb=iq(a,K(a.F),a.F.va.Z);do switch(Bg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Uq(a,lb,1);Bg=!0;break;case 204:case 206:a.N=fe;Uq(a,lb,1);break;case 205:case 224:case 225:case 226:a.N=fe;Uq(a,lb,lb.Rb?4:2);break;case 232:a.N=fe;Uq(a,lb,lb.Rb?5:3);break;case 154:a.N=fe;Uq(a,lb,lb.Rb?7:5);break;case 255:var $n=a.tb(lb)&14591;if(4351==$n||6399==$n)a.N=fe,rr(a,lb);break;case 243:case 242:Uq(a,lb,1);Zn=Bg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Zn&&
|
||||
(a.N=fe,Uq(a,lb,1))}while(Bg);a.N?(a.Sd(a.A,lb,!0),a.Ke()||(a.V&&a.V.yd(),a.N=0)):Mr(a,Yn?"tr":"t")}break;case "r":if("reset"==b){a.V&&a.V.reset();break}jr(a,g);break;case "t":Mr(a,g[0],g[1]);break;case "u":kr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Hr(a,b.substr(3))||(d=!1);break}a.O("PCjs version 1.22.0 ("+a.F.ia+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(ya());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var bf;void 0!==g[3]&&(bf=+g[3]);switch(g[2]){case "int":a.F.Y.jf=
|
||||
bf;break;case "start":a.F.Y.Jf=bf;break;case "stop":a.F.Y.lf=bf;break;default:a.O("unknown cs option");break a}void 0!==bf&&Pc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Xc(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Yd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var cf="commands:",Ci;for(Ci in pq)cf+="\n"+ma(Ci,7)+pq[Ci];Tf(a)||(cf+="\nnote: frequency/history disabled if no exec breakpoints");a.O(cf);break;default:a.O("unknown command: "+b),d=!1}}}catch(ao){a.O("debugger error: "+(ao.stack||ao.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0}
|
||||
(a.N=fe,Uq(a,lb,1))}while(Bg);a.N?(a.Sd(a.A,lb,!0),a.Ke()||(a.V&&a.V.yd(),a.N=0)):Mr(a,Yn?"tr":"t")}break;case "r":if("reset"==b){a.V&&a.V.reset();break}jr(a,g);break;case "t":Mr(a,g[0],g[1]);break;case "u":kr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Hr(a,b.substr(3))||(d=!1);break}a.O("PCjs version 1.22.0 ("+a.F.ja+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(ya());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var cf;void 0!==g[3]&&(cf=+g[3]);switch(g[2]){case "int":a.F.Y.jf=
|
||||
cf;break;case "start":a.F.Y.Jf=cf;break;case "stop":a.F.Y.lf=cf;break;default:a.O("unknown cs option");break a}void 0!==cf&&Pc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Xc(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Yd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var df="commands:",Ci;for(Ci in pq)df+="\n"+ma(Ci,7)+pq[Ci];Tf(a)||(df+="\nnote: frequency/history disabled if no exec breakpoints");a.O(df);break;default:a.O("unknown command: "+b),d=!1}}}catch(ao){a.O("debugger error: "+(ao.stack||ao.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0}
|
||||
Qa(function(){for(var a=nb(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new hq(d);mb(d,c)}});function hf(a,b,c){this.id=a.id;this.key=Or(a,b,c);this.ha=a.ha;Pr(this,a.gk)}function Or(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
hf.prototype={constructor:hf,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Ca()&&(a=Ea(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Pr(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==
|
||||
this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};function Pr(a,b){a[a.id]={};b&&N(a,"parms",b);a.A=!1}function Qr(a){var b=!0;if(Ca()){var c=JSON.stringify(a[a.id]);Fa(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Rr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Sr(a,b){return a[a.id][b]||null}function N(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function Tr(a,b,c){Ua.call(this,"Computer",a,Tr,67108864);this.la.cc=!1;Ur(this,b);this.ga=Nc(this,"autoPower",a);this.N=0;this.ua=a.busWidth||a.buswidth;this.A=Vr;this.aa=null;this.W=this.ra=!1;this.wa=Nc(this,"url")||"";this.ya=(Math.random()+.1).toString(36).substr(2,12);this.B=Wr(this);if(this.F=ib("CPU",this.id)){this.ha=ib("Debugger",this.id);this.L=[];for(b=null;b=Eb(this,"Video",b);)this.L.push(b);this.ea=new Lb({id:this.ve+".bus",busWidth:this.ua},this.F,this.ha);var d,e=gb(this.id);if((this.C=
|
||||
ib("Panel",this.id))&&this.C.Df)for(b=0;b<e.length;b++)d=e[b],d.Na=this.C.Na,d.O=this.C.O,d.Df=this.C.Df;for(b=0;b<e.length;b++)d=e[b],d.Ic&&d.Ic(this,this.ea,this.F,this.ha);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.X=d:this.A=parseInt(d,10));var f;if(a=Nc(this,"state")||(f=!0,a.state))b=this.ja=a,f||(this.W=!0,this.A=Vr),this.A&&(this.fa=new hf(this,Xr),this.fa.load()?b=null:delete this.fa);!b&&this.A&&(b=Yr(this))&&(this.W=!0);if(b){var g=this;va(b,null,!0,function(a,b,c){c?(g.X=null,g.W=
|
||||
ib("Panel",this.id))&&this.C.Df)for(b=0;b<e.length;b++)d=e[b],d.Na=this.C.Na,d.O=this.C.O,d.Df=this.C.Df;for(b=0;b<e.length;b++)d=e[b],d.Ic&&d.Ic(this,this.ea,this.F,this.ha);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.X=d:this.A=parseInt(d,10));var f;if(a=Nc(this,"state")||(f=!0,a.state))b=this.ia=a,f||(this.W=!0,this.A=Vr),this.A&&(this.fa=new hf(this,Xr),this.fa.load()?b=null:delete this.fa);!b&&this.A&&(b=Yr(this))&&(this.W=!0);if(b){var g=this;va(b,null,!0,function(a,b,c){c?(g.X=null,g.W=
|
||||
!1,g.Na("Unable to load machine state from server (error "+c+(b?": "+na(b):"")+")")):(g.aa=b,g.ra=!0);rb(g)})}else rb(this);this.qa.power||(this.ga=!0);!c&&this.ga&&Zr(this,this.$f)}else w("Unable to find CPU component")}db(Tr);var Xr="1.22.0",Vr=0;m=Tr.prototype;m.ff=function(){return this.ya};function Ur(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.U=b}
|
||||
function Nc(a,b,c){var d=b.toLowerCase(),d=Ya[b]||Ya[d];void 0===d&&a.U&&(d=a.U[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}m.ke=function(){return this.B||""};function Zr(a,b,c){for(var d=gb(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!sb(f)){sb(f,function(){Zr(a,b,c)});return}}b.call(a,c)}
|
||||
function $r(a,b){var c=new hf(a,Xr,"validate");if(c.load()&&Rr(c)){var d=Sr(c,"timestamp"),e=b?Sr(b,"timestamp"):"unknown";d!=e&&(a.Na("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
m.$f=function(a){void 0===a&&(a=this.A||(this.aa?1:Vr));if(!this.N){this.N++;var b=!1,c=!1;this.pa=!1;var d=this.fa||new hf(this,Xr);if(-1==a)b=!0;else if(a>Vr){if(d.load(this.aa)){this.V=new hf(this,Xr,"failsafe");this.V.load()&&(as(this,d),a=2,Pr(this.V));N(this.V,"timestamp",qa());Qr(this.V);var e=this.A&&!this.W;if(1==a||za("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Rr(d)){var f=Sr(d,"code"),g=Sr(d,"data");f&&("ok"==f?d.load(g):("error"==f&&"no machine state"!=
|
||||
g?(this.Na("Error: "+g),"unable to verify user"==g&&(Fa("user",""),this.B=null)):this.O(f+": "+g),Pr(d),d.load()?(c=Rr(d),e=!0):c=!1))}e&&$r(this,c?d:null)}else 2==a&&d.clear()}else $r(this);delete this.aa;delete this.fa}e=gb(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.F&&(c=bs(this,g,d,b,c));b=[d,a,c];-1!=a?Zr(this,this.Ii,b):this.Ii(b)}};
|
||||
function bs(a,b,c,d,e){if(!b.la.cc){b.la.cc=!0;if(b.ic){var f=null;e&&((f=Sr(c,b.id))||(f=Sr(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ic(f,d)&&f&&(w("Unable to restore state for "+b.type),a.ja&&!a.ra?(c.clear(),a.A=Vr,window&&window.location.reload()):a.pa=!0,b.ic(null),e=!1)}if(!d&&b.tk)for(a=b.tk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
function bs(a,b,c,d,e){if(!b.la.cc){b.la.cc=!0;if(b.ic){var f=null;e&&((f=Sr(c,b.id))||(f=Sr(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.ic(f,d)&&f&&(w("Unable to restore state for "+b.type),a.ia&&!a.ra?(c.clear(),a.A=Vr,window&&window.location.reload()):a.pa=!0,b.ic(null),e=!1)}if(!d&&b.tk)for(a=b.tk.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
m.Ii=function(a){var b=a[0],c=0>a[1];a=a[2];this.la.cc=!0;var d=this.qa.power;d&&(d.textContent="Shutdown");this.ka||(this.O("PCjs v"+Xr+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ka=!0);this.F&&(bs(this,this.F,b,c,a),Sc(this.F));this.pa&&(as(this,b),b.clear());!c&&this.V&&(this.V.clear(),delete this.V);this.N=0};
|
||||
function as(a,b){if(za("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.wa,d=a.ke(),e=b.toString(),f={app:"PCjs"};f.ver=Xr;f.url=c;f.user=d;f.type="bug";f.data=e;va("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function Nr(a,b,c){var d,e="none";if(a.N)return null;a.N--;var f=new hf(a,Xr),g=new hf(a,Xr,"validate"),h=qa();N(g,"timestamp",h);N(f,"timestamp",h);N(f,"version","1.22.0");N(f,"url",window?window.location.href:null);N(f,"browser",ya());a.F&&a.F.hc&&(c&&a.F.Wb(),d=a.F.hc(b,c),"object"===typeof d&&N(f,a.F.id,d),c&&(a.F.la.cc=!1,!1===d&&(e=null)));for(var h=gb(a.id),k=0;k<h.length;k++){var l=h[k];l.la.cc&&(l.hc&&(d=l.hc(b,c),"object"===typeof d&&N(f,l.id,d)),c&&(l.la.cc=!1,!1===d&&(e=null)))}e&&(c?
|
||||
(h=d=!1,b?(a.B&&cs(a,a.B,f.toString()),Qr(g)&&Qr(f)||(e=null,d=h=!0)):a.A&&(d=!0,h=3==a.A),d&&f.clear(h)):e=f.toString());c&&(a.la.cc=!1,b=a.qa.power)&&(b.textContent="Power");a.N=0;return e}m.reset=function(){this.ea&&this.ea.reset&&(y(this,"Resetting "+this.ea.type),this.ea.reset());for(var a=gb(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ea&&c.reset&&(y(this,"Resetting "+c.type),c.reset())}};
|
||||
m.start=function(a,b){for(var c=gb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=gb(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
m.Pb=function(a,b,c){var d=this;switch(b){case "power":return this.qa[b]=c,c.onclick=function(){d.N||(d.la.cc?Nr(d,!1,!0):Zr(d,d.$f))},!0;case "reset":return this.qa[b]=c,c.onclick=function(){if(d.la.cc&&!d.N)if(d.A&&!d.X){var a=za("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Nr(d,a,!0);!a&&d.ja?window&&window.location.reload():(a||(d.dh=!0),d.$f(Vr),d.dh=!1)}else d.reset(),d.F&&Sc(d.F)},!0;case "save":if(ha(xa(),"pcjs.org")){c.parentNode.removeChild(c);
|
||||
break}this.qa[b]=c;c.onclick=function(){var a=Wr(d,!0);if(a){var b=!!(d.A&&!d.X||d.ja),c=Nr(d,b);b?cs(d,a,c):d.Na("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
m.Pb=function(a,b,c){var d=this;switch(b){case "power":return this.qa[b]=c,c.onclick=function(){d.N||(d.la.cc?Nr(d,!1,!0):Zr(d,d.$f))},!0;case "reset":return this.qa[b]=c,c.onclick=function(){if(d.la.cc&&!d.N)if(d.A&&!d.X){var a=za("Click OK to save changes to this PCjs machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");Nr(d,a,!0);!a&&d.ia?window&&window.location.reload():(a||(d.dh=!0),d.$f(Vr),d.dh=!1)}else d.reset(),d.F&&Sc(d.F)},!0;case "save":if(ha(xa(),"pcjs.org")){c.parentNode.removeChild(c);
|
||||
break}this.qa[b]=c;c.onclick=function(){var a=Wr(d,!0);if(a){var b=!!(d.A&&!d.X||d.ia),c=Nr(d,b);b?cs(d,a,c):d.Na("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function Wr(a,b){var c=a.B;c||(c=Ea("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=ds(a,c))||a.Na("The user ID is invalid."))):b&&a.Na("Browser local storage is not available"));return c}
|
||||
function ds(a,b){a.B=null;var c=va(xa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(Fa("user",c.data),a.B=c.data)}catch(e){w(e.message+" ("+d+")")}return a.B}function Yr(a){var b=null;a.B&&(b=xa()+"/api/v1/user?req=load&user="+a.B+"&state="+Or(a,Xr));return b}
|
||||
function cs(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=Or(a,Xr);d.data=c;b=va(xa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.Na("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.Na(c),Fa("user",""),a.B=null)}}
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ v(d,d.fa(h+g)));c&&d.bb(h+0,f);d.Pa|=8;return!0}l.save=function(){return[this.ja
|
|||
function zc(a,b,c,d){void 0===c&&(c=!!(a.A.Pa&1));a.zd=!1;if(c)if(a.load=a.Cf,a.Wh=a.Tk,a.Pb=a.Ih,a.Qb=a.Kh,void 0===d&&(d=!!(a.A.X&131072)),d)a.load=a.L,a.Pb=a.I,a.Qb=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.pe=!1;else{if(!(a.ja&-4))a.Pb=a.wf,a.Qb=a.xf;else if(a.type&4096){6144==(a.type&6656)&&(a.Pb=a.wf);if(a.type&2048||!(a.type&512))a.Qb=a.xf;1024==(a.type&3072)&&(a.Pb==a.Ih&&(a.Pb=a.zj),a.Qb==a.Kh&&(a.Qb=a.Aj),a.zd=!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.Xh,a.Wh=a.Uk,a.Pb=a.Jh,a.Qb=a.Lh,a.sb=a.nc=0,a.hc=-1,a.pe=!1}
|
||||
function Qc(a){this.ca=a.model||8088;var b=a.stepping;this.pd=this.ca+(b?ca(b,16):0);b=0;switch(this.ca){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}hc.call(this,a,b);this.rh=61442;this.od=1792;this.qh=28672;this.ae=4;this.Da=255;this.B=80286<=this.ca?fb:eb;this.ma=Rc;this.uh=Sc;this.vh=Tc;this.wh=Uc;if(80186<=this.ca&&(this.ma=Rc.slice(),this.uh=Sc.slice(),this.vh=Tc.slice(),this.Da=31,this.ma[15]=Vc,this.ma[96]=Wc,this.ma[97]=Xc,this.ma[98]=Yc,this.ma[99]=Vc,this.ma[100]=Vc,
|
||||
this.ma[101]=Vc,this.ma[102]=Vc,this.ma[103]=Vc,this.ma[104]=Zc,this.ma[105]=$c,this.ma[106]=ad,this.ma[107]=bd,this.ma[108]=cd,this.ma[109]=dd,this.ma[110]=ed,this.ma[111]=fd,this.ma[192]=gd,this.ma[193]=hd,this.ma[200]=id,this.ma[201]=jd,this.ma[241]=kd,this.uh[7]=ld,this.vh[7]=ld,80286<=this.ca)){this.rh=2;this.od|=28672;this.ae=0;this.ma[15]=md;this.Zc=nd.slice();for(a=0;a<this.Zc.length;a++)this.Zc[a]||(this.Zc[a]=od);this.ma[84]=pd;this.ma[99]=rd;if(80386<=this.ca){var c;this.qh=0;this.od|=
|
||||
this.ma[101]=Vc,this.ma[102]=Vc,this.ma[103]=Vc,this.ma[104]=Zc,this.ma[105]=$c,this.ma[106]=ad,this.ma[107]=bd,this.ma[108]=cd,this.ma[109]=dd,this.ma[110]=ed,this.ma[111]=fd,this.ma[192]=gd,this.ma[193]=hd,this.ma[200]=id,this.ma[201]=jd,this.ma[241]=kd,this.uh[7]=ld,this.vh[7]=ld,80286<=this.ca)){this.rh=2;this.od|=28672;this.ae=0;this.ma[15]=md;this.Zc=nd.slice();for(a=0;a<this.Zc.length;a++)this.Zc[a]||(this.Zc[a]=od);this.ma[84]=pd;this.ma[99]=qd;if(80386<=this.ca){var c;this.qh=0;this.od|=
|
||||
196608;this.ma[100]=sd;this.ma[101]=td;this.ma[102]=ud;this.ma[103]=vd;for(c in B)this.Zc[+c]=B[c];80546<=this.pd&&80562>=this.pd&&(this.Zc[166]=wd,this.Zc[167]=xd)}}this.of=[];this.th=[];this.Vf=0;kc(this);this.ea.Le=this.ea.Hj=!1;this.yh=0;this.vc=this.S=[];this.da=this.xb=this.pb=this.mf=this.Yd=this.Fa=this.oc=0;yd(this)}Qa(Qc,hc);
|
||||
function Bb(a){var b;if(a.S===a.vc){a.S=Array(a.mf);a.pf=new q(null,0,0,5,null,a);sb(a.pf,a.Ia);for(b=0;b<a.mf;b++)a.S[b]=a.pf;a.Zd=new q;a.sh=Array(512);a.qf=0}else for(var c=0;c<a.nf.length;c++){b=a.nf[c];var d=a.S[b];512>a.qf&&(a.sh[a.qf++]=d);a.S[b]=a.pf}a.nf=[]}
|
||||
function Zb(a,b,c,d){var e=(b&-4194304)>>>20,f=a.vc[(a.dd+e&a.Fa)>>>a.da],g=f.Gd(e);if(!(g&1))return d||zd.call(a,b,!1,c),a.Zd;if(!(g&4)&&3==a.za)return d||zd.call(a,b,!0,c),a.Zd;var h=(b&4190208)>>>10,g=a.vc[((g&-4096)+h&a.Fa)>>>a.da],k=g.Gd(h);if(!(k&1))return d||zd.call(a,b,!1,c),a.Zd;if(!(k&4)&&3==a.za)return d||zd.call(a,b,!0,c),a.Zd;c=a.vc[((k&-4096)+(b&4095)&a.Fa)>>>a.da];if(d)return c;d=b>>>a.da;k=a.S[d];b=b&-4096;var m;0<a.qf?(m=a.sh[--a.qf],m.Qk(b)):m=new q(b,0,0,6);b=m;b.L=c;b.B=f;b.D=
|
||||
|
|
@ -262,7 +262,7 @@ this.F;break;case 131:c=L(this,this.D+N(this));this.C=this.F;break;case 132:c=L(
|
|||
3&7].call(this,c,b.call(this));switch(d){case 192:this.J=c;break;case 193:this.G=c;break;case 194:this.M=c;break;case 195:this.D=c;break;case 196:v(this,c);break;case 197:this.K=c;break;case 198:this.I=c;break;case 199:this.H=c;break;default:He(this,c)}}
|
||||
function Mh(a){var b=this.na(),c=b>>6,d,e;switch(b>>3&7){case 0:d=this.J;break;case 1:d=this.G;break;case 2:d=this.M;break;case 3:d=this.D;break;case 4:d=0;break;case 5:d=this.K;break;case 6:d=this.I;break;case 7:d=this.H}switch(b&7){case 0:e=this.J;break;case 1:e=this.G;break;case 2:e=this.M;break;case 3:e=this.D;break;case 4:e=w(this);this.va=this.rb;break;case 5:a?(e=this.K,this.va=this.rb):e=N(this);break;case 6:e=this.I;break;case 7:e=this.H}return(d<<c)+e|0}
|
||||
function md(){this.Zc[this.na()].call(this)}function pd(){y(this,w(this)&this.N);this.A-=this.B.Ac}function Wc(){this.la=this.ra;var a=w(this)&this.N;y(this,this.J&this.N);y(this,this.G&this.N);y(this,this.M&this.N);y(this,this.D&this.N);y(this,a);y(this,this.K&this.N);y(this,this.I&this.N);y(this,this.H&this.N);this.A-=this.B.Ui;this.la=-1}
|
||||
function Xc(){this.la=this.ra;this.H=this.H&~this.N|u(this);this.I=this.I&~this.N|u(this);this.K=this.K&~this.N|u(this);v(this,w(this)+this.U);this.D=this.D&~this.N|u(this);this.M=this.M&~this.N|u(this);this.G=this.G&~this.N|u(this);this.J=this.J&~this.N|u(this);this.A-=this.B.Si;this.la=-1}function Yc(){this.Z.call(this,bg)}function rd(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.qa.call(this,ag)}function sd(){this.L|=20;this.va=this.rb=this.Ta;this.A-=this.B.Rc}
|
||||
function Xc(){this.la=this.ra;this.H=this.H&~this.N|u(this);this.I=this.I&~this.N|u(this);this.K=this.K&~this.N|u(this);v(this,w(this)+this.U);this.D=this.D&~this.N|u(this);this.M=this.M&~this.N|u(this);this.G=this.G&~this.N|u(this);this.J=this.J&~this.N|u(this);this.A-=this.B.Si;this.la=-1}function Yc(){this.Z.call(this,bg)}function qd(){!(this.Pa&1)||this.X&131072?t.call(this,6):this.qa.call(this,ag)}function sd(){this.L|=20;this.va=this.rb=this.Ta;this.A-=this.B.Rc}
|
||||
function td(){this.L|=20;this.va=this.rb=this.Xa;this.A-=this.B.Rc}function ud(){this.L|=1024;this.wa&1024||(this.U^=6,this.N^=-65536,Wd(this));this.A-=this.B.Rc}function vd(){this.L|=2048;this.wa&2048||(this.Nc^=6,this.sa^=-65536,Dd(this));this.A-=this.B.Rc}function Zc(){y(this,this.Aa());this.A-=this.B.Ac}function $c(){this.Z.call(this,sg)}function ad(){y(this,this.O());this.A-=this.B.Ac}function bd(){this.Z.call(this,qg)}
|
||||
function cd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,1)&&(e=Ob(this.ha,e,1,this.Y-b-1),this.Mc(this.pa.Qb(this.H&c,1),e),this.H=this.H&~c|this.H+(this.X&1024?-1:1)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
|
||||
function dd(){var a=1,b=0,c=this.sa,d=5;this.wa&192&&(a=this.G&c,b=1,this.wa&256&&(d=4));if(a--){var e=this.M&65535;Be(this,e,this.U)&&(e=Ob(this.ha,e,this.U,this.Y-b-1),this.Xb(this.pa.Qb(this.H&c,this.U),e),this.H=this.H&~c|this.H+(this.X&1024?-this.U:this.U)&c,this.G=this.G&~c|this.G-b&c,this.A-=d,a&&(ge(this),this.L|=256))}}
|
||||
|
|
@ -432,10 +432,11 @@ function Ek(a,b,c){var d=b;if(65<=b&&90>=b)!(a.bc&515)==c&&(d=b+32);else if(97<=
|
|||
function vk(a,b,c){var d=!0,e=!1,f=!1,g=b.keyCode,h=Ek(a,g,!0);a.ig&&h==U["`"]&&(g=h=27);if(X[g+1E3])if(h+=1E3,2==b.location&&(h+=2E3),xk(a,h,!1,c)){if(20==g||144==g||145==g)a.W||(c=e=!0);if(!(c||91!=g&&93!=g))for(var k=0;k<a.B.length;k++){var m=a.B[k];m.Me=!1;0<m.cd&&(m.cd=0)}}else 8==g&&8==(a.bc&40)&&(h=4008),d=!1;else if(X[h]&&a.bc&60&&(d=!1),d&&c||a.bc&192)f=!0;d||b.preventDefault();f||a.Y&&d||(c?wk(a,h,e):yk(a,h)||(b=Ek(a,g,!1),b!=h&&yk(a,b)));return d}
|
||||
function Dk(a,b,c){var d=!1;xk(a,b,!0,c);var e=X[b]||X[b+1E3];if(void 0!==e){14==e&&40==(a.bc&40)&&(e=83);var d=[],f=e&255;if(83<f&&83==a.Z)return!1;d.push(f|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;e>>>=8;){var g=0,h=e&255;224==f||225==f?d.push(f|(c?0:128)):(42==h?a.C&3||a.C&512&&b||(g=h):29==h?a.C&12||(g=h):56==h?a.C&48||(g=h):d.push(f|(c?0:128)),g&&(c?d.unshift(g):d.push(g|128)))}for(c=0;c<d.length;c++)e=a,f=d[c],e.Ob&&(20>e.Ob.length?(e.Ob.push(f),1==e.Ob.length&&e.P&&Yj(e.P,f)):20==e.Ob.length&&
|
||||
e.Ob.push(255));d=!0}return d}Ea(function(){for(var a=Za(document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new nk(d);Ya(d,c)}});
|
||||
function Y(a,b,c,d,e){Ia.call(this,"Video",a,Y);this.ca=a.model;var f=Fk[this.ca]||Fk.mda;this.Ra=f[0];this.Wc=a.memory||0;this.qd=a.switches;this.la=a.mode;if(null==this.la||null==Gk[this.la])this.la=f[1];this.Nb=a.charCols;this.wc=a.charRows;if(void 0===this.Nb||void 0===this.wc)this.Nb=Gk[this.la][0],this.wc=Gk[this.la][1];this.da=a.screenWidth;this.pa=a.screenHeight;this.dd=a.scale;this.Zd=12<=Math.round(this.da/this.Nb);this.Y=b;this.W=c;this.G=(this.ae=d)||b||null;this.rd=a.touchScreen;this.xc=
|
||||
Hk;this.K=null;this.Yd=a.autoLock;this.cb=this.Fb=0;this.xa=[];this.oa=Array(this.Ra==ek?256:16);this.La=!1;var g=this;this.$c=ya("Gecko/");b=["","moz","webkit","ms"];if(this.ba=e)if(this.ba.ke=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ba.ke){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){Ik(g,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
|
||||
document.msFullscreenElement?!0:!1)},!1);break}for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenerror","on"+c in document){document.addEventListener(c,function(){Ik(g,null)},!1);break}}this.G&&(this.G.onfocus=function(){return g.Nf(!0)},this.G.onblur=function(){return g.Nf(!1)},this.G.Pd=this.G.requestPointerLock||this.G.mozRequestPointerLock||this.G.webkitRequestPointerLock,this.G.pj=this.G.exitPointerLock||this.G.mozExitPointerLock||this.G.webkitExitPointerLock,this.G.Pd&&(e=function(){g.bf(document.pointerLockElement===
|
||||
g.G||document.mozPointerLockElement===g.G||document.webkitPointerLockElement===g.G)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=qa()+"/api/v1/dump?file="+a+"&format=bytes"),pa(a,null,!0,function(a,b,c){Jk(g,a,b,c)})}Qa(Y);
|
||||
function Y(a,b,c,d,e){var f=this;this.$c=ya("Gecko/");var g=["","moz","webkit","ms"];Ia.call(this,"Video",a,Y);this.ca=a.model;var h=Fk[this.ca]||Fk.mda;this.Ra=h[0];this.Wc=a.memory||0;this.qd=a.switches;this.la=a.mode;if(null==this.la||null==Gk[this.la])this.la=h[1];this.Nb=a.charCols;this.wc=a.charRows;if(void 0===this.Nb||void 0===this.wc)this.Nb=Gk[this.la][0],this.wc=Gk[this.la][1];this.da=a.screenWidth;this.pa=a.screenHeight;this.dd=a.scale;this.Zd=12<=Math.round(this.da/this.Nb);this.Y=b;
|
||||
this.W=c;this.G=(this.ae=d)||b||null;b=a.smoothing;(c=La.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<g.length;c++)d=(d=g[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",this.W[d]=b;this.rd=a.touchScreen;this.xc=Hk;this.K=null;this.Yd=a.autoLock;this.cb=this.Fb=0;this.xa=[];this.oa=Array(this.Ra==ek?256:16);this.La=!1;if(this.ba=e)if(this.ba.ke=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ba.ke){for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenchange",
|
||||
"on"+d in document){document.addEventListener(d,function(){Ik(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<g.length;c++)if(d=g[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Ik(f,null)},!1);break}}this.G&&(this.G.onfocus=function(){return f.Nf(!0)},this.G.onblur=function(){return f.Nf(!1)},this.G.Pd=this.G.requestPointerLock||this.G.mozRequestPointerLock||this.G.webkitRequestPointerLock,
|
||||
this.G.pj=this.G.exitPointerLock||this.G.mozExitPointerLock||this.G.webkitExitPointerLock,this.G.Pd&&(e=function(){f.bf(document.pointerLockElement===f.G||document.mozPointerLockElement===f.G||document.webkitPointerLockElement===f.G)},"onpointerlockchange"in document?document.addEventListener("pointerlockchange",e,!1):"onmozpointerlockchange"in document?document.addEventListener("mozpointerlockchange",e,!1):"onwebkitpointerlockchange"in document&&document.addEventListener("webkitpointerlockchange",
|
||||
e,!1)));if(a=a.fontROM)"json"!=ga(a)&&(a=qa()+"/api/v1/dump?file="+a+"&format=bytes"),pa(a,null,!0,function(a,b,c){Jk(f,a,b,c)})}Qa(Y);
|
||||
var ek=7,Fk={mda:[1,7],cga:[3,3],ega:[5,3],vga:[ek,3]},Kk={2:{Jf:15700,If:208,Of:85,Pf:96},3:{Jf:18432,If:364,Of:85,Pf:96},4:{Jf:21850,If:364,Of:85,Pf:96},7:{Jf:16700,If:480,Of:85,Pf:83}},Lk={6:[1,3,!0],7:[2,3,!0],8:[6,3,!0],9:[4,3,!0],10:[3,1,!0],11:[3,2,!0],0:[1,3,!1],1:[2,3,!1],2:[6,3,!1],3:[4,3,!1],4:[3,1,!1],5:[3,2,!1]},Gk=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192],[80,25,1,0,1]];Gk[13]=[320,200,8];Gk[14]=[640,200,8];Gk[15]=[640,350,8];Gk[16]=[640,350,8];
|
||||
Gk[17]=[640,480,8];Gk[18]=[640,480,8];Gk[19]=[320,200,1];Gk[20]=[320,240,4];Gk[21]=[320,400,4];Gk[0]=Gk[1];Gk[2]=Gk[3];Gk[5]=Gk[4];
|
||||
var Mk=[[0,0,0,255],[127,192,127,255],[127,192,127,255],[127,255,127,255],[127,255,127,255]],Nk=[0,1,2,2,2,2,2,2,0,3,4,4,4,4,4,4],Ok=[[0,0,0,255],[0,0,170,255],[0,170,0,255],[0,170,170,255],[170,0,0,255],[170,0,170,255],[170,85,0,255],[170,170,170,255],[85,85,85,255],[85,85,255,255],[85,255,85,255],[85,255,255,255],[255,85,85,255],[255,85,255,255],[255,255,85,255],[255,255,255,255]],Pk=[2,4,6],Qk=[3,5,7],Rk=[0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63],Sk=[0,255,65280,65535,16711680,16711935,16776960,
|
||||
|
|
@ -472,8 +473,8 @@ function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e
|
|||
function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;d<c.length;d++)a.oa[d+1]=Ok[c[d]];return a.oa}if(a.S===a.Cb)return Ok;a.La&&b&&!a.oa[16]&&(a.La=!1);if(!a.La){var c=a.B,d=c.ze,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;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 dk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d}
|
||||
function ol(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=sl(a);null!=a.Xa[0]&&tl(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]&&(tl(a,1,a.Xa[1],d,e,14,a.Ab,Mk,Nk)&&(c=!0),a.Ja&&tl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function tl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ul(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Zd&&ul(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
|
||||
function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,qd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
|
||||
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=qd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=(ac<<J)+If,wj=cn||dn&128>>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
|
||||
function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,rd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
|
||||
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=rd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=(ac<<J)+If,wj=cn||dn&128>>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
|
||||
function rl(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)xl(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ia!=c&&(xl(a),a.ia=c);d=d-b+1;if(a.td!=b||a.Gc!=d)a.td=b,a.Gc=d;a.Da=e+1;wl(a)}}}
|
||||
function xl(a){if(0<=a.ia){if(void 0!==a.R){var b=a.R[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.R[a.ia]=b}}a.ia=-1}}
|
||||
function zl(a){var b,c=a.D;a.Zc=!1;var d=c.Hd[5];if(null!=d){b=1024;var e=0,f=c.Hd[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==ek&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.Be[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Zc=!0));b|=e}return b}
|
||||
|
|
@ -487,7 +488,7 @@ function yl(a,b,c,d,e){var f=d&255,g=d>>8;d=g&15;var h=a.xa[a.I];h.Ge&&(d=h.Ge[d
|
|||
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.W.fillStyle=h.be[d],a.W.fillRect(b,c+f,a.ra,g)))}
|
||||
function kl(a,b){if(a.ea.Rb){var c=!1,d=a.D;d&&(d!==a.B?d.Lc&8&&(c=!0):d.Ud&32&&(c=!0));if(c||b){if(b)Cl(a);else if(void 0===a.R)return;var e=!1;!(b||++a.Id&15)&&0<=a.Ea&&(a.Ea++,e=!0);var f=0,g=a.pd,h=a.cb,c=h,k=c+a.Fb;19<=a.va&&(h=c=655360,k=c+65536);if(Dl(a,d)&8||d.xe&&d.xe<d.gh){var m=(d.ab[12]<<8)+d.ab[13]|0;d.ed!==m&&(d.ed=m,Bl(a));d.xe=0}m=d.ed;a.I&&(m<<=1);var c=c+m,p=a.fb;5<=a.Ra&&d.ab[19]&&d.ab[19]<<1!=d.ab[1]+1&&(a.Ta=d.ab[19]<<(a.I?1:d.ab[20]&64?3:4),p=(a.Ta*(a.L-1)+a.H)/a.Hb|0,7>=a.va&&
|
||||
(p<<=1));c+p>k&&(p=k-c,0>p&&(p=0));k=c+p;if(m=!b&&a.qa){for(var m=a.ha,x=!0,r=c>>>m.da;0<p&&r<m.S.length;)m.S[r].Ha&&(m.S[r].Ha=x=!1,m.S[r].Ph=!0),p-=m.xb,r++;m=x}if(m){if(!e)return;if(!a.za){f=a.ia-d.ed;if(0>f)return;g=f+1}}if(a.I){if(a.xa[a.I]){d=f;f=0;e=a.za=0;h=1048575;p=a.D.Lc&32;5<=a.Ra&&(p=a.D.Kc[16]&8);m=a.ia-a.D.ed;p&&(e=32768,h&=~e,a.Ea&2||(h&=-65537));for(c+=d<<1;c<k&&d<g;)p=Lb(a.ha,c),p|=65536,p&e&&(a.za++,p&=h),d==m&&(p|=a.Ea&1?131072:0),a.qa&&p===a.R[d]||(yl(a,d%a.H,d/a.H|0,p,a.Ga),
|
||||
a.R[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.W.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);wl(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=sl(a,h),x=p=0,r=a.H,E=0,J=a.L,W=0;k<g;){z=Lb(a.ha,k);if(a.qa&&z===a.R[d])p+=f;else{a.R[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<r&&(r=p);for(var va=0;va<f;va++){var qd=(z&(da>>=h))>>(ua-=h);vl(a.Oa,p++,x,m[qd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
|
||||
a.R[d]=p,f++),c+=2,d++;a.qa=!0;f&&a.Ga&&a.W.drawImage(a.Fa,0,0,a.pb,a.qb,a.yc,a.zc,a.ic,a.mc);wl(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=sl(a,h),x=p=0,r=a.H,E=0,J=a.L,W=0;k<g;){z=Lb(a.ha,k);if(a.qa&&z===a.R[d])p+=f;else{a.R[d]=z;z=z>>8|(z&255)<<8;var da=e,ua=16;p<r&&(r=p);for(var va=0;va<f;va++){var rd=(z&(da>>=h))>>(ua-=h);vl(a.Oa,p++,x,m[rd])}p>E&&(E=p);x<J&&(J=x);x>=W&&(W=x+1)}k+=2;d++;if(p>=a.H){p=0;x+=2;if(x>a.L)break;x==a.L&&(x=1,k=c+a.fc)}}a.qa=
|
||||
!0;r<a.H&&(a.Ga.putImageData(a.Oa,0,0,r,J,E-r,W-J),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else if(a.Zc){g=h;f=a.za=0;e=sl(a,8);h=a.D.ud;p=m=0;x=a.H;r=0;E=a.L;J=0;W=a.D.Be[4]&8?4:1;z=a.D.Kc[19]&15;for(da=a.Ta>a.H?a.Ta-a.H-z>>3:0;c<k;){d=h[c-g];va=4;z||(a.qa&&d===a.R[f]?(m+=va,va=0):a.R[f]=d,f++);if(va){m<x&&(x=m);for(ua=0;ua<va;ua++)vl(a.Oa,m++,p,e[d&255]),d>>=8;m>r&&(r=m);p<E&&(E=p);p>=J&&(J=p+1)}c+=W;if(m>=a.H){m=0;if(++p>a.L)break;c+=da}}z||(a.qa=!0);x<a.H&&(a.Ga.putImageData(a.Oa,0,0,x,
|
||||
E,r-x,J-E),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}else{g=h;d=a.za=0;f=sl(a);e=a.D.ud;m=h=0;p=a.H;x=0;r=a.L;E=0;J=a.D.Kc[19]&15;for(W=a.Ta>a.H?a.Ta-a.H-J>>3:0;c<k;){z=c++-g;z=e[z];ua=8;J?h?(da=a.H-h,ua>da&&(ua=da)):(z<<=J,ua-=J,a.qa=!1):(a.qa&&z===a.R[d]?(h+=ua,ua=0):a.R[d]=z,d++);if(ua){h<p&&(p=h);for(da=0;da<ua;da++)va=Tk[z&2155905152]||0,vl(a.Oa,h++,m,f[va]),z<<=1;h>x&&(x=h);m<r&&(r=m);m>=E&&(E=m+1)}if(h>=a.H){h=0;if(++m>a.L)break;c+=W}}J||(a.qa=!0);p<a.H&&(a.Ga.putImageData(a.Oa,0,0,p,
|
||||
r,x-p,E-r),a.W.drawImage(a.Fa,0,0,a.H,a.L,0,0,a.da,a.pa))}}}}function Dl(a,b){var c=0,d=tc(a.A)-b.wg;0>d&&(b.wg=d,d=-d|0);d%b.sg>b.Wk&&(c|=1);d%b.vg>b.Yk&&(c|=9);b.gh=d/b.vg|0;return c}l.xk=function(){var a=this.Z,b;a.cc&&(b=a.sc);return b};l.Ll=function(a,b){var c=this.Z;c.Qf=c.sc;c.sc=b&31};l.wk=function(){return El(this.Z)};l.Kl=function(a,b){Fl(this,this.Z,b)};l.yk=function(){return this.Z.Lc};l.Ml=function(a,b){this.Z.Lc=b;ql(this,!1)};l.zk=function(){return Gl(this,this.Z)};
|
||||
|
|
@ -524,7 +525,7 @@ function am(a,b,c){Ia.call(this,"Disk",{id:a.lf+".disk"+ea(++bm,4)},am);this.con
|
|||
l.Ub=function(a,b){if(this.D){var c,d=0;if(this.S&&!ra("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=dm(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.se(),c+="&user="+this.controller.Ad(),pa(qa()+"/api/v1/disk?"+c,null,!0),this.D=!1);!d&&a&&this.controller.Ba(this.B+" saved")}return!0};
|
||||
function cm(a,b,c,d,e,f){a.mode=b;a.ib=c;a.jb=d;a.eb=e;a.nb=f;a.A=[];if("preload"!=a.mode){b=Array(a.ib);for(c=0;c<b.length;c++){d=Array(a.jb);for(e=0;e<d.length;e++){f=Array(a.eb);for(var g=1;g<=f.length;g++)f[g-1]=em(null,c,e,g,a.nb,"local"==a.mode?0:null);d[e]=f}b[c]=d}a.A=b}a.L=null}
|
||||
l.load=function(a,b,c,d,e){var f=b;if(this.K)return!0;this.B=a;this.H=b;this.nh=fa(b);var g=this;this.K=d;this.ha=e||this.controller;if(c){var h=new FileReader;h.onload=function(){var a=h.result,b,c=a?a.byteLength:0,d=ba[c];if(d){g.ib=d[0];g.jb=d[1];g.eb=d[2];g.nb=512;b=g.nb>>2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.ib);for(c=0;c<g.A.length;c++)for(var f=g.A[c]=Array(g.jb),E=0;E<f.length;E++)for(var J=f[E]=Array(g.eb),W=0;W<J.length;W++){for(var da=em(null,c,E,W+1,g.nb,0),ua=da.data,va=0;va<
|
||||
b;va++,e+=4)var qd=ua[va]=a.getInt32(e,!0),d=d+qd&-1;da.Dc=b;J[W]=da}g.L=d;b=g}else g.Ba("Unrecognized diskette format ("+c+" bytes)");g.K&&(g.K.call(g.controller,g.C,b,g.B,g.H),g.K=null)};h.readAsArrayBuffer(c);return!0}0>b.indexOf("/api/v1/dump")&&(a=ga(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=fm(this,b),this.Af=!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=ga(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=fm(this,b),this.Af=!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"):
|
||||
ha(b,"/")&&(c="dir"),f=qa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.oe?"":d)+"&format=json"));return!!pa(f,null,!0,function(a,b,c){gm(g,a,b,c)})};
|
||||
function gm(a,b,c,d){var e=null;a.re=!1;var f=0>d&&a.ba&&!a.ba.ea.Rb;if(a.Af)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{Sa(a.controller.lf,b,c);try{if(0<fa(a.nh,!0).toLowerCase().indexOf("-readonly"))a.re=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.re=!0)}var h;"<"==c.substr(0,1)?h=["Missing disk image: "+a.B]:h=0>
|
||||
c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+c+")");if(h.length)if(1==h.length)n(h[0]);else{a.ib=h.length;a.jb=h[0].length;a.eb=h[0][0].length;var k=h[0][0][0];a.nb=k&&k.length||512;for(d=c=0;d<a.ib;d++)for(f=0;f<a.jb;f++)for(g=0;g<a.eb;g++)if(k=h[d][f][g]){var m=k.length;void 0===m&&(m=k.length=512);var m=m>>2,p=k.pattern;void 0===p&&(p=k.pattern=0);var x=k.data;if(void 0===x){var r=k.bytes;if(void 0!==r&&r.length){for(var z=
|
||||
|
|
|
|||
|
|
@ -53,6 +53,10 @@ Attributes
|
|||
true scales text modes to fill the canvas;
|
||||
false centers text modes on the canvas (this generally provides the sharpest rendering).
|
||||
|
||||
* *smoothing* (optional; default depends on the browser)
|
||||
|
||||
true enables HTML5 canvas image smoothing, false disables it; if not specified, then the browser's default is used.
|
||||
|
||||
Also supports the attributes of *[Component](/docs/pcjs/component/)*.
|
||||
|
||||
Bindings
|
||||
|
|
|
|||
|
|
@ -87,6 +87,10 @@ if (NODE) {
|
|||
*/
|
||||
function Video(parmsVideo, canvas, context, textarea, container)
|
||||
{
|
||||
var video = this;
|
||||
this.fGecko = web.isUserAgent("Gecko/");
|
||||
var i, sEvent, asWebPrefixes = ['', 'moz', 'webkit', 'ms'];
|
||||
|
||||
Component.call(this, "Video", parmsVideo, Video, Messages.VIDEO);
|
||||
|
||||
this.cxScreen = parmsVideo['screenWidth'];
|
||||
|
|
@ -107,10 +111,27 @@ function Video(parmsVideo, canvas, context, textarea, container)
|
|||
this.textareaScreen = textarea;
|
||||
this.inputScreen = textarea || canvas || null;
|
||||
|
||||
this.contextScreen['webkitImageSmoothingEnabled'] = false;
|
||||
this.contextScreen['mozImageSmoothingEnabled'] = false;
|
||||
this.contextScreen['msImageSmoothingEnabled'] = false;
|
||||
this.contextScreen['imageSmoothingEnabled'] = false;
|
||||
/*
|
||||
* Support for disabling (or, less commonly, enabling) image smoothing, which all browsers
|
||||
* seem to support now (well, OK, I still have to test the latest MS Edge browser), despite
|
||||
* it still being labelled "experimental technology". Let's hope the browsers standardize
|
||||
* on this. I see other options emerging, like the CSS property "image-rendering: pixelated"
|
||||
* that's apparently been added to Chrome. Sigh.
|
||||
*/
|
||||
var fSmoothing = parmsVideo['smoothing'];
|
||||
var sSmoothing = Component.parmsURL['smoothing'];
|
||||
if (sSmoothing) fSmoothing = (sSmoothing == "true")? true : false;
|
||||
if (fSmoothing != null) {
|
||||
for (i = 0; i < asWebPrefixes.length; i++) {
|
||||
sEvent = asWebPrefixes[i];
|
||||
if (!sEvent) {
|
||||
sEvent = 'imageSmoothingEnabled';
|
||||
} else {
|
||||
sEvent += 'ImageSmoothingEnabled';
|
||||
}
|
||||
this.contextScreen[sEvent] = fSmoothing;
|
||||
}
|
||||
}
|
||||
|
||||
this.rotateScreen = parmsVideo['screenRotate'];
|
||||
if (this.rotateScreen == 90) {
|
||||
|
|
@ -135,6 +156,39 @@ function Video(parmsVideo, canvas, context, textarea, container)
|
|||
this.canvasBuffer.width = cxBuffer;
|
||||
this.canvasBuffer.height = cyBuffer;
|
||||
this.contextBuffer = this.canvasBuffer.getContext("2d");
|
||||
|
||||
/*
|
||||
* Here's the gross code to handle full-screen support across all supported browsers. The lack of standards
|
||||
* is exasperating; browsers can't agree on 'full' or 'Full, 'request' or 'Request', 'screen' or 'Screen', and
|
||||
* while some browsers honor other browser prefixes, most browsers don't.
|
||||
*/
|
||||
this.container = container;
|
||||
if (this.container) {
|
||||
this.container.doFullScreen = container['requestFullscreen'] || container['msRequestFullscreen'] || container['mozRequestFullScreen'] || container['webkitRequestFullscreen'];
|
||||
if (this.container.doFullScreen) {
|
||||
for (i = 0; i < asWebPrefixes.length; i++) {
|
||||
sEvent = asWebPrefixes[i] + 'fullscreenchange';
|
||||
if ('on' + sEvent in document) {
|
||||
var onFullScreenChange = function() {
|
||||
var fFullScreen = (document['fullscreenElement'] || document['mozFullScreenElement'] || document['webkitFullscreenElement'] || document['msFullscreenElement']);
|
||||
video.notifyFullScreen(fFullScreen? true : false);
|
||||
};
|
||||
document.addEventListener(sEvent, onFullScreenChange, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < asWebPrefixes.length; i++) {
|
||||
sEvent = asWebPrefixes[i] + 'fullscreenerror';
|
||||
if ('on' + sEvent in document) {
|
||||
var onFullScreenError = function() {
|
||||
video.notifyFullScreen(null);
|
||||
};
|
||||
document.addEventListener(sEvent, onFullScreenError, false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.subclass(Video);
|
||||
|
|
@ -170,6 +224,137 @@ Video.prototype.initBus = function(cmp, bus, cpu, dbg)
|
|||
this.setReady();
|
||||
};
|
||||
|
||||
/**
|
||||
* setBinding(sHTMLType, sBinding, control, sValue)
|
||||
*
|
||||
* @this {Video}
|
||||
* @param {string|null} sHTMLType is the type of the HTML control (eg, "button", "list", "text", "submit", "textarea", "canvas")
|
||||
* @param {string} sBinding is the value of the 'binding' parameter stored in the HTML control's "data-value" attribute (eg, "refresh")
|
||||
* @param {Object} control is the HTML control DOM object (eg, HTMLButtonElement)
|
||||
* @param {string} [sValue] optional data value
|
||||
* @return {boolean} true if binding was successful, false if unrecognized binding request
|
||||
*/
|
||||
Video.prototype.setBinding = function(sHTMLType, sBinding, control, sValue)
|
||||
{
|
||||
var video = this;
|
||||
|
||||
switch (sBinding) {
|
||||
case "fullScreen":
|
||||
this.bindings[sBinding] = control;
|
||||
if (this.container && this.container.doFullScreen) {
|
||||
control.onclick = function onClickFullScreen() {
|
||||
if (DEBUG) video.printMessage("fullScreen()");
|
||||
video.doFullScreen();
|
||||
};
|
||||
} else {
|
||||
if (DEBUG) this.log("FullScreen API not available");
|
||||
control.parentNode.removeChild(/** @type {Node} */ (control));
|
||||
}
|
||||
return true;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
/**
|
||||
* doFullScreen()
|
||||
*
|
||||
* @this {Video}
|
||||
* @return {boolean} true if request successful, false if not (eg, failed OR not supported)
|
||||
*/
|
||||
Video.prototype.doFullScreen = function()
|
||||
{
|
||||
var fSuccess = false;
|
||||
if (this.container) {
|
||||
if (this.container.doFullScreen) {
|
||||
/*
|
||||
* Styling the container with a width of "100%" and a height of "auto" works great when the aspect ratio
|
||||
* of our virtual screen is at least roughly equivalent to the physical screen's aspect ratio, but now that
|
||||
* we support virtual VGA screens with an aspect ratio of 1.33, that's very much out of step with modern
|
||||
* wide-screen monitors, which usually have an aspect ratio of 1.6 or greater.
|
||||
*
|
||||
* And unfortunately, none of the browsers I've tested appear to make any attempt to scale our container to
|
||||
* the physical screen's dimensions, so the bottom of our screen gets clipped. To prevent that, I reduce
|
||||
* the width from 100% to whatever percentage will accommodate the entire height of the virtual screen.
|
||||
*
|
||||
* NOTE: Mozilla recommends both a width and a height of "100%", but all my tests suggest that using "auto"
|
||||
* for height works equally well, so I'm sticking with it, because "auto" is also consistent with how I've
|
||||
* implemented a responsive canvas when the browser window is being resized.
|
||||
*/
|
||||
var sWidth = "100%";
|
||||
var sHeight = "auto";
|
||||
if (screen && screen.width && screen.height) {
|
||||
var aspectPhys = screen.width / screen.height;
|
||||
var aspectVirt = this.cxScreen / this.cyScreen;
|
||||
if (aspectPhys > aspectVirt) {
|
||||
sWidth = Math.round(aspectVirt / aspectPhys * 100) + '%';
|
||||
}
|
||||
// TODO: We may need to someday consider the case of a physical screen with an aspect ratio < 1.0....
|
||||
}
|
||||
if (!this.fGecko) {
|
||||
this.container.style.width = sWidth;
|
||||
this.container.style.height = sHeight;
|
||||
} else {
|
||||
/*
|
||||
* Sadly, the above code doesn't work for Firefox, because as http://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode
|
||||
* explains:
|
||||
*
|
||||
* 'It's worth noting a key difference here between the Gecko and WebKit implementations at this time:
|
||||
* Gecko automatically adds CSS rules to the element to stretch it to fill the screen: "width: 100%; height: 100%".
|
||||
*
|
||||
* Which would be OK if Gecko did that BEFORE we're called, but apparently it does that AFTER, effectively
|
||||
* overwriting our careful calculations. So we style the inner element (canvasScreen) instead, which
|
||||
* requires even more work to ensure that the canvas is properly centered. FYI, this solution is consistent
|
||||
* with Mozilla's recommendation for working around their automatic CSS rules:
|
||||
*
|
||||
* '[I]f you're trying to emulate WebKit's behavior on Gecko, you need to place the element you want
|
||||
* to present inside another element, which you'll make fullscreen instead, and use CSS rules to adjust
|
||||
* the inner element to match the appearance you want.'
|
||||
*/
|
||||
this.canvasScreen.style.width = sWidth;
|
||||
this.canvasScreen.style.width = sWidth;
|
||||
this.canvasScreen.style.display = "block";
|
||||
this.canvasScreen.style.margin = "auto";
|
||||
}
|
||||
this.container.style.backgroundColor = "black";
|
||||
this.container.doFullScreen();
|
||||
fSuccess = true;
|
||||
}
|
||||
this.setFocus();
|
||||
}
|
||||
return fSuccess;
|
||||
};
|
||||
|
||||
/**
|
||||
* notifyFullScreen(fFullScreen)
|
||||
*
|
||||
* @this {Video}
|
||||
* @param {boolean|null} fFullScreen (null if there was a full-screen error)
|
||||
*/
|
||||
Video.prototype.notifyFullScreen = function(fFullScreen)
|
||||
{
|
||||
if (!fFullScreen && this.container) {
|
||||
if (!this.fGecko) {
|
||||
this.container.style.width = this.container.style.height = "";
|
||||
} else {
|
||||
this.canvasScreen.style.width = this.canvasScreen.style.height = "";
|
||||
}
|
||||
}
|
||||
this.printMessage("notifyFullScreen(" + fFullScreen + ")", true);
|
||||
};
|
||||
|
||||
/**
|
||||
* setFocus()
|
||||
*
|
||||
* @this {Video}
|
||||
*/
|
||||
Video.prototype.setFocus = function()
|
||||
{
|
||||
if (this.inputScreen) this.inputScreen.focus();
|
||||
};
|
||||
|
||||
/**
|
||||
* getRefreshRate()
|
||||
*
|
||||
|
|
|
|||
|
|
@ -100,6 +100,10 @@ if (NODE) {
|
|||
*/
|
||||
function Video(parmsVideo, canvas, context, textarea, container)
|
||||
{
|
||||
var video = this;
|
||||
this.fGecko = web.isUserAgent("Gecko/");
|
||||
var i, sEvent, asWebPrefixes = ['', 'moz', 'webkit', 'ms'];
|
||||
|
||||
Component.call(this, "Video", parmsVideo, Video, Messages.VIDEO);
|
||||
|
||||
/*
|
||||
|
|
@ -152,6 +156,28 @@ function Video(parmsVideo, canvas, context, textarea, container)
|
|||
this.textareaScreen = textarea;
|
||||
this.inputScreen = textarea || canvas || null;
|
||||
|
||||
/*
|
||||
* Support for disabling (or, less commonly, enabling) image smoothing, which all browsers
|
||||
* seem to support now (well, OK, I still have to test the latest MS Edge browser), despite
|
||||
* it still being labelled "experimental technology". Let's hope the browsers standardize
|
||||
* on this. I see other options emerging, like the CSS property "image-rendering: pixelated"
|
||||
* that's apparently been added to Chrome. Sigh.
|
||||
*/
|
||||
var fSmoothing = parmsVideo['smoothing'];
|
||||
var sSmoothing = Component.parmsURL['smoothing'];
|
||||
if (sSmoothing) fSmoothing = (sSmoothing == "true")? true : false;
|
||||
if (fSmoothing != null) {
|
||||
for (i = 0; i < asWebPrefixes.length; i++) {
|
||||
sEvent = asWebPrefixes[i];
|
||||
if (!sEvent) {
|
||||
sEvent = 'imageSmoothingEnabled';
|
||||
} else {
|
||||
sEvent += 'ImageSmoothingEnabled';
|
||||
}
|
||||
this.contextScreen[sEvent] = fSmoothing;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* initBus() will determine touch-screen support; for now, just record values and set defaults.
|
||||
*/
|
||||
|
|
@ -206,16 +232,12 @@ function Video(parmsVideo, canvas, context, textarea, container)
|
|||
* is exasperating; browsers can't agree on 'full' or 'Full, 'request' or 'Request', 'screen' or 'Screen', and
|
||||
* while some browsers honor other browser prefixes, most browsers don't.
|
||||
*/
|
||||
var video = this;
|
||||
this.fGecko = web.isUserAgent("Gecko/");
|
||||
var i, sEvent, asPrefixes = ['', 'moz', 'webkit', 'ms'];
|
||||
|
||||
this.container = container;
|
||||
if (this.container) {
|
||||
this.container.doFullScreen = container['requestFullscreen'] || container['msRequestFullscreen'] || container['mozRequestFullScreen'] || container['webkitRequestFullscreen'];
|
||||
if (this.container.doFullScreen) {
|
||||
for (i = 0; i < asPrefixes.length; i++) {
|
||||
sEvent = asPrefixes[i] + 'fullscreenchange';
|
||||
for (i = 0; i < asWebPrefixes.length; i++) {
|
||||
sEvent = asWebPrefixes[i] + 'fullscreenchange';
|
||||
if ('on' + sEvent in document) {
|
||||
var onFullScreenChange = function() {
|
||||
var fFullScreen = (document['fullscreenElement'] || document['mozFullScreenElement'] || document['webkitFullscreenElement'] || document['msFullscreenElement']);
|
||||
|
|
@ -225,8 +247,8 @@ function Video(parmsVideo, canvas, context, textarea, container)
|
|||
break;
|
||||
}
|
||||
}
|
||||
for (i = 0; i < asPrefixes.length; i++) {
|
||||
sEvent = asPrefixes[i] + 'fullscreenerror';
|
||||
for (i = 0; i < asWebPrefixes.length; i++) {
|
||||
sEvent = asWebPrefixes[i] + 'fullscreenerror';
|
||||
if ('on' + sEvent in document) {
|
||||
var onFullScreenError = function() {
|
||||
video.notifyFullScreen(null);
|
||||
|
|
@ -241,7 +263,7 @@ function Video(parmsVideo, canvas, context, textarea, container)
|
|||
/*
|
||||
* More gross code to handle pointer-locking support across all supported browsers.
|
||||
*
|
||||
* TODO: Consider "upgrading" this code to use the same asPrefixes array as above, especially once Microsoft
|
||||
* TODO: Consider "upgrading" this code to use the same asWebPrefixes array as above, especially once Microsoft
|
||||
* finally releases a browser that supports pointer-locking (post-Windows 10?)
|
||||
*/
|
||||
if (this.inputScreen) {
|
||||
|
|
|
|||
|
|
@ -1099,6 +1099,12 @@
|
|||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="smoothing">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@smoothing"><xsl:value-of select="@smoothing"/></xsl:when>
|
||||
<xsl:otherwise>null</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="interruptRate">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@interruptRate"><xsl:value-of select="@interruptRate"/></xsl:when>
|
||||
|
|
@ -1114,7 +1120,7 @@
|
|||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">video</xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,screenColor:'<xsl:value-of select="$screenColor"/>',screenRotate:<xsl:value-of select="$screenRotate"/>,bufferAddr:<xsl:value-of select="$bufferAddr"/>,bufferCols:<xsl:value-of select="$bufferCols"/>,bufferRows:<xsl:value-of select="$bufferRows"/>,bufferBits:<xsl:value-of select="$bufferBits"/>,bufferLeft:<xsl:value-of select="$bufferLeft"/>,bufferRotate:<xsl:value-of select="$bufferRotate"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',touchScreen:'<xsl:value-of select="$touchScreen"/>',autoLock:<xsl:value-of select="$autoLock"/>,aspectRatio:<xsl:value-of select="$aspectRatio"/>,interruptRate:<xsl:value-of select="$interruptRate"/>,refreshRate:<xsl:value-of select="$refreshRate"/></xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,screenColor:'<xsl:value-of select="$screenColor"/>',screenRotate:<xsl:value-of select="$screenRotate"/>,bufferAddr:<xsl:value-of select="$bufferAddr"/>,bufferCols:<xsl:value-of select="$bufferCols"/>,bufferRows:<xsl:value-of select="$bufferRows"/>,bufferBits:<xsl:value-of select="$bufferBits"/>,bufferLeft:<xsl:value-of select="$bufferLeft"/>,bufferRotate:<xsl:value-of select="$bufferRotate"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',touchScreen:'<xsl:value-of select="$touchScreen"/>',autoLock:<xsl:value-of select="$autoLock"/>,aspectRatio:<xsl:value-of select="$aspectRatio"/>,smoothing:<xsl:value-of select="$smoothing"/>,interruptRate:<xsl:value-of select="$interruptRate"/>,refreshRate:<xsl:value-of select="$refreshRate"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
|
|
|
|||
|
|
@ -1092,6 +1092,12 @@
|
|||
<xsl:otherwise>0</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="smoothing">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@smoothing"><xsl:value-of select="@smoothing"/></xsl:when>
|
||||
<xsl:otherwise>null</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="interruptRate">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@interruptRate"><xsl:value-of select="@interruptRate"/></xsl:when>
|
||||
|
|
@ -1107,7 +1113,7 @@
|
|||
<xsl:call-template name="component">
|
||||
<xsl:with-param name="machine" select="$machine"/>
|
||||
<xsl:with-param name="class">video</xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,screenColor:'<xsl:value-of select="$screenColor"/>',screenRotate:<xsl:value-of select="$screenRotate"/>,bufferAddr:<xsl:value-of select="$bufferAddr"/>,bufferCols:<xsl:value-of select="$bufferCols"/>,bufferRows:<xsl:value-of select="$bufferRows"/>,bufferBits:<xsl:value-of select="$bufferBits"/>,bufferLeft:<xsl:value-of select="$bufferLeft"/>,bufferRotate:<xsl:value-of select="$bufferRotate"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',touchScreen:'<xsl:value-of select="$touchScreen"/>',autoLock:<xsl:value-of select="$autoLock"/>,aspectRatio:<xsl:value-of select="$aspectRatio"/>,interruptRate:<xsl:value-of select="$interruptRate"/>,refreshRate:<xsl:value-of select="$refreshRate"/></xsl:with-param>
|
||||
<xsl:with-param name="parms">,model:'<xsl:value-of select="$model"/>',mode:<xsl:value-of select="$mode"/>,screenWidth:<xsl:value-of select="$screenWidth"/>,screenHeight:<xsl:value-of select="$screenHeight"/>,screenColor:'<xsl:value-of select="$screenColor"/>',screenRotate:<xsl:value-of select="$screenRotate"/>,bufferAddr:<xsl:value-of select="$bufferAddr"/>,bufferCols:<xsl:value-of select="$bufferCols"/>,bufferRows:<xsl:value-of select="$bufferRows"/>,bufferBits:<xsl:value-of select="$bufferBits"/>,bufferLeft:<xsl:value-of select="$bufferLeft"/>,bufferRotate:<xsl:value-of select="$bufferRotate"/>,memory:<xsl:value-of select="$memory"/>,switches:'<xsl:value-of select="$switches"/>',scale:<xsl:value-of select="$scale"/>,charCols:<xsl:value-of select="$charCols"/>,charRows:<xsl:value-of select="$charRows"/>,fontROM:'<xsl:value-of select="$fontROM"/>',touchScreen:'<xsl:value-of select="$touchScreen"/>',autoLock:<xsl:value-of select="$autoLock"/>,aspectRatio:<xsl:value-of select="$aspectRatio"/>,smoothing:<xsl:value-of select="$smoothing"/>,interruptRate:<xsl:value-of select="$interruptRate"/>,refreshRate:<xsl:value-of select="$refreshRate"/></xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
|
|
|
|||
|
|
@ -9,199 +9,202 @@ function pa(){return window?window.navigator.userAgent:""}function t(a){window&&
|
|||
function ta(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}function ua(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function va(a){if(window){var b=pa();return"iOS"==a&&b.match(/(iPod|iPhone|iPad)/)&&b.match(/AppleWebKit/)||"MSIE"==a&&b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)?!0:!1}return!1}function Ca(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
|
||||
function Da(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}var Ea={init:[],show:[],exit:[]},Fa=!1,Ga=!0;function Ha(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Ja(a){Ea.init.push(a)}
|
||||
function Ka(a){if(Ga)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){t("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function La(a){!Ga&&a?(Ga=!0,Fa&&Pa("init")):Ga=a}function Pa(a){Ea[a]&&Ka(Ea[a])}Ha("onload",function(){Fa=!0;Ka(Ea.init)});Ha("onpageshow",function(){Ka(Ea.show)});Ha(va("Opera")||va("iOS")?"onunload":"onbeforeunload",function(){Ka(Ea.exit)});
|
||||
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Eb=b.comment;this.Sb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Ib=this.id.substr(0,b),this.cb=this.id.substr(b+1)):this.cb=this.id;this[a]=c;this.A={Ra:!1,Oa:!1,vb:!1,ia:!1,Qa:!1};this.pb=null;this.A.Qa=!1;this.V={};this.F=null;this.ha=d||0;x.push(this)}var Qa=void 0,Ra={};
|
||||
function w(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.Eb=b.comment;this.Sb=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Hb=this.id.substr(0,b),this.eb=this.id.substr(b+1)):this.eb=this.id;this[a]=c;this.A={Ta:!1,Qa:!1,wb:!1,ia:!1,Sa:!1};this.rb=null;this.A.Sa=!1;this.T={};this.F=null;this.ha=d||0;x.push(this)}var Qa=void 0,Ra={};
|
||||
if(window){Qa||(Qa=window.location.search.substr(1));for(var Sa,Ta=/\+/g,Ua=/([^&=]+)=?([^&]*)/g;Sa=Ua.exec(Qa);)Ra[decodeURIComponent(Sa[1].replace(Ta," "))]=decodeURIComponent(Sa[2].replace(Ta," "))}function Va(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 Wa(a,b){b||(b=w);a.prototype=Va(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var x=[],Xa={};function Ya(a,b,c){Xa[a]&&b&&(Xa[a][b]=c)}function Za(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<x.length;b++){var d=x[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function $a(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<x.length;d++)if(c)c==x[d]&&(c=null);else if(!(a!=x[d].type||b&&x[d].id.indexOf(b)))return x[d]}return null}function y(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){t(c.message+" ("+a+")")}return b}
|
||||
function cb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.qa(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||
function cb(a,b){for(var c=A(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var k=g.split(" "),l=0;l<k.length;l++)switch(g=k[l],g){case "pc8080-binding":(g=y(h))&&g.binding&&a.oa(g.type,g.binding,h,g.value),l=k.length}}}}
|
||||
function A(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},qa:function(a,b,c){switch(b){case "clear":return this.V[b]||(this.V[b]=c,c.onclick=function(a){return function(){a.V.print&&(a.V.print.value="")}}(this)),!0;case "print":return this.V[b]||(this.ta=this.V[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.oa=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.cb+": "+a)},oa:function(a,b){b||t(a)},za:function(){return this.A.ia=!0},ya:function(a,b){b&&(this.A.ia=!1);return!0}};function db(a,b,c,d,e,f){var h=!0;a.F&&(!0===h?h=0:null==h&&(h=a.ha),eb(a.F,a,b,c,d,e,f,h))}function fb(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.Xb)}return!1}
|
||||
function gb(a,b){if(a.A.vb)return a.A.Oa&&(a.A.Oa=!1),a.A.vb=!1;if(a.A.Qa)return a.g(a.toString()+" error"),!1;a.A.Oa=b;return a.A.Oa}function hb(a,b){a.A.Oa&&(b?a.A.vb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Oa}function C(a){if(!a.A.Qa&&(a.A.Ra=!0,a.A.Ra)){var b=a.pb;a.pb=null;b&&b()}}function ib(a,b){b&&(a.A.Ra?b():a.pb=b);return a.A.Ra}function jb(a,b){a.A.Qa=!0;a.oa(b)}
|
||||
var kb="undefined"!==typeof ArrayBuffer,lb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function mb(a){w.call(this,"Panel",a,mb)}Wa(mb);m=mb.prototype;m.qa=function(a,b,c,d){return this.w&&this.w.qa(a,b,c,d)||this.b&&this.b.qa(a,b,c,d)||this.u&&this.u.qa(a,b,c,d)||this.F&&this.F.qa(a,b,c,d)?!0:this.parent.qa.call(this,a,b,c,d)};m.Fa=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.u=nb(a,"Keyboard")};m.za=function(a,b){b||ob();return!0};m.ya=function(){return!0};m.va=function(){};
|
||||
function ob(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new mb(e));cb(f,d);a&&C(f)}}Ja(ob);
|
||||
function pb(a,b,c){w.call(this,"Bus",a,pb);this.b=b;this.F=c;this.J=a.busWidth||16;this.X=Math.pow(2,this.J);this.D=this.X-1|0;this.ea=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.ua=1<<this.ea;this.Y=this.ua>>2;this.B=this.ua-1;this.M=this.X/this.ua|0;this.K=this.M-1;this.w=[];this.u=[];this.G=this.H=!1;this.aa=[];this.ba=[];a=new D;qb(a,this.F);this.T=Array(this.M);for(b=0;b<this.M;b++)this.T[b]=a;C(this)}Wa(pb);m=pb.prototype;m.reset=function(){};m.za=function(a,b){b||this.reset();return!0};
|
||||
function rb(a,b,c,d){for(var e=b>>>a.ea;0<c&&e<a.T.length;){var f=a.T[e],h=e*a.ua,g=a.ua-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.C)return f.mb+=f.C-b,f.C=b,!0;if(b>=f.C+f.mb){g=f.size-(b-h);g>c&&(g=c);f.mb=b-f.C+g;b=h+a.ua;c-=g;e++;continue}}return sb(1,b,c)}b=new D(b,g,a.ua,d);qb(b,a.F,f);a.T[e++]=b;b=h+a.ua;c-=g}return 0>=c?!0:sb(2,b,c)}m.W=function(a){return this.T[(a&this.D)>>>this.ea].Za(a&this.B,a)};function tb(a,b){return a.T[(b&a.D)>>>a.ea].kb(b&a.B,b)}
|
||||
m.Ea=function(a){var b=a&this.B,c=(a&this.D)>>>this.ea;return b!=this.B?this.T[c].Tb(b,a):this.T[c++].Za(b,a)|this.T[c&this.K].Za(0,a+1)<<8};function ub(a,b){var c=b&a.B,d=(b&a.D)>>>a.ea;return c!=a.B?a.T[d].Ab(c,b):a.T[d++].kb(c,b)|a.T[d&a.K].kb(0,b+1)<<8}m.ga=function(a,b){this.T[(a&this.D)>>>this.ea].ab(a&this.B,b&255,a)};function vb(a,b,c){a.T[(b&a.D)>>>a.ea].nb(b&a.B,c&255,b)}
|
||||
m.sb=function(a,b){var c=a&this.B,d=(a&this.D)>>>this.ea;c!=this.B?this.T[d].Vb(c,b&65535,a):(this.T[d++].ab(c,b&255,a),this.T[d&this.K].ab(0,b>>8&255,a+1))};function wb(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}
|
||||
function Fb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.aa[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.F&&a.G!=h[1]&&Gb(a.F,b,l)):a.F&&(eb(a.F,a,b,null,c),a.G&&Gb(a.F,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Hb(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
|
||||
function Ib(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.u[b],g=a.ba[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.F&&a.H!=h[1]&&Jb(a.F,b,k)}else a.F&&(eb(a.F,a,b,k,d),a.H&&Jb(a.F,b,k));f+=g<<3;b+=g;e-=g}}function sb(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Kb;if(kb){var Lb=new ArrayBuffer(2);(new DataView(Lb)).setUint16(0,256,!0);Kb=256===(new Uint16Array(Lb))[0]}else Kb=!1;var Mb=Kb;
|
||||
function D(a,b,c,d){this.id=Nb+=2;this.b=null;this.C=a;this.mb=b;this.size=c||0;this.type=d||Ob;this.w=d==Pb;qb(this);this.wa=this.Kb=!1;if(c)if(kb)this.G=new ArrayBuffer(c),this.H=new DataView(this.G,0,c),this.B=new Uint8Array(this.G,0,c),this.K=new Uint16Array(this.G,0,c>>1),this.b=new Int32Array(this.G,0,c>>2),Qb(this,Mb?Rb:Sb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Qb(this,Tb)}else Qb(this)}var Ob=0,Pb=2,Ub=["NONE","RAM","ROM","VIDEO","H/W"],Nb=0;
|
||||
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(kb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(kb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.wa=!0}return!1},Ha:function(a,b){b?0===this.u++&&Vb(this,Wb,!1):0===this.V++&&Xb(this,Wb,!1)},M:function(){this.F&&fb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.C),!0);
|
||||
return 255},D:function(a,b){this.F&&fb(this.F,129)&&this.F.message("attempt to write "+r(b)+" to invalid block %"+q(this.C),!0)},X:function(a,b){return this.Za(a++,b++)|this.Za(a,b)<<8},J:function(a,b,c){this.ab(a++,b&255,c++);this.ab(a,b>>8,c)},fa:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra: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},Ba:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.wa=!0},cb:function(a,
|
||||
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.wa=!0},aa:function(a,b){if(this.F&&null!=this.C){var c=this.F;Yb(c,this.C+a,1,c.ba)&&c.da(!0)}return this.kb(a,b)},ma:function(a,b){if(this.F&&null!=this.C){var c=this.F;Yb(c,this.C+a,2,c.ba)&&c.da(!0)}return this.Ab(a,b)},Da:function(a,b,c){if(this.F&&null!=this.C){var d=this.F;Yb(d,this.C+a,1,d.H)&&d.da(!0)}this.w?this.D(a,b,c):this.nb(a,b,c)},Na:function(a,
|
||||
b,c){if(this.F&&null!=this.C){var d=this.F;Yb(d,this.C+a,2,d.H)&&d.da(!0)}this.w?this.D(a,b,c):this.Bb(a,b,c)},Y:function(a){return this.B[a]},ba:function(a){return this.B[a]},ka:function(a){return this.H.getUint16(a,!0)},na:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},sa:function(a,b){this.B[a]=b;this.wa=!0},Aa:function(a,b){this.B[a]=b;this.wa=!0},Ga:function(a,b){this.H.setUint16(a,b,!0);this.wa=!0},bb:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.wa=!0}};
|
||||
function qb(a,b,c){a.F=b;a.V=a.u=0;c&&((a.V=c.V)&&Xb(a,Wb,!1),(a.u=c.u)&&Vb(a,Wb,!1))}function Zb(a,b){b?0===--a.u&&(a.ab=a.w?a.D:a.nb,a.Vb=a.w?a.J:a.Bb):0===--a.V&&(a.Za=a.kb,a.Tb=a.Ab)}function Vb(a,b,c){c&&a.u||(a.ab=!a.w&&b[2]||a.D,a.Vb=!a.w&&b[3]||a.J);if(c||void 0===c)a.nb=b[2]||a.D,a.Bb=b[3]||a.J}function Xb(a,b,c){c&&a.V||(a.Za=b[0]||a.M,a.Tb=b[1]||a.X);if(c||void 0===c)a.kb=b[0]||a.M,a.Ab=b[1]||a.X}function Qb(a,b){b||(b=$b);Xb(a,b,void 0);Vb(a,b,void 0)}
|
||||
var $b=[],Tb=[D.prototype.fa,D.prototype.ra,D.prototype.Ba,D.prototype.cb],Wb=[D.prototype.aa,D.prototype.ma,D.prototype.Da,D.prototype.Na];if(kb)var Sb=[D.prototype.Y,D.prototype.ka,D.prototype.sa,D.prototype.Ga],Rb=[D.prototype.ba,D.prototype.na,D.prototype.Aa,D.prototype.bb];
|
||||
function ac(a,b){w.call(this,"CPU",a,ac,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.Ya=c;this.i.rb=0;this.i.La=d;this.i.xb=Math.round(this.i.Ya/1E4)/100;this.i.Ja=this.i.xb*this.i.La;this.A.la=!1;this.A.wb=!1;this.A.Jb=a.autoStart;this.A.Lb=!1;this.A.Pa=!1;this.i.eb=this.i.Va=0;this.i.fb=a.csStart;this.i.Ua=a.csInterval;this.i.Wa=a.csStop;this.aa=this.Ma.bind(this);C(this)}Wa(ac);var bc=["power","reset"];m=ac.prototype;
|
||||
m.Fa=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<bc.length;b++)(c=this.V[bc[b]])&&this.w.qa(null,bc[b],c);this.Da=(b=nb(a,"Video"))&&Math.max(b.Da,b.Zb)||60;this.K=nb(a,"ChipSet");a=cc(a,"autoStart");null!=a&&(this.A.Jb="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){this.i.rb=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||
m.za=function(a,b){if(!b){if(a&&this.restore){oc(this);if(!this.restore(a))return!1;pc(this)}else this.reset();if(this.F){var c=this.F;c.g("Type ? for help with PC8080 Debugger commands");c.va();if(c.tb){var d=c.tb;c.tb=null;qc(c,d)}}else this.g("No debugger detected")}rc(this);return!0};m.ya=function(a){return a?this.save():!0};function sc(a){(a.A.Jb||!a.F&&void 0===a.V.run)&&a.Ma(!0)}m.Ob=function(){return 0};
|
||||
function pc(a){void 0===a.i.fb&&(a.i.fb=0);void 0===a.i.Ua&&(a.i.Ua=-1);void 0===a.i.Wa&&(a.i.Wa=-1);a.A.Pa=0<=a.i.fb&&0<a.i.Ua;a.A.Pa&&(a.i.eb=0,a.i.Va=a.i.fb-a.H)}function tc(a,b){if(a.A.Pa){var c=!1;a.i.eb=a.i.eb+a.Ob()|0;a.i.Va-=b;0>=a.i.Va&&(a.i.Va+=a.i.Ua,c=!0);0<=a.i.Wa&&a.i.Wa<=uc(a)&&(a.i.Ua=a.i.Wa=-1,pc(a),a.da(),c=!0);c&&a.g(uc(a)+" cycles: checksum="+q(a.i.eb))}}
|
||||
m.qa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.V[b]=c;a=!0;break;case "run":this.V[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.A.ia)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.Ra);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.ia);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.Ra?"powered yet":"ready yet"+(b.pb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.la?d.da(!0):d.Ma(!0))};a=
|
||||
!0;break;case "speed":this.V[b]=c;a=!0;break;case "setSpeed":this.V[b]=c,c.onclick=function(){vc(d,d.i.La<<1,!0)},c.textContent=this.i.Ja.toFixed(2)+"Mhz",a=!0}return a};function wc(a,b,c){a.H+=b;c&&(a.D=a.b=0)}
|
||||
function xc(a,b){var c=30;c<a.Da&&(c=a.Da);2>c&&(c=2);var d=1;b&&1<a.i.La&&a.i.Ia&&(d=a.i.Ia/a.i.xb);a.i.Pb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.Ya/c*d);a.i.yb=Math.floor(a.i.Ya/30*d);a.i.Rb=Math.floor(a.i.Ya/a.Da*d);a.i.Qb=Math.floor(a.i.Ya/2*d);b||(a.i.Xa=a.i.yb,a.i.hb=a.i.Rb,a.i.gb=a.i.Qb);a.i.zb=0}function uc(a){return a.H+a.G+a.D-a.b}function oc(a){a.i.Ia=0;a.H=a.G=a.D=a.b=0;pc(a);vc(a,1)}
|
||||
function vc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ia/a.i.Ja?b=1:d=!0;a.i.La=b;b=a.i.xb*a.i.La;if(a.i.Ja!=b){a.i.Ja=b;b=a.i.Ja.toFixed(2)+"Mhz";var e=a.V.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.lb()}wc(a,a.G);a.G=0;a.i.Ta=ja();a.i.Ka=0;xc(a);return d}
|
||||
m.Ma=function(a){if(gb(this,!0)){if(!this.A.la){vc(this);this.w&&this.w.start(this.i.Ta,uc(this));this.A.la=!0;this.A.wb=!0;this.K&&this.K.start();var b=this.V.run;b&&(b.textContent="Halt");this.w&&(this.w.va(!0),a&&this.w.lb(!0))}this.i.zb>=this.i.Ya&&xc(this,!0);this.i.ib=0;this.i.qb=ja();this.i.Ka&&(a=this.i.qb-this.i.Ka,a>this.i.Pb&&(this.i.Ta+=a,this.i.Ta>this.i.qb&&(this.i.Ta=this.i.qb)));try{do{var c=this.A.Pa?1:this.i.hc;try{this.$a(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.D-
|
||||
this.b;this.G+=d;this.i.ib+=d;wc(this,0,!0);tc(this,d);this.i.hb-=d;0>=this.i.hb&&(this.i.hb+=this.i.Rb,this.w&&yc(this.w,this.i.rb++),this.i.rb>this.Da&&(this.i.rb=0));this.i.gb-=d;0>=this.i.gb&&(this.i.gb+=this.i.Qb,this.w&&this.w.va());this.i.Xa-=d;if(0>=this.i.Xa){this.i.Xa+=this.i.yb;break}}while(this.A.la)}catch(e){this.da();rc(this);this.w&&this.w.stop(ja(),uc(this));gb(this,!1);jb(this,e.stack||e.message);return}c=setTimeout;d=this.aa;this.i.Ka=ja();a=this.i.Pb;this.i.ib&&(a=Math.round(a*
|
||||
this.i.ib/this.i.yb));a-=this.i.Ka-this.i.qb;if(b=this.i.Ka-this.i.Ta)this.i.Ia=Math.round(this.G/(10*b))/100,864E5<=b&&(this.H=0,vc(this));if(0>a||this.i.Ia<this.i.Ja)a=0;this.i.zb+=this.i.ib;this.i.Ka+=a;c(d,a)}else rc(this),this.w&&this.w.stop(ja(),uc(this))};m.$a=function(){return 0};m.da=function(a){hb(this,!0);this.D-=this.b;this.b=0;wc(this,this.G);this.G=0;if(this.A.la){this.A.la=!1;this.K&&this.K.stop();var b=this.V.run;b&&(b.textContent="Run")}this.A.ob=a};
|
||||
function rc(a,b){a.w&&(yc(a.w,-1),a.w.va(b))}function zc(a){this.Sa=a.model||8080;ac.call(this,a,1E6);this.M=Ac;oc(this);this.A.ob=this.A.Yb=!1;this.Y=0;this.J=[];this.X=0;Bc(this)}Wa(zc,ac);function Cc(a,b){a.J.push(b)}m=zc.prototype;m.reset=function(){this.A.la&&this.da();Bc(this);oc(this);this.A.Qa=!1;this.parent.reset.call(this)};function Bc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.U=0;a.ca=0;F(a,a.X);Dc(a,0);a.u=0}function Ec(a,b){a.X=b;F(a,b)}
|
||||
m.Ob=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.U|0;return a=a+this.ca+this.L+Fc(this)|0};
|
||||
m.save=function(){var a=new Gc(this);H(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.U,this.ca,this.L,Fc(this)]);H(a,1,[this.u,this.H,this.i.La]);for(var b=this.B,c=0,d=[],e=0;e<b.M;e++){var f=b.T[e];if(f.wa||f.Kb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],n=g+1;n<f.length&&f[n]===p;)n++;l[k++]=n-g;l[k++]=p;g=n}if(l.length<f.length){f=l;break a}}d[h]=f}}H(a,2,d);return a.data()};
|
||||
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.U=b[6];this.ca=b[7]&65535;F(this,b[8]);Dc(this,b[9]);b=a[1];this.u=b[0];this.H=b[1];vc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.Y){for(var f=0,h=Array(b.Y),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.T[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
m.qa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.V[b]=c;this.Y++;d=!0;break;default:d=this.parent.qa.call(this,a,b,c)}return d};function Hc(a){return a.N<<8|a.O}function Ic(a,b){a.N=b>>8&255;a.O=b&255}function Jc(a){return a.P<<8|a.R}function Kc(a,b){a.P=b>>8&255;a.R=b&255}function I(a){return a.S<<8|a.U}
|
||||
function Lc(a,b){a.S=b>>8&255;a.U=b&255}function F(a,b){a.L=b&65535}function Mc(a){return a.I&256?1:0}function Nc(a){return lb[a.Z&255]?4:0}function Oc(a){return(a.Z^a.ja)&16?16:0}function Pc(a){return a.I&255?0:64}function Qc(a){return a.Z&128?128:0}function Fc(a){return a.pa&-214|Qc(a)|Pc(a)|Oc(a)|Nc(a)|Mc(a)}function Dc(a,b){a.I=a.Z=a.ja=0;b&1&&(a.I|=256);b&4||(a.Z|=1);b&16&&(a.ja|=16);b&64||(a.I|=255);b&128&&(a.Z^=192);a.pa=a.pa&-513|b&512|2}
|
||||
function Rc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b)&255}function Sc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?1:0))&255}function jd(a,b){a.I=a.Z=a.ja=a.j&b;(a.j|b)&8&&(a.ja^=16);return a.I}function kd(a,b){a.ja=b^255;b=a.Z=b+255&255;a.I=a.I&-256|b;return b}function ld(a,b){a.ja=b;b=a.Z=b+1&255;a.I=a.I&-256|b;return b}function md(a,b){return a.Z=a.I=a.ja=a.j|b}function J(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+1^256)&255}
|
||||
function nd(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?0:1)^256)&255}function od(a,b){return a.Z=a.I=a.ja=a.j^b}m.W=function(a){return this.B.W(a)};m.ga=function(a,b){this.B.ga(a,b)};function L(a){var b=a.W(a.L);F(a,a.L+1);return b}function M(a){var b=a.B.Ea(a.L);F(a,a.L+2);return b}function N(a){var b=a.B.Ea(a.ca);a.ca=a.ca+2&65535;return b}function Q(a,b){a.ca=a.ca-2&65535;a.B.sb(a.ca,b)}
|
||||
function R(a,b,c,d){d=d||2;a.V[b]&&(void 0===c&&(jb(a,"Value for "+b+" is invalid"),a.da()),c=!a.A.la||a.A.Lb?q(c,d):"--------".substr(0,d),a.V[b].textContent!=c&&(a.V[b].textContent=c))}
|
||||
m.va=function(a){this.Y&&(a||!this.A.la||this.A.Lb)&&(R(this,"A",this.j),R(this,"B",this.N),R(this,"C",this.O),R(this,"BC",Hc(this),4),R(this,"D",this.P),R(this,"E",this.R),R(this,"DE",Jc(this),4),R(this,"H",this.S),R(this,"L",this.U),R(this,"HL",I(this),4),R(this,"SP",this.ca,4),R(this,"PC",this.L,4),a=Fc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.V.speed)a.textContent=
|
||||
this.A.la&&this.i.Ia?this.i.Ia.toFixed(2)+"Mhz":"Stopped"};
|
||||
m.$a=function(a){this.A.ob=!0;var b=this.A.Yb=this.F&&pd(this.F),c=a?this.A.wb?0:1:-1;this.A.wb=!1;this.D=this.b=a;do{if(this.u){var d;this.u&8&&this.pa&512?(d=199|(this.u&7)<<3,this.u&=-16,this.pa&=-513,this.M[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.u&16){this.b=0;break}}if(b){if(qd(this.F,this.L,c)){this.da();break}c=1}this.M[L(this)].call(this)}while(0<this.b);return this.A.ob?this.D-this.b:void 0===this.A.ob?0:-1};
|
||||
Ja(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new zc(d);cb(d,c)}});function rd(){this.b-=4}function sd(){F(this,M(this));this.b-=10}function td(){F(this,N(this));this.b-=10}function ud(){var a=M(this);Q(this,this.L);F(this,a);this.b-=17}
|
||||
var Ac=[rd,function(){Ic(this,M(this));this.b-=10},function(){this.ga(Hc(this),this.j);this.b-=7},function(){Ic(this,Hc(this)+1);this.b-=5},function(){this.N=ld(this,this.N);this.b-=5},function(){this.N=kd(this,this.N);this.b-=5},function(){this.N=L(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.I=this.I&255|a&256;this.b-=4},rd,function(){var a;Lc(this,a=I(this)+Hc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Hc(this));this.b-=7},function(){Ic(this,Hc(this)-
|
||||
1);this.b-=5},function(){this.O=ld(this,this.O);this.b-=5},function(){this.O=kd(this,this.O);this.b-=5},function(){this.O=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.I=this.I&255|a;this.b-=4},rd,function(){Kc(this,M(this));this.b-=10},function(){this.ga(Jc(this),this.j);this.b-=7},function(){Kc(this,Jc(this)+1);this.b-=5},function(){this.P=ld(this,this.P);this.b-=5},function(){this.P=kd(this,this.P);this.b-=5},function(){this.P=L(this);this.b-=7},function(){var a=this.j<<
|
||||
1;this.j=a&255|this.I>>8;this.I=this.I&255|a&256;this.b-=4},rd,function(){var a;Lc(this,a=I(this)+Jc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Jc(this));this.b-=7},function(){Kc(this,Jc(this)-1);this.b-=5},function(){this.R=ld(this,this.R);this.b-=5},function(){this.R=kd(this,this.R);this.b-=5},function(){this.R=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.I&256|this.j)>>1;this.I=this.I&255|a;this.b-=4},rd,function(){Lc(this,M(this));this.b-=10},function(){var a=
|
||||
M(this);this.B.sb(a,I(this));this.b-=16},function(){Lc(this,I(this)+1);this.b-=5},function(){this.S=ld(this,this.S);this.b-=5},function(){this.S=kd(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=0,b=Mc(this);if(Oc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Rc(this,a);this.I=b?this.I|256:this.I&-257;this.b-=4},rd,function(){var a;Lc(this,a=I(this)+I(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){var a;a=M(this);a=this.B.Ea(a);Lc(this,a);this.b-=
|
||||
16},function(){Lc(this,I(this)-1);this.b-=5},function(){this.U=ld(this,this.U);this.b-=5},function(){this.U=kd(this,this.U);this.b-=5},function(){this.U=L(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},rd,function(){this.ca=M(this)&65535;this.b-=10},function(){this.ga(M(this),this.j);this.b-=13},function(){this.ca=this.ca+1&65535;this.b-=5},function(){var a=I(this);this.ga(a,ld(this,this.W(a)));this.b-=10},function(){var a=I(this);this.ga(a,kd(this,this.W(a)));this.b-=10},function(){this.ga(I(this),
|
||||
L(this));this.b-=10},function(){this.I|=256;this.b-=4},rd,function(){var a;Lc(this,a=I(this)+this.ca);this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(M(this));this.b-=13},function(){this.ca=this.ca-1&65535;this.b-=5},function(){this.j=ld(this,this.j);this.b-=5},function(){this.j=kd(this,this.j);this.b-=5},function(){this.j=L(this);this.b-=7},function(){this.I=Mc(this)?this.I&-257:this.I|256;this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;
|
||||
this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.U;this.b-=5},function(){this.N=this.W(I(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.U;this.b-=5},function(){this.O=this.W(I(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=
|
||||
this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.U;this.b-=5},function(){this.P=this.W(I(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.U;this.b-=5},function(){this.R=this.W(I(this));
|
||||
this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.U;this.b-=5},function(){this.S=this.W(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.U=this.N;this.b-=5},function(){this.U=this.O;this.b-=5},function(){this.U=this.P;this.b-=5},function(){this.U=this.R;this.b-=5},function(){this.U=this.S;this.b-=
|
||||
5},function(){this.b-=5},function(){this.U=this.W(I(this));this.b-=7},function(){this.U=this.j;this.b-=5},function(){this.ga(I(this),this.N);this.b-=7},function(){this.ga(I(this),this.O);this.b-=7},function(){this.ga(I(this),this.P);this.b-=7},function(){this.ga(I(this),this.R);this.b-=7},function(){this.ga(I(this),this.S);this.b-=7},function(){this.ga(I(this),this.U);this.b-=7},function(){var a=this.L-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.u|=16;this.b-=7;
|
||||
this.F&&fb(this,-2147483648)?(F(this,a),this.F.da()):this.pa&512||(this.F&&F(this,a),this.da())},function(){this.ga(I(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.U;this.b-=5},function(){this.j=this.W(I(this));this.b-=7},function(){this.b-=5},function(){this.j=Rc(this,this.N);this.b-=4},function(){this.j=Rc(this,this.O);
|
||||
this.b-=4},function(){this.j=Rc(this,this.P);this.b-=4},function(){this.j=Rc(this,this.R);this.b-=4},function(){this.j=Rc(this,this.S);this.b-=4},function(){this.j=Rc(this,this.U);this.b-=4},function(){this.j=Rc(this,this.W(I(this)));this.b-=7},function(){this.j=Rc(this,this.j);this.b-=4},function(){this.j=Sc(this,this.N);this.b-=4},function(){this.j=Sc(this,this.O);this.b-=4},function(){this.j=Sc(this,this.P);this.b-=4},function(){this.j=Sc(this,this.R);this.b-=4},function(){this.j=Sc(this,this.S);
|
||||
this.b-=4},function(){this.j=Sc(this,this.U);this.b-=4},function(){this.j=Sc(this,this.W(I(this)));this.b-=7},function(){this.j=Sc(this,this.j);this.b-=4},function(){this.j=J(this,this.N);this.b-=4},function(){this.j=J(this,this.O);this.b-=4},function(){this.j=J(this,this.P);this.b-=4},function(){this.j=J(this,this.R);this.b-=4},function(){this.j=J(this,this.S);this.b-=4},function(){this.j=J(this,this.U);this.b-=4},function(){this.j=J(this,this.W(I(this)));this.b-=7},function(){this.j=J(this,this.j);
|
||||
this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.U);this.b-=4},function(){this.j=nd(this,this.W(I(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){this.j=jd(this,this.N);this.b-=4},function(){this.j=jd(this,this.O);this.b-=4},function(){this.j=jd(this,this.P);
|
||||
this.b-=4},function(){this.j=jd(this,this.R);this.b-=4},function(){this.j=jd(this,this.S);this.b-=4},function(){this.j=jd(this,this.U);this.b-=4},function(){this.j=jd(this,this.W(I(this)));this.b-=7},function(){this.j=jd(this,this.j);this.b-=4},function(){this.j=od(this,this.N);this.b-=4},function(){this.j=od(this,this.O);this.b-=4},function(){this.j=od(this,this.P);this.b-=4},function(){this.j=od(this,this.R);this.b-=4},function(){this.j=od(this,this.S);this.b-=4},function(){this.j=od(this,this.U);
|
||||
this.b-=4},function(){this.j=od(this,this.W(I(this)));this.b-=7},function(){this.j=od(this,this.j);this.b-=4},function(){this.j=md(this,this.N);this.b-=4},function(){this.j=md(this,this.O);this.b-=4},function(){this.j=md(this,this.P);this.b-=4},function(){this.j=md(this,this.R);this.b-=4},function(){this.j=md(this,this.S);this.b-=4},function(){this.j=md(this,this.U);this.b-=4},function(){this.j=md(this,this.W(I(this)));this.b-=7},function(){this.j=md(this,this.j);this.b-=4},function(){J(this,this.N);
|
||||
this.b-=4},function(){J(this,this.O);this.b-=4},function(){J(this,this.P);this.b-=4},function(){J(this,this.R);this.b-=4},function(){J(this,this.S);this.b-=4},function(){J(this,this.U);this.b-=4},function(){J(this,this.W(I(this)));this.b-=7},function(){J(this,this.j);this.b-=4},function(){Pc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Ic(this,N(this));this.b-=10},function(){var a=M(this);Pc(this)||F(this,a);this.b-=10},sd,function(){var a=M(this);Pc(this)||(Q(this,this.L),F(this,a),this.b-=
|
||||
6);this.b-=11},function(){Q(this,Hc(this));this.b-=11},function(){this.j=Rc(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,0);this.b-=11},function(){Pc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},td,function(){var a=M(this);Pc(this)&&F(this,a);this.b-=10},sd,function(){var a=M(this);Pc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},ud,function(){this.j=Sc(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,8);this.b-=11},function(){Mc(this)||(F(this,N(this)),this.b-=6);
|
||||
this.b-=5},function(){Kc(this,N(this));this.b-=10},function(){var a=M(this);Mc(this)||F(this,a);this.b-=10},function(){var a=L(this);Ib(this.B,a,this.j,this.L+-2&65535);this.b-=10},function(){var a=M(this);Mc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Jc(this));this.b-=11},function(){this.j=J(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,16);this.b-=11},function(){Mc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},td,function(){var a=M(this);Mc(this)&&F(this,
|
||||
a);this.b-=10},function(){var a=L(this);this.j=Fb(this.B,a,this.L+-2&65535)&255;this.b-=10},function(){var a=M(this);Mc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},ud,function(){this.j=nd(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,24);this.b-=11},function(){Nc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Lc(this,N(this));this.b-=10},function(){var a=M(this);Nc(this)||F(this,a);this.b-=10},function(){var a=N(this);Q(this,I(this));Lc(this,a);this.b-=18},function(){var a=
|
||||
M(this);Nc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,I(this));this.b-=11},function(){this.j=jd(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,32);this.b-=11},function(){Nc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){F(this,I(this));this.b-=5},function(){var a=M(this);Nc(this)&&F(this,a);this.b-=10},function(){var a=I(this);Lc(this,Jc(this));Kc(this,a);this.b-=5},function(){var a=M(this);Nc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=
|
||||
11},ud,function(){this.j=od(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,40);this.b-=11},function(){Qc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Dc(this,a);this.j=a>>8;this.b-=10},function(){var a=M(this);Qc(this)||F(this,a);this.b-=10},function(){this.pa&=-513;this.b-=4},function(){var a=M(this);Qc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Fc(this)&255|this.j<<8);this.b-=11},function(){this.j=md(this,L(this));this.b-=7},function(){Q(this,
|
||||
this.L);F(this,48);this.b-=11},function(){Qc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){this.ca=I(this)&65535;this.b-=5},function(){var a=M(this);Qc(this)&&F(this,a);this.b-=10},function(){this.pa|=512;this.b-=4},function(){var a=M(this);Qc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},ud,function(){J(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,56);this.b-=11}];
|
||||
function S(a){w.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!vd[b]&&t("Unrecognized ChipSet model: "+b);this.Sa=vd[b]||wd;a.sound&&(this.X=null,window&&(this.X=window.AudioContext||window.webkitAudioContext),this.X&&new this.X);C(this)}Wa(S);var wd=1978.1,vd={SI1978:wd};m=S.prototype;m.qa=function(){return!1};
|
||||
m.Fa=function(a,b,c,d){this.B=b;this.b=c;this.F=d;this.w=a;if(this.Sa==wd){var e;a=xd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.w[g]?t("Input port "+r(g)+" already registered"):c.w[g]=[h,!1]}var k;e=yd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.u[d]?t("Output port "+r(d)+" already registered"):f.u[d]=[c,!1]}};
|
||||
m.za=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.ya=function(a){return a?this.save():!0};m.reset=function(){this.G=this.H=this.D=this.u=this.M=this.K=this.J=0};m.save=function(){var a=new Gc(this);this.Sa==wd&&H(a,0,[this.J,this.K,this.M,this.u,this.D,this.G,this.H]);return a.data()};m.restore=function(a){a=a[0];this.Sa==wd&&(this.J=a[0],this.K=a[1],this.M=a[2],this.u=a[3],this.D=a[4],this.G=a[5],this.H=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
||||
m.bc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.cc=function(a,b){var c=this.K;db(this,a,null,b,"STATUS1",c);return c};m.dc=function(a,b){var c=this.M;db(this,a,null,b,"STATUS2",c);return c};m.ac=function(a,b){var c=this.u>>8-this.D&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.D=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.G=b};
|
||||
m.jc=function(a,b,c){db(this,a,b,c,"SHIFT.DATA",null);this.u=b<<8|this.u>>8};m.lc=function(a,b,c){db(this,a,b,c,"SOUND2",null);this.H=b};m.mc=function(a,b,c){db(this,a,b,c,"WATCHDOG",null)};var xd={0:S.prototype.bc,1:S.prototype.cc,2:S.prototype.dc,3:S.prototype.ac},yd={2:S.prototype.ic,3:S.prototype.kc,4:S.prototype.jc,5:S.prototype.lc,6:S.prototype.mc};Ja(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new S(d);cb(d,c)}});
|
||||
function zd(a){w.call(this,"ROM",a,zd);this.w=null;this.H=a.addr;this.u=a.size;this.J=a.writable;this.D=a.alias;this.G=a.file;this.K=ba(this.G);if(this.G){a=this.G;var b=ca(this.K);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Ad(c,a,b,f)})}}Wa(zd);var Bd=[0,5];zd.prototype.Fa=function(a,b,c,d){this.B=b;this.b=c;this.F=d;Cd(this)};
|
||||
zd.prototype.za=function(){if(this.Ca){if(this.F){var a=this.F,b=this.id,c=this.H,d=this.u,e=this.Ca,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],n=ia(p,k,a.Fb);0>n&&p.splice(-(n+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,C:c,gc:d,Ca:e,Cb:f})}delete this.Ca}return!0};zd.prototype.ya=function(){return!0};
|
||||
function Ad(a,b,c,d){if(d)a.oa("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Ib,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Ca=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.oa("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=aa(b[e],16);Cd(a)}}
|
||||
function Cd(a){if(!ib(a))if(!a.G)C(a);else if(a.w&&a.B){a.u||(a.u=a.w.length);if(a.w.length!=a.u)jb(a,"ROM size (0x"+q(a.w.length)+") does not match specified size ("+("0x"+q(a.u))+")");else if(Dd(a,a.H)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.u,g=[],k=d.H>>>f.ea;0<h&&k<f.T.length;)g.push(f.T[k++]),h-=f.ua;f=d.B;d=d.u;h=0;for(e>>>=f.ea;0<d&&e<f.T.length;){k=g[h++];if(!k)break;f.T[e++]=k;d-=f.ua}}delete a.w}C(a)}}
|
||||
function Dd(a,b){if(rb(a.B,b,a.u,a.J?1:Pb)){var c;for(c=0;c<a.w.length;c++)vb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Bd.length;c++)vb(a.B,Bd[c],118);Cc(a.b,function(a){return function(b){if(0<=Bd.indexOf(b)){var c=!1,h=a.b,g=a.F;if(5==b)switch(c=!0,h.O){case 2:Ed(a,String.fromCharCode(h.R));break;case 9:for(var k=Jc(h),l="",p=255;p--;){var n=a.b.W(k++);if(36==n)break;l+=String.fromCharCode(n)}Ed(a,l);break;default:c=!1}c?td.call(h):g&&(a.g("\nCP/M vector "+r(b)),F(h,b),g.da());b=!0}else b=!1;return b}}(a));
|
||||
Ec(a.b,b)}return!0}return!1}function Ed(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}Ja(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new zd(d);cb(d,c)}});function Fd(a){w.call(this,"RAM",a,Fd);this.D=a.addr;this.u=a.size;this.w=!1}Wa(Fd);m=Fd.prototype;m.Fa=function(a,b,c,d){this.B=b;this.b=c;this.F=d;C(this)};m.za=function(a,b){b||this.reset();return!0};m.ya=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.w&&this.u&&rb(this.B,this.D,this.u,1)&&(this.w=!0,this.status(Math.floor(this.u/1024)+"Kb allocated"));this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Fd(d);cb(d,c)}});function Gd(a){w.call(this,"Keyboard",a,Gd,65536);C(this)}Wa(Gd);
|
||||
Ja(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Gd(d);cb(d,c)}});
|
||||
function Hd(a,b,c){w.call(this,"Video",a,Hd,262144);this.Y=a.screenWidth;this.K=a.screenHeight;this.X=a.bufferAddr;this.G=a.bufferCols;this.H=a.bufferRows;this.fa=a.bufferBits||1;this.Ba=a.bufferLeft||0;this.ka=a.bufferRotate;this.Zb=a.interruptRate;this.Da=a.refreshRate||60;this.u=c;this.u.webkitImageSmoothingEnabled=!1;this.u.mozImageSmoothingEnabled=!1;this.u.msImageSmoothingEnabled=!1;this.u.imageSmoothingEnabled=!1;this.sa=a.screenRotate;90==this.sa&&(this.u.translate(0,this.K),this.u.rotate(-this.sa*
|
||||
Math.PI/180),this.u.scale(this.K/this.Y,this.Y/this.K));this.Aa=[[0,0,0,255],[255,255,255,255]];a=this.G;b=this.H;this.ka&&(a=this.H,b=this.G);this.ba=this.u.createImageData(a,b);this.D=document.createElement("canvas");this.D.width=a;this.D.height=b;this.ma=this.D.getContext("2d")}Wa(Hd);
|
||||
Hd.prototype.Fa=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.M=(this.G*this.fa>>3)*this.H;rb(this.B,this.X,this.M,3)&&(this.na=this.M>>1,this.ra=16/this.fa|0,this.aa=!1,void 0===this.J||this.J.length!=this.na)&&(this.J=Array(this.na));C(this)};
|
||||
w.prototype={constructor:w,parent:null,toString:function(){return this.name?this.name:this.id||this.type},oa:function(a,b,c){switch(b){case "clear":return this.T[b]||(this.T[b]=c,c.onclick=function(a){return function(){a.T.print&&(a.T.print.value="")}}(this)),!0;case "print":return this.T[b]||(this.ta=this.T[b]=c,c.value="",this.g=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.pa=function(a,b,c){this.g(a,"notice",c)}),!0;default:return!1}},log:function(){},g:function(){},status:function(a){this.g(this.eb+": "+a)},pa:function(a,b){b||t(a)},Ba:function(){return this.A.ia=!0},Aa:function(a,b){b&&(this.A.ia=!1);return!0}};function db(a,b,c,d,e,f){var h=!0;a.F&&(!0===h?h=0:null==h&&(h=a.ha),eb(a.F,a,b,c,d,e,f,h))}function fb(a,b,c){a.F&&(!0===c||gb(a,c|0))&&a.F.message(b,void 0)}
|
||||
function gb(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.Xb)}return!1}function hb(a,b){if(a.A.wb)return a.A.Qa&&(a.A.Qa=!1),a.A.wb=!1;if(a.A.Sa)return a.g(a.toString()+" error"),!1;a.A.Qa=b;return a.A.Qa}function ib(a,b){a.A.Qa&&(b?a.A.wb=!0:void 0===b&&a.g(a.toString()+" busy"));return a.A.Qa}function C(a){if(!a.A.Sa&&(a.A.Ta=!0,a.A.Ta)){var b=a.rb;a.rb=null;b&&b()}}function jb(a,b){b&&(a.A.Ta?b():a.rb=b);return a.A.Ta}function kb(a,b){a.A.Sa=!0;a.pa(b)}
|
||||
var lb="undefined"!==typeof ArrayBuffer,mb=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function nb(a){w.call(this,"Panel",a,nb)}Wa(nb);m=nb.prototype;m.oa=function(a,b,c,d){return this.w&&this.w.oa(a,b,c,d)||this.b&&this.b.oa(a,b,c,d)||this.u&&this.u.oa(a,b,c,d)||this.F&&this.F.oa(a,b,c,d)?!0:this.parent.oa.call(this,a,b,c,d)};m.Ha=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.u=ob(a,"Keyboard")};m.Ba=function(a,b){b||pb();return!0};m.Aa=function(){return!0};m.va=function(){};
|
||||
function pb(){for(var a=!1,b=A(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=y(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<x.length;h++)if(x[h].id===f){f=x[h];break a}f=null}f||(a=!0,f=new nb(e));cb(f,d);a&&C(f)}}Ja(pb);
|
||||
function qb(a,b,c){w.call(this,"Bus",a,qb);this.b=b;this.F=c;this.J=a.busWidth||16;this.X=Math.pow(2,this.J);this.D=this.X-1|0;this.ea=16>=this.J?10:20>=this.J?12:24>=this.J?14:15;this.ua=1<<this.ea;this.Y=this.ua>>2;this.B=this.ua-1;this.M=this.X/this.ua|0;this.K=this.M-1;this.w=[];this.u=[];this.G=this.H=!1;this.aa=[];this.ba=[];a=new D;rb(a,this.F);this.U=Array(this.M);for(b=0;b<this.M;b++)this.U[b]=a;C(this)}Wa(qb);m=qb.prototype;m.reset=function(){};m.Ba=function(a,b){b||this.reset();return!0};
|
||||
function sb(a,b,c,d){for(var e=b>>>a.ea;0<c&&e<a.U.length;){var f=a.U[e],h=e*a.ua,g=a.ua-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.C)return f.nb+=f.C-b,f.C=b,!0;if(b>=f.C+f.nb){g=f.size-(b-h);g>c&&(g=c);f.nb=b-f.C+g;b=h+a.ua;c-=g;e++;continue}}return tb(1,b,c)}b=new D(b,g,a.ua,d);rb(b,a.F,f);a.U[e++]=b;b=h+a.ua;c-=g}return 0>=c?!0:tb(2,b,c)}m.W=function(a){return this.U[(a&this.D)>>>this.ea].ab(a&this.B,a)};function ub(a,b){return a.U[(b&a.D)>>>a.ea].lb(b&a.B,b)}
|
||||
m.Ga=function(a){var b=a&this.B,c=(a&this.D)>>>this.ea;return b!=this.B?this.U[c].Tb(b,a):this.U[c++].ab(b,a)|this.U[c&this.K].ab(0,a+1)<<8};function vb(a,b){var c=b&a.B,d=(b&a.D)>>>a.ea;return c!=a.B?a.U[d].Bb(c,b):a.U[d++].lb(c,b)|a.U[d&a.K].lb(0,b+1)<<8}m.fa=function(a,b){this.U[(a&this.D)>>>this.ea].cb(a&this.B,b&255,a)};function wb(a,b,c){a.U[(b&a.D)>>>a.ea].ob(b&a.B,c&255,b)}
|
||||
m.ub=function(a,b){var c=a&this.B,d=(a&this.D)>>>this.ea;c!=this.B?this.U[d].Vb(c,b&65535,a):(this.U[d++].cb(c,b&255,a),this.U[d&this.K].cb(0,b>>8&255,a+1))};function xb(a,b){if(void 0===b)return a.G=!a.G,a.G;void 0===a.w[b]&&(a.w[b]=[null,!1]);a.w[b][1]=!a.w[b][1];return a.w[b][1]}
|
||||
function yb(a,b,c){for(var d=1,e=0,f=0;0<d;){var h=a.w[b],g=a.aa[b]||1,k=1==g?255:2==g?65535:-1,l=k;void 0!==h?(h[0]&&(l=h[0](b,c),void 0===l?l=k:l&=k),a.F&&a.G!=h[1]&&zb(a.F,b,l)):a.F&&(eb(a.F,a,b,null,c),a.G&&zb(a.F,b,l));e|=l<<f;f+=g<<3;b+=g;d-=g}return e}function Ib(a,b){if(void 0===b)return a.H=!a.H,a.H;void 0===a.u[b]&&(a.u[b]=[null,!1]);a.u[b][1]=!a.u[b][1];return a.u[b][1]}
|
||||
function Jb(a,b,c,d){for(var e=1,f=0;0<e;){var h=a.u[b],g=a.ba[b]||1,k=1==g?255:2==g?65535:-1,k=(c>>>=f)&k;if(void 0!==h){if(h[0])h[0](b,k,d);a.F&&a.H!=h[1]&&Kb(a.F,b,k)}else a.F&&(eb(a.F,a,b,k,d),a.H&&Kb(a.F,b,k));f+=g<<3;b+=g;e-=g}}function tb(a,b,c){t("Memory block error ("+a+": "+q(b)+","+q(c)+")");return!1}var Lb;if(lb){var Mb=new ArrayBuffer(2);(new DataView(Mb)).setUint16(0,256,!0);Lb=256===(new Uint16Array(Mb))[0]}else Lb=!1;var Nb=Lb;
|
||||
function D(a,b,c,d){this.id=Ob+=2;this.b=null;this.C=a;this.nb=b;this.size=c||0;this.type=d||Pb;this.w=d==Qb;rb(this);this.ya=this.Lb=!1;if(c)if(lb)this.G=new ArrayBuffer(c),this.H=new DataView(this.G,0,c),this.B=new Uint8Array(this.G,0,c),this.K=new Uint16Array(this.G,0,c>>1),this.b=new Int32Array(this.G,0,c>>2),Rb(this,Nb?Sb:Tb);else{this.b=Array(c>>2);for(a=0;a<this.b.length;a++)this.b[a]=0;Rb(this,Ub)}else Rb(this)}var Pb=0,Qb=2,Vb=["NONE","RAM","ROM","VIDEO","H/W"],Ob=0;
|
||||
D.prototype={constructor:D,parent:null,save:function(){var a,b;if(lb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.H.getInt32(b<<2,!0);else a=this.b;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(lb)for(b=0;b<a.length;b++)this.H.setInt32(b<<2,a[b],!0);else this.b=a;return this.ya=!0}return!1},Ja:function(a,b){b?0===this.u++&&Wb(this,Xb,!1):0===this.T++&&Yb(this,Xb,!1)},M:function(){this.F&&gb(this.F,129)&&this.F.message("attempt to read invalid block %"+q(this.C),!0);
|
||||
return 255},D:function(a,b){this.F&&gb(this.F,129)&&this.F.message("attempt to write "+r(b)+" to invalid block %"+q(this.C),!0)},X:function(a,b){return this.ab(a++,b++)|this.ab(a,b)<<8},J:function(a,b,c){this.cb(a++,b&255,c++);this.cb(a,b>>8,c)},ga:function(a){return this.b[a>>2]>>>((a&3)<<3)&255},ra: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},xa:function(a,b){var c=a>>2,d=(a&3)<<3;this.b[c]=this.b[c]&~(255<<d)|b<<d;this.ya=!0},Ia:function(a,
|
||||
b){var c=a>>2,d=(a&3)<<3;24>d?this.b[c]=this.b[c]&~(65535<<d)|b<<d:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.ya=!0},aa:function(a,b){if(this.F&&null!=this.C){var c=this.F;Zb(c,this.C+a,1,c.aa)&&c.da(!0)}return this.lb(a,b)},la:function(a,b){if(this.F&&null!=this.C){var c=this.F;Zb(c,this.C+a,2,c.aa)&&c.da(!0)}return this.Bb(a,b)},sa:function(a,b,c){if(this.F&&null!=this.C){var d=this.F;Zb(d,this.C+a,1,d.H)&&d.da(!0)}this.w?this.D(a,b,c):this.ob(a,b,c)},Fa:function(a,
|
||||
b,c){if(this.F&&null!=this.C){var d=this.F;Zb(d,this.C+a,2,d.H)&&d.da(!0)}this.w?this.D(a,b,c):this.Cb(a,b,c)},Y:function(a){return this.B[a]},ba:function(a){return this.B[a]},ka:function(a){return this.H.getUint16(a,!0)},na:function(a){return a&1?this.B[a]|this.B[a+1]<<8:this.K[a>>1]},Ea:function(a,b){this.B[a]=b;this.ya=!0},wa:function(a,b){this.B[a]=b;this.ya=!0},Ca:function(a,b){this.H.setUint16(a,b,!0);this.ya=!0},eb:function(a,b){a&1?(this.B[a]=b,this.B[a+1]=b>>8):this.K[a>>1]=b;this.ya=!0}};
|
||||
function rb(a,b,c){a.F=b;a.T=a.u=0;c&&((a.T=c.T)&&Yb(a,Xb,!1),(a.u=c.u)&&Wb(a,Xb,!1))}function $b(a,b){b?0===--a.u&&(a.cb=a.w?a.D:a.ob,a.Vb=a.w?a.J:a.Cb):0===--a.T&&(a.ab=a.lb,a.Tb=a.Bb)}function Wb(a,b,c){c&&a.u||(a.cb=!a.w&&b[2]||a.D,a.Vb=!a.w&&b[3]||a.J);if(c||void 0===c)a.ob=b[2]||a.D,a.Cb=b[3]||a.J}function Yb(a,b,c){c&&a.T||(a.ab=b[0]||a.M,a.Tb=b[1]||a.X);if(c||void 0===c)a.lb=b[0]||a.M,a.Bb=b[1]||a.X}function Rb(a,b){b||(b=ac);Yb(a,b,void 0);Wb(a,b,void 0)}
|
||||
var ac=[],Ub=[D.prototype.ga,D.prototype.ra,D.prototype.xa,D.prototype.Ia],Xb=[D.prototype.aa,D.prototype.la,D.prototype.sa,D.prototype.Fa];if(lb)var Tb=[D.prototype.Y,D.prototype.ka,D.prototype.Ea,D.prototype.Ca],Sb=[D.prototype.ba,D.prototype.na,D.prototype.wa,D.prototype.eb];
|
||||
function bc(a,b){w.call(this,"CPU",a,bc,1);var c=a.cycles||b,d=a.multiplier||1;this.i={};this.i.$a=c;this.i.tb=0;this.i.Na=d;this.i.yb=Math.round(this.i.$a/1E4)/100;this.i.La=this.i.yb*this.i.Na;this.A.ma=!1;this.A.xb=!1;this.A.Kb=a.autoStart;this.A.Mb=!1;this.A.Ra=!1;this.i.fb=this.i.Xa=0;this.i.gb=a.csStart;this.i.Wa=a.csInterval;this.i.Ya=a.csStop;this.aa=this.Oa.bind(this);C(this)}Wa(bc);var cc=["power","reset"];m=bc.prototype;
|
||||
m.Ha=function(a,b,c,d){this.w=a;this.B=b;this.F=d;for(b=0;b<cc.length;b++)(c=this.T[cc[b]])&&this.w.oa(null,cc[b],c);this.Ea=(b=ob(a,"Video"))&&Math.max(b.Ea,b.Zb)||60;this.K=ob(a,"ChipSet");a=oc(a,"autoStart");null!=a&&(this.A.Kb="true"==a?!0:"false"==a?!1:!!a);C(this)};m.reset=function(){this.i.tb=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||
m.Ba=function(a,b){if(!b){if(a&&this.restore){pc(this);if(!this.restore(a))return!1;qc(this)}else this.reset();if(this.F){var c=this.F;c.g("Type ? for help with PC8080 Debugger commands");c.va();if(c.Ia){var d=c.Ia;c.Ia=null;rc(c,d)}}else this.g("No debugger detected")}sc(this);return!0};m.Aa=function(a){return a?this.save():!0};function tc(a){(a.A.Kb||!a.F&&void 0===a.T.run)&&a.Oa(!0)}m.Ob=function(){return 0};
|
||||
function qc(a){void 0===a.i.gb&&(a.i.gb=0);void 0===a.i.Wa&&(a.i.Wa=-1);void 0===a.i.Ya&&(a.i.Ya=-1);a.A.Ra=0<=a.i.gb&&0<a.i.Wa;a.A.Ra&&(a.i.fb=0,a.i.Xa=a.i.gb-a.H)}function uc(a,b){if(a.A.Ra){var c=!1;a.i.fb=a.i.fb+a.Ob()|0;a.i.Xa-=b;0>=a.i.Xa&&(a.i.Xa+=a.i.Wa,c=!0);0<=a.i.Ya&&a.i.Ya<=vc(a)&&(a.i.Wa=a.i.Ya=-1,qc(a),a.da(),c=!0);c&&a.g(vc(a)+" cycles: checksum="+q(a.i.fb))}}
|
||||
m.oa=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.T[b]=c;a=!0;break;case "run":this.T[b]=c;c.onclick=function(){var a;if(a=d.w)if(a=d.w,a.A.ia)a=!0;else{var b=null,c,g=Za(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.A.Ta);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.A.ia);c++);c==g.length&&(b=a);t("The "+b.type+" component ("+b.id+") is not "+(b.A.Ta?"powered yet":"ready yet"+(b.rb?" (waiting for notification)":""))+".");a=!1}a&&(d.A.ma?d.da(!0):d.Oa(!0))};a=
|
||||
!0;break;case "speed":this.T[b]=c;a=!0;break;case "setSpeed":this.T[b]=c,c.onclick=function(){wc(d,d.i.Na<<1,!0)},c.textContent=this.i.La.toFixed(2)+"Mhz",a=!0}return a};function xc(a,b,c){a.H+=b;c&&(a.D=a.b=0)}
|
||||
function yc(a,b){var c=30;c<a.Ea&&(c=a.Ea);2>c&&(c=2);var d=1;b&&1<a.i.Na&&a.i.Ka&&(d=a.i.Ka/a.i.yb);a.i.Pb=Math.round(1E3/30);a.i.hc=Math.floor(a.i.$a/c*d);a.i.zb=Math.floor(a.i.$a/30*d);a.i.Rb=Math.floor(a.i.$a/a.Ea*d);a.i.Qb=Math.floor(a.i.$a/2*d);b||(a.i.Za=a.i.zb,a.i.ib=a.i.Rb,a.i.hb=a.i.Qb);a.i.Ab=0}function vc(a){return a.H+a.G+a.D-a.b}function pc(a){a.i.Ka=0;a.H=a.G=a.D=a.b=0;qc(a);wc(a,1)}
|
||||
function wc(a,b,c){var d=!1;if(void 0!==b){.8>a.i.Ka/a.i.La?b=1:d=!0;a.i.Na=b;b=a.i.yb*a.i.Na;if(a.i.La!=b){a.i.La=b;b=a.i.La.toFixed(2)+"Mhz";var e=a.T.setSpeed;e&&(e.textContent=b);a.g("target speed: "+b)}c&&a.w&&a.w.mb()}xc(a,a.G);a.G=0;a.i.Va=ja();a.i.Ma=0;yc(a);return d}
|
||||
m.Oa=function(a){if(hb(this,!0)){if(!this.A.ma){wc(this);this.w&&this.w.start(this.i.Va,vc(this));this.A.ma=!0;this.A.xb=!0;this.K&&this.K.start();var b=this.T.run;b&&(b.textContent="Halt");this.w&&(this.w.va(!0),a&&this.w.mb(!0))}this.i.Ab>=this.i.$a&&yc(this,!0);this.i.jb=0;this.i.sb=ja();this.i.Ma&&(a=this.i.sb-this.i.Ma,a>this.i.Pb&&(this.i.Va+=a,this.i.Va>this.i.sb&&(this.i.Va=this.i.sb)));try{do{var c=this.A.Ra?1:this.i.hc;try{this.bb(c)}catch(e){if("number"!=typeof e)throw e;}var d=this.D-
|
||||
this.b;this.G+=d;this.i.jb+=d;xc(this,0,!0);uc(this,d);this.i.ib-=d;0>=this.i.ib&&(this.i.ib+=this.i.Rb,this.w&&zc(this.w,this.i.tb++),this.i.tb>this.Ea&&(this.i.tb=0));this.i.hb-=d;0>=this.i.hb&&(this.i.hb+=this.i.Qb,this.w&&this.w.va());this.i.Za-=d;if(0>=this.i.Za){this.i.Za+=this.i.zb;break}}while(this.A.ma)}catch(e){this.da();sc(this);this.w&&this.w.stop(ja(),vc(this));hb(this,!1);kb(this,e.stack||e.message);return}c=setTimeout;d=this.aa;this.i.Ma=ja();a=this.i.Pb;this.i.jb&&(a=Math.round(a*
|
||||
this.i.jb/this.i.zb));a-=this.i.Ma-this.i.sb;if(b=this.i.Ma-this.i.Va)this.i.Ka=Math.round(this.G/(10*b))/100,864E5<=b&&(this.H=0,wc(this));if(0>a||this.i.Ka<this.i.La)a=0;this.i.Ab+=this.i.jb;this.i.Ma+=a;c(d,a)}else sc(this),this.w&&this.w.stop(ja(),vc(this))};m.bb=function(){return 0};m.da=function(a){ib(this,!0);this.D-=this.b;this.b=0;xc(this,this.G);this.G=0;if(this.A.ma){this.A.ma=!1;this.K&&this.K.stop();var b=this.T.run;b&&(b.textContent="Run")}this.A.qb=a};
|
||||
function sc(a,b){a.w&&(zc(a.w,-1),a.w.va(b))}function Ac(a){this.Ua=a.model||8080;bc.call(this,a,1E6);this.M=Bc;pc(this);this.A.qb=this.A.Yb=!1;this.Y=0;this.J=[];this.X=0;Cc(this)}Wa(Ac,bc);function Dc(a,b){a.J.push(b)}m=Ac.prototype;m.reset=function(){this.A.ma&&this.da();Cc(this);pc(this);this.A.Sa=!1;this.parent.reset.call(this)};function Cc(a){a.j=0;a.N=0;a.O=0;a.P=0;a.R=0;a.S=0;a.V=0;a.ca=0;F(a,a.X);Ec(a,0);a.u=0}function Fc(a,b){a.X=b;F(a,b)}
|
||||
m.Ob=function(){var a=this.j+this.N+this.O+this.P+this.R+this.S+this.V|0;return a=a+this.ca+this.L+Gc(this)|0};
|
||||
m.save=function(){var a=new Hc(this);H(a,0,[this.j,this.N,this.O,this.P,this.R,this.S,this.V,this.ca,this.L,Gc(this)]);H(a,1,[this.u,this.H,this.i.Na]);for(var b=this.B,c=0,d=[],e=0;e<b.M;e++){var f=b.U[e];if(f.ya||f.Lb){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,k=0,l=[];g<f.length;){for(var p=f[g],n=g+1;n<f.length&&f[n]===p;)n++;l[k++]=n-g;l[k++]=p;g=n}if(l.length<f.length){f=l;break a}}d[h]=f}}H(a,2,d);return a.data()};
|
||||
m.restore=function(a){var b=a[0];this.j=b[0];this.N=b[1];this.O=b[2];this.P=b[3];this.R=b[4];this.S=b[5];this.V=b[6];this.ca=b[7]&65535;F(this,b[8]);Ec(this,b[9]);b=a[1];this.u=b[0];this.H=b[1];wc(this,b[3]);a:{b=this.B;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.Y){for(var f=0,h=Array(b.Y),g=0;g<e.length-1;)for(var k=e[g++],l=e[g++];k--;)h[f++]=l;e=h}f=b.U[d];if(!f||!f.restore(e)){t("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
m.oa=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.T[b]=c;this.Y++;d=!0;break;default:d=this.parent.oa.call(this,a,b,c)}return d};function Ic(a){return a.N<<8|a.O}function Jc(a,b){a.N=b>>8&255;a.O=b&255}function Kc(a){return a.P<<8|a.R}function Lc(a,b){a.P=b>>8&255;a.R=b&255}function I(a){return a.S<<8|a.V}
|
||||
function Mc(a,b){a.S=b>>8&255;a.V=b&255}function F(a,b){a.L=b&65535}function Nc(a){return a.I&256?1:0}function Oc(a){return mb[a.Z&255]?4:0}function Pc(a){return(a.Z^a.ja)&16?16:0}function Qc(a){return a.I&255?0:64}function Rc(a){return a.Z&128?128:0}function Gc(a){return a.qa&-214|Rc(a)|Qc(a)|Pc(a)|Oc(a)|Nc(a)}function Ec(a,b){a.I=a.Z=a.ja=0;b&1&&(a.I|=256);b&4||(a.Z|=1);b&16&&(a.ja|=16);b&64||(a.I|=255);b&128&&(a.Z^=192);a.qa=a.qa&-513|b&512|2}
|
||||
function Sc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b)&255}function Tc(a,b){a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?1:0))&255}function kd(a,b){a.I=a.Z=a.ja=a.j&b;(a.j|b)&8&&(a.ja^=16);return a.I}function ld(a,b){a.ja=b^255;b=a.Z=b+255&255;a.I=a.I&-256|b;return b}function md(a,b){a.ja=b;b=a.Z=b+1&255;a.I=a.I&-256|b;return b}function nd(a,b){return a.Z=a.I=a.ja=a.j|b}function J(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+1^256)&255}
|
||||
function od(a,b){b^=255;a.ja=a.j^b;return a.Z=(a.I=a.j+b+(a.I&256?0:1)^256)&255}function pd(a,b){return a.Z=a.I=a.ja=a.j^b}m.W=function(a){return this.B.W(a)};m.fa=function(a,b){this.B.fa(a,b)};function L(a){var b=a.W(a.L);F(a,a.L+1);return b}function M(a){var b=a.B.Ga(a.L);F(a,a.L+2);return b}function N(a){var b=a.B.Ga(a.ca);a.ca=a.ca+2&65535;return b}function Q(a,b){a.ca=a.ca-2&65535;a.B.ub(a.ca,b)}
|
||||
function R(a,b,c,d){d=d||2;a.T[b]&&(void 0===c&&(kb(a,"Value for "+b+" is invalid"),a.da()),c=!a.A.ma||a.A.Mb?q(c,d):"--------".substr(0,d),a.T[b].textContent!=c&&(a.T[b].textContent=c))}
|
||||
m.va=function(a){this.Y&&(a||!this.A.ma||this.A.Mb)&&(R(this,"A",this.j),R(this,"B",this.N),R(this,"C",this.O),R(this,"BC",Ic(this),4),R(this,"D",this.P),R(this,"E",this.R),R(this,"DE",Kc(this),4),R(this,"H",this.S),R(this,"L",this.V),R(this,"HL",I(this),4),R(this,"SP",this.ca,4),R(this,"PC",this.L,4),a=Gc(this),R(this,"PS",a,4),R(this,"IF",a&512?1:0,1),R(this,"SF",a&128?1:0,1),R(this,"ZF",a&64?1:0,1),R(this,"AF",a&16?1:0,1),R(this,"PF",a&4?1:0,1),R(this,"CF",a&1?1:0,1));if(a=this.T.speed)a.textContent=
|
||||
this.A.ma&&this.i.Ka?this.i.Ka.toFixed(2)+"Mhz":"Stopped"};
|
||||
m.bb=function(a){this.A.qb=!0;var b=this.A.Yb=this.F&&qd(this.F),c=a?this.A.xb?0:1:-1;this.A.xb=!1;this.D=this.b=a;do{if(this.u){var d;this.u&8&&this.qa&512?(d=199|(this.u&7)<<3,this.u&=-16,this.qa&=-513,this.M[d].call(this),d=!0):d=!1;if(d){if(!a){this.g("interrupt dispatched");break}}else if(this.u&16){this.b=0;break}}if(b){if(rd(this.F,this.L,c)){this.da();break}c=1}this.M[L(this)].call(this)}while(0<this.b);return this.A.qb?this.D-this.b:void 0===this.A.qb?0:-1};
|
||||
Ja(function(){for(var a=A(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ac(d);cb(d,c)}});function sd(){this.b-=4}function td(){F(this,M(this));this.b-=10}function ud(){F(this,N(this));this.b-=10}function vd(){var a=M(this);Q(this,this.L);F(this,a);this.b-=17}
|
||||
var Bc=[sd,function(){Jc(this,M(this));this.b-=10},function(){this.fa(Ic(this),this.j);this.b-=7},function(){Jc(this,Ic(this)+1);this.b-=5},function(){this.N=md(this,this.N);this.b-=5},function(){this.N=ld(this,this.N);this.b-=5},function(){this.N=L(this);this.b-=7},function(){var a=this.j<<1;this.j=a&255|a>>8;this.I=this.I&255|a&256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+Ic(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Ic(this));this.b-=7},function(){Jc(this,Ic(this)-
|
||||
1);this.b-=5},function(){this.O=md(this,this.O);this.b-=5},function(){this.O=ld(this,this.O);this.b-=5},function(){this.O=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(a|this.j)>>1;this.I=this.I&255|a;this.b-=4},sd,function(){Lc(this,M(this));this.b-=10},function(){this.fa(Kc(this),this.j);this.b-=7},function(){Lc(this,Kc(this)+1);this.b-=5},function(){this.P=md(this,this.P);this.b-=5},function(){this.P=ld(this,this.P);this.b-=5},function(){this.P=L(this);this.b-=7},function(){var a=this.j<<
|
||||
1;this.j=a&255|this.I>>8;this.I=this.I&255|a&256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+Kc(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(Kc(this));this.b-=7},function(){Lc(this,Kc(this)-1);this.b-=5},function(){this.R=md(this,this.R);this.b-=5},function(){this.R=ld(this,this.R);this.b-=5},function(){this.R=L(this);this.b-=7},function(){var a=this.j<<8&256;this.j=(this.I&256|this.j)>>1;this.I=this.I&255|a;this.b-=4},sd,function(){Mc(this,M(this));this.b-=10},function(){var a=
|
||||
M(this);this.B.ub(a,I(this));this.b-=16},function(){Mc(this,I(this)+1);this.b-=5},function(){this.S=md(this,this.S);this.b-=5},function(){this.S=ld(this,this.S);this.b-=5},function(){this.S=L(this);this.b-=7},function(){var a=0,b=Nc(this);if(Pc(this)||9<(this.j&15))a|=6;if(b||154<=this.j)a|=96,b=1;this.j=Sc(this,a);this.I=b?this.I|256:this.I&-257;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+I(this));this.I=this.I&255|a>>8&256;this.b-=10},function(){var a;a=M(this);a=this.B.Ga(a);Mc(this,a);this.b-=
|
||||
16},function(){Mc(this,I(this)-1);this.b-=5},function(){this.V=md(this,this.V);this.b-=5},function(){this.V=ld(this,this.V);this.b-=5},function(){this.V=L(this);this.b-=7},function(){this.j=~this.j&255;this.b-=4},sd,function(){this.ca=M(this)&65535;this.b-=10},function(){this.fa(M(this),this.j);this.b-=13},function(){this.ca=this.ca+1&65535;this.b-=5},function(){var a=I(this);this.fa(a,md(this,this.W(a)));this.b-=10},function(){var a=I(this);this.fa(a,ld(this,this.W(a)));this.b-=10},function(){this.fa(I(this),
|
||||
L(this));this.b-=10},function(){this.I|=256;this.b-=4},sd,function(){var a;Mc(this,a=I(this)+this.ca);this.I=this.I&255|a>>8&256;this.b-=10},function(){this.j=this.W(M(this));this.b-=13},function(){this.ca=this.ca-1&65535;this.b-=5},function(){this.j=md(this,this.j);this.b-=5},function(){this.j=ld(this,this.j);this.b-=5},function(){this.j=L(this);this.b-=7},function(){this.I=Nc(this)?this.I&-257:this.I|256;this.b-=4},function(){this.b-=5},function(){this.N=this.O;this.b-=5},function(){this.N=this.P;
|
||||
this.b-=5},function(){this.N=this.R;this.b-=5},function(){this.N=this.S;this.b-=5},function(){this.N=this.V;this.b-=5},function(){this.N=this.W(I(this));this.b-=7},function(){this.N=this.j;this.b-=5},function(){this.O=this.N;this.b-=5},function(){this.b-=5},function(){this.O=this.P;this.b-=5},function(){this.O=this.R;this.b-=5},function(){this.O=this.S;this.b-=5},function(){this.O=this.V;this.b-=5},function(){this.O=this.W(I(this));this.b-=7},function(){this.O=this.j;this.b-=5},function(){this.P=
|
||||
this.N;this.b-=5},function(){this.P=this.O;this.b-=5},function(){this.b-=5},function(){this.P=this.R;this.b-=5},function(){this.P=this.S;this.b-=5},function(){this.P=this.V;this.b-=5},function(){this.P=this.W(I(this));this.b-=7},function(){this.P=this.j;this.b-=5},function(){this.R=this.N;this.b-=5},function(){this.R=this.O;this.b-=5},function(){this.R=this.P;this.b-=5},function(){this.b-=5},function(){this.R=this.S;this.b-=5},function(){this.R=this.V;this.b-=5},function(){this.R=this.W(I(this));
|
||||
this.b-=7},function(){this.R=this.j;this.b-=5},function(){this.S=this.N;this.b-=5},function(){this.S=this.O;this.b-=5},function(){this.S=this.P;this.b-=5},function(){this.S=this.R;this.b-=5},function(){this.b-=5},function(){this.S=this.V;this.b-=5},function(){this.S=this.W(I(this));this.b-=7},function(){this.S=this.j;this.b-=5},function(){this.V=this.N;this.b-=5},function(){this.V=this.O;this.b-=5},function(){this.V=this.P;this.b-=5},function(){this.V=this.R;this.b-=5},function(){this.V=this.S;this.b-=
|
||||
5},function(){this.b-=5},function(){this.V=this.W(I(this));this.b-=7},function(){this.V=this.j;this.b-=5},function(){this.fa(I(this),this.N);this.b-=7},function(){this.fa(I(this),this.O);this.b-=7},function(){this.fa(I(this),this.P);this.b-=7},function(){this.fa(I(this),this.R);this.b-=7},function(){this.fa(I(this),this.S);this.b-=7},function(){this.fa(I(this),this.V);this.b-=7},function(){var a=this.L-1;if(this.J.length)for(var b=0;b<this.J.length;b++)if(this.J[b](a))return;this.u|=16;this.b-=7;
|
||||
this.F&&gb(this,-2147483648)?(F(this,a),this.F.da()):this.qa&512||(this.F&&F(this,a),this.da())},function(){this.fa(I(this),this.j);this.b-=7},function(){this.j=this.N;this.b-=5},function(){this.j=this.O;this.b-=5},function(){this.j=this.P;this.b-=5},function(){this.j=this.R;this.b-=5},function(){this.j=this.S;this.b-=5},function(){this.j=this.V;this.b-=5},function(){this.j=this.W(I(this));this.b-=7},function(){this.b-=5},function(){this.j=Sc(this,this.N);this.b-=4},function(){this.j=Sc(this,this.O);
|
||||
this.b-=4},function(){this.j=Sc(this,this.P);this.b-=4},function(){this.j=Sc(this,this.R);this.b-=4},function(){this.j=Sc(this,this.S);this.b-=4},function(){this.j=Sc(this,this.V);this.b-=4},function(){this.j=Sc(this,this.W(I(this)));this.b-=7},function(){this.j=Sc(this,this.j);this.b-=4},function(){this.j=Tc(this,this.N);this.b-=4},function(){this.j=Tc(this,this.O);this.b-=4},function(){this.j=Tc(this,this.P);this.b-=4},function(){this.j=Tc(this,this.R);this.b-=4},function(){this.j=Tc(this,this.S);
|
||||
this.b-=4},function(){this.j=Tc(this,this.V);this.b-=4},function(){this.j=Tc(this,this.W(I(this)));this.b-=7},function(){this.j=Tc(this,this.j);this.b-=4},function(){this.j=J(this,this.N);this.b-=4},function(){this.j=J(this,this.O);this.b-=4},function(){this.j=J(this,this.P);this.b-=4},function(){this.j=J(this,this.R);this.b-=4},function(){this.j=J(this,this.S);this.b-=4},function(){this.j=J(this,this.V);this.b-=4},function(){this.j=J(this,this.W(I(this)));this.b-=7},function(){this.j=J(this,this.j);
|
||||
this.b-=4},function(){this.j=od(this,this.N);this.b-=4},function(){this.j=od(this,this.O);this.b-=4},function(){this.j=od(this,this.P);this.b-=4},function(){this.j=od(this,this.R);this.b-=4},function(){this.j=od(this,this.S);this.b-=4},function(){this.j=od(this,this.V);this.b-=4},function(){this.j=od(this,this.W(I(this)));this.b-=7},function(){this.j=od(this,this.j);this.b-=4},function(){this.j=kd(this,this.N);this.b-=4},function(){this.j=kd(this,this.O);this.b-=4},function(){this.j=kd(this,this.P);
|
||||
this.b-=4},function(){this.j=kd(this,this.R);this.b-=4},function(){this.j=kd(this,this.S);this.b-=4},function(){this.j=kd(this,this.V);this.b-=4},function(){this.j=kd(this,this.W(I(this)));this.b-=7},function(){this.j=kd(this,this.j);this.b-=4},function(){this.j=pd(this,this.N);this.b-=4},function(){this.j=pd(this,this.O);this.b-=4},function(){this.j=pd(this,this.P);this.b-=4},function(){this.j=pd(this,this.R);this.b-=4},function(){this.j=pd(this,this.S);this.b-=4},function(){this.j=pd(this,this.V);
|
||||
this.b-=4},function(){this.j=pd(this,this.W(I(this)));this.b-=7},function(){this.j=pd(this,this.j);this.b-=4},function(){this.j=nd(this,this.N);this.b-=4},function(){this.j=nd(this,this.O);this.b-=4},function(){this.j=nd(this,this.P);this.b-=4},function(){this.j=nd(this,this.R);this.b-=4},function(){this.j=nd(this,this.S);this.b-=4},function(){this.j=nd(this,this.V);this.b-=4},function(){this.j=nd(this,this.W(I(this)));this.b-=7},function(){this.j=nd(this,this.j);this.b-=4},function(){J(this,this.N);
|
||||
this.b-=4},function(){J(this,this.O);this.b-=4},function(){J(this,this.P);this.b-=4},function(){J(this,this.R);this.b-=4},function(){J(this,this.S);this.b-=4},function(){J(this,this.V);this.b-=4},function(){J(this,this.W(I(this)));this.b-=7},function(){J(this,this.j);this.b-=4},function(){Qc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Jc(this,N(this));this.b-=10},function(){var a=M(this);Qc(this)||F(this,a);this.b-=10},td,function(){var a=M(this);Qc(this)||(Q(this,this.L),F(this,a),this.b-=
|
||||
6);this.b-=11},function(){Q(this,Ic(this));this.b-=11},function(){this.j=Sc(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,0);this.b-=11},function(){Qc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},ud,function(){var a=M(this);Qc(this)&&F(this,a);this.b-=10},td,function(){var a=M(this);Qc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},vd,function(){this.j=Tc(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,8);this.b-=11},function(){Nc(this)||(F(this,N(this)),this.b-=6);
|
||||
this.b-=5},function(){Lc(this,N(this));this.b-=10},function(){var a=M(this);Nc(this)||F(this,a);this.b-=10},function(){var a=L(this);Jb(this.B,a,this.j,this.L+-2&65535);this.b-=10},function(){var a=M(this);Nc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Kc(this));this.b-=11},function(){this.j=J(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,16);this.b-=11},function(){Nc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},ud,function(){var a=M(this);Nc(this)&&F(this,
|
||||
a);this.b-=10},function(){var a=L(this);this.j=yb(this.B,a,this.L+-2&65535)&255;this.b-=10},function(){var a=M(this);Nc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},vd,function(){this.j=od(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,24);this.b-=11},function(){Oc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){Mc(this,N(this));this.b-=10},function(){var a=M(this);Oc(this)||F(this,a);this.b-=10},function(){var a=N(this);Q(this,I(this));Mc(this,a);this.b-=18},function(){var a=
|
||||
M(this);Oc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,I(this));this.b-=11},function(){this.j=kd(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,32);this.b-=11},function(){Oc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){F(this,I(this));this.b-=5},function(){var a=M(this);Oc(this)&&F(this,a);this.b-=10},function(){var a=I(this);Mc(this,Kc(this));Lc(this,a);this.b-=5},function(){var a=M(this);Oc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=
|
||||
11},vd,function(){this.j=pd(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,40);this.b-=11},function(){Rc(this)||(F(this,N(this)),this.b-=6);this.b-=5},function(){var a=N(this);Ec(this,a);this.j=a>>8;this.b-=10},function(){var a=M(this);Rc(this)||F(this,a);this.b-=10},function(){this.qa&=-513;this.b-=4},function(){var a=M(this);Rc(this)||(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},function(){Q(this,Gc(this)&255|this.j<<8);this.b-=11},function(){this.j=nd(this,L(this));this.b-=7},function(){Q(this,
|
||||
this.L);F(this,48);this.b-=11},function(){Rc(this)&&(F(this,N(this)),this.b-=6);this.b-=5},function(){this.ca=I(this)&65535;this.b-=5},function(){var a=M(this);Rc(this)&&F(this,a);this.b-=10},function(){this.qa|=512;this.b-=4},function(){var a=M(this);Rc(this)&&(Q(this,this.L),F(this,a),this.b-=6);this.b-=11},vd,function(){J(this,L(this));this.b-=7},function(){Q(this,this.L);F(this,56);this.b-=11}];
|
||||
function S(a){w.call(this,"ChipSet",a,S,32768);var b=a.model;b&&!wd[b]&&t("Unrecognized ChipSet model: "+b);this.Ua=wd[b]||xd;a.sound&&(this.X=null,window&&(this.X=window.AudioContext||window.webkitAudioContext),this.X&&new this.X);C(this)}Wa(S);var xd=1978.1,wd={SI1978:xd};m=S.prototype;m.oa=function(){return!1};
|
||||
m.Ha=function(a,b,c,d){this.B=b;this.b=c;this.F=d;this.w=a;if(this.Ua==xd){var e;a=yd;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.w[g]?t("Input port "+r(g)+" already registered"):c.w[g]=[h,!1]}var k;e=zd;void 0===k&&(k=0);for(var l in e)if(f=b,a=+l+k,c=e[l].bind(this),void 0!==c)for(d=+l+k;d<=a;d++)void 0!==f.u[d]?t("Output port "+r(d)+" already registered"):f.u[d]=[c,!1]}};
|
||||
m.Ba=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.Aa=function(a){return a?this.save():!0};m.reset=function(){this.G=this.H=this.D=this.u=this.M=this.K=this.J=0};m.save=function(){var a=new Hc(this);this.Ua==xd&&H(a,0,[this.J,this.K,this.M,this.u,this.D,this.G,this.H]);return a.data()};m.restore=function(a){a=a[0];this.Ua==xd&&(this.J=a[0],this.K=a[1],this.M=a[2],this.u=a[3],this.D=a[4],this.G=a[5],this.H=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
||||
m.cc=function(a,b){var c=this.J;db(this,a,null,b,"STATUS0",c);return c};m.dc=function(a,b){var c=this.K;db(this,a,null,b,"STATUS1",c);return c};m.ec=function(a,b){var c=this.M;db(this,a,null,b,"STATUS2",c);return c};m.bc=function(a,b){var c=this.u>>8-this.D&255;db(this,a,null,b,"SHIFT.RESULT",c);return c};m.ic=function(a,b,c){db(this,a,b,c,"SHIFT.COUNT",null);this.D=b};m.kc=function(a,b,c){db(this,a,b,c,"SOUND1",null);this.G=b};
|
||||
m.jc=function(a,b,c){db(this,a,b,c,"SHIFT.DATA",null);this.u=b<<8|this.u>>8};m.lc=function(a,b,c){db(this,a,b,c,"SOUND2",null);this.H=b};m.mc=function(a,b,c){db(this,a,b,c,"WATCHDOG",null)};var yd={0:S.prototype.cc,1:S.prototype.dc,2:S.prototype.ec,3:S.prototype.bc},zd={2:S.prototype.ic,3:S.prototype.kc,4:S.prototype.jc,5:S.prototype.lc,6:S.prototype.mc};Ja(function(){for(var a=A(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new S(d);cb(d,c)}});
|
||||
function Ad(a){w.call(this,"ROM",a,Ad);this.w=null;this.H=a.addr;this.u=a.size;this.J=a.writable;this.D=a.alias;this.G=a.file;this.K=ba(this.G);if(this.G){a=this.G;var b=ca(this.K);"json"!=b&&"hex"!=b&&(a=oa()+"/api/v1/dump?file="+this.G+"&format=bytes&decimal=true");var c=this;na(a,null,!0,function(a,b,f){Bd(c,a,b,f)})}}Wa(Ad);var Cd=[0,5];Ad.prototype.Ha=function(a,b,c,d){this.B=b;this.b=c;this.F=d;Dd(this)};
|
||||
Ad.prototype.Ba=function(){if(this.Da){if(this.F){var a=this.F,b=this.id,c=this.H,d=this.u,e=this.Da,f=[],h;for(h in e){var g=e[h];"number"==typeof g&&(e[h]=g={o:g});var k=g.o,l=g.a;if(void 0!==k){var p=f,k=[k>>>0,h],n=ia(p,k,a.Fb);0>n&&p.splice(-(n+1),0,k)}l&&(g.a=l.replace(/''/g,'"'))}a.J.push({nc:b,C:c,gc:d,Da:e,Db:f})}delete this.Da}return!0};Ad.prototype.Aa=function(){return!0};
|
||||
function Bd(a,b,c,d){if(d)a.pa("Unable to load system ROM (error "+d+": "+b+")");else{Ya(a.Hb,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.w=f;else if(h)for(a.w=Array(4*h.length),d=c=0;c<h.length;c++)a.w[d++]=h[c]&255,a.w[d++]=h[c]>>8&255,a.w[d++]=h[c]>>16&255,a.w[d++]=h[c]>>24&255;else a.w=e;a.Da=e.symbols;if(!a.w.length){t("Empty ROM: "+b);return}if(1==a.w.length){t(a.w[0]);return}}catch(g){a.pa("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.w=Array(b.length),e=0;e<b.length;e++)a.w[e]=aa(b[e],16);Dd(a)}}
|
||||
function Dd(a){if(!jb(a))if(!a.G)C(a);else if(a.w&&a.B){a.u||(a.u=a.w.length);if(a.w.length!=a.u)kb(a,"ROM size (0x"+q(a.w.length)+") does not match specified size ("+("0x"+q(a.u))+")");else if(Ed(a,a.H)){var b=[];"number"==typeof a.D?b.push(a.D):null!=a.D&&a.D.length&&(b=a.D);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.B,h=d.u,g=[],k=d.H>>>f.ea;0<h&&k<f.U.length;)g.push(f.U[k++]),h-=f.ua;f=d.B;d=d.u;h=0;for(e>>>=f.ea;0<d&&e<f.U.length;){k=g[h++];if(!k)break;f.U[e++]=k;d-=f.ua}}delete a.w}C(a)}}
|
||||
function Ed(a,b){if(sb(a.B,b,a.u,a.J?1:Qb)){var c;for(c=0;c<a.w.length;c++)wb(a.B,b+c,a.w[c]);if(a.J&&256==b){for(c=0;c<Cd.length;c++)wb(a.B,Cd[c],118);Dc(a.b,function(a){return function(b){if(0<=Cd.indexOf(b)){var c=!1,h=a.b,g=a.F;if(5==b)switch(c=!0,h.O){case 2:Fd(a,String.fromCharCode(h.R));break;case 9:for(var k=Kc(h),l="",p=255;p--;){var n=a.b.W(k++);if(36==n)break;l+=String.fromCharCode(n)}Fd(a,l);break;default:c=!1}c?ud.call(h):g&&(a.g("\nCP/M vector "+r(b)),F(h,b),g.da());b=!0}else b=!1;return b}}(a));
|
||||
Fc(a.b,b)}return!0}return!1}function Fd(a,b){b=b.replace(/\r/g,"");a.ta&&(a.ta.value+=b,a.ta.scrollTop=a.ta.scrollHeight)}Ja(function(){for(var a=A(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Ad(d);cb(d,c)}});function Gd(a){w.call(this,"RAM",a,Gd);this.D=a.addr;this.u=a.size;this.w=!1}Wa(Gd);m=Gd.prototype;m.Ha=function(a,b,c,d){this.B=b;this.b=c;this.F=d;C(this)};m.Ba=function(a,b){b||this.reset();return!0};m.Aa=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.w&&this.u&&sb(this.B,this.D,this.u,1)&&(this.w=!0,this.status(Math.floor(this.u/1024)+"Kb allocated"));this.w||t("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};Ja(function(){for(var a=A(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Gd(d);cb(d,c)}});function Hd(a){w.call(this,"Keyboard",a,Hd,65536);C(this)}Wa(Hd);
|
||||
Ja(function(){for(var a=A(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Hd(d);cb(d,c)}});
|
||||
function Id(a,b,c,d,e){var f=this;this.sa=va("Gecko/");var h=["","moz","webkit","ms"];w.call(this,"Video",a,Id,262144);this.Y=a.screenWidth;this.M=a.screenHeight;this.ba=a.bufferAddr;this.J=a.bufferCols;this.K=a.bufferRows;this.la=a.bufferBits||1;this.pb=a.bufferLeft||0;this.na=a.bufferRotate;this.Zb=a.interruptRate;this.Ea=a.refreshRate||60;this.G=b;this.H=c;this.wa=d||b||null;b=a.smoothing;(c=Ra.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<h.length;c++)d=(d=h[c])?d+"ImageSmoothingEnabled":
|
||||
"imageSmoothingEnabled",this.H[d]=b;this.Fa=a.screenRotate;90==this.Fa&&(this.H.translate(0,this.M),this.H.rotate(-this.Fa*Math.PI/180),this.H.scale(this.M/this.Y,this.Y/this.M));this.Ia=[[0,0,0,255],[255,255,255,255]];a=this.J;b=this.K;this.na&&(a=this.K,b=this.J);this.ka=this.H.createImageData(a,b);this.D=document.createElement("canvas");this.D.width=a;this.D.height=b;this.ra=this.D.getContext("2d");if(this.u=e)if(this.u.Pa=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,
|
||||
this.u.Pa){for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){Jd(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){Jd(f,null)},!1);break}}}Wa(Id);
|
||||
Id.prototype.Ha=function(a,b,c,d){this.w=a;this.B=b;this.b=c;this.F=d;this.aa=(this.J*this.la>>3)*this.K;sb(this.B,this.ba,this.aa,3)&&(this.xa=this.aa>>1,this.Ca=16/this.la|0,this.ga=!1,void 0===this.X||this.X.length!=this.xa)&&(this.X=Array(this.xa));C(this)};Id.prototype.oa=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.T[b]=c,this.u&&this.u.Pa?c.onclick=function(){d.Pa()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
Id.prototype.Pa=function(){var a=!1;if(this.u){if(this.u.Pa){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Y/this.M;b>c&&(a=Math.round(c/b*100)+"%")}this.sa?(this.G.style.width=a,this.G.style.width=a,this.G.style.display="block",this.G.style.margin="auto"):(this.u.style.width=a,this.u.style.height="auto");this.u.style.backgroundColor="black";this.u.Pa();a=!0}this.wa&&this.wa.focus()}return a};
|
||||
function Jd(a,b){!b&&a.u&&(a.sa?a.G.style.width=a.G.style.height="":a.u.style.width=a.u.style.height="");fb(a,"notifyFullScreen("+b+")",!0)}
|
||||
Ja(function(){for(var a=A(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=y(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <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<=pa().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||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("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");va("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e=e.getContext("2d");d=new Hd(d,0,e);cb(d,c)}});
|
||||
function Id(a){w.call(this,"Debugger",a,Id);this.aa=Jd;this.ka=this.Na=this.M=0;this.Y=T();this.Gb=T();this.G=-1;this.D=[];this.na=!1;this.ma=T();this.J=[];this.ra={};this.u=this.ba=this.H=[];Kd(this);this.Ba=0;Ld(this);this.bb=[];Md(this,a.messages);this.tb=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return qc(b,a)}):void 0===global.$&&(global.$=function(a){return qc(b,a)})}Wa(Id);
|
||||
var Nd={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Jd=8080,Od="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
|
||||
Pd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Qd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Rd=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
|
||||
(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());var f=+(d.aspect||Ra.aspect);f&&.3<=f&&3.33>=f&&(Ha("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");va("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var h=e.getContext("2d"),d=new Id(d,e,h,f,c);cb(d,c)}});
|
||||
function Kd(a){w.call(this,"Debugger",a,Kd);this.style=Ld;this.ga=this.Ca=this.M=0;this.Y=T();this.Gb=T();this.G=-1;this.D=[];this.la=!1;this.ka=T();this.J=[];this.na={};this.u=this.aa=this.H=[];Md(this);this.wa=0;Nd(this);this.Fa=[];Od(this,a.messages);this.Ia=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return rc(b,a)}):void 0===global.$&&(global.$=function(a){return rc(b,a)})}Wa(Kd);
|
||||
var Pd={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",ln:"list nearest symbol(s)",m:"messages","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble",v:"print version","var":"assign variable"},Ld=8080,Qd="NONE ACI ADC ADD ADI ANA ANI CALL CC CM CNC CNZ CP CPE CPO CZ CMA CMC CMP CPI DAA DAD DCR DCX DI EI HLT IN INR INX JMP JC JM JNC JNZ JP JPE JPO JZ LDA LDAX LHLD LXI MOV MVI NOP ORA ORI OUT PCHL POP PUSH RAL RAR RET RC RM RNC RNZ RP RPE RPO RZ RLC RRC RST SBB SBI SHLD SPHL STA STAX STC SUB SUI XCHG XRA XRI XTHL".split(" "),
|
||||
Rd="NONE ADC ADC ADD ADD AND AND CALL CALLC CALLS CALLNC CALLNZ CALLNS CALLP CALLNP CALLZ NOT CMC CMP CMP DAA ADD DEC DEC CLI STI HLT IN INC INC JMP JC JS JNC JNZ JNS JP JNP JZ MOV MOV MOV MOV MOV MOV NOP OR OR OUT JMP POP PUSH RCL RCR RET RETC RETS RETNC RETNZ RETNS RETP RETNP RETZ ROL ROR RST SBB SBB MOV MOV MOV MOV STC SUB SUB XCHG XOR XOR XCHG".split(" "),Sd="B C D E H L M A BC DE HL SP PC PSW".split(" "),Td=[[45],[42,2067,32],[71,2131,18193],[29,2067],[28,17],[22,17],[44,17,32],[63],[45,32768],
|
||||
[21,18963,2067],[40,18193,2131],[23,2067],[28,273],[22,273],[44,273,32],[64],[45,32768],[42,2323,32],[71,2387,18193],[29,2323],[28,529],[22,529],[44,529,32],[52],[45,32768],[21,18963,2323],[40,18193,2387],[23,2323],[28,785],[22,785],[44,785,32],[53],[45,32768],[42,2579,32],[68,115,18963],[29,2579],[28,1041],[22,1041],[44,1041,32],[20],[45,32768],[21,18963,2579],[41,18963,115],[23,2579],[28,1297],[22,1297],[44,1297,32],[16,18193],[45,32768],[42,2835,32],[70,115,18193],[29,2835],[28,1617],[22,1617],
|
||||
[44,1617,32],[72],[45,32768],[21,18963,2835],[39,18193,115],[23,2835],[28,1809],[22,1809],[44,1809,32],[17],[43,17,17],[43,17,273],[43,17,529],[43,17,785],[43,17,1041],[43,17,1297],[43,17,1617],[43,17,1809],[43,273,17],[43,273,273],[43,273,529],[43,273,785],[43,273,1041],[43,273,1297],[43,273,1617],[43,273,1809],[43,529,17],[43,529,273],[43,529,529],[43,529,785],[43,529,1041],[43,529,1297],[43,529,1617],[43,529,1809],[43,785,17],[43,785,273],[43,785,529],[43,785,785],[43,785,1041],[43,785,1297],[43,
|
||||
785,1617],[43,785,1809],[43,1041,17],[43,1041,273],[43,1041,529],[43,1041,785],[43,1041,1041],[43,1041,1297],[43,1041,1617],[43,1041,1809],[43,1297,17],[43,1297,273],[43,1297,529],[43,1297,785],[43,1297,1041],[43,1297,1297],[43,1297,1617],[43,1297,1809],[43,1617,17],[43,1617,273],[43,1617,529],[43,1617,785],[43,1617,1041],[43,1617,1297],[26],[43,1617,1809],[43,1809,17],[43,1809,273],[43,1809,529],[43,1809,785],[43,1809,1041],[43,1809,1297],[43,1809,1617],[43,1809,1809],[3,18193,17],[3,18193,273],
|
||||
[3,18193,529],[3,18193,785],[3,18193,1041],[3,18193,1297],[3,18193,1617],[3,18193,1809],[2,18193,17],[2,18193,273],[2,18193,529],[2,18193,785],[2,18193,1041],[2,18193,1297],[2,18193,1617],[2,18193,1809],[73,18193,17],[73,18193,273],[73,18193,529],[73,18193,785],[73,18193,1041],[73,18193,1297],[73,18193,1617],[73,18193,1809],[66,18193,17],[66,18193,273],[66,18193,529],[66,18193,785],[66,18193,1041],[66,18193,1297],[66,18193,1617],[66,18193,1809],[5,18193,17],[5,18193,273],[5,18193,529],[5,18193,785],
|
||||
[5,18193,1041],[5,18193,1297],[5,18193,1617],[5,18193,1809],[76,18193,17],[76,18193,273],[76,18193,529],[76,18193,785],[76,18193,1041],[76,18193,1297],[76,18193,1617],[76,18193,1809],[46,18193,17],[46,18193,273],[46,18193,529],[46,18193,785],[46,18193,1041],[46,18193,1297],[46,18193,1617],[46,18193,1809],[18,18193,17],[18,18193,273],[18,18193,529],[18,18193,785],[18,18193,1041],[18,18193,1297],[18,18193,1617],[18,18193,1809],[58],[50,2067],[34,51],[30,51],[11,51],[51,2067],[4,18193,33],[65,128],[62],
|
||||
[54],[38,51],[30,32819],[15,51],[7,51],[1,18193,33],[65,128],[57],[50,2323],[33,51],[48,33,18193],[10,51],[51,2323],[74,18193,33],[65,128],[55],[54,32768],[31,51],[27,18193,33],[8,51],[7,32819],[67,18193,33],[65,128],[61],[50,2579],[37,51],[78,19283,18963],[14,51],[51,2579],[6,18193,33],[65,128],[60],[49,2579],[36,51],[75,18963,18707],[13,51],[7,32819],[77,18193,33],[65,128],[59],[50,3347],[35,51],[24],[12,51],[51,3347],[47,18193,33],[65,128],[56],[69,19219,18963],[32,51],[25],[9,51],[7,32819],[19,
|
||||
18193,33],[65,128]],Sd={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Id.prototype;
|
||||
m.Fa=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=cc(a,"messages"))&&Md(this,a);this.Db=Rd;Td(this,function(a){a:{var b=d.B.T,c=a[0],g=a=0,k=b.length;if(c){a=W(X(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ea;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=Ub[c],p&&d.g(q(p.id)+" %"+q(g<<d.B.ea)+" %%"+q(p.C)+" "+r(p.mb)+" "+r(p.size)+
|
||||
" "+l),c!=Ob&&(c=-1),l=0);a+=d.B.ua;g++}}});C(this)};
|
||||
m.qa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.Aa=this.V[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",qc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.G<d.D.length-1&&(b=d.D[++d.G]):40==a.keyCode&&(0<d.G?b=d.D[--d.G]:(b="",d.G=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.V[b]=c,Da(c,function(){if(d.Aa){var a=d.Aa.value;d.Aa.value=
|
||||
"";qc(d,a,!0);return!0}return!1}),!0;case "step":return this.V[b]=c,Da(c,function(a){var b=!1;hb(d,!0)||(gb(d,!0),b=d.$a(a?1:0),gb(d,!1));return b}),!0}return!1};m.lb=function(){this.Aa&&this.Aa.focus()};function W(a){a=a&&a.C;null==a&&(a=-1);return a}m.W=function(a,b){var c=255,d=W(a);-1!==d&&(c=tb(this.B,d),b&&Ud(a,b));return c};m.Ea=function(a,b){var c=65535,d=W(a);-1!==d&&(c=ub(this.B,d),b&&Ud(a,b));return c};m.ga=function(a,b,c){var d=W(a);-1!==d&&(vb(this.B,d,b),c&&Ud(a,c),rc(this.b,!0))};
|
||||
m.sb=function(a,b,c){var d=W(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.D)>>>e.ea;f!=e.B?e.T[h].Bb(f,b&65535,d):(e.T[h++].nb(f,b&255,d),e.T[h&e.K].nb(0,b>>8&255,d+1));c&&Ud(a,c);rc(this.b,!0)}};function T(a){return{C:a,xa:!1}}function Vd(a){return[a.C,a.xa]}function Wd(a){return{C:a[0],xa:a[1]}}
|
||||
function X(a,b,c){var d;c=(c?a.Y:a.Gb).C;if(void 0!==b){d=b=Xd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Ca[d];if(void 0!==f){d=f.o;void 0!==d&&(e=T(d));break}}if(d=e)return d;c=Yd(a,b,void 0)}null!=c&&(d=T(c));return d}function Zd(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Wb=$d(a,b.Ub=c[2]))}function Ud(a,b){null!=a.C&&(a.C+=b||1)}function Z(a){return q(a,4)}
|
||||
function ae(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.W(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Md(a,b){a.F=a;a.ha=a.Xb=1073741824;a.Ga=null;var c=$d(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Sd)0<=ma(c,d)&&(a.ha|=Sd[d],a.g(d+" messages enabled"))}function Td(a,b){for(var c in Sd)if(64==Sd[c]){a.bb[c]=b;break}}
|
||||
function be(a,b){var c;a=a.toUpperCase();null==b?c=ma(Qd,a):(c=ma(Qd,a.substr(b,3)),0>c&&(c=ma(Qd,a.substr(b,2))));return c}function ce(a,b){var c=0,d=de(a,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:c=4}return c?q(d,c):"??"}
|
||||
function de(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Hc(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Jc(d);break;case 4:c=d.S;break;case 5:c=d.U;break;case 10:c=I(d);break;case 6:c=d.W(I(d));break;case 11:c=d.ca;break;case 12:c=d.L;break;case 13:c=d.j<<8|Fc(d)&255}}return c}
|
||||
function ee(a,b){b=Xd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=be(b,c+1),0<=e&&(b=b.substr(0,c)+ce(a,e)+b.substr(c+1+Qd[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=X(a,e))?(d=e+' "'+ae(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=X(a,e))?(Ud(d),d=e+' "'+
|
||||
ae(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(T(this.b.L).C));if(!this.Ga||a!=this.Ga)if(this.Ga=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Xa=0;c.D-=c.b;c.b=0;rc(c)}};function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ha&g)!=g||a.message(b.cb+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
|
||||
function Ld(a){var b;if(pd(a)){if(!a.X||!a.X.length){a.X=Array(1E3);for(b=0;b<a.X.length;b++)a.X[b]=T();a.sa=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.X&&a.X.length&&a.g("instruction history buffer freed"),a.sa=0,a.X=[],a.K=[]}m.Ma=function(a){if(!fe(this))return!1;this.b.Ma(a);return!0};
|
||||
m.$a=function(a,b,c){if(!fe(this))return!1;this.M=0;a||pd(this)&&qd(this,this.b.L,0);try{var d=this.b.$a(a);0<d&&(this.M+=d,wc(this.b,d,!0),tc(this.b,d),this.ka++)}catch(e){"number"!=typeof e&&(this.M=0,jb(this.b,e.stack||e.message))}!1!==c&&rc(this.b);this.va(b||!1);return 0<this.M};m.da=function(a){this.b&&this.b.da(a)};m.va=function(a){void 0===a&&(a=!0);this.Y=T(this.b.L);a&&1!=this.fa?ge(this):he(this)};
|
||||
function fe(a){var b;if(b=a.b&&ib(a.b))b=a.b,b.A.ia?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!hb(a.b)?(a=a.b,a.A.Qa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.za=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.ya=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Ld(this);this.ka=this.Na=0;this.Ga=null;this.M=0;this.Y=T(this.b.L);this.A.la=!1;ie(this);a||this.va()};
|
||||
m.save=function(){var a=new Gc(this);H(a,0,Vd(this.Y));H(a,1,Vd(this.ma));H(a,2,[this.D,this.na,this.ha]);H(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Wd(a[b++]),this.ma=Wd(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.na=a[b][1],this.ha|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.fa||this.g("running");this.A.la=!0;this.$b=a;this.ec=b};
|
||||
m.stop=function(a,b){if(this.A.la){this.A.la=!1;this.M=b-this.ec;if(!this.fa){var c="stopped";if(this.M){var d=a-this.$b,e=0<d?Math.round(1E3*this.M/d):0,c=c+" (";pd(this)&&(c+=this.ka+" opcodes, ",this.Na-=this.ka,this.ka=0);c+=this.M+" cycles, "+d+" ms, "+e+" hz)"}else fb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.va(!0);this.lb();ie(this,this.b.L)}};function pd(a){return 1<a.u.length||!!a.Ba}
|
||||
function qd(a,b,c){var d=a.b;if(0<c&&(a.Ba&&!--a.Ba||Yb(a,b,1,a.u)))return!0;0<=c&&a.K.length&&(a.ka++,b=tb(a.B,b),null!=b&&(a.K[b][1]++,b=a.X[a.sa],b.C=d.L,b.xa=!1,++a.sa==a.X.length&&(a.sa=0)));return!1}function Gb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.da(!0)}function Jb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.da(!0)}
|
||||
function Kd(a){var b,c;a.u=["bp"];if(void 0!==a.ba)for(b=1;b<a.ba.length;b++){c=a.ba[b];var d=a.B;Zb(d.T[W(c)>>>d.ea],!1)}a.ba=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.B,Zb(d.T[W(c)>>>d.ea],!0);a.H=["bw"];a.Mb=0}m.Ha=function(a,b,c){var d=!0;c||je(this,a,b,!1,!0);if(a!=this.u){var e=W(b);if(-1===e)this.g("invalid address: "+Z(b.C)),d=!1;else{var f=this.B;f.T[e>>>f.ea].Ha(e&f.B,a==this.H)}}d&&(a.push(b),c?b.xa=!0:(ke(this,a,a.length-1,"set"),Ld(this)));return d};
|
||||
function je(a,b,c,d,e){var f=!1;c=W(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==W(g)&&(!d||g.xa)){f=!0;g.xa||e||ke(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(d=a.B,Zb(d.T[c>>>d.ea],b==a.H));g.xa||Ld(a);break}}return f}function le(a,b){for(var c=1;c<b.length;c++)ke(a,b,c);return b.length-1}function ke(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.C)+(d?" "+d:c.Ub?' "'+c.Ub+'"':""))}
|
||||
function ie(a,b){if(void 0!==b)Yb(a,b,1,a.u,!0),a.fa=0;else for(var c=1;c<a.u.length;c++){var d=a.u[c];if(d.xa){if(!je(a,a.u,d,!0))break;c=0}}}
|
||||
function Yb(a,b,c,d,e){var f=!1;if(!a.Mb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.xa)for(var k=W(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.xa&&(je(a,d,g,!0),e=!0);if(p=g.Wb){for(var f=!1,n=0;n<p.length;n++)if(!me(a,p[n],!0)){if(p[n].indexOf("if")){f=!0;break}for(var u=n+1;u<p.length&&p[u].indexOf("else");u++)n++;if(u==p.length){f=!0;break}}a.b.A.la||(f=!0)}if(f){e||ke(a,d,h,"hit");break}}}a.Mb--;return f}
|
||||
function ne(a,b,c,d){for(var e=T(b.C),f=a.W(b,1),h=a.Db[f],g="",k=(8086!=a.aa?Od:Pd)[h[0]],l=h.length-1,p=0,n,u=1;u<=l;u++){var z="";n=h[u];if(void 0!==n&&!(n&16384&&a.aa==Jd)){var v=n&240;if(v){var O=n&15;O?p=O:n|=p;n&61440||(n|=1==u?8192:4096);if(v&32)a:{var z=a,v=n,O=b,B=" ";switch(v&15){case 1:B=q(z.W(O,1),2);break;case 2:B=q(z.W(O,1)<<24>>24,4);break;case 3:B=q(z.Ea(O,2),4);break;default:z="imm("+r(v)+")";break a}8086==z.aa&&v&64?B="["+B+"]":v&16||(B=(z.aa==Jd?"$":"0x")+B);z=B}else v&16?(z=(n&
|
||||
3840)>>8,v=Qd[z],8086==a.aa&&n&64&&(6==z&&(v="HL"),v="["+v+"]"),z=v):v&128&&(z=(f>>3&7).toString());if(!z||!z.length){g="INVALID";break}0<g.length&&(g+=",");g+=z||"???"}}}f="";h=Z(e.C)+" ";if(-1!==e.C&&-1!==b.C){do if(f+=q(a.W(e,1),2),null==e.C)break;while(e.C!=b.C)}h+=ga(f,10);h=h+(n&32768?"*":" ")+ga(k,7);g&&(h+=" "+g);c&&(h=ga(h,40)+";"+c,h=a.b.A.Pa?h+("cycles="+uc(a.b).toString()+" cs="+q(a.b.i.eb)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Me(a,b){var c;switch(b){case "I":c=a.b.pa&512;break;case "S":c=Qc(a.b);break;case "Z":c=Pc(a.b);break;case "A":c=Oc(a.b);break;case "P":c=Nc(a.b);break;case "C":c=Mc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Ne(a,b){return Qd[b]+"="+ce(a,b)+" "}function Oe(a){return Ne(a,7)+Ne(a,8)+Ne(a,9)+Ne(a,10)+Ne(a,11)+Me(a,"I")+Me(a,"S")+Me(a,"Z")+Me(a,"A")+Me(a,"P")+Me(a,"C")}
|
||||
var Pe={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Qe(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
18193,33],[65,128]],Ud={cpu:1,bus:64,mem:128,port:256,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,disk:2097152,serial:8388608,speaker:33554432,computer:67108864,log:536870912,warn:1073741824,halt:-2147483648};m=Kd.prototype;
|
||||
m.Ha=function(a,b,c,d){this.B=b;this.b=c;this.w=a;(a=oc(a,"messages"))&&Od(this,a);this.pb=Td;Vd(this,function(a){a:{var b=d.B.U,c=a[0],g=a=0,k=b.length;if(c){a=W(X(d,c));if(-1===a){d.g("invalid address: "+c);break a}g=a>>>d.B.ea;k=1}d.g("blockid physical blockaddr used size type");d.g("-------- --------- ---------- ------ ------ ----");for(var c=-1,l=0;k--;){var p=b[g];p.type==c?l++||d.g("..."):(c=p.type,l=Vb[c],p&&d.g(q(p.id)+" %"+q(g<<d.B.ea)+" %%"+q(p.C)+" "+r(p.nb)+" "+r(p.size)+
|
||||
" "+l),c!=Pb&&(c=-1),l=0);a+=d.B.ua;g++}}});C(this)};
|
||||
m.oa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.sa=this.T[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",rc(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?d.G<d.D.length-1&&(b=d.D[++d.G]):40==a.keyCode&&(0<d.G?b=d.D[--d.G]:(b="",d.G=-1)),null!=b){var h=b.length;c.value=b;c.setSelectionRange(h,h)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.T[b]=c,Da(c,function(){if(d.sa){var a=d.sa.value;d.sa.value=
|
||||
"";rc(d,a,!0);return!0}return!1}),!0;case "step":return this.T[b]=c,Da(c,function(a){var b=!1;ib(d,!0)||(hb(d,!0),b=d.bb(a?1:0),hb(d,!1));return b}),!0}return!1};m.mb=function(){this.sa&&this.sa.focus()};function W(a){a=a&&a.C;null==a&&(a=-1);return a}m.W=function(a,b){var c=255,d=W(a);-1!==d&&(c=ub(this.B,d),b&&Wd(a,b));return c};m.Ga=function(a,b){var c=65535,d=W(a);-1!==d&&(c=vb(this.B,d),b&&Wd(a,b));return c};m.fa=function(a,b,c){var d=W(a);-1!==d&&(wb(this.B,d,b),c&&Wd(a,c),sc(this.b,!0))};
|
||||
m.ub=function(a,b,c){var d=W(a);if(-1!==d){var e=this.B,f=d&e.B,h=(d&e.D)>>>e.ea;f!=e.B?e.U[h].Cb(f,b&65535,d):(e.U[h++].ob(f,b&255,d),e.U[h&e.K].ob(0,b>>8&255,d+1));c&&Wd(a,c);sc(this.b,!0)}};function T(a){return{C:a,za:!1}}function Xd(a){return[a.C,a.za]}function Yd(a){return{C:a[0],za:a[1]}}
|
||||
function X(a,b,c){var d;c=(c?a.Y:a.Gb).C;if(void 0!==b){d=b=Zd(a,b);var e;if(d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.J.length;c++){var f=a.J[c].Da[d];if(void 0!==f){d=f.o;void 0!==d&&(e=T(d));break}}if(d=e)return d;c=$d(a,b,void 0)}null!=c&&(d=T(c));return d}function ae(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.Wb=be(a,b.Ub=c[2]))}function Wd(a,b){null!=a.C&&(a.C+=b||1)}function Z(a){return q(a,4)}
|
||||
function ce(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.W(b,1);if(!e||36==e||127<=e)break;d+=32<=e?String.fromCharCode(e):"."}return d}function Od(a,b){a.F=a;a.ha=a.Xb=1073741824;a.xa=null;var c=be(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(c.length)for(var d in Ud)0<=ma(c,d)&&(a.ha|=Ud[d],a.g(d+" messages enabled"))}function Vd(a,b){for(var c in Ud)if(64==Ud[c]){a.Fa[c]=b;break}}
|
||||
function de(a,b){var c;a=a.toUpperCase();null==b?c=ma(Sd,a):(c=ma(Sd,a.substr(b,3)),0>c&&(c=ma(Sd,a.substr(b,2))));return c}function ee(a,b){var c=0,d=fe(a,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:c=4}return c?q(d,c):"??"}
|
||||
function fe(a,b){var c;if(0<=b){var d=a.b;switch(b){case 7:c=d.j;break;case 0:c=d.N;break;case 1:c=d.O;break;case 8:c=Ic(d);break;case 2:c=d.P;break;case 3:c=d.R;break;case 9:c=Kc(d);break;case 4:c=d.S;break;case 5:c=d.V;break;case 10:c=I(d);break;case 6:c=d.W(I(d));break;case 11:c=d.ca;break;case 12:c=d.L;break;case 13:c=d.j<<8|Gc(d)&255}}return c}
|
||||
function ge(a,b){b=Zd(a,b);for(var c=0,d,e;0<=(c=b.indexOf("@",c));)e=de(b,c+1),0<=e&&(b=b.substr(0,c)+ee(a,e)+b.substr(c+1+Sd[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=X(a,e))?(d=e+' "'+ce(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=X(a,e))?(Wd(d),d=e+' "'+
|
||||
ce(a,d,11)+'"',b=b.replace("^"+e,d),c+=d.length):c++;return b}m.message=function(a,b){b&&(a+=" at "+Z(T(this.b.L).C));if(!this.xa||a!=this.xa)if(this.xa=a,this.ha&-2147483648&&(this.da(),a+=" (cpu halted)"),this.g(a),this.b){var c=this.b;c.i.Za=0;c.D-=c.b;c.b=0;sc(c)}};function eb(a,b,c,d,e,f,h,g){g|=256;null!=f&&(a.ha&g)!=g||a.message(b.eb+"."+(null!=d?"outPort":"inPort")+"("+r(c)+","+(f?f:"unknown")+(null!=d?",0x"+q(d,2):"")+")"+(null!=h?": 0x"+q(h,2):"")+(null!=e?" at "+Z(e):""))}
|
||||
function Nd(a){var b;if(qd(a)){if(!a.X||!a.X.length){a.X=Array(1E3);for(b=0;b<a.X.length;b++)a.X[b]=T();a.ra=0;a.g("instruction history buffer allocated")}if(!a.K||!a.K.length)for(a.K=Array(256),b=0;b<a.K.length;b++)a.K[b]=[b,0]}else a.X&&a.X.length&&a.g("instruction history buffer freed"),a.ra=0,a.X=[],a.K=[]}m.Oa=function(a){if(!he(this))return!1;this.b.Oa(a);return!0};
|
||||
m.bb=function(a,b,c){if(!he(this))return!1;this.M=0;a||qd(this)&&rd(this,this.b.L,0);try{var d=this.b.bb(a);0<d&&(this.M+=d,xc(this.b,d,!0),uc(this.b,d),this.ga++)}catch(e){"number"!=typeof e&&(this.M=0,kb(this.b,e.stack||e.message))}!1!==c&&sc(this.b);this.va(b||!1);return 0<this.M};m.da=function(a){this.b&&this.b.da(a)};m.va=function(a){void 0===a&&(a=!0);this.Y=T(this.b.L);a&&1!=this.ba?ie(this):je(this)};
|
||||
function he(a){var b;if(b=a.b&&jb(a.b))b=a.b,b.A.ia?b=!0:(b.g(b.toString()+" not powered"),b=!1);b&&!ib(a.b)?(a=a.b,a.A.Sa?(a.g(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}m.Ba=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};m.Aa=function(a,b){b&&this.g(a?"suspending":"shutting down");return a?this.save():!0};m.reset=function(a){Nd(this);this.ga=this.Ca=0;this.xa=null;this.M=0;this.Y=T(this.b.L);this.A.ma=!1;ke(this);a||this.va()};
|
||||
m.save=function(){var a=new Hc(this);H(a,0,Xd(this.Y));H(a,1,Xd(this.ka));H(a,2,[this.D,this.la,this.ha]);H(a,3,this.J);return a.data()};m.restore=function(a){var b=0;void 0!==a[2]&&(this.Y=Yd(a[b++]),this.ka=Yd(a[b++]),this.D=a[b][0],"string"==typeof this.D&&(this.D=[this.D]),this.la=a[b][1],this.ha|=a[b][2]);a[3]&&(this.J=a[3]);return!0};m.start=function(a,b){this.ba||this.g("running");this.A.ma=!0;this.$b=a;this.ac=b};
|
||||
m.stop=function(a,b){if(this.A.ma){this.A.ma=!1;this.M=b-this.ac;if(!this.ba){var c="stopped";if(this.M){var d=a-this.$b,e=0<d?Math.round(1E3*this.M/d):0,c=c+" (";qd(this)&&(c+=this.ga+" opcodes, ",this.Ca-=this.ga,this.ga=0);c+=this.M+" cycles, "+d+" ms, "+e+" hz)"}else gb(this,-2147483648)&&(c+=" (use the 't' command to execute blocked faults)");this.g(c)}this.va(!0);this.mb();ke(this,this.b.L)}};function qd(a){return 1<a.u.length||!!a.wa}
|
||||
function rd(a,b,c){var d=a.b;if(0<c&&(a.wa&&!--a.wa||Zb(a,b,1,a.u)))return!0;0<=c&&a.K.length&&(a.ga++,b=ub(a.B,b),null!=b&&(a.K[b][1]++,b=a.X[a.ra],b.C=d.L,b.za=!1,++a.ra==a.X.length&&(a.ra=0)));return!1}function zb(a,b,c){a.g("break on input from port "+r(b)+": "+q(c));a.da(!0)}function Kb(a,b,c){a.g("break on output to port "+r(b)+": "+q(c));a.da(!0)}
|
||||
function Md(a){var b,c;a.u=["bp"];if(void 0!==a.aa)for(b=1;b<a.aa.length;b++){c=a.aa[b];var d=a.B;$b(d.U[W(c)>>>d.ea],!1)}a.aa=["br"];if(void 0!==a.H)for(b=1;b<a.H.length;b++)c=a.H[b],d=a.B,$b(d.U[W(c)>>>d.ea],!0);a.H=["bw"];a.Jb=0}m.Ja=function(a,b,c){var d=!0;c||le(this,a,b,!1,!0);if(a!=this.u){var e=W(b);if(-1===e)this.g("invalid address: "+Z(b.C)),d=!1;else{var f=this.B;f.U[e>>>f.ea].Ja(e&f.B,a==this.H)}}d&&(a.push(b),c?b.za=!0:(me(this,a,a.length-1,"set"),Nd(this)));return d};
|
||||
function le(a,b,c,d,e){var f=!1;c=W(c);for(var h=1;h<b.length;h++){var g=b[h];if(c==W(g)&&(!d||g.za)){f=!0;g.za||e||me(a,b,h,"cleared");b.splice(h,1);b!=a.u&&(d=a.B,$b(d.U[c>>>d.ea],b==a.H));g.za||Nd(a);break}}return f}function ne(a,b){for(var c=1;c<b.length;c++)me(a,b,c);return b.length-1}function me(a,b,c,d){c=b[c];a.g(b[0]+" "+Z(c.C)+(d?" "+d:c.Ub?' "'+c.Ub+'"':""))}
|
||||
function ke(a,b){if(void 0!==b)Zb(a,b,1,a.u,!0),a.ba=0;else for(var c=1;c<a.u.length;c++){var d=a.u[c];if(d.za){if(!le(a,a.u,d,!0))break;c=0}}}
|
||||
function Zb(a,b,c,d,e){var f=!1;if(!a.Jb++)for(var h=1;!f&&h<d.length;h++){var g=d[h];if(!e||g.za)for(var k=W(g),l=0;l<c;l++)if(b+l==k){var p,f=!0;g.za&&(le(a,d,g,!0),e=!0);if(p=g.Wb){for(var f=!1,n=0;n<p.length;n++)if(!oe(a,p[n],!0)){if(p[n].indexOf("if")){f=!0;break}for(var u=n+1;u<p.length&&p[u].indexOf("else");u++)n++;if(u==p.length){f=!0;break}}a.b.A.ma||(f=!0)}if(f){e||me(a,d,h,"hit");break}}}a.Jb--;return f}
|
||||
function pe(a,b,c,d){for(var e=T(b.C),f=a.W(b,1),h=a.pb[f],g="",k=(8086!=a.style?Qd:Rd)[h[0]],l=h.length-1,p=0,n,u=1;u<=l;u++){var z="";n=h[u];if(void 0!==n&&!(n&16384&&a.style==Ld)){var v=n&240;if(v){var O=n&15;O?p=O:n|=p;n&61440||(n|=1==u?8192:4096);if(v&32)a:{var z=a,v=n,O=b,B=" ";switch(v&15){case 1:B=q(z.W(O,1),2);break;case 2:B=q(z.W(O,1)<<24>>24,4);break;case 3:B=q(z.Ga(O,2),4);break;default:z="imm("+r(v)+")";break a}8086==z.style&&v&64?B="["+B+"]":v&16||(B=(z.style==Ld?"$":"0x")+B);z=B}else v&
|
||||
16?(z=(n&3840)>>8,v=Sd[z],8086==a.style&&n&64&&(6==z&&(v="HL"),v="["+v+"]"),z=v):v&128&&(z=(f>>3&7).toString());if(!z||!z.length){g="INVALID";break}0<g.length&&(g+=",");g+=z||"???"}}}f="";h=Z(e.C)+" ";if(-1!==e.C&&-1!==b.C){do if(f+=q(a.W(e,1),2),null==e.C)break;while(e.C!=b.C)}h+=ga(f,10);h=h+(n&32768?"*":" ")+ga(k,7);g&&(h+=" "+g);c&&(h=ga(h,40)+";"+c,h=a.b.A.Ra?h+("cycles="+vc(a.b).toString()+" cs="+q(a.b.i.fb)):h+(null!=d?"="+d.toString():""));return h}
|
||||
function Oe(a,b){var c;switch(b){case "I":c=a.b.qa&512;break;case "S":c=Rc(a.b);break;case "Z":c=Qc(a.b);break;case "A":c=Pc(a.b);break;case "P":c=Oc(a.b);break;case "C":c=Nc(a.b);break;default:c=0}return b+(c?"1":"0")+" "}function Pe(a,b){return Sd[b]+"="+ee(a,b)+" "}function Qe(a){return Pe(a,7)+Pe(a,8)+Pe(a,9)+Pe(a,10)+Pe(a,11)+Oe(a,"I")+Oe(a,"S")+Oe(a,"Z")+Oe(a,"A")+Oe(a,"P")+Oe(a,"C")}
|
||||
var Re={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Se(a,b,c){for(c=c||-1;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=f&e;break;
|
||||
case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(d|0)}return!0}
|
||||
function Yd(a,b,c){var d;if(b){b=Xd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],n=p.length,p=ha(p);if(!p){f=!0;break}p=Re(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],u=p.length;k.length&&Pe[p]<Pe[k[k.length-1]]&&Qe(g,k,1);k.push(p);b=b.substr(n+u)}Qe(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Se(a,null,
|
||||
d))}return d}function Xd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=Yd(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=X(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Ea(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ka-a.Na}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
||||
function Re(a,b,c,d){var e;void 0!==b?(e=be(b),0<=e?e=de(a,e):(e=a.ra[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function Se(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Te(a,b){if(b)return Se(a,b,a.ra[b]);var c=0;for(b in a.ra)Se(a,b,a.ra[b]),c++;return 0<c}Id.prototype.Fb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ue(a,b,c){var d=[],e=W(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.C>>>0,g=f.gc;if(e>=h&&e<h+g){e=ia(f.Cb,[e-h],a.Fb);0<=e?Ve(a,b,e,d):c&&(e=~e,Ve(a,b,e-1,d),Ve(a,b,e,d));break}}return d}function Ve(a,b,c,d){var e={},f=a.J[b].Cb,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Ca[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
|
||||
function We(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.aa?Od:Pd;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.Db[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
|
||||
function Xe(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Te(a)||a.g("no variables"),!0;if(!c[2])return Te(a,c[1]);if(!c[3])return delete a.ra[c[1]],!0;var d=Yd(a,c[3]);return void 0!==d?(a.ra[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function Ye(a,b,c){var d=null;if(b=X(a,b,!0)){var e=Ue(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.C-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.C)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||
function Ze(a,b){switch(b[1]){case "8080":a.aa=Jd;break;case "8086":a.aa=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Ua=c;break;case "start":a.b.i.fb=c;break;case "stop":a.b.i.Wa=c;break;default:a.g("unknown cs option");return}void 0!==c&&pc(a.b);a.g("checksums "+(a.b.A.Pa?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(vc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.Ja.toFixed(2)+"Mhz")+" ("+
|
||||
a.b.i.La+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.aa+"-style mnemonics enabled")}
|
||||
function ge(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=Yd(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P=
|
||||
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.U=g&255;break;case "SP":d.ca=g&65535;break;case "PC":F(d,g);a.Y=T(d.L);break;case "PS":Dc(d,g);break;case "C":d.I=g?d.I|256:d.I&255;break;case "P":g?Nc(d)||(d.Z^=1):Nc(d)&&(d.Z^=1);break;case "A":d.ja=g?~d.Z&16|d.ja&-17:d.Z&16|d.ja&-17;break;case "Z":d.I=g?d.I&-256:d.I|255;break;case "S":g?Qc(d)||(d.Z^=192):Qc(d)&&(d.Z^=192);break;case "I":d.pa=g?d.pa|512:d.pa&-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(Oe(a));c&&(a.Y=T(d.L),he(a,Z(a.Y.C)))}}function $e(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ee(a,c[2])):Yd(a,b,!0)}function af(a,b,c){var d="t"!=b;c=Re(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return gb(a,!0)&&a.$a(e,d,!1)},function(){rc(a.b);gb(a,!1)})}
|
||||
function he(a,b,c,d){if(b=X(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=X(a,c,!0);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=hb(a,!1)||a.fa?a.M:null;var h=null!=f?"cycles":null,g=Ue(a,b),k=b.C;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=ne(a,b,h,f);a.g(f);a.Y=b;e-=b.C-k;c++}}}
|
||||
function $d(a,b,c,d){if(c)if(b){0>a.G&&a.D.length&&(a.G=0);if(0>a.G||b!=a.D[a.G])a.D.splice(0,0,b),a.G=0;a.G--}else a.na?b="end":b=a.D[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a}
|
||||
function me(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.na&&(a.g("ended assemble at "+Z(a.ma.C)),a.Y=a.ma,a.na=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.Ga=null;if(ib(a)&&0<b.length){a.na&&(b="a "+Z(a.ma.C)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=X(a,f[1],!0);if(p)if(a.ma=
|
||||
p,void 0===f[2])a.g("begin assemble at "+Z(p.C)),a.na=!0,rc(a.b);else{var n;a.g("not supported yet");n=[];if(n.length){for(var u=0;u<n.length;u++)a.ga(p,n[u],1);a.g(ne(a,a.ma))}}break;case "b":a:{var z=f[0],v=f[1],O=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
|
||||
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var B=z.charAt(1);if("l"==B){var U=0,U=U+le(a,a.u),U=U+le(a,a.ba);(U+=le(a,a.H))||a.g("no breakpoints")}else if("n"==B)a.Ba=Re(a,v),a.g("break after "+a.Ba+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var E=T();if("*"!=v&&(E=X(a,v,!0),!E))break a;v=r(E.C);"c"==B?null==E.C?(Kd(a),a.g("all breakpoints cleared")):je(a,a.u,E)||je(a,a.ba,E)||
|
||||
je(a,a.H,E)||a.g("breakpoint missing: "+Z(E.C)):"i"==B?a.g("breakpoint "+(wb(a.B,E.C)?"enabled":"cleared")+": port "+v+" (input)"):"o"==B?a.g("breakpoint "+(Hb(a.B,E.C)?"enabled":"cleared")+": port "+v+" (output)"):null!=E.C&&(Zd(a,E,O),"p"==B?a.Ha(a.u,E):"r"==B?a.Ha(a.ba,E):"w"==B?a.Ha(a.H,E):a.g("unknown breakpoint command: "+B))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var wa,P=f[0],K=f[1],ka=f[2],xa=f[3];if("?"==K){var ya="";for(wa in Sd)a.bb[wa]&&(ya&&(ya+=","),ya+=wa);ya+=",state,symbols";
|
||||
a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ya.length&&a.g("dump extension commands:\n\t"+ya)}else if("state"==K){var oe=bf(a.w,!0);"console"==ka?console.log(oe):(a.ta&&(a.ta.value=""),a.g(oe))}else if("symbols"==K)for(var Tc=0;Tc<a.J.length;Tc++){var Uc=a.J[Tc],ab;for(ab in Uc.Ca)if("."!=ab.charAt(0)){var pe=Uc.Ca[ab].o;
|
||||
if(void 0!==pe){var qe=Uc.Ca[ab].l;qe&&(ab=qe);a.g(Z(pe)+" "+ab)}}}else{if("d"==P){for(wa in Sd)if(f[1]==wa){var re=a.bb[wa];re?(f.shift(),f.shift(),re(f)):a.g("no dump registered for "+K);break a}K||(P=a.fc||"db")}else a.fc=P;if("dh"==P){var se=K,te=ka,ue="",ve=0,V=a.sa,za=a.X;if(za.length){var Y=+se||a.Nb,bb=+te||10;isNaN(Y)?Y=bb:ue="more ";Y>za.length&&(a.g("note: only "+za.length+" available"),Y=za.length);V-=Y;0>V&&(null==za[za.length-1].C?(Y=V+Y,V=0):V+=za.length);var Vc=[];"call"==te&&(bb=
|
||||
1E5,Vc=["CALL"]);for(void 0!==se&&a.g(Y+" instructions earlier:");0<bb&&V!=a.sa;){var we=za[V++];if(null==we.C)break;var xb=T(we.C),xf=Y--,xe=ne(a,xb,"history",xf);(!Vc.length||0<=xe.indexOf(Vc[0]))&&a.g(xe);xb.ub&&(V+=xb.ub,bb-=xb.ub,Y-=xb.ub);V>=za.length&&(V=0);a.Nb=Y;ve++;bb--}}ve||(a.g("no "+ue+"history available"),a.Nb=void 0)}else{var dc=X(a,K);if(dc){var ec=0;ka&&("l"==ka.charAt(0)&&(ka=ka.substr(1)||xa),ec=Re(a,ka)>>>0,65536<ec&&(ec=65536));for(var Ma="",fc="dd"==P?4:"dw"==P?2:1,gc=fc*ec||
|
||||
128,yf=gc+15>>4||1;yf--&&0<gc;){var hc=0,Wc=0,yb,zb="",Xc="",K=Z(dc.C);for(yb=16;0<yb&&0<gc;yb--){var ic=a.W(dc,1),hc=hc|ic<<(Wc++<<3);Wc==fc&&(zb+=q(hc,2*fc),zb+=1==fc?9==yb?"-":" ":" ",hc=Wc=0);Xc+=32<=ic&&128>ic?String.fromCharCode(ic):".";gc--}Ma&&(Ma+="\n");Ma+=K+" "+zb+(0==yb?" "+Xc:"")}Ma&&a.g(Ma);a.Gb=dc}}}}break;case "e":if("else"==f[0])break;var jc=1,ye=255,ze=a.W,Ae=a.ga;"ew"==f[0]&&(jc=2,ye=65535,ze=a.Ea,Ae=a.sb);var Be=jc<<1,Ce=f[1];if(null==Ce)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 kc=X(a,Ce);if(kc)for(var lc=2;lc<f.length;lc++){var Ab=Yd(a,f[lc]);if(void 0===Ab){a.g("unrecognized value: "+f[lc]);break}Ab&~ye&&a.g("warning: "+q(Ab)+" exceeds "+jc+"-byte value");var zf=ze.call(a,kc);a.g("changing "+Z(kc.C)+" from 0x"+q(zf,Be)+" to 0x"+q(Ab,Be));Ae.call(a,kc,Ab,jc)}}break;case "f":We(a,f[1]);break;case "g":a:{var De=f[1],Af=b;if(void 0!==De){var Yc=X(a,De,!0);if(!Yc)break a;Zd(a,Yc,Af);a.Ha(a.u,Yc,!0)}a.Ma(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var Zc;if(a.A.la)Zc="halting",a.da();else{if(hb(a,!0))break a;Zc="already halted"}c||a.g(Zc)}break;case "i":if("if"==f[0]){var $c;var Bb=b.substr(2),Bb=ha(Bb);Yd(a,Bb)?(c||a.g("true: "+Bb),$c=!0):(c||a.g("false: "+Bb),$c=!1);$c||(d=!1);break}var ad=f[1];if(ad&&"?"!=ad){var bd=Re(a,ad);if(void 0!==bd){var Bf=Fb(a.B,bd);a.g(r(bd)+": "+("0x"+q(Bf,2)))}}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 Cf=f[0];
|
||||
if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var cd=0,Ee=T(),Cb=T(a.b.ca);for(a.g("stack trace for "+Z(Cb.C));10>cd;){for(var Na=null,Df=256;65536>Cb.C>>>0;){Ee.C=a.Ea(Cb,2);if(null==Cb.C||!Df--)break;for(var Ef=a,mc=Ee,Fe=null,Db=mc.C,Ge=Db,dd=1;6>=dd&&Db;dd++){if(2<dd){mc.C=Db;var nc=ne(Ef,mc);if(0<=nc.indexOf("CALL")){var He=nc.indexOf(" ");if(Db+(nc.indexOf(" ",He+1)-He-1)/2==Ge){Fe=nc;break}}}Db--}mc.C=Ge;if(Na=Fe)break}if(!Na||
|
||||
null==Na)break;var Ie=null;if("ks"==Cf){var Je=Na.match(/[0-9A-F]+$/);Je&&(Ie=Ye(a,Je[0]))}Na=ga(Na,50)+" ;"+(Ie||"stack="+Z(Cb.C));a.g(Na);cd++}cd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){Ye(a,f[1],!0);break}break;case "m":a:{var Aa,Ba=null,G=f[1];"?"==G&&(G=void 0);if(void 0!==G){var Oa=0;if("all"==G)Oa=1610481663,G=null;else if("on"==G)Ba=!0,G=null;else if("off"==G)Ba=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(Aa in Sd)if(G==Aa){Oa=Sd[Aa];Ba=!!(a.ha&
|
||||
Oa);break}if(!Oa){a.g("unknown message category: "+G);break a}}Oa&&("on"==f[2]?(a.ha|=Oa,Ba=!0):"off"==f[2]&&(a.ha&=~Oa,Ba=!1))}var Ff=0,Ia="";for(Aa in Sd)if(!G||G==Aa){var Gf=!!(a.ha&Sd[Aa]);if(null===Ba||Ba==Gf)Ia&&(Ia+=","),++Ff%10||(Ia+="\n\t"),"key"==Aa&&(Aa="keys"),Ia+=Aa}void 0===G&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ba?Ba?"messages on: ":"messages off: ":"message categories:\n\t")+(Ia||"none"));Ld(a)}break;case "o":var ed=f[1],Hf=f[2];if(ed&&
|
||||
"?"!=ed){var fd=Re(a,ed,"port #"),gd=Re(a,Hf);void 0!==fd&&void 0!==gd&&(Ib(a.B,fd,gd),a.g(r(fd)+": "+("0x"+q(gd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){$e(a,b.substr(5));break}var Ke="pr"==f[0]?1:0,If=1+Ke;if(a.fa)a.g("step in progress");else{var hd=T(a.b.L);switch(a.W(hd)){case 205:a.fa=If,Ud(hd,3)}a.fa?(a.Ha(a.u,hd,!0),a.Ma()||(a.w&&a.w.lb(),a.fa=0)):af(a,Ke?"tr":"t")}break;
|
||||
case "r":if("reset"==b){a.w&&a.w.reset();break}ge(a,f);break;case "s":Ze(a,f);break;case "t":af(a,f[0],f[1]);break;case "u":he(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Xe(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.22.0 ("+a.b.Sa+",RELEASE"+(kb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){$e(a,b.substr(1));break}var Eb="commands:",id;for(id in Nd)Eb+="\n"+ga(id,7)+Nd[id];pd(a)||(Eb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Eb);break;default:a.g("unknown command: "+
|
||||
b),d=!1}}}catch(Le){a.g("debugger error: "+(Le.stack||Le.message)),d=!1}return d}function qc(a,b,c){b=$d(a,b,c);for(var d in b)if(!me(a,b[d]))return!1;return!0}Ja(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Id(d);cb(d,c)}});function Gc(a,b,c){this.id=a.id;this.key=cf(a,b,c);this.F=a.F;df(this,a.Sb)}function cf(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
Gc.prototype={constructor:Gc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){df(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
||||
function df(a,b){a[a.id]={};b&&H(a,"parms",b);a.b=!1}function ef(a){var b=!0;if(sa()){var c=JSON.stringify(a[a.id]);ua(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function ff(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function gf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:sa()&&(b=ta(a.key))?(a[a.id]=b,a.b=!0):!1}function hf(a,b){return a[a.id][b]||null}function H(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function jf(a,b,c){w.call(this,"Computer",a,jf,67108864);this.A.ia=!1;kf(this,b);this.ba=cc(this,"autoPower",a);this.D=0;this.ra=a.busWidth||a.buswidth;this.w=lf;this.X=null;this.J=this.na=!1;this.sa=cc(this,"url")||"";(Math.random()+.1).toString(36);this.u=mf(this);if(this.b=$a("CPU",this.id)){this.F=$a("Debugger",this.id);this.aa=[];for(b=null;b=nb(this,"Video",b);)this.aa.push(b);this.B=new pb({id:this.Ib+".bus",busWidth:this.ra},this.b,this.F);var d,e=Za(this.id);if((this.G=$a("Panel",this.id))&&
|
||||
this.G.ta)for(b=0;b<e.length;b++)d=e[b],d.oa=this.G.oa,d.g=this.G.g,d.ta=this.G.ta;for(b=0;b<e.length;b++)d=e[b],d.Fa&&d.Fa(this,this.B,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.M=d:this.w=parseInt(d,10));var f;if(a=cc(this,"state")||(f=!0,a.state))b=this.fa=a,f||(this.J=!0,this.w=lf),this.w&&(this.Y=new Gc(this,nf),gf(this.Y)?b=null:delete this.Y);!b&&this.w&&(b=of(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.M=null,h.J=!1,h.oa("Unable to load machine state from server (error "+
|
||||
c+(b?": "+ha(b):"")+")")):(h.X=b,h.na=!0);C(h)})}else C(this);this.V.power||(this.ba=!0);!c&&this.ba&&pf(this,this.jb)}else t("Unable to find CPU component")}Wa(jf);var nf="1.22.0",lf=0;function kf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
|
||||
function cc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function pf(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ib(f)){ib(f,function(){pf(a,b,c)});return}}b.call(a,c)}
|
||||
function qf(a,b){var c=new Gc(a,nf,"validate");if(gf(c)&&ff(c)){var d=hf(c,"timestamp"),e=b?hf(b,"timestamp"):"unknown";d!=e&&(a.oa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=jf.prototype;
|
||||
m.jb=function(a){void 0===a&&(a=this.w||(this.X?1:lf));if(!this.D){this.D++;var b=!1,c=!1;this.ma=!1;var d=this.Y||new Gc(this,nf);if(-1==a)b=!0;else if(a>lf){if(gf(d,this.X)){this.H=new Gc(this,nf,"failsafe");gf(this.H)&&(rf(this,d),a=2,df(this.H));H(this.H,"timestamp",la());ef(this.H);var e=this.w&&!this.J;if(1==a||qa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=ff(d)){var f=hf(d,"code"),h=hf(d,"data");f&&("ok"==f?gf(d,h):("error"==f&&"no machine state"!=
|
||||
h?(this.oa("Error: "+h),"unable to verify user"==h&&(ua("user",""),this.u=null)):this.g(f+": "+h),df(d),gf(d)?(c=ff(d),e=!0):c=!1))}e&&qf(this,c?d:null)}else 2==a&&d.clear()}else qf(this);delete this.X;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=sf(this,h,d,b,c));b=[d,a,c];-1!=a?pf(this,this.Hb,b):this.Hb(b)}};
|
||||
function sf(a,b,c,d,e){if(!b.A.ia){b.A.ia=!0;if(b.za){var f=null;e&&((f=hf(c,b.id))||(f=hf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.za(f,d)&&f&&(t("Unable to restore state for "+b.type),a.fa&&!a.na?(c.clear(),a.w=lf,window&&window.location.reload()):a.ma=!0,b.za(null),e=!1)}if(!d&&b.Eb)for(a=b.Eb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
m.Hb=function(a){var b=a[0],c=0>a[1];a=a[2];this.A.ia=!0;var d=this.V.power;d&&(d.textContent="Shutdown");this.ka||(this.g("PC8080 v"+nf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ka=!0);this.b&&(sf(this,this.b,b,c,a),sc(this.b));this.ma&&(rf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.D=0};
|
||||
function rf(a,b){if(qa("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.sa,d=a.u||"",e=b.toString(),f={app:"PC8080"};f.ver=nf;f.url=c;f.user=d;f.type="bug";f.data=e;na("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function bf(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Gc(a,nf),h=new Gc(a,nf,"validate"),g=la();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.22.0");H(f,"url",window?window.location.href:null);H(f,"browser",pa());a.b&&a.b.ya&&(c&&a.b.da(),d=a.b.ya(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.ia=!1,!1===d&&(e=null)));for(var g=Za(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ia&&(l.ya&&(d=l.ya(b,c),"object"===typeof d&&H(f,l.id,d)),c&&(l.A.ia=!1,!1===d&&(e=null)))}e&&(c?(g=
|
||||
d=!1,b?(a.u&&tf(a,a.u,f.toString()),ef(h)&&ef(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.A.ia=!1,b=a.V.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(this.F&&fb(this,0)&&this.F.message("Resetting "+this.B.type,void 0),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(this.F&&fb(this,0)&&this.F.message("Resetting "+c.type,void 0),c.reset())}};
|
||||
function $d(a,b,c){var d;if(b){b=Zd(a,b);for(var e=0,f=!1,h=b,g=[],k=[],l=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<l.length;){var p=l[e++],n=p.length,p=ha(p);if(!p){f=!0;break}p=Te(a,p,null,!1===c);if(void 0===p){f=!0;c=!1;break}g.push(p);if(e==l.length)break;var p=l[e++],u=p.length;k.length&&Re[p]<Re[k[k.length-1]]&&Se(g,k,1);k.push(p);b=b.substr(n+u)}Se(g,k)&&1==g.length||(f=!0);f?c&&a.g("error parsing '"+h+"' at character "+(h.length-b.length)):(d=g.pop(),c&&Ue(a,null,
|
||||
d))}return d}function Zd(a,b){for(var c;(c=b.match(/\{(.*?)}/))&&!(0<=c[1].indexOf("{"));){var d=$d(a,c[1]);b=b.replace("{"+c[1]+"}",null!=d?q(d):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)d=X(a,c[1]),b=b.replace("["+c[1]+"]",d?q(a.Ga(d,0),4):"undefined");for(c=b;d=c.match(/\$([a-z]+)/i);){var e=null;switch(d[1].toLowerCase()){case "ops":e=a.ga-a.Ca}if(null==e)break;c=c.replace(d[0],e.toString())}return c}
|
||||
function Te(a,b,c,d){var e;void 0!==b?(e=de(b),0<=e?e=fe(a,e):(e=a.na[b],void 0===e&&(e=aa(b))),void 0!==e||d||a.g("invalid "+(c?c:"value")+": "+b)):d||a.g("missing "+(c||"value"));return e}
|
||||
function Ue(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f,h="";if(!f||4<f)f=4;for(var g=0;g<f;g++){h&&(h=","+h);var k=d&255,l=8,p="";void 0===l?l=32:32<l&&(l=32);if(null==k||isNaN(k))for(;0<l--;)p="?"+p;else for(;0<l--;)p=(k&1?"1":"0")+p,k>>=1;h=p+"b"+h;d>>=8}d="0x"+q(c)+" "+c+". ("+h+")"}a.g((null!=b?b+": ":"")+d);return e}function Ve(a,b){if(b)return Ue(a,b,a.na[b]);var c=0;for(b in a.na)Ue(a,b,a.na[b]),c++;return 0<c}Kd.prototype.Fb=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function We(a,b,c){var d=[],e=W(b)>>>0;for(b=0;b<a.J.length;b++){var f=a.J[b],h=f.C>>>0,g=f.gc;if(e>=h&&e<h+g){e=ia(f.Db,[e-h],a.Fb);0<=e?Xe(a,b,e,d):c&&(e=~e,Xe(a,b,e-1,d),Xe(a,b,e,d));break}}return d}function Xe(a,b,c,d){var e={},f=a.J[b].Db,h=0,g=null;0<=c&&c<f.length&&(h=f[c][0],g=f[c][1]);g&&(e=a.J[b].Da[g],g="."==g.charAt(0)?null:e.l||g);d.push(g);d.push(h);d.push(e.a);d.push(e.c)}
|
||||
function Ye(a,b){if("?"==b)a.g("frequency commands:"),a.g("\tclear\tclear all frequency counts");else{var c,d=0;if(a.K)if("clear"==b){for(c=0;c<a.K.length;c++)a.K[c]=[c,0];a.g("frequency data cleared");d++}else if(void 0!==b)a.g("unknown frequency command: "+b),d++;else{var e=a.K.slice();e.sort(function(a,b){return b[1]-a[1]});var f=8086!=a.style?Qd:Rd;for(c=0;c<e.length;c++){var h=e[c][0],g=e[c][1];g&&(a.g((f[a.pb[h][0]]+" ").substr(0,5)+" ("+("0x"+q(h,2))+"): "+g+" times"),d++)}}d||a.g("no frequency data available")}}
|
||||
function Ze(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return Ve(a)||a.g("no variables"),!0;if(!c[2])return Ve(a,c[1]);if(!c[3])return delete a.na[c[1]],!0;var d=$d(a,c[3]);return void 0!==d?(a.na[c[1]]=d,!0):!1}a.g("invalid assignment:"+b);return!1}
|
||||
function $e(a,b,c){var d=null;if(b=X(a,b,!0)){var e=We(a,b,!0);if(e.length){var f,h;e[0]&&(h="",(f=b.C-e[1])&&(h=" + "+r(f)),f=e[0]+" ("+Z(e[1])+")"+h,c&&a.g(f),d=f);4<e.length&&e[4]&&(h="",(f=e[5]-b.C)&&(h=" - "+r(f)),f=e[4]+" ("+Z(e[5])+")"+h,c&&a.g(f),d||(d=f))}else c&&a.g("no symbols")}return d}
|
||||
function af(a,b){switch(b[1]){case "8080":a.style=Ld;break;case "8086":a.style=8086;break;case "cs":var c;void 0!==b[3]&&(c=+b[3]);switch(b[2]){case "int":a.b.i.Wa=c;break;case "start":a.b.i.gb=c;break;case "stop":a.b.i.Ya=c;break;default:a.g("unknown cs option");return}void 0!==c&&qc(a.b);a.g("checksums "+(a.b.A.Ra?"enabled":"disabled"));return;case "sp":void 0!==b[2]&&(wc(a.b,+b[2])||a.g("warning: using 1x multiplier, previous target not reached"));a.g("target speed: "+(a.b.i.La.toFixed(2)+"Mhz")+
|
||||
" ("+a.b.i.Na+"x)");return;case "?":a.g("debugger options:");a.g("\t8080\t\tselect 8080-style mnemonics");a.g("\t8086\t\tselect 8086-style mnemonics");a.g("\tcs int #\tset checksum cycle interval to #");a.g("\tcs start #\tset checksum cycle start count to #");a.g("\tcs stop #\tset checksum cycle stop count to #");a.g("\tsp #\t\tset speed multiplier to #");break;default:if(b[1]){a.g("unknown option: "+b[1]);return}}a.g(a.style+"-style mnemonics enabled")}
|
||||
function ie(a,b){var c;if(b&&"?"==b[1])a.g("register commands:"),a.g("\tr\tdump registers"),a.g("\trx [#]\tset flag or register x to [#]");else{var d=a.b;null==c&&(c=!0);if(null!=b&&1<b.length){var e=b[1],f=null,h=e.indexOf("=");if(0<h)f=e.substr(h+1),e=e.substr(0,h);else if(2<b.length)f=b[2];else{a.g("missing value for "+b[1]);return}var h=!1,g=$d(a,f);if(void 0!==g)switch(h=!0,e.toUpperCase()){case "A":d.j=g&255;break;case "B":d.N=g&255;break;case "BC":d.N=g>>8&255;case "C":d.O=g&255;break;case "D":d.P=
|
||||
g&255;break;case "DE":d.P=g>>8&255;case "E":d.R=g&255;break;case "H":d.S=g&255;break;case "HL":d.S=g>>8&255;case "L":d.V=g&255;break;case "SP":d.ca=g&65535;break;case "PC":F(d,g);a.Y=T(d.L);break;case "PS":Ec(d,g);break;case "C":d.I=g?d.I|256:d.I&255;break;case "P":g?Oc(d)||(d.Z^=1):Oc(d)&&(d.Z^=1);break;case "A":d.ja=g?~d.Z&16|d.ja&-17:d.Z&16|d.ja&-17;break;case "Z":d.I=g?d.I&-256:d.I|255;break;case "S":g?Rc(d)||(d.Z^=192):Rc(d)&&(d.Z^=192);break;case "I":d.qa=g?d.qa|512:d.qa&-513;break;default:a.g("unknown register: "+
|
||||
e);return}if(!h){a.g("invalid value: "+f);return}sc(d);a.g("updated registers:")}a.g(Qe(a));c&&(a.Y=T(d.L),je(a,Z(a.Y.C)))}}function bf(a,b){b=ha(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.g(ge(a,c[2])):$d(a,b,!0)}function cf(a,b,c){var d="t"!=b;c=Te(a,c,null,!0)||1;var e=1==c?0:1;"tc"==b&&(e=c,c=1);Ca(c,function(){return hb(a,!0)&&a.bb(e,d,!1)},function(){sc(a.b);hb(a,!1)})}
|
||||
function je(a,b,c,d){if(b=X(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c){d=X(a,c,!0);if(!d||d.C<b.C)return;e=d.C-b.C;if(256<e){a.g("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=ib(a,!1)||a.ba?a.M:null;var h=null!=f?"cycles":null,g=We(a,b),k=b.C;if(g[0]&&d&&(!c&&d||0>g[0].indexOf("+"))){var l=g[0]+":";g[2]&&(l+=" "+g[2]);a.g(l)}g[3]&&(h=g[3],f=null);f=pe(a,b,h,f);a.g(f);a.Y=b;e-=b.C-k;c++}}}
|
||||
function be(a,b,c,d){if(c)if(b){0>a.G&&a.D.length&&(a.G=0);if(0>a.G||b!=a.D[a.G])a.D.splice(0,0,b),a.G=0;a.G--}else a.la?b="end":b=a.D[a.G+1];a=[];if(b){b=b.toLowerCase().replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var h=b.charAt(f);if('"'==h||"'"==h)e?h==e&&(e=null):e=h;else if(h==d&&!e||!h)a.push(ha(b.substring(c,f))),c=f+1}}return a}
|
||||
function oe(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.g(">> "+b):(a.la&&(a.g("ended assemble at "+Z(a.ka.C)),a.Y=a.ka,a.la=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.xa=null;if(jb(a)&&0<b.length){a.la&&(b="a "+Z(a.ka.C)+" "+b);var f=b.replace(/ +/g," ").split(" ");if(f&&f.length)for(var h=f[0],g=h.charAt(0),k=1;k<h.length;k++){var l=h.charAt(k);if("?"==g||"r"==g||"a">l||"z"<l){f[0]=h.substr(k);f.unshift(h.substr(0,k));break}}switch(f[0].charAt(0)){case "a":var p=X(a,f[1],!0);if(p)if(a.ka=
|
||||
p,void 0===f[2])a.g("begin assemble at "+Z(p.C)),a.la=!0,sc(a.b);else{var n;a.g("not supported yet");n=[];if(n.length){for(var u=0;u<n.length;u++)a.fa(p,n[u],1);a.g(pe(a,a.ka))}}break;case "b":a:{var z=f[0],v=f[1],O=b;if("?"==v)a.g("breakpoint commands:"),a.g("\tbi [p]\ttoggle break on input port [p]"),a.g("\tbo [p]\ttoggle break on output port [p]"),a.g("\tbp [a]\tset exec breakpoint at addr [a]"),a.g("\tbr [a]\tset read breakpoint at addr [a]"),a.g("\tbw [a]\tset write breakpoint at addr [a]"),
|
||||
a.g("\tbc [a]\tclear breakpoint at addr [a]"),a.g("\tbl\tlist all breakpoints"),a.g("\tbn [n]\tbreak after [n] instruction(s)");else{var B=z.charAt(1);if("l"==B){var U=0,U=U+ne(a,a.u),U=U+ne(a,a.aa);(U+=ne(a,a.H))||a.g("no breakpoints")}else if("n"==B)a.wa=Te(a,v),a.g("break after "+a.wa+" instruction(s)");else if(void 0===v)a.g("missing breakpoint address");else{var E=T();if("*"!=v&&(E=X(a,v,!0),!E))break a;v=r(E.C);"c"==B?null==E.C?(Md(a),a.g("all breakpoints cleared")):le(a,a.u,E)||le(a,a.aa,E)||
|
||||
le(a,a.H,E)||a.g("breakpoint missing: "+Z(E.C)):"i"==B?a.g("breakpoint "+(xb(a.B,E.C)?"enabled":"cleared")+": port "+v+" (input)"):"o"==B?a.g("breakpoint "+(Ib(a.B,E.C)?"enabled":"cleared")+": port "+v+" (output)"):null!=E.C&&(ae(a,E,O),"p"==B?a.Ja(a.u,E):"r"==B?a.Ja(a.aa,E):"w"==B?a.Ja(a.H,E):a.g("unknown breakpoint command: "+B))}}}break;case "c":a.ta&&(a.ta.value="");break;case "d":a:{var wa,P=f[0],K=f[1],ka=f[2],xa=f[3];if("?"==K){var ya="";for(wa in Ud)a.Fa[wa]&&(ya&&(ya+=","),ya+=wa);ya+=",state,symbols";
|
||||
a.g("dump memory commands:");a.g("\tdb [a] [#] dump # bytes at address a");a.g("\tdw [a] [#] dump # words at address a");a.g("\tdd [a] [#] dump # dwords at address a");a.g("\tdh [#] [#] dump # instructions from history");ya.length&&a.g("dump extension commands:\n\t"+ya)}else if("state"==K){var qe=df(a.w,!0);"console"==ka?console.log(qe):(a.ta&&(a.ta.value=""),a.g(qe))}else if("symbols"==K)for(var Uc=0;Uc<a.J.length;Uc++){var Vc=a.J[Uc],ab;for(ab in Vc.Da)if("."!=ab.charAt(0)){var re=Vc.Da[ab].o;
|
||||
if(void 0!==re){var se=Vc.Da[ab].l;se&&(ab=se);a.g(Z(re)+" "+ab)}}}else{if("d"==P){for(wa in Ud)if(f[1]==wa){var te=a.Fa[wa];te?(f.shift(),f.shift(),te(f)):a.g("no dump registered for "+K);break a}K||(P=a.fc||"db")}else a.fc=P;if("dh"==P){var ue=K,ve=ka,we="",xe=0,V=a.ra,za=a.X;if(za.length){var Y=+ue||a.Nb,bb=+ve||10;isNaN(Y)?Y=bb:we="more ";Y>za.length&&(a.g("note: only "+za.length+" available"),Y=za.length);V-=Y;0>V&&(null==za[za.length-1].C?(Y=V+Y,V=0):V+=za.length);var Wc=[];"call"==ve&&(bb=
|
||||
1E5,Wc=["CALL"]);for(void 0!==ue&&a.g(Y+" instructions earlier:");0<bb&&V!=a.ra;){var ye=za[V++];if(null==ye.C)break;var Ab=T(ye.C),zf=Y--,ze=pe(a,Ab,"history",zf);(!Wc.length||0<=ze.indexOf(Wc[0]))&&a.g(ze);Ab.vb&&(V+=Ab.vb,bb-=Ab.vb,Y-=Ab.vb);V>=za.length&&(V=0);a.Nb=Y;xe++;bb--}}xe||(a.g("no "+we+"history available"),a.Nb=void 0)}else{var dc=X(a,K);if(dc){var ec=0;ka&&("l"==ka.charAt(0)&&(ka=ka.substr(1)||xa),ec=Te(a,ka)>>>0,65536<ec&&(ec=65536));for(var Ma="",fc="dd"==P?4:"dw"==P?2:1,gc=fc*ec||
|
||||
128,Af=gc+15>>4||1;Af--&&0<gc;){var hc=0,Xc=0,Bb,Cb="",Yc="",K=Z(dc.C);for(Bb=16;0<Bb&&0<gc;Bb--){var ic=a.W(dc,1),hc=hc|ic<<(Xc++<<3);Xc==fc&&(Cb+=q(hc,2*fc),Cb+=1==fc?9==Bb?"-":" ":" ",hc=Xc=0);Yc+=32<=ic&&128>ic?String.fromCharCode(ic):".";gc--}Ma&&(Ma+="\n");Ma+=K+" "+Cb+(0==Bb?" "+Yc:"")}Ma&&a.g(Ma);a.Gb=dc}}}}break;case "e":if("else"==f[0])break;var jc=1,Ae=255,Be=a.W,Ce=a.fa;"ew"==f[0]&&(jc=2,Ae=65535,Be=a.Ga,Ce=a.ub);var De=jc<<1,Ee=f[1];if(null==Ee)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 kc=X(a,Ee);if(kc)for(var lc=2;lc<f.length;lc++){var Db=$d(a,f[lc]);if(void 0===Db){a.g("unrecognized value: "+f[lc]);break}Db&~Ae&&a.g("warning: "+q(Db)+" exceeds "+jc+"-byte value");var Bf=Be.call(a,kc);a.g("changing "+Z(kc.C)+" from 0x"+q(Bf,De)+" to 0x"+q(Db,De));Ce.call(a,kc,Db,jc)}}break;case "f":Ye(a,f[1]);break;case "g":a:{var Fe=f[1],Cf=b;if(void 0!==Fe){var Zc=X(a,Fe,!0);if(!Zc)break a;ae(a,Zc,Cf);a.Ja(a.u,Zc,!0)}a.Oa(!0)||c||a.g("cpu busy or unavailable, run command ignored")}break;
|
||||
case "h":a:{var $c;if(a.A.ma)$c="halting",a.da();else{if(ib(a,!0))break a;$c="already halted"}c||a.g($c)}break;case "i":if("if"==f[0]){var ad;var Eb=b.substr(2),Eb=ha(Eb);$d(a,Eb)?(c||a.g("true: "+Eb),ad=!0):(c||a.g("false: "+Eb),ad=!1);ad||(d=!1);break}var bd=f[1];if(bd&&"?"!=bd){var cd=Te(a,bd);if(void 0!==cd){var Df=yb(a.B,cd);a.g(r(cd)+": "+("0x"+q(Df,2)))}}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 Ef=f[0];
|
||||
if("?"==f[1])a.g("stack trace commands:"),a.g("\tk\tshow frame addresses"),a.g("\tks\tshow symbol information");else{var dd=0,Ge=T(),Fb=T(a.b.ca);for(a.g("stack trace for "+Z(Fb.C));10>dd;){for(var Na=null,Ff=256;65536>Fb.C>>>0;){Ge.C=a.Ga(Fb,2);if(null==Fb.C||!Ff--)break;for(var Gf=a,mc=Ge,He=null,Gb=mc.C,Ie=Gb,ed=1;6>=ed&&Gb;ed++){if(2<ed){mc.C=Gb;var nc=pe(Gf,mc);if(0<=nc.indexOf("CALL")){var Je=nc.indexOf(" ");if(Gb+(nc.indexOf(" ",Je+1)-Je-1)/2==Ie){He=nc;break}}}Gb--}mc.C=Ie;if(Na=He)break}if(!Na||
|
||||
null==Na)break;var Ke=null;if("ks"==Ef){var Le=Na.match(/[0-9A-F]+$/);Le&&(Ke=$e(a,Le[0]))}Na=ga(Na,50)+" ;"+(Ke||"stack="+Z(Fb.C));a.g(Na);dd++}dd||a.g("no return addresses found")}break;case "l":if("ln"==f[0]){$e(a,f[1],!0);break}break;case "m":a:{var Aa,Ba=null,G=f[1];"?"==G&&(G=void 0);if(void 0!==G){var Oa=0;if("all"==G)Oa=1610481663,G=null;else if("on"==G)Ba=!0,G=null;else if("off"==G)Ba=!1,G=null;else{"keys"==G&&(G="key");"kbd"==G&&(G="keyboard");for(Aa in Ud)if(G==Aa){Oa=Ud[Aa];Ba=!!(a.ha&
|
||||
Oa);break}if(!Oa){a.g("unknown message category: "+G);break a}}Oa&&("on"==f[2]?(a.ha|=Oa,Ba=!0):"off"==f[2]&&(a.ha&=~Oa,Ba=!1))}var Hf=0,Ia="";for(Aa in Ud)if(!G||G==Aa){var If=!!(a.ha&Ud[Aa]);if(null===Ba||Ba==If)Ia&&(Ia+=","),++Hf%10||(Ia+="\n\t"),"key"==Aa&&(Aa="keys"),Ia+=Aa}void 0===G&&a.g("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.g((null!==Ba?Ba?"messages on: ":"messages off: ":"message categories:\n\t")+(Ia||"none"));Nd(a)}break;case "o":var fd=f[1],Jf=f[2];if(fd&&
|
||||
"?"!=fd){var gd=Te(a,fd,"port #"),hd=Te(a,Jf);void 0!==gd&&void 0!==hd&&(Jb(a.B,gd,hd),a.g(r(gd)+": "+("0x"+q(hd,2))))}else a.g("output commands:"),a.g("\to [p] [b]\twrite byte [b] to port [p]"),a.g("warning: port accesses can affect hardware state");break;case "p":if("print"==f[0]){bf(a,b.substr(5));break}var Me="pr"==f[0]?1:0,Kf=1+Me;if(a.ba)a.g("step in progress");else{var id=T(a.b.L);switch(a.W(id)){case 205:a.ba=Kf,Wd(id,3)}a.ba?(a.Ja(a.u,id,!0),a.Oa()||(a.w&&a.w.mb(),a.ba=0)):cf(a,Me?"tr":"t")}break;
|
||||
case "r":if("reset"==b){a.w&&a.w.reset();break}ie(a,f);break;case "s":af(a,f);break;case "t":cf(a,f[0],f[1]);break;case "u":je(a,f[1],f[2],8);break;case "v":if("var"==f[0]){Ze(a,b.substr(3))||(d=!1);break}a.g("PC8080 version 1.22.0 ("+a.b.Ua+",RELEASE"+(lb?",TYPEDARRAYS":",LONGARRAYS")+")");a.g(pa());break;case "?":if(f[1]){bf(a,b.substr(1));break}var Hb="commands:",jd;for(jd in Pd)Hb+="\n"+ga(jd,7)+Pd[jd];qd(a)||(Hb+="\nnote: frequency/history disabled if no exec breakpoints");a.g(Hb);break;default:a.g("unknown command: "+
|
||||
b),d=!1}}}catch(Ne){a.g("debugger error: "+(Ne.stack||Ne.message)),d=!1}return d}function rc(a,b,c){b=be(a,b,c);for(var d in b)if(!oe(a,b[d]))return!1;return!0}Ja(function(){for(var a=A(document,"pc8080","debugger"),b=0;b<a.length;b++){var c=a[b],d=y(c),d=new Kd(d);cb(d,c)}});function Hc(a,b,c){this.id=a.id;this.key=ef(a,b,c);this.F=a.F;ff(this,a.Sb)}function ef(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
Hc.prototype={constructor:Hc,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ff(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
||||
function ff(a,b){a[a.id]={};b&&H(a,"parms",b);a.b=!1}function gf(a){var b=!0;if(sa()){var c=JSON.stringify(a[a.id]);ua(a.key,c)||(t("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function hf(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){t(c.message||c),b=!1}return b}function jf(a,b){return b?(a[a.id]=b,a.b=!0):a.b?!0:sa()&&(b=ta(a.key))?(a[a.id]=b,a.b=!0):!1}function kf(a,b){return a[a.id][b]||null}function H(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function lf(a,b,c){w.call(this,"Computer",a,lf,67108864);this.A.ia=!1;mf(this,b);this.ba=oc(this,"autoPower",a);this.D=0;this.ra=a.busWidth||a.buswidth;this.w=nf;this.X=null;this.J=this.na=!1;this.sa=oc(this,"url")||"";(Math.random()+.1).toString(36);this.u=of(this);if(this.b=$a("CPU",this.id)){this.F=$a("Debugger",this.id);this.aa=[];for(b=null;b=ob(this,"Video",b);)this.aa.push(b);this.B=new qb({id:this.Hb+".bus",busWidth:this.ra},this.b,this.F);var d,e=Za(this.id);if((this.G=$a("Panel",this.id))&&
|
||||
this.G.ta)for(b=0;b<e.length;b++)d=e[b],d.pa=this.G.pa,d.g=this.G.g,d.ta=this.G.ta;for(b=0;b<e.length;b++)d=e[b],d.Ha&&d.Ha(this,this.B,this.b,this.F);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.M=d:this.w=parseInt(d,10));var f;if(a=oc(this,"state")||(f=!0,a.state))b=this.ga=a,f||(this.J=!0,this.w=nf),this.w&&(this.Y=new Hc(this,pf),jf(this.Y)?b=null:delete this.Y);!b&&this.w&&(b=qf(this))&&(this.J=!0);if(b){var h=this;na(b,null,!0,function(a,b,c){c?(h.M=null,h.J=!1,h.pa("Unable to load machine state from server (error "+
|
||||
c+(b?": "+ha(b):"")+")")):(h.X=b,h.na=!0);C(h)})}else C(this);this.T.power||(this.ba=!0);!c&&this.ba&&rf(this,this.kb)}else t("Unable to find CPU component")}Wa(lf);var pf="1.22.0",nf=0;function mf(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){t(d.message+" ("+c+")")}}a.K=b}
|
||||
function oc(a,b,c){var d=b.toLowerCase(),d=Ra[b]||Ra[d];void 0===d&&a.K&&(d=a.K[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function rf(a,b,c){for(var d=Za(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!jb(f)){jb(f,function(){rf(a,b,c)});return}}b.call(a,c)}
|
||||
function sf(a,b){var c=new Hc(a,pf,"validate");if(jf(c)&&hf(c)){var d=kf(c,"timestamp"),e=b?kf(b,"timestamp"):"unknown";d!=e&&(a.pa("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=lf.prototype;
|
||||
m.kb=function(a){void 0===a&&(a=this.w||(this.X?1:nf));if(!this.D){this.D++;var b=!1,c=!1;this.la=!1;var d=this.Y||new Hc(this,pf);if(-1==a)b=!0;else if(a>nf){if(jf(d,this.X)){this.H=new Hc(this,pf,"failsafe");jf(this.H)&&(tf(this,d),a=2,ff(this.H));H(this.H,"timestamp",la());gf(this.H);var e=this.w&&!this.J;if(1==a||qa("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=hf(d)){var f=kf(d,"code"),h=kf(d,"data");f&&("ok"==f?jf(d,h):("error"==f&&"no machine state"!=
|
||||
h?(this.pa("Error: "+h),"unable to verify user"==h&&(ua("user",""),this.u=null)):this.g(f+": "+h),ff(d),jf(d)?(c=hf(d),e=!0):c=!1))}e&&sf(this,c?d:null)}else 2==a&&d.clear()}else sf(this);delete this.X;delete this.Y}e=Za(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.b&&(c=uf(this,h,d,b,c));b=[d,a,c];-1!=a?rf(this,this.Ib,b):this.Ib(b)}};
|
||||
function uf(a,b,c,d,e){if(!b.A.ia){b.A.ia=!0;if(b.Ba){var f=null;e&&((f=kf(c,b.id))||(f=kf(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.Ba(f,d)&&f&&(t("Unable to restore state for "+b.type),a.ga&&!a.na?(c.clear(),a.w=nf,window&&window.location.reload()):a.la=!0,b.Ba(null),e=!1)}if(!d&&b.Eb)for(a=b.Eb.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
m.Ib=function(a){var b=a[0],c=0>a[1];a=a[2];this.A.ia=!0;var d=this.T.power;d&&(d.textContent="Shutdown");this.ka||(this.g("PC8080 v"+pf+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ka=!0);this.b&&(uf(this,this.b,b,c,a),tc(this.b));this.la&&(tf(this,b),b.clear());!c&&this.H&&(this.H.clear(),delete this.H);this.D=0};
|
||||
function tf(a,b){if(qa("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.sa,d=a.u||"",e=b.toString(),f={app:"PC8080"};f.ver=pf;f.url=c;f.user=d;f.type="bug";f.data=e;na("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function df(a,b,c){var d,e="none";if(a.D)return null;a.D--;var f=new Hc(a,pf),h=new Hc(a,pf,"validate"),g=la();H(h,"timestamp",g);H(f,"timestamp",g);H(f,"version","1.22.0");H(f,"url",window?window.location.href:null);H(f,"browser",pa());a.b&&a.b.Aa&&(c&&a.b.da(),d=a.b.Aa(b,c),"object"===typeof d&&H(f,a.b.id,d),c&&(a.b.A.ia=!1,!1===d&&(e=null)));for(var g=Za(a.id),k=0;k<g.length;k++){var l=g[k];l.A.ia&&(l.Aa&&(d=l.Aa(b,c),"object"===typeof d&&H(f,l.id,d)),c&&(l.A.ia=!1,!1===d&&(e=null)))}e&&(c?(g=
|
||||
d=!1,b?(a.u&&vf(a,a.u,f.toString()),gf(h)&&gf(f)||(e=null,d=g=!0)):a.w&&(d=!0,g=3==a.w),d&&f.clear(g)):e=f.toString());c&&(a.A.ia=!1,b=a.T.power)&&(b.textContent="Power");a.D=0;return e}m.reset=function(){this.B&&this.B.reset&&(fb(this,"Resetting "+this.B.type),this.B.reset());for(var a=Za(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.B&&c.reset&&(fb(this,"Resetting "+c.type),c.reset())}};
|
||||
m.start=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};m.stop=function(a,b){for(var c=Za(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
m.qa=function(a,b,c){var d=this;switch(b){case "power":return this.V[b]=c,c.onclick=function(){d.D||(d.A.ia?bf(d,!1,!0):pf(d,d.jb))},!0;case "reset":return this.V[b]=c,c.onclick=function(){if(d.A.ia&&!d.D)if(d.w&&!d.M){var a=qa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");bf(d,a,!0);!a&&d.fa?window&&window.location.reload():d.jb(lf)}else d.reset(),d.b&&sc(d.b)},!0;case "save":if(da(oa(),"pcjs.org")){c.parentNode.removeChild(c);
|
||||
break}this.V[b]=c;c.onclick=function(){var a=mf(d,!0);if(a){var b=!!(d.w&&!d.M||d.fa),c=bf(d,b);b?tf(d,a,c):d.oa("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function mf(a,b){var c=a.u;c||(c=ta("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=uf(a,c))||a.oa("The user ID is invalid."))):b&&a.oa("Browser local storage is not available"));return c}
|
||||
function uf(a,b){a.u=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ua("user",c.data),a.u=c.data)}catch(e){t(e.message+" ("+d+")")}return a.u}function of(a){var b=null;a.u&&(b=oa()+"/api/v1/user?req=load&user="+a.u+"&state="+cf(a,nf));return b}
|
||||
function tf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=cf(a,nf);d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.oa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.oa(c),ua("user",""),a.u=null)}}
|
||||
function nb(a,b,c){a=Za(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.lb=function(){};m.va=function(a){this.b&&this.b.va(a);this.G&&this.G.va(a)};
|
||||
function yc(a,b){for(var c=0;c<a.aa.length;c++)a:{var d=a.aa[c];if(0<=b){if(b&1){d=d.b;d.u=d.u&-8|10;break a}var e=d.b;e.u=e.u&-8|9;if(e=d.aa){for(var e=d.B,f=d.M,h=!0,g=d.X>>>e.ea;0<f&&g<e.T.length;)e.T[g].wa&&(e.T[g].wa=h=!1,e.T[g].Kb=!0),f-=e.ua,g++;e=h}if(e)break a}var g=d.X,k=g+d.M,l=0,p=d.Aa,n=0,u=0,e=d.G,z=0,f=d.H,v=h=0,O=d.fa,B=(1<<O)-1;d.Ba&&(O=-O,v=16+O);for(;g<k;){var U=ub(d.B,g);if(d.aa&&U===d.J[l])n+=d.ra;else{d.J[l]=U;var E=v;v&&(U=U>>8|(U&255)<<8);n<e&&(e=n);for(var wa=0;wa<d.ra;wa++){var P=
|
||||
U>>E&B,K=d.ba,ka=n++,P=p[P],xa=void 0,xa=d.ka?(K.height-ka-1)*K.width+u:ka+u*K.width,xa=xa*P.length;K.data[xa]=P[0];K.data[xa+1]=P[1];K.data[xa+2]=P[2];K.data[xa+3]=P[3];E+=O}n>z&&(z=n);u<f&&(f=u);u>=h&&(h=u+1)}g+=2;l++;if(n>=d.G&&(n=0,u++,u>d.H))break}d.aa=!0;e<d.G&&(g=z-e,h-=f,d.ka?d.ma.putImageData(d.ba,0,0):d.ma.putImageData(d.ba,0,0,e,f,g,h),d.u.drawImage(d.D,0,0,d.D.width,d.D.height,0,0,d.Y,d.K))}}
|
||||
Ja(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new jf(h,d,!0);cb(h,f);h.ba&&pf(h,h.jb)}});Ea.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.ka&&!c.A.ia&&c.jb(-1)}});
|
||||
Ea.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.A.ia&&bf(c,!(!c.w||c.M),!0)}});var vf=0;function wf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Jf(g,a,b,c,d,e,f)})}
|
||||
function Jf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){g=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Kf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Kf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);Kf(a,b,c)}})}else c(a,null)}
|
||||
function Lf(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--vf||La(!0));k=!1}var h,g,k=!0;vf++;Xa[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));p.appendChild(n)}c||
|
||||
(c="/versions/pc8080/1.22.0/components.xsl");l=function(d,g){g?wf(c,null,null,!1,e,function(d,l){if(l)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--vf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--vf||La(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?wf(b,a,d,!0,e,l):Jf(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return Lf(a,b,c,d)};window.enableEvents=La;window.sendEvent=Pa;
|
||||
function Mf(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){Nf(b,d)}):Nf(null,d)}else t("Error ("+c+") requesting "+a)}
|
||||
function Nf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],k={},l;for(l in g){var p=g[l],n=ca(l);if("xml"==n){for(n=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=n.exec(g[l]);){var u=d[2];u&&(g[u]||(p=p.replace(d[0],"")))}d=l=ba(l)}else"xsl"==n&&(e=l=ba(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||
m.oa=function(a,b,c){var d=this;switch(b){case "power":return this.T[b]=c,c.onclick=function(){d.D||(d.A.ia?df(d,!1,!0):rf(d,d.kb))},!0;case "reset":return this.T[b]=c,c.onclick=function(){if(d.A.ia&&!d.D)if(d.w&&!d.M){var a=qa("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");df(d,a,!0);!a&&d.ga?window&&window.location.reload():d.kb(nf)}else d.reset(),d.b&&tc(d.b)},!0;case "save":if(da(oa(),"pcjs.org")){c.parentNode.removeChild(c);
|
||||
break}this.T[b]=c;c.onclick=function(){var a=of(d,!0);if(a){var b=!!(d.w&&!d.M||d.ga),c=df(d,b);b?vf(d,a,c):d.pa("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function of(a,b){var c=a.u;c||(c=ta("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=wf(a,c))||a.pa("The user ID is invalid."))):b&&a.pa("Browser local storage is not available"));return c}
|
||||
function wf(a,b){a.u=null;var c=na(oa()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(ua("user",c.data),a.u=c.data)}catch(e){t(e.message+" ("+d+")")}return a.u}function qf(a){var b=null;a.u&&(b=oa()+"/api/v1/user?req=load&user="+a.u+"&state="+ef(a,pf));return b}
|
||||
function vf(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=ef(a,pf);d.data=c;b=na(oa()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.pa("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.pa(c),ua("user",""),a.u=null)}}
|
||||
function ob(a,b,c){a=Za(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.mb=function(){};m.va=function(a){this.b&&this.b.va(a);this.G&&this.G.va(a)};
|
||||
function zc(a,b){for(var c=0;c<a.aa.length;c++)a:{var d=a.aa[c];if(0<=b){if(b&1){d=d.b;d.u=d.u&-8|10;break a}var e=d.b;e.u=e.u&-8|9;if(e=d.ga){for(var e=d.B,f=d.aa,h=!0,g=d.ba>>>e.ea;0<f&&g<e.U.length;)e.U[g].ya&&(e.U[g].ya=h=!1,e.U[g].Lb=!0),f-=e.ua,g++;e=h}if(e)break a}var g=d.ba,k=g+d.aa,l=0,p=d.Ia,n=0,u=0,e=d.J,z=0,f=d.K,v=h=0,O=d.la,B=(1<<O)-1;d.pb&&(O=-O,v=16+O);for(;g<k;){var U=vb(d.B,g);if(d.ga&&U===d.X[l])n+=d.Ca;else{d.X[l]=U;var E=v;v&&(U=U>>8|(U&255)<<8);n<e&&(e=n);for(var wa=0;wa<d.Ca;wa++){var P=
|
||||
U>>E&B,K=d.ka,ka=n++,P=p[P],xa=void 0,xa=d.na?(K.height-ka-1)*K.width+u:ka+u*K.width,xa=xa*P.length;K.data[xa]=P[0];K.data[xa+1]=P[1];K.data[xa+2]=P[2];K.data[xa+3]=P[3];E+=O}n>z&&(z=n);u<f&&(f=u);u>=h&&(h=u+1)}g+=2;l++;if(n>=d.J&&(n=0,u++,u>d.K))break}d.ga=!0;e<d.J&&(g=z-e,h-=f,d.na?d.ra.putImageData(d.ka,0,0):d.ra.putImageData(d.ka,0,0,e,f,g,h),d.H.drawImage(d.D,0,0,d.D.width,d.D.height,0,0,d.Y,d.M))}}
|
||||
Ja(function(){for(var a=A(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=y(c),c=A(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=y(f),h=new lf(h,d,!0);cb(h,f);h.ba&&rf(h,h.kb)}});Ea.show.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.ka&&!c.A.ia&&c.kb(-1)}});
|
||||
Ea.exit.push(function(){for(var a=A(document,"pc8080","computer"),b=0;b<a.length;b++){var c=y(a[b]);(c=$a("Computer",c.id))&&c.A.ia&&df(c,!(!c.w||c.M),!0)}});var xf=0;function yf(a,b,c,d,e,f){e("Loading "+a+"...");na(a,null,!0,function(h,g,k){k?(g||(g="unable to load "+a+" ("+k+")"),f(g,null)):Lf(g,a,b,c,d,e,f)})}
|
||||
function Lf(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ya(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){g=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Mf(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Mf(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");na(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var k=g[0],l,p=/( [a-z]+=)(['"])(.*?)\2/g;l=p.exec(f);)k=0>k.indexOf(l[1])?k.replace(">",l[0]+">"):k.replace(new RegExp(l[1]+"(['\"])(.*?)\\1"),l[0]);g[0]!=k&&(h=h.replace(g[0],k))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);Mf(a,b,c)}})}else c(a,null)}
|
||||
function Nf(a,b,c,d){function e(a){if(void 0===g){var b=h&&A(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=fa(a))}function f(a){e("Error: "+a);k&&(--xf||La(!0));k=!1}var h,g,k=!0;xf++;Xa[a]={};try{if(h=document.getElementById(a)){var l;if("object"==typeof resources&&(l=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";n.styleSheet?n.styleSheet.cssText=l:n.appendChild(document.createTextNode(l));p.appendChild(n)}c||
|
||||
(c="/versions/pc8080/1.22.0/components.xsl");l=function(d,g){g?yf(c,null,null,!1,e,function(d,l){if(l)if(Ya(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var k=g.transformNode(l);k?(h.outerHTML=k,--xf||La(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(k=new XSLTProcessor,k.importStylesheet(l),(k=k.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(k,h),--xf||La(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?yf(b,a,d,!0,e,l):Lf(b,null,a,d,!1,e,l)}else f("missing machine element: "+a)}catch(u){f(u.message)}return k}window.embedPC8080=function(a,b,c,d){La(!1);return Nf(a,b,c,d)};window.enableEvents=La;window.sendEvent=Pa;
|
||||
function Of(a,b,c,d){if(!c&&b){d.push(b);a=Xa[d[0]];b=null;for(var e in a)if(da(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?na(b,null,!0,function(a,b){Pf(b,d)}):Pf(null,d)}else t("Error ("+c+") requesting "+a)}
|
||||
function Pf(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Xa[f],k={},l;for(l in g){var p=g[l],n=ca(l);if("xml"==n){for(n=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=n.exec(g[l]);){var u=d[2];u&&(g[u]||(p=p.replace(d[0],"")))}d=l=ba(l)}else"xsl"==n&&(e=l=ba(l));k[l]=p}a&&(k[l="css"]=a);b[2]&&(k[l="parms"]=b[2]);b[3]&&(k[l="state"]=b[3]);d&&e?(l=JSON.stringify(k),h+=".js",c=c[1]+"var resources="+l+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||
"©"),l=h,g=null,k="data:application/javascript,",k=va("Firefox")?k+encodeURIComponent(c):k+encodeURI(c),l&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=k,g.download=l,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+l+"."):(window.open(k),c="Check your browser for a new window/tab containing the requested data"+(l?" ("+l+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
||||
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",t(c)):t("Missing XML/XSL resources")}
|
||||
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=bf(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Sb:h}))return!0;na(b,null,!0,function(c,d,e){Mf(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
|
||||
window.savePC=function(a,b,c){var d=$a("Computer",a),e=$a("Debugger",a);if(d){var f=df(d,!0),h=d.K?JSON.stringify(d.K):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Sb:h}))return!0;na(b,null,!0,function(c,d,e){Of(c,d,e,[a,ba(b,!0),h,f])});return!0}t("Unable to identify machine '"+a+"'");return!1};})();
|
||||
|
|
|
|||
|
|
@ -4,50 +4,50 @@ function ea(a,b){return-1!==a.indexOf(b,a.length-b.length)}var fa={"&":"&","
|
|||
function p(a,b,c,d){var e=0,f=null,h=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),h;var g=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(g.onreadystatechange=function(){4===g.readyState&&(f=g.responseText,200==g.status||!g.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=g.status||-1),d&&d(a,f,e))});if(b&&"object"==
|
||||
typeof b){var l="",k;for(k in b)b.hasOwnProperty(k)&&(l&&(l+="&"),l+=k+"="+encodeURIComponent(b[k]));l=l.replace(/%20/g,"+");g.open("POST",a,!!c);g.setRequestHeader("Content-type","application/x-www-form-urlencoded");g.send(l)}else g.open("GET",a,!!c),"bytes"==b&&g.overrideMimeType("text/plain; charset=x-user-defined"),g.send();c||(f=g.responseText,200!=g.status&&(e=g.status||-1),d&&d(a,f,e),h=[f,e]);return h}function ja(){return"http://"+(window?window.location.host:"www.pcjs.org")}
|
||||
function r(a){window&&window.alert(a)}function ka(a){var b=!1;window&&(b=window.confirm(a));return b}var la=null;function oa(){if(null==la){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}la=a}return la}function pa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
|
||||
function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(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 ta={init:[],show:[],exit:[]},ua=!1,va=!0;function wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function xa(a){ta.init.push(a)}
|
||||
function ya(a){if(va)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function za(a){!va&&a?(va=!0,ua&&Aa("init")):va=a}function Aa(a){ta[a]&&ya(ta[a])}wa("onload",function(){ua=!0;ya(ta.init)});wa("onpageshow",function(){ya(ta.show)});wa(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){ya(ta.exit)});
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.ya=b.comment;this.Ya=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Oa=this.id.substr(0,b),this.za=this.id.substr(b+1)):this.za=this.id;this[a]=c;this.h={ea:!1,la:!1,Ia:!1,J:!1,$:!1};this.Ca=null;this.h.$=!1;this.B={};this.H=null;u.push(this)}var Ba=void 0,Ca={};
|
||||
if(window){Ba||(Ba=window.location.search.substr(1));for(var Da,Ea=/\+/g,Ga=/([^&=]+)=?([^&]*)/g;Da=Ga.exec(Ba);)Ca[decodeURIComponent(Da[1].replace(Ea," "))]=decodeURIComponent(Da[2].replace(Ea," "))}function Ha(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 v(a,b){b||(b=t);a.prototype=Ha(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var u=[],Ia={};function Ja(a,b,c){Ia[a]&&b&&(Ia[a][b]=c)}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function qa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function ra(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 sa={init:[],show:[],exit:[]},ua=!1,va=!0;function wa(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function xa(a){sa.init.push(a)}
|
||||
function ya(a){if(va)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){r("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks.")}}function za(a){!va&&a?(va=!0,ua&&Aa("init")):va=a}function Aa(a){sa[a]&&ya(sa[a])}wa("onload",function(){ua=!0;ya(sa.init)});wa("onpageshow",function(){ya(sa.show)});wa(ra("Opera")||ra("iOS")?"onunload":"onbeforeunload",function(){ya(sa.exit)});
|
||||
function t(a,b,c){this.type=a;b||(b={id:"",name:""});this.id=b.id;this.name=b.name;this.za=b.comment;this.$a=b;void 0===this.id&&(this.id="");b=this.id.indexOf(".");0<b?(this.Qa=this.id.substr(0,b),this.Aa=this.id.substr(b+1)):this.Aa=this.id;this[a]=c;this.h={ia:!1,pa:!1,Ka:!1,K:!1,ba:!1};this.Da=null;this.h.ba=!1;this.B={};this.H=null;u.push(this)}var Ba=void 0,Ca={};
|
||||
if(window){Ba||(Ba=window.location.search.substr(1));for(var Da,Ea=/\+/g,Fa=/([^&=]+)=?([^&]*)/g;Da=Fa.exec(Ba);)Ca[decodeURIComponent(Da[1].replace(Ea," "))]=decodeURIComponent(Da[2].replace(Ea," "))}function Ga(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 v(a,b){b||(b=t);a.prototype=Ga(b.prototype);a.prototype.constructor=a;a.prototype.parent=b.prototype}var u=[],Ha={};function Ja(a,b,c){Ha[a]&&b&&(Ha[a][b]=c)}function w(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}
|
||||
function Ka(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function x(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){r(c.message+" ("+a+")")}return b}
|
||||
function La(a,b){for(var c=y(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=x(h))&&g.binding&&a.R(g.type,g.binding,h,g.value),k=l.length}}}}
|
||||
function La(a,b){for(var c=y(b.parentNode,"pc8080-control"),d=0;d<c.length;d++)for(var e=c[d].childNodes,f=0;f<e.length;f++){var h=e[f];if(1===h.nodeType){var g=h.getAttribute("class");if(g)for(var l=g.split(" "),k=0;k<l.length;k++)switch(g=l[k],g){case "pc8080-binding":(g=x(h))&&g.binding&&a.O(g.type,g.binding,h,g.value),k=l.length}}}}
|
||||
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}
|
||||
t.prototype={constructor:t,parent:null,toString:function(){return this.name?this.name:this.id||this.type},R:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Z=this.B[b]=c,c.value="",this.P=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.K=function(a,b,c){this.P(a,"notice",c)}),!0;default:return!1}},log:function(){},P:function(){},status:function(a){this.P(this.za+": "+a)},K:function(a,b){b||r(a)},V:function(){return this.h.J=!0},U:function(a,b){b&&(this.h.J=!1);return!0}};function Ma(a,b){if(a.h.Ia)return a.h.la&&(a.h.la=!1),a.h.Ia=!1;if(a.h.$)return a.P(a.toString()+" error"),!1;a.h.la=b;return a.h.la}function B(a){if(!a.h.$&&(a.h.ea=!0,a.h.ea)){var b=a.Ca;a.Ca=null;b&&b()}}
|
||||
function Na(a,b){b&&(a.h.ea?b():a.Ca=b);return a.h.ea}
|
||||
t.prototype={constructor:t,parent:null,toString:function(){return this.name?this.name:this.id||this.type},O:function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Z=this.B[b]=c,c.value="",this.R=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),
|
||||
this.L=function(a,b,c){this.R(a,"notice",c)}),!0;default:return!1}},log:function(){},R:function(){},status:function(a){this.R(this.Aa+": "+a)},L:function(a,b){b||r(a)},X:function(){return this.h.K=!0},W:function(a,b){b&&(this.h.K=!1);return!0}};function Ma(a,b){if(a.h.Ka)return a.h.pa&&(a.h.pa=!1),a.h.Ka=!1;if(a.h.ba)return a.R(a.toString()+" error"),!1;a.h.pa=b;return a.h.pa}function B(a){if(!a.h.ba&&(a.h.ia=!0,a.h.ia)){var b=a.Da;a.Da=null;b&&b()}}
|
||||
function Na(a,b){b&&(a.h.ia?b():a.Da=b);return a.h.ia}
|
||||
var Oa="undefined"!==typeof ArrayBuffer,Pa=[1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,
|
||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Qa(a){t.call(this,"Panel",a,Qa)}v(Qa);m=Qa.prototype;m.R=function(a,b,c,d){return this.u&&this.u.R(a,b,c,d)||this.a&&this.a.R(a,b,c,d)||this.b&&this.b.R(a,b,c,d)?!0:this.parent.R.call(this,a,b,c,d)};m.aa=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.b=Ra(a,"Keyboard")};m.V=function(a,b){b||Sa();return!0};m.U=function(){return!0};m.da=function(){};
|
||||
0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1];function Qa(a){t.call(this,"Panel",a,Qa)}v(Qa);m=Qa.prototype;m.O=function(a,b,c,d){return this.u&&this.u.O(a,b,c,d)||this.a&&this.a.O(a,b,c,d)||this.b&&this.b.O(a,b,c,d)?!0:this.parent.O.call(this,a,b,c,d)};m.ca=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.b=Ra(a,"Keyboard")};m.X=function(a,b){b||Sa();return!0};m.W=function(){return!0};m.fa=function(){};
|
||||
function Sa(){for(var a=!1,b=y(document,"pc8080","panel"),c=0;c<b.length;c++){var d=b[c],e=x(d),f;a:{f=e.id;if(void 0!==f)for(var h=void 0,h=0;h<u.length;h++)if(u[h].id===f){f=u[h];break a}f=null}f||(a=!0,f=new Qa(e));La(f,d);a&&B(f)}}xa(Sa);
|
||||
function Ta(a,b,c){t.call(this,"Bus",a,Ta);this.a=b;this.H=c;this.j=a.busWidth||16;this.s=Math.pow(2,this.j);this.i=this.s-1|0;this.c=16>=this.j?10:20>=this.j?12:24>=this.j?14:15;this.f=1<<this.c;this.A=this.f>>2;this.g=this.f-1;this.l=this.s/this.f|0;this.u=this.l-1;this.o=[];this.m=[];this.C=[];this.D=[];a=new C;Ua(a,this.H);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;B(this)}v(Ta);Ta.prototype.reset=function(){};Ta.prototype.V=function(a,b){b||this.reset();return!0};
|
||||
function Va(a,b,c,d){for(var e=b>>>a.c;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.f,g=a.f-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.ka)return f.Ha+=f.ka-b,f.ka=b,!0;if(b>=f.ka+f.Ha){g=f.size-(b-h);g>c&&(g=c);f.Ha=b-f.ka+g;b=h+a.f;c-=g;e++;continue}}return Wa(1,b,c)}b=new C(b,g,a.f,d);Ua(b,a.H,f);a.b[e++]=b;b=h+a.f;c-=g}return 0>=c?!0:Wa(2,b,c)}Ta.prototype.F=function(a){return this.b[(a&this.i)>>>this.c].ta(a&this.g,a)};
|
||||
function Xa(a,b){var c=b&a.g,d=(b&a.i)>>>a.c;return c!=a.g?a.b[d].pb(c,b):a.b[d++].ta(c,b)|a.b[d&a.u].ta(0,b+1)<<8}Ta.prototype.M=function(a,b){this.b[(a&this.i)>>>this.c].ua(a&this.g,b&255,a)};function Ya(a,b,c){a.b[(b&a.i)>>>a.c].ab(b&a.g,c&255,b)}function Za(a,b,c){var d=b&a.g,e=(b&a.i)>>>a.c;d!=a.g?a.b[e].qb(d,c&65535,b):(a.b[e++].ua(d,c&255,b),a.b[e&a.u].ua(0,c>>8&255,b+1))}function Wa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var $a;
|
||||
function Ta(a,b,c){t.call(this,"Bus",a,Ta);this.a=b;this.H=c;this.j=a.busWidth||16;this.s=Math.pow(2,this.j);this.i=this.s-1|0;this.c=16>=this.j?10:20>=this.j?12:24>=this.j?14:15;this.f=1<<this.c;this.A=this.f>>2;this.g=this.f-1;this.l=this.s/this.f|0;this.u=this.l-1;this.o=[];this.m=[];this.C=[];this.D=[];a=new C;Ua(a,this.H);this.b=Array(this.l);for(b=0;b<this.l;b++)this.b[b]=a;B(this)}v(Ta);Ta.prototype.reset=function(){};Ta.prototype.X=function(a,b){b||this.reset();return!0};
|
||||
function Va(a,b,c,d){for(var e=b>>>a.c;0<c&&e<a.b.length;){var f=a.b[e],h=e*a.f,g=a.f-(b-h);g>c&&(g=c);if(f&&f.size){if(f.type==d){if(b+c<=f.oa)return f.Ia+=f.oa-b,f.oa=b,!0;if(b>=f.oa+f.Ia){g=f.size-(b-h);g>c&&(g=c);f.Ia=b-f.oa+g;b=h+a.f;c-=g;e++;continue}}return Wa(1,b,c)}b=new C(b,g,a.f,d);Ua(b,a.H,f);a.b[e++]=b;b=h+a.f;c-=g}return 0>=c?!0:Wa(2,b,c)}Ta.prototype.F=function(a){return this.b[(a&this.i)>>>this.c].xa(a&this.g,a)};
|
||||
function Xa(a,b){var c=b&a.g,d=(b&a.i)>>>a.c;return c!=a.g?a.b[d].qb(c,b):a.b[d++].xa(c,b)|a.b[d&a.u].xa(0,b+1)<<8}Ta.prototype.M=function(a,b){this.b[(a&this.i)>>>this.c].ya(a&this.g,b&255,a)};function Ya(a,b,c){a.b[(b&a.i)>>>a.c].cb(b&a.g,c&255,b)}function Za(a,b,c){var d=b&a.g,e=(b&a.i)>>>a.c;d!=a.g?a.b[e].rb(d,c&65535,b):(a.b[e++].ya(d,c&255,b),a.b[e&a.u].ya(0,c>>8&255,b+1))}function Wa(a,b,c){r("Memory block error ("+a+": "+n(b)+","+n(c)+")");return!1}var $a;
|
||||
if(Oa){var ab=new ArrayBuffer(2);(new DataView(ab)).setUint16(0,256,!0);$a=256===(new Uint16Array(ab))[0]}else $a=!1;var bb=$a;
|
||||
function C(a,b,c,d){this.id=cb+=2;this.a=null;this.ka=a;this.Ha=b;this.size=c||0;this.type=d||db;this.g=d==eb;Ua(this);this.S=this.Ra=!1;if(c)if(Oa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),fb(this,bb?gb:hb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;fb(this,ib)}else fb(this)}var db=0,eb=2,cb=0;
|
||||
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Oa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Oa)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.S=!0}return!1},o:function(){return 255},B:function(){},m:function(a,b){return this.ta(a++,b++)|this.ta(a,b)<<8},u:function(a,b,c){this.ua(a++,b&255,c++);this.ua(a,b>>8,c)},D:function(a){return this.a[a>>
|
||||
2]>>>((a&3)<<3)&255},N: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},Y:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.S=!0},za:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.S=!0},A:function(a,b){return this.Ma(a,b)},I:function(a,b){return this.Za(a,b)},O:function(a,b,c){this.g||this.ab(a,b,c)},wa:function(a,
|
||||
b,c){this.g||this.xa(a,b,c)},s:function(a){return this.b[a]},C:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},L:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},W:function(a,b){this.b[a]=b;this.S=!0},X:function(a,b){this.b[a]=b;this.S=!0},va:function(a,b){this.f.setUint16(a,b,!0);this.S=!0},ya:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.S=!0}};function Ua(a,b,c){a.H=b;a.i=a.j=0;c&&((a.i=c.i)&&jb(a,kb,!1),(a.j=c.j)&&lb(a,kb,!1))}
|
||||
function lb(a,b,c){c&&a.j||(a.ua=!a.g&&b[2]||a.B,a.qb=!a.g&&b[3]||a.u);if(c||void 0===c)a.ab=b[2]||a.B,a.xa=b[3]||a.u}function jb(a,b,c){c&&a.i||(a.ta=b[0]||a.o,a.pb=b[1]||a.m);if(c||void 0===c)a.Ma=b[0]||a.o,a.Za=b[1]||a.m}function fb(a,b){b||(b=mb);jb(a,b,void 0);lb(a,b,void 0)}var mb=[],ib=[C.prototype.D,C.prototype.N,C.prototype.Y,C.prototype.za],kb=[C.prototype.A,C.prototype.I,C.prototype.O,C.prototype.wa];
|
||||
if(Oa)var hb=[C.prototype.s,C.prototype.G,C.prototype.W,C.prototype.va],gb=[C.prototype.C,C.prototype.L,C.prototype.X,C.prototype.ya];
|
||||
function nb(a,b){t.call(this,"CPU",a,nb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.ja=c;this.c.Ga=0;this.c.ia=d;this.c.Ja=Math.round(this.c.ja/1E4)/100;this.c.fa=this.c.Ja*this.c.ia;this.h.T=!1;this.h.Ta=!1;this.h.Qa=a.autoStart;this.h.Sa=!1;this.h.Aa=!1;this.c.Ea=this.c.ha=0;this.c.Fa=a.csStart;this.c.ma=a.csInterval;this.c.na=a.csStop;this.cb=this.Na.bind(this);B(this)}v(nb);var ob=["power","reset"];m=nb.prototype;
|
||||
m.aa=function(a,b,c,d){this.u=a;this.o=b;this.H=d;for(b=0;b<ob.length;b++)(c=this.B[ob[b]])&&this.u.R(null,ob[b],c);this.W=(b=Ra(a,"Video"))&&Math.max(b.W,b.bb)||60;this.Y=Ra(a,"ChipSet");a=pb(a,"autoStart");null!=a&&(this.h.Qa="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.c.Ga=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||
m.V=function(a,b){if(!b){if(a&&this.restore){qb(this);if(!this.restore(a))return!1;rb(this)}else this.reset();this.P("No debugger detected")}sb(this);return!0};m.U=function(a){return a?this.save():!0};function tb(a){(a.h.Qa||void 0===a.B.run)&&a.Na()}m.Ua=function(){return 0};function rb(a){void 0===a.c.Fa&&(a.c.Fa=0);void 0===a.c.ma&&(a.c.ma=-1);void 0===a.c.na&&(a.c.na=-1);a.h.Aa=0<=a.c.Fa&&0<a.c.ma;a.h.Aa&&(a.c.Ea=0,a.c.ha=a.c.Fa-a.N)}
|
||||
m.R=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.J)a=!0;else{var b=null,c,g=w(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ea);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.J);c++);c==g.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ea?"powered yet":"ready yet"+(b.Ca?" (waiting for notification)":""))+".");a=!1}a&&(d.h.T?ub(d,!0):d.Na())};a=!0;break;
|
||||
case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){wb(d,d.c.ia<<1)},c.textContent=this.c.fa.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.N+=b;c&&(a.L=a.a=0)}
|
||||
function yb(a,b){var c=30;c<a.W&&(c=a.W);2>c&&(c=2);var d=1;b&&1<a.c.ia&&a.c.ba&&(d=a.c.ba/a.c.Ja);a.c.Va=Math.round(1E3/30);a.c.jb=Math.floor(a.c.ja/c*d);a.c.Ka=Math.floor(a.c.ja/30*d);a.c.Xa=Math.floor(a.c.ja/a.W*d);a.c.Wa=Math.floor(a.c.ja/2*d);b||(a.c.qa=a.c.Ka,a.c.pa=a.c.Xa,a.c.oa=a.c.Wa);a.c.La=0}function zb(a){return a.N+a.I+a.L-a.a}function qb(a){a.c.ba=0;a.N=a.I=a.L=a.a=0;rb(a);wb(a,1)}
|
||||
function wb(a,b){if(void 0!==b){.8>a.c.ba/a.c.fa&&(b=1);a.c.ia=b;var c=a.c.Ja*a.c.ia;if(a.c.fa!=c){a.c.fa=c;var c=a.c.fa.toFixed(2)+"Mhz",d=a.B.setSpeed;d&&(d.textContent=c);a.P("target speed: "+c)}}xb(a,a.I);a.I=0;a.c.ga=ha();a.c.ca=0;yb(a)}
|
||||
m.Na=function(){if(Ma(this,!0)){if(!this.h.T){wb(this);this.u&&this.u.start(this.c.ga,zb(this));this.h.T=!0;this.h.Ta=!0;this.Y&&this.Y.start();var a=this.B.run;a&&(a.textContent="Halt");this.u&&this.u.da(!0)}this.c.La>=this.c.ja&&yb(this,!0);this.c.ra=0;this.c.Da=ha();this.c.ca&&(a=this.c.Da-this.c.ca,a>this.c.Va&&(this.c.ga+=a,this.c.ga>this.c.Da&&(this.c.ga=this.c.Da)));try{do{var b=this.h.Aa?1:this.c.jb;try{this.$a(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.L-this.a;this.I+=c;this.c.ra+=
|
||||
c;xb(this,0,!0);a=c;if(this.h.Aa){var d=!1;this.c.Ea=this.c.Ea+this.Ua()|0;this.c.ha-=a;0>=this.c.ha&&(this.c.ha+=this.c.ma,d=!0);0<=this.c.na&&this.c.na<=zb(this)&&(this.c.ma=this.c.na=-1,rb(this),ub(this),d=!0);d&&this.P(zb(this)+" cycles: checksum="+n(this.c.Ea))}this.c.pa-=c;0>=this.c.pa&&(this.c.pa+=this.c.Xa,this.u&&Ab(this.u,this.c.Ga++),this.c.Ga>this.W&&(this.c.Ga=0));this.c.oa-=c;0>=this.c.oa&&(this.c.oa+=this.c.Wa,this.u&&this.u.da());this.c.qa-=c;if(0>=this.c.qa){this.c.qa+=this.c.Ka;
|
||||
break}}while(this.h.T)}catch(e){ub(this);sb(this);this.u&&this.u.stop(ha(),zb(this));Ma(this,!1);b=e.stack||e.message;this.h.$=!0;this.K(b);return}b=setTimeout;c=this.cb;this.c.ca=ha();a=this.c.Va;this.c.ra&&(a=Math.round(a*this.c.ra/this.c.Ka));a-=this.c.ca-this.c.Da;if(d=this.c.ca-this.c.ga)this.c.ba=Math.round(this.I/(10*d))/100,864E5<=d&&(this.N=0,wb(this));if(0>a||this.c.ba<this.c.fa)a=0;this.c.La+=this.c.ra;this.c.ca+=a;b(c,a)}else sb(this),this.u&&this.u.stop(ha(),zb(this))};m.$a=function(){return 0};
|
||||
function ub(a,b){a.h.la&&(a.h.Ia=!0);a.L-=a.a;a.a=0;xb(a,a.I);a.I=0;if(a.h.T){a.h.T=!1;a.Y&&a.Y.stop();var c=a.B.run;c&&(c.textContent="Run")}a.h.Ba=b}function sb(a){a.u&&(Ab(a.u,-1),a.u.da(void 0))}function Bb(a){this.O=a.model||8080;nb.call(this,a,1E6);this.va=Cb;qb(this);this.h.Ba=this.h.eb=!1;this.xa=0;this.X=[];this.wa=0;Db(this)}v(Bb,nb);function Eb(a,b){a.X.push(b)}m=Bb.prototype;m.reset=function(){this.h.T&&ub(this);Db(this);qb(this);this.h.$=!1;this.parent.reset.call(this)};
|
||||
function Db(a){a.b=0;a.g=0;a.v=0;a.i=0;a.w=0;a.j=0;a.l=0;a.A=0;D(a,a.wa);Fb(a,0);a.D=0}function Gb(a,b){a.wa=b;D(a,b)}m.Ua=function(){var a=this.b+this.g+this.v+this.i+this.w+this.j+this.l|0;return a=a+this.A+this.m+Hb(this)|0};
|
||||
m.save=function(){var a=new E(this);G(a,0,[this.b,this.g,this.v,this.i,this.w,this.j,this.l,this.A,this.m,Hb(this)]);G(a,1,[this.D,this.N,this.c.ia]);for(var b=this.o,c=0,d=[],e=0;e<b.l;e++){var f=b.b[e];if(f.S||f.Ra){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var A=f[g],q=g+1;q<f.length&&f[q]===A;)q++;k[l++]=q-g;k[l++]=A;g=q}if(k.length<f.length){f=k;break a}}d[h]=f}}G(a,2,d);return a.data()};
|
||||
function C(a,b,c,d){this.id=cb+=2;this.a=null;this.oa=a;this.Ia=b;this.size=c||0;this.type=d||db;this.g=d==eb;Ua(this);this.S=this.Ta=!1;if(c)if(Oa)this.c=new ArrayBuffer(c),this.f=new DataView(this.c,0,c),this.b=new Uint8Array(this.c,0,c),this.l=new Uint16Array(this.c,0,c>>1),this.a=new Int32Array(this.c,0,c>>2),fb(this,bb?gb:hb);else{this.a=Array(c>>2);for(a=0;a<this.a.length;a++)this.a[a]=0;fb(this,ib)}else fb(this)}var db=0,eb=2,cb=0;
|
||||
C.prototype={constructor:C,parent:null,save:function(){var a,b;if(Oa)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.f.getInt32(b<<2,!0);else a=this.a;return a},restore:function(a){if(a&&this.size==a.length<<2){var b;if(Oa)for(b=0;b<a.length;b++)this.f.setInt32(b<<2,a[b],!0);else this.a=a;return this.S=!0}return!1},o:function(){return 255},m:function(){},B:function(a,b){return this.xa(a++,b++)|this.xa(a,b)<<8},u:function(a,b,c){this.ya(a++,b&255,c++);this.ya(a,b>>8,c)},D:function(a){return this.a[a>>
|
||||
2]>>>((a&3)<<3)&255},N: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},V:function(a,b){var c=a>>2,d=(a&3)<<3;this.a[c]=this.a[c]&~(255<<d)|b<<d;this.S=!0},Aa:function(a,b){var c=a>>2,d=(a&3)<<3;24>d?this.a[c]=this.a[c]&~(65535<<d)|b<<d:(this.a[c]=this.a[c]&16777215|b<<24,c++,this.a[c]=this.a[c]&-256|b>>8);this.S=!0},A:function(a,b){return this.Oa(a,b)},I:function(a,b){return this.ab(a,b)},P:function(a,b,c){this.g||this.cb(a,b,c)},aa:function(a,
|
||||
b,c){this.g||this.ga(a,b,c)},s:function(a){return this.b[a]},C:function(a){return this.b[a]},G:function(a){return this.f.getUint16(a,!0)},J:function(a){return a&1?this.b[a]|this.b[a+1]<<8:this.l[a>>1]},Y:function(a,b){this.b[a]=b;this.S=!0},U:function(a,b){this.b[a]=b;this.S=!0},$:function(a,b){this.f.setUint16(a,b,!0);this.S=!0},za:function(a,b){a&1?(this.b[a]=b,this.b[a+1]=b>>8):this.l[a>>1]=b;this.S=!0}};function Ua(a,b,c){a.H=b;a.i=a.j=0;c&&((a.i=c.i)&&jb(a,kb,!1),(a.j=c.j)&&lb(a,kb,!1))}
|
||||
function lb(a,b,c){c&&a.j||(a.ya=!a.g&&b[2]||a.m,a.rb=!a.g&&b[3]||a.u);if(c||void 0===c)a.cb=b[2]||a.m,a.ga=b[3]||a.u}function jb(a,b,c){c&&a.i||(a.xa=b[0]||a.o,a.qb=b[1]||a.B);if(c||void 0===c)a.Oa=b[0]||a.o,a.ab=b[1]||a.B}function fb(a,b){b||(b=mb);jb(a,b,void 0);lb(a,b,void 0)}var mb=[],ib=[C.prototype.D,C.prototype.N,C.prototype.V,C.prototype.Aa],kb=[C.prototype.A,C.prototype.I,C.prototype.P,C.prototype.aa];
|
||||
if(Oa)var hb=[C.prototype.s,C.prototype.G,C.prototype.Y,C.prototype.$],gb=[C.prototype.C,C.prototype.J,C.prototype.U,C.prototype.za];
|
||||
function nb(a,b){t.call(this,"CPU",a,nb);var c=a.cycles||b,d=a.multiplier||1;this.c={};this.c.na=c;this.c.Ha=0;this.c.ma=d;this.c.La=Math.round(this.c.na/1E4)/100;this.c.ja=this.c.La*this.c.ma;this.h.T=!1;this.h.Va=!1;this.h.Sa=a.autoStart;this.h.Ua=!1;this.h.Ba=!1;this.c.Fa=this.c.la=0;this.c.Ga=a.csStart;this.c.qa=a.csInterval;this.c.ra=a.csStop;this.Ja=this.Pa.bind(this);B(this)}v(nb);var ob=["power","reset"];m=nb.prototype;
|
||||
m.ca=function(a,b,c,d){this.u=a;this.o=b;this.H=d;for(b=0;b<ob.length;b++)(c=this.B[ob[b]])&&this.u.O(null,ob[b],c);this.Y=(b=Ra(a,"Video"))&&Math.max(b.Y,b.eb)||60;this.V=Ra(a,"ChipSet");a=pb(a,"autoStart");null!=a&&(this.h.Sa="true"==a?!0:"false"==a?!1:!!a);B(this)};m.reset=function(){this.c.Ha=0};m.save=function(){return null};m.restore=function(){return!1};
|
||||
m.X=function(a,b){if(!b){if(a&&this.restore){qb(this);if(!this.restore(a))return!1;rb(this)}else this.reset();this.R("No debugger detected")}sb(this);return!0};m.W=function(a){return a?this.save():!0};function tb(a){(a.h.Sa||void 0===a.B.run)&&a.Pa()}m.Wa=function(){return 0};function rb(a){void 0===a.c.Ga&&(a.c.Ga=0);void 0===a.c.qa&&(a.c.qa=-1);void 0===a.c.ra&&(a.c.ra=-1);a.h.Ba=0<=a.c.Ga&&0<a.c.qa;a.h.Ba&&(a.c.Fa=0,a.c.la=a.c.Ga-a.N)}
|
||||
m.O=function(a,b,c){var d=this;a=!1;switch(b){case "power":case "reset":this.B[b]=c;a=!0;break;case "run":this.B[b]=c;c.onclick=function(){var a;if(a=d.u)if(a=d.u,a.h.K)a=!0;else{var b=null,c,g=w(a.id);for(c=0;c<g.length&&(b=g[c],b===a||b.h.ia);c++);if(c==g.length)for(c=0;c<g.length&&(b=g[c],b===a||b.h.K);c++);c==g.length&&(b=a);r("The "+b.type+" component ("+b.id+") is not "+(b.h.ia?"powered yet":"ready yet"+(b.Da?" (waiting for notification)":""))+".");a=!1}a&&(d.h.T?ub(d,!0):d.Pa())};a=!0;break;
|
||||
case "speed":this.B[b]=c;a=!0;break;case "setSpeed":this.B[b]=c,c.onclick=function(){wb(d,d.c.ma<<1)},c.textContent=this.c.ja.toFixed(2)+"Mhz",a=!0}return a};function xb(a,b,c){a.N+=b;c&&(a.J=a.a=0)}
|
||||
function yb(a,b){var c=30;c<a.Y&&(c=a.Y);2>c&&(c=2);var d=1;b&&1<a.c.ma&&a.c.da&&(d=a.c.da/a.c.La);a.c.Xa=Math.round(1E3/30);a.c.kb=Math.floor(a.c.na/c*d);a.c.Ma=Math.floor(a.c.na/30*d);a.c.Za=Math.floor(a.c.na/a.Y*d);a.c.Ya=Math.floor(a.c.na/2*d);b||(a.c.ua=a.c.Ma,a.c.ta=a.c.Za,a.c.sa=a.c.Ya);a.c.Na=0}function zb(a){return a.N+a.I+a.J-a.a}function qb(a){a.c.da=0;a.N=a.I=a.J=a.a=0;rb(a);wb(a,1)}
|
||||
function wb(a,b){if(void 0!==b){.8>a.c.da/a.c.ja&&(b=1);a.c.ma=b;var c=a.c.La*a.c.ma;if(a.c.ja!=c){a.c.ja=c;var c=a.c.ja.toFixed(2)+"Mhz",d=a.B.setSpeed;d&&(d.textContent=c);a.R("target speed: "+c)}}xb(a,a.I);a.I=0;a.c.ka=ha();a.c.ea=0;yb(a)}
|
||||
m.Pa=function(){if(Ma(this,!0)){if(!this.h.T){wb(this);this.u&&this.u.start(this.c.ka,zb(this));this.h.T=!0;this.h.Va=!0;this.V&&this.V.start();var a=this.B.run;a&&(a.textContent="Halt");this.u&&this.u.fa(!0)}this.c.Na>=this.c.na&&yb(this,!0);this.c.va=0;this.c.Ea=ha();this.c.ea&&(a=this.c.Ea-this.c.ea,a>this.c.Xa&&(this.c.ka+=a,this.c.ka>this.c.Ea&&(this.c.ka=this.c.Ea)));try{do{var b=this.h.Ba?1:this.c.kb;try{this.bb(b)}catch(e){if("number"!=typeof e)throw e;}var c=this.J-this.a;this.I+=c;this.c.va+=
|
||||
c;xb(this,0,!0);a=c;if(this.h.Ba){var d=!1;this.c.Fa=this.c.Fa+this.Wa()|0;this.c.la-=a;0>=this.c.la&&(this.c.la+=this.c.qa,d=!0);0<=this.c.ra&&this.c.ra<=zb(this)&&(this.c.qa=this.c.ra=-1,rb(this),ub(this),d=!0);d&&this.R(zb(this)+" cycles: checksum="+n(this.c.Fa))}this.c.ta-=c;0>=this.c.ta&&(this.c.ta+=this.c.Za,this.u&&Ab(this.u,this.c.Ha++),this.c.Ha>this.Y&&(this.c.Ha=0));this.c.sa-=c;0>=this.c.sa&&(this.c.sa+=this.c.Ya,this.u&&this.u.fa());this.c.ua-=c;if(0>=this.c.ua){this.c.ua+=this.c.Ma;
|
||||
break}}while(this.h.T)}catch(e){ub(this);sb(this);this.u&&this.u.stop(ha(),zb(this));Ma(this,!1);b=e.stack||e.message;this.h.ba=!0;this.L(b);return}b=setTimeout;c=this.Ja;this.c.ea=ha();a=this.c.Xa;this.c.va&&(a=Math.round(a*this.c.va/this.c.Ma));a-=this.c.ea-this.c.Ea;if(d=this.c.ea-this.c.ka)this.c.da=Math.round(this.I/(10*d))/100,864E5<=d&&(this.N=0,wb(this));if(0>a||this.c.da<this.c.ja)a=0;this.c.Na+=this.c.va;this.c.ea+=a;b(c,a)}else sb(this),this.u&&this.u.stop(ha(),zb(this))};m.bb=function(){return 0};
|
||||
function ub(a,b){a.h.pa&&(a.h.Ka=!0);a.J-=a.a;a.a=0;xb(a,a.I);a.I=0;if(a.h.T){a.h.T=!1;a.V&&a.V.stop();var c=a.B.run;c&&(c.textContent="Run")}a.h.Ca=b}function sb(a){a.u&&(Ab(a.u,-1),a.u.fa(void 0))}function Bb(a){this.P=a.model||8080;nb.call(this,a,1E6);this.$=Cb;qb(this);this.h.Ca=this.h.fb=!1;this.ga=0;this.U=[];this.aa=0;Db(this)}v(Bb,nb);function Eb(a,b){a.U.push(b)}m=Bb.prototype;m.reset=function(){this.h.T&&ub(this);Db(this);qb(this);this.h.ba=!1;this.parent.reset.call(this)};
|
||||
function Db(a){a.b=0;a.g=0;a.v=0;a.i=0;a.w=0;a.j=0;a.l=0;a.A=0;D(a,a.aa);Fb(a,0);a.D=0}function Gb(a,b){a.aa=b;D(a,b)}m.Wa=function(){var a=this.b+this.g+this.v+this.i+this.w+this.j+this.l|0;return a=a+this.A+this.m+Hb(this)|0};
|
||||
m.save=function(){var a=new E(this);G(a,0,[this.b,this.g,this.v,this.i,this.w,this.j,this.l,this.A,this.m,Hb(this)]);G(a,1,[this.D,this.N,this.c.ma]);for(var b=this.o,c=0,d=[],e=0;e<b.l;e++){var f=b.b[e];if(f.S||f.Ta){d[c++]=e;var h=c++;a:if(f=f.save()){for(var g=0,l=0,k=[];g<f.length;){for(var A=f[g],q=g+1;q<f.length&&f[q]===A;)q++;k[l++]=q-g;k[l++]=A;g=q}if(k.length<f.length){f=k;break a}}d[h]=f}}G(a,2,d);return a.data()};
|
||||
m.restore=function(a){var b=a[0];this.b=b[0];this.g=b[1];this.v=b[2];this.i=b[3];this.w=b[4];this.j=b[5];this.l=b[6];this.A=b[7]&65535;D(this,b[8]);Fb(this,b[9]);b=a[1];this.D=b[0];this.N=b[1];wb(this,b[3]);a:{b=this.o;a=a[2];var c;for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.A){for(var f=0,h=Array(b.A),g=0;g<e.length-1;)for(var l=e[g++],k=e[g++];l--;)h[f++]=k;e=h}f=b.b[d];if(!f||!f.restore(e)){r("Unable to restore memory block "+d);b=!1;break a}}b=!0}return b};
|
||||
m.R=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.B[b]=c;this.xa++;d=!0;break;default:d=this.parent.R.call(this,a,b,c)}return d};function Ib(a){return a.g<<8|a.v}function Jb(a,b){a.g=b>>8&255;a.v=b&255}function H(a){return a.i<<8|a.w}function Kb(a,b){a.i=b>>8&255;a.w=b&255}function I(a){return a.j<<8|a.l}
|
||||
m.O=function(a,b,c){var d=!1;switch(b){case "A":case "B":case "C":case "BC":case "D":case "E":case "DE":case "H":case "L":case "HL":case "SP":case "PC":case "PS":case "IF":case "SF":case "ZF":case "AF":case "PF":case "CF":this.B[b]=c;this.ga++;d=!0;break;default:d=this.parent.O.call(this,a,b,c)}return d};function Ib(a){return a.g<<8|a.v}function Jb(a,b){a.g=b>>8&255;a.v=b&255}function H(a){return a.i<<8|a.w}function Kb(a,b){a.i=b>>8&255;a.w=b&255}function I(a){return a.j<<8|a.l}
|
||||
function J(a,b){a.j=b>>8&255;a.l=b&255}function D(a,b){a.m=b&65535}function K(a){return a.f&256?1:0}function Lb(a){return Pa[a.s&255]?4:0}function Hb(a){return a.G&-214|(a.s&128?128:0)|(a.f&255?0:64)|((a.s^a.C)&16?16:0)|Lb(a)|K(a)}function Fb(a,b){a.f=a.s=a.C=0;b&1&&(a.f|=256);b&4||(a.s|=1);b&16&&(a.C|=16);b&64||(a.f|=255);b&128&&(a.s^=192);a.G=a.G&-513|b&512|2}function M(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b)&255}function N(a,b){a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?1:0))&255}
|
||||
function O(a,b){a.f=a.s=a.C=a.b&b;(a.b|b)&8&&(a.C^=16);return a.f}function Mb(a,b){a.C=b^255;b=a.s=b+255&255;a.f=a.f&-256|b;return b}function Nb(a,b){a.C=b;b=a.s=b+1&255;a.f=a.f&-256|b;return b}function P(a,b){return a.s=a.f=a.C=a.b|b}function Q(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+1^256)&255}function R(a,b){b^=255;a.C=a.b^b;return a.s=(a.f=a.b+b+(a.f&256?0:1)^256)&255}function S(a,b){return a.s=a.f=a.C=a.b^b}m.F=function(a){return this.o.F(a)};m.M=function(a,b){this.o.M(a,b)};
|
||||
function T(a){var b=a.F(a.m);D(a,a.m+1);return b}function U(a){var b=Xa(a.o,a.m);D(a,a.m+2);return b}function V(a){var b=Xa(a.o,a.A);a.A=a.A+2&65535;return b}function W(a,b){a.A=a.A-2&65535;Za(a.o,a.A,b)}function X(a,b,c,d){d=d||2;a.B[b]&&(void 0===c&&(a.h.$=!0,a.K("Value for "+b+" is invalid"),ub(a)),c=!a.h.T||a.h.Sa?n(c,d):"--------".substr(0,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
|
||||
m.da=function(a){this.xa&&(a||!this.h.T||this.h.Sa)&&(X(this,"A",this.b),X(this,"B",this.g),X(this,"C",this.v),X(this,"BC",Ib(this),4),X(this,"D",this.i),X(this,"E",this.w),X(this,"DE",H(this),4),X(this,"H",this.j),X(this,"L",this.l),X(this,"HL",I(this),4),X(this,"SP",this.A,4),X(this,"PC",this.m,4),a=Hb(this),X(this,"PS",a,4),X(this,"IF",a&512?1:0,1),X(this,"SF",a&128?1:0,1),X(this,"ZF",a&64?1:0,1),X(this,"AF",a&16?1:0,1),X(this,"PF",a&4?1:0,1),X(this,"CF",a&1?1:0,1));if(a=this.B.speed)a.textContent=
|
||||
this.h.T&&this.c.ba?this.c.ba.toFixed(2)+"Mhz":"Stopped"};m.$a=function(a){this.h.Ba=!0;this.h.eb=!1;this.h.Ta=!1;this.L=this.a=a;do{if(a=this.D)this.D&8&&this.G&512?(a=199|(this.D&7)<<3,this.D&=-16,this.G&=-513,this.va[a].call(this),a=!0):a=!1,a=!a;if(a&&this.D&16){this.a=0;break}this.va[T(this)].call(this)}while(0<this.a);return this.h.Ba?this.L-this.a:void 0===this.h.Ba?0:-1};xa(function(){for(var a=y(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Bb(d);La(d,c)}});
|
||||
function T(a){var b=a.F(a.m);D(a,a.m+1);return b}function U(a){var b=Xa(a.o,a.m);D(a,a.m+2);return b}function V(a){var b=Xa(a.o,a.A);a.A=a.A+2&65535;return b}function W(a,b){a.A=a.A-2&65535;Za(a.o,a.A,b)}function X(a,b,c,d){d=d||2;a.B[b]&&(void 0===c&&(a.h.ba=!0,a.L("Value for "+b+" is invalid"),ub(a)),c=!a.h.T||a.h.Ua?n(c,d):"--------".substr(0,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
|
||||
m.fa=function(a){this.ga&&(a||!this.h.T||this.h.Ua)&&(X(this,"A",this.b),X(this,"B",this.g),X(this,"C",this.v),X(this,"BC",Ib(this),4),X(this,"D",this.i),X(this,"E",this.w),X(this,"DE",H(this),4),X(this,"H",this.j),X(this,"L",this.l),X(this,"HL",I(this),4),X(this,"SP",this.A,4),X(this,"PC",this.m,4),a=Hb(this),X(this,"PS",a,4),X(this,"IF",a&512?1:0,1),X(this,"SF",a&128?1:0,1),X(this,"ZF",a&64?1:0,1),X(this,"AF",a&16?1:0,1),X(this,"PF",a&4?1:0,1),X(this,"CF",a&1?1:0,1));if(a=this.B.speed)a.textContent=
|
||||
this.h.T&&this.c.da?this.c.da.toFixed(2)+"Mhz":"Stopped"};m.bb=function(a){this.h.Ca=!0;this.h.fb=!1;this.h.Va=!1;this.J=this.a=a;do{if(a=this.D)this.D&8&&this.G&512?(a=199|(this.D&7)<<3,this.D&=-16,this.G&=-513,this.$[a].call(this),a=!0):a=!1,a=!a;if(a&&this.D&16){this.a=0;break}this.$[T(this)].call(this)}while(0<this.a);return this.h.Ca?this.J-this.a:void 0===this.h.Ca?0:-1};xa(function(){for(var a=y(document,"pc8080","cpu"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Bb(d);La(d,c)}});
|
||||
function Ob(){this.a-=4}function Pb(){D(this,U(this));this.a-=10}function Qb(){D(this,V(this));this.a-=10}function Rb(){var a=U(this);W(this,this.m);D(this,a);this.a-=17}
|
||||
var Cb=[Ob,function(){Jb(this,U(this));this.a-=10},function(){this.M(Ib(this),this.b);this.a-=7},function(){Jb(this,Ib(this)+1);this.a-=5},function(){this.g=Nb(this,this.g);this.a-=5},function(){this.g=Mb(this,this.g);this.a-=5},function(){this.g=T(this);this.a-=7},function(){var a=this.b<<1;this.b=a&255|a>>8;this.f=this.f&255|a&256;this.a-=4},Ob,function(){var a;J(this,a=I(this)+Ib(this));this.f=this.f&255|a>>8&256;this.a-=10},function(){this.b=this.F(Ib(this));this.a-=7},function(){Jb(this,Ib(this)-
|
||||
1);this.a-=5},function(){this.v=Nb(this,this.v);this.a-=5},function(){this.v=Mb(this,this.v);this.a-=5},function(){this.v=T(this);this.a-=7},function(){var a=this.b<<8&256;this.b=(a|this.b)>>1;this.f=this.f&255|a;this.a-=4},Ob,function(){Kb(this,U(this));this.a-=10},function(){this.M(H(this),this.b);this.a-=7},function(){Kb(this,H(this)+1);this.a-=5},function(){this.i=Nb(this,this.i);this.a-=5},function(){this.i=Mb(this,this.i);this.a-=5},function(){this.i=T(this);this.a-=7},function(){var a=this.b<<
|
||||
|
|
@ -58,7 +58,7 @@ T(this));this.a-=10},function(){this.f|=256;this.a-=4},Ob,function(){var a;J(thi
|
|||
5},function(){this.g=this.w;this.a-=5},function(){this.g=this.j;this.a-=5},function(){this.g=this.l;this.a-=5},function(){this.g=this.F(I(this));this.a-=7},function(){this.g=this.b;this.a-=5},function(){this.v=this.g;this.a-=5},function(){this.a-=5},function(){this.v=this.i;this.a-=5},function(){this.v=this.w;this.a-=5},function(){this.v=this.j;this.a-=5},function(){this.v=this.l;this.a-=5},function(){this.v=this.F(I(this));this.a-=7},function(){this.v=this.b;this.a-=5},function(){this.i=this.g;this.a-=
|
||||
5},function(){this.i=this.v;this.a-=5},function(){this.a-=5},function(){this.i=this.w;this.a-=5},function(){this.i=this.j;this.a-=5},function(){this.i=this.l;this.a-=5},function(){this.i=this.F(I(this));this.a-=7},function(){this.i=this.b;this.a-=5},function(){this.w=this.g;this.a-=5},function(){this.w=this.v;this.a-=5},function(){this.w=this.i;this.a-=5},function(){this.a-=5},function(){this.w=this.j;this.a-=5},function(){this.w=this.l;this.a-=5},function(){this.w=this.F(I(this));this.a-=7},function(){this.w=
|
||||
this.b;this.a-=5},function(){this.j=this.g;this.a-=5},function(){this.j=this.v;this.a-=5},function(){this.j=this.i;this.a-=5},function(){this.j=this.w;this.a-=5},function(){this.a-=5},function(){this.j=this.l;this.a-=5},function(){this.j=this.F(I(this));this.a-=7},function(){this.j=this.b;this.a-=5},function(){this.l=this.g;this.a-=5},function(){this.l=this.v;this.a-=5},function(){this.l=this.i;this.a-=5},function(){this.l=this.w;this.a-=5},function(){this.l=this.j;this.a-=5},function(){this.a-=5},
|
||||
function(){this.l=this.F(I(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.M(I(this),this.g);this.a-=7},function(){this.M(I(this),this.v);this.a-=7},function(){this.M(I(this),this.i);this.a-=7},function(){this.M(I(this),this.w);this.a-=7},function(){this.M(I(this),this.j);this.a-=7},function(){this.M(I(this),this.l);this.a-=7},function(){var a=this.m-1;if(this.X.length)for(var b=0;b<this.X.length;b++)if(this.X[b](a))return;this.D|=16;this.a-=7;this.G&512||ub(this)},function(){this.M(I(this),
|
||||
function(){this.l=this.F(I(this));this.a-=7},function(){this.l=this.b;this.a-=5},function(){this.M(I(this),this.g);this.a-=7},function(){this.M(I(this),this.v);this.a-=7},function(){this.M(I(this),this.i);this.a-=7},function(){this.M(I(this),this.w);this.a-=7},function(){this.M(I(this),this.j);this.a-=7},function(){this.M(I(this),this.l);this.a-=7},function(){var a=this.m-1;if(this.U.length)for(var b=0;b<this.U.length;b++)if(this.U[b](a))return;this.D|=16;this.a-=7;this.G&512||ub(this)},function(){this.M(I(this),
|
||||
this.b);this.a-=7},function(){this.b=this.g;this.a-=5},function(){this.b=this.v;this.a-=5},function(){this.b=this.i;this.a-=5},function(){this.b=this.w;this.a-=5},function(){this.b=this.j;this.a-=5},function(){this.b=this.l;this.a-=5},function(){this.b=this.F(I(this));this.a-=7},function(){this.a-=5},function(){this.b=M(this,this.g);this.a-=4},function(){this.b=M(this,this.v);this.a-=4},function(){this.b=M(this,this.i);this.a-=4},function(){this.b=M(this,this.w);this.a-=4},function(){this.b=M(this,
|
||||
this.j);this.a-=4},function(){this.b=M(this,this.l);this.a-=4},function(){this.b=M(this,this.F(I(this)));this.a-=7},function(){this.b=M(this,this.b);this.a-=4},function(){this.b=N(this,this.g);this.a-=4},function(){this.b=N(this,this.v);this.a-=4},function(){this.b=N(this,this.i);this.a-=4},function(){this.b=N(this,this.w);this.a-=4},function(){this.b=N(this,this.j);this.a-=4},function(){this.b=N(this,this.l);this.a-=4},function(){this.b=N(this,this.F(I(this)));this.a-=7},function(){this.b=N(this,
|
||||
this.b);this.a-=4},function(){this.b=Q(this,this.g);this.a-=4},function(){this.b=Q(this,this.v);this.a-=4},function(){this.b=Q(this,this.i);this.a-=4},function(){this.b=Q(this,this.w);this.a-=4},function(){this.b=Q(this,this.j);this.a-=4},function(){this.b=Q(this,this.l);this.a-=4},function(){this.b=Q(this,this.F(I(this)));this.a-=7},function(){this.b=Q(this,this.b);this.a-=4},function(){this.b=R(this,this.g);this.a-=4},function(){this.b=R(this,this.v);this.a-=4},function(){this.b=R(this,this.i);
|
||||
|
|
@ -72,59 +72,62 @@ T(this),b=this.o,c=this.m+-2&65535,d=1,e=0,f=0;0<d;){var h=b.o[a],g=b.C[a]||1,l=
|
|||
U(this);Lb(this)||D(this,a);this.a-=10},function(){var a=V(this);W(this,I(this));J(this,a);this.a-=18},function(){var a=U(this);Lb(this)||(W(this,this.m),D(this,a),this.a-=6);this.a-=11},function(){W(this,I(this));this.a-=11},function(){this.b=O(this,T(this));this.a-=7},function(){W(this,this.m);D(this,32);this.a-=11},function(){Lb(this)&&(D(this,V(this)),this.a-=6);this.a-=5},function(){D(this,I(this));this.a-=5},function(){var a=U(this);Lb(this)&&D(this,a);this.a-=10},function(){var a=I(this);J(this,
|
||||
H(this));Kb(this,a);this.a-=5},function(){var a=U(this);Lb(this)&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Rb,function(){this.b=S(this,T(this));this.a-=7},function(){W(this,this.m);D(this,40);this.a-=11},function(){this.s&128||(D(this,V(this)),this.a-=6);this.a-=5},function(){var a=V(this);Fb(this,a);this.b=a>>8;this.a-=10},function(){var a=U(this);this.s&128||D(this,a);this.a-=10},function(){this.G&=-513;this.a-=4},function(){var a=U(this);this.s&128||(W(this,this.m),D(this,a),this.a-=6);
|
||||
this.a-=11},function(){W(this,Hb(this)&255|this.b<<8);this.a-=11},function(){this.b=P(this,T(this));this.a-=7},function(){W(this,this.m);D(this,48);this.a-=11},function(){this.s&128&&(D(this,V(this)),this.a-=6);this.a-=5},function(){this.A=I(this)&65535;this.a-=5},function(){var a=U(this);this.s&128&&D(this,a);this.a-=10},function(){this.G|=512;this.a-=4},function(){var a=U(this);this.s&128&&(W(this,this.m),D(this,a),this.a-=6);this.a-=11},Rb,function(){Q(this,T(this));this.a-=7},function(){W(this,
|
||||
this.m);D(this,56);this.a-=11}];function Y(a){t.call(this,"ChipSet",a,Y);var b=a.model;b&&!Sb[b]&&r("Unrecognized ChipSet model: "+b);this.O=Sb[b]||Tb;a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}v(Y);var Tb=1978.1,Sb={SI1978:Tb};m=Y.prototype;m.R=function(){return!1};
|
||||
m.aa=function(a,b,c,d){this.o=b;this.a=c;this.H=d;this.u=a;if(this.O==Tb){var e;a=Ub;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.o[g]?r("Input port 0x"+n(g,4)+" already registered"):c.o[g]=[h,!1]}var l;e=Vb;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.m[d]?r("Output port 0x"+n(d,4)+" already registered"):f.m[d]=[c,!1]}};
|
||||
m.V=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.U=function(a){return a?this.save():!0};m.reset=function(){this.f=this.g=this.c=this.b=this.l=this.j=this.i=0};m.save=function(){var a=new E(this);this.O==Tb&&G(a,0,[this.i,this.j,this.l,this.b,this.c,this.f,this.g]);return a.data()};m.restore=function(a){a=a[0];this.O==Tb&&(this.i=a[0],this.j=a[1],this.l=a[2],this.b=a[3],this.c=a[4],this.f=a[5],this.g=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
||||
m.gb=function(){return this.i};m.hb=function(){return this.j};m.ib=function(){return this.l};m.fb=function(){return this.b>>8-this.c&255};m.kb=function(a,b){this.c=b};m.mb=function(a,b){this.f=b};m.lb=function(a,b){this.b=b<<8|this.b>>8};m.nb=function(a,b){this.g=b};m.ob=function(){};var Ub={0:Y.prototype.gb,1:Y.prototype.hb,2:Y.prototype.ib,3:Y.prototype.fb},Vb={2:Y.prototype.kb,3:Y.prototype.mb,4:Y.prototype.lb,5:Y.prototype.nb,6:Y.prototype.ob};
|
||||
this.m);D(this,56);this.a-=11}];function Y(a){t.call(this,"ChipSet",a,Y);var b=a.model;b&&!Sb[b]&&r("Unrecognized ChipSet model: "+b);this.P=Sb[b]||Tb;a.sound&&(this.m=null,window&&(this.m=window.AudioContext||window.webkitAudioContext),this.m&&new this.m);B(this)}v(Y);var Tb=1978.1,Sb={SI1978:Tb};m=Y.prototype;m.O=function(){return!1};
|
||||
m.ca=function(a,b,c,d){this.o=b;this.a=c;this.H=d;this.u=a;if(this.P==Tb){var e;a=Ub;void 0===e&&(e=0);for(var f in a){c=b;d=+f+e;var h=a[f].bind(this);if(void 0!==h)for(var g=+f+e;g<=d;g++)void 0!==c.o[g]?r("Input port 0x"+n(g,4)+" already registered"):c.o[g]=[h,!1]}var l;e=Vb;void 0===l&&(l=0);for(var k in e)if(f=b,a=+k+l,c=e[k].bind(this),void 0!==c)for(d=+k+l;d<=a;d++)void 0!==f.m[d]?r("Output port 0x"+n(d,4)+" already registered"):f.m[d]=[c,!1]}};
|
||||
m.X=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};m.W=function(a){return a?this.save():!0};m.reset=function(){this.f=this.g=this.c=this.b=this.l=this.j=this.i=0};m.save=function(){var a=new E(this);this.P==Tb&&G(a,0,[this.i,this.j,this.l,this.b,this.c,this.f,this.g]);return a.data()};m.restore=function(a){a=a[0];this.P==Tb&&(this.i=a[0],this.j=a[1],this.l=a[2],this.b=a[3],this.c=a[4],this.f=a[5],this.g=a[6]);return!0};m.start=function(){};m.stop=function(){};
|
||||
m.hb=function(){return this.i};m.ib=function(){return this.j};m.jb=function(){return this.l};m.gb=function(){return this.b>>8-this.c&255};m.lb=function(a,b){this.c=b};m.nb=function(a,b){this.f=b};m.mb=function(a,b){this.b=b<<8|this.b>>8};m.ob=function(a,b){this.g=b};m.pb=function(){};var Ub={0:Y.prototype.hb,1:Y.prototype.ib,2:Y.prototype.jb,3:Y.prototype.gb},Vb={2:Y.prototype.lb,3:Y.prototype.nb,4:Y.prototype.mb,5:Y.prototype.ob,6:Y.prototype.pb};
|
||||
xa(function(){for(var a=y(document,"pc8080","chipset"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Y(d);La(d,c)}});function Wb(a){t.call(this,"ROM",a,Wb);this.b=null;this.j=a.addr;this.c=a.size;this.l=a.writable;this.f=a.alias;this.g=a.file;this.m=ca(this.g);if(this.g){a=this.g;var b=da(this.m);"json"!=b&&"hex"!=b&&(a=ja()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;p(a,null,!0,function(a,b,f){Xb(c,a,b,f)})}}v(Wb);var Yb=[0,5];
|
||||
Wb.prototype.aa=function(a,b,c,d){this.o=b;this.a=c;this.H=d;Zb(this)};Wb.prototype.V=function(){this.i&&(this.H&&this.H.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Wb.prototype.U=function(){return!0};
|
||||
function Xb(a,b,c,d){if(d)a.K("Unable to load system ROM (error "+d+": "+b+")");else{Ja(a.Oa,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(g){a.K("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||
Wb.prototype.ca=function(a,b,c,d){this.o=b;this.a=c;this.H=d;Zb(this)};Wb.prototype.X=function(){this.i&&(this.H&&this.H.a(this.id,this.j,this.c,this.i),delete this.i);return!0};Wb.prototype.W=function(){return!0};
|
||||
function Xb(a,b,c,d){if(d)a.L("Unable to load system ROM (error "+d+": "+b+")");else{Ja(a.Qa,b,c);if("["==c.charAt(0)||"{"==c.charAt(0))try{var e=eval("("+c+")"),f=e.bytes,h=e.data;if(f)a.b=f;else if(h)for(a.b=Array(4*h.length),d=c=0;c<h.length;c++)a.b[d++]=h[c]&255,a.b[d++]=h[c]>>8&255,a.b[d++]=h[c]>>16&255,a.b[d++]=h[c]>>24&255;else a.b=e;a.i=e.symbols;if(!a.b.length){r("Empty ROM: "+b);return}if(1==a.b.length){r(a.b[0]);return}}catch(g){a.L("ROM data error: "+g.message);return}else for(b=c.replace(/\n/gm,
|
||||
" ").replace(/ +$/,"").split(" "),a.b=Array(b.length),e=0;e<b.length;e++)a.b[e]=ba(b[e]);Zb(a)}}
|
||||
function Zb(a){if(!Na(a))if(!a.g)B(a);else if(a.b&&a.o){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.$=!0;a.K(b)}else if($b(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.o,h=d.c,g=[],l=d.j>>>f.c;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.f;f=d.o;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.f}}delete a.b}B(a)}}
|
||||
function $b(a,b){if(Va(a.o,b,a.c,a.l?1:eb)){var c;for(c=0;c<a.b.length;c++)Ya(a.o,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Yb.length;c++)Ya(a.o,Yb[c],118);Eb(a.a,function(a){return function(b){if(0<=Yb.indexOf(b)){var c=!1,h=a.a,g=a.H;if(5==b)switch(c=!0,h.v){case 2:ac(a,String.fromCharCode(h.w));break;case 9:for(var l=H(h),k="",A=255;A--;){var q=a.a.F(l++);if(36==q)break;k+=String.fromCharCode(q)}ac(a,k);break;default:c=!1}c?Qb.call(h):g&&(a.P("\nCP/M vector 0x"+n(b,4)),D(h,b),ub(g));b=!0}else b=!1;
|
||||
return b}}(a));Gb(a.a,b)}return!0}return!1}function ac(a,b){b=b.replace(/\r/g,"");a.Z&&(a.Z.value+=b,a.Z.scrollTop=a.Z.scrollHeight)}xa(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Wb(d);La(d,c)}});function dc(a){t.call(this,"RAM",a,dc);this.f=a.addr;this.c=a.size;this.b=!1}v(dc);m=dc.prototype;m.aa=function(a,b,c,d){this.o=b;this.a=c;this.H=d;B(this)};m.V=function(a,b){b||this.reset();return!0};m.U=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.b&&this.c&&Va(this.o,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||r("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};xa(function(){for(var a=y(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new dc(d);La(d,c)}});function ec(a){t.call(this,"Keyboard",a,ec);B(this)}v(ec);
|
||||
function Zb(a){if(!Na(a))if(!a.g)B(a);else if(a.b&&a.o){a.c||(a.c=a.b.length);if(a.b.length!=a.c){var b="ROM size (0x"+n(a.b.length)+") does not match specified size ("+("0x"+n(a.c))+")";a.h.ba=!0;a.L(b)}else if($b(a,a.j)){b=[];"number"==typeof a.f?b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(var c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.o,h=d.c,g=[],l=d.j>>>f.c;0<h&&l<f.b.length;)g.push(f.b[l++]),h-=f.f;f=d.o;d=d.c;h=0;for(e>>>=f.c;0<d&&e<f.b.length;){l=g[h++];if(!l)break;f.b[e++]=l;d-=f.f}}delete a.b}B(a)}}
|
||||
function $b(a,b){if(Va(a.o,b,a.c,a.l?1:eb)){var c;for(c=0;c<a.b.length;c++)Ya(a.o,b+c,a.b[c]);if(a.l&&256==b){for(c=0;c<Yb.length;c++)Ya(a.o,Yb[c],118);Eb(a.a,function(a){return function(b){if(0<=Yb.indexOf(b)){var c=!1,h=a.a,g=a.H;if(5==b)switch(c=!0,h.v){case 2:ac(a,String.fromCharCode(h.w));break;case 9:for(var l=H(h),k="",A=255;A--;){var q=a.a.F(l++);if(36==q)break;k+=String.fromCharCode(q)}ac(a,k);break;default:c=!1}c?Qb.call(h):g&&(a.R("\nCP/M vector 0x"+n(b,4)),D(h,b),ub(g));b=!0}else b=!1;
|
||||
return b}}(a));Gb(a.a,b)}return!0}return!1}function ac(a,b){b=b.replace(/\r/g,"");a.Z&&(a.Z.value+=b,a.Z.scrollTop=a.Z.scrollHeight)}xa(function(){for(var a=y(document,"pc8080","rom"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new Wb(d);La(d,c)}});function bc(a){t.call(this,"RAM",a,bc);this.f=a.addr;this.c=a.size;this.b=!1}v(bc);m=bc.prototype;m.ca=function(a,b,c,d){this.o=b;this.a=c;this.H=d;B(this)};m.X=function(a,b){b||this.reset();return!0};m.W=function(a){return a?this.save():!0};
|
||||
m.reset=function(){!this.b&&this.c&&Va(this.o,this.f,this.c,1)&&(this.b=!0,this.status(Math.floor(this.c/1024)+"Kb allocated"));this.b||r("No RAM allocated")};m.save=function(){return null};m.restore=function(){return!0};xa(function(){for(var a=y(document,"pc8080","ram"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new bc(d);La(d,c)}});function ec(a){t.call(this,"Keyboard",a,ec);B(this)}v(ec);
|
||||
xa(function(){for(var a=y(document,"pc8080","keyboard"),b=0;b<a.length;b++){var c=a[b],d=x(c),d=new ec(d);La(d,c)}});
|
||||
function fc(a,b,c){t.call(this,"Video",a,fc);this.s=a.screenWidth;this.j=a.screenHeight;this.m=a.bufferAddr;this.f=a.bufferCols;this.g=a.bufferRows;this.D=a.bufferBits||1;this.Y=a.bufferLeft||0;this.G=a.bufferRotate;this.bb=a.interruptRate;this.W=a.refreshRate||60;this.b=c;this.b.webkitImageSmoothingEnabled=!1;this.b.mozImageSmoothingEnabled=!1;this.b.msImageSmoothingEnabled=!1;this.b.imageSmoothingEnabled=!1;this.O=a.screenRotate;90==this.O&&(this.b.translate(0,this.j),this.b.rotate(-this.O*Math.PI/
|
||||
180),this.b.scale(this.j/this.s,this.s/this.j));this.X=[[0,0,0,255],[255,255,255,255]];a=this.f;b=this.g;this.G&&(a=this.g,b=this.f);this.C=this.b.createImageData(a,b);this.c=document.createElement("canvas");this.c.width=a;this.c.height=b;this.I=this.c.getContext("2d")}v(fc);
|
||||
fc.prototype.aa=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.l=(this.f*this.D>>3)*this.g;Va(this.o,this.m,this.l,3)&&(this.L=this.l>>1,this.N=16/this.D|0,this.A=!1,void 0===this.i||this.i.length!=this.L)&&(this.i=Array(this.L));B(this)};
|
||||
function fc(a,b,c,d,e){var f=this;this.P=ra("Gecko/");var h=["","moz","webkit","ms"];t.call(this,"Video",a,fc);this.s=a.screenWidth;this.l=a.screenHeight;this.C=a.bufferAddr;this.i=a.bufferCols;this.j=a.bufferRows;this.I=a.bufferBits||1;this.Ja=a.bufferLeft||0;this.J=a.bufferRotate;this.eb=a.interruptRate;this.Y=a.refreshRate||60;this.f=b;this.g=c;this.U=d||b||null;b=a.smoothing;(c=Ca.smoothing)&&(b="true"==c?!0:!1);if(null!=b)for(c=0;c<h.length;c++)d=(d=h[c])?d+"ImageSmoothingEnabled":"imageSmoothingEnabled",
|
||||
this.g[d]=b;this.aa=a.screenRotate;90==this.aa&&(this.g.translate(0,this.l),this.g.rotate(-this.aa*Math.PI/180),this.g.scale(this.l/this.s,this.s/this.l));this.ga=[[0,0,0,255],[255,255,255,255]];a=this.i;b=this.j;this.J&&(a=this.j,b=this.i);this.G=this.g.createImageData(a,b);this.c=document.createElement("canvas");this.c.width=a;this.c.height=b;this.N=this.c.getContext("2d");if(this.b=e)if(this.b.ha=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.b.ha){for(c=
|
||||
0;c<h.length;c++)if(d=h[c]+"fullscreenchange","on"+d in document){document.addEventListener(d,function(){gc(f,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?!0:!1)},!1);break}for(c=0;c<h.length;c++)if(d=h[c]+"fullscreenerror","on"+d in document){document.addEventListener(d,function(){gc(f,null)},!1);break}}}v(fc);
|
||||
fc.prototype.ca=function(a,b,c,d){this.u=a;this.o=b;this.a=c;this.H=d;this.A=(this.i*this.I>>3)*this.j;Va(this.o,this.C,this.A,3)&&(this.V=this.A>>1,this.$=16/this.I|0,this.D=!1,void 0===this.m||this.m.length!=this.V)&&(this.m=Array(this.V));B(this)};fc.prototype.O=function(a,b,c){var d=this;switch(b){case "fullScreen":return this.B[b]=c,this.b&&this.b.ha?c.onclick=function(){d.ha()}:c.parentNode.removeChild(c),!0}return!1};
|
||||
fc.prototype.ha=function(){var a=!1;if(this.b){if(this.b.ha){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.s/this.l;b>c&&(a=Math.round(c/b*100)+"%")}this.P?(this.f.style.width=a,this.f.style.width=a,this.f.style.display="block",this.f.style.margin="auto"):(this.b.style.width=a,this.b.style.height="auto");this.b.style.backgroundColor="black";this.b.ha();a=!0}this.U&&this.U.focus()}return a};
|
||||
function gc(a,b){!b&&a.b&&(a.P?a.f.style.width=a.f.style.height="":a.b.style.width=a.b.style.height="")}
|
||||
xa(function(){for(var a=y(document,"pc8080","video"),b=0;b<a.length;b++){var c=a[b],d=x(c),e=document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing <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||Ca.aspect);f&&.3<=f&&3.33>=f&&(wa("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");ra("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);e=e.getContext("2d");d=new fc(d,0,e);La(d,c)}});
|
||||
function E(a,b,c){this.id=a.id;this.key=gc(a,b,c);this.H=a.H;hc(this,a.Ya)}function gc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
E.prototype={constructor:E,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){hc(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
||||
function hc(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function ic(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function jc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function kc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}function lc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function mc(a,b,c){t.call(this,"Computer",a,mc);this.h.J=!1;nc(this,b);this.C=pb(this,"autoPower",a);this.f=0;this.N=a.busWidth||a.buswidth;this.b=oc;this.u=null;this.j=this.L=!1;this.O=pb(this,"url")||"";(Math.random()+.1).toString(36);this.c=pc(this);if(this.a=Ka("CPU",this.id)){this.H=Ka("Debugger",this.id);this.A=[];for(b=null;b=Ra(this,"Video",b);)this.A.push(b);this.o=new Ta({id:this.Oa+".bus",busWidth:this.N},this.a,this.H);var d,e=w(this.id);if((this.g=Ka("Panel",this.id))&&this.g.Z)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.K=this.g.K,d.P=this.g.P,d.Z=this.g.Z;for(b=0;b<e.length;b++)d=e[b],d.aa&&d.aa(this,this.o,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=pb(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.j=!0,this.b=oc),this.b&&(this.s=new E(this,Z),kc(this.s)?b=null:delete this.s);!b&&this.b&&(b=qc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.K("Unable to load machine state from server (error "+
|
||||
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.L=!0);B(h)})}else B(this);this.B.power||(this.C=!0);!c&&this.C&&rc(this,this.sa)}else r("Unable to find CPU component")}v(mc);var Z="1.22.0",oc=0;function nc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.l=b}
|
||||
function pb(a,b,c){var d=b.toLowerCase(),d=Ca[b]||Ca[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function rc(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Na(f)){Na(f,function(){rc(a,b,c)});return}}b.call(a,c)}
|
||||
function sc(a,b){var c=new E(a,Z,"validate");if(kc(c)&&jc(c)){var d=lc(c,"timestamp"),e=b?lc(b,"timestamp"):"unknown";d!=e&&(a.K("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=mc.prototype;
|
||||
m.sa=function(a){void 0===a&&(a=this.b||(this.u?1:oc));if(!this.f){this.f++;var b=!1,c=!1;this.I=!1;var d=this.s||new E(this,Z);if(-1==a)b=!0;else if(a>oc){if(kc(d,this.u)){this.i=new E(this,Z,"failsafe");kc(this.i)&&(tc(this,d),a=2,hc(this.i));G(this.i,"timestamp",ia());ic(this.i);var e=this.b&&!this.j;if(1==a||ka("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=jc(d)){var f=lc(d,"code"),h=lc(d,"data");f&&("ok"==f?kc(d,h):("error"==f&&"no machine state"!=
|
||||
h?(this.K("Error: "+h),"unable to verify user"==h&&(qa("user",""),this.c=null)):this.P(f+": "+h),hc(d),kc(d)?(c=jc(d),e=!0):c=!1))}e&&sc(this,c?d:null)}else 2==a&&d.clear()}else sc(this);delete this.u;delete this.s}e=w(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=uc(this,h,d,b,c));b=[d,a,c];-1!=a?rc(this,this.Pa,b):this.Pa(b)}};
|
||||
function uc(a,b,c,d,e){if(!b.h.J){b.h.J=!0;if(b.V){var f=null;e&&((f=lc(c,b.id))||(f=lc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.V(f,d)&&f&&(r("Unable to restore state for "+b.type),a.D&&!a.L?(c.clear(),a.b=oc,window&&window.location.reload()):a.I=!0,b.V(null),e=!1)}if(!d&&b.ya)for(a=b.ya.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
m.Pa=function(a){var b=a[0],c=0>a[1];a=a[2];this.h.J=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.G||(this.P("PC8080 v"+Z+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.G=!0);this.a&&(uc(this,this.a,b,c,a),tb(this.a));this.I&&(tc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||
function tc(a,b){if(ka("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.O,d=a.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Z;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function vc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new E(a,Z),h=new E(a,Z,"validate"),g=ia();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.22.0");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.U&&(c&&ub(a.a),d=a.a.U(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.h.J=!1,!1===d&&(e=null)));for(var g=w(a.id),l=0;l<g.length;l++){var k=g[l];k.h.J&&(k.U&&(d=k.U(b,c),"object"===typeof d&&G(f,k.id,d)),c&&(k.h.J=!1,!1===d&&(e=
|
||||
null)))}e&&(c?(g=d=!1,b?(a.c&&wc(a,a.c,f.toString()),ic(h)&&ic(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.J=!1,b=a.B.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.o&&this.o.reset&&this.o.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||
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||Ca.aspect);f&&.3<=f&&3.33>=f&&(wa("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");ra("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);La(d,c)}});
|
||||
function E(a,b,c){this.id=a.id;this.key=hc(a,b,c);this.H=a.H;ic(this,a.$a)}function hc(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}
|
||||
E.prototype={constructor:E,value:function(){return this[this.id]},data:function(){return this[this.id]},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){ic(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}}};
|
||||
function ic(a,b){a[a.id]={};b&&G(a,"parms",b);a.a=!1}function jc(a){var b=!0;if(oa()){var c=JSON.stringify(a[a.id]);qa(a.key,c)||(r("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function kc(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){r(c.message||c),b=!1}return b}function lc(a,b){return b?(a[a.id]=b,a.a=!0):a.a?!0:oa()&&(b=pa(a.key))?(a[a.id]=b,a.a=!0):!1}function mc(a,b){return a[a.id][b]||null}function G(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function nc(a,b,c){t.call(this,"Computer",a,nc);this.h.K=!1;oc(this,b);this.C=pb(this,"autoPower",a);this.f=0;this.N=a.busWidth||a.buswidth;this.b=pc;this.u=null;this.j=this.J=!1;this.P=pb(this,"url")||"";(Math.random()+.1).toString(36);this.c=qc(this);if(this.a=Ka("CPU",this.id)){this.H=Ka("Debugger",this.id);this.A=[];for(b=null;b=Ra(this,"Video",b);)this.A.push(b);this.o=new Ta({id:this.Qa+".bus",busWidth:this.N},this.a,this.H);var d,e=w(this.id);if((this.g=Ka("Panel",this.id))&&this.g.Z)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.L=this.g.L,d.R=this.g.R,d.Z=this.g.Z;for(b=0;b<e.length;b++)d=e[b],d.ca&&d.ca(this,this.o,this.a,this.H);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.m=d:this.b=parseInt(d,10));var f;if(a=pb(this,"state")||(f=!0,a.state))b=this.D=a,f||(this.j=!0,this.b=pc),this.b&&(this.s=new E(this,Z),lc(this.s)?b=null:delete this.s);!b&&this.b&&(b=rc(this))&&(this.j=!0);if(b){var h=this;p(b,null,!0,function(a,b,c){c?(h.m=null,h.j=!1,h.L("Unable to load machine state from server (error "+
|
||||
c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):(h.u=b,h.J=!0);B(h)})}else B(this);this.B.power||(this.C=!0);!c&&this.C&&sc(this,this.wa)}else r("Unable to find CPU component")}v(nc);var Z="1.22.0",pc=0;function oc(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){r(d.message+" ("+c+")")}}a.l=b}
|
||||
function pb(a,b,c){var d=b.toLowerCase(),d=Ca[b]||Ca[d];void 0===d&&a.l&&(d=a.l[b]);void 0===d&&c&&(d=c[b]);void 0===d&&"object"==typeof resources&&resources[b]&&(d=b);return d}function sc(a,b,c){for(var d=w(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Na(f)){Na(f,function(){sc(a,b,c)});return}}b.call(a,c)}
|
||||
function tc(a,b){var c=new E(a,Z,"validate");if(lc(c)&&kc(c)){var d=mc(c,"timestamp"),e=b?mc(b,"timestamp"):"unknown";d!=e&&(a.L("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}m=nc.prototype;
|
||||
m.wa=function(a){void 0===a&&(a=this.b||(this.u?1:pc));if(!this.f){this.f++;var b=!1,c=!1;this.I=!1;var d=this.s||new E(this,Z);if(-1==a)b=!0;else if(a>pc){if(lc(d,this.u)){this.i=new E(this,Z,"failsafe");lc(this.i)&&(uc(this,d),a=2,ic(this.i));G(this.i,"timestamp",ia());jc(this.i);var e=this.b&&!this.j;if(1==a||ka("Click OK to restore the previous PC8080 machine state, or CANCEL to reset the machine.")){if(c=kc(d)){var f=mc(d,"code"),h=mc(d,"data");f&&("ok"==f?lc(d,h):("error"==f&&"no machine state"!=
|
||||
h?(this.L("Error: "+h),"unable to verify user"==h&&(qa("user",""),this.c=null)):this.R(f+": "+h),ic(d),lc(d)?(c=kc(d),e=!0):c=!1))}e&&tc(this,c?d:null)}else 2==a&&d.clear()}else tc(this);delete this.u;delete this.s}e=w(this.id);for(f=0;f<e.length;f++)h=e[f],h!==this&&h!=this.a&&(c=vc(this,h,d,b,c));b=[d,a,c];-1!=a?sc(this,this.Ra,b):this.Ra(b)}};
|
||||
function vc(a,b,c,d,e){if(!b.h.K){b.h.K=!0;if(b.X){var f=null;e&&((f=mc(c,b.id))||(f=mc(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof f&&(f=null);!b.X(f,d)&&f&&(r("Unable to restore state for "+b.type),a.D&&!a.J?(c.clear(),a.b=pc,window&&window.location.reload()):a.I=!0,b.X(null),e=!1)}if(!d&&b.za)for(a=b.za.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
m.Ra=function(a){var b=a[0],c=0>a[1];a=a[2];this.h.K=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.G||(this.R("PC8080 v"+Z+"\nCopyright \u00a9 2012-2016 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.G=!0);this.a&&(vc(this,this.a,b,c,a),tb(this.a));this.I&&(uc(this,b),b.clear());!c&&this.i&&(this.i.clear(),delete this.i);this.f=0};
|
||||
function uc(a,b){if(ka("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.P,d=a.c||"",e=b.toString(),f={app:"PC8080"};f.ver=Z;f.url=c;f.user=d;f.type="bug";f.data=e;p("http://www.pcjs.org/api/v1/report",f,!0)}}
|
||||
function wc(a,b,c){var d,e="none";if(a.f)return null;a.f--;var f=new E(a,Z),h=new E(a,Z,"validate"),g=ia();G(h,"timestamp",g);G(f,"timestamp",g);G(f,"version","1.22.0");G(f,"url",window?window.location.href:null);G(f,"browser",window?window.navigator.userAgent:"");a.a&&a.a.W&&(c&&ub(a.a),d=a.a.W(b,c),"object"===typeof d&&G(f,a.a.id,d),c&&(a.a.h.K=!1,!1===d&&(e=null)));for(var g=w(a.id),l=0;l<g.length;l++){var k=g[l];k.h.K&&(k.W&&(d=k.W(b,c),"object"===typeof d&&G(f,k.id,d)),c&&(k.h.K=!1,!1===d&&(e=
|
||||
null)))}e&&(c?(g=d=!1,b?(a.c&&xc(a,a.c,f.toString()),jc(h)&&jc(f)||(e=null,d=g=!0)):a.b&&(d=!0,g=3==a.b),d&&f.clear(g)):e=f.toString());c&&(a.h.K=!1,b=a.B.power)&&(b.textContent="Power");a.f=0;return e}m.reset=function(){this.o&&this.o.reset&&this.o.reset();for(var a=w(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.o&&c.reset&&c.reset()}};m.start=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||
m.stop=function(a,b){for(var c=w(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};
|
||||
m.R=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.f||(d.h.J?vc(d,!1,!0):rc(d,d.sa))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.J&&!d.f)if(d.b&&!d.m){var a=ka("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vc(d,a,!0);!a&&d.D?window&&window.location.reload():d.sa(oc)}else d.reset(),d.a&&tb(d.a)},!0;case "save":if(ea(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.B[b]=
|
||||
c;c.onclick=function(){var a=pc(d,!0);if(a){var b=!!(d.b&&!d.m||d.D),c=vc(d,b);b?wc(d,a,c):d.K("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function pc(a,b){var c=a.c;c||(c=pa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=xc(a,c))||a.K("The user ID is invalid."))):b&&a.K("Browser local storage is not available"));return c}
|
||||
function xc(a,b){a.c=null;var c=p(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(qa("user",c.data),a.c=c.data)}catch(e){r(e.message+" ("+d+")")}return a.c}function qc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+gc(a,Z));return b}
|
||||
function wc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=gc(a,Z);d.data=c;b=p(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.K("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.K(c),qa("user",""),a.c=null)}}
|
||||
function Ra(a,b,c){a=w(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.da=function(a){this.a&&this.a.da(a);this.g&&this.g.da(a)};
|
||||
function Ab(a,b){for(var c=0;c<a.A.length;c++)a:{var d=a.A[c];if(0<=b){if(b&1){d=d.a;d.D=d.D&-8|10;break a}var e=d.a;e.D=e.D&-8|9;if(e=d.A){for(var e=d.o,f=d.l,h=!0,g=d.m>>>e.c;0<f&&g<e.b.length;)e.b[g].S&&(e.b[g].S=h=!1,e.b[g].Ra=!0),f-=e.f,g++;e=h}if(e)break a}var g=d.m,l=g+d.l,k=0,A=d.X,q=0,F=0,e=d.f,vb=0,f=d.g,bc=h=0,Fa=d.D,Dc=(1<<Fa)-1;d.Y&&(Fa=-Fa,bc=16+Fa);for(;g<l;){var z;z=d.o;var aa=g,sa=aa&z.g,L=(aa&z.i)>>>z.c;z=sa!=z.g?z.b[L].Za(sa,aa):z.b[L++].Ma(sa,aa)|z.b[L&z.u].Ma(0,aa+1)<<8;if(d.A&&
|
||||
z===d.i[k])q+=d.N;else{d.i[k]=z;(aa=bc)&&(z=z>>8|(z&255)<<8);q<e&&(e=q);for(sa=0;sa<d.N;sa++){var ma=z>>aa&Dc,L=d.C,cc=q++,ma=A[ma],na=void 0,na=d.G?(L.height-cc-1)*L.width+F:cc+F*L.width,na=na*ma.length;L.data[na]=ma[0];L.data[na+1]=ma[1];L.data[na+2]=ma[2];L.data[na+3]=ma[3];aa+=Fa}q>vb&&(vb=q);F<f&&(f=F);F>=h&&(h=F+1)}g+=2;k++;if(q>=d.f&&(q=0,F++,F>d.g))break}d.A=!0;e<d.f&&(g=vb-e,h-=f,d.G?d.I.putImageData(d.C,0,0):d.I.putImageData(d.C,0,0,e,f,g,h),d.b.drawImage(d.c,0,0,d.c.width,d.c.height,0,
|
||||
0,d.s,d.j))}}xa(function(){for(var a=y(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=y(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=x(f),h=new mc(h,d,!0);La(h,f);h.C&&rc(h,h.sa)}});ta.show.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.G&&!c.h.J&&c.sa(-1)}});
|
||||
ta.exit.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.h.J&&vc(c,!(!c.b||c.m),!0)}});var yc=0;function zc(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Ac(g,a,b,c,d,e,f)})}
|
||||
function Ac(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ja(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Bc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Bc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,A=/( [a-z]+=)(['"])(.*?)\2/g;k=A.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);Bc(a,b,c)}})}else c(a,null)}
|
||||
function Cc(a,b,c,d){function e(a){if(void 0===g){var b=h&&y(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--yc||za(!0));l=!1}var h,g,l=!0;yc++;Ia[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=k:q.appendChild(document.createTextNode(k));A.appendChild(q)}c||
|
||||
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?zc(c,null,null,!1,e,function(d,k){if(k)if(Ja(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--yc||za(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--yc||za(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?zc(b,a,d,!0,e,k):Ac(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(F){f(F.message)}return l}window.embedPC8080=function(a,b,c,d){za(!1);return Cc(a,b,c,d)};window.enableEvents=za;window.sendEvent=Aa;
|
||||
function Ec(a,b,c,d){if(!c&&b){d.push(b);a=Ia[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){Fc(b,d)}):Fc(null,d)}else r("Error ("+c+") requesting "+a)}
|
||||
function Fc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ia[f],l={},k;for(k in g){var A=g[k],q=da(k);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[k]);){var F=d[2];F&&(g[F]||(A=A.replace(d[0],"")))}d=k=ca(k)}else"xsl"==q&&(e=k=ca(k));l[k]=A}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||
m.O=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.f||(d.h.K?wc(d,!1,!0):sc(d,d.wa))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.h.K&&!d.f)if(d.b&&!d.m){var a=ka("Click OK to save changes to this PC8080 machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");wc(d,a,!0);!a&&d.D?window&&window.location.reload():d.wa(pc)}else d.reset(),d.a&&tb(d.a)},!0;case "save":if(ea(ja(),"pcjs.org")){c.parentNode.removeChild(c);break}this.B[b]=
|
||||
c;c.onclick=function(){var a=qc(d,!0);if(a){var b=!!(d.b&&!d.m||d.D),c=wc(d,b);b?xc(d,a,c):d.L("Resume disabled, machine state not saved")}};return!0}return!1};
|
||||
function qc(a,b){var c=a.c;c||(c=pa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=yc(a,c))||a.L("The user ID is invalid."))):b&&a.L("Browser local storage is not available"));return c}
|
||||
function yc(a,b){a.c=null;var c=p(ja()+"/api/v1/user?req=verify&user="+b),d=c[1];if(!c[0]&&d)try{c=eval("("+d+")"),c.code&&"ok"==c.code&&(qa("user",c.data),a.c=c.data)}catch(e){r(e.message+" ("+d+")")}return a.c}function rc(a){var b=null;a.c&&(b=ja()+"/api/v1/user?req=load&user="+a.c+"&state="+hc(a,Z));return b}
|
||||
function xc(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=hc(a,Z);d.data=c;b=p(ja()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.L("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.L(c),qa("user",""),a.c=null)}}
|
||||
function Ra(a,b,c){a=w(a.id);for(var d=0;d<a.length;d++){var e=a[d];if(c)c==e&&(c=null);else if(e.type==b)return e}return null}m.fa=function(a){this.a&&this.a.fa(a);this.g&&this.g.fa(a)};
|
||||
function Ab(a,b){for(var c=0;c<a.A.length;c++)a:{var d=a.A[c];if(0<=b){if(b&1){d=d.a;d.D=d.D&-8|10;break a}var e=d.a;e.D=e.D&-8|9;if(e=d.D){for(var e=d.o,f=d.A,h=!0,g=d.C>>>e.c;0<f&&g<e.b.length;)e.b[g].S&&(e.b[g].S=h=!1,e.b[g].Ta=!0),f-=e.f,g++;e=h}if(e)break a}var g=d.C,l=g+d.A,k=0,A=d.ga,q=0,F=0,e=d.i,vb=0,f=d.j,cc=h=0,Ia=d.I,Ec=(1<<Ia)-1;d.Ja&&(Ia=-Ia,cc=16+Ia);for(;g<l;){var z;z=d.o;var aa=g,ta=aa&z.g,L=(aa&z.i)>>>z.c;z=ta!=z.g?z.b[L].ab(ta,aa):z.b[L++].Oa(ta,aa)|z.b[L&z.u].Oa(0,aa+1)<<8;if(d.D&&
|
||||
z===d.m[k])q+=d.$;else{d.m[k]=z;(aa=cc)&&(z=z>>8|(z&255)<<8);q<e&&(e=q);for(ta=0;ta<d.$;ta++){var ma=z>>aa&Ec,L=d.G,dc=q++,ma=A[ma],na=void 0,na=d.J?(L.height-dc-1)*L.width+F:dc+F*L.width,na=na*ma.length;L.data[na]=ma[0];L.data[na+1]=ma[1];L.data[na+2]=ma[2];L.data[na+3]=ma[3];aa+=Ia}q>vb&&(vb=q);F<f&&(f=F);F>=h&&(h=F+1)}g+=2;k++;if(q>=d.i&&(q=0,F++,F>d.j))break}d.D=!0;e<d.i&&(g=vb-e,h-=f,d.J?d.N.putImageData(d.G,0,0):d.N.putImageData(d.G,0,0,e,f,g,h),d.g.drawImage(d.c,0,0,d.c.width,d.c.height,0,
|
||||
0,d.s,d.l))}}xa(function(){for(var a=y(document,"pc8080-machine"),b=0;b<a.length;b++)for(var c=a[b],d=x(c),c=y(c,"pc8080","computer"),e=0;e<c.length;e++){var f=c[e],h=x(f),h=new nc(h,d,!0);La(h,f);h.C&&sc(h,h.wa)}});sa.show.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.G&&!c.h.K&&c.wa(-1)}});
|
||||
sa.exit.push(function(){for(var a=y(document,"pc8080","computer"),b=0;b<a.length;b++){var c=x(a[b]);(c=Ka("Computer",c.id))&&c.h.K&&wc(c,!(!c.b||c.m),!0)}});var zc=0;function Ac(a,b,c,d,e,f){e("Loading "+a+"...");p(a,null,!0,function(h,g,l){l?(g||(g="unable to load "+a+" ("+l+")"),f(g,null)):Bc(g,a,b,c,d,e,f)})}
|
||||
function Bc(a,b,c,d,e,f,h){function g(a,f){if(f)h(f,null);else{if(c){Ja(c,b,a);var g=b;g&&0>g.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(g=window.location.pathname+g);d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{";d+='url:"'+g+'"}';"object"==typeof resources&&(g=null);a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(g?' url="'+g+'"':""))}e||(a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pc8080$2"));
|
||||
g=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);h(a,g)}}a?e?Cc(a,f,g):g(a,null):h("no data"+(b?" for file: "+b:""),null)}
|
||||
function Cc(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");p(e,null,!0,function(f,h,g){if(g||!h)c(a,"unable to resolve XML reference: "+d[0]+" ("+g+")");else{if(f=d[3])if(g=h.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=g[0],k,A=/( [a-z]+=)(['"])(.*?)\2/g;k=A.exec(f);)l=0>l.indexOf(k[1])?l.replace(">",k[0]+">"):l.replace(new RegExp(k[1]+"(['\"])(.*?)\\1"),k[0]);g[0]!=l&&(h=h.replace(g[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}h=h.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],h);Cc(a,b,c)}})}else c(a,null)}
|
||||
function Dc(a,b,c,d){function e(a){if(void 0===g){var b=h&&y(h,"machine-warning");g=b&&b[0]||h}g&&(g.innerHTML=ga(a))}function f(a){e("Error: "+a);l&&(--zc||za(!0));l=!1}var h,g,l=!0;zc++;Ha[a]={};try{if(h=document.getElementById(a)){var k;if("object"==typeof resources&&(k=resources.css)){var A=document.head||document.getElementsByTagName("head")[0],q=document.createElement("style");q.type="text/css";q.styleSheet?q.styleSheet.cssText=k:q.appendChild(document.createTextNode(k));A.appendChild(q)}c||
|
||||
(c="/versions/pc8080/1.22.0/components.xsl");k=function(d,g){g?Ac(c,null,null,!1,e,function(d,k){if(k)if(Ja(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var l=g.transformNode(k);l?(h.outerHTML=l,--zc||za(!0)):f("transformNodeToObject failed")}else document.implementation&&document.implementation.createDocument?(l=new XSLTProcessor,l.importStylesheet(k),(l=l.transformToFragment(g,document))?h.parentNode?(h.parentNode.replaceChild(l,h),--zc||za(!0)):f("invalid machine element: "+
|
||||
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser");else f(d)}):f(d)};"<"!=b.charAt(0)?Ac(b,a,d,!0,e,k):Bc(b,null,a,d,!1,e,k)}else f("missing machine element: "+a)}catch(F){f(F.message)}return l}window.embedPC8080=function(a,b,c,d){za(!1);return Dc(a,b,c,d)};window.enableEvents=za;window.sendEvent=Aa;
|
||||
function Fc(a,b,c,d){if(!c&&b){d.push(b);a=Ha[d[0]];b=null;for(var e in a)if(ea(e,"components.xsl")){b=e.replace(".xsl",".css");break}b?p(b,null,!0,function(a,b){Gc(b,d)}):Gc(null,d)}else r("Error ("+c+") requesting "+a)}
|
||||
function Gc(a,b){var c,d,e,f=b[0],h=b[1];c=b[4];c=c.match(/^(\s*\(function\(\)\{)([\s\S]*)(}\)\(\);\s*)$/);var g=Ha[f],l={},k;for(k in g){var A=g[k],q=da(k);if("xml"==q){for(q=/[ \t]*<disk [^>]*path=(['"])(.*?)\1.*?<\/disk>\n?/g;d=q.exec(g[k]);){var F=d[2];F&&(g[F]||(A=A.replace(d[0],"")))}d=k=ca(k)}else"xsl"==q&&(e=k=ca(k));l[k]=A}a&&(l[k="css"]=a);b[2]&&(l[k="parms"]=b[2]);b[3]&&(l[k="state"]=b[3]);d&&e?(k=JSON.stringify(l),h+=".js",c=c[1]+"var resources="+k+";"+c[2]+c[3],c=c.replace(/\u00A9/g,
|
||||
"©"),k=h,g=null,l="data:application/javascript,",l=ra("Firefox")?l+encodeURIComponent(c):l+encodeURI(c),k&&(g=document.createElement("a"),"string"!=typeof g.download&&(g=null)),g?(g.href=l,g.download=k,document.body.appendChild(g),g.click(),document.body.removeChild(g),c="Check your Downloads folder for "+k+"."):(window.open(l),c="Check your browser for a new window/tab containing the requested data"+(k?" ("+k+")":"")+"."),c+=', copy it to your web server as "'+h+'", and then add the following to your web page:\n\n',
|
||||
c+='<div id="'+f+'"></div>\n',c+="...\n",c+='<script type="text/javascript" src="'+h+'">\x3c/script>\n',c+='<script type="text/javascript">embedPC("'+f+'","'+d+'","'+e+'");\x3c/script>\n\n',c+="The machine should appear where the <div> is located.",r(c)):r("Missing XML/XSL resources")}
|
||||
window.savePC=function(a,b,c){var d=Ka("Computer",a),e=Ka("Debugger",a);if(d){var f=vc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,Ya:h}))return!0;p(b,null,!0,function(c,d,e){Ec(c,d,e,[a,ca(b,!0),h,f])});return!0}r("Unable to identify machine '"+a+"'");return!1};})();
|
||||
window.savePC=function(a,b,c){var d=Ka("Computer",a),e=Ka("Debugger",a);if(d){var f=wc(d,!0),h=d.l?JSON.stringify(d.l):null;b||(b="/versions/pcjs/1.22.0/pc"+(e?"-dbg":"")+".js");if(c&&c({state:f,$a:h}))return!0;p(b,null,!0,function(c,d,e){Fc(c,d,e,[a,ca(b,!0),h,f])});return!0}r("Unable to identify machine '"+a+"'");return!1};})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue