Started work on v1.19.1: Debugger improvements
This commit is contained in:
parent
989407ca4a
commit
3f42a9d85b
141 changed files with 278 additions and 209 deletions
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<xsl:variable name="MACHINECLASS">pc</xsl:variable>
|
||||
<xsl:variable name="APPCLASS">pcjs</xsl:variable>
|
||||
<xsl:variable name="APPVERSION">1.18.9</xsl:variable>
|
||||
<xsl:variable name="APPVERSION">1.19.1</xsl:variable>
|
||||
<xsl:variable name="SITEHOST">www.pcjs.org</xsl:variable>
|
||||
|
||||
<xsl:template name="componentStyles">
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ f.restore=function(a){"number"==typeof a?this.load(a):(this.ma=a[0],this.Ia=a[1]
|
|||
function cd(a,b,c,d){void 0===c&&(c=!!(a.A.eb&1));a.De=!1;if(c)if(a.load=a.cj,a.bj=a.Wk,a.yc=a.Ni,a.pc=a.Pi,void 0===d&&(d=!!(a.A.Z&131072)),d)a.load=a.R,a.yc=a.P,a.pc=a.U,a.Pb=a.rc=3,a.ua=a.Ec=2,a.C=a.ca=65535,a.yb=65535,a.Tc=a.yb+1,a.Ec=a.ua,a.Dc=p,a.He=!1;else{if(!(a.ma&-4))a.yc=a.Qf,a.pc=a.Rf;else if(a.type&4096){6144==(a.type&6656)&&(a.yc=a.Qf);if(a.type&2048||!(a.type&512))a.pc=a.Rf;1024==(a.type&3072)&&(a.yc==a.Ni&&(a.yc=a.Fj),a.pc==a.Pi&&(a.pc=a.Gj),a.De=!0)}b&&(a.ma&-4&&a.Dc!==p&&(b=a.Dc+
|
||||
5,a.A.mc(b,a.A.Ya(b)|1)),a.Pb=a.ma&3,a.rc=(a.Ob&24576)>>13,80386>a.A.ra||!(a.ext&64)?(a.ua=2,a.C=65535):(a.ua=4,a.C=-1),a.Ec=a.ua,a.ca=a.C)}else a.load=a.mh,a.bj=a.Xk,a.yc=a.Oi,a.pc=a.Qi,a.Pb=a.rc=0,a.Dc=p,a.He=!1}
|
||||
function sd(a){this.ra=a.model||8088;var b=0;switch(this.ra){default:b=4772727;break;case 80286:b=6E6;break;case 80386:b=16E6}Jc.call(this,a,b);this.nf=61442;this.Cb=1792;this.mf=28672;this.dd=4;this.qa=255;this.B=80386==this.ra?td:80286==this.ra?ud:vd;this.aa=wd;this.Af=xd;this.Cf=yd;this.Ef=zd;if(80186<=this.ra&&(this.aa=wd.slice(),this.Af=xd.slice(),this.Cf=yd.slice(),this.qa=31,this.aa[15]=Ad,this.aa[96]=Bd,this.aa[97]=Cd,this.aa[98]=Dd,this.aa[99]=Ad,this.aa[100]=Ad,this.aa[101]=Ad,this.aa[102]=
|
||||
Ad,this.aa[103]=Ad,this.aa[104]=Ed,this.aa[105]=Fd,this.aa[106]=Gd,this.aa[107]=Hd,this.aa[108]=Id,this.aa[109]=Jd,this.aa[110]=Kd,this.aa[111]=Ld,this.aa[192]=Md,this.aa[193]=Nd,this.aa[200]=Od,this.aa[201]=Pd,this.aa[241]=Qd,this.Af[7]=Rd,this.Cf[7]=Rd,80286<=this.ra)){this.nf=2;this.Cb|=28672;this.dd=0;this.aa[15]=Sd;this.Kc=Td.slice();for(a=0;a<this.Kc.length;a++)this.Kc[a]||(this.Kc[a]=Ud);this.aa[84]=Xd;this.aa[99]=Yd;if(80386<=this.ra){var c;this.mf=16384;this.Cb|=196608;this.aa[100]=Zd;this.aa[101]=
|
||||
Ad,this.aa[103]=Ad,this.aa[104]=Ed,this.aa[105]=Fd,this.aa[106]=Gd,this.aa[107]=Hd,this.aa[108]=Id,this.aa[109]=Jd,this.aa[110]=Kd,this.aa[111]=Ld,this.aa[192]=Md,this.aa[193]=Nd,this.aa[200]=Od,this.aa[201]=Pd,this.aa[241]=Qd,this.Af[7]=Rd,this.Cf[7]=Rd,80286<=this.ra)){this.nf=2;this.Cb|=28672;this.dd=0;this.aa[15]=Sd;this.Kc=Td.slice();for(a=0;a<this.Kc.length;a++)this.Kc[a]||(this.Kc[a]=Wd);this.aa[84]=Xd;this.aa[99]=Yd;if(80386<=this.ra){var c;this.mf=16384;this.Cb|=196608;this.aa[100]=Zd;this.aa[101]=
|
||||
$d;this.aa[102]=ae;this.aa[103]=be;for(c in y)this.Kc[+c]=y[c]}}this.od=[];this.Ug=[];Kc(this);this.oa.Dd=this.oa.Ui=!1;this.Ff=0;this.Ad=this.ya=[];this.Qa=this.Ib=this.La=this.ld=this.wc=this.xc=this.fb=0;ce(this)}hb(sd,Jc);
|
||||
var vd={zf:4,N:5,la:6,ja:7,ka:8,I:9,S:11,T:12,$d:4,wh:60,xh:83,ac:3,Lb:9,uc:16,xf:1,Bh:19,Dh:28,Fh:16,Eh:21,Ch:37,zh:2,dg:9,Ah:5,yh:33,fg:10,eg:8,Te:3,Se:15,Th:51,Uh:1,Vh:2,Wh:4,Sh:32,gg:15,Yh:15,Za:16,$a:4,$h:11,Zh:18,Xh:24,Vb:4,ai:2,oe:16,bi:17,lg:18,ci:19,kg:5,mg:6,hi:2,gi:8,ei:9,fi:10,di:10,ng:10,og: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,Ve:3,Ue:16,tg:10,sg:8,mi:51,bc:8,ni:17,oi:36,Ac:11,pi:16,ae:10,Sc:2,ag:18,bg:7,cg:15,hg:12,
|
||||
ig:7,jg:11,pg:18,qg:7,rg:15,ug:15,vg:7,wg:13,Ag:11,Bg:7,Cg:8,ri:8,ui:12,si:18,ti:17,vi:15,yg:8,xg:20,zg:2,Fg:3,We:9,Eg:5,Dg:11,Hg:4,Gg:17,wi:11},ud={zf:0,N:0,la:0,ja:0,ka:0,I:0,S:1,T:1,$d:3,wh:14,xh:16,ac:2,Lb:7,uc:7,xf:0,Bh:7,Dh:13,Fh:7,Eh:11,Ch:16,zh:3,dg:6,Ah:2,yh:13,fg:5,eg:5,Te:2,Se:7,Th:23,Uh:0,Vh:1,Wh:3,Sh:17,gg:7,Yh:11,Za:7,$a:3,$h:7,Zh:11,Xh:15,Vb:2,ai:3,oe:7,bi:8,lg:8,ci:8,kg:4,mg:4,hi:2,gi:3,ei:5,fi:2,di:3,ng:5,og: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,
|
||||
|
|
@ -132,8 +132,8 @@ function Gf(a,b,c){this.Ca=!1;if((c>>>=0)&&!(c<=b>>>0)){var d=0,e=1;c=[c>>>0,0];
|
|||
function If(a,b){a=this.M();var c=(b<<16>>16)*a|0;32767<c||-32768>c?(Le(this),Ne(this)):(Me(this),Oe(this));this.A-=this.O===p?21:24;return c&65535}function Jf(a,b){var c,d;a=this.Na();2==this.ua?(d=(b<<16>>16)*(a<<16>>16)|0,c=32767<d||-32768>d):(d=b*a,c=2147483647<d||-2147483648>d);c?(Le(this),Ne(this)):(Me(this),Oe(this));d&=this.C;this.A-=this.O===p?21:24;return d}
|
||||
function Kf(a,b){var c=(a<<16>>16)*(b<<16>>16)|0;32767<c||-32768>c?(Le(this),Ne(this)):(Me(this),Oe(this));this.A-=this.O===p?9:12;return c&65535}function Lf(a,b){var c=a*b;2147483647<c||-2147483648>c?(Le(this),Ne(this)):(Me(this),Oe(this));this.A-=this.O===p?9:12;return c|0}function Mf(a){var b=a+1|0;De(this,a,1,b,this.dataType|62);this.A-=2;return a&~this.C|b&this.C}
|
||||
function kf(a,b,c){this.A-=this.B.Th+c;c=od(this);var d=te(this),e=w(this);a=this.Ja.bj(a);a!==p&&(ld(this,c),ld(this,d),ld(this,e),null!=b&&ld(this,b),this.sd=-1,id(this),this.Aa=a,this.vd=this.Ja.Ia+this.Ja.yb|0,this.tb=this.Ja.Pb)}function Nf(a,b){this.A-=14+(this.O===p?0:2);Se(this);this.Ba.load(b)!==p&&this.Ba.rc>=this.tb&&this.Ba.rc>=(b&3)&&(Ue(this),a=this.Ba.Ob&-256,2<this.ua&&(a|=(this.Ba.ext&-65281)<<16));return a}function Of(a){this.eb=a;hd(this);this.eb&-2147483648?de(this):fe(this)}
|
||||
function rd(a){this.Ld=a;this.eb&-2147483648&&de(this)}function Pf(a,b){if(this.O===p)return Ud.call(this),a;md(this,this.xa(this.O+this.ua));this.A-=this.B.oe;return b}function Qf(a){if(this.O===p)return Ud.call(this),a;this.A-=this.B.ai;return this.O}function Rf(a,b){if(this.O===p)return Ud.call(this),a;nd(this,this.xa(this.O+this.ua));this.A-=this.B.oe;return b}function Sf(a,b){if(this.O===p)return Ud.call(this),a;var c=this.xa(this.O+this.ua);this.Rb.load(c);this.A-=this.B.oe;return b}
|
||||
function Tf(a,b){if(this.O===p)return Ud.call(this),a;var c=this.xa(this.O+this.ua);this.Sb.load(c);this.A-=this.B.oe;return b}function Uf(a,b){this.A-=14+(this.O===p?0:2);if(b&65528&&this.Ba.load(b)!==p&&(7168==(this.Ba.Ob&7168)||this.Ba.rc>=this.tb)&&this.Ba.rc>=(b&3))return Ue(this),this.Ba.yb;Se(this);return a}function Vf(a,b){if(this.O===p)return Ud.call(this),a;fd(this,this.xa(this.O+this.ua));this.A-=this.B.oe;return b}
|
||||
function rd(a){this.Ld=a;this.eb&-2147483648&&de(this)}function Pf(a,b){if(this.O===p)return Wd.call(this),a;md(this,this.xa(this.O+this.ua));this.A-=this.B.oe;return b}function Qf(a){if(this.O===p)return Wd.call(this),a;this.A-=this.B.ai;return this.O}function Rf(a,b){if(this.O===p)return Wd.call(this),a;nd(this,this.xa(this.O+this.ua));this.A-=this.B.oe;return b}function Sf(a,b){if(this.O===p)return Wd.call(this),a;var c=this.xa(this.O+this.ua);this.Rb.load(c);this.A-=this.B.oe;return b}
|
||||
function Tf(a,b){if(this.O===p)return Wd.call(this),a;var c=this.xa(this.O+this.ua);this.Sb.load(c);this.A-=this.B.oe;return b}function Uf(a,b){this.A-=14+(this.O===p?0:2);if(b&65528&&this.Ba.load(b)!==p&&(7168==(this.Ba.Ob&7168)||this.Ba.rc>=this.tb)&&this.Ba.rc>=(b&3))return Ue(this),this.Ba.yb;Se(this);return a}function Vf(a,b){if(this.O===p)return Wd.call(this),a;fd(this,this.xa(this.O+this.ua));this.A-=this.B.oe;return b}
|
||||
function Wf(a,b){this.A-=this.da===p?this.O===p?this.B.hi:this.B.gi:this.B.ei;return b}function Xf(a,b){return b}function Yf(){this.da!==p&&re(this);return Wf.call(this,0,this.qb)}function Zf(a,b){var c=b&65535,d=b>>>16,e=a&65535,h=a>>>16,g=c*e,e=(g>>>16)+d*e,m=e>>>16,e=(e&65535)+c*h;this.Ca=!0;this.ia=e<<16|g&65535;this.Ea=m+((e>>>16)+d*h)|0}function $f(a,b){this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return Ke(this,a|b,128)}
|
||||
function ag(a,b){this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return Ke(this,a|b,this.dataType)}function bg(a){var b=this.Ra(),c=this.Ra();a&&u(this,v(this)+a);qd(this,b,c,!1)&&(a&&u(this,v(this)+a),this.kb.ma&65528&&this.kb.rc<this.tb&&7168!=(this.kb.Ob&7168)&&this.kb.load(0),this.ab.ma&65528&&this.ab.rc<this.tb&&7168!=(this.ab.Ob&7168)&&this.ab.load(0))}
|
||||
function cg(a,b){var c=a-b-Qe(this)|0;De(this,a,b,c,191,!0);this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return c&255}function dg(a,b){var c=a-b-Qe(this)|0;De(this,a,b,c,this.dataType|63,!0);this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return c&this.C}function eg(a){this.V|=1;this.Pa[this.ba()].call(this,a);this.A-=this.O===p?4:5}function fg(){return Je(this)?1:0}function gg(){return Ee(this)?1:0}function hg(){return Ee(this)?0:1}function ig(){return He(this)?1:0}
|
||||
|
|
@ -144,7 +144,7 @@ function Gg(a,b){var c=a-b|0;De(this,a,b,c,191,!0);this.A-=this.da===p?this.O===
|
|||
function Tg(a,b){Ke(this,a&b,this.dataType);this.A-=this.da===p?this.O===p?this.B.Fg:this.B.We:this.B.We;this.V|=2;return a}
|
||||
function Ug(a,b){if(this.O===p){switch(this.pd&7){case 0:this.F=this.F&-256|a;break;case 1:this.G=this.G&-256|a;break;case 2:this.H=this.H&-256|a;break;case 3:this.D=this.D&-256|a;break;case 4:this.F=this.F&-65281|a<<8;break;case 5:this.G=this.G&-65281|a<<8;break;case 6:this.H=this.H&-65281|a<<8;break;case 7:this.D=this.D&-65281|a<<8}this.A-=this.B.Hg}else this.da=this.O,R(this,a),this.A-=this.B.Gg;return b}
|
||||
function Vg(a,b){if(this.O===p){switch(this.pd&7){case 0:this.F=this.F&~this.C|a;break;case 1:this.G=this.G&~this.C|a;break;case 2:this.H=this.H&~this.C|a;break;case 3:this.D=this.D&~this.C|a;break;case 4:u(this,v(this)&~this.C|a);break;case 5:this.L=this.D&~this.C|a;break;case 6:this.K=this.K&~this.C|a;break;case 7:this.J=this.J&~this.C|a}this.A-=this.B.Hg}else this.da=this.O,T(this,a),this.A-=this.B.Gg;return b}
|
||||
function Wg(a,b){var c=a^b;Ke(this,c,128);this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return c}function Xg(a,b){this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return Ke(this,a^b,this.dataType)}function Yg(a){t.call(this,13,0);return a}function Rd(a){t.call(this,6);return a}function Zg(a){Ud.call(this);return a}function $g(){E(this,this.va-this.Ja.Ia);kf.call(this,0,null,2)}function ah(){this.A-=this.O===p?2:this.B.vi;return 1}
|
||||
function Wg(a,b){var c=a^b;Ke(this,c,128);this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return c}function Xg(a,b){this.A-=this.da===p?this.O===p?this.B.ac:this.B.Lb:this.B.uc;return Ke(this,a^b,this.dataType)}function Yg(a){t.call(this,13,0);return a}function Rd(a){t.call(this,6);return a}function Zg(a){Wd.call(this);return a}function $g(){E(this,this.va-this.Ja.Ia);kf.call(this,0,null,2)}function ah(){this.A-=this.O===p?2:this.B.vi;return 1}
|
||||
function bh(){var a=this.G&255;this.A-=(this.O===p?this.B.yg:this.B.xg)+(a<<this.B.zg);return a}function ch(){var a=this.ba();this.A-=(this.O===p?this.B.yg:this.B.xg)+(a<<this.B.zg);return a}function dh(){return null}
|
||||
function t(a,b,c,d){this.V=1==a?this.V|8192:this.V|4096;if(this.oa.Dd){var e=!1;if(80186<=this.ra)if(0>this.sd)E(this,this.va-this.Ja.Ia),e=!0;else if(8!=this.sd)b=0,a=8,e=!0;else{eh.call(this,-1,0,c);ce(this);return}eh.call(this,a,b,c)&&(e=!1);e&&(this.sd=a,kf.call(this,a,b,d||0),this.va=this.Aa);this.V|=3}else this.wa("Fault "+l(a)+" blocked by PCjs",1073741824),E(this,this.va-this.Ja.Ia)}function ee(a,b,c){this.ce=a;a=0;b&&(a|=1);c&&(a|=2);3==this.tb&&(a|=4);t.call(this,14,a)}
|
||||
function eh(a,b,c){var d=32,e=Xe(this,this.Aa);204!=e||this.Rd||(c=!1);if(this.Z&131072){if(6==a&&99==e||13==a&&205==e)c=!1}else if(12==a||14==a||13==a&&80386==this.ra)c=!0;!1===c&&(d|=1);983040<=this.Aa&&1048575>=this.Aa&&(c=!1);this.sa(d|-2147483648)&&(c=!0);if(this.sa(d)||c)a="Fault "+l(a)+(null!=b?" ("+ia(b)+")":"")+" on opcode "+l(e)+" at "+fh(w(this),te(this))+" (%"+k(this.Aa,6)+")",b=this.oa.Ab,this.wa(a,d)?c&&(c=b,this.fa.Wb()):(this.Ua(a),this.Wb());return c}
|
||||
|
|
@ -160,7 +160,7 @@ function lh(){var a=this.M();He(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.
|
|||
function qh(){var a=this.M();Fe(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a}function rh(){var a=this.M();Fe(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)}function sh(){var a=this.M();!Ie(this)!=!Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a}function th(){var a=this.M();!Ie(this)==!Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a}
|
||||
function uh(){var a=this.M();He(this)||!Ie(this)!=!Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a}function vh(){var a=this.M();He(this)||!Ie(this)!=!Je(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)}function wh(){this.lb[this.ba()].call(this,xh,this.ba);this.A-=this.da===p?1:this.B.xf}function Md(){this.lb[this.ba()].call(this,yh,ch)}function Nd(){this.Ma[this.ba()].call(this,2==this.ua?zh:Ah,ch)}
|
||||
function Bh(){var a=bf(this),b=this.Ra();E(this,b);a&&u(this,v(this)+a);this.A-=this.B.ui}function Ch(){var a=this.Ra();E(this,a);this.A-=this.B.ri}function Od(){var a=bf(this),b=this.ba()&31;this.A-=11;ld(this,this.L);var c=v(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.ua&this.C,ld(this,jd(this,this.Da,this.L&this.C));ld(this,c)}this.L=this.L&~this.C|c;u(this,v(this)&~this.Da.ca|v(this)-a&this.Da.ca)}
|
||||
function Pd(){u(this,v(this)&~this.Da.ca|this.L&this.Da.ca);this.L=this.L&~this.C|this.Ra()&this.C;this.A-=5}function Dh(){bg.call(this,bf(this));this.A-=this.B.ti}function Eh(){bg.call(this,0);this.A-=this.B.si}function Fh(){this.ea[this.ba()].call(this,Hf);this.A-=8}function Gh(){this.V|=36;this.A-=this.B.Sc}function Qd(){Ud.call(this)}function Ad(){t.call(this,6)}function Ud(){E(this,this.va-this.Ja.Ia);vb(this,"Undefined opcode "+l(Ib(this.ga,this.Aa))+" at "+("0x"+k(this.Aa)));this.Wb()}
|
||||
function Pd(){u(this,v(this)&~this.Da.ca|this.L&this.Da.ca);this.L=this.L&~this.C|this.Ra()&this.C;this.A-=5}function Dh(){bg.call(this,bf(this));this.A-=this.B.ti}function Eh(){bg.call(this,0);this.A-=this.B.si}function Fh(){this.ea[this.ba()].call(this,Hf);this.A-=8}function Gh(){this.V|=36;this.A-=this.B.Sc}function Qd(){Wd.call(this)}function Ad(){t.call(this,6)}function Wd(){E(this,this.va-this.Ja.Ia);vb(this,"Undefined opcode "+l(Ib(this.ga,this.Aa))+" at "+("0x"+k(this.Aa)));this.Wb()}
|
||||
var wd=[function(){var a=this.ba();this.Pa[a].call(this,pf)},function(){this.ta[this.ba()].call(this,qf)},function(){this.Oa[this.ba()].call(this,pf)},function(){this.ea[this.ba()].call(this,qf)},function(){this.F=this.F&-256|pf.call(this,this.F&255,this.ba());this.A--},function(){this.F=this.F&~this.C|qf.call(this,this.F&this.C,this.Na());this.A--},function(){ld(this,this.ab.ma);this.A-=this.B.ae},function(){nd(this,this.Ra());this.A-=this.B.bc},function(){this.Pa[this.ba()].call(this,$f)},function(){this.ta[this.ba()].call(this,
|
||||
ag)},function(){this.Oa[this.ba()].call(this,$f)},function(){this.ea[this.ba()].call(this,ag)},function(){this.F=this.F&-256|$f.call(this,this.F&255,this.ba());this.A--},function(){this.F=this.F&~this.C|ag.call(this,this.F&this.C,this.Na());this.A--},function(){ld(this,this.Ja.ma);this.A-=this.B.ae},function(){Be(this,this.Ra());this.A-=this.B.bc},function(){this.Pa[this.ba()].call(this,nf)},function(){this.ta[this.ba()].call(this,of)},function(){this.Oa[this.ba()].call(this,nf)},function(){this.ea[this.ba()].call(this,
|
||||
of)},function(){this.F=this.F&-256|nf.call(this,this.F&255,this.ba());this.A--},function(){this.F=this.F&~this.C|of.call(this,this.F&this.C,this.Na());this.A--},function(){ld(this,this.Da.ma);this.A-=this.B.ae},function(){fd(this,this.Ra());this.A-=this.B.bc},function(){this.Pa[this.ba()].call(this,cg)},function(){this.ta[this.ba()].call(this,dg)},function(){this.Oa[this.ba()].call(this,cg)},function(){this.ea[this.ba()].call(this,dg)},function(){this.F=this.F&-256|cg.call(this,this.F&255,this.ba());
|
||||
|
|
@ -213,10 +213,10 @@ this.Ea|=0}this.A-=this.O===p?this.B.Nh:this.B.Mh;this.V|=2;return a}],xd=[funct
|
|||
return b&this.C},function(a){ld(this,w(this));E(this,a);this.A-=this.O===p?this.B.Fh:this.B.Eh;this.V|=2;return a},function(a){if(this.O===p)return Zg.call(this,a);Bf.call(this,a,this.xa(this.O+this.ua));this.A-=this.B.Ch;this.V|=2;return a},function(a){E(this,a);this.A-=this.O===p?this.B.$h:this.B.Zh;this.V|=2;return a},function(a){if(this.O===p)return Zg.call(this,a);qd(this,a,this.xa(this.O+this.ua));this.A-=this.B.Xh;this.V|=2;return a},function(a){var b=a;this.V&512&&(a=a-2&65535,80286>this.ra&&
|
||||
(b=a));ld(this,b);this.A-=this.O===p?this.B.Ac:this.B.pi;this.V|=2;return a},Yg],Td=Array(256);Td[0]=function(){var a=this.ba();16>(a&56)&&(this.V|=1);this.Ma[a].call(this,this.Ef,dh)};Td[1]=function(){var a=this.ba();a&16||(this.V|=1);this.Ma[a].call(this,Nh,dh)};Td[2]=function(){!(this.eb&1)||this.Z&131072?t.call(this,6):this.ea[this.ba()].call(this,Nf)};Td[3]=function(){!(this.eb&1)||this.Z&131072?t.call(this,6):this.ea[this.ba()].call(this,Uf)};
|
||||
Td[5]=function(){this.tb?t.call(this,13,0,!0):(Ve(this,this.xa(2054)),this.J=this.xa(2086),this.K=this.xa(2088),this.L=this.xa(2090),this.D=this.xa(2094),this.H=this.xa(2096),this.G=this.xa(2098),this.F=this.xa(2100),ed(this.ab,2102,this.xa(2084)),ed(this.Ja,2108,this.xa(2082)),ed(this.Da,2114,this.xa(2080)),ed(this.kb,2120,this.xa(2078)),pd(this,this.xa(2072)),E(this,this.xa(2074)),u(this,this.xa(2092)),this.ed=this.xa(2126)|this.Ya(2128)<<16,this.ee=this.ed+this.xa(2130),ed(this.Vc,2132,this.xa(2076)),
|
||||
this.fd=this.xa(2138)|this.Ya(2140)<<16,this.Rd=this.fd+this.xa(2142),ed(this.Wa,2144,this.xa(2070)),this.A-=195)};Td[6]=function(){this.tb?t.call(this,13,0):(this.eb&=-9,this.A-=2)};Td[11]=Ad;Td[166]=Ad;Td[255]=Ad;var y=[];y[5]=Ad;y[7]=function(){this.tb?t.call(this,13,0,!0):(Ud.call(this),this.A-=100)};
|
||||
y[32]=function(){if(this.tb)t.call(this,13,0);else{var a,b=this.ba();switch((b&56)>>3){case 0:a=this.eb;break;case 2:a=this.ce;break;case 3:a=this.Ld;break;default:Ud.call(this);return}he(this,b&7,a);this.A-=6}};y[33]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;4==b||5==b?Ud.call(this):(he(this,a&7,this.Ha[b]),this.A-=22)}};
|
||||
y[34]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=ge(this,a&7);switch((a&56)>>3){case 0:Of.call(this,b);this.A-=10;break;case 2:this.ce=b;this.A-=4;break;case 3:rd.call(this,b);this.A-=5;break;default:Ud.call(this)}}};y[35]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;4==b||5==b?Ud.call(this):(a=ge(this,a&7),a!=this.Ha[b]&&(we(this,!1),this.Ha[b]=a,we(this,!0)),this.A-=4>b?22:14)}};
|
||||
y[36]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;6>b?Ud.call(this):(he(this,a&7,this.wd[b]),this.A-=12)}};y[38]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;6>b?Ud.call(this):(this.wd[b]=ge(this,a&7),this.A-=12)}};y[128]=function(){var a=this.Na();Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[129]=function(){var a=this.Na();Je(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};
|
||||
this.fd=this.xa(2138)|this.Ya(2140)<<16,this.Rd=this.fd+this.xa(2142),ed(this.Wa,2144,this.xa(2070)),this.A-=195)};Td[6]=function(){this.tb?t.call(this,13,0):(this.eb&=-9,this.A-=2)};Td[11]=Ad;Td[166]=Ad;Td[255]=Ad;var y=[];y[5]=Ad;y[7]=function(){this.tb?t.call(this,13,0,!0):(Wd.call(this),this.A-=100)};
|
||||
y[32]=function(){if(this.tb)t.call(this,13,0);else{var a,b=this.ba();switch((b&56)>>3){case 0:a=this.eb;break;case 2:a=this.ce;break;case 3:a=this.Ld;break;default:Wd.call(this);return}he(this,b&7,a);this.A-=6}};y[33]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;4==b||5==b?Wd.call(this):(he(this,a&7,this.Ha[b]),this.A-=22)}};
|
||||
y[34]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=ge(this,a&7);switch((a&56)>>3){case 0:Of.call(this,b);this.A-=10;break;case 2:this.ce=b;this.A-=4;break;case 3:rd.call(this,b);this.A-=5;break;default:Wd.call(this)}}};y[35]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;4==b||5==b?Wd.call(this):(a=ge(this,a&7),a!=this.Ha[b]&&(we(this,!1),this.Ha[b]=a,we(this,!0)),this.A-=4>b?22:14)}};
|
||||
y[36]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;6>b?Wd.call(this):(he(this,a&7,this.wd[b]),this.A-=12)}};y[38]=function(){if(this.tb)t.call(this,13,0);else{var a=this.ba(),b=(a&56)>>3;6>b?Wd.call(this):(this.wd[b]=ge(this,a&7),this.A-=12)}};y[128]=function(){var a=this.Na();Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[129]=function(){var a=this.Na();Je(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};
|
||||
y[130]=function(){var a=this.Na();Ee(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[131]=function(){var a=this.Na();Ee(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};y[132]=function(){var a=this.Na();He(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[133]=function(){var a=this.Na();He(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};y[134]=function(){var a=this.Na();Ee(this)||He(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};
|
||||
y[135]=function(){var a=this.Na();Ee(this)||He(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};y[136]=function(){var a=this.Na();Ie(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[137]=function(){var a=this.Na();Ie(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};y[138]=function(){var a=this.Na();Fe(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[139]=function(){var a=this.Na();Fe(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};
|
||||
y[140]=function(){var a=this.Na();!Ie(this)!=!Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[141]=function(){var a=this.Na();!Ie(this)==!Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[142]=function(){var a=this.Na();He(this)||!Ie(this)!=!Je(this)?(E(this,w(this)+a),this.A-=this.B.Za):this.A-=this.B.$a};y[143]=function(){var a=this.Na();He(this)||!Ie(this)!=!Je(this)?this.A-=this.B.$a:(E(this,w(this)+a),this.A-=this.B.Za)};y[144]=function(){eg.call(this,fg)};
|
||||
|
|
@ -1101,10 +1101,10 @@ f.save=function(){var a=new ye(this);ze(a,0,Tm(this.aa));ze(a,1,Tm(this.va));ze(
|
|||
f.stop=function(a,b){if(this.oa.Ab){this.oa.Ab=!1;this.ea=b-this.kd;if(!this.P){var c="stopped";if(this.ea){var d=a-this.Gb,e=0<d?Math.round(1E3*this.ea/d):0,c=c+" (";hf(this)&&(c+=this.Ka+" ops, ",this.Ka=0);c+=this.ea+" cycles, "+d+" ms, "+e+" hz)"}this.X(c)}this.cd(!0);this.Wc();en(this,this.A.Aa)}};function hf(a){return 1<a.B.length||a.sa(16)}
|
||||
function mf(a,b,c){if(0<c){if(fn(a,b,1,a.B))return!0;if(!(a.A.Z&512)&&a.A.zc<a.A.tb)return a.wa("interrupts disabled at IOPL "+a.A.zc+" and CPL "+a.A.tb,!0),!0}0<=c&&a.W.length&&(a.Ka++,c=Xe(a.A,b),null!=c&&(a.W[c][1]++,c=a.pa[a.Ea],c.Va=w(a.A),c.ma=te(a.A),c.Ta=b,c.je=Qm(a),c.hc=a.A&&4==a.A.Ja.ua,c.gc=a.A&&4==a.A.Ja.Ec,++a.Ea==a.pa.length&&(a.Ea=0)));return!1}function zc(a,b,c){return fn(a,b,c||1,a.qa)?(a.Wb(!0),!0):!1}function Bc(a,b,c){return fn(a,b,c||1,a.ia)?(a.Wb(!0),!0):!1}
|
||||
function hc(a,b,c){a.X("break on input from port "+ia(b)+": "+l(c));a.Wb(!0)}function lc(a,b,c){a.X("break on output to port "+ia(b)+": "+l(c));a.Wb(!0)}function pm(a){var b;a.B=["exec"];if(void 0!==a.qa)for(b=1;b<a.qa.length;b++){var c=a.ga,d=a.$b(a.qa[b]);Dc(c.ya[d>>>c.Qa],!1)}a.qa=["read"];if(void 0!==a.ia)for(b=1;b<a.ia.length;b++)c=a.ga,d=a.$b(a.ia[b]),Dc(c.ya[d>>>c.Qa],!0);a.ia=["write"];a.Xa=0}
|
||||
f.Qd=function(a,b,c){var d=!1;if(c||!gn(this,a,b)){d=!0;if(a!=this.B){var e=this.$b(b);if(e==p)this.X("invalid address: "+Wm(b)),d=!1;else{var h=this.ga;h.ya[e>>>h.Qa].Qd(e&h.B,a==this.ia);b.ma=null}}d&&(a.push(b),c?(null!=b.Ta&&(b.ma=null),b.Xd=!0):(hn(this,a,a.length-1),qm(this)))}return d};
|
||||
function gn(a,b,c,d,e){for(var h=!1,g=jn(a,a.$b(c)),m=1;m<b.length;m++){var q=b[m];if(g!=p&&g==jn(a,a.$b(q))||g==p&&c.ma==q.ma&&c.Va==q.Va)if(!e||q.Xd){h=!0;if(d){q.Xd||hn(a,b,m,"cleared");b.splice(m,1);b!=a.B&&(c=a.ga,Dc(c.ya[g>>>c.Qa],b==a.ia));qm(a);break}hn(a,b,m,"exists");break}}return h}function kn(a,b){for(var c=1;c<b.length;c++)hn(a,b,c);return b.length-1}function hn(a,b,c,d){c=b[c];a.X("breakpoint "+(d||"enabled")+": "+Wm(c)+" ("+b[0]+")"+(c.Ei?' "'+c.Ei+'"':""))}
|
||||
function en(a,b){if(void 0!==b)fn(a,b,1,a.B,!0),a.P=0;else for(var c=1;c<a.B.length;c++){var d=a.B[c];if(d.Xd){if(!gn(a,a.B,d,!0,!0))break;c=0}}}function jn(a,b){if(b!=p){var c=a.pb&-65536;(b&c)==c&&(b&=1048575)}return b}
|
||||
function fn(a,b,c,d,e){var h=!1;if(!a.Xa++){b=jn(a,b);a.sa(-2147483632)&&204==Xe(a.A,b)&&(h=!0);for(var g=1;!h&&g<d.length;g++){var m=d[g];if(!e||m.Xd){null!=m.ma&&(m.Ta=null);for(var q=jn(a,a.$b(m)),r=0;r<c;r++)if(b+r==q){var x,h=!0;if(m.Xd)gn(a,d,m,!0,!0),e=!0;else if(x=m.Cj){for(var h=!1,F=0;F<x.length;F++)if(!sm(a,x[F],!0)){if(x[F].indexOf("if")){h=!0;break}for(var C=F+1;C<x.length&&x[C].indexOf("else");C++)F++;if(C==x.length){h=!0;break}}a.A.oa.Ab||(h=!0)}if(h){e||hn(a,d,g,"hit");break}}}}}a.Xa--;
|
||||
f.Qd=function(a,b,c){var d=!0;c||gn(this,a,b,!1,!0);if(a!=this.B){var e=this.$b(b);if(e==p)this.X("invalid address: "+Wm(b)),d=!1;else{var h=this.ga;h.ya[e>>>h.Qa].Qd(e&h.B,a==this.ia);b.ma=null}}d&&(a.push(b),c?(null!=b.Ta&&(b.ma=null),b.Xd=!0):(hn(this,a,a.length-1),qm(this)));return d};
|
||||
function gn(a,b,c,d,e){for(var h=!1,g=jn(a,a.$b(c)),m=1;m<b.length;m++){var q=b[m];if(g!=p&&g==jn(a,a.$b(q))||g==p&&c.ma==q.ma&&c.Va==q.Va)if(!d||q.Xd){h=!0;q.Xd||e||hn(a,b,m,"cleared");b.splice(m,1);b!=a.B&&(c=a.ga,Dc(c.ya[g>>>c.Qa],b==a.ia));qm(a);break}}return h}function kn(a,b){for(var c=1;c<b.length;c++)hn(a,b,c);return b.length-1}function hn(a,b,c,d){c=b[c];a.X("breakpoint "+(d||"enabled")+": "+Wm(c)+" ("+b[0]+")"+(c.Ei?' "'+c.Ei+'"':""))}
|
||||
function en(a,b){if(void 0!==b)fn(a,b,1,a.B,!0),a.P=0;else for(var c=1;c<a.B.length;c++){var d=a.B[c];if(d.Xd){if(!gn(a,a.B,d,!0))break;c=0}}}function jn(a,b){if(b!=p){var c=a.pb&-65536;(b&c)==c&&(b&=1048575)}return b}
|
||||
function fn(a,b,c,d,e){var h=!1;if(!a.Xa++){b=jn(a,b);a.sa(-2147483632)&&204==Xe(a.A,b)&&(h=!0);for(var g=1;!h&&g<d.length;g++){var m=d[g];if(!e||m.Xd){null!=m.ma&&(m.Ta=null);for(var q=jn(a,a.$b(m)),r=0;r<c;r++)if(b+r==q){var x,h=!0;if(m.Xd)gn(a,d,m,!0),e=!0;else if(x=m.Cj){for(var h=!1,F=0;F<x.length;F++)if(!sm(a,x[F],!0)){if(x[F].indexOf("if")){h=!0;break}for(var C=F+1;C<x.length&&x[C].indexOf("else");C++)F++;if(C==x.length){h=!0;break}}a.A.oa.Ab||(h=!0)}if(h){e||hn(a,d,g,"hit");break}}}}}a.Xa--;
|
||||
return h}
|
||||
function ln(a,b,c,d){for(var e=om(a,b.Va,b.ma,b.Ta,b.je),h=a.Ya(b,1),g=4,m=!1,q=!1;(102==h||103==h)&&g--;)102==h?m||(b.hc=!b.hc,m=!0):q||(b.gc=!b.gc,q=!0),h=a.Ya(b,1);var g=a.Ha[h],r=g[0],x=-1;205==r&&(r=a.Ya(b,1),g=Dm[r]||Am,h|=r<<8,r=g[0]);r>=vm.length&&(x=a.Ya(b,1),g=Em[r-vm.length][x>>3&7]);var r=vm[g[0]],F=g.length-1,C="";if(164<=h&&167>=h||170<=h&&175>=h)F=0,b.hc&&"W"==r.slice(-1)&&(r=r.slice(0,-1)+"D");for(var h=null,I=!0,S=1;S<=F;S++){var J,M;J="";M=g[S];if(void 0!==M){null==h&&(h=M>>14);
|
||||
var aa=M&15;if(0!=aa)if(15==aa)I=!1;else{var W=M&240;if(128<=W)if(0>x&&(x=a.Ya(b,1)),160>W){J=a;var W=F,aa=b,ea="",Va=x>>6,Wa=x&7;if(3>Va){var Aa=void 0;if(!Va&&(!aa.gc&&6==Wa||aa.gc&&5==Wa))Va=2;else{if(aa.gc)if(4!=Wa)Wa+=8;else{var ea=J,Aa=Va,vc=aa,Ba=ea.Ya(vc,1),mb=Ba>>6,ab=Ba>>3&7,Ba=Ba&7,da="";if(Aa||5!=Ba)da=ym[Ba+8];4!=ab&&(da&&(da+="+"),da+=ym[ab+8],mb&&(da+="*"+(1<<mb)));Aa||5!=Ba||(da&&(da+="+"),da+=k(Sm(ea,vc,4)));ea=da}ea||(ea=ym[Wa])}1==Va?(Aa=J.Ya(aa,1),Aa&128?(Aa=Aa<<24>>24,ea+="-"+
|
||||
|
|
@ -1137,23 +1137,23 @@ case "A":g?Te(a.A):Re(a.A);break;case "Z":g?Ue(a.A):Se(a.A);break;case "S":g?(d=
|
|||
case "ECX":a.A.G=g;break;case "EDX":a.A.H=g;break;case "ESP":u(a.A,g);break;case "EBP":a.A.L=g;break;case "ESI":a.A.K=g;break;case "EDI":a.A.J=g;break;case "FS":a.A.Rb.load(g);break;case "GS":a.A.Sb.load(g);break;case "CR0":a.A.eb=g;Of.call(a.A,g);break;case "CR2":a.A.ce=g;break;case "CR3":a.A.Ld=g;rd.call(a.A,g);break;default:q=!0}}if(q){a.X("unknown register: "+d);return}}}if(!h){a.X("invalid value: "+e);return}Mc(a.A);a.X("updated registers:")}}a.X(tn(a,c));a.aa=om(a,w(a.A),te(a.A));dn(a,Wm(a.aa))}}
|
||||
function Fn(a,b){b=oa(b);var c=b.match(/^(['"])(.*?)\1$/);c?a.X(an(a,c[2])):un(a,b,!0)}function Gn(a,b,c){for(var d=null,e=b.Va,h=e,g=1;6>=g;g++){if(2<g){b.Va=e;b.Ta=null;var m=ln(a,b);if(0<m.indexOf("CALL")||c&&0<m.indexOf("INT")){d=m;break}}if(!--e)break}b.Va=h;return d}function Hn(a,b,c){var d="tr"==b;b=Hm(a,c,null,!0)||1;var e=1==b?0:1;Ma(b,function(){return qb(a,!0)&&a.bf(e,d,!1)},function(){Mc(a.A);qb(a,!1)})}function on(a,b,c,d){b.ye=d;c&&(b.hc=4==a.A.Ja.ua,b.gc=4==a.A.Ja.Ec);b.Dd=c}
|
||||
function dn(a,b,c,d){if(b=Xm(a,b,1)){void 0===d&&(d=1);var e=om(a,a.qb,b.ma,a.ga.pf),e=256;if(void 0!==c){e=Xm(a,c,1);if(!e||e.Va<b.Va)return;e=e.Va-b.Va;if(256<e){a.X("range too large");return}d=-1}c=0;for(on(a,b,!0);0<e&&d--;){a.Ya(b);var h=b.Ta,g=rb(a,!1)||a.P?a.ea:null,m=null!=g?"cycles":null,q=nn(a,b);if(q[0]&&d&&(!c&&d||0>q[0].indexOf("+"))){var r=q[0]+":";q[2]&&(r+=" "+q[2]);a.X(r)}q[3]&&(m=q[3],g=null);g=ln(a,b,m,g);b.Dd||d||d++;a.X(g);a.aa=b;e-=b.Ta-h;c++}}}
|
||||
function Pm(a,b,c,d){if(c)if(b){0>a.R&&a.U.length&&(a.R=0);if(0>a.R||b!=a.U[a.R])a.U.splice(0,0,b),a.R=0;a.R--}else b=a.U[a.R+1];a=[];if(b)if(0<=b.indexOf('"'))a=[b];else for(a=b.split(d||";"),b=0;b<a.length;b++)a[b]=oa(a[b]);return a}
|
||||
function Pm(a,b,c,d){if(c)if(b){0>a.R&&a.U.length&&(a.R=0);if(0>a.R||b!=a.U[a.R])a.U.splice(0,0,b),a.R=0;a.R--}else b=a.U[a.R+1];a=[];if(b){c=0;var e=null;d=d||";";for(var h=0;h<=b.length;h++){var g=b.charAt(h);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(oa(b.substring(c,h))),c=h+1}}return a}
|
||||
function sm(a,b,c){var d=!0;try{if(!b.length)a.Ca?(a.X("ended assemble @"+Wm(a.va)),a.aa=a.va,a.Ca=!1):b="?";else if(!c){var e=">> ";a.A.eb&1&&(e=a.A.Z&131072?"-- ":"## ");a.X(e+b)}var h=b.charAt(0);if('"'==h||"'"==h)return!0;if(ub(a)&&0<b.length){a.Ca&&(b="a "+Wm(a.va)+" "+b);var g=b.replace(/ +/g," ").split(" ");switch(g[0].charAt(0).toLowerCase()){case "a":var m=Xm(a,g[1],1);if(m)if(a.va=m,void 0===g[2])a.X("begin assemble @"+Wm(m)),a.Ca=!0,Mc(a.A);else{var q;a.X("not supported yet");q=[];if(q.length){for(var r=
|
||||
0;r<q.length;r++)a.mc(m,q[r],1);a.X(ln(a,a.va))}}break;case "b":En(g);a:{var x=g[0],F=g[1],r=b;if("?"==F)a.X("breakpoint commands:"),a.X("\tbi [p]\ttoggle break on input port [p]"),a.X("\tbo [p]\ttoggle break on output port [p]"),a.X("\tbp [a]\tset exec breakpoint at addr [a]"),a.X("\tbr [a]\tset read breakpoint at addr [a]"),a.X("\tbw [a]\tset write breakpoint at addr [a]"),a.X("\tbc [a]\tclear breakpoint at addr [a]"),a.X("\tbl\tlist all breakpoints");else{var C=x.charAt(1);if("l"==C)r=0,r+=kn(a,
|
||||
a.B),r+=kn(a,a.qa),(r+=kn(a,a.ia))||a.X("no breakpoints");else if(void 0===F)a.X("missing breakpoint address");else{var I={};if("*"!=F&&(I=Xm(a,F,1,!0),!I))break a;I.je=void 0;F=null==I.Va?F:ia(I.Va);if("c"==C)null==I.Va?(pm(a),a.X("all breakpoints cleared")):gn(a,a.B,I,!0)||gn(a,a.qa,I,!0)||gn(a,a.ia,I,!0)||a.X("breakpoint missing: "+Wm(I));else if("i"==C)a.X("breakpoint "+(ec(a.ga,I.Va)?"enabled":"cleared")+": port "+F+" (input)");else if("o"==C)a.X("breakpoint "+(ic(a.ga,I.Va)?"enabled":"cleared")+
|
||||
": port "+F+" (output)");else if(null!=I.Va){if(r){var S=r.match(/(['"])(.*?)\1/);S&&(I.Ei=S[2],I.Cj=Pm(a,I.Ei))}"p"==C?a.Qd(a.B,I):"r"==C?a.Qd(a.qa,I):"w"==C?a.Qd(a.ia,I):a.X("unknown breakpoint command: "+C)}}}}break;case "c":a.jf&&(a.jf.value="");break;case "d":En(g);a:{var J=g[0],r=g[1],M=g[2],aa=g[3],W;if("?"==r){r="";for(W in zm)a.Sa[W]&&(r&&(r+=","),r+=W);r+=",state,symbols";a.X("dump memory commands:");a.X("\tdb [a] [#] dump # bytes at address a");a.X("\tdw [a] [#] dump # words at address a");
|
||||
a.B),r+=kn(a,a.qa),(r+=kn(a,a.ia))||a.X("no breakpoints");else if(void 0===F)a.X("missing breakpoint address");else{var I={};if("*"!=F&&(I=Xm(a,F,1,!0),!I))break a;I.je=void 0;F=null==I.Va?F:ia(I.Va);if("c"==C)null==I.Va?(pm(a),a.X("all breakpoints cleared")):gn(a,a.B,I)||gn(a,a.qa,I)||gn(a,a.ia,I)||a.X("breakpoint missing: "+Wm(I));else if("i"==C)a.X("breakpoint "+(ec(a.ga,I.Va)?"enabled":"cleared")+": port "+F+" (input)");else if("o"==C)a.X("breakpoint "+(ic(a.ga,I.Va)?"enabled":"cleared")+": port "+
|
||||
F+" (output)");else if(null!=I.Va){if(r){var S=r.match(/(['"])(.*?)\1/);S&&(I.Ei=S[2],I.Cj=Pm(a,I.Ei))}"p"==C?a.Qd(a.B,I):"r"==C?a.Qd(a.qa,I):"w"==C?a.Qd(a.ia,I):a.X("unknown breakpoint command: "+C)}}}}break;case "c":a.jf&&(a.jf.value="");break;case "d":En(g);a:{var J=g[0],r=g[1],M=g[2],aa=g[3],W;if("?"==r){r="";for(W in zm)a.Sa[W]&&(r&&(r+=","),r+=W);r+=",state,symbols";a.X("dump memory commands:");a.X("\tdb [a] [#] dump # bytes at address a");a.X("\tdw [a] [#] dump # words at address a");
|
||||
a.X("\tdd [a] [#] dump # dwords at address a");a.X("\tdh [#] [#] dump # instructions from history");a.X("\tds [#] dump descriptor info for selector #");r.length&&a.X("dump extensions:\n\t"+r)}else if("state"==r)a.X(In(a.na,!0));else if("symbols"==r)for(r=0;r<a.O.length;r++){var ea=a.O[r][0],Va=a.O[r][2],Wa;for(Wa in Va)if("."!=Wa.charAt(0)){var Aa=Va[Wa],vc=Aa.o;if(void 0!==vc){var Ba=Aa.s;void 0===Ba&&(Ba=ea>>>4);var mb=Va[Wa].l;mb&&(Wa=mb);a.X(fh(vc,Ba)+" "+Wa)}}}else if("dos"==J)Kh(a,
|
||||
33,a.A.Aa,!0);else{"ds"==J&&(J="d",M=r,r="desc");for(W in zm)if(r==W){var ab=a.Sa[W];ab?ab(M):a.X("no dump registered for "+r);break a}var da=0;M&&("l"==M.charAt(0)&&(M=M.substr(1)||aa),da=Hm(a,M)>>>0,65536<da&&(da=65536));"d"==J?J=a.Nb||"db":a.Nb=J;if("dh"==J){var fa=r,r=da,I="",r=r||10,Ea=0,sa=a.Ea,Xa=a.pa;if(Xa.length){var Ha=void 0===fa?a.vb:+fa;isNaN(Ha)?Ha=r:I="more ";Ha>Xa.length&&(a.X("note: only "+Xa.length+" available"),Ha=Xa.length);sa-=Ha;0>sa&&(null!=Xa[Xa.length-1][1]?sa+=Xa.length:
|
||||
(Ha=sa+Ha,sa=0));void 0!==fa&&a.X(Ha+" instructions earlier:");for(fa=da=null;0<r&&sa!=a.Ea;){var Ca=Xa[sa++];if(null==Ca.ma)break;Ca=om(a,Ca.Va,Ca.ma,Ca.Ta,Ca.je,null==da?Ca.hc:da,null==fa?Ca.gc:fa);a.X(ln(a,Ca,"history",Ha--));Ca.ye?(sa+=Ca.ye,r-=Ca.ye,Ha-=Ca.ye,da=Ca.hc,fa=Ca.gc):da=fa=null;sa>=Xa.length&&(sa=0);a.vb=Ha;Ea++;r--}}Ea||(a.X("no "+I+"history available"),a.vb=void 0)}else if(I=Xm(a,r,2)){sa="";Xa=(da||128)+15>>4||1;Ha="dd"==J?4:"dw"==J?2:1;for(Ca=0;Ca<Xa;Ca++){for(var fa=da=0,Fb="",
|
||||
g="",r=Wm(I),J=0;16>J;J++)Ea=a.Ya(I,1),da|=Ea<<(fa++<<3),fa==Ha&&(Fb+=k(da,2*Ha),Fb+=1==Ha?7==J?"-":" ":" ",da=fa=0),g+=32<=Ea&&128>Ea?String.fromCharCode(Ea):".";sa&&(sa+="\n");sa+=r+" "+Fb+" "+g}sa&&a.X(sa);a.lb=I}}}break;case "e":if("else"==g[0])break;var wk=g[1];if(void 0===wk)a.X("missing address");else{var Hg=Xm(a,wk,2);if(Hg)for(r=2;r<g.length;r++){var ef=ga(g[r],16);if(void 0===ef){a.X("unrecognized value: "+l(ef));break}a.X("setting "+Wm(Hg)+" to "+l(ef));a.mc(Hg,ef,1)}}break;case "f":An(a,
|
||||
g[1]);break;case "g":a:{var xk=g[1];if(void 0!==xk){var yk=Xm(a,xk,1);if(!yk)break a;a.Qd(a.B,yk,!0)}a.qe(!0)||a.X('cpu busy, "g" command ignored')}break;case "h":var Ig;a.oa.Ab?(Ig="halting",a.Wb()):Ig="already halted";c||a.X(Ig);break;case "i":if("if"==g[0]){var Jg;var Vd=b.substr(2),Vd=oa(Vd);un(a,Vd)?(c||a.X("true: "+Vd),Jg=!0):(c||a.X("false: "+Vd),Jg=!1);Jg||(d=!1);break}var Kg=g[1];if(Kg&&"?"!=Kg){var Lg=Hm(a,Kg);if(void 0!==Lg){var ao=gc(a.ga,Lg);a.X(ia(Lg)+": "+l(ao))}}else a.X("input commands:"),
|
||||
g[1]);break;case "g":a:{var xk=g[1];if(void 0!==xk){var yk=Xm(a,xk,1);if(!yk)break a;a.Qd(a.B,yk,!0)}a.qe(!0)||a.X('cpu busy, "g" command ignored')}break;case "h":var Ig;a.oa.Ab?(Ig="halting",a.Wb()):Ig="already halted";c||a.X(Ig);break;case "i":if("if"==g[0]){var Jg;var Ud=b.substr(2),Ud=oa(Ud);un(a,Ud)?(c||a.X("true: "+Ud),Jg=!0):(c||a.X("false: "+Ud),Jg=!1);Jg||(d=!1);break}var Kg=g[1];if(Kg&&"?"!=Kg){var Lg=Hm(a,Kg);if(void 0!==Lg){var ao=gc(a.ga,Lg);a.X(ia(Lg)+": "+l(ao))}}else a.X("input commands:"),
|
||||
a.X("\ti [p]\tread port [p]"),a.X("warning: port accesses can affect hardware state");break;case "k":var r=0,zk=a.A.Ja.ma,kd=om(a),yc=om(a,v(a.A),a.A.Da.ma);for(a.X("stack trace for "+Wm(yc));10>r;){I=null;for(Ea=256;yc.Va>>>0<a.A.Qg>>>0;){kd.Va=a.tc(yc,!0);if(null==yc.Ta||!Ea--)break;kd.ma=zk;if(I=Gn(a,kd))break;kd.ma=a.tc(yc);if(I=Gn(a,kd,!0)){zk=a.tc(yc,!0);0<I.indexOf("INT")&&a.tc(yc,!0);break}}if(!I)break;I=na(I,50)+" ;stack="+Wm(yc)+" return="+Wm(kd);a.X(I);r++}r||a.X("no return addresses found");
|
||||
break;case "l":if("let"==g[0]){Bn(a,b.substr(3))||(d=!1);break}En(g);Dn(a,g);break;case "m":if("mouse"==g[0]){var Mg=g[1],ff=g[2];if(a.da){r=1;"-"==ff.charAt(0)&&(r=-1,ff=ff.substr(1));var Oc=Hm(a,ff,Mg);if(void 0!==Oc)switch(Oc=Oc*r|0,Mg){case "x":a.da.of(Oc,0);break;case "y":a.da.of(0,Oc);break;case "click":a.da.Ae(Oc,!0);a.da.Ae(Oc,!1);break;default:a.X("unknown action: "+Mg)}}else a.X("no mouse");break}a:{r=null;fa=g[1];"?"==fa&&(fa=void 0);if(void 0!==fa){I=0;if("all"==fa)I=1610481663,fa=null;
|
||||
else if("on"==fa)r=!0,fa=null;else if("off"==fa)r=!1,fa=null;else{"keys"==fa&&(fa="key");"kbd"==fa&&(fa="keyboard");for(da in zm)if(fa==da){I=zm[da];r=!!(a.Zb&I);break}if(!I){a.X("unknown message category: "+fa);break a}}I&&("on"==g[2]?(a.Zb|=I,r=!0):"off"==g[2]&&(a.Zb&=~I,r=!1))}I=0;Ea="";for(da in zm)if(!fa||fa==da)if(Fb=!!(a.Zb&zm[da]),null===r||r==Fb)Ea&&(Ea+=","),++I%10||(Ea+="\n\t"),"key"==da&&(da="keys"),Ea+=da;void 0===fa&&a.X("message commands:\n\tm [category] [on|off]\tturn categories on/off");
|
||||
a.X((null!==r?r?"messages on: ":"messages off: ":"message categories:\n\t")+(Ea||"none"));qm(a)}break;case "o":var Ng=g[1],bo=g[2];if(Ng&&"?"!=Ng){var Og=Hm(a,Ng,"port #"),Pg=Hm(a,bo);void 0!==Og&&void 0!==Pg&&(kc(a.ga,Og,Pg),a.X(ia(Og)+": "+l(Pg)))}else a.X("output commands:"),a.X("\to [p] [b]\twrite byte [b] to port [p]"),a.X("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Fn(a,b.substr(5));break}var Ak="pr"==g[0]?1:0,r=1+Ak;if(a.P)a.X("step in progress");else{var gf,
|
||||
I=!1,tb=om(a,w(a.A),te(a.A));do switch(gf=!1,a.Ya(tb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Rm(a,tb,1);gf=!0;break;case 204:case 206:a.P=r;Rm(a,tb,1);break;case 205:case 224:case 225:case 226:a.P=r;Rm(a,tb,2);break;case 232:a.P=r;Rm(a,tb,3);break;case 154:a.P=r;Rm(a,tb,5);break;case 255:var Bk=a.tc(tb)&14591;if(4351==Bk||6399==Bk)a.P=r,ln(a,tb);break;case 243:case 242:Rm(a,tb,1);I=gf=!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:I&&
|
||||
(a.P=r,Rm(a,tb,1))}while(gf);a.P?(a.Qd(a.B,tb,!0),a.qe()||(a.A.Wc(),a.P=0)):Hn(a,Ak?"tr":"t")}break;case "r":if("reset"==g[0]){a.na&&a.na.reset();break}En(g);cn(a,g);break;case "t":En(g);Hn(a,g[0],g[1]);break;case "u":dn(a,g[1],g[2],8);break;case "v":a.X("PCjs version 1.18.9 ("+a.A.ra+",RELEASE,NOPREFETCH"+(wb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":En(g);a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Wd;void 0!==g[3]&&(Wd=+g[3]);switch(g[2]){case "int":a.A.Y.Ne=Wd;break;case "start":a.A.Y.rf=
|
||||
Wd;break;case "stop":a.A.Y.Pe=Wd;break;default:a.X("unknown cs option");break a}void 0!==Wd&&Lc(a.A);a.X("checksums "+(a.A.oa.Ce?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Uc(a.A,+g[2])||a.X("warning: using 1x multiplier, previous target not reached"));a.X("target speed: "+(a.A.Y.me.toFixed(2)+"Mhz")+" ("+a.A.Y.Gd+"x)");break;default:a.X("unknown option: "+g[1])}else a.X("execution options:"),a.X("\tcs int #\tset checksum cycle interval to #"),a.X("\tcs start #\tset checksum cycle start count to #"),
|
||||
(a.P=r,Rm(a,tb,1))}while(gf);a.P?(a.Qd(a.B,tb,!0),a.qe()||(a.A.Wc(),a.P=0)):Hn(a,Ak?"tr":"t")}break;case "r":if("reset"==g[0]){a.na&&a.na.reset();break}En(g);cn(a,g);break;case "t":En(g);Hn(a,g[0],g[1]);break;case "u":dn(a,g[1],g[2],8);break;case "v":a.X("PCjs version 1.19.1 ("+a.A.ra+",RELEASE,NOPREFETCH"+(wb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");break;case "x":En(g);a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var Vd;void 0!==g[3]&&(Vd=+g[3]);switch(g[2]){case "int":a.A.Y.Ne=Vd;break;case "start":a.A.Y.rf=
|
||||
Vd;break;case "stop":a.A.Y.Pe=Vd;break;default:a.X("unknown cs option");break a}void 0!==Vd&&Lc(a.A);a.X("checksums "+(a.A.oa.Ce?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Uc(a.A,+g[2])||a.X("warning: using 1x multiplier, previous target not reached"));a.X("target speed: "+(a.A.Y.me.toFixed(2)+"Mhz")+" ("+a.A.Y.Gd+"x)");break;default:a.X("unknown option: "+g[1])}else a.X("execution options:"),a.X("\tcs int #\tset checksum cycle interval to #"),a.X("\tcs start #\tset checksum cycle start count to #"),
|
||||
a.X("\tcs stop #\tset checksum cycle stop count to #"),a.X("\tsp #\t\tset speed multiplier to #");break;case "?":En(g);if(g[1]){Fn(a,b.substr(1));break}var r="commands:",Qg;for(Qg in um)r+="\n"+na(Qg,7)+um[Qg];hf(a)||(r+="\nnote: frequency/history disabled if no exec breakpoints");a.X(r);break;default:a.X("unknown command: "+b),d=!1}}}catch(Ck){a.X("debugger error: "+(Ck.stack||Ck.message)),d=!1}return d}
|
||||
Sa(function(){for(var a=ob(window.document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=lb(c),d=new nm(d);nb(d,c)}});function ye(a,b,c){this.id=a.id;this.key=Jn(a,b,c);this.fa=a.fa;Kn(this,a.uj)}function Jn(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}
|
||||
ye.prototype={constructor:ye,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:Ia()&&(a=Ja(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){Kn(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)==
|
||||
|
|
@ -1161,14 +1161,14 @@ this.key)){try{window.localStorage.removeItem(d)}catch(h){}b.splice(c,1);c=0}},s
|
|||
function Mn(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){Da(c.message||c),b=!1}return b}function Nn(a,b){return a[a.id][b]||null}function ze(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function On(a,b,c){Za.call(this,"Computer",a,On,67108864);this.oa.ic=!1;this.da=a.busWidth||a.buswidth;this.Cc=Pn;this.P=null;this.U=!1;this.aa=b?b.url:null;this.ea=(Math.random()+.1).toString(36).substr(2,12);this.B=Qn(this);if(this.A=kb("CPU",this.id)){this.fa=kb("Debugger",this.id);this.ga=new Kb({id:this.qj+".bus",buswidth:this.da},this.A,this.fa);var d,e=ib(this.id);if((this.Jd=kb("Panel",this.id))&&this.Jd.jf)for(b=0;b<e.length;b++)d=e[b],d.Ua=this.Jd.Ua,d.X=this.Jd.X,d.jf=this.Jd.jf;for(b=
|
||||
0;b<e.length;b++)d=e[b],d.Hc&&d.Hc(this,this.ga,this.A,this.fa);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.Ke=d:this.Cc=parseInt(d,10));var h;if(a=cb&&cb.state||(h=!0,a.state))b=this.na=a,h||(this.U=!0,this.Cc=Pn),this.Cc&&(this.R=new ye(this,Rn),this.R.load()?b=null:delete this.R);!b&&this.Cc&&(h=null,this.B&&(h=za()+"/api/v1/user?req=load&user="+this.B+"&state="+Jn(this,Rn)),b=h)&&(this.U=!0);b?ya(b,!0,null,this,this.cl):sb(this);c||Sn(this,this.Mg)}else Da("Unable to find CPU component")}
|
||||
hb(On);var Rn="1.18.9",Pn=0;f=On.prototype;f.Je=function(){return this.ea};f.Yd=function(){return this.B?this.B:""};f.cl=function(a,b,c){c?(this.Ke=null,this.U=!1,this.Ua("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):this.P=b;sb(this)};function Sn(a,b,c){for(var d=ib(a.id),e=0;e<=d.length;e++){var h=e<d.length?d[e]:a;if(!ub(h)){ub(h,function(){Sn(a,b,c)});return}}b.call(a,c)}
|
||||
hb(On);var Rn="1.19.1",Pn=0;f=On.prototype;f.Je=function(){return this.ea};f.Yd=function(){return this.B?this.B:""};f.cl=function(a,b,c){c?(this.Ke=null,this.U=!1,this.Ua("Unable to load machine state from server (error "+c+(b?": "+oa(b):"")+")")):this.P=b;sb(this)};function Sn(a,b,c){for(var d=ib(a.id),e=0;e<=d.length;e++){var h=e<d.length?d[e]:a;if(!ub(h)){ub(h,function(){Sn(a,b,c)});return}}b.call(a,c)}
|
||||
function Tn(a,b){var c=new ye(a,Rn,"validate");if(c.load()&&Mn(c)){var d=Nn(c,"timestamp"),e=b?Nn(b,"timestamp"):"unknown";d!=e&&(a.Ua("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
f.Mg=function(a){void 0===a&&(a=this.Cc||(this.P?1:Pn));var b=!1,c=!1;this.W=!1;var d=this.R||new ye(this,Rn);if(-1==a)b=!0;else if(a>Pn){if(d.load(this.P)){this.O=new ye(this,Rn,"failsafe");this.O.load()&&(Un(this,d),a=2,Kn(this.O));ze(this.O,"timestamp",ta());Ln(this.O);var e=this.Cc&&!this.U;if(1==a||Fa("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=Mn(d)){var h=Nn(d,"code"),g=Nn(d,"data");h&&("ok"==h?d.load(g):("error"==h&&"no machine state"!=g?(this.Ua("Error: "+
|
||||
g),"unable to verify user"==g&&(Ka("user",""),this.B=null)):this.X(h+": "+g),Kn(d),d.load()?(c=Mn(d),e=!0):c=!1))}e&&Tn(this,c?d:null)}else 2==a&&d.clear()}else Tn(this);delete this.P;delete this.R}e=ib(this.id);for(h=0;h<e.length;h++)g=e[h],g!==this&&g!=this.A&&(c=Vn(this,g,d,b,c));b=[d,a,c];-1!=a?Sn(this,this.Ti,b):this.Ti(b)};
|
||||
function Vn(a,b,c,d,e){if(!b.oa.ic){b.oa.ic=!0;if(b.kc){var h=null;e&&((h=Nn(c,b.id))||(h=Nn(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof h&&(h=null);!b.kc(h,d)&&h&&(Da("Unable to restore state for "+b.type),a.na&&!a.P?(c.clear(),a.Cc=Pn,window&&window.location.reload()):a.W=!0,b.kc(null),e=!1)}if(!d&&b.jj)for(a=b.jj.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
f.Ti=function(a){var b=a[0],c=0>a[1];a=a[2];this.oa.ic=!0;this.nj||(this.X("PCjs v"+Rn+"\nCopyright \u00a9 2012-2015 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.nj=!0);this.A&&(Vn(this,this.A,b,c,a),Nc(this.A));this.W&&(Un(this,b),b.clear());!c&&this.O&&(this.O.clear(),delete this.O)};
|
||||
function Un(a,b){if(Fa("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.aa,d=a.Yd(),e=b.toString(),h={app:"PCjs"};h.ver=Rn;h.url=c;h.user=d;h.type="bug";h.data=e;ya("http://www.pcjs.org/api/v1/report",!0,h)}}
|
||||
function In(a,b,c){var d,e="none",h=new ye(a,Rn),g=new ye(a,Rn,"validate"),m=ta();ze(g,"timestamp",m);ze(h,"timestamp",m);ze(h,"version","1.18.9");ze(h,"url",window?window.location.href:null);ze(h,"browser",window?window.navigator.userAgent:"");a.A&&a.A.jc&&(c&&a.A.Wb(),d=a.A.jc(b,c),"object"===typeof d&&ze(h,a.A.id,d),c&&(a.A.oa.ic=!1,!1===d&&(e=null)));for(var m=ib(a.id),q=0;q<m.length;q++){var r=m[q];r.oa.ic&&(r.jc&&(d=r.jc(b,c),"object"===typeof d&&ze(h,r.id,d)),c&&(r.oa.ic=!1,!1===d&&(e=null)))}e&&
|
||||
function In(a,b,c){var d,e="none",h=new ye(a,Rn),g=new ye(a,Rn,"validate"),m=ta();ze(g,"timestamp",m);ze(h,"timestamp",m);ze(h,"version","1.19.1");ze(h,"url",window?window.location.href:null);ze(h,"browser",window?window.navigator.userAgent:"");a.A&&a.A.jc&&(c&&a.A.Wb(),d=a.A.jc(b,c),"object"===typeof d&&ze(h,a.A.id,d),c&&(a.A.oa.ic=!1,!1===d&&(e=null)));for(var m=ib(a.id),q=0;q<m.length;q++){var r=m[q];r.oa.ic&&(r.jc&&(d=r.jc(b,c),"object"===typeof d&&ze(h,r.id,d)),c&&(r.oa.ic=!1,!1===d&&(e=null)))}e&&
|
||||
(c?(m=d=!1,b?(a.B&&Wn(a,a.B,h.toString()),Ln(g)&&Ln(h)||(e=null,d=m=!0)):a.Cc&&(d=!0,m=3==a.Cc),d&&h.clear(m)):e=h.toString());c&&(a.oa.ic=!1);return e}f.reset=function(){this.ga&&this.ga.reset&&(this.wa("Resetting "+this.ga.type),this.ga.reset());for(var a=ib(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ga&&c.reset&&(this.wa("Resetting "+c.type),c.reset())}};f.start=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||
f.stop=function(a,b){for(var c=ib(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};f.Tb=function(a,b,c){var d=this;switch(b){case "save":return this.za[b]=c,c.onclick=function(){var a=Qn(d,!0);if(a){var b=!(!d.Cc||d.Ke),c=In(d,b);b?Wn(d,a,c):d.Ua("Resume disabled, machine state not saved")}},!0;case "reset":return this.za[b]=c,c.onclick=function(){Tc(d)},!0}return!1};
|
||||
function Qn(a,b){var c=a.B;c||(c=Ja("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=Xn(a,c))||a.Ua("The user ID is invalid."))):b&&a.Ua("Browser local storage is not available"));return c}
|
||||
|
|
@ -1181,6 +1181,6 @@ function $n(a,b,c,d,e,h,g){function m(a,h){if(h)g(h,null);else{if(c){var m=b;m&&
|
|||
null,a=F.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,m)}}a?e?co(a,h,m):m(a,null):g("no data"+(b?" for file: "+b:""),null)}
|
||||
function co(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");ya(e,!0,null,null,function(h,g,m){if(m||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+m+")");else{if(h=d[3])if(m=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=m[0],r,x=/( [a-z]+=)(['"])(.*?)\2/g;r=x.exec(h);)q=0>q.indexOf(r[1])?q.replace(">",r[0]+">"):q.replace(new RegExp(r[1]+"(['\"])(.*?)\\1"),r[0]);m[0]!=q&&(g=g.replace(m[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);co(a,b,c)}})}else c(a,null)}
|
||||
function eo(a,b,c,d){function e(a){if(void 0===m){var b=g&&ob(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=ma(a))}function h(a){e("Error: "+a);q&&(--Yn||Ua(!0));q=!1}var g,m,q=!0;Yn++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.18.9/components.xsl");var r=function(d,m){if(m){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=m.transformNode(q);r?(g.outerHTML=r,--Yn||Ua(!0)):h("transformNodeToObject failed")}else window.document.implementation&&
|
||||
function eo(a,b,c,d){function e(a){if(void 0===m){var b=g&&ob(g,"machine-warning");m=b&&b[0]||g}m&&(m.innerHTML=ma(a))}function h(a){e("Error: "+a);q&&(--Yn||Ua(!0));q=!1}var g,m,q=!0;Yn++;try{if(g=window.document.getElementById(a)){c||(c="/versions/pcjs/1.19.1/components.xsl");var r=function(d,m){if(m){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var r=m.transformNode(q);r?(g.outerHTML=r,--Yn||Ua(!0)):h("transformNodeToObject failed")}else window.document.implementation&&
|
||||
window.document.implementation.createDocument?(r=new XSLTProcessor,r.importStylesheet(q),(r=r.transformToFragment(m,window.document))?g.parentNode?(g.parentNode.replaceChild(r,g),--Yn||Ua(!0)):h("invalid machine element: "+a):h("transformToFragment failed")):h("unable to transform XML: unsupported browser");else h("failed to load XSL file: "+c);else h(d)};m?Zn(c,null,null,!1,e,q):h("failed to load XML file: "+b)}else h(d)};"<"!=b.charAt(0)?Zn(b,a,d,!0,e,r):$n(b,null,a,d,!1,e,r)}else h("missing machine element: "+
|
||||
a)}catch(x){h(x.message)}return q}window.embedPC=function(a,b,c,d){Ua(!1);return eo(a,b,c,d)};window.enableEvents=Ua;window.sendEvent=Ya;})();
|
||||
|
|
|
|||
|
|
@ -1022,14 +1022,14 @@ this.key)){try{window.localStorage.removeItem(d)}catch(k){}b.splice(c,1);c=0}},R
|
|||
function B(a,b,c){try{a[a.id][b]=c}catch(d){}}
|
||||
function dl(a,b,c){Ia.call(this,"Computer",a,dl,67108864);this.ia.Xb=!1;this.P=a.busWidth||a.buswidth;this.jc=el;this.F=null;this.I=!1;this.R=b?b.url:null;this.U=(Math.random()+.1).toString(36).substr(2,12);this.B=fl(this);if(this.A=Ua("CPU",this.id)){this.Qa=Ua("Debugger",this.id);this.ma=new pb({id:this.ai+".bus",buswidth:this.P},this.A,this.Qa);var d,e=Sa(this.id);if((this.bd=Ua("Panel",this.id))&&this.bd.Ag)for(b=0;b<e.length;b++)d=e[b],d.Ja=this.bd.Ja,d.ac=this.bd.ac,d.Ag=this.bd.Ag;for(b=0;b<
|
||||
e.length;b++)d=e[b],d.tc&&d.tc(this,this.ma,this.A,this.Qa);b=null;d=a.resume;void 0!==d&&(1<d.length?b=this.df=d:this.jc=parseInt(d,10));var k;if(a=Ma&&Ma.state||(k=!0,a.state))b=this.O=a,k||(this.I=!0,this.jc=el),this.jc&&(this.K=new Sd(this,gl),this.K.load()?b=null:delete this.K);!b&&this.jc&&(k=null,this.B&&(k=ra()+"/api/v1/user?req=load&user="+this.B+"&state="+Wk(this,gl)),b=k)&&(this.I=!0);b?qa(b,!0,null,this,this.Dk):Za(this);c||hl(this,this.ig)}else sa("Unable to find CPU component")}Ra(dl);
|
||||
var gl="1.18.9",el=0;f=dl.prototype;f.$d=function(){return this.U};f.pd=function(){return this.B?this.B:""};f.Dk=function(a,b,c){c?(this.df=null,this.I=!1,this.Ja("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):this.F=b;Za(this)};function hl(a,b,c){for(var d=Sa(a.id),e=0;e<=d.length;e++){var k=e<d.length?d[e]:a;if(!$a(k)){$a(k,function(){hl(a,b,c)});return}}b.call(a,c)}
|
||||
var gl="1.19.1",el=0;f=dl.prototype;f.$d=function(){return this.U};f.pd=function(){return this.B?this.B:""};f.Dk=function(a,b,c){c?(this.df=null,this.I=!1,this.Ja("Unable to load machine state from server (error "+c+(b?": "+(String.prototype.trim?b.trim():b.replace(/^\s+|\s+$/g,"")):"")+")")):this.F=b;Za(this)};function hl(a,b,c){for(var d=Sa(a.id),e=0;e<=d.length;e++){var k=e<d.length?d[e]:a;if(!$a(k)){$a(k,function(){hl(a,b,c)});return}}b.call(a,c)}
|
||||
function il(a,b){var c=new Sd(a,gl,"validate");if(c.load()&&bl(c)){var d=cl(c,"timestamp"),e=b?cl(b,"timestamp"):"unknown";d!=e&&(a.Ja("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
f.ig=function(a){void 0===a&&(a=this.jc||(this.F?1:el));var b=!1,c=!1;this.L=!1;var d=this.K||new Sd(this,gl);if(-1==a)b=!0;else if(a>el){if(d.load(this.F)){this.D=new Sd(this,gl,"failsafe");this.D.load()&&(jl(this,d),a=2,$k(this.D));B(this.D,"timestamp",ma());al(this.D);var e=this.jc&&!this.I;if(1==a||ta("Click OK to restore the previous PCjs machine state, or CANCEL to reset the machine.")){if(c=bl(d)){var k=cl(d,"code"),l=cl(d,"data");k&&("ok"==k?d.load(l):("error"==k&&"no machine state"!=l?(this.Ja("Error: "+
|
||||
l),"unable to verify user"==l&&(ya("user",""),this.B=null)):this.ac(k+": "+l),$k(d),d.load()?(c=bl(d),e=!0):c=!1))}e&&il(this,c?d:null)}else 2==a&&d.clear()}else il(this);delete this.F;delete this.K}e=Sa(this.id);for(k=0;k<e.length;k++)l=e[k],l!==this&&l!=this.A&&(c=kl(this,l,d,b,c));b=[d,a,c];-1!=a?hl(this,this.zi,b):this.zi(b)};
|
||||
function kl(a,b,c,d,e){if(!b.ia.Xb){b.ia.Xb=!0;if(b.$b){var k=null;e&&((k=cl(c,b.id))||(k=cl(c,b.id.replace(/[a-z0-9]\./i,"."))));"string"===typeof k&&(k=null);!b.$b(k,d)&&k&&(sa("Unable to restore state for "+b.type),a.O&&!a.F?(c.clear(),a.jc=el,window&&window.location.reload()):a.L=!0,b.$b(null),e=!1)}if(!d&&b.hi)for(a=b.hi.split("|"),c=0;c<a.length;c++)b.status(a[c])}return e}
|
||||
f.zi=function(a){var b=a[0],c=0>a[1];a=a[2];this.ia.Xb=!0;this.ii||(this.ac("PCjs v"+gl+"\nCopyright \u00a9 2012-2015 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>"),this.ii=!0);this.A&&(kl(this,this.A,b,c,a),kc(this.A));this.L&&(jl(this,b),b.clear());!c&&this.D&&(this.D.clear(),delete this.D)};
|
||||
function jl(a,b){if(ta("There may be a problem with your PCjs machine.\n\nTo help us diagnose it, click OK to send this PCjs machine state to http://www.pcjs.org.")){var c=a.R,d=a.pd(),e=b.toString(),k={app:"PCjs"};k.ver=gl;k.url=c;k.user=d;k.type="bug";k.data=e;qa("http://www.pcjs.org/api/v1/report",!0,k)}}
|
||||
function ll(a,b,c){var d,e="none",k=new Sd(a,gl),l=new Sd(a,gl,"validate"),p=ma();B(l,"timestamp",p);B(k,"timestamp",p);B(k,"version","1.18.9");B(k,"url",window?window.location.href:null);B(k,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Zb&&(c&&mc(a.A),d=a.A.Zb(b,c),"object"===typeof d&&B(k,a.A.id,d),c&&(a.A.ia.Xb=!1,!1===d&&(e=null)));for(var p=Sa(a.id),q=0;q<p.length;q++){var w=p[q];w.ia.Xb&&(w.Zb&&(d=w.Zb(b,c),"object"===typeof d&&B(k,w.id,d)),c&&(w.ia.Xb=!1,!1===d&&(e=null)))}e&&(c?
|
||||
function ll(a,b,c){var d,e="none",k=new Sd(a,gl),l=new Sd(a,gl,"validate"),p=ma();B(l,"timestamp",p);B(k,"timestamp",p);B(k,"version","1.19.1");B(k,"url",window?window.location.href:null);B(k,"browser",window?window.navigator.userAgent:"");a.A&&a.A.Zb&&(c&&mc(a.A),d=a.A.Zb(b,c),"object"===typeof d&&B(k,a.A.id,d),c&&(a.A.ia.Xb=!1,!1===d&&(e=null)));for(var p=Sa(a.id),q=0;q<p.length;q++){var w=p[q];w.ia.Xb&&(w.Zb&&(d=w.Zb(b,c),"object"===typeof d&&B(k,w.id,d)),c&&(w.ia.Xb=!1,!1===d&&(e=null)))}e&&(c?
|
||||
(p=d=!1,b?(a.B&&ml(a,a.B,k.toString()),al(l)&&al(k)||(e=null,d=p=!0)):a.jc&&(d=!0,p=3==a.jc),d&&k.clear(p)):e=k.toString());c&&(a.ia.Xb=!1);return e}f.reset=function(){this.ma&&this.ma.reset&&(this.Ka("Resetting "+this.ma.type),this.ma.reset());for(var a=Sa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.ma&&c.reset&&(this.Ka("Resetting "+c.type),c.reset())}};f.start=function(a,b){for(var c=Sa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}};
|
||||
f.stop=function(a,b){for(var c=Sa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}};f.Hb=function(a,b,c){var d=this;switch(b){case "save":return this.ta[b]=c,c.onclick=function(){var a=fl(d,!0);if(a){var b=!(!d.jc||d.df),c=ll(d,b);b?ml(d,a,c):d.Ja("Resume disabled, machine state not saved")}},!0;case "reset":return this.ta[b]=c,c.onclick=function(){nc(d)},!0}return!1};
|
||||
function fl(a,b){var c=a.B;c||(c=xa("user"),void 0!==c?!c&&b&&(c=null,window&&(c=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c&&((c=nl(a,c))||a.Ja("The user ID is invalid."))):b&&a.Ja("Browser local storage is not available"));return c}
|
||||
|
|
@ -1042,6 +1042,6 @@ function ql(a,b,c,d,e,k,l){function p(a,k){if(k)l(k,null);else{if(c){var p=b;p&&
|
|||
null,a=G.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);l(a,p)}}a?e?rl(a,k,p):p(a,null):l("no data"+(b?" for file: "+b:""),null)}
|
||||
function rl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");qa(e,!0,null,null,function(k,l,p){if(p||!l)c(a,"unable to resolve XML reference: "+d[0]+" ("+p+")");else{if(k=d[3])if(p=l.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var q=p[0],w,C=/( [a-z]+=)(['"])(.*?)\2/g;w=C.exec(k);)q=0>q.indexOf(w[1])?q.replace(">",w[0]+">"):q.replace(new RegExp(w[1]+"(['\"])(.*?)\\1"),w[0]);p[0]!=q&&(l=l.replace(p[0],q))}else{c(a,"missing <"+d[1]+"> in "+e);return}l=l.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],l);rl(a,b,c)}})}else c(a,null)}
|
||||
function sl(a,b,c,d){function e(a){if(void 0===p){var b=l&&Xa(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ka(a))}function k(a){e("Error: "+a);q&&(--ol||Ga(!0));q=!1}var l,p,q=!0;ol++;try{if(l=window.document.getElementById(a)){c||(c="/versions/pcjs/1.18.9/components.xsl");var w=function(d,p){if(p){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var w=p.transformNode(q);w?(l.outerHTML=w,--ol||Ga(!0)):k("transformNodeToObject failed")}else window.document.implementation&&
|
||||
function sl(a,b,c,d){function e(a){if(void 0===p){var b=l&&Xa(l,"machine-warning");p=b&&b[0]||l}p&&(p.innerHTML=ka(a))}function k(a){e("Error: "+a);q&&(--ol||Ga(!0));q=!1}var l,p,q=!0;ol++;try{if(l=window.document.getElementById(a)){c||(c="/versions/pcjs/1.19.1/components.xsl");var w=function(d,p){if(p){var q=function(d,q){if(q)if(q)if(e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window){var w=p.transformNode(q);w?(l.outerHTML=w,--ol||Ga(!0)):k("transformNodeToObject failed")}else window.document.implementation&&
|
||||
window.document.implementation.createDocument?(w=new XSLTProcessor,w.importStylesheet(q),(w=w.transformToFragment(p,window.document))?l.parentNode?(l.parentNode.replaceChild(w,l),--ol||Ga(!0)):k("invalid machine element: "+a):k("transformToFragment failed")):k("unable to transform XML: unsupported browser");else k("failed to load XSL file: "+c);else k(d)};p?pl(c,null,null,!1,e,q):k("failed to load XML file: "+b)}else k(d)};"<"!=b.charAt(0)?pl(b,a,d,!0,e,w):ql(b,null,a,d,!1,e,w)}else k("missing machine element: "+
|
||||
a)}catch(C){k(C.message)}return q}window.embedPC=function(a,b,c,d){Ga(!1);return sl(a,b,c,d)};window.enableEvents=Ga;window.sendEvent=Ha;})();
|
||||
|
|
|
|||
Loading…
Reference in a new issue