Added various MACRO-10 expression improvements

This commit is contained in:
Jeff 2017-03-18 17:12:54 -07:00 committed by Jeff Parsons
commit 1c3c9c9856
16 changed files with 561 additions and 488 deletions

View file

@ -427,8 +427,8 @@ r(b.od)+" IRR="+r(b.ac)+" ISR="+r(b.Ec)+" DELAY="+b.We;e.ba.P(c)}});Al(d,2048,fu
l.Xb=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};l.Wb=function(a){return a?this.save():!0};
l.reset=function(a){var b;Fl(this);this.F=Array(this.za);for(b=0;b<this.za;b++)Gl(this,b);this.hc=Array(this.ha);Hl(this,Il,Jl);1<this.ha&&Hl(this,Kl,Ll);this.va=this.ta=null;this.G=Array((this.ca|0)==xl?6:3);for(b=0;b<this.G.length;b++)Ml(this,b);this.ga=this.Ca=this.J=this.xa=null;this.da=ih;this.ca==ll&&(this.aa=0);if(this.ca>=eh){this.D=Nl;this.L=0;this.K=Ol;this.oa=0;this.M=Pl|Ql;512<=Rl(this)&&(this.M|=Sl);+Tl(this,hl,void 0)==Ul&&(this.M|=Vl);(this.ca|0)==xl&&(this.M=this.M|Wl|Xl);this.qa=
Yl|Zl;this.Y=Array(8);this.V=0;a&&(this.A=Array(Cl));$l(this,this.Ma);for(a=am;a<=bm;a++)this.A[a]=0;for(a=cm;a<dm;a++)void 0===this.A[a]&&(this.A[a]=0);a=0|+Tl(this,hl,void 0)<<em.Mg&em.yc;a|=+Tl(this,nl,void 0)?fm:0;b=+Tl(this,gl,void 0);a|=b?b-1<<gm.Mg&gm.yc|gm.ol:0;this.A[hm]=a;this.A[im]=jm(this,0)<<4|jm(this,1);km(this)}};
function $l(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.P("CMOS date invalid ("+b+"), using "+c)):b&&a.P("CMOS date: "+c);a.A[lm]=c.getSeconds();a.A[mm]=0;a.A[nm]=c.getMinutes();a.A[om]=0;a.A[Gm]=c.getHours();a.A[Hm]=0;a.A[Im]=c.getDay()+1;a.A[Jm]=c.getDate();a.A[Km]=c.getMonth()+1;b=c.getFullYear();a.A[Lm]=b%100;b/=100;a.A[Mm]=b%10|b/10<<4;a.A[Nm]=38;a.A[Rd]=Om;a.A[Pm]=0;a.A[Dl]=Qm;a.ma=a.Z=0;a.Ha=a.Aa=null}
function El(a,b){var c=a.A[b];if(b<Nm){var d=!1;b!=Gm&&b!=Hm||a.A[Rd]&Om||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Rd]&Rm||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else b==Nm&&(a.A[b]^=Sm);return c}function Tm(a){var b;void 0===b&&(b=a.Aa);a.Z=Ed(a.H,a.O)+b;a.A[Rd]&Td&&Gd(a.H,b)}function km(a){for(var b=0,c=im;c<dm;c++)b+=a.A[c];a.A[Um]=b&255;a.A[dm]=b>>8}
function $l(a,b){var c=b?new Date(b):new Date;"[object Date]"!==Object.prototype.toString.call(c)||isNaN(c.getTime())?(c=new Date,a.P("CMOS date invalid ("+b+"), using "+c)):b&&a.P("CMOS date: "+c);a.A[lm]=c.getSeconds();a.A[mm]=0;a.A[nm]=c.getMinutes();a.A[om]=0;a.A[pm]=c.getHours();a.A[Hm]=0;a.A[Im]=c.getDay()+1;a.A[Jm]=c.getDate();a.A[Km]=c.getMonth()+1;b=c.getFullYear();a.A[Lm]=b%100;b/=100;a.A[Mm]=b%10|b/10<<4;a.A[Nm]=38;a.A[Rd]=Om;a.A[Pm]=0;a.A[Dl]=Qm;a.ma=a.Z=0;a.Ha=a.Aa=null}
function El(a,b){var c=a.A[b];if(b<Nm){var d=!1;b!=pm&&b!=Hm||a.A[Rd]&Om||(12>c?c=c?c:12:c=(c-=12)?c+128:140,d=!0);a.A[Rd]&Rm||(d&&128<c&&(c-=48),c=c%10|c/10<<4)}else b==Nm&&(a.A[b]^=Sm);return c}function Tm(a){var b;void 0===b&&(b=a.Aa);a.Z=Ed(a.H,a.O)+b;a.A[Rd]&Td&&Gd(a.H,b)}function km(a){for(var b=0,c=im;c<dm;c++)b+=a.A[c];a.A[Um]=b&255;a.A[dm]=b>>8}
l.save=function(){var a=new Xf(this);a.set(0,[this.C]);for(var b=[],c=0;c<this.F;c++){for(var d=this.F[c],e=d,f=[],g=0;g<e.oc.length;g++){var h=e.oc[g];f[g]=[h.ne,h.fg,h.pc,h.tb,h.qb,h.mode,h.hg,h.Oo,h.Po]}b[c]=[d.Mb,d.Xg,d.Xi,d.zb,f,d.Yi]}a.set(1,[b]);b=[];for(c=0;c<this.hc.length;c++)d=this.hc[c],b[c]=[d.We,d.Kc,d.Ld,d.od,d.ac,d.Ec,d.ge,d.nf];a.set(2,[b]);b=[];for(c=0;c<this.G.length;c++)d=this.G[c],b[c]=[d.pc,d.Mc,d.qb,d.je,d.Zg,d.mode,d.Qf,d.rd,d.ad,d.gd,d.Me,d.le,d.jd,d.Mb,d.Qe];a.set(3,[this.ta,
b,this.va]);a.set(4,[this.xa,this.J,this.Ca,this.ga,this.da]);this.ca>=eh&&(a.set(5,[this.D,this.L,this.K,this.oa,this.M,this.qa]),a.set(6,[this.Y[7],this.Y,this.V,this.A,this.ma,this.Z]));return a.data()};
l.restore=function(a){var b,c;b=a[0];Array.isArray(b[0])?this.C=b[0]:(this.C[0][0]=b[0],this.C[1][0]=b[1]&15,this.C[0][1]=b[2],this.C[1][1]=b[3]&15);Fl(this);b=a[1];for(c=0;c<this.za;c++)Gl(this,c,1==b.length?b[0][c]:b);b=a[2];for(c=0;c<this.ha;c++)Hl(this,c,c?Ll:Jl,b[0][c]);b=a[3];this.ta=b[0];this.va=b[2];for(c=0;c<this.G.length;c++)Ml(this,c,b[1][c]);b=a[4];this.xa=b[0];this.J=b[1];this.Ca=b[2];this.ga=b[3];this.da=b[4];if(b=a[5])this.D=b[0],this.L=b[1],this.K=b[2],this.oa=b[3],this.M=b[4],this.qa=
@ -456,7 +456,7 @@ function po(a,b,c,d,e,f){t(a,2304)&&w(a,d,e,f,"PIT"+b+".TIMER"+c,null,!0);f=b?3:
function yo(a,b,c,d,e){w(a,c,d,e,"PIT"+b+".CTRL",null,2048);e=0;c=d&zo;b?(e=3,a.va=d):a.ta=d;if(c==Ao){if(!(d&Bo))for(c=0;2>=c;c++)if(d&Co<<c){b=e+c;var f=a.G[b];f.Qe||(Bl(a,b),f.Mb=f.Zg|f.mode|f.Qf|(f.rd<f.ad?Do:0)|(f.gd?Eo:0),f.Qe=!0)}if(!(d&Fo))for(c=0;2>=c;c++)d&Co<<c&&Go(a,e+c)}else{c>>=Ho;var f=d&Io,g=d&Jo;d&=Ko;if(d==Lo)Go(a,e+c);else{e+=c;var h=a.G[e];h.Qf=d;h.mode=g;h.Zg=f;h.pc=[0,0];h.qb=[0,0];h.je=[0,0];h.gd=!1;h.Me=!1;h.le=!1;h.Qe=!1;oo(a,e);b==so&&c==to&&fh(a,uo);b==so&&c==wo&&255==a.hc[0].od&&
a.J==(Mo|No|Oo|Po)&&(b=a.G[0],b.Mc[0]=b.pc[0],b.Mc[1]=b.pc[1],b.jd=Ed(a.H,a.O))}}}function vo(a,b){a=a.G[b];(b=a.pc[1]<<8|a.pc[0])||(b=1==a.ad?256:65536);return b}function Pd(a,b){a=a.G[b];(b=a.Mc[1]<<8|a.Mc[0])||(b=1==a.ad?256:65536);return b}function Go(a,b){Bl(a,b);var c=a.G[b];c.je[0]=c.qb[0];c.je[1]=c.qb[1];c.Me=!0;oo(a,b)}function oo(a,b){a=a.G[b];a.rd=a.Qf==Qo?1:0;a.ad=a.Qf==Ro?2:1}
function Bl(a,b,c){var d=a.G[b];if(d.le&&(b!=wo||a.J&Mo)){var e=Ed(a.H,a.O),f=(e-d.jd)/a.Ba|0;0>f&&(d.jd=e,f=0);var g=vo(a,b),h=Pd(a,b)-f;d.mode==qo?(0>=h&&(h=0),h||(d.gd=!0,d.le=!1,b||hh(a,uo))):d.mode==So?(d.gd=1!=h,0>=h&&(h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&hh(a,uo))):d.mode==Qd&&(h-=f,0>=h&&(d.gd=!d.gd,h=g+h,0>=h&&(h=g),d.Mc[0]=h&255,d.Mc[1]=h>>8&255,d.jd=e,!b&&d.gd&&hh(a,uo)));d.qb[0]=h&255;d.qb[1]=h>>8&255;c&&(a.jd=0)}return d}
function Od(a,b){for(var c=0;c<a.G.length;c++)Bl(a,c,b);if(a.ca>=eh){b=a.H.T.sd;c=Ed(a.H,a.O);null==a.Aa&&(a.ma=Ed(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Tm(a));c>=a.Z&&(a.A[Pm]|=To,a.A[Rd]&Td&&(a.A[Pm]|=Uo,hh(a,Vo)),a.Z=c+a.Aa);a.A[lm]==a.A[mm]&&a.A[nm]==a.A[om]&&a.A[Gm]==a.A[Hm]&&(a.A[Pm]|=Wo,a.A[Rd]&Xo&&(a.A[Pm]|=Uo,hh(a,Vo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Rd]&Yo)){for(;e--;)if(60<=++a.A[lm]&&(a.A[lm]=0,60<=++a.A[nm]&&(a.A[nm]=0,24<=++a.A[Gm]))){a.A[Gm]=0;a.A[Im]=a.A[Im]%
function Od(a,b){for(var c=0;c<a.G.length;c++)Bl(a,c,b);if(a.ca>=eh){b=a.H.T.sd;c=Ed(a.H,a.O);null==a.Aa&&(a.ma=Ed(a.H,a.O),a.Ha=1024,a.Aa=Math.floor(a.H.T.sd/a.Ha),Tm(a));c>=a.Z&&(a.A[Pm]|=To,a.A[Rd]&Td&&(a.A[Pm]|=Uo,hh(a,Vo)),a.Z=c+a.Aa);a.A[lm]==a.A[mm]&&a.A[nm]==a.A[om]&&a.A[pm]==a.A[Hm]&&(a.A[Pm]|=Wo,a.A[Rd]&Xo&&(a.A[Pm]|=Uo,hh(a,Vo)));var d=c-a.ma,e=Math.floor(d/b);if(e&&!(a.A[Rd]&Yo)){for(;e--;)if(60<=++a.A[lm]&&(a.A[lm]=0,60<=++a.A[nm]&&(a.A[nm]=0,24<=++a.A[pm]))){a.A[pm]=0;a.A[Im]=a.A[Im]%
7+1;var f;f=a.A[Lm];var g=Ja[a.A[Km]-1];28==g&&(f%4||!(f%100)&&f%400||g++);f=g;++a.A[Jm]>f&&(a.A[Jm]=1,12<++a.A[Km]&&(a.A[Km]=1,a.A[Lm]=(a.A[Lm]+1)%100))}a.A[Pm]|=Zo;a.A[Rd]&$o&&(a.A[Pm]|=Uo,hh(a,Vo))}a.ma=c-d%b}}l.Gm=function(a,b){var c=this.xa;this.ga&ap&&(this.J&bp?c=this.C[0][1]:this.B&&(c=cp(this.B)));w(this,a,null,b,"PPI_A",c);return c};l.jo=function(a,b,c){w(this,a,b,c,"PPI_A");this.xa=b};l.Hm=function(a,b){var c=this.J;w(this,a,null,b,"PPI_B",c);return c};
l.ko=function(a,b,c){w(this,a,b,c,"PPI_B");dp(this,b)};function dp(a,b){var c=!!(b&ep),d=!!(a.J&ep);a.J=b;a.B&&fp(a.B,!(b&bp),!!(b&Po));c!=d&&Vm(a,c)}l.Im=function(a,b){var c=0,c=(this.ca|0)==kl?this.J&No?c|this.C[1][1]&gp:c|this.C[1][1]>>4&1:this.J&hp?c|this.C[0][1]>>4:c|this.C[0][1]&15;this.J&Mo&&Bl(this,wo).gd&&(c=this.J&ep?c|ip:c|jp);w(this,a,null,b,"PPI_C",c,32896);return c};l.lo=function(a,b,c){w(this,a,b,c,"PPI_C");this.Ca=b};l.Jm=function(a,b){var c=this.ga;w(this,a,null,b,"PPI_CTRL",c);return c};
l.mo=function(a,b,c){w(this,a,b,c,"PPI_CTRL");this.ga=b};l.Sl=function(a,b){var c=this.B?cp(this.B):0;w(this,a,null,b,"8041_KBD",c);this.aa&=~kp;return c};l.tn=function(a,b,c){w(this,a,b,c,"8041_KBD")};l.Rl=function(a,b){var c=this.J;w(this,a,null,b,"8041_CTRL",c);return c};l.sn=function(a,b,c){w(this,a,b,c,"8041_CTRL");dp(this,b)};l.Tl=function(a,b){var c=this.aa;w(this,a,null,b,"8041_STATUS",c);return c};
@ -466,7 +466,7 @@ l.Vl=function(a,b){var c=this.J&~(zp|Ap)|(Ed(this.H)&64?Ap:0);w(this,a,null,b,"8
l.un=function(a,b,c){w(this,a,b,c,"8042_INBUFF.CMD",null,16384);this.L=b;this.D|=np;a=0;this.L>=Bp&&(a=this.L^15,this.L=Bp);switch(this.L){case Cp:yp(this,this.K);break;case Dp:pp(this,this.K|Ol);break;case Ep:pp(this,this.K&~Ol);this.B&&mp(this.B);break;case Fp:this.B&&(a=this.B,a.A=[],t(a)&&Mb(a,"scan codes flushed"));pp(this,this.K|Ol);yp(this,Gp);rp(this,Yl|Zl);break;case Hp:yp(this,Ip);break;case Jp:yp(this,this.M);break;case Kp:yp(this,this.qa);break;case Lp:yp(this,this.K&Ol?0:Mp);break;case Bp:a&
1&&kf(this.H)}};function pp(a,b){a.K=b;a.D=a.D&~Np|b&Op;a.B&&fp(a.B,!!(b&Pp),!(b&Ol))}function yp(a,b,c){0<=b&&(a.oa=b,c?a.D|=kp:(a.D&=~kp,a.D|=lp))}function rp(a,b){a.qa=b;oc(a.ka,!!(b&Zl));b&Yl||kf(a.H)}function Qp(a,b){a.ca<eh?(hh(a,Rp,4),a.aa|=kp):a.K&Ol||a.D&(kp|lp)||(yp(a,b,!0),Sp(a.B),hh(a,Rp,120))}function Tp(a,b,c,d){var e=a.C[b][1];w(a,c,null,d,"DIPSW-"+b,e,32768);return e}l.jm=function(a,b){w(this,a,null,b,"CMOS.ADDR",this.V,4096);return this.V};
l.Kn=function(a,b,c){w(this,a,b,c,"CMOS.ADDR",null,4096);this.V=b;this.da=b&Up?ih:Vp};l.km=function(a,b){var c=this.V&Wp,d=c<=Dl?El(this,c):this.A[c];t(this,4352)&&w(this,a,null,b,"CMOS.DATA["+r(c)+"]",d,!0);null!=b&&c==Pm&&(this.A[c]&=Xp,d&Uo&&fh(this,Vo),d&To&&this.A[Rd]&Td&&Tm(this));return d};
l.Ln=function(a,b,c){var d=this.V&Wp;t(this,4352)&&w(this,a,b,c,"CMOS.DATA["+r(d)+"]",null,!0);a=b^this.A[d];if(d<=Dl){if(c=b,d<Nm){var e=!1;this.A[Rd]&Rm||(c=10*(c>>4)+(c&15),e=!0);if(d==Gm||d==Hm)e&&23<c&&(c+=48),this.A[Rd]&Om||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Rd&&a&Td&&b&Td&&Tm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&$g(this.Tc)};
l.Ln=function(a,b,c){var d=this.V&Wp;t(this,4352)&&w(this,a,b,c,"CMOS.DATA["+r(d)+"]",null,!0);a=b^this.A[d];if(d<=Dl){if(c=b,d<Nm){var e=!1;this.A[Rd]&Rm||(c=10*(c>>4)+(c&15),e=!0);if(d==pm||d==Hm)e&&23<c&&(c+=48),this.A[Rd]&Om||(12>=c?c=12==c?0:c:(c-=116,c=24==c?12:c))}}else c=b;this.A[d]=c;d==Rd&&a&Td&&b&Td&&Tm(this)};l.Nk=function(a,b,c){w(this,a,b,c,"NMI");this.da=b};l.Vn=function(a,b,c){w(this,a,b,c,"FPU.CLEAR")};l.Wn=function(a,b,c){w(this,a,b,c,"FPU.RESET");this.Tc&&$g(this.Tc)};
l.Xm=function(a){if(t(this,16)&&Wk(this.ba,26,a)){var b=this.H.D>>8;Tf(this.H,a,function(a,d){return function(c){d=Ed(a.H)-d;var e,g=a.H.L&255,h=a.H.L>>8,k=a.H.L&255,m=a.H.L>>8;if(2==b||3==b)e=" CH(hour)="+ta(h)+" CL(min)="+r(g)+" DH(sec)="+r(m);else if(4==b||5==b)e=" CX(year)="+ta(a.H.I)+" DH(month)="+r(m)+" DL(day)="+r(k);g=a.ba;h=d;g.message("INT "+r(26)+": C="+(dg(g.H)?1:0)+(e||"")+" (cycles="+h+(c?",level="+(c+1):"")+")")}}(this,Ed(this.H)))}return!0};
function Vm(a,b){if(a.la)try{void 0!==b?a.Ga=b:b=!!(a.Ga&&a.H&&a.H.ea.wb);var c=Math.round(ol/vo(a,wo));if(20>c||2E4<c)b=!1;b?a.I?(a.I.frequency.value=c,t(a,33554432)&&Mb(a,"speaker set to "+c+"hz",!0)):(a.I=a.la.createOscillator(),a.I&&(a.I.type="number"==typeof a.I.type?1:"square",a.I.connect(a.la.destination),a.I.frequency.value=c,"start"in a.I?a.I.start(0):a.I.noteOn(0),t(a,33554432)&&Mb(a,"speaker on at "+c+"hz",!0))):a.I&&("stop"in a.I?a.I.stop(0):a.I.noteOff(0),a.I.disconnect(),delete a.I,
t(a,33554432)&&Mb(a,"speaker off at "+c+"hz",!0))}catch(d){a.Fa("AudioContext exception: "+d.message),a.la=null}else b&&Mb(a,"BEEP",33554432)}var kl=5150,cl=5150.9,eh=5170,ll=5160.101,xl=5180,bl={5150:kl,5160:5160,5170:eh,att6300:ll,mpc1600:5150.101,z150:5160.15,compaq:5150.102,other:cl};bl.deskpro386=xl;
@ -474,7 +474,7 @@ var el="sw1",il="sw2",ml="swdesc",Ul=3,un=1,vn=15,yn=3,zn=4,Cn=3,Ln=12,Pn=0,Mn=4
yc:48,Mg:4},gl=1,nl=3,hl=4,kn=5,ln=6,dn={};dn[kl]=[{},{}];dn[kl][0][gl]={yc:192,Zc:{1:0,2:64,3:128,4:192},Ed:"Number of Floppy Drives"};dn[kl][0][nl]={yc:2,Zc:{0:0,1:2},Ed:"FPU"};dn[kl][0][hl]={yc:48,Zc:{0:0,1:16,2:32,3:48,none:0,tv:16,color:32,cga:32,mda:48,mono:48,ega:0,vga:0},Ed:"Monitor Type"};dn[kl][0][kn]={yc:12,Zc:{16:0,32:4,48:8,64:12},Ed:"Base Memory (16Kb Increments)"};
dn[kl][1][ln]={yc:31,Zc:{0:0,32:1,64:2,96:3,128:4,160:5,192:6,224:7,256:8,288:9,320:10,352:11,384:12,416:13,448:14,480:15,512:16,544:17,576:18},Ed:"Expansion Memory (32Kb Increments)"};dn[5160]=[{},{}];dn[5160][0][gl]=dn[kl][0][gl];dn[5160][0][nl]=dn[kl][0][nl];dn[5160][0][hl]=dn[kl][0][hl];dn[5160][0][kn]={yc:12,Zc:{64:0,128:4,192:8,256:12},Ed:"Base Memory (64Kb Increments)"};dn[5160][1][ln]=dn[kl][1][ln];dn[ll]=[{},{}];dn[ll][0][kn]={yc:143,Zc:{128:1,256:130,512:8,640:141},Ed:"Base Memory (128Kb Increments)"};
dn[ll][0][nl]={yc:16,Zc:{0:0,1:16},Ed:"FPU"};dn[ll][1][2]={yc:1,Zc:{0:0,1:1},Ed:"Floppy Type"};dn[ll][1][gl]=dn[kl][0][gl];dn[ll][1][hl]=dn[kl][0][hl];
var Op=4,Pp=8,Ol=16,Gp=85,Ip=0,Wl=4,Xl=8,Sl=16,Pl=32,Vl=64,Ql=128,Yl=1,Zl=2,Mp=1,Ap=16,zp=192,Cp=32,op=96,Fp=170,Hp=171,Dp=173,Ep=174,Jp=192,Kp=208,qp=209,Lp=224,Bp=240,kp=1,Np=4,np=8,Nl=16,lp=256,lm=0,mm=1,nm=2,om=3,Gm=4,Hm=5,Im=6,Jm=7,Km=8,Lm=9,Nm=10,Rd=11,Pm=12,Dl=13,cm=14,im=16,hm=20,am=21,bm=24,dm=46,Um=47,Mm=50,Wp=63,Cl=64,Up=128,Sm=128,Yo=128,Td=64,Xo=32,$o=16,Rm=4,Om=2,Uo=128,To=64,Wo=32,Zo=16,Xp=15,Qm=128,jn=0,en=1,gn=2,fn=3,hn=4,Vp=128,ih=0,Wm=[0,null,null,0,Array(4),0],Ym=[!0,[0,0],[0,
var Op=4,Pp=8,Ol=16,Gp=85,Ip=0,Wl=4,Xl=8,Sl=16,Pl=32,Vl=64,Ql=128,Yl=1,Zl=2,Mp=1,Ap=16,zp=192,Cp=32,op=96,Fp=170,Hp=171,Dp=173,Ep=174,Jp=192,Kp=208,qp=209,Lp=224,Bp=240,kp=1,Np=4,np=8,Nl=16,lp=256,lm=0,mm=1,nm=2,om=3,pm=4,Hm=5,Im=6,Jm=7,Km=8,Lm=9,Nm=10,Rd=11,Pm=12,Dl=13,cm=14,im=16,hm=20,am=21,bm=24,dm=46,Um=47,Mm=50,Wp=63,Cl=64,Up=128,Sm=128,Yo=128,Td=64,Xo=32,$o=16,Rm=4,Om=2,Uo=128,To=64,Wo=32,Zo=16,Xp=15,Qm=128,jn=0,en=1,gn=2,fn=3,hn=4,Vp=128,ih=0,Wm=[0,null,null,0,Array(4),0],Ym=[!0,[0,0],[0,
0],[0,0],[0,0]],$m=[0,Array(4)],an=[[0,0],[0,0],[0,0],[0,0]],pl={0:function(a,b){return on(this,0,0,a,b)},1:function(a,b){return rn(this,0,0,a,b)},2:function(a,b){return on(this,0,1,a,b)},3:function(a,b){return rn(this,0,1,a,b)},4:function(a,b){return on(this,0,2,a,b)},5:function(a,b){return rn(this,0,2,a,b)},6:function(a,b){return on(this,0,3,a,b)},7:function(a,b){return rn(this,0,3,a,b)},8:function(a,b){return tn(this,0,a,b)},13:function(a,b){return Dn(this,0,a,b)},32:function(a,b){return Sn(this,
Il,b)},33:function(a,b){return io(this,Il,b)},64:function(a,b){return no(this,so,to,a,b)},65:function(a,b){return no(this,so,1,a,b)},66:function(a,b){return no(this,so,wo,a,b)},67:function(a,b){return xo(this,so,a,b)},129:function(a,b){return Fn(this,0,2,a,b)},130:function(a,b){return Fn(this,0,3,a,b)},131:function(a,b){return Fn(this,0,1,a,b)},135:function(a,b){return Fn(this,0,0,a,b)}},rl={96:al.prototype.Gm,97:al.prototype.Hm,98:al.prototype.Im,99:al.prototype.Jm},vl={96:al.prototype.Ul,97:al.prototype.Vl,
100:al.prototype.Wl,112:al.prototype.jm,113:al.prototype.km,128:function(a,b){return Hn(this,7,a,b)},132:function(a,b){return Hn(this,0,a,b)},133:function(a,b){return Hn(this,1,a,b)},134:function(a,b){return Hn(this,2,a,b)},136:function(a,b){return Hn(this,3,a,b)},137:function(a,b){return Fn(this,1,2,a,b)},138:function(a,b){return Fn(this,1,3,a,b)},139:function(a,b){return Fn(this,1,1,a,b)},140:function(a,b){return Hn(this,4,a,b)},141:function(a,b){return Hn(this,5,a,b)},142:function(a,b){return Hn(this,
@ -717,15 +717,15 @@ var Tw="Hard Drive",Ww=["XTC","ATC","COMPAQ"],Uw=[{0:[306,2],1:[375,8],2:[306,6]
815:Hw.prototype.hi},Kw={496:Hw.prototype.An,497:Hw.prototype.Fn,498:Hw.prototype.Dn,499:Hw.prototype.En,500:Hw.prototype.zn,501:Hw.prototype.yn,502:Hw.prototype.Bn,503:Hw.prototype.xn,1014:Hw.prototype.Cn};ab(function(){for(var a=Ab(document,"pcx86","hdc"),b=0;b<a.length;b++){var c=a[b],d=wb(c),d=new Hw(d);zb(d,c)}});function Wx(a){nb.call(this,"Debugger",a);this.L=+a.base||16;this.Ha=null;this.qa=["{","}"];this.Aa=["[","]"];this.Y=this.ha=this.M=0;this.da=!1;this.A=-1;this.C=[];this.ga={}}
ba(Wx,nb);Wx.prototype.gh=function(){return-1};Wx.prototype.hh=function(){};Wx.prototype.Pk=function(a,b){return a.replace("["+b+"]","unimplemented")};
Wx.prototype.Cg=function(a,b,c){if(b)if(a){0>this.A&&this.C.length&&(this.A=0);if(0>this.A||a!=this.C[this.A])this.C.splice(0,0,a),this.A=0;this.A--}else this.da?a="end":a=this.C[this.A+1];b=[];if(a){a=a.replace(/""/g,"'");var d=0,e=null;c=c||";";for(var f=0;f<=a.length;f++){var g=a.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==c&&!e||!g)b.push(Ca(a.substring(d,f))),d=f+1}}return b};
function Xx(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
function Yx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;
case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;case "><":d=f;if(e=35-(e&255))0>d&&(d+=Math.pow(2,36)),d=0<e?d*Math.pow(2,e):Math.trunc(d/Math.pow(2,-e));break;default:return!1}a.push(Xx(d))}return!0}
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=!1,v=[],u=[],E=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=$x(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Zx(a,b,p,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("-"!=k){m=!0;break}p=!0;continue}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Xx(p));if(!k)break;u.length&&ay[k]<ay[u[u.length-1]]&&Yx(v,u,1);u.push(k);a.L="><"==k?10:e;p=!1}Yx(v,
u)&&1==v.length||(m=!0);m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.L=E;return g}function by(a,b,c){var d;a.Ha=null;b&&("{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2><"),b=b.split(/(\{|}|\|\||&&|\||\^\^|><|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Zx(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&cy(a,null,d));return d}
function Xx(a,b,c){var d=a;b=b||32;if(c)if(32==b)d=a>>>0;else if(32>b)d=a&(1<<b)-1;else{if(b=Math.pow(2,b),0>a||a>=b)d=a%b,0>d&&(d+=b)}else 32>=b?d=a|0:(b=Math.pow(2,b-1),a<-b?d=a%b:a>=2*b&&(d=a%(2*b)));a!=d&&(a=d);return a}
function Yx(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e,f=a.pop();e=a.pop();switch(d){case "*":e*=f;break;case "/":if(!f)return!1;e=Math.trunc(e/f);break;case "%":if(!f)return!1;e%=f;break;case "+":e+=f;break;case "-":e-=f;break;case "<<":e<<=f;break;case ">>":e>>=f;break;case ">>>":e>>>=f;break;case "<":e=e<f?1:0;break;case "<=":e=e<=f?1:0;break;case ">":e=e>f?1:0;break;case ">=":e=e>=f?1:0;break;case "==":e=e==f?1:0;break;case "!=":e=e!=f?1:0;break;case "&":e&=
f;break;case "!":case "|":e|=f;break;case "^!":e|=f;break;case "&&":e=e&&f?1:0;break;case "||":e=e||f?1:0;break;case "_":case "^_":"^_"==d&&(f=35-(f&255));f&&(e=Xx(e,0,!0),e=0<f?e*Math.pow(2,f):Math.trunc(e/Math.pow(2,-f)));break;default:return!1}a.push(Xx(e))}return!0}
function Zx(a,b,c,d,e,f){var g,h,k,m=!1,p=0,v=[],u=[],E=a.L;for(a.L=e;c<d;){h=b[c++].trim();k=c<d?b[c++]:"";if(h)p=$x(a,h,null,f,p);else if("{"==k){h=1;for(p=c;c<d;)if(c++,k=c<b.length?b[c++]:"","{"==k)h++;else if("}"==k&&!--h)break;p=Zx(a,b,p,c-1,a.L,f);h=c<d?b[c++].trim():"";k=c<d?b[c++]:""}else{if("~"==k||"^-"==k){p=1;continue}if("-"==k){p=-1;continue}m=!0;break}if(void 0===p)if(null==a.Ha&&f)a.Ha=h,p=0;else{m=!0;f=!f;break}v.push(Xx(p));if(!k)break;u.length&&ay[k]<ay[u[u.length-1]]&&Yx(v,u,1);
u.push(k);a.L="^_"==k?10:e;p=0}Yx(v,u)&&1==v.length||(m=!0);m?!1===f&&a.P("parse error ("+(h||k)+")"):g=v.pop();a.L=E;return g}function by(a,b,c){var d;a.Ha=null;b&&("{"!=a.qa[0]&&(b=b.split(a.qa[0]).join("{").split(a.qa[1]).join("}")),b=b.replace(/(^|[^A-Z0-9$%.])([0-9]+)B/,"$1$2^_"),b=b.split(/(\{|}|\|\||&&|\||\^!|\^-|~|\^_|_|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/),d=Zx(a,b,0,b.length,a.L,c),void 0!==d&&!1===c&&cy(a,null,d));return d}
function dy(a,b){var c,d=a.qa[0],e=a.qa[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=by(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?ey(a,g):"undefined")}if(a.Aa.length)for(d=a.Aa[0],e=a.Aa[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=a.Pk(b,c[1]);for(;d=b.match(/\$([a-z]+)/i);){e=null;switch(d[1].toLowerCase()){case "ops":e=a.Y-a.ha}if(null==
e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b,c,d,e){var f;null!=b?(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(f=oa(e?"-"+b:b,a.L),e=!1)),null!=f?e&&(f=-f):d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return f}function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.L?c+". "+sa(c,0,!0):q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}
function fy(a,b){if(b)return cy(a,b,a.ga[b]);var c=0;for(b in a.ga)cy(a,b,a.ga[b]),c++;return 0<c}function ey(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=qa(b,0<c?c:0);break;case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}
var ay={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"><":10,"{":11,"}":11};
e)break;b=b.replace(d[0],e.toString())}return b}function $x(a,b,c,d,e){e=void 0===e?0:e;var f;null!=b?(f=a.gh(b),0<=f?f=a.hh(f):(f=a.ga[b],null==f&&(0>e&&(b="-"+b,e=0),f=oa(b,a.L))),null!=f?0>e?f=-f:0<e&&(f|=-1):d||a.P("invalid "+(c?c:"value")+": "+b)):d||a.P("missing "+(c||"value"));return f}
function cy(a,b,c){var d,e=!1;void 0!==c&&(e=!0,d=8==a.L?c+". "+sa(c,0,!0):q(c,0,!0)+" "+c+". "+sa(c,0,!0)+" "+ra(c,4,!0),32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'"));a.P((null!=b?b+": ":"")+d);return e}function fy(a,b){if(b)return cy(a,b,a.ga[b]);var c=0;for(b in a.ga)cy(a,b,a.ga[b]),c++;return 0<c}
function ey(a,b){var c;c=void 0===c?0:c;switch(a.L){case 2:b=qa(b,0<c?c:0);break;case 8:b=sa(b,0<c?(c+2)/3|0:0);break;case 10:(a=0<c?Math.ceil(.3*c):0)?11<a&&(a=11):a=b&-65536?10:5;b=pa(b,10,a);break;default:b=q(b,0<c?c+3>>2:0)}0>c?c=b.replace(/^0+([0-9A-F]+)$/i,"$1"):c=b;return c}var ay={"||":0,"&&":1,"!":2,"|":2,"^!":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,_:10,"^_":10,"{":11,"}":11};
function gy(a){Wx.call(this,a);this.ta=4;this.la=5;this.wa=1048575;this.K=hy(this);this.Ta=hy(this);this.aa=hy(this);this.D=[];this.B=this.Z=this.N=[];iy(this);this.xa=0;jy(this);this.Ba={};ky(this,a.messages);this.Ga=a.commands;var b=this;window?void 0===window.pcx86&&(window.pcx86=function(a){return ly(b,a)}):void 0===global.pcx86&&(global.pcx86=function(a){return ly(b,a)})}ba(gy,Wx);l=gy.prototype;
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.pa=a;this.hb=Xb(a,"FDC");this.Xa=Xb(a,"HDC");this.Tc=Xb(a,"FPU");this.G=Xb(a,"Mouse");(a=zd(a,"messages"))&&ky(this,a);this.la=b.I>>2;this.wa=b.N;this.ab=new Vd(this.H,7,"DBG");this.oa=my;80186<=this.H.ca&&(this.oa=my.slice(),this.oa[15]=ny,80286<=this.H.ca&&(this.oa[15]=oy,80386<=this.H.ca&&(this.ta=8)));Al(this,64,function(a){py(d,d.H.sc,a[0])});Al(this,4,function(a){if(a=a[0]){var b=$x(d,a);if(void 0===b)d.P("invalid selector: "+a);else if(a=qy(d,
b,ry),d.P("dumpSel("+ta(a?a.U:b)+"): %"+q(a?a.Lb:null,d.la)),a){var c,b=!1;if(a.type&4096)a.type&2048?(c="code"+(a.type&512?",readable":",execonly"),a.type&1024&&(c+=",conforming")):(c="data"+(a.type&512?",writable":",readonly"),a.type&1024&&(c+=",expdown")),a.type&256&&(c+=",accessed");else{var e=sy[a.type];e&&(c=e[0],b=e[1])}!c||a.mb&32768||(c+=",not present");d.P((b?"seg="+ta(a.ua&65535)+" off="+ta(a.Ka):"base="+q(a.ua,d.la)+" limit="+ty(a.Ka))+" type="+r(a.type>>8)+" ("+c+") ext="+ta(a.ext&-65296)+
@ -804,23 +804,23 @@ Py(a,g[1],!0);if(v)if(a.aa=v,void 0===g[2])a.P("begin assemble at "+Fy(v)),a.da=
a.P("\tbc [a]\tclear breakpoint at addr [a]"),a.P("\tbl\tlist all breakpoints"),a.P("\tbn [n]\tbreak after [n] instruction(s)");else{var T=K.charAt(1);if("l"==T){var L;L=0+Vz(a,a.B);L+=Vz(a,a.Z);(L+=Vz(a,a.N))||a.P("no breakpoints")}else if("n"==T)a.xa=$x(a,H),a.P("break after "+a.xa+" instruction(s)");else if(void 0===H)a.P("missing breakpoint address");else{var ua={};if("*"!=H&&(ua=Py(a,H,!0,!0),!ua))break a;H=null==ua.Ja?H:ta(ua.Ja);"c"==T?null==ua.Ja?(iy(a),a.P("all breakpoints cleared")):Ey(a,
a.B,ua)||Ey(a,a.Z,ua)||Ey(a,a.N,ua)||a.P("breakpoint missing: "+Fy(ua)):"i"==T?a.P("breakpoint "+(Nc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (input)"):"o"==T?a.P("breakpoint "+(Rc(a.ka,ua.Ja)?"enabled":"cleared")+": port "+H+" (output)"):null!=ua.Ja&&(Sy(a,ua,I),"p"==T?a.Gd(a.B,ua):"r"==T?a.Gd(a.Z,ua):"w"==T?a.Gd(a.N,ua):a.P("unknown breakpoint command: "+T))}}}break;case "c":$A(a);break;case "d":a:{var ca=g,xb,za=ca[0],cb=ca[1],Sa=ca[2],rb=ca[3];if("?"==cb){var db="";for(xb in Sb)a.Ba[xb]&&
(db&&(db+=","),db+=xb);db+=",state,symbols";a.P("dump memory commands:");a.P("\tdb [a] [#] dump # bytes at address a");a.P("\tdw [a] [#] dump # words at address a");a.P("\tdd [a] [#] dump # dwords at address a");a.P("\tdh [#] [#] dump # instructions from history");a.P("\tdi [#] dump descriptor info for IDT #");a.P("\tds [#] dump descriptor info for selector #");db.length&&a.P("dump extension commands:\n\t"+db)}else if("state"==cb){var rc=iB(a.pa,!0);rc?"console"==Sa?console.log(rc):
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],tg=df.o;if(void 0!==tg){var ef=df.s;void 0===ef&&(ef=cf.U);var ug=cf.Fd[Ld].l;ug&&(Ld=ug);a.P(uy(tg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var pm=ca[0];if(pm){var Og=a.Sb(Py(a,pm));if(-1===Og)a.P("invalid address: "+pm);else{var nf,
($A(a),a.P(rc)):a.P("powerOff() error")}else if("symbols"==cb)for(var ib=0;ib<a.D.length;ib++){var cf=a.D[ib],Ld;for(Ld in cf.Fd)if("."!=Ld.charAt(0)){var df=cf.Fd[Ld],tg=df.o;if(void 0!==tg){var ef=df.s;void 0===ef&&(ef=cf.U);var ug=cf.Fd[Ld].l;ug&&(Ld=ug);a.P(uy(tg,ef)+" "+Ld)}}}else{if("ds"==za||"dg"==za||"dl"==za)za="d",ca=[za,"desc",cb];"d"==za&&"page"==cb&&(za="dp",ca.shift());if("dp"==za){ca.shift();var qm=ca[0];if(qm){var Og=a.Sb(Py(a,qm));if(-1===Og)a.P("invalid address: "+qm);else{var nf,
Qa=null;if(80386<=a.H.ca){var of=a.ka,Qa={};Qa.Jk=(Og&-4194304)>>>20;Qa.Ti=a.H.Wc+Qa.Jk;Qa.ob=of.aa[(Qa.Ti&of.C)>>>of.A];Qa.Aj=Qa.ob.Nd(Qa.Jk);Qa.Kk=(Og&4190208)>>>10;Qa.Ui=(Qa.Aj&-4096)+Qa.Kk;Qa.pb=of.aa[(Qa.Ui&of.C)>>>of.A];Qa.Bj=Qa.pb.Nd(Qa.Kk);Qa.ul=(Qa.Bj&-4096)+(Og&4095)}if(nf=Qa){a.P("linear PDE addr PDE PTE addr PTE physical");a.P("--------- ---------- -------- ---------- -------- ----------");var ve="%"+q(Og),ve=ve+(" %%"+Uy(nf.Ti,nf.Aj)),ve=
ve+(" %%"+Uy(nf.Ui,nf.Bj,!0)),ve=ve+(" %%"+q(nf.ul));a.P(ve)}else a.P("unsupported operation")}}else a.P("missing address")}else{if("d"==za){if("disk"==cb){ca[0]="l";ca[1]="json";dB(a,ca);break a}for(xb in Sb)if(ca[1]==xb){var vt=a.Ba[xb];vt?(ca.shift(),ca.shift(),vt(ca)):a.P("no dump registered for "+cb);break a}cb||(za=a.lb||"db")}else a.lb=za;if("dh"==za){var wt=cb,xt=Sa,yt="",zt=0,Lc=a.ma,jd=a.O;if(jd.length){var uc=+wt||a.Ya,Pg=+xt||10;isNaN(uc)?uc=Pg:yt="more ";uc>jd.length&&(a.P("note: only "+
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var qm=[];"call"==xt&&(Pg=1E5,qm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Pg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Qg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,At=Xz(a,Qg,"history",ZB);(!qm.length||0<=At.indexOf(qm[0]))&&a.P(At);Qg.Fe&&(Lc+=Qg.Fe,Pg-=Qg.Fe,uc-=Qg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Pg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var rm=ca[0];if(rm){var Rg=$x(a,rm);if(void 0===Rg||0>Rg||255<Rg)a.P("invalid vector: "+rm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Ui=a.H.Pb+(Rg<<(Ct?3:2)),Et=a.H.ja(Ui+0),$B=a.H.ja(Ui+2);Ct&&(Bt="#",a.H.ja(Ui+4)&2048&&(Dt=!0,Et|=a.H.ja(Ui+6)<<16));a.P("dumpIDT("+ta(Rg)+"): "+Bt+q($B,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Py(a,cb);if(pf&&(null!=pf.U||null!=pf.ya)){var Vi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Vi=$x(a,Sa)>>>0,65536<Vi&&(Vi=65536));for(var Sg="",qf="dd"==za?4:"dw"==za?2:1,Wi=qf*Vi||128,aC=Wi+15>>4||1;aC--&&0<Wi;){var Tg=0,sm=0,Ug,tm="",Ft="",cb=Fy(pf);for(Ug=4==qf?16:a.L;0<Ug&&0<Wi;Ug--){var Xi=a.Ia(pf,1),Tg=Tg|Xi<<(sm++<<3);sm==qf&&(tm+=8==a.L?sa(Tg,3*qf):q(Tg,2*qf),tm+=1==qf?9==Ug?"-":" ":" ",Tg=sm=0);Ft+=32<=Xi&&128>Xi?String.fromCharCode(Xi):".";Wi--}Sg&&(Sg+="\n");Sg+=cb+" "+tm+(Ug?"":" "+Ft)}Sg&&a.P(Sg);a.Ta=pf}}}}}break;case "e":if("else"==g[0])break;var Yi=
jd.length+" available"),uc=jd.length);Lc-=uc;0>Lc&&(null==jd[jd.length-1].U?(uc=Lc+uc,Lc=0):Lc+=jd.length);var rm=[];"call"==xt&&(Pg=1E5,rm=["CALL"]);for(void 0!==wt&&a.P(uc+" instructions earlier:");0<Pg&&Lc!=a.ma;){var we=jd[Lc++];if(null==we.U)break;var Qg=hy(a,we.Ja,we.U,we.ya,we.type,we.Hb,we.dc),ZB=uc--,At=Xz(a,Qg,"history",ZB);(!rm.length||0<=At.indexOf(rm[0]))&&a.P(At);Qg.Fe&&(Lc+=Qg.Fe,Pg-=Qg.Fe,uc-=Qg.Fe);Lc>=jd.length&&(Lc=0);a.Ya=uc;zt++;Pg--}}zt||(a.P("no "+yt+"history available"),a.Ya=
void 0)}else if("di"==za){ca.shift();var sm=ca[0];if(sm){var Rg=$x(a,sm);if(void 0===Rg||0>Rg||255<Rg)a.P("invalid vector: "+sm);else{var Bt="&",Ct=!!(a.H.qa&1),Dt=!1,Ui=a.H.Pb+(Rg<<(Ct?3:2)),Et=a.H.ja(Ui+0),$B=a.H.ja(Ui+2);Ct&&(Bt="#",a.H.ja(Ui+4)&2048&&(Dt=!0,Et|=a.H.ja(Ui+6)<<16));a.P("dumpIDT("+ta(Rg)+"): "+Bt+q($B,4)+":"+q(Et,Dt?8:4))}}else a.P("no IDT vector")}else if("dt"==za)ca.shift(),a.P("no information");else{var pf=Py(a,cb);if(pf&&(null!=pf.U||null!=pf.ya)){var Vi=0;Sa&&("l"==Sa.charAt(0)&&
(Sa=Sa.substr(1)||rb),Vi=$x(a,Sa)>>>0,65536<Vi&&(Vi=65536));for(var Sg="",qf="dd"==za?4:"dw"==za?2:1,Wi=qf*Vi||128,aC=Wi+15>>4||1;aC--&&0<Wi;){var Tg=0,tm=0,Ug,um="",Ft="",cb=Fy(pf);for(Ug=4==qf?16:a.L;0<Ug&&0<Wi;Ug--){var Xi=a.Ia(pf,1),Tg=Tg|Xi<<(tm++<<3);tm==qf&&(um+=8==a.L?sa(Tg,3*qf):q(Tg,2*qf),um+=1==qf?9==Ug?"-":" ":" ",Tg=tm=0);Ft+=32<=Xi&&128>Xi?String.fromCharCode(Xi):".";Wi--}Sg&&(Sg+="\n");Sg+=cb+" "+um+(Ug?"":" "+Ft)}Sg&&a.P(Sg);a.Ta=pf}}}}}break;case "e":if("else"==g[0])break;var Yi=
1,Gt=255,Ht=a.Ia,It=a.fc;"ew"==g[0]&&(Yi=2,Gt=65535,Ht=a.Yc,It=a.il);var Jt=Yi<<1,Kt=g[1];if(null==Kt)a.P("edit memory commands:"),a.P("\teb [a] [...] edit bytes at address a"),a.P("\tew [a] [...] edit words at address a");else{var Zi=Py(a,Kt);if(Zi)for(var $i=2;$i<g.length;$i++){var Vg=by(a,g[$i]);if(void 0===Vg){a.P("unrecognized value: "+g[$i]);break}Vg&~Gt&&a.P("warning: "+q(Vg)+" exceeds "+Yi+"-byte value");var bC=Ht.call(a,Zi);a.P("changing "+Fy(Zi)+" from "+q(bC,Jt,!0)+" to "+q(Vg,Jt,!0));
It.call(a,Zi,Vg,Yi)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Lt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var um=Py(a,Lt,!0);if(!um)break a;Sy(a,um,cC);a.Gd(a.B,um,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var vm;if(a.ea.wb)vm="halting",a.Jb();else{if(Kb(a,!0))break a;vm="already halted"}c||a.P(vm)}break;case "i":if("if"==g[0]){var wm;var Wg=b.substr(2),Wg=Ca(Wg);by(a,Wg)?(c||a.P("true: "+Wg),wm=!0):(c||a.P("false: "+Wg),wm=!1);wm||(d=!1);
break}if("int"==g[0]){var aj;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ha=a.Y;aj=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ha=a.Y;aj=!0;break a;default:aj=!1}aj||(d=!1);break}var xm=g[1];if(xm&&"?"!=xm){var ym=$x(a,xm);if(void 0!==ym){var dC=Pc(a.ka,ym,1);a.P(ta(ym)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var zm=0,Mt=a.H.Z.U,Xg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>zm;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Xg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Xg.U=Mt;if(kd=gB(a,Xg))break;Xg.U=a.jb(Sd);if(kd=gB(a,Xg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==eC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=cB(a,Ot[0]))}kd=Ba(kd,50)+" ;"+(Nt||"stack="+Fy(Sd));a.P(kd);zm++}zm||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Am=g[1],bj=g[2];if(a.G){var Pt=1;"-"==bj.charAt(0)&&(Pt=-1,bj=bj.substr(1));var xe=$x(a,bj,Am);if(void 0!==xe)switch(xe=xe*Pt|0,Am){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Am)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
It.call(a,Zi,Vg,Yi)}}break;case "f":aB(a,g[1]);break;case "g":a:{var Lt=g[1],cC=b;"gt"==g[0]&&(a.Ca=!0);if(void 0!==Lt){var vm=Py(a,Lt,!0);if(!vm)break a;Sy(a,vm,cC);a.Gd(a.B,vm,!0)}Nz(a,!0)||c||a.P("cpu busy or unavailable, run command ignored")}break;case "h":a:{var wm;if(a.ea.wb)wm="halting",a.Jb();else{if(Kb(a,!0))break a;wm="already halted"}c||a.P(wm)}break;case "i":if("if"==g[0]){var xm;var Wg=b.substr(2),Wg=Ca(Wg);by(a,Wg)?(c||a.P("true: "+Wg),xm=!0):(c||a.P("false: "+Wg),xm=!1);xm||(d=!1);
break}if("int"==g[0]){var aj;a:switch($x(a,g[1])){case 19:Wk(a,19,a.H.da,!0);a.ha=a.Y;aj=!0;break a;case 33:Wk(a,33,a.H.da,!0);a.ha=a.Y;aj=!0;break a;default:aj=!1}aj||(d=!1);break}var ym=g[1];if(ym&&"?"!=ym){var zm=$x(a,ym);if(void 0!==zm){var dC=Pc(a.ka,zm,1);a.P(ta(zm)+": "+r(dC))}}else a.P("input commands:"),a.P("\ti [p]\tread port [p]"),a.P("warning: port accesses can affect hardware state");break;case "k":var eC=g[0];if("?"==g[1])a.P("stack trace commands:"),a.P("\tk\tshow frame addresses"),
a.P("\tks\tshow symbol information");else{var Am=0,Mt=a.H.Z.U,Xg=hy(a),Sd=hy(a,z(a.H),a.H.Y.U);for(a.P("stack trace for "+Fy(Sd));10>Am;){for(var kd=null,fC=256;Sd.Ja>>>0<a.H.cg>>>0;){Xg.Ja=a.jb(Sd,!0);if(null==Sd.ya||!fC--)break;Xg.U=Mt;if(kd=gB(a,Xg))break;Xg.U=a.jb(Sd);if(kd=gB(a,Xg,!0)){Mt=a.jb(Sd,!0);0<kd.indexOf("INT")&&a.jb(Sd,!0);break}}if(!kd||null==kd)break;var Nt=null;if("ks"==eC){var Ot=kd.match(/[0-9A-F]+$/);Ot&&(Nt=cB(a,Ot[0]))}kd=Ba(kd,50)+" ;"+(Nt||"stack="+Fy(Sd));a.P(kd);Am++}Am||
a.P("no return addresses found")}break;case "l":if("ln"==g[0]){cB(a,g[1],!0);break}dB(a,g);break;case "m":if("mouse"==g[0]){var Bm=g[1],bj=g[2];if(a.G){var Pt=1;"-"==bj.charAt(0)&&(Pt=-1,bj=bj.substr(1));var xe=$x(a,bj,Bm);if(void 0!==xe)switch(xe=xe*Pt|0,Bm){case "x":a.G.tf(xe,0);break;case "y":a.G.tf(0,xe);break;case "click":a.G.Vd(xe,!0);a.G.Vd(xe,!1);break;default:a.P("unknown action: "+Bm)}}else a.P("no mouse");break}a:{var ld,md=null,fb=g[1];"?"==fb&&(fb=void 0);if(void 0!==fb){var ye=0;if("all"==
fb)ye=1610481663,fb=null;else if("on"==fb)md=!0,fb=null;else if("off"==fb)md=!1,fb=null;else{"keys"==fb&&(fb="key");"kbd"==fb&&(fb="keyboard");for(ld in Sb)if(fb==ld){ye=Sb[ld];md=!!(a.ic&ye);break}if(!ye){a.P("unknown message category: "+fb);break a}}ye&&("on"==g[2]?(a.ic|=ye,md=!0):"off"==g[2]&&(a.ic&=~ye,md=!1))}var gC=0,Yg="";for(ld in Sb)if(!fb||fb==ld){var hC=!!(a.ic&Sb[ld]);if(null===md||md==hC)Yg&&(Yg+=","),++gC%10||(Yg+="\n\t"),"key"==ld&&(ld="keys"),Yg+=ld}void 0===fb&&a.P("message commands:\n\tm [category] [on|off]\tturn categories on/off");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Yg||"none"));jy(a)}break;case "o":var Bm=g[1],iC=g[2];if(Bm&&"?"!=Bm){var Cm=$x(a,Bm,"port #"),Dm=$x(a,iC);void 0!==Cm&&void 0!==Dm&&(Tc(a.ka,Cm,1,Dm),a.P(ta(Cm)+": "+r(Dm)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,rf=1+Qt;if(a.I)a.P("step in progress");
a.P((null!==md?md?"messages on: ":"messages off: ":"message categories:\n\t")+(Yg||"none"));jy(a)}break;case "o":var Cm=g[1],iC=g[2];if(Cm&&"?"!=Cm){var Dm=$x(a,Cm,"port #"),Em=$x(a,iC);void 0!==Dm&&void 0!==Em&&(Tc(a.ka,Dm,1,Em),a.P(ta(Dm)+": "+r(Em)))}else a.P("output commands:"),a.P("\to [p] [b]\twrite byte [b] to port [p]"),a.P("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){fB(a,b.substr(5));break}var Qt="pr"==g[0]?1:0,rf=1+Qt;if(a.I)a.P("step in progress");
else{var cj,Rt=!1,Hb=hy(a,A(a.H),a.H.Z.U);do switch(cj=!1,a.Ia(Hb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Ky(a,Hb,1);cj=!0;break;case 204:case 206:a.I=rf;Ky(a,Hb,1);break;case 205:case 224:case 225:case 226:a.I=rf;Ky(a,Hb,Hb.Hb?4:2);break;case 232:a.I=rf;Ky(a,Hb,Hb.Hb?5:3);break;case 154:a.I=rf;Ky(a,Hb,Hb.Hb?7:5);break;case 255:var St=a.jb(Hb)&14591;if(4351==St||6399==St)a.I=rf,Xz(a,Hb);break;case 243:case 242:Ky(a,Hb,1);Rt=cj=!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:Rt&&
(a.I=rf,Ky(a,Hb,1))}while(cj);a.I?(a.Gd(a.B,Hb,!0),Nz(a)||(a.pa&&a.pa.ld(),a.I=0)):hB(a,Qt?"tr":"t")}break;case "r":if("reset"==b){a.pa&&a.pa.reset();break}Pz(a,g);break;case "t":hB(a,g[0],g[1]);break;case "u":Qz(a,g[1],g[2],8);break;case "v":if("var"==g[0]){bB(a,b.substr(3))||(d=!1);break}a.P("PCx86 version 1.34.2 ("+a.H.ca+",RELEASE,NOPREFETCH"+(Ob?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.P(Na());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Zg;void 0!==g[3]&&(Zg=+g[3]);
switch(g[2]){case "int":a.H.T.Se=Zg;break;case "start":a.H.T.wf=Zg;break;case "stop":a.H.T.Ue=Zg;break;default:a.P("unknown cs option");break a}void 0!==Zg&&Bd(a.H);a.P("checksums "+(a.H.ea.He?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Fd(a.H,+g[2])||a.P("warning: using 1x multiplier, previous target not reached"));a.P("target speed: "+(a.H.T.oe.toFixed(2)+"Mhz")+" ("+a.H.T.Kd+"x)");break;default:a.P("unknown option: "+g[1])}else a.P("execution options:"),a.P("\tcs int #\tset checksum cycle interval to #"),
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Em="commands:",Fm;for(Fm in jB)Em+="\n"+Ba(Fm,7)+jB[Fm];Jg(a)||(Em+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Em);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
a.P("\tcs start #\tset checksum cycle start count to #"),a.P("\tcs stop #\tset checksum cycle stop count to #"),a.P("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){fB(a,b.substr(1));break}var Fm="commands:",Gm;for(Gm in jB)Fm+="\n"+Ba(Gm,7)+jB[Gm];Jg(a)||(Fm+="\nnote: frequency/history disabled if no exec breakpoints");a.P(Fm);break;default:a.P("unknown command: "+b),d=!1}}}catch(Ut){a.P("debugger error: "+(Ut.stack||Ut.message)),d=!1}return d}
function ly(a,b,c){b=a.Cg(b,c);for(var d in b)if(!Wz(a,b[+d]))return!1;return!0}
var Kz={16:262144,19:524288,21:32768,22:65536,28:2048,33:134217728,51:16777216},Jz=[26,28,40,42,109],jB={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory",f:"frequencies","g [#]":"go [to #]",h:"halt","i [#]":"input port #","if":"eval expression",k:"stack trace",l:"load sector(s)",ln:"list nearest symbol(s)",m:"messages",mouse:"mouse action","o [#]":"output port #",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",
"t [#]":"trace","u [#]":"unassemble",x:"execution options",v:"print version","var":"assign variable"},Qy=0,Iy=1,ry=2,Ty=3,Ry=4,Jy=5,eA=18,fA=28,aA=36,jA=80,gA=104,hA=107,Zz=176,Yz="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 FS: GS: HLT IBTS 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 PUSHF PUSHA PUSH 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 XBTS XCHG XLAT XOR".split(" "),