From 522563a72b9e928fcd65cbdd5478f328ce7675d1 Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Wed, 14 Sep 2016 15:52:55 -0700 Subject: [PATCH] Fixed Debugger type inspection problems following the previous refactoring --- docs/pcx86/examples/pcx86-dbg.js | 44 +++++++++++++++--------------- modules/pc6502/lib/debugger.js | 4 +-- modules/pc8080/lib/debugger.js | 2 +- modules/pcx86/lib/debugger.js | 4 +-- modules/pdp11/lib/debugger.js | 2 +- versions/pcx86/1.30.0/pcx86-dbg.js | 44 +++++++++++++++--------------- 6 files changed, 50 insertions(+), 50 deletions(-) diff --git a/docs/pcx86/examples/pcx86-dbg.js b/docs/pcx86/examples/pcx86-dbg.js index 6cc6573e8..163fbd81c 100644 --- a/docs/pcx86/examples/pcx86-dbg.js +++ b/docs/pcx86/examples/pcx86-dbg.js @@ -104,8 +104,8 @@ e>>2;b.zb=g;b.B=h>>2;xb&&ec&&c.da&&!c.controller&&!c.Te&&!c.Ue?(b.Ya=c.Ya,b.de=c function we(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.I;break;case 2:c=a.M;break;case 3:c=a.H;break;case 4:c=I(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function xe(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.I=c;break;case 2:a.M=c;break;case 3:a.H=c;break;case 4:G(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}} function re(a){a.G=0;a.H=0;a.I=0;a.M=0;a.gb=0;a.P=0;a.K=0;a.J=0;a.cb=!1;a.ia=a.wa=0;a.aa=0;a.jg=0;a.L=0;a.Za=65520;a.Lc=0;a.Sd=1023;a.ca=a.Pa=0;a.Wc=a.sd=a.Vc=a.Xc=0;a.rb=-1;a.kc=a.sb=-1;a.qe=a.U=-1;a.va=new fd(a,1,"CS");a.vb=new fd(a,2,"DS");a.Xa=new fd(a,2,"ES");a.ta=new fd(a,3,"SS");G(a,0);ld(a,0);if(80386<=a.ja){switch(a.Uc){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Za=16;a.li=0;a.se=0;a.Od=0;a.Ja=[0,0,0,0,null,null,0, 0];a.Ae=[null,null,null,null,null,null,0,0];a.Nb=new fd(a,2,"FS");a.Ob=new fd(a,2,"GS");ve(a)}a.pf=new fd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ia=0;a.D=a.C=-1;a.$b=a.pf;a.ua=0;if(80286>a.ja)Ad(a,0,65535);else{a.Dc=0;a.zd=65535;a.Bc=new fd(a,5,"LDT",!0);a.Sa=new fd(a,4,"TSS",!0);a.Da=new fd(a,6,"VER",!0);Ad(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ja&&(d&=16777215);b=b.Aa=d;a.Ha=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}zd(a,0);nd(a)} -function ye(a){2==a.Nc?(a.bc=a.na,a.Oa=ze,a.$a=Ae,a.Jb=Be,2==a.ba?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Fe,a.ea=Ge,a.ya=He)):(a.bc=a.oa,a.Oa=Ke,a.$a=Le,a.Jb=Me,2==a.ba?(a.V=Ne,a.ea=Oe,a.ya=Pe):(a.V=Qe,a.ea=Re,a.ya=Se))}function od(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,Te(a))}function Te(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Nc?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Ne,a.ea=Oe,a.ya=Pe)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Nc?(a.V=Fe,a.ea=Ge,a.ya=He):(a.V=Qe,a.ea=Re,a.ya=Se))} -function df(a){a.Nc=a.va.Nc;a.Ba=a.va.Ba;ye(a);a.ba=a.va.ba;a.R=a.va.R;Te(a);a.Ia&=-3073}m.Ti=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+yd(this)|0};function ef(a,b,c){void 0===a.Hd[b]&&(a.Hd[b]=[]);a.Hd[b].push(c)}function ff(a,b,c){void 0!==c&&(null==a.je[b]&&a.le++,a.je[b]=c)}function gf(a,b){var c=a.je[b];null!=c&&(c(--a.le),delete a.je[b])} +function ye(a){2==a.Nc?(a.bc=a.na,a.Oa=ze,a.$a=Ae,a.Jb=Be,2==a.ba?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Fe,a.ea=Ge,a.ya=He)):(a.bc=a.oa,a.Oa=Ke,a.$a=Le,a.Jb=Me,2==a.ba?(a.V=Ne,a.ea=Oe,a.ya=Pe):(a.V=Qe,a.ea=Re,a.ya=Se))}function od(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,cf(a))}function cf(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Nc?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Ne,a.ea=Oe,a.ya=Pe)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Nc?(a.V=Fe,a.ea=Ge,a.ya=He):(a.V=Qe,a.ea=Re,a.ya=Se))} +function df(a){a.Nc=a.va.Nc;a.Ba=a.va.Ba;ye(a);a.ba=a.va.ba;a.R=a.va.R;cf(a);a.Ia&=-3073}m.Ti=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+yd(this)|0};function ef(a,b,c){void 0===a.Hd[b]&&(a.Hd[b]=[]);a.Hd[b].push(c)}function ff(a,b,c){void 0!==c&&(null==a.je[b]&&a.le++,a.je[b]=c)}function gf(a,b){var c=a.je[b];null!=c&&(c(--a.le),delete a.je[b])} function hf(a,b){for(var c=a.Ja[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ja[e],g=g&~(d>>2&3);b?a.sa[g>>>a.La].Rd(g&a.Fa,f,a):Jc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Gc(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<>=2;f>>=4}}} function nd(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.ig=b&&!c?jf:Gd;gd(a.va,!1,b,c);gd(a.vb,!1,b,c);gd(a.ta,!1,b,c);gd(a.Xa,!1,b,c);80386<=a.ja&&(gd(a.Nb,!1,b,c),gd(a.Ob,!1,b,c));df(a)} m.save=function(){var a=new kf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Dc?(g=[this.Za,this.Dc,this.zd,this.Lc,this.Sd,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ja&&(g.push(this.li),g.push(this.se),g.push(this.Od),g.push(this.Ja),g.push(this.Ae))):g=null;b=[b,c,d,e,f,g,yd(this)];80386<=this.ja&&(b.push(this.Nb.save()),b.push(this.Ob.save()));N(a,1,b);N(a,2,[this.ka.jc, @@ -139,7 +139,7 @@ m.Hc=function(a,b,c){this.F=c;this.N=Hb(a,"ChipSet");ub(this)};m.gc=function(a,b m.restore=function(a){a=a[0];var b=0;this.ic=a[b++]&-57409;var c=a[b++];this.ma=c&-14337;this.B=(c&14336)>>11;cg(this);dg(this,a[b++]);for(c=0;c=eg&&fg(a,13))}function cg(a){a.ma&=-129;a.ma&~a.ic&63&&(a.ma|=128);if(a.ma&128&&!(a.ic&128))return a=a.N,a.ja>=eg?gg(a,13):a.ya&0||Xf.call(a.F,2),!0;a=a.N;a.ja>=eg&&fg(a,13);return!1}function hg(a,b){80387<=a.ja||(b&=-65);a.ma|=b;return cg(a)} function ag(a){return a.ma|a.B<<11}function ig(a,b){return isFinite(b)?!0:!hg(a,Infinity===b?8:16)}function jg(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,ig(a,d)||(d=null));return d}function kg(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,ig(a,d)||(d=null));return d}function lg(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,ig(a,d)||(d=null));return d}function mg(a,b,c){var d=null;null==b||null==c||!c&&hg(a,2)||(d=b/c,ig(a,d)||(d=null));return d} function ng(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:0===b&&(d=16384));a.ma=a.ma&-18177|d;return!0}return!1}function og(a,b,c){if(null==b)return null;var d=a.ic&3072;0==d?(d=Math.round(b),.5===d-b&&d%2&&d--):d=1024==d||3072==d&&0=c){if(hg(a,1))return null;d=-c}else if(d<-c){if(hg(a,1))return null;d=-c}a.L[0]=d|0;2147483648d&&(a.L[1]=-1))}return d} -function Bg(a,b){var c=3;if(a.C&1<=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function Cg(a){var b=a.B+0&7;return a.C&1<=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function Cg(a){var b=a.B+0&7;return a.C&1<>16}function Hg(a){return a.F.oa(a.F.D)}function Ig(a){a.ua[0]=a.F.oa(a.F.D);return a.pa[0]}function Jg(a){a.L[0]=a.F.oa(a.F.D);a.L[1]=a.F.oa(a.F.D+4);return a.W[0]} function Kg(a){a.ga[0]=a.F.oa(a.F.D);a.ga[1]=a.F.oa(a.F.D+4);a.ga[2]=a.F.na(a.F.D+8);return a.ga}m.pi=function(){this.F.nb(this.F.D,this.L[0])};m.sk=function(){this.F.nb(this.F.D,this.L[0]);this.F.nb(this.F.D+4,this.L[1])};m.uk=Zf.prototype.pi;m.tk=Zf.prototype.sk;function Lg(a){a.F.nb(a.F.D,a.ga[0]);a.F.nb(a.F.D+4,a.ga[1]);a.F.jb(a.F.D+8,a.ga[2])} function Mg(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.L[0]=f;a.L[1]=c|(d|e)<<20;return a.W[0]}function Fg(a,b,c){var d=c>>20&2047,e=2147483648|(c&1048575)<<11|b>>>21;2047==d?d=32767:d?d+=15360:e&=2147483647;a.ga[0]=b<<11;a.ga[1]=e;a.ga[2]=c>>16&32768|d;return a.ga}function Ng(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function Og(a,b){for(var c=0,d=0;b--;)c|=a%10<>20&2047)-1023),this.L[1]=(this.L[1]|1072693248)&-1073741825,Qg(this,this.W[0]))},102:function(){this.B=this.B-1&7;this.ma&=-513},103:function(){this.B=this.B+1&7;this.ma&=-513},112:function(){V(this,0,U(this,0)%U(this,1))},113:function(){V(this,1,U(this, 1)*Math.log(U(this,0)+1)/Math.LN2)&&Pg(this)},114:function(){var a=U(this,0),b=null;if(0<=a||!hg(this,1))b=Math.sqrt(a),ig(this,b)||(b=null);V(this,0,b)},116:function(){V(this,0,og(this,U(this,0),Yg))},117:function(){var a=U(this,0),b=U(this,1);null!=a&&null!=b&&V(this,0,a*Math.pow(2,0>6,d,e;switch(b>>3&7){case 0:d=this.G;break;case 1:d=this.I;break;case 2:d=this.M;break;case 3:d=this.H;break;case 4:d=0;break;case 5:d=this.P;break;case 6:d=this.K;break;case 7:d=this.J}switch(b&7){case 0:e=this.G;break;case 1:e=this.I;break;case 2:e=this.M;break;case 3:e=this.H;break;case 4:e=I(this);this.ka=this.Ka;break;case 5:a?(e=this.P,this.ka=this.Ka):e=T(this);break;case 6:e=this.K;break;case 7:e=this.J}return(d<c?(a.O("out of data at address "+ar(b)),n=!0):(a.qc(b,c,1,!0),l++)})})(a,g);Wc(a.F, !0);a.O(l+" bytes read at "+c)}else a.O("sector "+e+" request out of range");else a.O("drive "+d+" not loaded");else a.O("invalid drive: "+d)}else a.O("disk controller not present")}}else a.O("load commands:"),a.O("\tl [address] [drive #] [sector #] [# sectors]")} -function nr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(null!=b&&1g;g++){var h=c,e=null;if(gg;g++){var h=c,e=null;if(g=a.Ja&&(k=null), k){case "AL":a.F.G=a.F.G&-256|h&255;break;case "AH":a.F.G=a.F.G&-65281|h<<8&255;break;case "AX":a.F.G=a.F.G&-65536|h&65535;break;case "BL":a.F.H=a.F.H&-256|h&255;break;case "BH":a.F.H=a.F.H&-65281|h<<8&255;break;case "BX":a.F.H=a.F.H&-65536|h&65535;break;case "CL":a.F.I=a.F.I&-256|h&255;break;case "CH":a.F.I=a.F.I&-65281|h<<8&255;break;case "CX":a.F.I=a.F.I&-65536|h&65535;break;case "DL":a.F.M=a.F.M&-256|h&255;break;case "DH":a.F.M=a.F.M&-65281|h<<8&255;break;case "DX":a.F.M=a.F.M&-65536|h&65535; break;case "SP":G(a.F,I(a.F)&-65536|h&65535);break;case "BP":a.F.P=a.F.P&-65536|h&65535;break;case "SI":a.F.K=a.F.K&-65536|h&65535;break;case "DI":a.F.J=a.F.J&-65536|h&65535;break;case "DS":wd(a.F,h);break;case "ES":xd(a.F,h);break;case "SS":ld(a.F,h);break;case "CS":mf(a.F,h);a.aa=tq(a,K(a.F),a.F.va.Z);break;case "IP":case "EIP":O(a.F,h);a.aa=tq(a,K(a.F),a.F.va.Z);break;case "PC":case "PS":zd(a.F,h);break;case "C":h?yf(a.F):zf(a.F);break;case "P":h?(e=a.F,e.resultType&=-3,e.ca|=4):(e=a.F,e.resultType&= @@ -762,24 +762,24 @@ oq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+ar(q)),a.Da= a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+tr(a,a.A),L=L+tr(a,a.ra);(L+=tr(a,a.fa))||a.O("no breakpoints")}else if("n"==H)a.Oa=mq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var W={};if("*"!=v&&(W=oq(a,v,!0,!0),!W))break a;v=null==W.Ra?v:u(W.Ra);"c"==H?null==W.Ra?(uq(a),a.O("all breakpoints cleared")):$q(a, a.A,W)||$q(a,a.ra,W)||$q(a,a.fa,W)||a.O("breakpoint missing: "+ar(W)):"i"==H?a.O("breakpoint "+(kc(a.ga,W.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(oc(a.ga,W.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=W.Ra&&(hr(a,W,E),"p"==H?a.Rd(a.A,W):"r"==H?a.Rd(a.ra,W):"w"==H?a.Rd(a.fa,W):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in Bb)a.$a[bb]&&(Ba&&(Ba+= ","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Wb=Nr(a.X,!0);"console"==Ha?console.log(Wb):(Fr(a), -a.O(Wb))}else if("symbols"==ja)for(var wa=0;wa>>20;Da.xi=a.F.Od+Da.fk;Da.yb=be.sa[(Da.xi&be.Gb)>>>be.La];Da.Yi=Da.yb.Md(Da.fk);Da.gk=(Ue&4190208)>>>10;Da.yi=(Da.Yi&-4096)+Da.gk;Da.zb=be.sa[(Da.yi&be.Gb)>>>be.La];Da.Zi=Da.zb.Md(Da.gk);Da.Jk=(Da.Zi&-4096)+(Ue&4095)}if(ae=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var pd="%"+r(Ue),pd=pd+(" %%"+jr(ae.xi,ae.Yi)),pd=pd+(" %%"+jr(ae.yi,ae.Zi,!0)), +a.O(Wb))}else if("symbols"==ja)for(var wa=0;wa>>20;Da.xi=a.F.Od+Da.fk;Da.yb=be.sa[(Da.xi&be.Gb)>>>be.La];Da.Yi=Da.yb.Md(Da.fk);Da.gk=(Te&4190208)>>>10;Da.yi=(Da.Yi&-4096)+Da.gk;Da.zb=be.sa[(Da.yi&be.Gb)>>>be.La];Da.Zi=Da.zb.Md(Da.gk);Da.Jk=(Da.Zi&-4096)+(Te&4095)}if(ae=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var pd="%"+r(Te),pd=pd+(" %%"+jr(ae.xi,ae.Yi)),pd=pd+(" %%"+jr(ae.yi,ae.Zi,!0)), pd=pd+(" %%"+r(ae.Jk));a.O(pd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in Bb)if(P[1]==bb){var Dn=a.$a[bb];Dn?(P.shift(),P.shift(),Dn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.uc||"db")}else a.uc=ia;if("dh"==ia){var En=ja,Fn=Ha,Gn="",Hn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Eb=+En||a.Jb,ce=+Fn||10;isNaN(Eb)?Eb=ce:Gn="more ";Eb>tc.length&&(a.O("note: only "+tc.length+" available"),Eb=tc.length); -tb-=Eb;0>tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var mi=[];"call"==Fn&&(ce=1E5,mi=["CALL"]);for(void 0!==En&&a.O(Eb+" instructions earlier:");0=tc.length&&(tb=0);a.Jb=Eb;Hn++;ce--}}Hn||(a.O("no "+Gn+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift(); -var ni=P[0];if(ni){var We=mq(a,ni);if(void 0===We||0>We||255>> -0,65536>4||1;is--&&0ug?String.fromCharCode(ug):".";sg--}rd&&(rd+="\n");rd+=ja+" "+Ye+(0==Xe?" "+qi:"")}rd&&a.O(rd);a.sb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,Mn=255,Nn=a.Qa,On=a.qc;"ew"==g[0]&&(vg=2,Mn=65535,Nn=a.na, -On=a.jb);var Pn=vg<<1,Qn=g[1];if(null==Qn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var wg=oq(a,Qn);if(wg)for(var xg=2;xgwi;){for(var uc=null,ns=256;Uc.Ra>>>0>>0;){af.Ra=a.tb(Uc,!0);if(null==Uc.Ea||!ns--)break;af.Z=Sn;if(uc=Lr(a,af))break;af.Z=a.tb(Uc);if(uc=Lr(a,af,!0)){Sn=a.tb(Uc,!0);0tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var mi=[];"call"==Fn&&(ce=1E5,mi=["CALL"]);for(void 0!==En&&a.O(Eb+" instructions earlier:");0=tc.length&&(tb=0);a.Jb=Eb;Hn++;ce--}}Hn||(a.O("no "+Gn+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift(); +var ni=P[0];if(ni){var Ve=mq(a,ni);if(void 0===Ve||0>Ve||255>> +0,65536>4||1;is--&&0vg?String.fromCharCode(vg):".";tg--}rd&&(rd+="\n");rd+=ja+" "+Xe+(0==We?" "+qi:"")}rd&&a.O(rd);a.sb=de}}}}}break;case "e":if("else"==g[0])break;var wg=1,Mn=255,Nn=a.Qa,On=a.qc;"ew"==g[0]&&(wg=2,Mn=65535,Nn=a.na, +On=a.jb);var Pn=wg<<1,Qn=g[1];if(null==Qn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=oq(a,Qn);if(xg)for(var yg=2;ygwi;){for(var uc=null,ns=256;Uc.Ra>>>0>>0;){$e.Ra=a.tb(Uc,!0);if(null==Uc.Ea||!ns--)break;$e.Z=Sn;if(uc=Lr(a,$e))break;$e.Z=a.tb(Uc);if(uc=Lr(a,$e,!0)){Sn=a.tb(Uc,!0);0\nLicense: GPL version 3 or later ");for(b=0;b|undefined) - * }} + * }} DbgAddr6502 */ var DbgAddr6502; @@ -4780,7 +4780,7 @@ if (DEBUGGER) { for (var iDbg = 0; iDbg < aeDbg.length; iDbg++) { var eDbg = aeDbg[iDbg]; var parmsDbg = Component.getComponentParms(eDbg); - var dbg = new Debugger(parmsDbg); + var dbg = new Debugger6502(parmsDbg); Component.bindComponentControls(dbg, eDbg, APPCLASS); } }; diff --git a/modules/pc8080/lib/debugger.js b/modules/pc8080/lib/debugger.js index d3ddea48b..d01de11af 100644 --- a/modules/pc8080/lib/debugger.js +++ b/modules/pc8080/lib/debugger.js @@ -61,7 +61,7 @@ if (DEBUGGER) { * fTemporary:(boolean|undefined), * sCmd:(string|undefined), * aCmds:(Array.|undefined) - * }} + * }} DbgAddr8080 */ var DbgAddr8080; diff --git a/modules/pcx86/lib/debugger.js b/modules/pcx86/lib/debugger.js index 0e4bcf3bc..10033eddf 100644 --- a/modules/pcx86/lib/debugger.js +++ b/modules/pcx86/lib/debugger.js @@ -81,7 +81,7 @@ if (DEBUGGER) { * fTempBreak:(boolean|undefined), * sCmd:(string|undefined), * aCmds:(Array.|undefined) - * }} + * }} DbgAddrX86 */ var DbgAddrX86; @@ -7771,7 +7771,7 @@ if (DEBUGGER) { for (var iDbg = 0; iDbg < aeDbg.length; iDbg++) { var eDbg = aeDbg[iDbg]; var parmsDbg = Component.getComponentParms(eDbg); - var dbg = new Debugger(parmsDbg); + var dbg = new DebuggerX86(parmsDbg); Component.bindComponentControls(dbg, eDbg, PCX86.APPCLASS); } }; diff --git a/modules/pdp11/lib/debugger.js b/modules/pdp11/lib/debugger.js index e2c990ebc..949918acb 100644 --- a/modules/pdp11/lib/debugger.js +++ b/modules/pdp11/lib/debugger.js @@ -62,7 +62,7 @@ if (DEBUGGER) { * fTemporary:(boolean|undefined), * sCmd:(string|undefined), * aCmds:(Array.|undefined) - * }} + * }} DbgAddrPDP11 */ var DbgAddrPDP11; diff --git a/versions/pcx86/1.30.0/pcx86-dbg.js b/versions/pcx86/1.30.0/pcx86-dbg.js index 6cc6573e8..163fbd81c 100644 --- a/versions/pcx86/1.30.0/pcx86-dbg.js +++ b/versions/pcx86/1.30.0/pcx86-dbg.js @@ -104,8 +104,8 @@ e>>2;b.zb=g;b.B=h>>2;xb&&ec&&c.da&&!c.controller&&!c.Te&&!c.Ue?(b.Ya=c.Ya,b.de=c function we(a,b){var c;switch(b){case 0:c=a.G;break;case 1:c=a.I;break;case 2:c=a.M;break;case 3:c=a.H;break;case 4:c=I(a);break;case 5:c=a.P;break;case 6:c=a.K;break;case 7:c=a.J}return c}function xe(a,b,c){switch(b){case 0:a.G=c;break;case 1:a.I=c;break;case 2:a.M=c;break;case 3:a.H=c;break;case 4:G(a,c);break;case 5:a.P=c;break;case 6:a.K=c;break;case 7:a.J=c}} function re(a){a.G=0;a.H=0;a.I=0;a.M=0;a.gb=0;a.P=0;a.K=0;a.J=0;a.cb=!1;a.ia=a.wa=0;a.aa=0;a.jg=0;a.L=0;a.Za=65520;a.Lc=0;a.Sd=1023;a.ca=a.Pa=0;a.Wc=a.sd=a.Vc=a.Xc=0;a.rb=-1;a.kc=a.sb=-1;a.qe=a.U=-1;a.va=new fd(a,1,"CS");a.vb=new fd(a,2,"DS");a.Xa=new fd(a,2,"ES");a.ta=new fd(a,3,"SS");G(a,0);ld(a,0);if(80386<=a.ja){switch(a.Uc){case 80562:case 80563:a.M=771;break;case 80578:a.M=772;break;case 80594:a.M=773;break;case 80595:case 80596:a.M=776}a.Za=16;a.li=0;a.se=0;a.Od=0;a.Ja=[0,0,0,0,null,null,0, 0];a.Ae=[null,null,null,null,null,null,0,0];a.Nb=new fd(a,2,"FS");a.Ob=new fd(a,2,"GS");ve(a)}a.pf=new fd(a,0,"NULL");a.ka=a.vb;a.Ka=a.ta;a.S=a.Ia=0;a.D=a.C=-1;a.$b=a.pf;a.ua=0;if(80286>a.ja)Ad(a,0,65535);else{a.Dc=0;a.zd=65535;a.Bc=new fd(a,5,"LDT",!0);a.Sa=new fd(a,4,"TSS",!0);a.Da=new fd(a,6,"VER",!0);Ad(a,65520,61440);var b,c=K(a);b=a.va;var d=-65536;80386>b.F.ja&&(d&=16777215);b=b.Aa=d;a.Ha=b+c|0;a.gf=(b>>>0)+(a.va.Ta>>>0)+1}zd(a,0);nd(a)} -function ye(a){2==a.Nc?(a.bc=a.na,a.Oa=ze,a.$a=Ae,a.Jb=Be,2==a.ba?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Fe,a.ea=Ge,a.ya=He)):(a.bc=a.oa,a.Oa=Ke,a.$a=Le,a.Jb=Me,2==a.ba?(a.V=Ne,a.ea=Oe,a.ya=Pe):(a.V=Qe,a.ea=Re,a.ya=Se))}function od(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,Te(a))}function Te(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Nc?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Ne,a.ea=Oe,a.ya=Pe)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Nc?(a.V=Fe,a.ea=Ge,a.ya=He):(a.V=Qe,a.ea=Re,a.ya=Se))} -function df(a){a.Nc=a.va.Nc;a.Ba=a.va.Ba;ye(a);a.ba=a.va.ba;a.R=a.va.R;Te(a);a.Ia&=-3073}m.Ti=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+yd(this)|0};function ef(a,b,c){void 0===a.Hd[b]&&(a.Hd[b]=[]);a.Hd[b].push(c)}function ff(a,b,c){void 0!==c&&(null==a.je[b]&&a.le++,a.je[b]=c)}function gf(a,b){var c=a.je[b];null!=c&&(c(--a.le),delete a.je[b])} +function ye(a){2==a.Nc?(a.bc=a.na,a.Oa=ze,a.$a=Ae,a.Jb=Be,2==a.ba?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Fe,a.ea=Ge,a.ya=He)):(a.bc=a.oa,a.Oa=Ke,a.$a=Le,a.Jb=Me,2==a.ba?(a.V=Ne,a.ea=Oe,a.ya=Pe):(a.V=Qe,a.ea=Re,a.ya=Se))}function od(a,b){a.ba!=b&&(a.Ia|=1024,a.ba=b,a.R=2==b?65535:-1,cf(a))}function cf(a){2==a.ba?(a.Ga=32768,a.tb=a.na,a.rc=a.jb,2==a.Nc?(a.V=Ce,a.ea=De,a.ya=Ee):(a.V=Ne,a.ea=Oe,a.ya=Pe)):(a.Ga=-2147483648,a.tb=a.oa,a.rc=a.nb,2==a.Nc?(a.V=Fe,a.ea=Ge,a.ya=He):(a.V=Qe,a.ea=Re,a.ya=Se))} +function df(a){a.Nc=a.va.Nc;a.Ba=a.va.Ba;ye(a);a.ba=a.va.ba;a.R=a.va.R;cf(a);a.Ia&=-3073}m.Ti=function(){var a=this.G+this.H+this.I+this.M+I(this)+this.P+this.K+this.J|0;return a=a+K(this)+this.va.Z+this.vb.Z+this.ta.Z+this.Xa.Z+yd(this)|0};function ef(a,b,c){void 0===a.Hd[b]&&(a.Hd[b]=[]);a.Hd[b].push(c)}function ff(a,b,c){void 0!==c&&(null==a.je[b]&&a.le++,a.je[b]=c)}function gf(a,b){var c=a.je[b];null!=c&&(c(--a.le),delete a.je[b])} function hf(a,b){for(var c=a.Ja[7],d=c>>16,e=0;4>e;e++){if(c&3){var f=!!(d&1),g=a.Ja[e],g=g&~(d>>2&3);b?a.sa[g>>>a.La].Rd(g&a.Fa,f,a):Jc(a.sa[g>>>a.La],f)}c>>=2;d>>=4}}function Gc(a,b,c,d){if(!(a.S&8192)&&a.Ja[7]&255){c--;var e=a.Ja[7],f=e>>16;d=d?1:0==d?3:0;for(var g=0;4>g;g++){if(e&3&&(f&3)==d){var h=f>>2;if(b+c>=a.Ja[g]&&b<=a.Ja[g]+h){a.Ja[6]|=1<>=2;f>>=4}}} function nd(a,b,c){void 0===b&&(b=!!(a.Za&1));void 0===c&&(c=!!(a.ca&131072));a.ig=b&&!c?jf:Gd;gd(a.va,!1,b,c);gd(a.vb,!1,b,c);gd(a.ta,!1,b,c);gd(a.Xa,!1,b,c);80386<=a.ja&&(gd(a.Nb,!1,b,c),gd(a.Ob,!1,b,c));df(a)} m.save=function(){var a=new kf(this);N(a,0,[this.G,this.H,this.I,this.M,I(this),this.P,this.K,this.J]);var b=K(this),c=this.va.save(),d=this.vb.save(),e=this.ta.save(),f=this.Xa.save(),g;null!=this.Dc?(g=[this.Za,this.Dc,this.zd,this.Lc,this.Sd,this.Bc.save(),this.Sa.save(),this.Pa],80386<=this.ja&&(g.push(this.li),g.push(this.se),g.push(this.Od),g.push(this.Ja),g.push(this.Ae))):g=null;b=[b,c,d,e,f,g,yd(this)];80386<=this.ja&&(b.push(this.Nb.save()),b.push(this.Ob.save()));N(a,1,b);N(a,2,[this.ka.jc, @@ -139,7 +139,7 @@ m.Hc=function(a,b,c){this.F=c;this.N=Hb(a,"ChipSet");ub(this)};m.gc=function(a,b m.restore=function(a){a=a[0];var b=0;this.ic=a[b++]&-57409;var c=a[b++];this.ma=c&-14337;this.B=(c&14336)>>11;cg(this);dg(this,a[b++]);for(c=0;c=eg&&fg(a,13))}function cg(a){a.ma&=-129;a.ma&~a.ic&63&&(a.ma|=128);if(a.ma&128&&!(a.ic&128))return a=a.N,a.ja>=eg?gg(a,13):a.ya&0||Xf.call(a.F,2),!0;a=a.N;a.ja>=eg&&fg(a,13);return!1}function hg(a,b){80387<=a.ja||(b&=-65);a.ma|=b;return cg(a)} function ag(a){return a.ma|a.B<<11}function ig(a,b){return isFinite(b)?!0:!hg(a,Infinity===b?8:16)}function jg(a,b,c){var d=null;null!=b&&null!=c&&(d=b+c,ig(a,d)||(d=null));return d}function kg(a,b,c){var d=null;null!=b&&null!=c&&(d=b-c,ig(a,d)||(d=null));return d}function lg(a,b,c){var d=null;null!=b&&null!=c&&(d=b*c,ig(a,d)||(d=null));return d}function mg(a,b,c){var d=null;null==b||null==c||!c&&hg(a,2)||(d=b/c,ig(a,d)||(d=null));return d} function ng(a,b,c){if(null!=b&&null!=c){var d=0;isNaN(b)||isNaN(c)?d=17664:(b-=c,0>b?d=256:0===b&&(d=16384));a.ma=a.ma&-18177|d;return!0}return!1}function og(a,b,c){if(null==b)return null;var d=a.ic&3072;0==d?(d=Math.round(b),.5===d-b&&d%2&&d--):d=1024==d||3072==d&&0=c){if(hg(a,1))return null;d=-c}else if(d<-c){if(hg(a,1))return null;d=-c}a.L[0]=d|0;2147483648d&&(a.L[1]=-1))}return d} -function Bg(a,b){var c=3;if(a.C&1<=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function Cg(a){var b=a.B+0&7;return a.C&1<=c;c<<=1)3!=(b&3)&&(a.C|=c),b>>=2}function Cg(a){var b=a.B+0&7;return a.C&1<>16}function Hg(a){return a.F.oa(a.F.D)}function Ig(a){a.ua[0]=a.F.oa(a.F.D);return a.pa[0]}function Jg(a){a.L[0]=a.F.oa(a.F.D);a.L[1]=a.F.oa(a.F.D+4);return a.W[0]} function Kg(a){a.ga[0]=a.F.oa(a.F.D);a.ga[1]=a.F.oa(a.F.D+4);a.ga[2]=a.F.na(a.F.D+8);return a.ga}m.pi=function(){this.F.nb(this.F.D,this.L[0])};m.sk=function(){this.F.nb(this.F.D,this.L[0]);this.F.nb(this.F.D+4,this.L[1])};m.uk=Zf.prototype.pi;m.tk=Zf.prototype.sk;function Lg(a){a.F.nb(a.F.D,a.ga[0]);a.F.nb(a.F.D+4,a.ga[1]);a.F.jb(a.F.D+8,a.ga[2])} function Mg(a,b){var c=b[1],d=(b[2]&32768)>>4,e=b[2]&32767,f=b[0]>>>11|c<<21,c=c>>11&1048575;32767==e?e=2047:e&&(e+=-15360,0>=e&&(e=2047,f=c=0));a.L[0]=f;a.L[1]=c|(d|e)<<20;return a.W[0]}function Fg(a,b,c){var d=c>>20&2047,e=2147483648|(c&1048575)<<11|b>>>21;2047==d?d=32767:d?d+=15360:e&=2147483647;a.ga[0]=b<<11;a.ga[1]=e;a.ga[2]=c>>16&32768|d;return a.ga}function Ng(a,b){for(var c=0,d=1;b--;)c+=(a&15)*d,d*=10,a>>=4;return c}function Og(a,b){for(var c=0,d=0;b--;)c|=a%10<>20&2047)-1023),this.L[1]=(this.L[1]|1072693248)&-1073741825,Qg(this,this.W[0]))},102:function(){this.B=this.B-1&7;this.ma&=-513},103:function(){this.B=this.B+1&7;this.ma&=-513},112:function(){V(this,0,U(this,0)%U(this,1))},113:function(){V(this,1,U(this, 1)*Math.log(U(this,0)+1)/Math.LN2)&&Pg(this)},114:function(){var a=U(this,0),b=null;if(0<=a||!hg(this,1))b=Math.sqrt(a),ig(this,b)||(b=null);V(this,0,b)},116:function(){V(this,0,og(this,U(this,0),Yg))},117:function(){var a=U(this,0),b=U(this,1);null!=a&&null!=b&&V(this,0,a*Math.pow(2,0>6,d,e;switch(b>>3&7){case 0:d=this.G;break;case 1:d=this.I;break;case 2:d=this.M;break;case 3:d=this.H;break;case 4:d=0;break;case 5:d=this.P;break;case 6:d=this.K;break;case 7:d=this.J}switch(b&7){case 0:e=this.G;break;case 1:e=this.I;break;case 2:e=this.M;break;case 3:e=this.H;break;case 4:e=I(this);this.ka=this.Ka;break;case 5:a?(e=this.P,this.ka=this.Ka):e=T(this);break;case 6:e=this.K;break;case 7:e=this.J}return(d<c?(a.O("out of data at address "+ar(b)),n=!0):(a.qc(b,c,1,!0),l++)})})(a,g);Wc(a.F, !0);a.O(l+" bytes read at "+c)}else a.O("sector "+e+" request out of range");else a.O("drive "+d+" not loaded");else a.O("invalid drive: "+d)}else a.O("disk controller not present")}}else a.O("load commands:"),a.O("\tl [address] [drive #] [sector #] [# sectors]")} -function nr(a,b){var c;if(b&&"?"==b[1])a.O("register commands:"),a.O("\tr\tdump registers"),a.Tb&&a.O("\trfp\tdump floating-point registers"),a.O("\trp\tdump all registers"),a.O("\trx [#]\tset flag or register x to [#]");else{var d;null==c&&(c=!0);if(null!=b&&1g;g++){var h=c,e=null;if(gg;g++){var h=c,e=null;if(g=a.Ja&&(k=null), k){case "AL":a.F.G=a.F.G&-256|h&255;break;case "AH":a.F.G=a.F.G&-65281|h<<8&255;break;case "AX":a.F.G=a.F.G&-65536|h&65535;break;case "BL":a.F.H=a.F.H&-256|h&255;break;case "BH":a.F.H=a.F.H&-65281|h<<8&255;break;case "BX":a.F.H=a.F.H&-65536|h&65535;break;case "CL":a.F.I=a.F.I&-256|h&255;break;case "CH":a.F.I=a.F.I&-65281|h<<8&255;break;case "CX":a.F.I=a.F.I&-65536|h&65535;break;case "DL":a.F.M=a.F.M&-256|h&255;break;case "DH":a.F.M=a.F.M&-65281|h<<8&255;break;case "DX":a.F.M=a.F.M&-65536|h&65535; break;case "SP":G(a.F,I(a.F)&-65536|h&65535);break;case "BP":a.F.P=a.F.P&-65536|h&65535;break;case "SI":a.F.K=a.F.K&-65536|h&65535;break;case "DI":a.F.J=a.F.J&-65536|h&65535;break;case "DS":wd(a.F,h);break;case "ES":xd(a.F,h);break;case "SS":ld(a.F,h);break;case "CS":mf(a.F,h);a.aa=tq(a,K(a.F),a.F.va.Z);break;case "IP":case "EIP":O(a.F,h);a.aa=tq(a,K(a.F),a.F.va.Z);break;case "PC":case "PS":zd(a.F,h);break;case "C":h?yf(a.F):zf(a.F);break;case "P":h?(e=a.F,e.resultType&=-3,e.ca|=4):(e=a.F,e.resultType&= @@ -762,24 +762,24 @@ oq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+ar(q)),a.Da= a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+tr(a,a.A),L=L+tr(a,a.ra);(L+=tr(a,a.fa))||a.O("no breakpoints")}else if("n"==H)a.Oa=mq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var W={};if("*"!=v&&(W=oq(a,v,!0,!0),!W))break a;v=null==W.Ra?v:u(W.Ra);"c"==H?null==W.Ra?(uq(a),a.O("all breakpoints cleared")):$q(a, a.A,W)||$q(a,a.ra,W)||$q(a,a.fa,W)||a.O("breakpoint missing: "+ar(W)):"i"==H?a.O("breakpoint "+(kc(a.ga,W.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(oc(a.ga,W.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=W.Ra&&(hr(a,W,E),"p"==H?a.Rd(a.A,W):"r"==H?a.Rd(a.ra,W):"w"==H?a.Rd(a.fa,W):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in Bb)a.$a[bb]&&(Ba&&(Ba+= ","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Wb=Nr(a.X,!0);"console"==Ha?console.log(Wb):(Fr(a), -a.O(Wb))}else if("symbols"==ja)for(var wa=0;wa>>20;Da.xi=a.F.Od+Da.fk;Da.yb=be.sa[(Da.xi&be.Gb)>>>be.La];Da.Yi=Da.yb.Md(Da.fk);Da.gk=(Ue&4190208)>>>10;Da.yi=(Da.Yi&-4096)+Da.gk;Da.zb=be.sa[(Da.yi&be.Gb)>>>be.La];Da.Zi=Da.zb.Md(Da.gk);Da.Jk=(Da.Zi&-4096)+(Ue&4095)}if(ae=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var pd="%"+r(Ue),pd=pd+(" %%"+jr(ae.xi,ae.Yi)),pd=pd+(" %%"+jr(ae.yi,ae.Zi,!0)), +a.O(Wb))}else if("symbols"==ja)for(var wa=0;wa>>20;Da.xi=a.F.Od+Da.fk;Da.yb=be.sa[(Da.xi&be.Gb)>>>be.La];Da.Yi=Da.yb.Md(Da.fk);Da.gk=(Te&4190208)>>>10;Da.yi=(Da.Yi&-4096)+Da.gk;Da.zb=be.sa[(Da.yi&be.Gb)>>>be.La];Da.Zi=Da.zb.Md(Da.gk);Da.Jk=(Da.Zi&-4096)+(Te&4095)}if(ae=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var pd="%"+r(Te),pd=pd+(" %%"+jr(ae.xi,ae.Yi)),pd=pd+(" %%"+jr(ae.yi,ae.Zi,!0)), pd=pd+(" %%"+r(ae.Jk));a.O(pd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in Bb)if(P[1]==bb){var Dn=a.$a[bb];Dn?(P.shift(),P.shift(),Dn(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.uc||"db")}else a.uc=ia;if("dh"==ia){var En=ja,Fn=Ha,Gn="",Hn=0,tb=a.Fa,tc=a.ia;if(tc.length){var Eb=+En||a.Jb,ce=+Fn||10;isNaN(Eb)?Eb=ce:Gn="more ";Eb>tc.length&&(a.O("note: only "+tc.length+" available"),Eb=tc.length); -tb-=Eb;0>tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var mi=[];"call"==Fn&&(ce=1E5,mi=["CALL"]);for(void 0!==En&&a.O(Eb+" instructions earlier:");0=tc.length&&(tb=0);a.Jb=Eb;Hn++;ce--}}Hn||(a.O("no "+Gn+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift(); -var ni=P[0];if(ni){var We=mq(a,ni);if(void 0===We||0>We||255>> -0,65536>4||1;is--&&0ug?String.fromCharCode(ug):".";sg--}rd&&(rd+="\n");rd+=ja+" "+Ye+(0==Xe?" "+qi:"")}rd&&a.O(rd);a.sb=de}}}}}break;case "e":if("else"==g[0])break;var vg=1,Mn=255,Nn=a.Qa,On=a.qc;"ew"==g[0]&&(vg=2,Mn=65535,Nn=a.na, -On=a.jb);var Pn=vg<<1,Qn=g[1];if(null==Qn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var wg=oq(a,Qn);if(wg)for(var xg=2;xgwi;){for(var uc=null,ns=256;Uc.Ra>>>0>>0;){af.Ra=a.tb(Uc,!0);if(null==Uc.Ea||!ns--)break;af.Z=Sn;if(uc=Lr(a,af))break;af.Z=a.tb(Uc);if(uc=Lr(a,af,!0)){Sn=a.tb(Uc,!0);0tb&&(null==tc[tc.length-1].Z?(Eb=tb+Eb,tb=0):tb+=tc.length);var mi=[];"call"==Fn&&(ce=1E5,mi=["CALL"]);for(void 0!==En&&a.O(Eb+" instructions earlier:");0=tc.length&&(tb=0);a.Jb=Eb;Hn++;ce--}}Hn||(a.O("no "+Gn+"history available"),a.Jb=void 0)}else if("di"==ia){P.shift(); +var ni=P[0];if(ni){var Ve=mq(a,ni);if(void 0===Ve||0>Ve||255>> +0,65536>4||1;is--&&0vg?String.fromCharCode(vg):".";tg--}rd&&(rd+="\n");rd+=ja+" "+Xe+(0==We?" "+qi:"")}rd&&a.O(rd);a.sb=de}}}}}break;case "e":if("else"==g[0])break;var wg=1,Mn=255,Nn=a.Qa,On=a.qc;"ew"==g[0]&&(wg=2,Mn=65535,Nn=a.na, +On=a.jb);var Pn=wg<<1,Qn=g[1];if(null==Qn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var xg=oq(a,Qn);if(xg)for(var yg=2;ygwi;){for(var uc=null,ns=256;Uc.Ra>>>0>>0;){$e.Ra=a.tb(Uc,!0);if(null==Uc.Ea||!ns--)break;$e.Z=Sn;if(uc=Lr(a,$e))break;$e.Z=a.tb(Uc);if(uc=Lr(a,$e,!0)){Sn=a.tb(Uc,!0);0\nLicense: GPL version 3 or later ");for(b=0;b