Instruction history buffer tweaks

This commit is contained in:
Jeff Parsons 2015-07-18 15:54:11 -07:00
commit da2f8ddda2
3 changed files with 101 additions and 88 deletions

View file

@ -58,12 +58,14 @@ Then I ran into a couple of Windows 95 oddities. First, some kernel initializat
executed an invalid opcode (0x0F,0xFF) and expected its DPMI exception (0x06) handler to field the exception; that was
fixed by flagging the opcode as genuinely invalid.
By default, PCjs marks opcodes as invalid *only* if they are truly invalid. PCjs considers the vast
majority of unused/undocumented opcodes to be merely "undefined" until we've seen them in the wild. An instruction will
be marked invalid if we either discover that real hardware generates an Invalid Opcode exception *or* that real software
expects it to. Here, it was the latter.
> ** SIDEBAR **
> SIDEBAR: Don't be confused that Intel also refers to the Invalid Opcode exception (0x06) as a #UD or "undefined"
> By default, PCjs marks opcodes as invalid *only* if they have been confirmed invalid. PCjs considers the vast
majority of unused/undocumented opcodes to be merely "undefined" until I've seen them in the wild. An instruction will
be marked invalid if I either discover that real hardware treats it as an Invalid Opcode (by throwing the exception)
*or* that real software expects it to. For opcode 0x0F,0xFF, it was the latter.
> Don't be confused that Intel also refers to the Invalid Opcode exception (0x06) as the #UD ("Undefined")
opcode exception. Every opcode that triggers that exception is, by definition, defined: it's defined as invalid.
I consider it a misnomer to refer to any invalid instruction as "undefined".
@ -75,7 +77,12 @@ With all of the above changes in place, PCjs v1.18.4 is able to run Windows 95 S
completion. If you want to give it a spin yourself, start the machine below (click the "Run" button) and once it has
finished booting, run SETUP from drive B, where the first Windows 95 diskette is already loaded.
NOTE: This is a pre-release version of Windows 95, as I don't currently have the RTM version on diskette.
If, when it crashes (and it will), you're interested in examining the instructions that were executed prior to the
crash, use the "m int on" Debugger command prior to starting the machine. That will trigger allocation of the instruction
history buffer, which you can then dump at any time using the Debugger's "dh" command.
NOTE: The diskette images contain a pre-release version of Windows 95, as I don't currently have the RTM version on
diskette.
To be continued....

View file

@ -22,27 +22,27 @@ function m(a,b,c,d,e,g,l){a.ea&&(!0===l?l=0:null==l&&(l=a.Ub),jb(a.ea,a,b,c,d,e,
var qb="undefined"!==typeof ArrayBuffer;function rb(a){Ta.call(this,"Panel",a,rb);this.V=this.Y=-1}bb(rb);function sb(a,b,c,d){this.A=[a,b,c,d];this.B=null;void 0===a&&(this.A[0]=256*Math.random()|0,this.A[1]=256*Math.random()|0,this.A[2]=256*Math.random()|0,this.A[3]=255,this.B=null)}sb.prototype.toString=function(){this.B||(this.B="#"+h(this.A[0],2)+h(this.A[1],2)+h(this.A[2],2));return this.B};function tb(a,b,c,d){this.x=a;this.y=b;this.A=c;this.B=d}
tb.prototype.contains=function(a,b){return a>=this.x&&a<this.x+this.A&&b>=this.y&&b<this.y+this.B};function ub(a,b,c,d){void 0===d&&(d=b>=c>>2);d?(b=new tb(a.x,a.y,a.A,a.B*b/c|0),a.y+=b.B,a.B-=b.B):(b=new tb(a.x,a.y,a.A*b/c|0,a.B),a.x+=b.A,a.A-=b.A);return b}f=rb.prototype;f.Lb=function(a,b,c){return this.la&&this.la.Lb(a,b,c)||this.A&&this.A.Lb(a,b,c)||this.P&&this.P.Lb(a,b,c)||this.ea&&this.ea.Lb(a,b,c)?!0:this.parent.Lb.call(this,a,b,c)};
f.yc=function(a,b,c,d){this.la=a;this.va=b;this.A=c;this.ea=d;this.P=vb(a,"Keyboard")};f.dc=function(a,b){b||wb();return!0};f.cc=function(){return!0};f.Tc=function(){};function xb(a,b,c,d){a.B.Bf[a.B.Ni++]={mn:b,Zd:c,type:d};return ua(yb,b,c,0,d)}function zb(a,b){a.O.font=a.da;a.O.fillStyle=a.ua;a.O.fillText(b,a.U,a.Fa);a.U+=a.Ga}function wb(){for(var a=!1,b=ib(window.document,"pcjs","panel"),c=0;c<b.length;c++){var d=b[c],e=gb(d),g=db(e.id);g||(a=!0,g=new rb(e));hb(g,d);a&&nb(g)}}Ma(wb);
function Ab(a,b,c){Ta.call(this,"Bus",a,Ab);this.A=b;this.ea=c;this.R=a.buswidth||20;this.Fa=Math.pow(2,this.R);this.gf=this.O=this.Fa-1|0;this.Sa=32==this.R||20>=this.R?12:24>=this.R?14:15;this.Fb=1<<this.Sa;this.ha=this.Fb>>2;this.B=this.Fb-1;this.aa=this.Fa/this.Fb|0;this.da=this.aa-1;this.P=[];this.U=[];this.la=this.Y=!1;a=new n;this.ya=Array(this.aa);for(b=0;b<this.aa;b++)this.ya[b]=a;a=this.A;b=this.ya;c=this.Sa;a.Hd=b;a.ya=b;a.Sa=c;a.Fb=1<<a.Sa;a.Ra=a.Fb-1;a.fd=b.length;a.fc=a.fd-1;a=this.A;
function Ab(a,b,c){Ta.call(this,"Bus",a,Ab);this.A=b;this.ea=c;this.R=a.buswidth||20;this.Fa=Math.pow(2,this.R);this.gf=this.O=this.Fa-1|0;this.Sa=32==this.R||20>=this.R?12:24>=this.R?14:15;this.Fb=1<<this.Sa;this.ga=this.Fb>>2;this.B=this.Fb-1;this.aa=this.Fa/this.Fb|0;this.da=this.aa-1;this.P=[];this.U=[];this.la=this.Y=!1;a=new n;this.ya=Array(this.aa);for(b=0;b<this.aa;b++)this.ya[b]=a;a=this.A;b=this.ya;c=this.Sa;a.Hd=b;a.ya=b;a.Sa=c;a.Fb=1<<a.Sa;a.Ra=a.Fb-1;a.fd=b.length;a.fc=a.fd-1;a=this.A;
a.gc=a.hb=this.O;nb(this)}bb(Ab);var yb,Bb={el:20,count:8,fn:1,type:3},Cb=0,Db;for(Db in Bb){var Eb=Bb[Db];Bb[Db]={Mf:(1<<Eb)-1<<Cb,shift:Cb};Cb+=Eb}yb=Bb;f=Ab.prototype;f.reset=function(){Fb(this,!0)};f.dc=function(a,b){b||this.reset();return!0};
function Gb(a,b,c,d,e){for(var g=b>>>a.Sa;0<c&&g<a.ya.length;){var l=a.ya[g],p=g*a.Fb,q=c>a.Fb?a.Fb:c;if(l&&l.size){if(l.type==d&&l.controller==e){if(b+c<=l.Oa)return l.me+=l.Oa-b,l.Oa=b,!0;if(b>=l.Oa+l.me){q=l.size-(b-p);q>c&&(q=c);l.me=b-l.Oa+q;c-=q;b=p+a.Fb;continue}}return Hb(1,b,c)}l=a.ya[g++]=new n(b,q,a.Fb,d,e);a.ea&&Ib(l,a.ea,b,a.Fb);c-=q;b=p+a.Fb}return 0<c?Hb(2,b,c):!0}
function Fb(a,b){if(32==a.R)b?a.V&&(Jb(a,1048576,1048576,a.V),a.V=null):a.V||(a.V=Kb(a,1048576,1048576),Jb(a,1048576,1048576,Kb(a,0,1048576)));else if(20<a.R){var c=a.O&-1048577|(b?1048576:0);if(c!=a.O&&(a.O=c,a.A)){var d=a.A;d.gc=d.hb=c}}}f.Qg=function(a,b,c){if(!(a&this.B||!b||b&this.B)){for(var d=a>>>this.Sa;0<b;){var e=this.ya[d];if(!e.controller)return Hb(5,a,b);e.dd(c);b-=this.Fb;d++}return!0}return Hb(3,a,b)};
function Lb(a,b,c){if(!(b&a.B||!c||c&a.B)){for(var d=b>>>a.Sa;0<c;){b=d*a.Fb;var e=a.ya[d++]=new n(b);a.ea&&Ib(e,a.ea,b,a.Fb);c-=a.Fb}return!0}return Hb(4,b,c)}function Kb(a,b,c){var d=[];for(b>>>=a.Sa;0<c&&b<a.ya.length;)d.push(a.ya[b++]),c-=a.Fb;return d}
function Jb(a,b,c,d,e){for(var g=0,l=b>>>a.Sa;0<c&&l<a.ya.length;){var p=d[g++];if(!p)break;if(void 0!==e){var q=new n(b);a.ea&&Ib(q,a.ea,b,a.Fb);var r=q,x=e;r.id=p.id|1;r.me=p.me;r.size=p.size;x&&(r.type=x,r.V=x==Mb);qb?(r.da=p.da,r.Y=p.Y,r.O=p.O,r.ha=p.ha,r.ga=p.ga,r.dd(Nb?Ob:Pb)):(r.ga=p.ga,r.dd(Qb));p=q}a.ya[l++]=p;c-=a.Fb}}f.bb=function(a){return this.ya[(a&this.O)>>>this.Sa].zc(a&this.B,a)};
function Jb(a,b,c,d,e){for(var g=0,l=b>>>a.Sa;0<c&&l<a.ya.length;){var p=d[g++];if(!p)break;if(void 0!==e){var q=new n(b);a.ea&&Ib(q,a.ea,b,a.Fb);var r=q,x=e;r.id=p.id|1;r.me=p.me;r.size=p.size;x&&(r.type=x,r.V=x==Mb);qb?(r.da=p.da,r.Y=p.Y,r.O=p.O,r.ga=p.ga,r.ha=p.ha,r.dd(Nb?Ob:Pb)):(r.ha=p.ha,r.dd(Qb));p=q}a.ya[l++]=p;c-=a.Fb}}f.bb=function(a){return this.ya[(a&this.O)>>>this.Sa].zc(a&this.B,a)};
function Rb(a,b){var c=b&a.B,d=(b&a.O)>>>a.Sa;return c!=a.B?a.ya[d].Ai(c,b):a.ya[d++].Oe(c,b)|a.ya[d&a.da].Oe(0,b+1)<<8}f.Lc=function(a,b){this.ya[(a&this.O)>>>this.Sa].uc(a&this.B,b&255,a)};f.Jb=function(a,b){var c=a&this.B,d=(a&this.O)>>>this.Sa;c!=this.B?this.ya[d].zf(c,b&65535,a):(this.ya[d++].uc(c,b&255,a),this.ya[d&this.da].uc(0,b>>8&255,a+1))};function Sb(a,b,c){var d=b&a.B,e=(b&a.O)>>>a.Sa;d!=a.B?a.ya[e].Gi(d,c&65535,b):(a.ya[e++].yf(d,c&255,b),a.ya[e&a.da].yf(0,c>>8&255,b+1))}
function Tb(a,b){if(void 0===b)return a.la=!a.la,a.la;void 0===a.P[b]&&(a.P[b]=[null,null,!1]);a.P[b][2]=!a.P[b][2];return a.P[b][2]}function Ub(a,b,c,d){void 0===d&&(d=0);for(var e in c){var g=a,l=+e+d,p=b,q=c[e];if(void 0!==q)for(var r=+e+d;r<=l;r++)void 0!==g.P[r]?ya("Input port "+ga(r)+" registered by "+g.P[r][0].id+", ignoring "+p.id):g.P[r]=[p,q,!1,!1]}}
function Vb(a,b,c){var d=255,e=a.P[b];void 0!==e?(e[1]&&(c=e[1].call(e[0],b,c),void 0!==c&&(d=c)),a.ea&&a.la!=e[2]&&Wb(a.ea,b,d)):a.ea&&(jb(a.ea,a,b,null,c),a.la&&Wb(a.ea,b,d));return d}function Xb(a,b){if(void 0===b)return a.Y=!a.Y,a.Y;void 0===a.U[b]&&(a.U[b]=[null,null,!1]);a.U[b][2]=!a.U[b][2];return a.U[b][2]}
function Yb(a,b,c,d){void 0===d&&(d=0);for(var e in c){var g=a,l=+e+d,p=b,q=c[e];if(void 0!==q)for(var r=+e+d;r<=l;r++)void 0!==g.U[r]?ya("Output port "+ga(r)+" registered by "+g.U[r][0].id+", ignoring "+p.id):g.U[r]=[p,q,!1,!1]}}function Zb(a,b,c,d){var e=a.U[b];void 0!==e?(e[1]&&e[1].call(e[0],b,c,d),a.ea&&a.Y!=e[2]&&$b(a.ea,b,c)):a.ea&&(jb(a.ea,a,b,c,d),a.Y&&$b(a.ea,b,c))}function Hb(a,b,c){ya("Memory block error ("+a+","+h(b)+","+h(c)+")");return!1}var ac;
if(qb){var bc=new ArrayBuffer(2);(new DataView(bc)).setUint16(0,256,!0);ac=256===(new Uint16Array(bc))[0]}else ac=!1;var Nb=ac;
function n(a,b,c,d,e,g){this.id=cc+=2;this.ga=null;this.B=0;this.Oa=a;this.me=b;this.size=c||0;this.type=d||dc;this.V=d==Mb;this.controller=null;this.A=g;this.Za=this.Ui=!1;ec(this);if(c)if(e)this.controller=e,a=e.Yi(a),this.ga=a[0],this.B=a[1],this.dd(e.kh());else if(qb)this.da=new ArrayBuffer(c),this.Y=new DataView(this.da,0,c),this.O=new Uint8Array(this.da,0,c),this.ha=new Uint16Array(this.da,0,c>>1),this.ga=new Int32Array(this.da,0,c>>2),this.dd(Nb?Ob:Pb);else{this.ga=Array(c>>2);for(e=0;e<this.ga.length;e++)this.ga[e]=
function n(a,b,c,d,e,g){this.id=cc+=2;this.ha=null;this.B=0;this.Oa=a;this.me=b;this.size=c||0;this.type=d||dc;this.V=d==Mb;this.controller=null;this.A=g;this.Za=this.Ui=!1;ec(this);if(c)if(e)this.controller=e,a=e.Yi(a),this.ha=a[0],this.B=a[1],this.dd(e.kh());else if(qb)this.da=new ArrayBuffer(c),this.Y=new DataView(this.da,0,c),this.O=new Uint8Array(this.da,0,c),this.ga=new Uint16Array(this.da,0,c>>1),this.ha=new Int32Array(this.da,0,c>>2),this.dd(Nb?Ob:Pb);else{this.ha=Array(c>>2);for(e=0;e<this.ha.length;e++)this.ha[e]=
0;this.dd(Qb)}else this.dd()}var dc=0,Mb=2,fc="NONE RAM ROM VIDEO H/W UNPAGED PAGED".split(" "),gc=["black","blue","green","cyan"],cc=0;function hc(a){qb&&!Nb&&(a=a<<24|a<<8&16711680|a>>8&65280|a>>>24);return a}
n.prototype={constructor:n,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(qb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.Y.getInt32(b<<2,!0);else a=this.ga;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(qb)for(b=0;b<a.length;b++)this.Y.setInt32(b<<2,a[b],!0);else this.ga=a;return this.Za=!0}return!1},dd:function(a){a||(a=5==this.type?ic:6==this.type?jc:kc);lc(this,a,!0);mc(this,a,!0)},Id:function(a,b){this.ea&&
n.prototype={constructor:n,parent:null,save:function(){var a,b;if(this.controller)a=null;else if(qb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.Y.getInt32(b<<2,!0);else a=this.ha;return a},restore:function(a){if(this.controller)return null==a;if(a&&this.size==a.length<<2){var b;if(qb)for(b=0;b<a.length;b++)this.Y.setInt32(b<<2,a[b],!0);else this.ha=a;return this.Za=!0}return!1},dd:function(a){a||(a=5==this.type?ic:6==this.type?jc:kc);lc(this,a,!0);mc(this,a,!0)},Id:function(a,b){this.ea&&
(b?0===this.ua++&&mc(this,nc):0===this.pa++&&lc(this,nc))},Ea:function(){this.ea&&this.ea.ta(128)&&this.ea.message("attempt to read invalid block %"+h(this.Oa),!0);return 255},aa:function(a,b){this.ea&&this.ea.ta(128)&&this.ea.message("attempt to write "+ga(b)+" to invalid block %"+h(this.Oa),!0)},Ga:function(a,b){return this.zc(a,b)|this.zc(a+1,b)<<8},Ba:function(a,b){return this.zc(a,b)|this.zc(a+1,b)<<8|this.zc(a+2,b)<<16|this.zc(a+3,b)<<24},Na:function(a,b,c){this.uc(a,b&255,c);this.uc(a+1,b>>
8,c)},Ja:function(a,b,c){this.uc(a,b&255,c);this.uc(a+1,b>>8&255,c);this.uc(a+2,b>>16&255,c);this.uc(a+3,b>>>24,c)},Ta:function(a){return this.ga[a>>2]>>>((a&3)<<3)&255},Zb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.ga[b]>>a;return 24>a?c&65535:c&255|(this.ga[b+1]&255)<<8},xb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.ga[b];a&&(c=c>>>a|this.ga[b+1]<<32-a);return c},Oc:function(a,b){var c=a>>2,d=(a&3)<<3;this.ga[c]=this.ga[c]&~(255<<d)|b<<d;this.Za=!0},wd:function(a,b){var c=a>>2,d=(a&3)<<3;24>
d?this.ga[c]=this.ga[c]&~(65535<<d)|b<<d:(this.ga[c]=this.ga[c]&16777215|b<<24,c++,this.ga[c]=this.ga[c]&-256|b>>8);this.Za=!0},ed:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.ga[c]=this.ga[c]&~e|b<<d;c++;this.ga[c]=this.ga[c]&e|b>>>32-d}else this.ga[c]=b;this.Za=!0},Qa:function(a,b){this.ea&&oc(this.ea,b);return this.Oe(a,b)},Gd:function(a,b){this.ea&&(oc(this.ea,b)||oc(this.ea,b+1));return this.Ai(a,b)},kb:function(a,b){this.ea&&(oc(this.ea,b)||oc(this.ea,b+1)||oc(this.ea,b+2)||oc(this.ea,
b+3));return this.Ca(a,b)},qc:function(a,b,c){this.ea&&pc(this.ea,c);this.V?this.aa(a,b,c):this.yf(a,b,c)},td:function(a,b,c){this.ea&&(pc(this.ea,c)||pc(this.ea,c+1));this.V?this.aa(a,b,c):this.Gi(a,b,c)},fd:function(a,b,c){this.ea&&(pc(this.ea,this.Oa+a)||pc(this.ea,this.Oa+a+1)||pc(this.ea,this.Oa+a+2)||pc(this.ea,this.Oa+a+3));this.V?this.aa(a,b,c):this.Ma(a,b,c)},Wa:function(a,b){this.P.ga[this.R]|=this.la;this.U.ga[this.wa]|=this.la;return this.Fa.zc(a,b)},fc:function(a,b){this.P.ga[this.R]|=
this.la;this.U.ga[this.wa]|=this.la;return this.Fa.Jg(a,b)},yb:function(a,b){this.P.ga[this.R]|=this.la;this.U.ga[this.wa]|=this.la;return this.Fa.rd(a,b)},Pc:function(a,b,c){this.P.ga[this.R]|=this.la;this.U.ga[this.wa]|=this.na;this.Fa.uc(a,b,c)},ce:function(a,b,c){this.P.ga[this.R]|=this.la;this.U.ga[this.wa]|=this.na;this.Fa.zf(a,b,c)},hd:function(a,b,c){this.P.ga[this.R]|=this.la;this.U.ga[this.wa]|=this.na;this.Fa.Te(a,b,c)},ab:function(a,b){return(qc(this.A,b,!1)||this).zc(a,b)},gc:function(a,
b){return(qc(this.A,b,!1)||this).Jg(a,b)},Mb:function(a,b){return(qc(this.A,b,!1)||this).rd(a,b)},Uc:function(a,b,c){(qc(this.A,c,!0)||this).uc(a,b,c)},de:function(a,b,c){(qc(this.A,c,!0)||this).zf(a,b,c)},kd:function(a,b,c){(qc(this.A,c,!0)||this).Te(a,b,c)},Ra:function(a){return this.O[a]},vc:function(a){return this.O[a]},Nb:function(a){return this.Y.getUint16(a,!0)},Qb:function(a){return a&1?this.O[a]|this.O[a+1]<<8:this.ha[a>>1]},hb:function(a){return this.Y.getInt32(a,!0)},lb:function(a){return a&
3?this.O[a]|this.O[a+1]<<8|this.O[a+2]<<16|this.O[a+3]<<24:this.ga[a>>2]},pc:function(a,b){this.O[a]=b;this.Za=!0},Nc:function(a,b){this.O[a]=b;this.Za=!0},qe:function(a,b){this.Y.setUint16(a,b,!0);this.Za=!0},vd:function(a,b){a&1?(this.O[a]=b,this.O[a+1]=b>>8):this.ha[a>>1]=b;this.Za=!0},Vc:function(a,b){this.Y.setInt32(a,b,!0);this.Za=!0},gd:function(a,b){a&3?(this.O[a]=b,this.O[a+1]=b>>8,this.O[a+2]=b>>16,this.O[a+3]=b>>24):this.ga[a>>2]=b;this.Za=!0}};
8,c)},Ja:function(a,b,c){this.uc(a,b&255,c);this.uc(a+1,b>>8&255,c);this.uc(a+2,b>>16&255,c);this.uc(a+3,b>>>24,c)},Ta:function(a){return this.ha[a>>2]>>>((a&3)<<3)&255},Zb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.ha[b]>>a;return 24>a?c&65535:c&255|(this.ha[b+1]&255)<<8},xb:function(a){var b=a>>2;a=(a&3)<<3;var c=this.ha[b];a&&(c=c>>>a|this.ha[b+1]<<32-a);return c},Oc:function(a,b){var c=a>>2,d=(a&3)<<3;this.ha[c]=this.ha[c]&~(255<<d)|b<<d;this.Za=!0},wd:function(a,b){var c=a>>2,d=(a&3)<<3;24>
d?this.ha[c]=this.ha[c]&~(65535<<d)|b<<d:(this.ha[c]=this.ha[c]&16777215|b<<24,c++,this.ha[c]=this.ha[c]&-256|b>>8);this.Za=!0},ed:function(a,b){var c=a>>2,d=(a&3)<<3;if(d){var e=-1<<d;this.ha[c]=this.ha[c]&~e|b<<d;c++;this.ha[c]=this.ha[c]&e|b>>>32-d}else this.ha[c]=b;this.Za=!0},Qa:function(a,b){this.ea&&oc(this.ea,b);return this.Oe(a,b)},Gd:function(a,b){this.ea&&(oc(this.ea,b)||oc(this.ea,b+1));return this.Ai(a,b)},kb:function(a,b){this.ea&&(oc(this.ea,b)||oc(this.ea,b+1)||oc(this.ea,b+2)||oc(this.ea,
b+3));return this.Ca(a,b)},qc:function(a,b,c){this.ea&&pc(this.ea,c);this.V?this.aa(a,b,c):this.yf(a,b,c)},td:function(a,b,c){this.ea&&(pc(this.ea,c)||pc(this.ea,c+1));this.V?this.aa(a,b,c):this.Gi(a,b,c)},fd:function(a,b,c){this.ea&&(pc(this.ea,this.Oa+a)||pc(this.ea,this.Oa+a+1)||pc(this.ea,this.Oa+a+2)||pc(this.ea,this.Oa+a+3));this.V?this.aa(a,b,c):this.Ma(a,b,c)},Wa:function(a,b){this.P.ha[this.R]|=this.la;this.U.ha[this.wa]|=this.la;return this.Fa.zc(a,b)},fc:function(a,b){this.P.ha[this.R]|=
this.la;this.U.ha[this.wa]|=this.la;return this.Fa.Jg(a,b)},yb:function(a,b){this.P.ha[this.R]|=this.la;this.U.ha[this.wa]|=this.la;return this.Fa.rd(a,b)},Pc:function(a,b,c){this.P.ha[this.R]|=this.la;this.U.ha[this.wa]|=this.na;this.Fa.uc(a,b,c)},ce:function(a,b,c){this.P.ha[this.R]|=this.la;this.U.ha[this.wa]|=this.na;this.Fa.zf(a,b,c)},hd:function(a,b,c){this.P.ha[this.R]|=this.la;this.U.ha[this.wa]|=this.na;this.Fa.Te(a,b,c)},ab:function(a,b){return(qc(this.A,b,!1)||this).zc(a,b)},gc:function(a,
b){return(qc(this.A,b,!1)||this).Jg(a,b)},Mb:function(a,b){return(qc(this.A,b,!1)||this).rd(a,b)},Uc:function(a,b,c){(qc(this.A,c,!0)||this).uc(a,b,c)},de:function(a,b,c){(qc(this.A,c,!0)||this).zf(a,b,c)},kd:function(a,b,c){(qc(this.A,c,!0)||this).Te(a,b,c)},Ra:function(a){return this.O[a]},vc:function(a){return this.O[a]},Nb:function(a){return this.Y.getUint16(a,!0)},Qb:function(a){return a&1?this.O[a]|this.O[a+1]<<8:this.ga[a>>1]},hb:function(a){return this.Y.getInt32(a,!0)},lb:function(a){return a&
3?this.O[a]|this.O[a+1]<<8|this.O[a+2]<<16|this.O[a+3]<<24:this.ha[a>>2]},pc:function(a,b){this.O[a]=b;this.Za=!0},Nc:function(a,b){this.O[a]=b;this.Za=!0},qe:function(a,b){this.Y.setUint16(a,b,!0);this.Za=!0},vd:function(a,b){a&1?(this.O[a]=b,this.O[a+1]=b>>8):this.ga[a>>1]=b;this.Za=!0},Vc:function(a,b){this.Y.setInt32(a,b,!0);this.Za=!0},gd:function(a,b){a&3?(this.O[a]=b,this.O[a+1]=b>>8,this.O[a+2]=b>>16,this.O[a+3]=b>>24):this.ha[a>>2]=b;this.Za=!0}};
function rc(a,b){a.ea&&(b?0===--a.ua&&(a.uc=a.V?a.aa:a.yf,a.zf=a.V?a.aa:a.Gi,a.Te=a.V?a.aa:a.Ma):0===--a.pa&&(a.zc=a.Oe,a.Jg=a.Ai,a.rd=a.Ca))}function ec(a,b,c,d,e,g){a.Fa=b;a.P=c;a.R=d>>2;a.U=e;a.wa=g>>2;a.na=b?hc(sc|tc):0;a.la=b?hc(sc):0}function Ib(a,b,c,d){a.ea=b;a.pa=a.ua=0;uc(a.ea,c,d)}function mc(a,b,c){a.uc=!a.V&&b[3]||a.aa;a.zf=!a.V&&b[4]||a.Na;a.Te=!a.V&&b[5]||a.Ja;c&&(a.yf=b[3]||a.aa,a.Gi=b[4]||a.Na,a.Ma=b[5]||a.Ja)}
function lc(a,b,c){a.zc=b[0]||a.Ea;a.Jg=b[1]||a.Ga;a.rd=b[2]||a.Ba;c&&(a.Oe=b[0]||a.Ea,a.Ai=b[1]||a.Ga,a.Ca=b[2]||a.Ba)}var kc=[],Qb=[n.prototype.Ta,n.prototype.Zb,n.prototype.xb,n.prototype.Oc,n.prototype.wd,n.prototype.ed],nc=[n.prototype.Qa,n.prototype.Gd,n.prototype.kb,n.prototype.qc,n.prototype.td,n.prototype.fd],jc=[n.prototype.Wa,n.prototype.fc,n.prototype.yb,n.prototype.Pc,n.prototype.ce,n.prototype.hd],ic=[n.prototype.ab,n.prototype.gc,n.prototype.Mb,n.prototype.Uc,n.prototype.de,n.prototype.kd];
if(qb)var Pb=[n.prototype.Ra,n.prototype.Nb,n.prototype.hb,n.prototype.pc,n.prototype.qe,n.prototype.Vc],Ob=[n.prototype.vc,n.prototype.Qb,n.prototype.lb,n.prototype.Nc,n.prototype.vd,n.prototype.gd];
@ -52,7 +52,7 @@ function Bc(a){(!0===a.ma.bh||null===a.ma.bh&&!a.ea&&void 0===a.wa.run)&&a.je()}
f.Tc=function(){this.la&&this.la.Bd&&this.la.Bd.Tc()};
function Ec(a){for(var b=0;b<a.Zb.length;b++)Fc(a.Zb[b]);if(a.la&&a.la.Bd&&(a=a.la.Bd,a.Ca)){var b=a.R,c=a.Ba,d,e=null.style.color,g=a.Ra=10;a.U=g;a.Fa=18;a.aa=a.pa=18;d||(d=a.na||a.pa+"px Monaco, Lucida Console, Courier New");a.da=a.na=d;b&&(a.Ea=b);c&&(a.O=c,a.ua=e||"white");if(a.Na){d=a.va;var b=a.B,l,p;null==l&&(l=0);null==p&&(p=d.Fa-l|0);null==b&&(b={ah:0,Zd:0,Hi:[]});c=l>>>d.Sa;l=l+p-1>>>d.Sa;b.ah=0;for(b.Zd=0;c<=l;)p=d.ya[c],b.ah+=p.size,p.size&&(b.Hi.push(ua(yb,c,0,0,p.type)),b.Zd++),c++;
a.B=b;l=0;a.B.Ni=0;a.B.Bf||(a.B.Bf=[]);p=-1;d=0;c=-1;for(b=0;b<a.B.Zd;b++){var g=a.B.Hi[b],e=yb.type,e=(g&e.Mf)>>e.shift,q=yb.el,g=(g&q.Mf)>>q.shift;if(e!=p||g!=c+1)(c=b-d)&&(l+=xb(a,d,c,p)),p=e,d=b;c=g}l+=xb(a,d,b-d,p);p=a.B.Ej!=l;a.B.Ej=l;if(p){p=new tb(0,0,a.R.width,a.R.height);a.B.Vg=[];d=a.B.Zd;for(l=0;l<a.B.Ni;l++)b=a.B.Bf[l].Zd,a.B.Vg.push(ub(p,b,d,!l)),d-=b;for(l=0;l<a.B.Vg.length;l++)p=a.B.Bf[l],d=b=a.B.Vg[l],c=a.Ba,(e=gc[p.type])||(e=new sb),c.strokeStyle="black",c.strokeRect(d.x,d.y,d.A,
d.B),c.fillStyle="string"==typeof e?e:e.toString(),c.fillRect(d.x,d.y,d.A,d.B),d=a,c=b,d.da=d.na,d.aa=d.pa,b=c.x+(c.A>>1),e=c.y+(c.B>>1),g=c.B,c.A<c.B&&(g=c.A,d.ha=!0,d.O.save(),d.O.translate(b,e),d.O.rotate(-Math.PI/2),b=e=0),g<d.aa&&(d.aa=g,d.da=d.aa+"px Monaco, Lucida Console, Courier New"),c=e,d.U=b,d.Fa=c,d=a,p=fc[p.type]+" ("+(p.Zd*a.va.Fb/1024|0)+"Kb)",d.O.font=d.da,d.U-=d.O.measureText(p).width>>1,d.Fa+=(d.aa>>1)-2,zb(d,p),d.ha&&(d.O.restore(),d.ha=!1)}}else zb(a,"This space intentionally left blank");
d.B),c.fillStyle="string"==typeof e?e:e.toString(),c.fillRect(d.x,d.y,d.A,d.B),d=a,c=b,d.da=d.na,d.aa=d.pa,b=c.x+(c.A>>1),e=c.y+(c.B>>1),g=c.B,c.A<c.B&&(g=c.A,d.ga=!0,d.O.save(),d.O.translate(b,e),d.O.rotate(-Math.PI/2),b=e=0),g<d.aa&&(d.aa=g,d.da=d.aa+"px Monaco, Lucida Console, Courier New"),c=e,d.U=b,d.Fa=c,d=a,p=fc[p.type]+" ("+(p.Zd*a.va.Fb/1024|0)+"Kb)",d.O.font=d.da,d.U-=d.O.measureText(p).width>>1,d.Fa+=(d.aa>>1)-2,zb(d,p),d.ga&&(d.O.restore(),d.ga=!1)}}else zb(a,"This space intentionally left blank");
a.context.drawImage(a.R,0,0,a.R.width,a.R.height,a.Qa,a.Ta,a.Ja,a.Ma);a.Ca=!1}}f.Mc=function(){this.Zb.length&&this.Zb[0].Mc()};
f.Lb=function(a,b,c){var d=this;a=!1;switch(b){case "run":this.wa[b]=c;c.onclick=function(){var a;if(a=d.la)if(a=d.la,a.ma.bc)a=!0;else{var b=null,c,p=cb(a.id);for(c=0;c<p.length&&(b=p[c],b===a||b.ma.we);c++);if(c==p.length)for(c=0;c<p.length&&(b=p[c],b===a||b.ma.bc);c++);c==p.length&&(b=a);ya("The "+b.type+" component ("+b.id+") is not "+(b.ma.we?"powered yet":"ready yet"+(b.Lf?" (waiting for notification)":""))+".");a=!1}a&&(d.ma.zb?d.Pb(!0):d.je(!0))};a=!0;break;case "reset":this.wa[b]=c;c.onclick=
function(){d.la&&Gc(d.la)};a=!0;break;case "speed":this.wa[b]=c;a=!0;break;case "setSpeed":this.wa[b]=c,c.onclick=function(){Hc(d,d.Z.yd<<1,!0)},c.textContent=this.Z.fe.toFixed(2)+"Mhz",a=!0}return a};function Ic(a,b){if(a.ma.zb){var c=a.A-b;a.A-=c;a.Ta-=c}}function Jc(a,b,c){a.xb+=b;c&&(a.Ta=a.A=0)}
@ -75,7 +75,7 @@ f.save=function(){return[this.oa,this.Ka,this.qb,this.Rb,this.id,this.xf,this.Ya
function Qc(a,b,c){void 0===c&&(c=!!(a.A.rb&1));a.ue=!1;if(c){a.load=a.Uk;a.aj=a.Sk;a.rc=a.Oi;a.hc=a.Pi;if(!(a.oa&-4))a.rc=a.Hf,a.hc=a.If;else if(a.type&4096){6144==(a.type&6656)&&(a.rc=a.Hf);if(a.type&2048||!(a.type&512))a.hc=a.If;1024==(a.type&3072)&&(a.rc==a.Oi&&(a.rc=a.Aj),a.hc==a.Pi&&(a.hc=a.Cj),a.ue=!0)}b&&(a.oa&-4&&-1!==a.Wc&&(b=a.Wc+5,a.A.Lc(b,a.A.bb(b)|1)),a.Ya=a.oa&3,a.sc=(a.Rb&24576)>>13,80386>a.A.qa||!(a.ext&64)?(a.sa=2,a.C=65535):(a.sa=4,a.C=-1),a.Zc=a.sa,a.ca=a.C)}else a.load=a.Vk,a.aj=
a.Tk,a.rc=a.Bj,a.hc=a.Dj,a.Ya=a.sc=0,a.Wc=-1,a.bf=!1}
function bd(a){this.qa=a.model||8088;var b=0;switch(this.qa){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}vc.call(this,a,b);this.de=61442;this.Vc=1792;this.ce=28672;this.Uc=4;this.pa=255;this.B=80386==this.qa?cd:80286==this.qa?dd:ed;this.da=fd;this.cf=gd;this.df=hd;this.ef=id;if(80186<=this.qa&&(this.da=fd.slice(),this.cf=gd.slice(),this.df=hd.slice(),this.pa=31,this.da[15]=jd,this.da[96]=kd,this.da[97]=ld,this.da[98]=md,this.da[99]=jd,this.da[100]=jd,this.da[101]=jd,this.da[102]=
jd,this.da[103]=jd,this.da[104]=nd,this.da[105]=od,this.da[106]=pd,this.da[107]=qd,this.da[108]=rd,this.da[109]=sd,this.da[110]=td,this.da[111]=ud,this.da[192]=xd,this.da[193]=yd,this.da[200]=zd,this.da[201]=Ad,this.da[241]=Bd,this.cf[7]=Cd,this.df[7]=Cd,80286<=this.qa)){this.de=2;this.Vc|=28672;this.Uc=0;this.da[15]=Dd;this.pc=Ed.slice();for(a=0;a<this.pc.length;a++)this.pc[a]||(this.pc[a]=Fd);this.da[84]=Gd;this.da[99]=Id;if(80386<=this.qa){var c;this.ce=16384;this.da[100]=Jd;this.da[101]=Kd;this.da[102]=
jd,this.da[103]=jd,this.da[104]=nd,this.da[105]=od,this.da[106]=pd,this.da[107]=qd,this.da[108]=rd,this.da[109]=sd,this.da[110]=td,this.da[111]=ud,this.da[192]=vd,this.da[193]=yd,this.da[200]=zd,this.da[201]=Ad,this.da[241]=Bd,this.cf[7]=Cd,this.df[7]=Cd,80286<=this.qa)){this.de=2;this.Vc|=28672;this.Uc=0;this.da[15]=Dd;this.pc=Ed.slice();for(a=0;a<this.pc.length;a++)this.pc[a]||(this.pc[a]=Fd);this.da[84]=Gd;this.da[99]=Hd;if(80386<=this.qa){var c;this.ce=16384;this.da[100]=Jd;this.da[101]=Kd;this.da[102]=
Ld;this.da[103]=Md;for(c in y)this.pc[+c]=y[c]}}this.ed=[];this.Di=[];wc(this);this.ma.ud=this.ma.Ti=!1;this.tf=0;this.Hd=this.ya=[];this.Sa=this.Fb=this.Ra=this.fd=this.fc=this.gc=this.hb=0;Nd(this)}bb(bd,vc);
var ed={rf:4,N:5,ka:6,ia:7,ja:8,I:9,S:11,T:12,Rd:4,th:60,uh:83,Wb:3,Ib:9,lc:16,pf:1,Bh:19,Dh:28,Fh:16,Eh:21,Ch:37,zh:2,Wf:9,Ah:5,yh:33,Yf:10,Xf:8,Je:3,Ie:15,Th:51,Uh:1,Vh:2,Wh:4,Sh:32,Zf:15,Yh:15,Ua:16,Va:4,$h:11,Zh:18,Xh:24,Ob:4,ai:2,he:16,bi:17,dg:18,ci:19,cg:5,eg:6,hi:2,gi:8,ei:9,fi:10,di:10,fg:10,gg:10,Hh:80,Jh:144,Gh:86,Ih:154,Lh:101,Nh:165,Kh:107,Mh:171,ji:70,li:113,ii:76,ki:124,Ph:80,Rh:128,Oh:86,Qh:134,Le:3,Ke:16,ng:10,mg:8,mi:51,Xb:8,ni:17,oi:36,tc:11,pi:16,Sd:10,Jc:2,Tf:18,Uf:7,Vf:15,$f:12,
ag:7,bg:11,hg:18,ig:7,jg:15,og:15,pg:7,qg:13,wg:11,xg:7,yg:8,ri:8,ui:12,si:18,ti:17,vi:15,sg:8,rg:20,tg:2,Bg:3,Me:9,Ag:5,zg:11,Dg:4,Cg:17,wi:11},dd={rf:0,N:0,ka:0,ia:0,ja:0,I:0,S:1,T:1,Rd:3,th:14,uh:16,Wb:2,Ib:7,lc:7,pf:0,Bh:7,Dh:13,Fh:7,Eh:11,Ch:16,zh:3,Wf:6,Ah:2,yh:13,Yf:5,Xf:5,Je:2,Ie:7,Th:23,Uh:0,Vh:1,Wh:3,Sh:17,Zf:7,Yh:11,Ua:7,Va:3,$h:7,Zh:11,Xh:15,Ob:2,ai:3,he:7,bi:8,dg:8,ci:8,cg:4,eg:4,hi:2,gi:3,ei:5,fi:2,di:3,fg:5,gg:3,Hh:14,Jh:22,Gh:17,Ih:25,Lh:17,Nh:25,Kh:20,Mh:28,ji:13,li:21,ii:16,ki:24,
@ -84,14 +84,14 @@ ei:5,fi:2,di:3,fg:5,gg:3,Hh:14,Jh:22,Gh:17,Ih:25,Lh:17,Nh:25,Kh:20,Mh:28,ji:13,l
function Od(a){if(a.ya===a.Hd){a.ya=Array(a.fd);a.td=new n(null,0,0,5,null,a);for(var b=0;b<a.fd;b++)a.ya[b]=a.td}else for(b=0;b<a.gd.length;b++)a.ya[a.gd[b]]=a.td;a.gd=[]}
function qc(a,b,c,d){var e=(b&-4194304)>>>20,g=a.Hd[(a.Vd+e&a.gc)>>>a.Sa],l=g.rd(e);if(!(l&1))return d||Pd.call(a,b,!1,c),null;if(!(l&4)&&3==a.xa.Ya)return d||Pd.call(a,b,!0,c),null;var p=(b&4190208)>>>10,l=a.Hd[((l&-4096)+p&a.gc)>>>a.Sa],q=l.rd(p);if(!(q&1||d))return d||Pd.call(a,b,!1,c),null;if(!(q&4)&&3==a.xa.Ya)return d||Pd.call(a,b,!0,c),null;c=a.Hd[((q&-4096)+(b&4095)&a.gc)>>>a.Sa];if(d)return c;d=new n(b&-4096,0,0,6);ec(d,c,g,e,l,p);b>>>=a.Sa;a.ya[b]=d;a.gd.push(b);return d}f=bd.prototype;
f.reset=function(){this.ma.zb&&this.Pb();Nd(this);wc(this);this.ma.ad=!1};
function Nd(a){a.F=0;a.D=0;a.G=0;a.H=0;a.ab=0;a.L=0;a.K=0;a.J=0;a.Ea=!1;a.ha=a.Ga=0;a.Wa=0;a.hd=0;a.rb=65520;a.Yc=0;a.Jd=1023;a.fa=a.He=0;a.Nb=a.Oc=a.Mb=a.Qb=0;a.kd=-1;a.xa=new Oc(a,Pc,"CS");a.tb=new Oc(a,2,"DS");a.cb=new Oc(a,2,"ES");a.Da=new Oc(a,3,"SS");t(a,0);Wc(a,0);80386<=a.qa&&(a.H=772,a.rb=16,a.vf=0,a.Ud=0,a.Vd=0,a.ff=Array(8),a.sf=Array(8),a.nc=new Oc(a,2,"FS"),a.oc=new Oc(a,2,"GS"));a.Pg=new Oc(a,0,"NULL");a.P=a.tb;a.R=a.Da;a.X=a.V=0;a.O=a.Y=-1;a.na=0;ad(a,0,65535);if(80286<=a.qa){a.Xc=
function Nd(a){a.F=0;a.D=0;a.G=0;a.H=0;a.ab=0;a.L=0;a.K=0;a.J=0;a.Ea=!1;a.ga=a.Ga=0;a.Wa=0;a.hd=0;a.rb=65520;a.Yc=0;a.Jd=1023;a.fa=a.He=0;a.Nb=a.Oc=a.Mb=a.Qb=0;a.kd=-1;a.xa=new Oc(a,Pc,"CS");a.tb=new Oc(a,2,"DS");a.cb=new Oc(a,2,"ES");a.Da=new Oc(a,3,"SS");t(a,0);Wc(a,0);80386<=a.qa&&(a.H=772,a.rb=16,a.vf=0,a.Ud=0,a.Vd=0,a.ff=Array(8),a.sf=Array(8),a.nc=new Oc(a,2,"FS"),a.oc=new Oc(a,2,"GS"));a.Pg=new Oc(a,0,"NULL");a.P=a.tb;a.R=a.Da;a.X=a.V=0;a.O=a.Y=-1;a.na=0;ad(a,0,65535);if(80286<=a.qa){a.Xc=
0;a.Xd=65535;a.Sc=new Oc(a,5,"LDT",!0);a.nb=new Oc(a,4,"TSS",!0);a.Ca=new Oc(a,6,"VER",!0);ad(a,65520,61440);var b,c=w(a);b=a.xa;var d=-65536;80386>b.A.qa&&(d&=16777215);b=b.Ka=d;a.za=b+c|0;a.Nc=b+a.xa.qb|0}$c(a,0);Qd(a)}function Rd(a){2==a.Zc?(a.Vb=a.Aa,a.Na=z,a.Qa=Sd,a.kb=Td,a.aa=A,a.ua=Ud,a.Ma=Vd):(a.Vb=a.Af,a.Na=B,a.Qa=Wd,a.kb=Xd,a.aa=C,a.ua=Yd,a.Ma=Zd)}function $d(a,b){a.sa!=b&&(a.V|=4096,a.sa=b,a.C=2==b?65535:-1,ae(a))}
function ae(a){2==a.sa?(a.dataType=32768,a.kc=a.Aa,a.yb=a.Jb):(a.dataType=-2147483648,a.kc=a.Af,a.yb=a.Tg)}function be(a){a.Zc=a.xa.Zc;a.ca=a.xa.ca;Rd(a);a.sa=a.xa.sa;a.C=a.xa.C;ae(a);a.V&=-12289}f.Xi=function(){var a=this.F+this.D+this.G+this.H+u(this)+this.L+this.K+this.J|0;return a=a+w(this)+ce(this)+this.tb.oa+this.Da.oa+this.cb.oa+Zc(this)|0};function de(a,b,c,d){void 0!==d&&(void 0===a.ed[b]&&(a.ed[b]=[]),a.ed[b].push([c,d]))}function ee(a,b,c){void 0!==c&&(a.Di[b]=c)}
function Qd(a,b){void 0===b&&(b=!!(a.rb&1));!b!=!(a.rb&1)&&a.ta()&&a.Fa("CPU switching to "+(b?"protected":"real")+"-mode",a.Ub,!0);a.ef=b?fe:id;Qc(a.xa);Qc(a.tb);Qc(a.Da);Qc(a.cb);80386<=a.qa&&(Qc(a.nc),Qc(a.oc),be(a))}
f.save=function(){var a=new ge(this);he(a,0,[this.F,this.D,this.G,this.H,u(this),this.L,this.K,this.J]);var b=w(this),c=this.xa.save(),d=this.tb.save(),e=this.Da.save(),g=this.cb.save(),l;null!=this.Xc?(l=[this.rb,this.Xc,this.Xd,this.Yc,this.Jd,this.Sc.save(),this.nb.save(),this.He],l.push(this.vf),l.push(this.Ud),l.push(this.Vd),l.push(this.ff),l.push(this.sf)):l=null;b=[b,c,d,e,g,l,Zc(this)];80386<=this.qa&&(b.push(this.nc.save()),b.push(this.oc.save()));he(a,1,b);he(a,2,[this.P.xf,this.R.xf,this.X,
this.V,this.na,this.O,this.Y]);he(a,3,[0,this.xb,this.Z.yd]);b=this.va;c=0;d=[];for(e=0;e<b.aa;e++)if(l=b.ya[e],l.Za||l.Ui){d[c++]=e;g=c++;a:if(l=l.save()){for(var p=0,q=0,r=[];p<l.length;){for(var x=l[p],G=p+1;G<l.length&&l[G]===x;)G++;r[q++]=G-p;r[q++]=x;p=G}if(r.length<l.length){l=r;break a}}d[g]=l}d[c]=!b.V&&b.gf==b.O;he(a,4,d);return a.data()};
f.restore=function(a){var b=a[0];this.F=b[0];this.D=b[1];this.G=b[2];this.H=b[3];var c=b[4];this.L=b[5];this.K=b[6];this.J=b[7];b=a[1];this.xa.restore(b[1]);this.tb.restore(b[2]);this.Da.restore(b[3]);this.cb.restore(b[4]);var d=b[5];d&&d.length&&(this.rb=d[0],this.Xc=d[1],this.Xd=d[2],this.Yc=d[3],this.Jd=d[4],this.Sc.restore(d[5]),this.nb.restore(d[6]),this.He=d[7],80386<=this.qa&&(this.vf=d[8],this.Ud=d[9],this.Vd=d[10],this.ff=d[11],this.sf=d[12]),Qd(this));$c(this,b[6]);ad(this,b[0],this.xa.oa);
t(this,c);Wc(this,this.Da.oa);80386<=this.qa&&(this.nc.restore(b[7]),this.oc.restore(b[8]));b=a[2];this.P=null!=b[0]&&ie(this,b[0])||this.tb;this.R=null!=b[1]&&ie(this,b[1])||this.Da;this.X=b[2];this.V=b[3];this.na=b[4];this.O=b[5];this.Y=b[6];b=a[3];this.xb=b[1];Hc(this,b[2]);a:{b=this.va;a=a[4];for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.ha){for(var g=0,l=Array(b.ha),p=0;p<e.length-1;)for(var q=e[p++],r=e[p++];q--;)l[g++]=r;e=l}g=b.ya[d];if(!g||!g.restore(e)){ya("Unable to restore memory block "+
t(this,c);Wc(this,this.Da.oa);80386<=this.qa&&(this.nc.restore(b[7]),this.oc.restore(b[8]));b=a[2];this.P=null!=b[0]&&ie(this,b[0])||this.tb;this.R=null!=b[1]&&ie(this,b[1])||this.Da;this.X=b[2];this.V=b[3];this.na=b[4];this.O=b[5];this.Y=b[6];b=a[3];this.xb=b[1];Hc(this,b[2]);a:{b=this.va;a=a[4];for(c=0;c<a.length-1;c+=2){var d=a[c],e=a[c+1];if(e&&e.length<b.ga){for(var g=0,l=Array(b.ga),p=0;p<e.length-1;)for(var q=e[p++],r=e[p++];q--;)l[g++]=r;e=l}g=b.ya[d];if(!g||!g.restore(e)){ya("Unable to restore memory block "+
d);b=!1;break a}}void 0!==a[c]&&Fb(b,a[c]);b=!0}return b};function ie(a,b){switch(b){case "CS":return a.xa;case "DS":return a.tb;case "SS":return a.Da;case "ES":return a.cb;case "NULL":return a.Pg;default:return[0,b,0,0,""]}}function ce(a){return a.xa.oa}function je(a,b){var c=w(a);a.za=a.xa.load(b)+c|0;a.Nc=a.xa.Ka+a.xa.qb|0;be(a);a.X|=a.Uc}function ke(a,b){a.tb.load(b);a.X|=a.Uc}
function Wc(a,b,c){var d=u(a);a.Ja=a.Da.load(b)+d|0;a.Da.ue?(a.Mg=a.Da.Ka+a.Da.ca|0,a.wd=a.Da.Ka+a.Da.qb|0):(a.Mg=a.Da.Ka+a.Da.qb|0,a.wd=a.Da.Ka);c||(a.X|=4)}function le(a,b){a.cb.load(b);a.X|=a.Uc}function w(a){return a.za-a.xa.Ka|0}function E(a,b){a.za=a.xa.Ka+(b&a.C)|0}function ad(a,b,c,d){a.xa.eh=d;a.vd=b;b=a.xa.load(c);return-1!==b?(a.za=b+(a.vd&a.C)|0,a.Nc=b+a.xa.qb|0,be(a),a.xa.bf):null}
function me(a,b){a.za=a.za+b|0;var c=a.Nc-a.za|0;0>c&&0<=(a.Nc^a.za)&&(8088>=a.qa||a.xa.qb==a.xa.ca?E(a,a.za-a.xa.Ka):-1>c&&Uc.call(a,13,0))}function u(a){return a.ab&~a.Da.ca|a.Ja-a.Da.Ka}function t(a,b){a.ab=b;a.Ja=a.Da.Ka+(b&a.Da.ca)|0}function ne(a,b,c,d,e,g){if(63!=(e&63)&&e!=a.resultType){var l=(e^a.resultType)&a.resultType;l&&(l&1&&oe(a),l&2&&pe(a),l&4&&qe(a),l&8&&re(a),l&16&&se(a),l&32&&te(a))}g?(a.Nb=d,a.Mb=b):(a.Nb=b,a.Mb=d);a.Oc=c;a.Qb=d;a.resultType=e}
@ -117,13 +117,13 @@ function $e(a,b){this.A-=10+(-1===this.O?0:1);if((a&3)<(b&3))return a=a&-4|b&3,E
function bf(a,b){var c=0;if(b){Ce(this);for(var d=1;d&this.C;){if(b&d){a=c;break}d<<=1;c++}}else Ee(this);this.A-=this.B.ej+3*c;return a}function cf(a,b){var c=0;if(b){Ce(this);for(var d=2==this.sa?15:31,e=1<<d;e;){if(b&e){a=d;break}e>>>=1;c++;d--}}else Ee(this);this.A-=this.B.ej+3*c;return a}function df(a,b){a&1<<(b&31)?ve(this):we(this);this.A-=-1===this.O?this.B.bl:this.B.$k;this.X|=2;return a}
function ef(a,b){var c=1<<(b&31);a&c?ve(this):we(this);this.A-=-1===this.O?this.B.xh:this.B.vh;return a^c}function ff(a,b){var c=1<<(b&31);a&c?ve(this):we(this);this.A-=-1===this.O?this.B.xh:this.B.vh;return a&~c}function gf(a,b){var c=1<<(b&31);a&c?ve(this):we(this);this.A-=-1===this.O?this.B.xh:this.B.vh;return a|c}function hf(a,b){var c=ce(this),d=w(this);null!=ad(this,a,b,!0)&&(v(this,c),v(this,d))}
function jf(a,b){ne(this,a,b,a-b|0,191,!0);this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Wf:this.B.Ib;this.X|=2;return a}function kf(a,b){ne(this,a,b,a-b|0,this.dataType|63,!0);this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Wf:this.B.Ib;this.X|=2;return a}function lf(a){var b=a-1|0;ne(this,a,1,b,this.dataType|62,!0);this.A-=2;return a&~this.C|b&this.C}function mf(a,b){var c=a[1]-b[1];c||(c=a[0]-b[0]);return c}
function nf(a,b,c){this.Ea=!1;if((c>>>=0)&&!(c<=b>>>0)){var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0<mf(a,c);){var g=b=c;b[0]+=g[0];b[1]+=g[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=mf(a,c)&&(b=a,g=c,b[0]-=g[0],b[1]-=g[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>>>=1;while(e);this.ha=d;this.Ga=a[0];this.Ea=!0}}function of(a){return a}
function nf(a,b,c){this.Ea=!1;if((c>>>=0)&&!(c<=b>>>0)){var d=0,e=1;c=[c>>>0,0];for(a=[a>>>0,b>>>0];0<mf(a,c);){var g=b=c;b[0]+=g[0];b[1]+=g[1];4294967295<b[0]&&(b[0]>>>=0,b[1]++);e+=e}do 0<=mf(a,c)&&(b=a,g=c,b[0]-=g[0],b[1]-=g[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>>>=1;while(e);this.ga=d;this.Ga=a[0];this.Ea=!0}}function of(a){return a}
function pf(a,b){a=this.M();var c=(b<<16>>16)*a|0;32767<c||-32768>c?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?21:24;return c&65535}function qf(a,b){var c,d;a=this.ra();2==this.sa?(d=(b<<16>>16)*(a<<16>>16)|0,c=32767<d||-32768>d):(d=b*a,c=2147483647<d||-2147483648>d);c?(ve(this),xe(this)):(we(this),ye(this));d&=this.C;this.A-=-1===this.O?21:24;return d}
function rf(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.gj:this.B.fj;return c&65535}function sf(a,b){var c=a*b;2147483647<c||-2147483648>c?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.gj:this.B.fj;return c|0}function tf(a){var b=a+1|0;ne(this,a,1,b,this.dataType|62);this.A-=2;return a&~this.C|b&this.C}
function Re(a,b,c){this.A-=this.B.Th+c;this.xa.eh=!0;c=Zc(this);var d=ce(this),e=w(this);a=this.xa.aj(a);-1!==a&&(v(this,c),v(this,d),v(this,e),null!=b&&v(this,b),this.kd=-1,this.za=a,this.Nc=this.xa.Ka+this.xa.qb|0,be(this))}function uf(a,b){this.A-=14+(-1===this.O?0:2);Ce(this);-1!==this.Ca.load(b,!0)&&this.Ca.sc>=this.xa.Ya&&this.Ca.sc>=(b&3)&&(Ee(this),a=this.Ca.Rb&-256,2<this.sa&&(a|=(this.Ca.ext&-65281)<<16));return a}
function vf(a,b){if(-1===this.O)return Fd.call(this),a;ke(this,this.Aa(this.O+this.sa));this.A-=this.B.he;return b}function wf(a){if(-1===this.O)return Fd.call(this),a;this.A-=this.B.ai;return this.O}function xf(a,b){if(-1===this.O)return Fd.call(this),a;le(this,this.Aa(this.O+this.sa));this.A-=this.B.he;return b}function yf(a,b){if(-1===this.O)return Fd.call(this),a;var c=this.Aa(this.O+this.sa);this.nc.load(c);this.A-=this.B.he;return b}
function zf(a,b){if(-1===this.O)return Fd.call(this),a;var c=this.Aa(this.O+this.sa);this.oc.load(c);this.A-=this.B.he;return b}function Af(a,b){this.A-=14+(-1===this.O?0:2);if(b&65528&&-1!==this.Ca.load(b,!0)&&(7168==(this.Ca.Rb&7168)||this.Ca.sc>=this.xa.Ya)&&this.Ca.sc>=(b&3))return Ee(this),this.Ca.qb;Ce(this);return a}function Bf(a,b){if(-1===this.O)return Fd.call(this),a;Wc(this,this.Aa(this.O+this.sa));this.A-=this.B.he;return b}
function Cf(a,b){this.A-=-1===this.Y?-1===this.O?this.B.hi:this.B.gi:this.B.ei;return b}function Df(a,b){return b}function Ef(){-1!==this.Y&&$d(this,2);return Cf.call(this,0,this.Wa)}function Ff(a,b){var c=b&65535,d=b>>>16,e=a&65535,g=a>>>16,l=c*e,e=(l>>>16)+d*e,p=e>>>16,e=(e&65535)+c*g;this.Ea=!0;this.ha=e<<16|l&65535;this.Ga=p+((e>>>16)+d*g)|0}function Gf(a,b){this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Ib:this.B.lc;return ue(this,a|b,128)}
function Cf(a,b){this.A-=-1===this.Y?-1===this.O?this.B.hi:this.B.gi:this.B.ei;return b}function Df(a,b){return b}function Ef(){-1!==this.Y&&$d(this,2);return Cf.call(this,0,this.Wa)}function Ff(a,b){var c=b&65535,d=b>>>16,e=a&65535,g=a>>>16,l=c*e,e=(l>>>16)+d*e,p=e>>>16,e=(e&65535)+c*g;this.Ea=!0;this.ga=e<<16|l&65535;this.Ga=p+((e>>>16)+d*g)|0}function Gf(a,b){this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Ib:this.B.lc;return ue(this,a|b,128)}
function Hf(a,b){this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Ib:this.B.lc;return ue(this,a|b,this.dataType)}function If(a){var b=this.Xa(),c=this.Xa();(a<<=this.sa>>2)&&t(this,u(this)+a);ad(this,b,c,!1)&&(a&&t(this,u(this)+a),this.tb.oa&65528&&this.tb.sc<this.xa.Ya&&7168!=(this.tb.Rb&7168)&&this.tb.load(0),this.cb.oa&65528&&this.cb.sc<this.xa.Ya&&7168!=(this.cb.Rb&7168)&&this.cb.load(0))}
function Jf(a,b){var c=a-b-Ae(this)|0;ne(this,a,b,c,191,!0);this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Ib:this.B.lc;return c&255}function Kf(a,b){var c=a-b-Ae(this)|0;ne(this,a,b,c,this.dataType|63,!0);this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Ib:this.B.lc;return c&this.C}function Lf(a){this.X|=1;this.Qa[this.ba()].call(this,a);this.A-=-1===this.O?this.B.dl:this.B.cl}function Mf(){return te(this)?1:0}function Nf(){return oe(this)?1:0}function Of(){return oe(this)?0:1}
function Pf(){return re(this)?1:0}function Qf(){return re(this)?0:1}function Rf(){return oe(this)||re(this)?1:0}function Sf(){return oe(this)||re(this)?0:1}function Tf(){return se(this)?1:0}function Uf(){return se(this)?0:1}function Vf(){return pe(this)?1:0}function Wf(){return pe(this)?0:1}function Xf(){return!se(this)!=!te(this)?1:0}function Yf(){return!se(this)!=!te(this)?0:1}function Zf(){return re(this)||!se(this)!=!te(this)?1:0}function $f(){return re(this)||!se(this)!=!te(this)?0:1}
@ -137,7 +137,7 @@ function zg(a,b){this.A-=-1===this.Y?-1===this.O?this.B.Wb:this.B.Ib:this.B.lc;r
function Fg(){var a=this.ba();this.A-=(-1===this.O?this.B.sg:this.B.rg)+(a<<this.B.tg);return a}function Gg(){return null}function Uc(a,b,c,d){if(this.ma.ud){var e=!1;if(80186<=this.qa)if(0>this.kd)E(this,this.Ba-this.xa.Ka),e=!0;else if(8!=this.kd)b=0,a=8,e=!0;else{Hg.call(this,-1,0,c);Nd(this);return}Hg.call(this,a,b,c)&&(e=!1);e&&Re.call(this,this.kd=a,b,d||0);this.X|=3}else this.Fa("Fault "+k(a)+" blocked by Debugger",1073741824),E(this,this.Ba-this.xa.Ka)}
function Pd(a,b,c){this.Ud=a;a=0;b&&(a|=1);c&&(a|=2);3==this.xa.Ya&&(a|=4);Uc.call(this,14,a)}function Hg(a,b,c){var d=32,e=Ge(this,this.za);204!=e||this.Jd||(c=!1,d|=1);983040<=this.za&&1048575>=this.za&&(c=!1);if(80386==this.qa&&13==a||this.ta(d|-2147483648))c=!0;if(this.ta(d)||c)a=(c?"\n":"")+"Fault "+k(a)+(null!=b?" ("+ga(b)+")":"")+" on opcode "+k(e)+" at "+Ig(w(this),ce(this))+" (%"+h(this.za,6)+")",b=this.ma.zb,this.Fa(a,d)?c&&(c=b,this.ea.Pb()):(this.Pa(a),this.Pb());return c}
function Dd(){this.pc[this.ba()].call(this)}function Gd(){v(this,u(this)&this.C);this.A-=this.B.tc}function kd(){var a=u(this)&this.C;v(this,this.F&this.C);v(this,this.G&this.C);v(this,this.H&this.C);v(this,this.D&this.C);v(this,a);v(this,this.L&this.C);v(this,this.K&this.C);v(this,this.J&this.C);this.A-=this.B.oi}
function ld(){this.J=this.J&~this.C|this.Xa();this.K=this.K&~this.C|this.Xa();this.L=this.L&~this.C|this.Xa();t(this,u(this)+this.sa);this.D=this.D&~this.C|this.Xa();this.H=this.H&~this.C|this.Xa();this.G=this.G&~this.C|this.Xa();this.F=this.F&~this.C|this.Xa();this.A-=this.B.mi}function md(){this.aa[this.ba()].call(this,af)}function Id(){this.ua[this.ba()].call(this,$e)}function Jd(){this.X|=20;this.P=this.R=this.nc;this.A-=this.B.Jc}
function ld(){this.J=this.J&~this.C|this.Xa();this.K=this.K&~this.C|this.Xa();this.L=this.L&~this.C|this.Xa();t(this,u(this)+this.sa);this.D=this.D&~this.C|this.Xa();this.H=this.H&~this.C|this.Xa();this.G=this.G&~this.C|this.Xa();this.F=this.F&~this.C|this.Xa();this.A-=this.B.mi}function md(){this.aa[this.ba()].call(this,af)}function Hd(){this.ua[this.ba()].call(this,$e)}function Jd(){this.X|=20;this.P=this.R=this.nc;this.A-=this.B.Jc}
function Kd(){this.X|=20;this.P=this.R=this.oc;this.A-=this.B.Jc}function Ld(){this.X|=4096;this.V&4096||(this.sa^=6,this.C^=-65536,ae(this));this.A-=this.B.Jc}function Md(){this.X|=8192;this.V&8192||(this.Zc^=6,this.ca^=-65536,Rd(this));this.A-=this.B.Jc}function nd(){v(this,this.ra());this.A-=this.B.tc}function od(){this.aa[this.ba()].call(this,qf)}function pd(){v(this,this.M());this.A-=this.B.tc}function qd(){this.aa[this.ba()].call(this,pf)}
function rd(){var a=1,b=0,c=5;this.V&192&&(a=this.G&this.ca,b=1,this.V&256&&(c=4));if(a--){var d=Vb(this.va,this.H&65535,this.za-b-1);this.Lc(this.cb.hc(this.J&this.ca,1),d);this.J=this.J&~this.ca|this.J+(this.fa&1024?-1:1)&this.ca;this.A-=c;this.G=this.G&~this.ca|this.G-b&this.ca;a&&(this.za=this.Ba,this.X|=256)}}
function sd(){var a=1,b=0,c=5;this.V&192&&(a=this.G&this.ca,b=1,this.V&256&&(c=4));if(a--){for(var d=this.za-b-1,e=0,g=0,l=0;l<this.sa;l++)e|=Vb(this.va,this.H&65535,d)<<g,g+=8;d=e;this.yb(this.cb.hc(this.J&this.ca,this.sa),d);this.J=this.J&~this.ca|this.J+(this.fa&1024?-this.sa:this.sa)&this.ca;this.A-=c;this.G=this.G&~this.ca|this.G-b&this.ca;a&&(this.za=this.Ba,this.X|=256)}}
@ -146,7 +146,7 @@ function ud(){var a=1,b=0,c=5;this.V&192&&(a=this.G&this.ca,b=1,this.V&256&&(c=4
function Kg(){var a=this.M();te(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Lg(){var a=this.M();oe(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}function Mg(){var a=this.M();oe(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Ng(){var a=this.M();re(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}function Og(){var a=this.M();re(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}
function Pg(){var a=this.M();oe(this)||re(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}function Qg(){var a=this.M();oe(this)||re(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Rg(){var a=this.M();se(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}function Sg(){var a=this.M();se(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Tg(){var a=this.M();pe(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}
function Ug(){var a=this.M();pe(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Vg(){var a=this.M();!se(this)!=!te(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}function Wg(){var a=this.M();!se(this)==!te(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}function Xg(){var a=this.M();re(this)||!se(this)!=!te(this)?(E(this,w(this)+a),this.A-=this.B.Ua):this.A-=this.B.Va}
function Yg(){var a=this.M();re(this)||!se(this)!=!te(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Zg(){this.kb[this.ba()].call(this,$g,this.ba);this.A-=-1===this.Y?1:this.B.pf}function xd(){this.kb[this.ba()].call(this,ah,Fg)}function yd(){this.Ma[this.ba()].call(this,2==this.sa?bh:ch,Fg)}function dh(){var a=Le(this)<<(this.sa>>2),b=this.Xa();E(this,b);a&&t(this,u(this)+a);this.A-=this.B.ui}function eh(){var a=this.Xa();E(this,a);this.A-=this.B.ri}
function Yg(){var a=this.M();re(this)||!se(this)!=!te(this)?this.A-=this.B.Va:(E(this,w(this)+a),this.A-=this.B.Ua)}function Zg(){this.kb[this.ba()].call(this,$g,this.ba);this.A-=-1===this.Y?1:this.B.pf}function vd(){this.kb[this.ba()].call(this,ah,Fg)}function yd(){this.Ma[this.ba()].call(this,2==this.sa?bh:ch,Fg)}function dh(){var a=Le(this)<<(this.sa>>2),b=this.Xa();E(this,b);a&&t(this,u(this)+a);this.A-=this.B.ui}function eh(){var a=this.Xa();E(this,a);this.A-=this.B.ri}
function zd(){var a=Le(this),b=this.ba()&31;this.A-=11;v(this,this.L);var c=u(this)&this.C;if(0<b){for(this.A-=(b<<2)+(1<b?1:0);--b;)this.L=this.L&~this.C|this.L-this.sa&this.C,v(this,Yc(this,this.Da,this.L&this.C));v(this,c)}this.L=this.L&~this.C|c;t(this,u(this)&~this.Da.ca|u(this)-a&this.Da.ca)}function Ad(){t(this,u(this)&~this.Da.ca|this.L&this.Da.ca);this.L=this.L&~this.C|this.Xa()&this.C;this.A-=5}function fh(){If.call(this,Le(this));this.A-=this.B.ti}
function gh(){If.call(this,0);this.A-=this.B.si}function hh(){this.aa[this.ba()].call(this,of);this.A-=8}function ih(){this.X|=36;this.A-=this.B.Jc}function Bd(){Fd.call(this)}function jd(){Uc.call(this,6)}function Fd(){E(this,this.Ba-this.xa.Ka);var a;a=this.va;var b=this.za;a=a.ya[(b&a.O)>>>a.Sa].Oe(b&a.B,b);pb(this,"Undefined opcode "+k(a)+" at "+("0x"+h(this.za)));this.Pb()}
var fd=[function(){var a=this.ba();this.Qa[a].call(this,We)},function(){this.ua[this.ba()].call(this,Xe)},function(){this.Na[this.ba()].call(this,We)},function(){this.aa[this.ba()].call(this,Xe)},function(){this.F=this.F&-256|We.call(this,this.F&255,this.ba());this.A--},function(){this.F=this.F&~this.C|Xe.call(this,this.F&this.C,this.ra());this.A--},function(){v(this,this.cb.oa);this.A-=this.B.Sd},function(){le(this,this.Xa());this.A-=this.B.Xb},function(){this.Qa[this.ba()].call(this,Gf)},function(){this.ua[this.ba()].call(this,
@ -183,19 +183,19 @@ b/a<<8|b%a;ue(this,this.F,128);this.A-=this.B.uh}},function(){var a=this.ba();th
1&this.ca)&&re(this)?(E(this,w(this)+a),this.A-=this.B.dg):this.A-=this.B.eg},function(){var a=this.M();(this.G=this.G-1&this.ca)?(E(this,w(this)+a),this.A-=this.B.bi):this.A-=this.B.cg},function(){var a=this.M();this.G&this.ca?this.A-=this.B.eg:(E(this,w(this)+a),this.A-=this.B.dg)},function(){var a=this.ba();this.F=this.F&-256|Vb(this.va,a,this.za-2);this.A-=this.B.Yf},function(){var a=this.ba();this.F=Vb(this.va,a,this.za-2);this.F|=Vb(this.va,a+1,this.za-2)<<8;this.A-=this.B.Yf},function(){var a=
this.ba();Zb(this.va,a,this.F&255,this.za-2);this.A-=this.B.ng},function(){var a=this.ba();Zb(this.va,a,this.F&255,this.za-2);Zb(this.va,a+1,this.F>>8,this.za-2);this.A-=this.B.ng},function(){var a=this.ra(),b=w(this),a=b+a;v(this,b);E(this,a);this.A-=this.B.Bh},function(){var a=this.ra();E(this,w(this)+a);this.A-=this.B.Zf},function(){ad(this,this.ra(),Le(this));this.A-=this.B.Yh},function(){var a=this.M();E(this,w(this)+a);this.A-=this.B.Zf},function(){this.F=this.F&-256|Vb(this.va,this.H&65535,
this.za-1);this.A-=this.B.Xf},function(){this.F=Vb(this.va,this.H&65535,this.za-1);this.F|=Vb(this.va,this.H+1&65535,this.za-1)<<8;this.A-=this.B.Xf},function(){Zb(this.va,this.H&65535,this.F&255,this.za-1);this.A-=this.B.mg},function(){Zb(this.va,this.H&65535,this.F&255,this.za-1);Zb(this.va,this.H+1&65535,this.F>>8,this.za-1);this.A-=this.B.mg},ih,ih,function(){this.X|=132;this.A-=this.B.Jc},function(){this.X|=68;this.A-=this.B.Jc},function(){this.na|=4;this.A-=2;this.ea&&this.ta(-2147483648)?(this.za=
this.za+-1|0,this.Pb()):this.fa&512||(this.ea&&(this.za=this.za+-1|0),this.Pb())},function(){oe(this)?we(this):ve(this);this.A-=2},function(){this.Ea=!1;this.kb[this.ba()].call(this,nh,Gg);this.Ea&&(this.F=this.F&~this.C|this.ha&this.C)},function(){this.Ea=!1;this.Ma[this.ba()].call(this,oh,Gg);this.Ea&&(this.F=this.F&~this.C|this.ha&this.C,this.H=this.H&~this.C|this.Ga&this.C)},function(){we(this);this.A-=2},function(){ve(this);this.A-=2},function(){this.fa&=-513;this.A-=this.B.zh},function(){this.fa|=
this.za+-1|0,this.Pb()):this.fa&512||(this.ea&&(this.za=this.za+-1|0),this.Pb())},function(){oe(this)?we(this):ve(this);this.A-=2},function(){this.Ea=!1;this.kb[this.ba()].call(this,nh,Gg);this.Ea&&(this.F=this.F&~this.C|this.ga&this.C)},function(){this.Ea=!1;this.Ma[this.ba()].call(this,oh,Gg);this.Ea&&(this.F=this.F&~this.C|this.ga&this.C,this.H=this.H&~this.C|this.Ga&this.C)},function(){we(this);this.A-=2},function(){ve(this);this.A-=2},function(){this.fa&=-513;this.A-=this.B.zh},function(){this.fa|=
512;this.X|=4;this.A-=2},function(){this.fa&=-1025;this.A-=2},function(){this.fa|=1024;this.A-=2},function(){this.kb[this.ba()].call(this,gd,Gg)},function(){this.Ma[this.ba()].call(this,hd,Gg)}],$g=[We,Gf,Ue,Jf,Ye,sg,yg,jf],jh=[Xe,Hf,Ve,Kf,Ze,tg,zg,kf],kh=[function(a,b){this.A-=-1===this.Y?this.B.Xb:this.B.ni;return b},Ag,Ag,Ag,Ag,Ag,Ag,Ag],lh=[function(a,b){this.A-=-1===this.Y?this.B.fi:this.B.di;return b},Bg,Bg,Bg,Bg,Bg,Bg,Bg],ah=[function(a,b){var c=a,d=b&this.pa;if(d){var e;(d&=7)?(e=a<<d-1,c=
(a<<d|a>>8-d)&255):e=a<<7;ze(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e;(d&=7)?(e=a<<8-d,c=(a>>>d|e)&255):e=a;ze(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e=Ae(this);(d%=9)?(c=(a<<d|e<<d-1|a>>9-d)&255,e=a<<d-1):e<<=7;ze(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e=Ae(this);(d%=9)?(c=(a>>d|e<<8-d|a<<9-d)&255,e=a<<8-d):e<<=7;ze(this,c,e,128)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e=0;8<d?c=0:(e=a<<d-1,c=e<<
1&255);ue(this,c,128,e&128,(c^e)&128)}return c},function(a,b){var c=b&this.pa;c&&(c=8<c?0:a>>>c-1,a=c>>>1&255,ue(this,a,128,c&1,a&128));return a},Bg,function(a,b){var c=b&this.pa;c&&(9<c&&(c=9),c=a<<24>>24>>c-1,a=c>>1&255,ue(this,a,128,c&1));return a}],bh=[function(a,b){var c=a,d=b&this.pa;if(d){var e;(d&=15)?(e=a<<d-1,c=(a<<d|a>>16-d)&65535):e=a<<15;ze(this,c,e,32768)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e;(d&=15)?(e=a<<16-d,c=(a>>>d|e)&65535):e=a;ze(this,c,e,32768)}return c},function(a,
b){var c=a,d=b&this.pa;if(d){var e=Ae(this);(d%=17)?(c=(a<<d|e<<d-1|a>>17-d)&65535,e=a<<d-1):e<<=15;ze(this,c,e,32768)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e=Ae(this);(d%=17)?(c=(a>>d|e<<16-d|a<<17-d)&65535,e=a<<16-d):e<<=15;ze(this,c,e,32768)}return c},function(a,b){var c=a,d=b&this.pa;if(d){var e=0;16<d?c=0:(e=a<<d-1,c=e<<1&65535);ue(this,c,32768,e&32768,(c^e)&32768)}return c},function(a,b){var c=b&this.pa;c&&(c=16<c?0:a>>>c-1,a=c>>>1&65535,ue(this,a,32768,c&1,a&32768));return a},
Bg,function(a,b){var c=b&this.pa;c&&(17<c&&(c=17),c=a<<16>>16>>c-1,a=c>>1&65535,ue(this,a,32768,c&1));return a}],ch=[function(a,b){var c=a,d=b&this.pa;d&&(c=a<<d|a>>>32-d,ze(this,c,a<<d-1,-2147483648));return c},function(a,b){var c=a,d=b&this.pa;if(d){var e=a<<32-d,c=a>>>d|e;ze(this,c,e,-2147483648)}return c},function(a,b){var c=a,d=b&this.pa;d&&(c=Ae(this),c=a<<d|c<<d-1|a>>>32-d>>>1,ze(this,c,a<<d-1,-2147483648));return c},function(a,b){var c=a,d=b&this.pa;d&&(c=Ae(this),c=a>>>d|c<<32-d|a<<32-d<<
1,ze(this,c,a<<32-d,-2147483648));return c},function(a,b){var c=a,d=b&this.pa;d&&(d=a<<d-1,c=d<<1,ue(this,c,-2147483648,d&-2147483648,(c^d)&-2147483648));return c},function(a,b){var c=b&this.pa;c&&(c=a>>>c-1,a=c>>>1,ue(this,a,-2147483648,c&1,a&-2147483648));return a},Bg,function(a,b){var c=b&this.pa;c&&(c=a>>c-1,a=c>>1,ue(this,a,-2147483648,c&1));return a}],nh=[function(a,b){b=this.ba();ue(this,a&b,128);this.A-=-1===this.O?this.B.Ag:this.B.zg;this.X|=2;return a},Bg,function(a){this.A-=-1===this.O?
this.B.Le:this.B.Ke;return a^255},function(a){var b=-a|0;ne(this,0,a,b,191,!0);this.A-=-1===this.O?this.B.Le:this.B.Ke;return b&255},function(a){this.Ea=!0;this.ha=(this.F&255)*a&65535;this.ha&65280?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.ji:this.B.ii;this.X|=2;return a},function(a){var b=(this.F<<24>>24)*(a<<24>>24)|0;this.Ea=!0;this.ha=b&65535;127<b||-128>b?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.Ph:this.B.Oh;this.X|=2;return a},function(a,b){if(!a)return Cg.call(this),
a;var c=(b=this.F&65535)/a;if(255<c)return Cg.call(this),a;this.Ea=!0;this.ha=c&255|(b%a&255)<<8;this.A-=-1===this.O?this.B.Hh:this.B.Gh;this.X|=2;return a},function(a,b){if(!a)return Cg.call(this),a;var c=a<<24>>24,d=(b=this.F<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.qa&&-128==d)return Cg.call(this),a;this.Ea=!0;this.ha=d&255|(b%c&255)<<8;this.A-=-1===this.O?this.B.Lh:this.B.Kh;this.X|=2;return a}],oh=[function(a,b){b=this.ra();ue(this,a&b,this.dataType);this.A-=-1===this.O?this.B.Ag:this.B.zg;this.X|=
2;return a},Bg,function(a){this.A-=-1===this.O?this.B.Le:this.B.Ke;return a^this.C},function(a){var b=-a|0;ne(this,0,a,b,this.dataType|63,!0);this.A-=-1===this.O?this.B.Le:this.B.Ke;return b&this.C},function(a,b){if(2==this.sa){b=this.F&65535;var c=b*a|0;this.Ea=!0;this.ha=c&65535;this.Ga=c>>16&65535}else Ff.call(this,a,this.F);this.Ga?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.li:this.B.ki;this.X|=2;return a},function(a,b){var c;if(2==this.sa)b=this.F&65535,c=(b<<16>>16)*
(a<<16>>16)|0,this.Ea=!0,this.ha=c&65535,this.Ga=c>>16&65535,c=32767<c||-32768>c;else{c=a;var d=this.F,e=!1;0>d&&(d=-d|0,e=!e);0>c&&(c=-c|0,e=!e);Ff.call(this,c,d);e&&(this.ha=~this.ha+1|0,this.Ga=~this.Ga+(this.ha?0:1)|0);c=this.Ga!=this.ha>>31}c?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.Rh:this.B.Qh;this.X|=2;return a},function(a,b){if(2==this.sa){if(!a)return Cg.call(this),a;b=65536*(this.H&65535)+(this.F&65535);var c=b/a|0;if(65536<=c)return Cg.call(this),a;this.Ea=!0;
this.ha=c&65535;this.Ga=b%a&65535}else{nf.call(this,this.F,this.H,a);if(!this.Ea)return Cg.call(this),a;this.ha|=0;this.Ga|=0}this.A-=-1===this.O?this.B.Jh:this.B.Ih;this.X|=2;return a},function(a,b){if(2==this.sa){if(!a)return Cg.call(this),a;var c=a<<16>>16,d=(b=this.H<<16|this.F&65535)/c|0;if(d!=d<<16>>16||8086==this.qa&&-32768==d)return Cg.call(this),a;this.Ea=!0;this.ha=d&65535;this.Ga=b%c&65535}else{var c=this.F,d=this.H,e=a,g=!1,l=!1;0>e&&(e=-e|0,g=!g);0>d&&(c=-c|0,d=~d+(c?0:1)|0,l=!0,g=!g);
nf.call(this,c,d,e);2147483647<this.ha&&(this.Ea=!1);g&&(this.ha=-this.ha);l&&(this.Ga=-this.Ga);if(!this.Ea)return Cg.call(this),a;this.ha|=0;this.Ga|=0}this.A-=-1===this.O?this.B.Nh:this.B.Mh;this.X|=2;return a}],gd=[function(a){var b=a+1|0;ne(this,a,1,b,190);this.A-=-1===this.O?this.B.Je:this.B.Ie;return b&255},function(a){var b=a-1|0;ne(this,a,1,b,190,!0);this.A-=-1===this.O?this.B.Je:this.B.Ie;return b&255},Bg,Bg,Bg,Bg,Bg,Bg],hd=[function(a){var b=a+1|0;ne(this,a,1,b,this.dataType|62);this.A-=
this.B.Le:this.B.Ke;return a^255},function(a){var b=-a|0;ne(this,0,a,b,191,!0);this.A-=-1===this.O?this.B.Le:this.B.Ke;return b&255},function(a){this.Ea=!0;this.ga=(this.F&255)*a&65535;this.ga&65280?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.ji:this.B.ii;this.X|=2;return a},function(a){var b=(this.F<<24>>24)*(a<<24>>24)|0;this.Ea=!0;this.ga=b&65535;127<b||-128>b?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.Ph:this.B.Oh;this.X|=2;return a},function(a,b){if(!a)return Cg.call(this),
a;var c=(b=this.F&65535)/a;if(255<c)return Cg.call(this),a;this.Ea=!0;this.ga=c&255|(b%a&255)<<8;this.A-=-1===this.O?this.B.Hh:this.B.Gh;this.X|=2;return a},function(a,b){if(!a)return Cg.call(this),a;var c=a<<24>>24,d=(b=this.F<<16>>16)/c|0;if(d!=d<<24>>24||8086==this.qa&&-128==d)return Cg.call(this),a;this.Ea=!0;this.ga=d&255|(b%c&255)<<8;this.A-=-1===this.O?this.B.Lh:this.B.Kh;this.X|=2;return a}],oh=[function(a,b){b=this.ra();ue(this,a&b,this.dataType);this.A-=-1===this.O?this.B.Ag:this.B.zg;this.X|=
2;return a},Bg,function(a){this.A-=-1===this.O?this.B.Le:this.B.Ke;return a^this.C},function(a){var b=-a|0;ne(this,0,a,b,this.dataType|63,!0);this.A-=-1===this.O?this.B.Le:this.B.Ke;return b&this.C},function(a,b){if(2==this.sa){b=this.F&65535;var c=b*a|0;this.Ea=!0;this.ga=c&65535;this.Ga=c>>16&65535}else Ff.call(this,a,this.F);this.Ga?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.li:this.B.ki;this.X|=2;return a},function(a,b){var c;if(2==this.sa)b=this.F&65535,c=(b<<16>>16)*
(a<<16>>16)|0,this.Ea=!0,this.ga=c&65535,this.Ga=c>>16&65535,c=32767<c||-32768>c;else{c=a;var d=this.F,e=!1;0>d&&(d=-d|0,e=!e);0>c&&(c=-c|0,e=!e);Ff.call(this,c,d);e&&(this.ga=~this.ga+1|0,this.Ga=~this.Ga+(this.ga?0:1)|0);c=this.Ga!=this.ga>>31}c?(ve(this),xe(this)):(we(this),ye(this));this.A-=-1===this.O?this.B.Rh:this.B.Qh;this.X|=2;return a},function(a,b){if(2==this.sa){if(!a)return Cg.call(this),a;b=65536*(this.H&65535)+(this.F&65535);var c=b/a|0;if(65536<=c)return Cg.call(this),a;this.Ea=!0;
this.ga=c&65535;this.Ga=b%a&65535}else{nf.call(this,this.F,this.H,a);if(!this.Ea)return Cg.call(this),a;this.ga|=0;this.Ga|=0}this.A-=-1===this.O?this.B.Jh:this.B.Ih;this.X|=2;return a},function(a,b){if(2==this.sa){if(!a)return Cg.call(this),a;var c=a<<16>>16,d=(b=this.H<<16|this.F&65535)/c|0;if(d!=d<<16>>16||8086==this.qa&&-32768==d)return Cg.call(this),a;this.Ea=!0;this.ga=d&65535;this.Ga=b%c&65535}else{var c=this.F,d=this.H,e=a,g=!1,l=!1;0>e&&(e=-e|0,g=!g);0>d&&(c=-c|0,d=~d+(c?0:1)|0,l=!0,g=!g);
nf.call(this,c,d,e);2147483647<this.ga&&(this.Ea=!1);g&&(this.ga=-this.ga);l&&(this.Ga=-this.Ga);if(!this.Ea)return Cg.call(this),a;this.ga|=0;this.Ga|=0}this.A-=-1===this.O?this.B.Nh:this.B.Mh;this.X|=2;return a}],gd=[function(a){var b=a+1|0;ne(this,a,1,b,190);this.A-=-1===this.O?this.B.Je:this.B.Ie;return b&255},function(a){var b=a-1|0;ne(this,a,1,b,190,!0);this.A-=-1===this.O?this.B.Je:this.B.Ie;return b&255},Bg,Bg,Bg,Bg,Bg,Bg],hd=[function(a){var b=a+1|0;ne(this,a,1,b,this.dataType|62);this.A-=
-1===this.O?this.B.Je:this.B.Ie;return b&this.C},function(a){var b=a-1|0;ne(this,a,1,b,this.dataType|62,!0);this.A-=-1===this.O?this.B.Je:this.B.Ie;return b&this.C},function(a){v(this,w(this));E(this,a);this.A-=-1===this.O?this.B.Fh:this.B.Eh;this.X|=2;return a},function(a){if(-1===this.O)return Bg.call(this,a);hf.call(this,a,this.Aa(this.O+this.sa));this.A-=this.B.Ch;this.X|=2;return a},function(a){E(this,a);this.A-=-1===this.O?this.B.$h:this.B.Zh;this.X|=2;return a},function(a){if(-1===this.O)return Bg.call(this,
a);ad(this,a,this.Aa(this.O+this.sa));this.A-=this.B.Xh;this.X|=2;return a},function(a){var b=a;this.X&512&&(a=a-2&65535,80286>this.qa&&(b=a));v(this,b);this.A-=-1===this.O?this.B.tc:this.B.pi;this.X|=2;return a},Ag],Ed=Array(256);Ed[0]=function(){var a=this.ba();16>(a&56)&&(this.X|=1);this.Ma[a].call(this,this.ef,Gg)};Ed[1]=function(){var a=this.ba();a&16||(this.X|=1);this.Ma[a].call(this,ph,Gg)};Ed[2]=function(){this.aa[this.ba()].call(this,uf)};Ed[3]=function(){this.aa[this.ba()].call(this,Af)};
Ed[5]=function(){this.xa.Ya?Uc.call(this,13,0,!0):(Fe(this,this.Aa(2054)),this.J=this.Aa(2086),this.K=this.Aa(2088),this.L=this.Aa(2090),this.D=this.Aa(2094),this.H=this.Aa(2096),this.G=this.Aa(2098),this.F=this.Aa(2100),Vc(this.cb,2102,this.Aa(2084)),Vc(this.xa,2108,this.Aa(2082)),Vc(this.Da,2114,this.Aa(2080)),Vc(this.tb,2120,this.Aa(2078)),$c(this,this.Aa(2072)),E(this,this.Aa(2074)),t(this,this.Aa(2092)),this.Xc=this.Aa(2126)|this.bb(2128)<<16,this.Xd=this.Xc+this.Aa(2130),Vc(this.Sc,2132,this.Aa(2076)),
@ -781,13 +781,13 @@ a.sound&&(this.Qb=this.Qa=null,window&&(this.Qb=window.AudioContext||window.webk
f.Lb=function(a,b,c){switch(b){case "sw1":return this.wa[b]=c,Ah(this,b,c,this.V,{0:this.qa==th?"Bootable Floppy Drive":"Loop on POST",1:this.qa==th?"Reserved":"Coprocessor",2:"Base Memory Size",4:"Monitor Type",6:"Number of Floppy Drives"}),!0;case "sw2":if(this.qa==th)return this.wa[b]=c,Ah(this,b,c,this.Ca,{0:"Expansion Memory Size",4:"Reserved"}),!0;break;case "swdesc":return this.wa[b]=c,!0}return!1};
f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;this.la=a;this.P=vb(a,"Keyboard");this.yb=c.Z.pd/1193181;Ub(b,this,Bh);Yb(b,this,Ch);this.qa<yh?(Ub(b,this,Dh),Yb(b,this,Eh)):(Ub(b,this,Fh),Yb(b,this,Gh));if(d){var e=this;Hh(d,1024,function(){for(var a=0;a<e.$b.length;a++){for(var b=e.$b[a],c="PIC"+a+":",d=0;d<b.Bc.length;d++)c+=" IC"+(d+1)+"="+k(b.Bc[d]);c+=" IMR="+k(b.jd)+" IRR="+k(b.Tb)+" ISR="+k(b.Cc)+" DELAY="+b.Ge;e.ea.W(c)}});Hh(d,2048,function(){for(var a=0;a<e.R.length;a++){Ih(e,a);var b=
e.R[a],c="TIMER"+a+":",d=0;if(null!=b.md)for(var r=0;r<=b.md;r++)d|=b.pb[r]<<8*r;c+=" mode="+b.mode+" bytes="+b.md+" count="+ga(d);e.ea.W(c)}});Hh(d,4096,function(){for(var a="",b=0;64>b;b++){var c=13>=b?Jh(e,b):e.B[b];a&&(a+="\n");a+="CMOS["+k(b)+"]: "+k(c)}e.ea.W(a)})}de(c,26,this,this.Rk)};f.dc=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};f.cc=function(a){return a&&this.save?this.save():!0};
f.reset=function(a){var b;this.da=this.V;this.Ga=this.Ca;Kh(this);this.U=Array(this.lb);for(b=0;b<this.lb;b++)Lh(this,b);this.$b=Array(this.Ra);Mh(this,0,32);1<this.Ra&&Mh(this,1,160);this.Zb=this.Mb=null;this.R=Array(5180==this.qa?6:3);for(b=0;b<this.R.length;b++)Nh(this,b);this.Na=this.Nb=this.aa=this.kb=null;this.hb=0;if(this.qa>=yh){this.O=16;this.na=0;this.ha=16;this.Wa=0;this.pa=160;512<=Oh(this)&&(this.pa|=16);3==Ph(this)&&(this.pa|=64);5180==this.qa&&(this.pa|=12);this.ab=3;this.Ja=Array(8);
f.reset=function(a){var b;this.da=this.V;this.Ga=this.Ca;Kh(this);this.U=Array(this.lb);for(b=0;b<this.lb;b++)Lh(this,b);this.$b=Array(this.Ra);Mh(this,0,32);1<this.Ra&&Mh(this,1,160);this.Zb=this.Mb=null;this.R=Array(5180==this.qa?6:3);for(b=0;b<this.R.length;b++)Nh(this,b);this.Na=this.Nb=this.aa=this.kb=null;this.hb=0;if(this.qa>=yh){this.O=16;this.na=0;this.ga=16;this.Wa=0;this.pa=160;512<=Oh(this)&&(this.pa|=16);3==Ph(this)&&(this.pa|=64);5180==this.qa&&(this.pa|=12);this.ab=3;this.Ja=Array(8);
this.Ea=0;a&&(this.B=Array(64));Qh(this,this.qc);for(a=21;24>=a;a++)this.B[a]=0;for(a=14;46>a;a++)void 0===this.B[a]&&(this.B[a]=0);this.B[20]=this.da&(wh.Ue|2|xh.Sg|xh.Ue);this.B[16]=Rh(this,0)<<4|Rh(this,1);Sh(this)}};
function Qh(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.W("CMOS date invalid ("+b+"), using "+c)):b&&a.W("CMOS date: "+c);a.B[0]=c.getSeconds();a.B[1]=0;a.B[2]=c.getMinutes();a.B[3]=0;a.B[4]=c.getHours();a.B[5]=0;a.B[6]=c.getDay()+1;a.B[7]=c.getDate();a.B[8]=c.getMonth()+1;c=c.getFullYear();a.B[9]=c%100;c/=100;a.B[50]=c%10|c/10<<4;a.B[10]=38;a.B[11]=2;a.B[12]=0;a.B[13]=128;a.Ta=a.Ma=0;a.gc=a.xb=null}
function Jh(a,b){var c=a.B[b];if(10>b){var d=!1;4!=b&&5!=b||a.B[11]&2||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.B[11]&4||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else 10==b&&(a.B[b]^=128);return c}function Th(a){var b;void 0===b&&(b=a.xb);a.Ma=Dc(a.A,a.Ba)+b;a.B[11]&64&&Ic(a.A,b)}function Sh(a){for(var b=0,c=16;46>c;c++)b+=a.B[c];a.B[47]=b&255;a.B[46]=b>>8}
f.save=function(){var a=new ge(this);he(a,0,[this.V,this.Ca,this.da,this.Ga]);for(var b=[],c=0;c<this.U;c++){for(var d=this.U[c],e=d,g=[],l=0;l<e.Sb.length;l++){var p=e.Sb[l];g[l]=[p.xd,p.Cf,p.ic,p.ub,p.pb,p.mode,p.Ef,p.hm,p.im]}b[c]=[d.Md,d.Zg,d.Li,d.Bb,g]}he(a,1,[b]);b=[];for(c=0;c<this.$b.length;c++)d=this.$b[c],b[c]=[d.Ge,d.Bc,d.zd,d.jd,d.Tb,d.Cc,d.Yd,d.Ye];he(a,2,[b]);b=[];for(c=0;c<this.R.length;c++)d=this.R[c],b[c]=[d.ic,d.Ec,d.pb,d.$d,d.Mi,d.mode,d.Og,d.Od,d.md,d.od,d.af,d.be,d.cd];he(a,3,
[this.Mb,b,this.Zb]);he(a,4,[this.kb,this.aa,this.Nb,this.Na,this.hb]);this.qa>=yh&&(he(a,5,[this.O,this.na,this.ha,this.Wa,this.pa,this.ab]),he(a,6,[this.Ja[7],this.Ja,this.Ea,this.B,this.Ta,this.Ma]));return a.data()};
f.restore=function(a){var b,c;b=a[0];this.V=b[0];this.Ca=b[1];this.da=b[2];this.Ga=b[3];b=a[1];for(c=0;c<this.lb;c++)Lh(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.Ra;c++)Mh(this,c,0===c?32:160,b[0][c]);b=a[3];this.Mb=b[0];this.Zb=b[2];for(c=0;c<this.R.length;c++)Nh(this,c,b[1][c]);b=a[4];this.kb=b[0];this.aa=b[1];this.Nb=b[2];this.Na=b[3];this.hb=b[4];if(b=a[5])this.O=b[0],this.na=b[1],this.ha=b[2],this.Wa=b[3],this.pa=b[4],this.ab=b[5];if(b=a[6])this.Ja=b[1],this.Ja[7]=b[0],this.Ea=b[2],
[this.Mb,b,this.Zb]);he(a,4,[this.kb,this.aa,this.Nb,this.Na,this.hb]);this.qa>=yh&&(he(a,5,[this.O,this.na,this.ga,this.Wa,this.pa,this.ab]),he(a,6,[this.Ja[7],this.Ja,this.Ea,this.B,this.Ta,this.Ma]));return a.data()};
f.restore=function(a){var b,c;b=a[0];this.V=b[0];this.Ca=b[1];this.da=b[2];this.Ga=b[3];b=a[1];for(c=0;c<this.lb;c++)Lh(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.Ra;c++)Mh(this,c,0===c?32:160,b[0][c]);b=a[3];this.Mb=b[0];this.Zb=b[2];for(c=0;c<this.R.length;c++)Nh(this,c,b[1][c]);b=a[4];this.kb=b[0];this.aa=b[1];this.Nb=b[2];this.Na=b[3];this.hb=b[4];if(b=a[5])this.O=b[0],this.na=b[1],this.ga=b[2],this.Wa=b[3],this.pa=b[4],this.ab=b[5];if(b=a[6])this.Ja=b[1],this.Ja[7]=b[0],this.Ea=b[2],
this.B=b[3],this.Ta=b[4],this.Ma=b[5],Qh(this);return!0};var Uh=[0,null,null,0,Array(4)];function Lh(a,b,c){var d=a.U[b];d||(d={Sb:Array(4)});c=c&&5==c.length?c:Uh;d.Md=c[0];d.Zg=c[1];d.Li=c[2];d.Bb=c[3];d.Wk=b<<2;for(var e=0;e<d.Sb.length;e++)Vh(d,e,c[4][e]);a.U[b]=d}var Wh=[!0,[0,0],[0,0],[0,0],[0,0]];
function Vh(a,b,c){var d=a.Sb[b];d||(d={Cf:[0,0],ic:[0,0],ub:[0,0],pb:[0,0]});c=c&&8==c.length?c:Wh;d.xd=c[0];d.Cf[0]=c[1][0];d.Cf[1]=c[1][1];d.ic[0]=c[2][0];d.ic[1]=c[2][1];d.ub[0]=c[3][0];d.ub[1]=c[3][1];d.pb[0]=c[4][0];d.pb[1]=c[4][1];d.mode=c[5];d.Ef=c[6];d.controller=a;d.Zi=b;Xh(d,c[8],c[9]);a.Sb[b]=d}function Xh(a,b,c,d){"string"==typeof b&&(b=db(b));b&&(a.done=null,a.hm=b.id,a.im=c,a.Jf=b,a.jh=b[c],a.Eg=d)}var Yh=[0,Array(4)];
function Mh(a,b,c,d){var e=a.$b[b];e||(e={Bc:[null,null,null,null]});d=d&&8==d.length?d:Yh;e.port=c;e.qn=b<<3;e.Ge=d[0];e.Bc[0]=d[1][0];e.Bc[1]=d[1][1];e.Bc[2]=d[1][2];e.Bc[3]=d[1][3];e.zd=d[2];e.jd=d[3];e.Tb=d[4];e.Cc=d[5];e.Yd=d[6];e.Ye=d[7];a.$b[b]=e}var Zh=[[0,0],[0,0],[0,0],[0,0]];
@ -811,10 +811,10 @@ function Ih(a,b,c){var d=a.R[b];if(d.be&&(2!=b||a.aa&1)){var e=Dc(a.A,a.Ba),g=(e
function Mc(a,b){for(var c=0;c<a.R.length;c++)Ih(a,c,b);if(a.qa>=yh){var c=a.A.Z.pd,d=Dc(a.A,a.Ba);null==a.xb&&(a.Ta=Dc(a.A,a.Ba),a.gc=1024,a.xb=Math.floor(a.A.Z.pd/a.gc),Th(a));d>=a.Ma&&(a.B[12]|=64,a.B[11]&64&&(a.B[12]|=128,wi(a,8)),a.Ma=d+a.xb);a.B[0]==a.B[1]&&a.B[2]==a.B[3]&&a.B[4]==a.B[5]&&(a.B[12]|=32,a.B[11]&32&&(a.B[12]|=128,wi(a,8)));var e=d-a.Ta,g=Math.floor(e/c);if(g&&!(a.B[11]&128)){for(;g--;)if(60<=++a.B[0]&&(a.B[0]=0,60<=++a.B[2]&&(a.B[2]=0,24<=++a.B[4]))){a.B[4]=0;a.B[6]=a.B[6]%7+1;
var l;l=a.B[9];var p=ta[a.B[8]-1];28==p&&0===l%4&&(l%100||0===l%400)&&p++;l=p;++a.B[7]>l&&(a.B[7]=1,12<++a.B[8]&&(a.B[8]=1,a.B[9]=(a.B[9]+1)%100))}a.B[12]|=16;a.B[11]&16&&(a.B[12]|=128,wi(a,8))}a.Ta=d-e%c}}f.Ak=function(a,b){var c=this.kb;if(this.Na&16)if(this.aa&128)c=this.da;else if(this.P){var c=this.P,d=0;c.B.length&&(d=c.B[0]);c.ta()&&c.Fa("scan code "+k(d)+" delivered");c=d}m(this,a,null,b,"PPI_A",c);return c};f.Vl=function(a,b,c){m(this,a,b,c,"PPI_A");this.kb=b};
f.Bk=function(a,b){var c=this.aa;m(this,a,null,b,"PPI_B",c);return c};f.Wl=function(a,b,c){m(this,a,b,c,"PPI_B");Ci(this,b)};function Ci(a,b){var c=!!(b&2),d=!!(a.aa&2);a.aa=b;a.P&&Di(a.P,!(b&128),!!(b&64));c!=d&&Lc(a,c)}f.Ck=function(a,b){var c=0,c=this.qa==th?this.aa&4?c|this.Ga&15:c|this.Ga>>4&1:this.aa&8?c|this.da>>4:c|this.da&15;this.aa&1&&Ih(this,2).od&&(c=this.aa&2?c|32:c|16);m(this,a,null,b,"PPI_C",c,32896);return c};f.Xl=function(a,b,c){m(this,a,b,c,"PPI_C");this.Nb=b};
f.Dk=function(a,b){var c=this.Na;m(this,a,null,b,"PPI_CTRL",c);return c};f.Yl=function(a,b,c){m(this,a,b,c,"PPI_CTRL");this.Na=b};f.Pj=function(a,b){var c=this.Wa;m(this,a,null,b,"8042_OUTBUFF",c,16384);this.O&=-258;this.P&&Ei(this.P);return c};f.il=function(a,b,c){m(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.O&8)switch(this.na){case 96:Fi(this,b);break;case 209:Gi(this,b);break;default:if(Fi(this,this.ha&-17),this.P){a=-1;switch(b){case 255:a=250,Hi(this.P)}Ii(this,a)}}this.na=b;this.O&=-9};
f.Dk=function(a,b){var c=this.Na;m(this,a,null,b,"PPI_CTRL",c);return c};f.Yl=function(a,b,c){m(this,a,b,c,"PPI_CTRL");this.Na=b};f.Pj=function(a,b){var c=this.Wa;m(this,a,null,b,"8042_OUTBUFF",c,16384);this.O&=-258;this.P&&Ei(this.P);return c};f.il=function(a,b,c){m(this,a,b,c,"8042_INBUF.DATA",null,16384);if(this.O&8)switch(this.na){case 96:Fi(this,b);break;case 209:Gi(this,b);break;default:if(Fi(this,this.ga&-17),this.P){a=-1;switch(b){case 255:a=250,Hi(this.P)}Ii(this,a)}}this.na=b;this.O&=-9};
f.Qj=function(a,b){var c=this.aa&-209|(Dc(this.A)&64?16:0);m(this,a,null,b,"8042_RWREG",c,16384);return c};f.jl=function(a,b,c){m(this,a,b,c,"8042_RWREG",null,16384);Ci(this,b)};f.Rj=function(a,b){m(this,a,null,b,"8042_STATUS",this.O,16384);var c=this.O&255;this.O&256&&(this.O|=1,this.O&=-257);return c};
f.hl=function(a,b,c){m(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.na=b;this.O|=8;a=0;240<=this.na&&(a=this.na^15,this.na=240);switch(this.na){case 32:Ii(this,this.ha);break;case 173:Fi(this,this.ha|16);break;case 174:Fi(this,this.ha&-17);this.P&&Ei(this.P);break;case 170:this.P&&(a=this.P,a.B=[],a.ta()&&a.Fa("scan codes flushed"));Fi(this,this.ha|16);Ii(this,85);Gi(this,3);break;case 171:Ii(this,0);break;case 192:Ii(this,this.pa);break;case 208:Ii(this,this.ab);break;case 224:Ii(this,this.ha&16?
0:1);break;case 240:a&1&&Nd(this.A)}};function Fi(a,b){a.ha=b;a.O=a.O&-5|b&4;a.P&&Di(a.P,!!(b&8),!(b&16))}function Ii(a,b,c){0<=b&&(a.Wa=b,c?a.O|=1:(a.O&=-2,a.O|=256))}function Gi(a,b){a.ab=b;Fb(a.va,!!(b&2));b&1||Nd(a.A)}function Ji(a,b){a.qa<yh?wi(a,1,4):a.ha&16||a.O&257||(Ii(a,b,!0),Ki(a.P),wi(a,1,120))}f.ek=function(a,b){m(this,a,null,b,"CMOS.ADDR",this.Ea,4096);return this.Ea};f.xl=function(a,b,c){m(this,a,b,c,"CMOS.ADDR",null,4096);this.Ea=b;this.hb=b&128?0:128};
f.hl=function(a,b,c){m(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.na=b;this.O|=8;a=0;240<=this.na&&(a=this.na^15,this.na=240);switch(this.na){case 32:Ii(this,this.ga);break;case 173:Fi(this,this.ga|16);break;case 174:Fi(this,this.ga&-17);this.P&&Ei(this.P);break;case 170:this.P&&(a=this.P,a.B=[],a.ta()&&a.Fa("scan codes flushed"));Fi(this,this.ga|16);Ii(this,85);Gi(this,3);break;case 171:Ii(this,0);break;case 192:Ii(this,this.pa);break;case 208:Ii(this,this.ab);break;case 224:Ii(this,this.ga&16?
0:1);break;case 240:a&1&&Nd(this.A)}};function Fi(a,b){a.ga=b;a.O=a.O&-5|b&4;a.P&&Di(a.P,!!(b&8),!(b&16))}function Ii(a,b,c){0<=b&&(a.Wa=b,c?a.O|=1:(a.O&=-2,a.O|=256))}function Gi(a,b){a.ab=b;Fb(a.va,!!(b&2));b&1||Nd(a.A)}function Ji(a,b){a.qa<yh?wi(a,1,4):a.ga&16||a.O&257||(Ii(a,b,!0),Ki(a.P),wi(a,1,120))}f.ek=function(a,b){m(this,a,null,b,"CMOS.ADDR",this.Ea,4096);return this.Ea};f.xl=function(a,b,c){m(this,a,b,c,"CMOS.ADDR",null,4096);this.Ea=b;this.hb=b&128?0:128};
f.fk=function(a,b){var c=this.Ea&63,d=13>=c?Jh(this,c):this.B[c];this.ta(4352)&&m(this,a,null,b,"CMOS.DATA["+k(c)+"]",d,!0);null!=b&&12==c&&(this.B[c]&=15,d&128&&xi(this,8),d&64&&this.B[11]&64&&Th(this));return d};
f.yl=function(a,b,c){var d=this.Ea&63;this.ta(4352)&&m(this,a,b,c,"CMOS.DATA["+k(d)+"]",null,!0);a=b^this.B[d];if(13>=d){if(c=b,10>d){var e=!1;this.B[11]&4||(c=10*(c>>4)+(c&15),e=!0);if(4==d||5==d)e&&23<c&&(c+=48),this.B[11]&2||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.B[d]=c;11==d&&a&64&&b&64&&Th(this)};f.Tl=function(a,b,c){m(this,a,b,c,"NMI");this.hb=b};f.zl=function(a,b,c){m(this,a,b,c,"COPROC.CLEAR")};f.Al=function(a,b,c){m(this,a,b,c,"COPROC.RESET")};
f.Rk=function(a){if(this.ta(8192)&&mh(this.ea,26,a)){var b=this.A.F>>8;ee(this.A,a,function(a,d){return function(e){d=Dc(a.A)-d;var g,l=a.A.H&255,p=a.A.H>>8,q=a.A.H&255,r=a.A.H>>8;if(2==b||3==b)g=" CH(hour)="+ga(p)+" CL(min)="+k(l)+" DH(sec)="+k(r);else if(4==b||5==b)g=" CX(year)="+ga(a.A.G)+" DH(month)="+k(r)+" DL(day)="+k(q);l=a.ea;p=d;l.message("INT "+k(26)+": C="+(oe(l.A)?1:0)+(g||"")+" (cycles="+p+(e?",level="+(e+1):"")+")")}}(this,Dc(this.A)))}return!0};
@ -840,7 +840,7 @@ Qi.prototype.dc=function(a,b){b||this.reset();return!0};Qi.prototype.cc=function
Qi.prototype.reset=function(){if(!this.O&&!this.R&&this.U){var a=1024*Oh(this.U);this.B&&a!=this.B&&(Lb(this.va,this.O,this.B),this.P=!1);this.B=a}!this.P&&this.B&&Gb(this.va,this.O,this.B,1)&&(this.P=!0,this.status(Math.floor(this.B/1024)+"Kb allocated"),"ramCPQ"==this.Gd&&(this.controller=new Ri(this),Gb(this.va,Si,1,4,this.controller)));if(this.P){if(this.V||Sb(this.va,1138,4660),"ramCPQ"!=this.Gd&&this.U&&(a=this.U,a.B)){var b=1048576>this.O?21:23,c=a.B[b]|a.B[b+1]<<8,c=c+(this.B>>10);a.B[b]=
c&255;a.B[b+1]=c>>8;Sh(a)}}else ya("No RAM allocated")};function Ri(a){this.gm=a;this.Fi=Ti;this.tj=Ui;this.Rg=Vi;this.We=null}
var Si=-2134900736,Ti=65535,Ui=2575,Vi=2,Wi=[null,0],Xi=[function(a){var b=255;2>a?b=a&1?this.controller.tj>>8:this.controller.tj&255:4>a&&(b=a&1?this.controller.Rg>>8:this.controller.Rg&255);return b},null,null,function(a,b){var c=this.controller;if(a)2==a&&(c.Rg=c.Rg&-256|b);else if(b!=(c.Fi&255)){var d=c.gm.va;if(b&1)c.We&&(Jb(d,917504,131072,c.We),c.We=null);else{c.We||(c.We=Kb(d,917504,131072));var e=Kb(d,16646144,131072);Jb(d,917504,131072,e,b&2?1:Mb)}c.Fi=c.Fi&-256|b}},null,null];
Ri.prototype.Yi=function(){return Wi};Ri.prototype.kh=function(){return Xi};Ma(function(){for(var a=ib(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Qi(d);hb(d,c)}});function Yi(a){Ta.call(this,"Keyboard",a,Yi,65536);this.da=Ea("Mobi");this.na=Ea("MSIE");this.Fa("mobile keyboard support: "+(this.da?"true":"false"));this.aa=0;this.ha=this.fh=!1;this.O=[];this.pa=50;nb(this)}bb(Yi);
Ri.prototype.Yi=function(){return Wi};Ri.prototype.kh=function(){return Xi};Ma(function(){for(var a=ib(window.document,"pcjs","ram"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Qi(d);hb(d,c)}});function Yi(a){Ta.call(this,"Keyboard",a,Yi,65536);this.da=Ea("Mobi");this.na=Ea("MSIE");this.Fa("mobile keyboard support: "+(this.da?"true":"false"));this.aa=0;this.ga=this.fh=!1;this.O=[];this.pa=50;nb(this)}bb(Yi);
var W={sm:1,tm:3,um: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,om:65,pm:66,qm:67,vm:68,E:69,wm:70,zm:71,Am:72,Bm:73,Cm:74,Dm:75,Em:76,Fm:77,Gm:78,Hm:79,Im:80,Q:81,Jm:82,Nm:83,Sm:84,Wm:85,Xm:86,Ym:87,$m:88,an:89,bn:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,cn:97,dn:98,gn:99,d:100,e:101,hn:102,jn:103,kn:104,ln:105,nn:106,k:107,on:108,
pn:109,n:110,rn:111,p:112,q:113,r:114,sn:115,t:116,tn:117,un:118,vn:119,x:120,y:121,z:122,"{":123,"|":124,"}":125,"~":126},Zi={};Zi[186]=W[";"];Zi[187]=W["="];Zi[188]=W[","];Zi[189]=W["-"];Zi[190]=W["."];Zi[191]=W["/"];Zi[192]=W["`"];Zi[219]=W["["];Zi[220]=W["\\"];Zi[221]=W["]"];Zi[222]=W["'"];Zi[173]=W["-"];var $i={};$i[W["1"]]=W["!"];$i[W["2"]]=W["@"];$i[W["3"]]=W["#"];$i[W["4"]]=W.$;$i[W["5"]]=W["%"];$i[W["6"]]=W["^"];$i[W["7"]]=W["&"];$i[W["8"]]=W["*"];$i[W["9"]]=W["("];$i[W["0"]]=W[")"];
$i[186]=W[":"];$i[187]=W["+"];$i[188]=W["<"];$i[189]=W._;$i[190]=W[">"];$i[191]=W["?"];$i[192]=W["~"];$i[219]=W["{"];$i[220]=W["|"];$i[221]=W["}"];$i[222]=W['"'];$i[173]=W._;$i[61]=W["+"];$i[59]=W[":"];
@ -857,13 +857,13 @@ function Di(a,b,c){a.la!==c&&(a.la=a.Y=c)&&(a.R=!0);a.V!==b&&(a.V=b)&&!a.Y&&Ki(a
f.cc=function(a){return a&&this.save?this.save():!0};f.reset=function(){jj(this);this.ac=this.P=0;this.B=[];this.R=!0};f.save=function(){var a=new ge(this),b=0,c=[];c[b++]=this.la;c[b]=this.V;he(a,0,c);return a.data()};f.restore=function(a){return jj(this,a[0])};function jj(a,b){var c=0;void 0===b&&(b=[]);a.la=a.R=b[c++];a.V=b[c];return!0}
function gj(a,b,c,d){if(Y[b]){var e=Math.floor(b/1E3)&2;if(b=aj[b]||0){!e||b&85||(b>>=1);if(b&3584){if(!1===d)return!0;d=null}null==d?d=!((c?a.P:a.ac)&b):d||b&255&&(b=255);if(c){a.P&=~b;d&&(a.P|=b);c=b;var g,l;for(l in dj)d="led-"+l,e=dj[l],c&&c!=e||!(g=a.wa[d])||(g.style.backgroundColor=a.P&e?"#00ff00":"#000000")}else a.ac&=~b,d&&(a.ac|=b);return!0}}return!1}
function fj(a,b,c){if(Y[b]&&a.A&&a.A.ma.zb){aj[b]&&a.O.length&&0<a.O[0].qd&&(a.O[0].qd=0);for(var d,e=0;e<a.O.length;e++)if(d=a.O[e],d.le==b){if(!c||0<=d.qd){e=-1;break}0<e&&(0<a.O[0].qd&&(a.O[0].qd=0),a.O.splice(e,1));break}0>e||(e==a.O.length&&(d={},d.le=b,d.ac=a.ac,ij(a,b,!0),e++),0<e&&a.O.splice(0,0,d),d.$e=!0,d.qd=c?-1:aj[b]?0:1,kj(a,d))}}
function hj(a,b,c){if(!Y[b]||!(c||a.A&&a.A.ma.zb))return!1;for(var d=!1,e=0;e<a.O.length;e++){var g=a.O[e];if(g.le==b||g.le==$i[b]){a.O.splice(e,1);g.rj&&clearTimeout(g.rj);g.$e&&!c&&lj(a,g.le,!1);ij(a,b,!1);d=!0;break}}!a.O.length&&a.ha&&(gj(a,1020),a.ha=!1);return d}function kj(a,b){if(a.A&&a.A.ma.zb){if(lj(a,b.le,b.$e),b.qd){var c;if(0>b.qd){if(!b.$e){hj(a,b.le);return}b.$e=!1;c=a.pa}else c=1==b.qd++?500:100;b.rj=setTimeout(function(a){return function(){kj(a,b)}}(a),c)}}else hj(a,b.le,!0)}
function hj(a,b,c){if(!Y[b]||!(c||a.A&&a.A.ma.zb))return!1;for(var d=!1,e=0;e<a.O.length;e++){var g=a.O[e];if(g.le==b||g.le==$i[b]){a.O.splice(e,1);g.rj&&clearTimeout(g.rj);g.$e&&!c&&lj(a,g.le,!1);ij(a,b,!1);d=!0;break}}!a.O.length&&a.ga&&(gj(a,1020),a.ga=!1);return d}function kj(a,b){if(a.A&&a.A.ma.zb){if(lj(a,b.le,b.$e),b.qd){var c;if(0>b.qd){if(!b.$e){hj(a,b.le);return}b.$e=!1;c=a.pa}else c=1==b.qd++?500:100;b.rj=setTimeout(function(a){return function(){kj(a,b)}}(a),c)}}else hj(a,b.le,!0)}
function mj(a,b,c){var d=b;if(65<=b&&90>=b)!(a.ac&515)==c&&(d=b+32);else if(97<=b&&122>=b)!!(a.ac&515)==c&&(d=b-32);else if(!!(a.ac&3)==c){if(a=$i[b])d=a}else if(a=Zi[b])d=a;return d}f.Fg=function(a){a||(this.ac&=-256)};
function ej(a,b,c){var d=!0,e=!1,g=!1,l=b.keyCode,p=mj(a,l,!0);a.fh&&p==W["`"]&&(l=p=27);if(Y[l+1E3])if(p+=1E3,2==b.location&&(p+=2E3),gj(a,p,!1,c)){if(20==l||144==l||145==l)a.na||(c=e=!0);if(!(c||91!=l&&93!=l))for(var q=0;q<a.O.length;q++){var r=a.O[q];r.$e=!1;0<r.qd&&(r.qd=0)}}else 8==l&&8==(a.ac&40)&&(p=4008),d=!1;else if(Y[p]&&a.ac&60&&(d=!1),d&&c||a.ac&192)g=!0;d||b.preventDefault();g||a.da&&d||(c?fj(a,p,e):hj(a,p)||(b=mj(a,l,!1),b!=p&&hj(a,b)));return d}
function lj(a,b,c){gj(a,b,!0,c);var d=Y[b]||Y[b+1E3];if(void 0!==d){14==d&&40==(a.ac&40)&&(d=83);var e=[],g=d&255;e.push(g|(c?0:128));for(b=65<=b&&90>=b||97<=b&&122>=b;d>>>=8;){var l=0,p=d&255;224==g||225==g?e.push(g|(c?0:128)):(42==p?a.P&3||a.P&512&&b||(l=p):29==p?a.P&12||(l=p):56==p?a.P&48||(l=p):e.push(g|(c?0:128)),l&&(c?e.unshift(l):e.push(l|128)))}for(c=0;c<e.length;c++)d=a,g=e[c],d.B&&(20>d.B.length?(d.ta()&&d.Fa("scan code "+k(g)+" buffered"),d.B.push(g),1==d.B.length&&d.U&&Ji(d.U,g)):(20==
d.B.length&&d.B.push(255),d.Fa("scan code buffer overflow")))}}Ma(function(){for(var a=ib(window.document,"pcjs","keyboard"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Yi(d);hb(d,c)}});
function Z(a,b,c,d,e){Ta.call(this,"Video",a,Z,262144);this.qa=a.model;this.fb=nj[this.qa]||oj;this.ld=a.memory||0;this.sf=a.switches;this.Ga=a.mode;if(void 0===this.Ga||void 0===pj[this.Ga])this.Ga=qj;this.Vc=a.charCols;this.td=a.charRows;if(void 0===this.Vc||void 0===this.td)this.Vc=pj[this.Ga][0],this.td=pj[this.Ga][1];this.Ca=a.screenWidth;this.Na=a.screenHeight;this.jm=a.scale;this.Ei=12<=Math.round(this.Ca/this.Vc);this.km=a.touchScreen;this.ua=b;this.na=c;this.V=(this.nm=d)||b||null;this.kb=
null;this.Di=a.autoLock;this.ib=this.Yb=0;this.Ta=[];this.Ma=Array(this.fb==Pi?256:16);this.ce=this.hb=!1;var g=this;this.df=Ea("Gecko/");b=["","moz","webkit","ms"];if(this.ha=e)if(this.ha.se=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ha.se){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){rj(g,document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||
null;this.Di=a.autoLock;this.ib=this.Yb=0;this.Ta=[];this.Ma=Array(this.fb==Pi?256:16);this.ce=this.hb=!1;var g=this;this.df=Ea("Gecko/");b=["","moz","webkit","ms"];if(this.ga=e)if(this.ga.se=e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen,this.ga.se){for(e=0;e<b.length;e++)if(c=b[e]+"fullscreenchange","on"+c in document){document.addEventListener(c,function(){rj(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(){rj(g,null)},!1);break}}this.V&&(this.V.onfocus=function(){return g.Fg(!0)},this.V.onblur=function(){return g.Fg(!1)},this.V.ee=this.V.requestPointerLock||this.V.mozRequestPointerLock||this.V.webkitRequestPointerLock,this.V.sj=this.V.exitPointerLock||this.V.mozExitPointerLock||this.V.webkitExitPointerLock,this.V.ee&&(e=function(){var a=document.pointerLockElement===
g.V||document.mozPointerLockElement===g.V||document.webkitPointerLockElement===g.V;g.kb&&(g.kb.R=a,g.P&&(g.P.fh=a));var b=g.wa.lockPointer;b&&(b.textContent=a?"Press Esc to Unlock Pointer":g.mm)},"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"!=ja(a)&&
(a=xa()+"/api/v1/dump?file="+a+"&format=bytes"),wa(a,!0,null,this,this.fl)}bb(Z);var oj=1,Pi=7,nj={mda:1,cga:3,ega:5,vga:7},qj=7,sj={2:{Sf:15700,Rf:208,Gg:85,Hg:96},3:{Sf:18432,Rf:364,Gg:85,Hg:96},4:{Sf:21850,Rf:364,Gg:85,Hg:96},7:{Sf:16700,Rf:480,Gg:85,Hg:83}},tj={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]},pj=[,[40,25,1,0,3],,[80,25,1,0,3],[320,200,8,192],,[640,200,16,192]];pj[qj]=[80,25,1,0,1];
@ -876,25 +876,25 @@ q=0;q<e.length-1;){for(var r=e[q++],x=e[q++];r--;)p[l]=x,l+=2;l==d&&(l=1)}this.$
0;this.Zk=this.rh*g.Hg/100|0;this.sh=c[7]||0}}
var Ej=18,Fj=25,Gj="HTOTAL HDISP HSYNC_POS HSYNC_WIDTH VTOTAL VTOTAL_ADJ VDISP VSYNC_POS INTERLACE_POS MAX_SCAN CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO LIGHT_PEN_HI LIGHT_PEN_LO".split(" "),Hj="HTOTAL HDISP_END HBLANK_START HBLANK_END HRETRACE_START HRETRACE_END VTOTAL OVERFLOW PRESET_SCAN MAX_SCAN CURSOR_START CURSOR_END START_ADDR_HI START_ADDR_LO CURSOR_ADDR_HI CURSOR_ADDR_LO VRETRACE_START VRETRACE_END VDISP_END OFFSET UNDERLINE VBLANK_START VBLANK_END MODE_CTRL LINE_COMPARE".split(" "),Ij=
"PAL00 PAL01 PAL02 PAL03 PAL04 PAL05 PAL06 PAL07 PAL08 PAL09 PAL0A PAL0B PAL0C PAL0D PAL0E PAL0F MODE OVERSCAN PLANES HPAN".split(" "),Jj=["RESET","CLOCKING","MAPMASK","CHARMAP","MEMMODE"],Pj="SRESET ESRESET COLORCMP DATAROT READMAP MODE MISC COLORDC BITMASK".split(" "),Qj=[,,1024,5120];Qj[16]=1280;Qj[512]=0;Qj[1024]=32;Qj[1536]=96;Qj[2560]=160;Qj[3584]=224;Qj[768]=16;Qj[4096]=1;Qj[8192]=2;Qj[24576]=98;Qj[40960]=162;Qj[57344]=226;var Rj=[];
Rj[1024]=function(a){a+=this.B;return(this.controller.vb=this.ga[a])>>this.controller.xi&255};Rj[17408]=function(a){return(this.controller.vb=this.ga[(a&-4)+this.B])>>((a&3)<<3)&255};Rj[5120]=function(a){a+=this.B;var b=this.controller.vb=this.ga[a&-2];return(a&1?b>>8:b)&255};Rj[1280]=function(a){a+=this.B;a=this.controller.vb=this.ga[a];for(var b=this.controller.nh,c=this.controller.mh&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};
Rj[0]=function(a,b){var c=a+this.B,d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[32]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[96]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d&=this.controller.vb;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[160]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d|=this.controller.vb;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[224]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d^=this.controller.vb;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};Rj[4]=function(a,b){var c=(a&-4)+this.B,d=(a&3)<<3,d=b<<d&this.controller.jb|this.ga[c]&~(255<<d&this.controller.jb);this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[16]=function(a,b){a+=this.B;var c,d=a&-2;c=(b|b<<8|b<<16|b<<24)&this.controller.Db|this.controller.vb&~this.controller.Db;var e=this.controller.jb&(d==a?16711935:-16711936);c=c&e|this.ga[d]&~e;this.ga[d]!=c&&(this.ga[d]=c,this.Za=!0)};Rj[1]=function(a){a=a+this.B;var b=this.ga[a]&~this.controller.jb|this.controller.vb&this.controller.jb;this.ga[a]!=b&&(this.ga[a]=b,this.Za=!0)};
Rj[17]=function(a){a+=this.B;var b=a&-2;a=this.controller.jb&(b==a?16711935:-16711936);a=this.ga[b]&~a|this.controller.vb&a;this.ga[b]!=a&&(this.ga[b]=a,this.Za=!0)};Rj[2]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[98]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d&this.controller.vb,d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};Rj[162]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d|this.controller.vb,d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[226]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d^this.controller.vb,d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};Rj[3]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Db;d=this.controller.qf&d|this.controller.vb&~d;d=d&this.controller.jb|this.ga[c]&~this.controller.jb;this.ga[c]!=d&&(this.ga[c]=d,this.Za=!0)};
Rj[1024]=function(a){a+=this.B;return(this.controller.vb=this.ha[a])>>this.controller.xi&255};Rj[17408]=function(a){return(this.controller.vb=this.ha[(a&-4)+this.B])>>((a&3)<<3)&255};Rj[5120]=function(a){a+=this.B;var b=this.controller.vb=this.ha[a&-2];return(a&1?b>>8:b)&255};Rj[1280]=function(a){a+=this.B;a=this.controller.vb=this.ha[a];for(var b=this.controller.nh,c=this.controller.mh&b,d=0,e=128;e;)(a&b)==c&&(d|=e),c>>>=1,b>>>=1,e>>=1;return d};
Rj[0]=function(a,b){var c=a+this.B,d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[32]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[96]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d&=this.controller.vb;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[160]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d|=this.controller.vb;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[224]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Ad|this.controller.Td;d^=this.controller.vb;d=d&this.controller.Db|this.controller.vb&~this.controller.Db;d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};Rj[4]=function(a,b){var c=(a&-4)+this.B,d=(a&3)<<3,d=b<<d&this.controller.jb|this.ha[c]&~(255<<d&this.controller.jb);this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[16]=function(a,b){a+=this.B;var c,d=a&-2;c=(b|b<<8|b<<16|b<<24)&this.controller.Db|this.controller.vb&~this.controller.Db;var e=this.controller.jb&(d==a?16711935:-16711936);c=c&e|this.ha[d]&~e;this.ha[d]!=c&&(this.ha[d]=c,this.Za=!0)};Rj[1]=function(a){a=a+this.B;var b=this.ha[a]&~this.controller.jb|this.controller.vb&this.controller.jb;this.ha[a]!=b&&(this.ha[a]=b,this.Za=!0)};
Rj[17]=function(a){a+=this.B;var b=a&-2;a=this.controller.jb&(b==a?16711935:-16711936);a=this.ha[b]&~a|this.controller.vb&a;this.ha[b]!=a&&(this.ha[b]=a,this.Za=!0)};Rj[2]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[98]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d&this.controller.vb,d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};Rj[162]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d|this.controller.vb,d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
Rj[226]=function(a,b){var c=a+this.B,d=Aj[b&15],d=d^this.controller.vb,d=d&this.controller.Db|this.controller.vb&~this.controller.Db,d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};Rj[3]=function(a,b){var c=a+this.B;b=b>>this.controller.Ic|b<<8-this.controller.Ic&255;var d;d=(b|b<<8|b<<16|b<<24)&this.controller.Db;d=this.controller.qf&d|this.controller.vb&~d;d=d&this.controller.jb|this.ha[c]&~this.controller.jb;this.ha[c]!=d&&(this.ha[c]=d,this.Za=!0)};
function Sj(a){var b=[];if(void 0!==a.fb){b[0]=a.jc;b[1]=a.Kc;b[2]=a.Pe;b[3]=a.Ha;b[4]=a.ec|a.Kg<<8;b[5]=a.mb;if(5<=a.fb){var c=[];c[0]=a.nd;c[1]=a.Cd;c[2]=a.Ac;c[3]=a.Ng;c[4]=a.Re;c[5]=a.wf;c[6]=a.Ed;c[7]=a.ie;c[8]=a.mj;c[9]=a.nj;c[10]=a.Dd;c[11]=a.Wd;c[12]=a.vb;c[13]=[a.ib,a.Yb,a.ld];var d;a:if(d=a.$c){var e=0,g=[];if(void 0!==d[0])for(var l=0;2>l;l++)for(var p=l;p<d.length;){for(var q=d[p],r=p+2;r<d.length&&d[r]===q;)r+=2;g[e++]=r-p>>1;g[e++]=q;p=r}if(g.length<d.length){d=g;break a}}c[14]=d;c[15]=
a.Pf|-2147483648;c[16]=a.xi;c[17]=a.jb;c[18]=a.Ic;c[19]=a.Db;c[20]=a.qf;c[21]=a.Ad;c[22]=a.Td;c[23]=a.mh;c[24]=a.nh;c[25]=a.uf;a.fb==Pi&&(c[26]=a.Ci,c[27]=a.Bi,c[28]=a.Rc,c[29]=a.mc,c[30]=a.Lg,c[31]=a.Qe);b[6]=c}b[7]=a.sh}return b}function Tj(a,b,c,d,e){if(d){var g,l="";for(g=0;g<e.length;g++)l&&(l+="\n"),l+=b+"["+k(g)+"]: "+ma(e[g],19)+k(d[g])+(g===c?"*":"");a.ea.W(l)}else a.ea.W(b+": "+k(c))}Cj.prototype.Yi=function(a){return[this.$c,a-this.ib]};Cj.prototype.kh=function(){return this.A};
Cj.prototype.Qg=function(a){if(null!=a&&a!=this.Pf){var b=a&65280,c=Rj[b];c||b&4096&&(c=Rj[4096]);var b=a&255,d=Rj[b];d||b&16&&(d=Rj[16]);this.A||(this.A=Array(6));this.A[0]=c;this.A[3]=d;this.Pf=a}};var Dj=[];Dj[oj]=["MDA",948,720896,4096,0,3];Dj[3]=["CGA",980,753664,16384,0,2];Dj[5]=["EGA",980,753664,16384,65536,4];Dj[Pi]=["VGA",980,753664,16384,262144,7];f=Z.prototype;
f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;3!=nj[this.qa]&&(Ub(b,this,Uj),Yb(b,this,Vj));nj[this.qa]!=oj&&(Ub(b,this,Wj),Yb(b,this,Xj));5<=this.fb&&(Ub(b,this,Yj),Yb(b,this,Zj));this.fb==Pi&&(Ub(b,this,ak),Yb(b,this,bk));if(d){var e=this;Hh(d,262144,function(a){if(e.O)if(a){var b=e.O;if(b.$c){a=fa(a);a=void 0!==a?a-b.ib:b.B||0;0>a&&(a=0);for(var c="",d=0;8>d;d++){for(var g=h(b.ib+a)+":",G=0;8>G&&a<b.$c.length;G++)var D=b.$c[a++],g=g+(" "+h(D));c&&(c+="\n");c+=g}c&&b.ea.W(c);b.B=a}else b.ea.W("no buffer")}else e.ea.W("BIOSMODE: "+
k(e.lb)),b=e.O,Tj(b,"CRTC",b.ec,b.mb,b.Df),5<=b.fb&&(Tj(b," GRC",b.Dd,b.Wd,b.Xg),Tj(b," SEQ",b.Ed,b.ie,b.Yg),Tj(b," ATC",b.Cd,b.Ac,b.Wg),b.ea.W(" ATCDATA: "+b.nd),Tj(b," FEAT",b.wf),Tj(b," MISC",b.Re),Tj(b," STATUS0",b.Ng)),Tj(b," STATUS1",b.Ha),b.fb!=oj&&3!=b.fb||Tj(b," MODEREG",b.Kc),3==b.fb&&Tj(b," COLOR",b.Pe),5<=b.fb&&(b.ea.W(" LATCHES: 0x"+h(b.vb)),b.ea.W(" ACCESS: "+ga(b.Pf)),b.ea.W("Use 'dump video [addr]' to dump video memory"));else e.ea.W("no active video card")})}if((this.P=
vb(a,"Keyboard"))&&this.ua){for(var g in this.wa)0<g.indexOf("lock")&&this.P.Lb("led",g,this.wa[g]);this.P.Lb(this.nm?"textarea":"canvas","kbd",this.V)}this.Oc=9;(this.U=vb(a,"ChipSet"))&&this.sf&&5==this.fb&&(this.Oc=uh(this.sf,this.Oc));this.P&&this.km&&ck(this)};
f.Lb=function(a,b,c){var d=this;if(!this.wa[b])switch(this.wa[b]=c,b){case "fullScreen":return this.ha&&this.ha.se?c.onclick=function(){d.se()}:c.parentNode.removeChild(c),!0;case "lockPointer":return this.mm=c.textContent,this.V&&this.V.ee?c.onclick=function(){d.ee(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){Fc(d,!0)},!0}return!1};f.Mc=function(){this.V&&this.V.focus()};
f.se=function(){var a=!1;if(this.ha){if(this.ha.se){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Ca/this.Na;b>c&&(a=Math.round(c/b*100)+"%")}this.df?(this.ua.style.width=a,this.ua.style.width=a,this.ua.style.display="block",this.ua.style.margin="auto"):(this.ha.style.width=a,this.ha.style.height="auto");this.ha.style.backgroundColor="black";this.ha.se();a=!0}this.Mc()}return a};
function rj(a,b){!b&&a.ha&&(a.df?a.ua.style.width=a.ua.style.height="":a.ha.style.width=a.ha.style.height="");a.Fa("notifyFullScreen("+b+")",!0);a.P&&(a.P.fh=b)}f.ee=function(a){var b=!1;this.V&&(a?this.V.ee&&(this.V.ee(),b=this.kb.R=!0):this.V.sj&&(this.V.sj(),this.kb.R=!1,b=!0),this.Mc());return b};
f.Lb=function(a,b,c){var d=this;if(!this.wa[b])switch(this.wa[b]=c,b){case "fullScreen":return this.ga&&this.ga.se?c.onclick=function(){d.se()}:c.parentNode.removeChild(c),!0;case "lockPointer":return this.mm=c.textContent,this.V&&this.V.ee?c.onclick=function(){d.ee(!0)}:c.parentNode.removeChild(c),!0;case "refresh":return c.onclick=function(){Fc(d,!0)},!0}return!1};f.Mc=function(){this.V&&this.V.focus()};
f.se=function(){var a=!1;if(this.ga){if(this.ga.se){a="100%";if(screen&&screen.width&&screen.height){var b=screen.width/screen.height,c=this.Ca/this.Na;b>c&&(a=Math.round(c/b*100)+"%")}this.df?(this.ua.style.width=a,this.ua.style.width=a,this.ua.style.display="block",this.ua.style.margin="auto"):(this.ga.style.width=a,this.ga.style.height="auto");this.ga.style.backgroundColor="black";this.ga.se();a=!0}this.Mc()}return a};
function rj(a,b){!b&&a.ga&&(a.df?a.ua.style.width=a.ua.style.height="":a.ga.style.width=a.ga.style.height="");a.Fa("notifyFullScreen("+b+")",!0);a.P&&(a.P.fh=b)}f.ee=function(a){var b=!1;this.V&&(a?this.V.ee&&(this.V.ee(),b=this.kb.R=!0):this.V.sj&&(this.V.sj(),this.kb.R=!1,b=!0),this.Mc());return b};
function ck(a){var b=a.V;b&&!a.qc&&(b.addEventListener("touchstart",function(b){dk(a,b)},!1),b.addEventListener("touchmove",function(b){dk(a,b)},!0),b.addEventListener("touchend",function(){},!1),a.qc=!0)}f.Fg=function(a){this.ce=a;this.P&&this.P.Fg(a)};
function dk(a,b){a.ce&&b.preventDefault();var c=0,d=0,e=a.ua;do isNaN(e.offsetLeft)||(c+=e.offsetLeft,d+=e.offsetTop);while(e=e.offsetParent);var g=a.Ca/a.ua.offsetWidth,e=a.Na/a.ua.offsetHeight,l,p;b.targetTouches?(l=b.targetTouches[0].pageX,p=b.targetTouches[0].pageY):(l=b.pageX,p=b.pageY);c=(l-c)*g/(a.Ca/3)|0;d=(p-d)*e/(a.Na/3)|0;1!=d?d?fj(a.P,1040,!0):fj(a.P,1038,!0):1!=c&&(c?fj(a.P,1039,!0):fj(a.P,1037,!0))}
f.dc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};f.cc=function(a){return a&&this.save?this.save():!0};
@ -905,8 +905,8 @@ f.fl=function(a,b,c){if(c)this.Pa("Unable to load font ROM image (error "+c+")")
function jk(a,b){if(1==b)return a.Ma[0]=wj[0],a.Ma[1]=wj[7],a.Ma;if(2==b){var c=a.O.Pe;if(a.O===a.B){var d=a.B.Ac[0],c=d&7;d&16&&(c|=8);18!=a.B.Ac[1]&&(c|=32)}a.Ma[0]=wj[c&15];c=c&32?yj:xj;for(d=0;d<c.length;d++)a.Ma[d+1]=wj[c[d]];return a.Ma}if(a.aa===a.Pc)return wj;a.hb&&b&&!a.Ma[16]&&(a.hb=!1);if(!a.hb){var c=a.B,d=c.Qe,e,g,l,p,q;if(8==b)for(g=0;256>g;g++)l=d[g]||0,p=l<<2&252,q=l>>4&252,l=l>>10&252,a.Ma[g]=[p,q,l,255];else{var r=d&&d[255];e=null!=c.Ac[15]?c.Ac:zj;for(g=0;16>g;g++)l=e[g]&63,r?(l|=
(c.Ac[20]&12)<<4,c.Ac[16]&128&&(l&=-49,l|=(c.Ac[20]&3)<<4),l=d[l],p=l<<2&252,q=l>>4&252,l=l>>10&252):(p=(l&4?170:0)|(l&32?85:0),q=(l&2?170:0)|(l&16?85:0),l=(l&1?170:0)|(l&8?85:0)),a.Ma[g]=[p,q,l,255]}a.hb=!0}return a.Ma}function Oi(a,b,c,d){a.Nc=b;a.fd=c;a.Nb=d}function fk(a){var b=!1;if(window&&a.Nc){var c=0,d=a.Nb?a.Nb:8,e=jk(a);kk(a,3,a.fd[0],c,d,8,a.Nc,e)&&(b=!0);c=a.Nb?0:2048;d=a.Nb?a.Nb:9;kk(a,1,a.fd[1],c,d,14,a.Nc,uj,vj)&&(b=!0);a.Nb&&kk(a,a.fb,a.fd[1],0,a.Nb,14,a.Nc,e)&&(b=!0)}return b}
function kk(a,b,c,d,e,g,l,p,q){var r=!1;null!=c&&(lk(a,b,c,d,e,g,l,p,q)&&(r=!0),a.Ei&&lk(a,b<<1,c,d,e,g,l,p,q)&&(r=!0));return r}
function lk(a,b,c,d,e,g,l,p,q){var r=!1,x=b&1?0:1,G=a.Ta[b],D=16>p.length?p.length:16;G||(G={wc:e<<x,xc:g<<x,ne:Array(D),Ii:p.slice(0,D),Xe:q,Ug:Array(D)});for(q=0;q<D;q++){var H=p[q],K=G.ne[q]?G.Ii[q]:[];if(H[0]!==K[0]||H[1]!==K[1]||H[2]!==K[2]){var r=G,K=q,X=x,P=c,T=d,na=e,ha=g,Na=l,zc=[0,0,0,0],ea=window.document.createElement("canvas");ea.width=r.wc<<4;ea.height=r.xc<<4;for(var vd=ea.getContext("2d"),aa=void 0,da=void 0,Qa=void 0,eb=8>ha||!T?ha:8,Ua=vd.createImageData(r.wc,r.xc),aa=0;256>aa;aa++){for(Qa=
0;Qa<ha;Qa++)for(var Oa=r.Xe&&K&1&&Qa>=ha-2,Ja=Na[Qa<eb?P+aa*eb+Qa:T+aa*eb+Qa-eb],Sc=0;Sc<=X;Sc++)for(da=0;da<na;da++){var Tc=da<<X,Ac=(Qa<<X)+Sc,wd=Oa||Ja&128>>(8<=da&&192<=aa&&223>=aa?7:da)?H:zc;mk(Ua,Tc,Ac,wd);X&&mk(Ua,Tc+1,Ac,wd)}vd.putImageData(Ua,(aa&15)*r.wc,(aa>>4)*r.xc)}r.ne[K]="#"+h(H[0],2)+h(H[1],2)+h(H[2],2);r.Ii[K]=H;r.Ug[K]=ea;r=!0}}a.Ta[b]=G;return r}function nk(a){0<a.Wa||0<=a.pa?0>a.xb&&(a.xb=0):a.xb=-1}
function lk(a,b,c,d,e,g,l,p,q){var r=!1,x=b&1?0:1,G=a.Ta[b],D=16>p.length?p.length:16;G||(G={wc:e<<x,xc:g<<x,ne:Array(D),Ii:p.slice(0,D),Xe:q,Ug:Array(D)});for(q=0;q<D;q++){var H=p[q],K=G.ne[q]?G.Ii[q]:[];if(H[0]!==K[0]||H[1]!==K[1]||H[2]!==K[2]){var r=G,K=q,X=x,P=c,T=d,na=e,ha=g,Na=l,zc=[0,0,0,0],ea=window.document.createElement("canvas");ea.width=r.wc<<4;ea.height=r.xc<<4;for(var wd=ea.getContext("2d"),aa=void 0,da=void 0,Qa=void 0,eb=8>ha||!T?ha:8,Ua=wd.createImageData(r.wc,r.xc),aa=0;256>aa;aa++){for(Qa=
0;Qa<ha;Qa++)for(var Oa=r.Xe&&K&1&&Qa>=ha-2,Ja=Na[Qa<eb?P+aa*eb+Qa:T+aa*eb+Qa-eb],Sc=0;Sc<=X;Sc++)for(da=0;da<na;da++){var Tc=da<<X,Ac=(Qa<<X)+Sc,xd=Oa||Ja&128>>(8<=da&&192<=aa&&223>=aa?7:da)?H:zc;mk(Ua,Tc,Ac,xd);X&&mk(Ua,Tc+1,Ac,xd)}wd.putImageData(Ua,(aa&15)*r.wc,(aa>>4)*r.xc)}r.ne[K]="#"+h(H[0],2)+h(H[1],2)+h(H[2],2);r.Ii[K]=H;r.Ug[K]=ea;r=!0}}a.Ta[b]=G;return r}function nk(a){0<a.Wa||0<=a.pa?0>a.xb&&(a.xb=0):a.xb=-1}
function ik(a){if(a.la){for(var b=10;15>=b;b++)if(null==a.O.mb[b])return;var c=a.O.mb[10],b=c&31,d=a.O.mb[11]&31,e=a.O.mb[9]&31,g=!1;a.O===a.B&&(g=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!g||b>e)ok(a);else{c=a.O.mb[15]+((a.O.mb[14]&63)<<8);a.pa!=c&&(ok(a),a.pa=c);d=d-b+1;if(a.tf!=b||a.de!=d)a.tf=b,a.de=d;a.ab=e+1;nk(a)}}}
function ok(a){if(0<=a.pa){if(void 0!==a.da){var b=a.da[a.pa];if(b&131072){var b=b&-131073,c=a.pa%a.R,d=a.pa/a.R|0;a.la&&a.Ta[a.la]&&(a.Mb&&pk(a,c,d,b,a.Mb),pk(a,c,d,b));a.da[a.pa]=b}}a.pa=-1}}
function qk(a){var b,c=a.O;a.cf=!1;var d=c.Wd[5];if(null!=d){b=1024;var e=0,g=c.Wd[3]&31;switch(d&3){case 0:if(g){e=32;switch(g&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Ic=g&7}break;case 1:e=1;break;case 2:switch(g&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.fb==Pi&&(e=3,c.Ic=g&7)}d&8&&(b=1280);c=c.ie[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.cf=!0));b|=e}return b}
@ -940,8 +940,8 @@ var Uj={948:Z.prototype.vk,949:Z.prototype.uk,952:Z.prototype.wk,954:Z.prototype
961:Z.prototype.hj,962:Z.prototype.Sl,964:Z.prototype.$l,965:Z.prototype.Zl,970:Z.prototype.Ll,972:Z.prototype.Kl,974:Z.prototype.Jl,975:Z.prototype.Il,986:Z.prototype.ij},ak={963:Z.prototype.Ik,966:Z.prototype.hk,967:Z.prototype.ik,969:Z.prototype.gk,970:Z.prototype.Jk,972:Z.prototype.Kk},bk={963:Z.prototype.bm,966:Z.prototype.Cl,967:Z.prototype.Dl,968:Z.prototype.El,969:Z.prototype.Bl};
Ma(function(){for(var a=ib(window.document,"pcjs","video"),b=0;b<a.length;b++){var c=a[b],d=gb(c),e=window.document.createElement("canvas");if(void 0===e||!e.getContext){c.innerHTML="<br/>Missing &lt;canvas&gt; support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=
function(a,b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());c.appendChild(e);var g=window.document.createElement("textarea");Ea("iOS")&&(g.setAttribute("autocapitalize","off"),g.setAttribute("autocorrect","off"));c.appendChild(g);var l=e.getContext("2d"),d=new Z(d,e,l,g,c);hb(d,c)}});
function yk(a){this.ua=a.adapter;switch(this.ua){case 1:this.ha=1016;this.aa=4;break;case 2:this.ha=760;this.aa=3;break;default:ya("Unrecognized serial adapter #"+this.ua);return}this.V=null;Ta.call(this,"SerialPort",a,yk,4194304);var b=a.binding,c;a=zk;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.wa[b])&&this.Lb(null,a,b))}bb(yk);var zk="buffer";f=yk.prototype;f.Ji=function(a,b){return a==this.Gd?(this.kb=b,this):null};
f.Lb=function(a,b,c){var d=this;switch(b){case zk:return this.wa[b]=this.V=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),Ak(d,[b]))},c.onkeypress=function(a){a=a||window.event;Ak(d,[a.which||a.keyCode])},!0}return!1};f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;this.U=vb(a,"ChipSet");Ub(b,this,Bk,this.ha);Yb(b,this,Ck,this.ha);nb(this)};f.dc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
function yk(a){this.ua=a.adapter;switch(this.ua){case 1:this.ga=1016;this.aa=4;break;case 2:this.ga=760;this.aa=3;break;default:ya("Unrecognized serial adapter #"+this.ua);return}this.V=null;Ta.call(this,"SerialPort",a,yk,4194304);var b=a.binding,c;a=zk;b&&(void 0===c&&(c="Panel"),(c=fb(c,this.id))&&(b=c.wa[b])&&this.Lb(null,a,b))}bb(yk);var zk="buffer";f=yk.prototype;f.Ji=function(a,b){return a==this.Gd?(this.kb=b,this):null};
f.Lb=function(a,b,c){var d=this;switch(b){case zk:return this.wa[b]=this.V=c,c.onkeydown=function(a){a=a||window.event;var b=a.keyCode;8===b&&(a.preventDefault&&a.preventDefault(),Ak(d,[b]))},c.onkeypress=function(a){a=a||window.event;Ak(d,[a.which||a.keyCode])},!0}return!1};f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;this.U=vb(a,"ChipSet");Ub(b,this,Bk,this.ga);Yb(b,this,Ck,this.ga);nb(this)};f.dc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};
f.cc=function(a){return a&&this.save?this.save():!0};f.reset=function(){Dk(this)};f.save=function(){var a=new ge(this),b=0,c=[];c[b++]=this.Fa;c[b++]=this.pa;c[b++]=this.la;c[b++]=this.da;c[b++]=this.R;c[b++]=this.O;c[b++]=this.P;c[b++]=this.B;c[b++]=this.na;c[b]=this.Y;he(a,0,c);return a.data()};f.restore=function(a){return Dk(this,a[0])};
function Dk(a,b){var c=0;void 0===b&&(b=[0,0,384,0,1,0,0,96,48,[]]);a.Fa=b[c++];a.pa=b[c++];a.la=b[c++];a.da=b[c++];a.R=b[c++];a.O=b[c++];a.P=b[c++];a.B=b[c++];a.na=b[c++];a.Y=b[c];return!0}function Ak(a,b){a.Y=a.Y.concat(b);Ek(a)}function Ek(a){0<a.Y.length&&!(a.B&1)&&(a.Fa=a.Y.shift(),a.B|=1);var b=-1;a.B&1&&a.da&1&&(b=4);0<=b?(a.R&=-8,a.R|=b,a.U&&a.aa&&wi(a.U,a.aa,100)):(a.R|=1,a.U&&a.aa&&xi(a.U,a.aa))}
f.Ek=function(a,b){var c=this.O&128?this.la&255:this.Fa;m(this,a,null,b,this.O&128?"DLL":"RBR",c);this.B&=-2;Ek(this);return c};f.pk=function(a,b){var c=this.O&128?this.la>>8:this.da;m(this,a,null,b,this.O&128?"DLM":"IER",c);return c};f.qk=function(a,b){var c=this.R;m(this,a,null,b,"IIR",c);return c};f.rk=function(a,b){var c=this.O;m(this,a,null,b,"LCR",c);return c};f.tk=function(a,b){var c=this.P;m(this,a,null,b,"MCR",c);return c};f.sk=function(a,b){var c=this.B;m(this,a,null,b,"LSR",c);return c};
@ -949,12 +949,12 @@ f.yk=function(a,b){var c=this.na;m(this,a,null,b,"MSR",c);return c};f.am=functio
f.Nl=function(a,b,c){m(this,a,b,c,"LCR");this.O=b};f.Ol=function(a,b,c){var d=this.P;m(this,a,b,c,"MCR");this.P=b;this.kb&&(d^b)&3&&(a=this.kb,b=this.P,(c=3==(b&3))?a.jc||(d=!1,a.P&2||(a.reset(),a.Fa("serial mouse reset"),d=!0),a.P&1||(a.Fa("serial mouse ID requested"),d=!0),d&&(Ak(a.da,[77,77]),a.Fa("serial mouse ID sent")),Fk(a),a.jc=c):a.jc&&(a.Fa("serial mouse inactive"),Gk(a),a.jc=c),a.P=b)};
var Bk={0:yk.prototype.Ek,1:yk.prototype.pk,2:yk.prototype.qk,3:yk.prototype.rk,4:yk.prototype.tk,5:yk.prototype.sk,6:yk.prototype.yk},Ck={0:yk.prototype.am,1:yk.prototype.Ml,3:yk.prototype.Nl,4:yk.prototype.Ol};Ma(function(){for(var a=ib(window.document,"pcjs","serial"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new yk(d);hb(d,c)}});function Hk(a){Ta.call(this,"Mouse",a,Hk,33554432);if(this.pa=a.serial)this.ua="SerialPort";this.qc=this.R=this.jc=!1;this.aa=[];this.U=[];nb(this)}bb(Hk);f=Hk.prototype;
f.yc=function(a,b,c,d){this.la=a;this.va=b;this.A=c;this.ea=d;for(b=null;b=vb(a,"Video",b);)this.aa.push(b)};f.dc=function(a,b){if(!b){if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;if(this.ua&&!this.da){for(var c=null;(c=vb(this.la,this.ua,c))&&(!c.Ji||!(this.da=c.Ji(this.pa,this))););if(this.da)for(this.U=[],c=0;c<this.aa.length;c++){var d;d=this.aa[c];d.kb=this;(d=d.V)&&this.U.push(d)}else ya(this.id+": "+this.ua+" "+this.pa+" unavailable")}this.jc?Fk(this):Gk(this)}return!0};
f.cc=function(a){return a&&this.save?this.save():!0};f.reset=function(){Ik(this)};f.save=function(){var a=new ge(this),b=0,c=[];c[b++]=this.jc;c[b++]=this.V;c[b++]=this.Y;c[b++]=this.B;c[b++]=this.O;c[b++]=this.ha;c[b++]=this.na;c[b]=this.P;he(a,0,c);return a.data()};f.restore=function(a){return Ik(this,a[0])};function Ik(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.jc=d;a.V=b[c++];a.Y=b[c++];a.B=b[c++];a.O=b[c++];a.ha=b[c++];a.na=b[c++];a.P=b[c];return!0}
f.cc=function(a){return a&&this.save?this.save():!0};f.reset=function(){Ik(this)};f.save=function(){var a=new ge(this),b=0,c=[];c[b++]=this.jc;c[b++]=this.V;c[b++]=this.Y;c[b++]=this.B;c[b++]=this.O;c[b++]=this.ga;c[b++]=this.na;c[b]=this.P;he(a,0,c);return a.data()};f.restore=function(a){return Ik(this,a[0])};function Ik(a,b){var c=0;void 0===b&&(b=[!1,-1,-1,0,0,!1,!1,0]);var d=b[c++];a.jc=d;a.V=b[c++];a.Y=b[c++];a.B=b[c++];a.O=b[c++];a.ga=b[c++];a.na=b[c++];a.P=b[c];return!0}
function Fk(a){if(!a.qc)for(var b=0;b<a.U.length;b++)Jk(a,a.U[b])&&(a.qc=!0)}function Gk(a){if(a.qc)for(var b=0;b<a.U.length;b++){var c=a.U[b];c&&(c.style.cursor="auto")}}
function Jk(a,b){return b?(b.addEventListener("mousemove",function(b){if(a.jc&&a.A&&a.A.ma.zb){if(0>a.V||0>a.Y)a.V=b.clientX,a.Y=b.clientY;a.R?(a.B=b.movementX||b.mozMovementX||b.webkitMovementX||0,a.O=b.movementY||b.mozMovementY||b.webkitMovementY||0):(a.B=b.clientX-a.V,a.O=b.clientY-a.Y);(a.B||a.O)&&Kk(a,null,b.clientX,b.clientY);a.V=b.clientX;a.Y=b.clientY}},!1),b.addEventListener("mousedown",function(b){Lk(a,b.button,!0)},!1),b.addEventListener("mouseup",function(b){Lk(a,b.button,!1)},!1),b.style.cursor=
"none",!0):!1}function Lk(a,b,c){if(a.jc&&a.A&&a.A.ma.zb){var d;!(d=!1!==a.R)&&(d=a.aa.length)&&(d=a.aa[0],d=d.Di?d.ee(!0):!1);d||(a.R=null);d="mouse button"+b+" "+(c?"dn":"up");switch(b){case 0:a.ha!=c&&(a.ha=c,Kk(a,d));break;case 2:a.na!=c&&(a.na=c,Kk(a,d))}}}
function Kk(a,b,c,d){var e=64|(a.ha?32:0)|(a.na?16:0)|(a.O&192)>>4|(a.B&192)>>6,g=a.B&63,l=a.O&63;a.ta(4194304)&&a.Fa((b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+k(e)+","+k(g)+","+k(l)+"]",0,!0);Ak(a.da,[e,g,l]);a.B=a.O=0}Ma(function(){for(var a=ib(window.document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Hk(d);hb(d,c)}});
function Mk(a,b,c){Ta.call(this,"Disk",{id:a.lj+".disk"+ ++Nk},Mk,2097152);this.controller=a;this.la=a.la;this.ea=a.ea;this.O=b;this.B=b.name;this.xe=b.xe;this.Kf=this.P=!1;Ok(this,c,b.Gb,b.Hb,b.Kb,b.Cb);this.R=[];this.da=[];this.U=null;this.ha=0;this.Fa=!1;nb(this)}var Nk=0;bb(Mk);f=Mk.prototype;f.yc=function(a,b,c,d){this.ea=d};f.dc=function(a,b){b||!this.Kf||this.P||(nb(this,!1),this.load(this.B,this.Y,null,this.Kj,this));return!0};f.Kj=function(){nb(this,!0)};
"none",!0):!1}function Lk(a,b,c){if(a.jc&&a.A&&a.A.ma.zb){var d;!(d=!1!==a.R)&&(d=a.aa.length)&&(d=a.aa[0],d=d.Di?d.ee(!0):!1);d||(a.R=null);d="mouse button"+b+" "+(c?"dn":"up");switch(b){case 0:a.ga!=c&&(a.ga=c,Kk(a,d));break;case 2:a.na!=c&&(a.na=c,Kk(a,d))}}}
function Kk(a,b,c,d){var e=64|(a.ga?32:0)|(a.na?16:0)|(a.O&192)>>4|(a.B&192)>>6,g=a.B&63,l=a.O&63;a.ta(4194304)&&a.Fa((b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+k(e)+","+k(g)+","+k(l)+"]",0,!0);Ak(a.da,[e,g,l]);a.B=a.O=0}Ma(function(){for(var a=ib(window.document,"pcjs","mouse"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Hk(d);hb(d,c)}});
function Mk(a,b,c){Ta.call(this,"Disk",{id:a.lj+".disk"+ ++Nk},Mk,2097152);this.controller=a;this.la=a.la;this.ea=a.ea;this.O=b;this.B=b.name;this.xe=b.xe;this.Kf=this.P=!1;Ok(this,c,b.Gb,b.Hb,b.Kb,b.Cb);this.R=[];this.da=[];this.U=null;this.ga=0;this.Fa=!1;nb(this)}var Nk=0;bb(Mk);f=Mk.prototype;f.yc=function(a,b,c,d){this.ea=d};f.dc=function(a,b){b||!this.Kf||this.P||(nb(this,!1),this.load(this.B,this.Y,null,this.Kj,this));return!0};f.Kj=function(){nb(this,!0)};
f.cc=function(a,b){if(this.P){var c,d=0;if(this.Fa&&!za("Disk writes are still in progress, shut down anyway?"))return!1;for(;c=Pk(this,!1);)if(d=c[0]){this.controller.Pa('Unable to save "'+this.B+'" (error '+d+")");break}b&&this.P&&(c="action=close&volume="+this.Y,c+="&machine="+this.controller.Ae(),c+="&user="+this.controller.Pd(),wa(xa()+"/api/v1/disk?"+c,!0),this.P=!1);!d&&a&&this.controller.Pa(this.B+" saved")}return!0};
function Ok(a,b,c,d,e,g){a.mode=b;a.Gb=c;a.Hb=d;a.Kb=e;a.Cb=g;a.A=[];if("preload"!=a.mode){b=Array(a.Gb);for(c=0;c<b.length;c++){d=Array(a.Hb);for(e=0;e<d.length;e++){g=Array(a.Kb);for(var l=1;l<=g.length;l++)g[l-1]=Qk(null,c,e,l,a.Cb,"local"==a.mode?0:null);d[e]=g}b[c]=d}a.A=b}a.aa=null}
f.load=function(a,b,c,d,e){var g=b;if(!this.V)if(this.B=a,this.Y=b,this.V=d,this.na=e||this.controller,c){var l=this,p=new FileReader;p.onload=function(){var a=p.result,b,c=a?a.byteLength:0,d=ca[c];if(d){l.Gb=d[0];l.Hb=d[1];l.Kb=d[2];l.Cb=512;b=l.Cb>>2;var e=d=0,a=new DataView(a,0,c);l.A=Array(l.Gb);for(c=0;c<l.A.length;c++)for(var g=l.A[c]=Array(l.Hb),K=0;K<g.length;K++)for(var X=g[K]=Array(l.Kb),P=0;P<X.length;P++){for(var T=Qk(null,c,K,P+1,l.Cb,0),na=T.data,ha=0;ha<b;ha++,e+=4)var Na=na[ha]=a.getInt32(e,
@ -965,7 +965,7 @@ f.Ij=function(a,b,c,d){var e=null;this.ze=!1;var g=0>c&&this.la&&!this.la.ma.bc;
D&&D.length){for(var g=r<<2,H=D.length;H<g;H++)D[H]=x;Sk(q,D,0)}else G=[],x=q.pattern=x|x<<8|x<<16|x<<24,q.data=G;delete q.bytes}Qk(q,b,c);for(g=0;g<G.length;g++)a=a+G[g]&-1}this.A=p;this.aa=a;e=this}else ya("Empty disk image: "+this.B)}catch(K){ya("Disk image error: "+K.message)}this.V&&(this.V.call(this.na,this.O,e,this.B,this.Y),this.V=null)};function Qk(a,b,c,d,e,g){a||(a={sector:d,length:e,data:[],pattern:g});a.Nj=b;a.Oj=c;a.bd=a.Dc=0;a.Za=!1;return a}
function Rk(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.Gb+":"+a.Hb+":"+a.Kb+":"+a.Cb;c+="&machine="+a.controller.Ae();c+="&user="+a.controller.Pd();return xa()+"/api/v1/disk?"+c}function Tk(a,b,c,d,e,g,l){if(a.P){var p;p="action=read&volume="+a.Y;p+="&chs="+a.Gb+":"+a.Hb+":"+a.Kb+":"+a.Cb;p=p+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.Ae());p+="&user="+a.controller.Pd();wa(xa()+"/api/v1/disk?"+p,g,null,a,a.Lj,[b,c,d,e,g,l])}else l&&l(-1,!1)}
f.Lj=function(a,b,c,d){var e=!1;a=d[0];var g=d[1],l=d[2],p=d[3];if(!c){b=JSON.parse(b);for(e=0;p--;){var q=this.seek(a,g,l,!0);if(!q)break;Sk(q,b,e);e+=q.length;l++}e=d[4]}(d=d[5])&&d(c,e)};f.Mj=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],g=d[3];d=d[4];this.Fa=!1;if(0<=a&&a<this.A.length&&0<=b&&b<this.A[a].length)for(e=e-1;0<g--&&0<=e&&e<this.A[a][b].length;e++){var l=this.A[a][b][e];c?Uk(this,l,!1):l.Za||(l.bd=l.Dc=0)}d&&Vk(this)};
function Uk(a,b,c){b.Za=!0;var d=a.R.indexOf(b);0<=d&&(a.R.splice(d,1),a.da.splice(d,1));a.R.push(b);a.da.push(ra());c&&Vk(a)}function Vk(a){if(a.R.length){var b=a.da[0]+2E3;a.U&&a.ha<b&&(clearTimeout(a.U),a.U=null);if(!a.U){var c=ra(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.U=setTimeout(function(){Pk(a,!0)},b);a.ha=c+b}}else a.U&&(clearTimeout(a.U),a.U=null)}
function Uk(a,b,c){b.Za=!0;var d=a.R.indexOf(b);0<=d&&(a.R.splice(d,1),a.da.splice(d,1));a.R.push(b);a.da.push(ra());c&&Vk(a)}function Vk(a){if(a.R.length){var b=a.da[0]+2E3;a.U&&a.ga<b&&(clearTimeout(a.U),a.U=null);if(!a.U){var c=ra(),b=b-c;0>b&&(b=0);2E3<b&&(b=2E3);a.U=setTimeout(function(){Pk(a,!0)},b);a.ga=c+b}}else a.U&&(clearTimeout(a.U),a.U=null)}
function Pk(a,b){b&&(a.U=null);var c=a.R[0];if(c){for(var d=c.Nj,e=c.Oj,c=c.sector,g=0,l=[],p=c-1;p<a.A[d][e].length;p++){var q=a.A[d][e][p];if(!q.Za)break;var r=a.R.indexOf(q);a.R.splice(r,1);a.da.splice(r,1);l=l.concat(Wk(q));q.Za=!1;g++}a.P?(p={},a.Fa=!0,p.action="write",p.volume=a.Y,p.chs=a.Gb+":"+a.Hb+":"+a.Kb+":"+a.Cb,p.addr=d+":"+e+":"+c+":"+g,p.machine=a.controller.Ae(),p.user=a.controller.Pd(),p.data=JSON.stringify(l),d=wa(xa()+"/api/v1/disk",b,p,a,a.Mj,[d,e,c,g,b])):d=!1;return b||d}return!1}
f.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]};
f.seek=function(a,b,c,d,e){var g=null,l=this.O,p=this.A[a];if(p){var q=p[b];if(!q&&l.$g&&b<l.Hb)for(q=p[b]=Array(l.Ld),p=0;p<q.length;p++)q[p]=Qk(null,a,b,p+1,l.wb,0);if(q){for(p=0;p<q.length;p++)if(q[p]&&q[p].sector==c){g=q[p];if(null===g.pattern)if(d)g.pattern=0;else{for(d=1;++p<q.length;)null===q[p].pattern&&d++;Tk(this,a,b,c,d,null!=e,function(a,b){a&&(g=null);e&&e(g,b)});return e?null:g}break}!g&&l.$g&&9==l.ob&&(g=q[p]=Qk(null,a,b,l.ob,l.wb,0))}}e&&e(g,!1);return g};
@ -982,9 +982,9 @@ f.Lb=function(a,b,c){var d=this;switch(b){case "listDisks":return this.wa[b]=c,c
f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;this.la=a;this.U=vb(a,"ChipSet");bl(this);Ub(b,this,cl);Yb(b,this,dl);this.pa&&el(this,"Local Disk","?");el(this,"Remote Disk","??");fl(this)||nb(this)};
f.dc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.la.hh){this.O=[];for(var c=0;c<this.B.length;c++)gl(this,c,!0);fl(this,!0)}}else if(!this.restore(a))return!1;if(c=this.wa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.textContent="";for(var d=0;d<this.na;d++){var e=window.document.createElement("option");e.value=d;e.textContent=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.na&&(c.value="0",$k(this,0))}}return!0};
f.cc=function(a){return a&&this.save?this.save():!0};f.reset=function(){bl(this)};
f.save=function(){var a=new ge(this),b=0,c=[];c[b++]=this.Ab;c[b++]=0;c[b++]=this.Ha;c[b++]=this.V;c[b++]=this.R;c[b++]=this.P;c[b++]=this.ha;for(var d=b++,e=0,g=[],l=0;l<this.B.length;l++){var p=e++,q=this.B[l],r=0,x=[];x[r++]=q.sb;x[r++]=[q.name,q.Gb,q.Hb,q.Kb,q.Cb,q.xe,q.Qf,q.nf,q.of];x[r++]=q.eb;x[r++]=q.Kd+100;x[r++]=q.Eb;x[r++]=q.ob;x[r++]=q.Ld;x[r++]=q.wb;x[r++]=q.$a;x[r++]=q.ve;x[r++]=q.oj;x[r]=q.ke;g[p]=x}c[d]=g;d=b++;for(e=0;e<this.B.length;e++)g=this.B[e],g.Ia&&hl(this,g.ke,g.Ia);c[d]=
f.save=function(){var a=new ge(this),b=0,c=[];c[b++]=this.Ab;c[b++]=0;c[b++]=this.Ha;c[b++]=this.V;c[b++]=this.R;c[b++]=this.P;c[b++]=this.ga;for(var d=b++,e=0,g=[],l=0;l<this.B.length;l++){var p=e++,q=this.B[l],r=0,x=[];x[r++]=q.sb;x[r++]=[q.name,q.Gb,q.Hb,q.Kb,q.Cb,q.xe,q.Qf,q.nf,q.of];x[r++]=q.eb;x[r++]=q.Kd+100;x[r++]=q.Eb;x[r++]=q.ob;x[r++]=q.Ld;x[r++]=q.wb;x[r++]=q.$a;x[r++]=q.ve;x[r++]=q.oj;x[r]=q.ke;g[p]=x}c[d]=g;d=b++;for(e=0;e<this.B.length;e++)g=this.B[e],g.Ia&&hl(this,g.ke,g.Ia);c[d]=
this.O;c[b++]=this.Y;c[b]=this.ua;he(a,0,c);return a.data()};f.restore=function(a){return bl(this,a[0])};
function bl(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Ab=b[c++];c++;a.Ha=b[c++];a.V=b[c++];a.R=b[c++];a.P=b[c++];a.ha=b[c++];var g=b[c++];d=b[c++];null!=d&&(a.O=d);void 0===a.B&&(a.na=4,a.U&&(a.na=$h(a.U)),a.B=Array(4));for(d=0;d<a.B.length;d++){var l=a.B[d];if(void 0===l){var l=a.B[d]={},p;if(a.U)a:{p=a.U;if(d<$h(p)){if(!p.ua){p=360;break a}if(d<p.ua.length){p=p.ua[d];break a}}p=0}else p=0;switch(p){case 160:case 180:l.Hb=1;default:l.Gb=40;l.Kb=9;break;case 720:l.Gb=80;l.Kb=
function bl(a,b){var c=0,d,e=!0;void 0===b&&(b=[0,0,128,Array(9),0,0,0,[]]);a.Ab=b[c++];c++;a.Ha=b[c++];a.V=b[c++];a.R=b[c++];a.P=b[c++];a.ga=b[c++];var g=b[c++];d=b[c++];null!=d&&(a.O=d);void 0===a.B&&(a.na=4,a.U&&(a.na=$h(a.U)),a.B=Array(4));for(d=0;d<a.B.length;d++){var l=a.B[d];if(void 0===l){var l=a.B[d]={},p;if(a.U)a:{p=a.U;if(d<$h(p)){if(!p.ua){p=360;break a}if(d<p.ua.length){p=p.ua[d];break a}}p=0}else p=0;switch(p){case 160:case 180:l.Hb=1;default:l.Gb=40;l.Kb=9;break;case 720:l.Gb=80;l.Kb=
9;break;case 1200:l.Gb=80;l.Kb=15;break;case 1440:l.Gb=80,l.Kb=18}}var q=a,r=d,x=g[d],G=0;p=!0;l.Ab=r;l.Gc=l.ve=!1;void 0===x&&(x=[192,!0,0,2,0]);"boolean"==typeof x[1]&&(x[1]=["Floppy Drive",l.Gb||40,l.Hb||x[3],l.Kb||9,l.Cb||512,x[1],l.Qf,l.nf,l.of]);l.sb=x[G++];var D=x[G++];l.name=D[0];l.Gb=D[1];l.Hb=D[2];l.Kb=D[3];l.Cb=D[4];l.xe=D[5];(l.Qf=D[6])?(l.nf=D[7],l.of=D[8]):(l.Qf=l.Gb,l.nf=l.Hb,l.of=l.Kb);l.eb=x[G++];l.Kd=x[G++];l.Eb=x[G++];l.Kd=100<=l.Kd?l.Kd-100:l.Kd-l.Eb;l.ob=x[G++];l.Ld=x[G++];l.wb=
x[G++];l.$a=x[G++];l.gb=null;l.Ia||(l.ke="");D=x[G++];102==D&&(D=!1);if("boolean"==typeof D){var H=D,D=x[G++],x=x[G];H?(G=D,D=q.B[r],gl(q,r,!0,!0),D.ve=!0,r=new Mk(q,D,"preload"),q.Ri(D,r,G,x,!0)):il(q,r,D,x,!0)?l.Ia&&x&&jl(q,D,x,l.Ia):nb(q,!1)}else void 0!==D&&l.Ia&&0>l.Ia.restore(D)&&(p=!1);p&&l.Ia&&void 0!==l.$a&&(l.gb=l.Ia.seek(l.Eb,l.eb,l.ob));p||(e=!1)}a.Y=b[c++]||0;a.ua=b[c]||0;return e}f.Qi=function(a){var b;a=this.B[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
f.pj=function(a,b,c){if(a.Ia){var d=a.Ia.info(),e=d[2],g=d[1]*e;if(b+c<=d[0]*g)return a.Eb=Math.floor(b/g),b%=g,a.eb=Math.floor(b/e),a.ob=b%e+1,a.wb=c*d[3],a.sb=0,!0}return!1};function fl(a,b){b||(a.da=0);if(a.aa)for(var c in a.aa){var d=a.aa[c];if(d.name&&d.path){var e=c.charCodeAt(0)-65;if(0<=e&&e<a.B.length){!il(a,e,d.name,d.path,!0)&&b&&nb(a,!1);continue}}a.Pa("Unrecognized auto-mount specification for drive "+c)}return!!a.da}
@ -992,23 +992,23 @@ function al(a,b,c,d){var e,g=a.wa.listDrives;if(g&&!isNaN(e=fa(g.value,10))&&0<=
void 0,p=0;p<g.O.length;p++)if(g.O[p][1]==l){g.O.splice(p,1);break}gl(a,e,!1,!0)}}else gl(a,e);else a.Pa("Nothing to load")}function il(a,b,c,d,e,g){var l=a.B[b];if(d&&l.ke!=d){gl(a,b,e,!0);if(l.Gc)return a.Pa("Drive "+b+" busy"),!0;l.Gc=!0;e&&(l.ae=!0,a.da++,a.ta()&&a.Fa("loading diskette '"+c+"'"));l.ve=!!g;(new Mk(a,l,"preload")).load(c,d,g,a.Ri);return!1}return!0}
f.Ri=function(a,b,c,d,e){var g;a.Gc=!1;b&&(g=b.info(),b&&g[0]>a.Gb||g[1]>a.Hb)&&(this.Pa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Ab)),b=null);b?(a.Ia=b,a.oj=c,a.ke=d,jl(this,c,d,b),g=b.info(),this.Y|=128,this.Pa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Ab),a.ae||e),a.Qf=g[0],a.nf=g[1],a.of=g[2]):a.ve=!1;a.ae&&(a.ae=!1,--this.da||nb(this));$k(this,a.Ab)};
function el(a,b,c){if(a=a.wa.listDisks){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=window.document.createElement("option");d.value=c;d.textContent=b;a.appendChild(d)}}function $k(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.wa.listDisks,e=a.wa.listDrives;if(d&&e&&(e=fa(e.value,10),c=c.ve?"?":c.ke,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}
function gl(a,b,c,d){var e=a.B[b];e.Ia&&(hl(a,e.ke,e.Ia),e.oj="",e.ke="",e.Ia=null,e.ve=!1,a.Y|=128,d||a.Pa("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||$k(a,b))}function jl(a,b,c,d){var e;for(e=0;e<a.O.length;e++)if(a.O[e][1]==c){d.restore(a.O[e][2]);return}a.O[e]=[b,c,[]]}function hl(a,b,c){var d;for(d=0;d<a.O.length;d++)if(a.O[d][1]==b){a.O[d][2]=c.save();break}}f.Hl=function(a,b,c){m(this,a,b,c,"OUTPUT");b&4?this.ha&4||this.ha&8&&this.U&&wi(this.U,6):bl(this);this.ha=b};
f.lk=function(a,b){m(this,a,null,b,"STATUS",this.Ha);return this.Ha};f.jk=function(a,b){var c=0;this.R<this.P&&(c=this.V[this.R]);this.ha&8&&this.U&&xi(this.U,6);this.ta()&&m(this,a,null,b,"DATA["+this.R+"]",c);++this.R>=this.P&&(this.Ha&=-81,this.R=this.P=0);return c};
function gl(a,b,c,d){var e=a.B[b];e.Ia&&(hl(a,e.ke,e.Ia),e.oj="",e.ke="",e.Ia=null,e.ve=!1,a.Y|=128,d||a.Pa("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||$k(a,b))}function jl(a,b,c,d){var e;for(e=0;e<a.O.length;e++)if(a.O[e][1]==c){d.restore(a.O[e][2]);return}a.O[e]=[b,c,[]]}function hl(a,b,c){var d;for(d=0;d<a.O.length;d++)if(a.O[d][1]==b){a.O[d][2]=c.save();break}}f.Hl=function(a,b,c){m(this,a,b,c,"OUTPUT");b&4?this.ga&4||this.ga&8&&this.U&&wi(this.U,6):bl(this);this.ga=b};
f.lk=function(a,b){m(this,a,null,b,"STATUS",this.Ha);return this.Ha};f.jk=function(a,b){var c=0;this.R<this.P&&(c=this.V[this.R]);this.ga&8&&this.U&&xi(this.U,6);this.ta()&&m(this,a,null,b,"DATA["+this.R+"]",c);++this.R>=this.P&&(this.Ha&=-81,this.R=this.P=0);return c};
f.Gl=function(a,b,c){this.ta()&&m(this,a,b,c,"DATA["+this.P+"]");this.P<this.V.length&&(this.V[this.P++]=b);a=this.V[0]&31;if(void 0!==Zk[a]&&this.P>=Zk[a].sd){b=!1;this.R=0;a=kl(this);var d,e,g,l,p=a&31;switch(p){case 3:kl(this);kl(this);ll(this);break;case 4:c=kl(this);this.Ab=c&3;d=this.B[this.Ab];ll(this);ml(this,(d.sb&-16777216)>>>24);break;case 5:case 6:c=kl(this);b=c>>2&1;this.Ab=c&3;d=this.B[this.Ab];d.eb=b;c=d.Eb=kl(this);e=kl(this);g=d.ob=kl(this);l=kl(this);d.wb=128<<l;d.Ld=kl(this);kl(this);
kl(this);6==p?(p=d,p.sb=72,p.Ia&&(p.gb=null,p.sb=0,this.U&&(pi(this.U,2,this,"dmaRead",p),ii(this.U,2)))):(p=d,p.sb=72,p.Ia&&(p.Ia.ze?p.sb=576:(p.gb=null,p.sb=0,this.U&&(pi(this.U,2,this,"dmaWrite",p),ii(this.U,2)))));nl(this,d,a,b,c,e,g,l);b=!0;break;case 7:c=kl(this);this.Ab=c&3;d=this.B[this.Ab];d.Eb=d.Kd=0;d.sb=268435488;ll(this);b=!0;break;case 8:d=this.B[this.Ab];d.eb=0;ll(this);ml(this,d.Ab|d.eb<<2|d.sb&255);ml(this,d.Eb);this.Ab=this.Ab+1&3;break;case 10:c=kl(this);b=c>>2&1;this.Ab=c&3;d=
this.B[this.Ab];c=d.Eb;e=d.eb=b;g=d.ob=1;l=0;d.sb=0;d.Ia&&(d.gb=d.Ia.seek(d.Eb,d.eb,d.ob))?l=d.gb.length:d.sb=72;nl(this,d,a,b,c,e,g,l);b=!0;break;case 13:c=kl(this);b=c>>2&1;this.Ab=c&3;d=this.B[this.Ab];c=d.Eb;e=d.eb=b;g=1;l=kl(this);d.wb=128<<l;d.Ld=kl(this);kl(this);d.Ki=kl(this);p=d;p.sb=72;p.Ia&&(p.gb=null,p.sb=0,this.U&&(p.re=0,p.Qc=Array(4),p.$g=!0,p.Gf=0,pi(this.U,2,this,"dmaFormat",p),ii(this.U,2),p.$g=!1));nl(this,d,a,b,c,e,g,l);b=!0;break;case 15:c=kl(this),this.Ab=c&3,d=this.B[this.Ab],
d.eb=c>>2&1,c=kl(this),d.Eb+=c-d.Kd,0>d.Eb&&(d.Eb=0),d.Eb>=d.Gb&&(d.Eb=d.Gb-1),d.Kd=c,d.sb=32,d.Eb||(d.sb|=268435456),ll(this),b=!0}0<this.P&&(this.Ha|=80);this.ha&8&&(!d||d.sb&8||!b||this.U&&wi(this.U,6))}};f.kk=function(a,b){var c=this.Y;this.Y&=-129;m(this,a,null,b,"INPUT",c);return c};f.Fl=function(a,b,c){m(this,a,b,c,"CONTROL");this.ua=b};
d.eb=c>>2&1,c=kl(this),d.Eb+=c-d.Kd,0>d.Eb&&(d.Eb=0),d.Eb>=d.Gb&&(d.Eb=d.Gb-1),d.Kd=c,d.sb=32,d.Eb||(d.sb|=268435456),ll(this),b=!0}0<this.P&&(this.Ha|=80);this.ga&8&&(!d||d.sb&8||!b||this.U&&wi(this.U,6))}};f.kk=function(a,b){var c=this.Y;this.Y&=-129;m(this,a,null,b,"INPUT",c);return c};f.Fl=function(a,b,c){m(this,a,b,c,"CONTROL");this.ua=b};
function nl(a,b,c,d,e,g,l,p){ll(a);ml(a,b.Ab|b.eb<<2|b.sb&255);ml(a,(b.sb&65280)>>>8);ml(a,(b.sb&16711680)>>>16);var q=0;if(e!=b.Eb||g!=b.eb)q=l=1;c&128&&(g^=q,d||(q=0));ml(a,e+q);ml(a,g);ml(a,l);ml(a,p)}function kl(a){var b=a.V[a.R];a.R++;return b}function ll(a){a.R=a.P=0}function ml(a,b){a.V[a.P++]=b}
f.uj=function(a,b,c){if(void 0===b||0>b){b=-1;var d=null,e=0;if(!a.sb&&a.Ia){do{if(a.gb&&(e=a.$a,0<=(b=Xk(a.gb,a.$a++)))){d=a.gb;break}a.gb=a.Ia.seek(a.Eb,a.eb,a.ob);if(!a.gb){a.sb=1088;break}a.$a=0;ol(a)}while(1)}c(b,!1,d,e)}else c(-1,!1)};f.vj=function(a,b){return void 0!==b&&0<=b?pl(a,b):-1};
f.Fj=function(a,b){var c;if(void 0!==b&&0<=b)a:if(c=b,a.sb)c=-1;else{a.Qc[a.re++]=c;if(a.re==a.Qc.length){a.Eb=a.Qc[0];a.eb=a.Qc[1];a.ob=a.Qc[2];a.wb=128<<a.Qc[3];for(var d=a.re=0;d<a.wb;d++)if(0>pl(a,a.Ki)){c=-1;break a}a.Gf++}a.Gf>=a.Ld&&(c=-1)}else c=-1;return c};function pl(a,b){if(a.sb||!a.Ia)return-1;do{if(a.gb&&a.Ia.write(a.gb,a.$a++,b))break;a.gb=a.Ia.seek(a.Eb,a.eb,a.ob);if(!a.gb){a.sb=8256;b=-1;break}a.$a=0;ol(a)}while(1);return b}
function ol(a){a.ob++;a.ob>=a.of+1&&(a.ob=1,a.eb++,a.eb>=a.nf&&(a.eb=0,a.Eb++))}var cl={1012:Yk.prototype.lk,1013:Yk.prototype.jk,1015:Yk.prototype.kk},dl={1010:Yk.prototype.Hl,1013:Yk.prototype.Gl,1015:Yk.prototype.Fl};Ma(function(){for(var a=ib(window.document,"pcjs","fdc"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Yk(d);hb(d,c)}});
function ql(a){Ta.call(this,"HDC",a,ql,1048576);this.dmaRead=this.wj;this.dmaWrite=this.xj;this.dmaWriteBuffer=this.Gj;this.dmaWriteFormat=this.Hj;this.Ma=[];if(a.drives)try{this.Ma=eval("("+a.drives+")")}catch(b){ya("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.Ba=(this.ha="at"==a.type)?1:0;this.ab=this.ha?2:3}bb(ql);
var rl=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,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]}];f=ql.prototype;f.Lb=function(){return!1};f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;this.la=a;this.U=vb(a,"ChipSet");Ub(b,this,this.ha?sl:tl);Yb(b,this,this.ha?ul:vl);de(c,19,this,this.Pk);de(c,64,this,this.Qk);this.reset();wl(this)||nb(this)};
function ql(a){Ta.call(this,"HDC",a,ql,1048576);this.dmaRead=this.wj;this.dmaWrite=this.xj;this.dmaWriteBuffer=this.Gj;this.dmaWriteFormat=this.Hj;this.Ma=[];if(a.drives)try{this.Ma=eval("("+a.drives+")")}catch(b){ya("HDC drive configuration error: "+b.message+" ("+a.drives+")")}this.Ba=(this.ga="at"==a.type)?1:0;this.ab=this.ga?2:3}bb(ql);
var rl=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[306,4],2:[615,4],3:[615,6],4:[1023,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]}];f=ql.prototype;f.Lb=function(){return!1};f.yc=function(a,b,c,d){this.va=b;this.A=c;this.ea=d;this.la=a;this.U=vb(a,"ChipSet");Ub(b,this,this.ga?sl:tl);Yb(b,this,this.ga?ul:vl);de(c,19,this,this.Pk);de(c,64,this,this.Qk);this.reset();wl(this)||nb(this)};
f.dc=function(a,b){if(!b)if(!a||!this.restore)xl(this),this.la.hh&&wl(this,!0);else if(!this.restore(a))return!1;return!0};f.cc=function(a){return a&&this.save?this.save():!0};f.Ae=function(){return this.la?this.la.Ae():""};f.Pd=function(){return this.la?this.la.Pd():""};f.reset=function(){xl(this,null,!0)};
f.save=function(){var a=new ge(this),b=0,c=[];this.ha?(c[b++]=this.Y,c[b++]=this.Wa,c[b++]=this.aa,c[b++]=this.Ja,c[b++]=this.Ea,c[b++]=this.Ca,c[b++]=this.ua,c[b++]=this.Ha,c[b++]=this.Na,c[b++]=this.Ga):(c[b++]=this.pa,c[b++]=this.Ha,c[b++]=this.V,c[b++]=this.R,c[b++]=this.P,c[b++]=this.Ta,c[b++]=this.Qa,c[b++]=this.Ra,c[b++]=this.na);for(var d=0,e=[],g=0;g<this.B.length;g++){var l=d++,p=this.B[g],q=0,r=[];r[q++]=p.errorCode;r[q++]=p.qj;r[q++]=p.xe;r[q++]=p.oe;r[q++]=p.pe;r[q++]=p.eb;r[q++]=p.Hb;
f.save=function(){var a=new ge(this),b=0,c=[];this.ga?(c[b++]=this.Y,c[b++]=this.Wa,c[b++]=this.aa,c[b++]=this.Ja,c[b++]=this.Ea,c[b++]=this.Ca,c[b++]=this.ua,c[b++]=this.Ha,c[b++]=this.Na,c[b++]=this.Ga):(c[b++]=this.pa,c[b++]=this.Ha,c[b++]=this.V,c[b++]=this.R,c[b++]=this.P,c[b++]=this.Ta,c[b++]=this.Qa,c[b++]=this.Ra,c[b++]=this.na);for(var d=0,e=[],g=0;g<this.B.length;g++){var l=d++,p=this.B[g],q=0,r=[];r[q++]=p.errorCode;r[q++]=p.qj;r[q++]=p.xe;r[q++]=p.oe;r[q++]=p.pe;r[q++]=p.eb;r[q++]=p.Hb;
r[q++]=p.Fd;r[q++]=p.ob;r[q++]=p.Ld;r[q++]=p.wb;r[q++]=p.$a;r[q]=p.Ia?p.Ia.save():null;e[l]=r}c[b]=e;he(a,0,c);return a.data()};f.restore=function(a){return xl(this,a[0])};
function xl(a,b,c){var d=0,e=!0;if(a.ha)null==b&&(b=[0,0,0,0,0,0,0,0,64,0]),a.Y=b[d++],a.Wa=b[d++],a.aa=b[d++],a.Ja=b[d++],a.Ea=b[d++],a.Ca=b[d++],a.ua=b[d++],a.Ha=b[d++],a.Na=b[d++],a.Ga=b[d++];else{null==b&&(b=[0,0,Array(14),0,0]);a.pa=b[d++];a.Ha=b[d++];a.V=b[d++];a.R=b[d++];a.P=b[d++];a.Ta=b[d++];a.Qa=b[d++];a.Ra=b[d++];var g=b[d++];void 0!==g?a.na=g:void 0===a.na&&(a.na=-1)}void 0===a.B&&(a.B=Array(a.Ma.length));b=b[d];void 0===b&&(b=[]);for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});
var g=a.B[d],l=a,p=d,q=g,r=a.Ma[d],x=b[d],G=c,D=0,H=!0;void 0===x&&(x=[0,0,!1,Array(8)]);q.Ab=p;q.errorCode=x[D++];q.qj=x[D++];q.xe=x[D++];q.oe=x[D++];q.pe=x[D++];q.eb=x[D++];q.Hb=x[D++];q.Fd=x[D++];q.ob=x[D++];q.Ld=x[D++];q.wb=x[D++];q.Ff=l.ha?0:1;q.name=r.name;void 0===q.name&&(q.name="Hard Drive");q.path=r.path;q.mode=r.mode||(q.path?"preload":"local");"demandro"!=q.mode&&"demandrw"!=q.mode||l.Pd()||(q.mode="local");q.type=r.type;if(void 0===q.type||void 0===rl[l.Ba][q.type])q.type=l.ab;r=rl[l.Ba][q.type];
function xl(a,b,c){var d=0,e=!0;if(a.ga)null==b&&(b=[0,0,0,0,0,0,0,0,64,0]),a.Y=b[d++],a.Wa=b[d++],a.aa=b[d++],a.Ja=b[d++],a.Ea=b[d++],a.Ca=b[d++],a.ua=b[d++],a.Ha=b[d++],a.Na=b[d++],a.Ga=b[d++];else{null==b&&(b=[0,0,Array(14),0,0]);a.pa=b[d++];a.Ha=b[d++];a.V=b[d++];a.R=b[d++];a.P=b[d++];a.Ta=b[d++];a.Qa=b[d++];a.Ra=b[d++];var g=b[d++];void 0!==g?a.na=g:void 0===a.na&&(a.na=-1)}void 0===a.B&&(a.B=Array(a.Ma.length));b=b[d];void 0===b&&(b=[]);for(d=0;d<a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});
var g=a.B[d],l=a,p=d,q=g,r=a.Ma[d],x=b[d],G=c,D=0,H=!0;void 0===x&&(x=[0,0,!1,Array(8)]);q.Ab=p;q.errorCode=x[D++];q.qj=x[D++];q.xe=x[D++];q.oe=x[D++];q.pe=x[D++];q.eb=x[D++];q.Hb=x[D++];q.Fd=x[D++];q.ob=x[D++];q.Ld=x[D++];q.wb=x[D++];q.Ff=l.ga?0:1;q.name=r.name;void 0===q.name&&(q.name="Hard Drive");q.path=r.path;q.mode=r.mode||(q.path?"preload":"local");"demandro"!=q.mode&&"demandrw"!=q.mode||l.Pd()||(q.mode="local");q.type=r.type;if(void 0===q.type||void 0===rl[l.Ba][q.type])q.type=l.ab;r=rl[l.Ba][q.type];
q.Kb=r[2]||17;q.Cb=r[3]||512;if(G&&l.U){var r=l.U,K=q.type;r.B&&(G=r.B[18],G=p?G&240|K:G&15|K<<4,r.B&&(r.B[18]=G,Sh(r)))}void 0===q.Ia&&(q.Ia=null,l.Pa("Type "+q.type+' "'+q.name+'" is fixed disk '+p,!0));yl(l,q);q.$a=x[D++];q.gb=null;q.Ia&&(l=x[D],void 0!==l&&0>q.Ia.restore(l)&&(H=!1),H&&void 0!==q.$a&&(q.gb=q.Ia.seek(q.Fd,q.eb,q.ob+q.Ff)));H||(e=!1);null!=a.pa&&1>=d&&(a.pa|=(g.type&3)<<(1-d<<1))}return e}f.Qi=function(a){var b;a=this.B[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};
function yl(a,b,c){if(b){var d=0,e=0;null==c&&((d=b.oe[2])?e=b.oe[0]<<8|b.oe[1]:c=b.type);null==c||d||(d=rl[a.Ba][c][1],e=rl[a.Ba][c][0]);d&&((c=rl[a.Ba][b.type])&&e!=c[0]&&d!=c[1]&&a.Pa("Warning: drive parameters ("+e+","+d+") do not match drive type "+b.type+" ("+c[0]+","+c[1]+")"),b.Gb=e,b.Hb=d,null==b.Ia&&(b.Ia=new Mk(a,b,b.mode)))}}
f.pj=function(a,b,c){if(a.Ia){var d=a.Ia.info(),e=d[0];if(e){var g=d[2],l=d[1]*g;if(b+c<=e*l)return a.Fd=Math.floor(b/l),b%=l,a.eb=Math.floor(b/g),a.ob=b%g,a.wb=c*d[3],a.errorCode=0,!0}}return!1};
@ -1030,7 +1030,7 @@ function Al(a,b,c){var d=-1,e=null,g=0;if(a.errorCode)return b&&b(d,!1,e,g),d;va
function Cl(a,b){if(a.errorCode)return-1;do{if(a.gb&&a.Ia.write(a.gb,a.$a++,b))break;a.Ia&&a.Ia.seek(a.Fd,a.eb,a.ob+a.Ff,!0,function(b){a.gb=b});if(!a.gb){a.errorCode=20;b=-1;break}a.$a=0;Kl(a)}while(1);return b}function Kl(a){a.ob++;var b=1-a.Ff;a.ob>=a.Kb+b&&(a.ob=b,a.eb++,a.eb>=a.Hb&&(a.eb=0,a.Fd++))}f.Pk=function(){var a=this.A.H&255;!(this.A.F>>8)&&128<a&&(this.na=a-128);return!0};f.Qk=function(){var a;(a=this.A.F>>8||!this.U)||(a=!(this.U.$b[0].jd&64));return a?!0:!1};
var tl={800:ql.prototype.Mk,801:ql.prototype.Nk,802:ql.prototype.Lk},sl={496:ql.prototype.Uj,497:ql.prototype.Wj,498:ql.prototype.Xj,499:ql.prototype.Yj,500:ql.prototype.Tj,501:ql.prototype.Sj,502:ql.prototype.Vj,503:ql.prototype.Zj},vl={800:ql.prototype.cm,801:ql.prototype.fm,802:ql.prototype.em,803:ql.prototype.dm,807:ql.prototype.zi,811:ql.prototype.zi,815:ql.prototype.zi},ul={496:ql.prototype.nl,497:ql.prototype.sl,498:ql.prototype.ql,499:ql.prototype.rl,500:ql.prototype.ml,501:ql.prototype.ll,
502:ql.prototype.ol,503:ql.prototype.kl,1014:ql.prototype.pl};Ma(function(){for(var a=ib(window.document,"pcjs","hdc"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new ql(d);hb(d,c)}});
function Ll(a){Ta.call(this,"Debugger",a,Ll);this.Ja=this.da=-1;this.Ba=4;this.kb=65535;this.pa=5;this.hb=1048575;this.V=Ml(this);this.Wa=Ml(this);this.Y=-1;this.R=[];this.Ca=!1;this.ua=Ml(this);this.P=[];this.B=this.ha=this.U=[];Nl(this);Ol(this);Pl(this,a.messages);this.Ta=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return Ql(b,a)}):void 0===global.$&&(global.$=function(a){return Ql(b,a)})}bb(Ll);
function Ll(a){Ta.call(this,"Debugger",a,Ll);this.Ja=this.da=-1;this.Ba=4;this.kb=65535;this.pa=5;this.hb=1048575;this.V=Ml(this);this.Wa=Ml(this);this.Y=-1;this.R=[];this.Ca=!1;this.ua=Ml(this);this.P=[];this.B=this.na=this.U=[];Nl(this);Ol(this);Pl(this,a.messages);this.Ta=a.commands;var b=this;window?void 0===window.$&&(window.$=function(a){return Ql(b,a)}):void 0===global.$&&(global.$=function(a){return Ql(b,a)})}bb(Ll);
var Rl={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:33554432},Sl={"?":"help","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]","h [#]":"halt/history","i [#]":"input port #",k:"stack trace",l:"load sector(s)",m:"messages","o [#]":"output port #",p:"step over",r:"dump/edit registers","t [#]":"step instruction(s)","u [#]":"unassemble",x:"execution options",reset:"reset computer",ver:"display version"},
Tl="INVALID AAA AAD AAM AAS ADC ADD AND ARPL AS: BOUND BSF BSR BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS CMC CMP CMPSB CMPSW CS: CWD DAA DAS DEC DIV DS: ENTER ES: ESC FADD FBLD FBSTP FCOM FCOMP FDIV FDIVR FIADD FICOM FICOMP FIDIV FIDIVR FILD FIMUL FIST FISTP FISUB FISUBR FLD FLDCW FLDENV FMUL FNSAVE FNSTCW FNSTENV FNSTSW FRSTOR FS: FST FSTP FSUB FSUBR GS: HLT IDIV IMUL IN INC INS INT INT3 INTO IRET JBE JC JCXZ JG JGE JL JLE JMP JA JNC JNO JNP JNS JNZ JO JP JS JZ LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT LMSW LOADALL LOCK LODSB LODSW LOOP LOOPNZ LOOPZ LSL LSS LTR MOV MOVSB MOVSW MOVSX MOVZX MUL NEG NOP NOT OR OS: OUT OUTS POP POPA POPF PUSH PUSHA PUSHF RCL RCR REPNZ REPZ RET RETF ROL ROR SAHF SALC SAR SBB SCASB SCASW SETBE SETC SETG SETGE SETL SETLE SETNBE SETNC SETNO SETNP SETNS SETNZ SETO SETP SETS SETZ SGDT SHL SHLD SHR SHRD SIDT SLDT SMSW SS: STC STD STI STOSB STOSW STR SUB TEST VERR VERW WAIT XCHG XLAT XOR".split(" "),
Ul=[8086,80186,80286,80386],Vl="AL CL DL BL AH CH DH BH AX CX DX BX SP BP SI DI ES CS SS DS FS GS IP PS EAX ECX EDX EBX ESP EBP ESI EDI CR0 CR1 CR2 CR3".split(" "),Wl="BX+SI BX+DI BP+SI BP+DI SI DI BP BX EAX ECX EDX EBX ESP EBP ESI EDI".split(" "),Xl={cpu:1,seg:2,desc:4,tss:8,"int":16,fault:32,bus:64,mem:128,port:256,dma:512,pic:1024,timer:2048,cmos:4096,rtc:8192,8042:16384,chipset:32768,keyboard:65536,key:131072,video:262144,fdc:524288,hdc:1048576,disk:2097152,serial:4194304,speaker:8388608,state:16777216,
@ -1067,24 +1067,24 @@ f.bb=function(a,b){var c=255,d=this.Vb(a,!1,1);-1!==d&&(c=Ge(this.A,d)|0,b&&jm(t
f.Jb=function(a,b,c){var d=this.Vb(a,!0,2);-1!==d&&(this.A.Jb(d,b),c&&jm(this,a,c),yc(this.A))};function Ml(a,b,c,d,e,g){void 0===e&&(e=a.A&&4==a.A.xa.sa);void 0===g&&(g=a.A&&4==a.A.xa.Zc);return{La:b||0,oa:c,Oa:d,ye:!1,Hc:e||!1,Fc:g||!1}}function lm(a){return[a.La,a.oa,a.Oa,a.ye,a.Hc,a.Fc,a.gh,a.ud]}function mm(a){return{La:a[0],oa:a[1],Oa:a[2],ye:a[3],Hc:a[4],Fc:a[5],gh:a[6],ud:a[7]}}function nm(a,b){if(null!=b.oa){var c=em(a,b.oa);if(!c||b.La>c.qb)b.La=0,b.Oa=null}}
function jm(a,b,c){c=c||1;null!=b.Oa&&(b.Oa+=c);null!=b.oa&&(b.La+=c,nm(a,b))}function Ig(a,b,c){return null!=b?h(b,4)+":"+h(a,a&-65536||c?8:4):h(a)}function om(a){return null==a.oa?"%"+h(a.Oa):Ig(a.La,a.oa,a.Fc)}function hm(a,b,c){var d="";for(c=c||256;d.length<c;){var e=a.bb(b,1);if(!e||36==e)break;d+=32<=e&&128>e?String.fromCharCode(e):"."}return d}
var fm={PREV_TSS:0,CPL0_SP:2,CPL0_SS:4,CPL1_SP:6,CPL1_SS:8,CPL2_SP:10,CPL2_SS:12,TASK_IP:14,TASK_PS:16,TASK_AX:18,TASK_CX:20,TASK_DX:22,TASK_BX:24,TASK_SP:26,TASK_BP:28,TASK_SI:30,TASK_DI:32,TASK_ES:34,TASK_CS:36,TASK_SS:38,TASK_DS:40,TASK_LDT:42};
function pm(a,b,c){var d="";c=c||10;var e=0,g=a.Ea,l=a.na;if(l.length){var p=void 0===b?a.lb:+b;isNaN(p)?p=c:d="more ";p>l.length&&(a.W("note: only "+l.length+" available"),p=l.length);g-=p;0>g&&(null!=l[l.length-1][1]?g+=l.length:(p=g+p,g=0));for(void 0!==b&&a.W(p+" instructions earlier:");c&&g!=a.Ea;){b=l[g++];if(null==b.oa)break;b=Ml(a,b.La,b.oa,b.Oa);a.W(qm(a,b,"history",p--));b.gh&&(g++,p--);g>=l.length&&(g=0);a.lb=p;e++;c--}}e||(a.W("no "+d+"history available"),a.lb=void 0)}
function Pl(a,b){a.ea=a;a.Ub=a.zj=1073741824;a.Na=null;a.Ra=[];var c=im(a,b.replace("keys","key").replace("kbd","keyboard"));if(c.length)for(var d in Xl)0<=va(c,d)&&(a.Ub|=Xl[d],a.W(d+" messages enabled"))}function Hh(a,b,c){for(var d in Xl)if(b==Xl[d]){a.Ra[d]=c;break}}function rm(a,b){b=b||0;var c=va(Vl,a.substr(b,2).toUpperCase());0>c&&2<a.length&&(c=va(Vl,a.substr(b,3).toUpperCase()));return c}
function pm(a,b,c){var d="";c=c||10;var e=0,g=a.Ea,l=a.ga;if(l.length){var p=void 0===b?a.lb:+b;isNaN(p)?p=c:d="more ";p>l.length&&(a.W("note: only "+l.length+" available"),p=l.length);g-=p;0>g&&(null!=l[l.length-1][1]?g+=l.length:(p=g+p,g=0));for(void 0!==b&&a.W(p+" instructions earlier:");c&&g!=a.Ea;){b=l[g++];if(null==b.oa)break;b=Ml(a,b.La,b.oa,b.Oa);a.W(qm(a,b,"history",p--));b.gh&&(g++,p--);g>=l.length&&(g=0);a.lb=p;e++;c--}}e||(a.W("no "+d+"history available"),a.lb=void 0)}
function Pl(a,b){a.ea=a;a.Ub=a.zj=1073741824;a.Na=null;a.Ra=[];var c=im(a,b.replace("keys","key").replace("kbd","keyboard"));if(c.length)for(var d in Xl)0<=va(c,d)&&(a.Ub|=Xl[d],a.W(d+" messages enabled"));Ol(a)}function Hh(a,b,c){for(var d in Xl)if(b==Xl[d]){a.Ra[d]=c;break}}function rm(a,b){b=b||0;var c=va(Vl,a.substr(b,2).toUpperCase());0>c&&2<a.length&&(c=va(Vl,a.substr(b,3).toUpperCase()));return c}
function sm(a,b){var c="??";if(0<=b){var d,e,g=a.A;switch(b){case 0:d=g.F;e=2;break;case 1:d=g.G;e=2;break;case 2:d=g.H;e=2;break;case 3:d=g.D;e=2;break;case 4:d=g.F>>8;e=2;break;case 5:d=g.G>>8;e=2;break;case 6:d=g.H>>8;e=2;break;case 7:d=g.D>>8;e=2;break;case 8:d=g.F;e=4;break;case 9:d=g.G;e=4;break;case 10:d=g.H;e=4;break;case 11:d=g.D;e=4;break;case 12:d=u(g);e=4;break;case 13:d=g.L;e=4;break;case 14:d=g.K;e=4;break;case 15:d=g.J;e=4;break;case 22:d=w(g);e=a.Ba;break;case 23:d=Zc(g);e=a.Ba;break;
case 16:d=g.cb.oa;e=4;break;case 17:d=ce(g);e=4;break;case 18:d=g.Da.oa;e=4;break;case 19:d=g.tb.oa,e=4}if(!e)if(80286==a.A.qa)32==b&&(d=g.rb,e=4);else if(80386<=a.A.qa)switch(b){case 24:d=g.F;e=8;break;case 25:d=g.G;e=8;break;case 26:d=g.H;e=8;break;case 27:d=g.D;e=8;break;case 28:d=u(g);e=8;break;case 29:d=g.L;e=8;break;case 30:d=g.K;e=8;break;case 31:d=g.J;e=8;break;case 32:d=g.rb;e=8;break;case 33:d=g.vf;e=8;break;case 34:d=g.Ud;e=8;break;case 35:d=g.Vd;e=8;break;case 20:d=g.nc.oa;e=4;break;case 21:d=
g.oc.oa,e=4}e&&(c=h(d,e))}return c}f=Ll.prototype;f.message=function(a,b){b&&(a+=" @"+Ig(w(this.A),ce(this.A)));if(!this.Na||a!=this.Na)if(this.W(a),this.Na=a,this.A){this.Ub&-2147483648&&this.Pb();var c=this.A;c.Z.Fe=0;c.Ta-=c.A;c.A=0;yc(c)}};
function mh(a,b,c){var d,e=!1,g=Rl[b];g&&(d=a.A.F>>8,e=a.ta(g)?!0:524288==g&&a.ta(g=1048576));if(e){var l=a.A.H&255;if(33==b&&11==d||524288==g&&128<=l||1048576==g&&128>l)e=!1}if(e){if(g=(g=cm[b])&&g[d]||""){for(var l=0,p,q;0<=(l=g.indexOf("%",l));)q=rm(g,l+1),0<=q&&(g=g.replace("%"+Vl[q],sm(a,q))),l++;for(l=0;0<=(l=g.indexOf("#",l));)q=g.substr(l+1,2),p=fa(q,16),null!=p&&32<=p&&128>p?(p=q+" '"+String.fromCharCode(p)+"'",g=g.replace("#"+q,p),l+=p.length):l++;for(l=0;0<=(l=g.indexOf("$",l));)q=g.substr(l+
1,9),p=tm(a,q),p=q+' "'+hm(a,p)+'"',g=g.replace("$"+q,p),l+=p.length;for(l=0;0<=(l=g.indexOf("^",l));)q=g.substr(l+1,9),p=tm(a,q),jm(a,p),p=q+' "'+hm(a,p,11)+'"',g=g.replace("^"+q,p),l+=p.length;g=" "+g}a.message("INT "+k(b)+": AH="+k(d)+" @"+Ig(c-2-a.A.xa.Ka,ce(a.A))+g)}return e}
function jb(a,b,c,d,e,g,l,p){p|=256;if(null==e||(a.Ub&p)==p)p=null,null!=e&&(p=ce(a.A),e-=a.A.xa.Ka),a.message(b.Gd+"."+(null!=d?"outPort":"inPort")+"("+ga(c)+","+(g?g:"unknown")+(null!=d?","+k(d):"")+")"+(null!=l?": "+k(l):"")+(null!=e?" @"+Ig(e,p):""))}f.Ok=function(){this.W("Type ? for list of debugger commands");this.Tc();if(this.Ta){var a=im(this,this.Ta);delete this.Ta;for(var b in a)Ql(this,a[b])}};
function Ol(a){var b;if(Oe(a)){if(!a.na||!a.na.length){a.na=Array(1E4);for(b=0;b<a.na.length;b++)a.na[b]=Ml(a);a.Ea=0}if(!a.aa||!a.aa.length)for(a.aa=Array(256),b=0;b<a.aa.length;b++)a.aa[b]=[b,0]}else a.Ea=0,a.na=[],a.aa=[]}f.je=function(a){if(!um(this))return!1;this.A.je(a);return!0};
function Ol(a){var b;if(Oe(a)){if(!a.ga||!a.ga.length){a.ga=Array(1E5);for(b=0;b<a.ga.length;b++)a.ga[b]=Ml(a);a.Ea=0;a.W("instruction history buffer allocated")}if(!a.aa||!a.aa.length)for(a.aa=Array(256),b=0;b<a.aa.length;b++)a.aa[b]=[b,0]}else a.ga&&a.ga.length&&a.W("instruction history buffer freed"),a.Ea=0,a.ga=[],a.aa=[]}f.je=function(a){if(!um(this))return!1;this.A.je(a);return!0};
f.Se=function(a,b,c){if(!um(this))return!1;this.da=0;do{a||Oe(this)&&Te(this,this.A.za,0);try{var d=this.A.Se(a);0<d&&(this.da+=d,Jc(this.A,d,!0),Cc(this.A,d),this.Ja++)}catch(e){this.da=0,pb(this.A,e.stack||e.message)}}while(this.A.X&12528);!1!==c&&yc(this.A);this.Tc(b||!1,!1);return 0<this.da};f.Pb=function(a){this.A&&this.A.Pb(a)};f.Tc=function(a,b){void 0===a&&(a=!0);void 0===b&&(b=!0);this.V=Ml(this,w(this.A),ce(this.A));a&&1!=this.O?vm(this,null,b):wm(this)};
function um(a){var b;if(b=a.A&&ob(a.A))b=a.A,b.ma.bc?b=!0:(b.W(b.toString()+" not powered"),b=!1);b&&!mb(a.A)?(a=a.A,a.ma.ad?(a.W(a.toString()+" error"),a=!0):a=!1,a=!a):a=!1;return a}f.dc=function(a,b){return!b&&(this.reset(!0),a&&this.restore&&!this.restore(a))?!1:!0};f.cc=function(a,b){b&&this.W(a?"suspending":"shutting down");return a&&this.save?this.save():!0};
f.reset=function(a){Ol(this);this.Ja=0;this.Na=null;this.da=0;this.V=Ml(this,w(this.A),ce(this.A));void 0===this.ma.zb||a||this.W("reset");this.ma.zb=!1;xm(this);a||this.Tc()};f.save=function(){var a=new ge(this);he(a,0,lm(this.V));he(a,1,lm(this.ua));he(a,2,[this.R,this.Ca,this.Ub]);return a.data()};f.restore=function(a){var b=0;void 0!==a[2]&&(this.V=mm(a[b++]),this.ua=mm(a[b++]),this.R=a[b][0],"string"==typeof this.R&&(this.R=[this.R]),this.Ca=a[b][1],this.Ub||(this.Ub=a[b][2]));return!0};
f.start=function(a,b){this.O||this.W("running");this.ma.zb=!0;this.yb=a;this.cd=b};f.stop=function(a,b){if(this.ma.zb){this.ma.zb=!1;this.da=b-this.cd;if(!this.O){var c="stopped";if(this.da){var d=a-this.yb,e=0<d?Math.round(1E3*this.da/d):0,c=c+" (";Oe(this)&&(c+=this.Ja+" ops, ",this.Ja=0);c+=this.da+" cycles, "+d+" ms, "+e+" hz)"}this.W(c)}this.Tc(!0,2!=this.O);this.Mc();xm(this,this.A.za)}};function Oe(a){return 1<a.B.length||a.ta(16)}
function Te(a,b,c){if(0<c){if(ym(a,b,a.B))return!0;if(!(a.A.fa&512)&&a.A.He<a.A.xa.Ya)return a.Fa("interrupts disabled at IOPL "+a.A.He+" and CPL "+a.A.xa.Ya,!0),!0}0<=c&&a.aa.length&&(a.Ja++,c=Ge(a.A,b),null!=c&&(a.aa[c][1]++,c=a.na[a.Ea],c.La=w(a.A),c.oa=ce(a.A),c.Oa=b,++a.Ea==a.na.length&&(a.Ea=0)));return!1}function oc(a,b){return ym(a,b,a.ha)?(a.Pb(!0),!0):!1}function pc(a,b){return ym(a,b,a.U)?(a.Pb(!0),!0):!1}function Wb(a,b,c){a.W("break on input from port "+ga(b)+": "+k(c));a.Pb(!0)}
function $b(a,b,c){a.W("break on output to port "+ga(b)+": "+k(c));a.Pb(!0)}function Nl(a){var b;a.B=["exec"];if(void 0!==a.ha)for(b=1;b<a.ha.length;b++){var c=a.va,d=a.Vb(a.ha[b]);rc(c.ya[d>>>c.Sa],!1)}a.ha=["read"];if(void 0!==a.U)for(b=1;b<a.U.length;b++)c=a.va,d=a.Vb(a.U[b]),rc(c.ya[d>>>c.Sa],!0);a.U=["write"];a.Qa=0}
function Te(a,b,c){if(0<c){if(ym(a,b,a.B))return!0;if(!(a.A.fa&512)&&a.A.He<a.A.xa.Ya)return a.Fa("interrupts disabled at IOPL "+a.A.He+" and CPL "+a.A.xa.Ya,!0),!0}0<=c&&a.aa.length&&(a.Ja++,c=Ge(a.A,b),null!=c&&(a.aa[c][1]++,c=a.ga[a.Ea],c.La=w(a.A),c.oa=ce(a.A),c.Oa=b,++a.Ea==a.ga.length&&(a.Ea=0)));return!1}function oc(a,b){return ym(a,b,a.na)?(a.Pb(!0),!0):!1}function pc(a,b){return ym(a,b,a.U)?(a.Pb(!0),!0):!1}function Wb(a,b,c){a.W("break on input from port "+ga(b)+": "+k(c));a.Pb(!0)}
function $b(a,b,c){a.W("break on output to port "+ga(b)+": "+k(c));a.Pb(!0)}function Nl(a){var b;a.B=["exec"];if(void 0!==a.na)for(b=1;b<a.na.length;b++){var c=a.va,d=a.Vb(a.na[b]);rc(c.ya[d>>>c.Sa],!1)}a.na=["read"];if(void 0!==a.U)for(b=1;b<a.U.length;b++)c=a.va,d=a.Vb(a.U[b]),rc(c.ya[d>>>c.Sa],!0);a.U=["write"];a.Qa=0}
f.Id=function(a,b,c){if(!zm(this,a,b)){b.ye=c;a.push(b);if(a!=this.B){var d=this.va,e=this.Vb(b);d.ya[e>>>d.Sa].Id(e&d.B,a==this.U)}c?b.oa=null:this.W("breakpoint enabled: "+om(b)+" ("+a[0]+")");Ol(this);return!0}return!1};
function zm(a,b,c,d){var e=!1;c=Am(a,a.Vb(c));for(var g=1;g<b.length;g++){var l=b[g];if(c==Am(a,a.Vb(l))){e=!0;if(d){b.splice(g,1);b!=a.B&&(d=a.va,rc(d.ya[c>>>d.Sa],b==a.U));l.ye||a.W("breakpoint cleared: "+om(l)+" ("+b[0]+")");Ol(a);break}a.W("breakpoint exists: "+om(l)+" ("+b[0]+")");break}}return e}function Bm(a,b){for(var c=1;c<b.length;c++)a.W("breakpoint enabled: "+om(b[c])+" ("+b[0]+")");return b.length-1}
function uc(a,b,c,d){if(void 0===d)uc(a,b,c,a.ha),uc(a,b,c,a.U);else for(var e=1;e<d.length;e++){var g=a.Vb(d[e]);if(g>=b&&g<b+c){var l=a.va;l.ya[g>>>l.Sa].Id(g&l.B,d==a.U)}}}function xm(a,b){if(void 0!==b)ym(a,b,a.B,!0),a.O=0;else for(var c=1;c<a.B.length;c++){var d=a.B[c];if(d.ye){if(!zm(a,a.B,d,!0))break;c=0}}}function Am(a,b){var c=a.hb&-65536;(b&c)==c&&(b&=1048575);return b}
function uc(a,b,c,d){if(void 0===d)uc(a,b,c,a.na),uc(a,b,c,a.U);else for(var e=1;e<d.length;e++){var g=a.Vb(d[e]);if(g>=b&&g<b+c){var l=a.va;l.ya[g>>>l.Sa].Id(g&l.B,d==a.U)}}}function xm(a,b){if(void 0!==b)ym(a,b,a.B,!0),a.O=0;else for(var c=1;c<a.B.length;c++){var d=a.B[c];if(d.ye){if(!zm(a,a.B,d,!0))break;c=0}}}function Am(a,b){var c=a.hb&-65536;(b&c)==c&&(b&=1048575);return b}
function ym(a,b,c,d){var e=!1;if(!a.Qa++){b=Am(a,b);a.ta(-2147483632)&&204==Ge(a.A,b)&&(e=!0);for(var g=1;!e&&g<c.length;g++){var l=c[g];null!=l.oa&&(l.Oa=null);b==Am(a,a.Vb(l))&&(l.ye?zm(a,c,l,!0):d||a.W("breakpoint hit: "+om(l)+" ("+c[0]+")"),e=!0)}}a.Qa--;return e}
function qm(a,b,c,d){for(var e=Ml(a,b.La,b.oa,b.Oa),g=a.bb(b,1),l=4,p=!1,q=!1;(102==g||103==g)&&l--;)102==g?p||(b.Hc=!b.Hc,p=!0):q||(b.Fc=!b.Fc,q=!0),g=a.bb(b,1);l=a.Ga[g];q=l[0];p=-1;205==q&&(q=a.bb(b,1),l=am[q]||Yl,g|=q<<8,q=l[0]);q>=Tl.length&&(p=a.bb(b,1),l=bm[q-Tl.length][p>>3&7]);var q=Tl[l[0]],r=l.length-1,x="";if(164<=g&&167>=g||170<=g&&175>=g)r=0,b.Hc&&"W"==q.slice(-1)&&(q=q.slice(0,-1)+"D");for(var g=null,G=!0,D=1;D<=r;D++){var H,K;H="";K=l[D];if(void 0!==K){null==g&&(g=K>>14);var X=K&15;
if(0!=X)if(15==X)G=!1;else{var P=K&240;if(128<=P)if(0>p&&(p=a.bb(b,1)),160<=P)H=Cm(a,p>>3&7,K,b);else{H=a;var X=b,T="",P=p>>6,na=p&7;if(3>P){var ha=void 0;if(!P&&(!X.Fc&&6==na||X.Fc&&5==na))P=2;else{if(X.Fc)if(4!=na)na+=8;else{var T=P,Na=H.bb(X,1),ha=Na>>6,zc=Na>>3&7,Na=Na&7,ea="";if(T||5!=Na)ea=Wl[Na+8];4!=zc&&(ea&&(ea+="+"),ea+=Wl[zc+8],ha&&(ea+="*"+(1<<ha)));T=ea}T||(T=Wl[na])}1==P?(ha=H.bb(X,1),ha&128?(ha=ha<<24>>24,T+="-"+h(-ha,2)):T+="+"+h(ha,2)):2==P&&(T&&(T+="+"),X.Fc?(ha=km(H,X,4),T+=h(ha)):
@ -1111,19 +1111,19 @@ ce(a.A));wm(a,om(a.V))}}function Om(a,b,c){for(var d=null,e=b.La,g=e,l=1;6>=l;l+
function wm(a,b,c,d){b=tm(a,b,1);if(null!=b.La){void 0===d&&(d=1);var e=Ml(a,a.kb,b.oa,a.va.gf),e=256;if(void 0!==c){e=tm(a,c,1);if(null==e.La||e.La<b.La)return;e=e.La-b.La;if(256<e){a.W("range too large");return}d=-1}var g=b.La!=a.V.La;c=0;for(Em(a,b,!0);0<e&&d--;){a.bb(b);var l=b.Oa,p=mb(a,!1)||a.O?a.da:null,q=null!=p?"cycles":null,r=Dm(a,b);if(r[0]){var x=r[0]+":",g=!1;r[2]&&(x+=" "+r[2]);a.W(x)}g&&a.W();r[3]&&(q=r[3],p=null);g=qm(a,b,q,p);b.ud||d||d++;a.W(g);a.V=b;e-=b.Oa-l;g=!1;c++}}}
function im(a,b,c){if(c)if(b){0>a.Y&&a.R.length&&(a.Y=0);if(0>a.Y||b!=a.R[a.Y])a.R.splice(0,0,b),a.Y=0;a.Y--}else b=a.R[a.Y+1];a=b?b.split(0<=b.indexOf("|")?"|":";"):[""];for(var d in a)a[d]=oa(a[d]);return a}
function Ql(a,b){var c=!0;try{if(b.length||(a.Ca?(a.W("ended assemble @"+om(a.ua)),a.V=a.ua,a.Ca=!1):b="?"),b=b.toLowerCase(),ob(a)&&0<b.length){if(a.Ca)b="a "+om(a.ua)+" "+b;else{var d,e,g;switch(b){case "reset":return a.la&&a.la.reset(),!0;case "ver":return a.W("PCjs version 1.18.4 ("+a.A.qa+",RELEASE,NOPREFETCH"+(qb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)"),!0;default:for(e=b.charAt(0),g=1;g<b.length;g++){d=b.charAt(g);if(" "==d)break;if("r"==e||"a">d||"z"<d){b=b.substring(0,g)+" "+b.substring(g);
break}}}}var l=b.split(" ");switch(l[0].charAt(0)){case "a":var p=tm(a,l[1],1);if(null!=p.La)if(a.ua=p,void 0===l[2])a.W("begin assemble @"+om(p)),a.Ca=!0,yc(a.A);else{var q;a.W("not supported yet");q=[];if(q.length){for(var r=0;r<q.length;r++)a.Lc(p,q[r],1);a.W(qm(a,a.ua))}}break;case "b":a:{var x=l[1],G=l[0].charAt(1);if(G&&"?"!=G)if("l"==G)r=0,r+=Bm(a,a.B),r+=Bm(a,a.ha),(r+=Bm(a,a.U))||a.W("no breakpoints");else if(void 0===x)a.W("missing breakpoint address");else{r={};if("*"!=x&&(r=tm(a,x,1),
null==r.La))break a;x=null==r.La?x:ga(r.La);"c"==G?null==r.La?(Nl(a),a.W("all breakpoints cleared")):zm(a,a.B,r,!0)||zm(a,a.ha,r,!0)||zm(a,a.U,r,!0)||a.W("breakpoint missing: "+om(r)):"i"==G?a.W("breakpoint "+(Tb(a.va,r.La)?"enabled":"cleared")+": port "+x+" (input)"):"o"==G?a.W("breakpoint "+(Xb(a.va,r.La)?"enabled":"cleared")+": port "+x+" (output)"):null!=r.La&&("p"==G?a.Id(a.B,r):"r"==G?a.Id(a.ha,r):"w"==G?a.Id(a.U,r):a.W("unknown breakpoint command: "+G))}else a.W("\nbreakpoint commands:"),a.W("\tbi [p]\ttoggle break on input port [p]"),
break}}}}var l=b.split(" ");switch(l[0].charAt(0)){case "a":var p=tm(a,l[1],1);if(null!=p.La)if(a.ua=p,void 0===l[2])a.W("begin assemble @"+om(p)),a.Ca=!0,yc(a.A);else{var q;a.W("not supported yet");q=[];if(q.length){for(var r=0;r<q.length;r++)a.Lc(p,q[r],1);a.W(qm(a,a.ua))}}break;case "b":a:{var x=l[1],G=l[0].charAt(1);if(G&&"?"!=G)if("l"==G)r=0,r+=Bm(a,a.B),r+=Bm(a,a.na),(r+=Bm(a,a.U))||a.W("no breakpoints");else if(void 0===x)a.W("missing breakpoint address");else{r={};if("*"!=x&&(r=tm(a,x,1),
null==r.La))break a;x=null==r.La?x:ga(r.La);"c"==G?null==r.La?(Nl(a),a.W("all breakpoints cleared")):zm(a,a.B,r,!0)||zm(a,a.na,r,!0)||zm(a,a.U,r,!0)||a.W("breakpoint missing: "+om(r)):"i"==G?a.W("breakpoint "+(Tb(a.va,r.La)?"enabled":"cleared")+": port "+x+" (input)"):"o"==G?a.W("breakpoint "+(Xb(a.va,r.La)?"enabled":"cleared")+": port "+x+" (output)"):null!=r.La&&("p"==G?a.Id(a.B,r):"r"==G?a.Id(a.na,r):"w"==G?a.Id(a.U,r):a.W("unknown breakpoint command: "+G))}else a.W("\nbreakpoint commands:"),a.W("\tbi [p]\ttoggle break on input port [p]"),
a.W("\tbo [p]\ttoggle break on output port [p]"),a.W("\tbp [a]\tset exec breakpoint at addr [a]"),a.W("\tbr [a]\tset read breakpoint at addr [a]"),a.W("\tbw [a]\tset write breakpoint at addr [a]"),a.W("\tbc [a]\tclear breakpoint at addr [a]"),a.W("\tbl\tlist all breakpoints")}break;case "c":a.Ze&&(a.Ze.value="");break;case "d":a:{var D=l[0],r=l[1],H=l[2],K;if("?"==r){r="";for(K in Xl)a.Ra[K]&&(r&&(r+=","),r+=K);r+=",state,symbols";a.W("\ndump commands:");a.W("\tdb [a] [#] dump # bytes at address a");
a.W("\tdw [a] [#] dump # words at address a");a.W("\tdd [a] [#] dump # dwords at address a");a.W("\tdh [#] [#] dump # instructions prior");r.length&&a.W("dump extensions:\n\t"+r)}else if("state"==r)a.W(Qm(a.la,!0));else if("symbols"==r)for(r=0;r<a.P.length;r++){var X=a.P[r][0],P=a.P[r][2],T;for(T in P)if("."!=T.charAt(0)){var na=P[T],ha=na.o;if(void 0!==ha){var Na=na.s;void 0===Na&&(Na=X>>>4);var zc=P[T].l;zc&&(T=zc);a.W(Ig(ha,Na)+" "+T)}}}else{var ea=0;H&&("l"==H.charAt(0)&&(H=H.substr(1)),
ea=+H);if("dh"==D)pm(a,r,ea);else{"ds"==D&&(D="d",H=r,r="desc");for(K in Xl)if(r==K){var vd=a.Ra[K];vd?vd(H):a.W("no dump registered for "+r);break a}var aa=tm(a,r,2);if(null!=aa.La&&(null!=aa.oa||null!=aa.Oa)){var da="",Qa="dd"==D?4:"dw"==D?2:1,l=16/Qa|0;ea?(ea=(ea+l-1)/l|0)||(ea=1):ea=8;for(l=0;l<ea;l++){var eb=0,Ua=0,Oa="",D="",r=om(aa);for(K=0;16>K;K++){var Ja=a.bb(aa,1),eb=eb|Ja<<(Ua++<<3);Ua==Qa&&(Oa+=h(eb,2*Qa),Oa+=1==Qa?7==K?"-":" ":" ",eb=Ua=0);D+=32<=Ja&&128>Ja?String.fromCharCode(Ja):
"."}da&&(da+="\n");da+=r+" "+Oa+" "+D}da&&a.W(da);a.Wa=aa}}}}break;case "e":var Sc=l[1];if(void 0===Sc)a.W("missing address");else{var Tc=tm(a,Sc,2);if(null!=Tc.La)for(r=2;r<l.length;r++){var Ac=fa(l[r],16);if(void 0===Ac){a.W("unrecognized value: "+k(Ac));break}a.W("setting "+om(Tc)+" to "+k(Ac));a.Lc(Tc,Ac,1)}}break;case "f":Lm(a,l[1]);break;case "g":a:{var wd=l[1];if(void 0!==wd){var Kj=tm(a,wd,1);if(null==Kj.La)break a;a.Id(a.B,Kj,!0)}a.je(!0)||a.W('cpu busy, "g" command ignored')}break;case "h":var Lj=
ea=+H);if("dh"==D)pm(a,r,ea);else{"ds"==D&&(D="d",H=r,r="desc");for(K in Xl)if(r==K){var wd=a.Ra[K];wd?wd(H):a.W("no dump registered for "+r);break a}var aa=tm(a,r,2);if(null!=aa.La&&(null!=aa.oa||null!=aa.Oa)){var da="",Qa="dd"==D?4:"dw"==D?2:1,l=16/Qa|0;ea?(ea=(ea+l-1)/l|0)||(ea=1):ea=8;for(l=0;l<ea;l++){var eb=0,Ua=0,Oa="",D="",r=om(aa);for(K=0;16>K;K++){var Ja=a.bb(aa,1),eb=eb|Ja<<(Ua++<<3);Ua==Qa&&(Oa+=h(eb,2*Qa),Oa+=1==Qa?7==K?"-":" ":" ",eb=Ua=0);D+=32<=Ja&&128>Ja?String.fromCharCode(Ja):
"."}da&&(da+="\n");da+=r+" "+Oa+" "+D}da&&a.W(da);a.Wa=aa}}}}break;case "e":var Sc=l[1];if(void 0===Sc)a.W("missing address");else{var Tc=tm(a,Sc,2);if(null!=Tc.La)for(r=2;r<l.length;r++){var Ac=fa(l[r],16);if(void 0===Ac){a.W("unrecognized value: "+k(Ac));break}a.W("setting "+om(Tc)+" to "+k(Ac));a.Lc(Tc,Ac,1)}}break;case "f":Lm(a,l[1]);break;case "g":a:{var xd=l[1];if(void 0!==xd){var Kj=tm(a,xd,1);if(null==Kj.La)break a;a.Id(a.B,Kj,!0)}a.je(!0)||a.W('cpu busy, "g" command ignored')}break;case "h":var Lj=
l[1];a.ma.zb&&void 0===Lj?(a.W("halting"),a.Pb()):pm(a,Lj);break;case "i":var hg=l[1];if(hg&&"?"!=hg){var ig=dm(a,hg);if(void 0!==ig){var hn=Vb(a.va,ig);a.W(ga(ig)+": "+k(hn))}}else a.W("\ninput commands:"),a.W("\ti [p]\tread port [p]"),a.W("warning: port accesses can affect hardware state");break;case "k":r=0;eb=a.A.xa.oa;Ua=Ml(a);Oa=Ml(a,u(a.A),a.A.Da.oa);for(a.W("stack trace for "+om(Oa));10>r;){aa=null;for(Ja=256;Oa.La>>>0<a.A.Mg>>>0;){Ua.La=a.kc(Oa,!0);if(null==Oa.Oa||!Ja--)break;Ua.oa=eb;if(aa=
Om(a,Ua))break;Ua.oa=a.kc(Oa);if(aa=Om(a,Ua,!0)){eb=a.kc(Oa,!0);0<aa.indexOf("INT")&&a.kc(Oa,!0);break}}if(!aa)break;aa=ma(aa,50)+";stack="+om(Oa)+" return="+om(Ua);a.W(aa);r++}r||a.W("no return addresses found");break;case "l":Nm(a,l);break;case "m":a:{r=null;da=l[1];"?"==da&&(da=void 0);if(void 0!==da){aa=0;if("all"==da)aa=1610481663,da=null;else if("on"==da)r=!0,da=null;else if("off"==da)r=!1,da=null;else{"keys"==da&&(da="key");"kbd"==da&&(da="keyboard");for(ea in Xl)if(da==ea){aa=Xl[ea];r=!!(a.Ub&
aa);break}if(!aa){a.W("unknown message category: "+da);break a}}aa&&("on"==l[2]?(a.Ub|=aa,r=!0):"off"==l[2]&&(a.Ub&=~aa,r=!1))}aa=0;Ja="";for(ea in Xl)if(!da||da==ea)if(Qa=!!(a.Ub&Xl[ea]),null===r||r==Qa)Ja&&(Ja+=","),++aa%10||(Ja+="\n\t"),"key"==ea&&(ea="keys"),Ja+=ea;void 0===da&&a.W("\nmessage commands:\n\tm [category] [on|off]\tturn categories on/off");a.W((null!==r?r?"messages on: ":"messages off: ":"message categories:\n\t")+(Ja||"none"))}break;case "o":var jg=l[1],jn=l[2];if(jg&&"?"!=jg){var kg=
dm(a,jg,"port #"),lg=dm(a,jn);void 0!==kg&&void 0!==lg&&(Zb(a.va,kg,lg),a.W(ga(kg)+": "+k(lg)))}else a.W("\noutput commands:"),a.W("\to [p] [b]\twrite byte [b] to port [p]"),a.W("warning: port accesses can affect hardware state");break;case "p":case "pr":var Mj="pr"==l[0]?1:0,r=1+Mj;if(a.O)a.W("step in progress");else{var Qe,aa=!1,kb=Ml(a,w(a.A),ce(a.A));do switch(Qe=!1,a.bb(kb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:jm(a,kb,1);Qe=!0;break;case 204:case 206:a.O=
aa);break}if(!aa){a.W("unknown message category: "+da);break a}}aa&&("on"==l[2]?(a.Ub|=aa,r=!0):"off"==l[2]&&(a.Ub&=~aa,r=!1))}aa=0;Ja="";for(ea in Xl)if(!da||da==ea)if(Qa=!!(a.Ub&Xl[ea]),null===r||r==Qa)Ja&&(Ja+=","),++aa%10||(Ja+="\n\t"),"key"==ea&&(ea="keys"),Ja+=ea;void 0===da&&a.W("\nmessage commands:\n\tm [category] [on|off]\tturn categories on/off");a.W((null!==r?r?"messages on: ":"messages off: ":"message categories:\n\t")+(Ja||"none"));Ol(a)}break;case "o":var jg=l[1],jn=l[2];if(jg&&"?"!=
jg){var kg=dm(a,jg,"port #"),lg=dm(a,jn);void 0!==kg&&void 0!==lg&&(Zb(a.va,kg,lg),a.W(ga(kg)+": "+k(lg)))}else a.W("\noutput commands:"),a.W("\to [p] [b]\twrite byte [b] to port [p]"),a.W("warning: port accesses can affect hardware state");break;case "p":case "pr":var Mj="pr"==l[0]?1:0,r=1+Mj;if(a.O)a.W("step in progress");else{var Qe,aa=!1,kb=Ml(a,w(a.A),ce(a.A));do switch(Qe=!1,a.bb(kb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:jm(a,kb,1);Qe=!0;break;case 204:case 206:a.O=
r;jm(a,kb,1);break;case 205:case 224:case 225:case 226:a.O=r;jm(a,kb,2);break;case 232:a.O=r;jm(a,kb,3);break;case 154:a.O=r;jm(a,kb,5);break;case 255:var Nj=a.kc(kb)&14591;if(4351==Nj||6399==Nj)a.O=r,qm(a,kb);break;case 243:case 242:jm(a,kb,1);aa=Qe=!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:aa&&(a.O=r,jm(a,kb,1))}while(Qe);a.O?(a.Id(a.B,kb,!0),a.je()||(a.A.Mc(),a.O=0)):Pm(a,Mj?"tr":"t")}break;case "r":vm(a,
l);break;case "t":case "tr":Pm(a,l[0],l[1]);break;case "u":wm(a,l[1],l[2],8);break;case "x":a:if(void 0===l[1]||"?"==l[1])a.W("\nexecution options:"),a.W("\tcs int #\tset checksum cycle interval to #"),a.W("\tcs start #\tset checksum cycle start count to #"),a.W("\tcs stop #\tset checksum cycle stop count to #"),a.W("\tsp #\t\tset speed multiplier to #");else switch(l[1]){case "cs":var Hd;void 0!==l[3]&&(Hd=+l[3]);switch(l[2]){case "int":a.A.Z.Ce=Hd;break;case "start":a.A.Z.jf=Hd;break;case "stop":a.A.Z.Ee=
Hd;break;default:a.W("unknown cs option");break a}void 0!==Hd&&xc(a.A);a.W("checksums "+(a.A.ma.te?"enabled":"disabled"));break;case "sp":void 0!==l[2]&&Hc(a.A,+l[2]);a.W("target speed: "+(a.A.Z.fe.toFixed(2)+"Mhz")+" ("+a.A.Z.yd+"x)");break;default:a.W("unknown option: "+l[1])}break;case "?":var r="commands:",mg;for(mg in Sl)r+="\n"+ma(mg,7)+Sl[mg];Oe(a)||(r+="\nnote: frequency/history disabled if no exec breakpoints");a.W(r);break;default:a.W("unknown command: "+b),c=!1}}}catch(Oj){a.W("debugger error: "+
l);break;case "t":case "tr":Pm(a,l[0],l[1]);break;case "u":wm(a,l[1],l[2],8);break;case "x":a:if(void 0===l[1]||"?"==l[1])a.W("\nexecution options:"),a.W("\tcs int #\tset checksum cycle interval to #"),a.W("\tcs start #\tset checksum cycle start count to #"),a.W("\tcs stop #\tset checksum cycle stop count to #"),a.W("\tsp #\t\tset speed multiplier to #");else switch(l[1]){case "cs":var Id;void 0!==l[3]&&(Id=+l[3]);switch(l[2]){case "int":a.A.Z.Ce=Id;break;case "start":a.A.Z.jf=Id;break;case "stop":a.A.Z.Ee=
Id;break;default:a.W("unknown cs option");break a}void 0!==Id&&xc(a.A);a.W("checksums "+(a.A.ma.te?"enabled":"disabled"));break;case "sp":void 0!==l[2]&&Hc(a.A,+l[2]);a.W("target speed: "+(a.A.Z.fe.toFixed(2)+"Mhz")+" ("+a.A.Z.yd+"x)");break;default:a.W("unknown option: "+l[1])}break;case "?":var r="commands:",mg;for(mg in Sl)r+="\n"+ma(mg,7)+Sl[mg];Oe(a)||(r+="\nnote: frequency/history disabled if no exec breakpoints");a.W(r);break;default:a.W("unknown command: "+b),c=!1}}}catch(Oj){a.W("debugger error: "+
(Oj.stack||Oj.message)),c=!1}return c}Ma(function(){for(var a=ib(window.document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=gb(c),d=new Ll(d);hb(d,c)}});function ge(a,b,c){this.id=a.id;this.key=Rm(a,b,c);this.ea=a.ea;Sm(this,a.lm)}function Rm(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}
ge.prototype={constructor:ge,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:Ba()&&(a=Ca(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){Sm(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(g){}b.splice(c,1);c=0}},ta:function(a){return this.ea?this.ea.ta(null==a?16777216:a|16777216):!1},Fa:function(a){this.ea&&this.ea.message(a)}};function Sm(a,b){a[a.id]={};b&&he(a,"parms",b);a.A=!1}function Tm(a){var b=!0;if(Ba()){var c=JSON.stringify(a[a.id]);Da(a.key,c)||(ya("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}

View file

@ -586,6 +586,7 @@ if (DEBUGGER) {
};
Debugger.TRACE_LIMIT = 100000;
Debugger.HISTORY_LIMIT = 100000;
/*
* Opcode 0x0F has a distinguished history:
@ -2031,6 +2032,7 @@ if (DEBUGGER) {
}
}
}
this.historyInit(); // call this just in case Messages.INT was turned on
};
/**
@ -2468,13 +2470,14 @@ if (DEBUGGER) {
{
var i;
if (!this.checksEnabled()) {
if (this.aOpcodeHistory && this.aOpcodeHistory.length) this.println("instruction history buffer freed");
this.iOpcodeHistory = 0;
this.aOpcodeHistory = [];
this.aaOpcodeCounts = [];
return;
}
if (!this.aOpcodeHistory || !this.aOpcodeHistory.length) {
this.aOpcodeHistory = new Array(10000);
this.aOpcodeHistory = new Array(Debugger.HISTORY_LIMIT);
for (i = 0; i < this.aOpcodeHistory.length; i++) {
/*
* Preallocate dummy Addr (Array) objects in every history slot, so that
@ -2483,6 +2486,7 @@ if (DEBUGGER) {
this.aOpcodeHistory[i] = this.newAddr();
}
this.iOpcodeHistory = 0;
this.println("instruction history buffer allocated");
}
if (!this.aaOpcodeCounts || !this.aaOpcodeCounts.length) {
this.aaOpcodeCounts = new Array(256);
@ -4821,6 +4825,8 @@ if (DEBUGGER) {
}
this.println((fCriteria !== null? (fCriteria? "messages on: " : "messages off: ") : "message categories:\n\t") + (sCategories || "none"));
this.historyInit(); // call this just in case Messages.INT was turned on
};
/**