Changed toStrBase() to accept a number of bits rather than a number of bytes, because bytes aren't always 8 bits (see PDP-10)
This commit is contained in:
parent
884b74d96f
commit
c0de732f76
14 changed files with 260 additions and 239 deletions
|
|
@ -56,7 +56,7 @@ Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c
|
|||
Function.prototype.bind||(Function.prototype.bind=function(a){function b(){return e.apply(this instanceof c&&a?this:a,d.concat(Array.prototype.slice.call(arguments)))}function c(){}if("function"!=typeof this)throw new TypeError("Function.prototype.bind: non-callable object");var d=Array.prototype.slice.call(arguments,1),e=this;c.prototype=this.prototype;b.prototype=new c;return b});
|
||||
function Ka(a,b){var c;if(a){b||(b=10);var d=a.charAt(0),e=0<a.indexOf(",");e&&(a=a.replace(/,/g,""));"#"==d?(b=8,d=null):"$"==d&&(b=16,d=null);null==d?a=a.substr(1):("0"==d&&(d=a.charAt(1),"b"==d&&e&&(b=2,d=null),"o"==d?(b=8,d=null):"x"==d&&(b=16,d=null)),null==d?a=a.substr(2):(d=a.charAt(a.length-1).toLowerCase(),"y"==d?(b=2,d=null):"."==d?(b=10,d=null):"h"==d&&(b=16,d=null),null==d&&(a=a.substr(0,a.length-1))));var f,d=a;((e=b)&&10!=e?16==e?d.match(/^[0-9a-f]+$/i):8==e?d.match(/^[0-7]+$/):2==e&&
|
||||
d.match(/^[01]+$/):d.match(/^[0-9]+$/))&&!isNaN(f=parseInt(a,b))&&(c=f|0)}return c}function La(a,b,c){var d="";b?32<b&&(b=32):b=32;for(var e=null==a||isNaN(a),f=c=c||b;0<b--;)f||(d=","+d,f=c),d=(e?"?":a&1?"1":"0")+d,a>>=1,f--;return d}function E(a,b,c){var d="";b?11<b&&(b=11):b=a&-16777216?11:a&-65536?8:6;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;)d=String.fromCharCode((a&7)+48)+d,a>>=3;return(c?"0o":"")+d}
|
||||
function Ma(a){var b=2,c="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode(a%10+48)+c,a/=10;return c}function F(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function Na(a){return F(a,4,!0)}
|
||||
function Ma(a,b){var c="";b?10<b&&(b=10):b=a&-65536?10:5;if(null==a||isNaN(a))for(;0<b--;)c="?"+c;else for(;0<b--;)c=String.fromCharCode(a%10+48)+c,a/=10;return c}function F(a,b,c){var d="";b?8<b&&(b=8):b=a&-65536?8:4;if(null==a||isNaN(a))for(;0<b--;)d="?"+d;else for(;0<b--;){var e=a&15,e=e+(0<=e&&9>=e?48:55),d=String.fromCharCode(e)+d;a>>=4}return(c?"0x":"")+d}function Na(a){return F(a,4,!0)}
|
||||
function Oa(a,b){var c=a,d=a.lastIndexOf("/");0<=d&&(c=a.substr(d+1));d=c.indexOf("&");0<d&&(c=c.substr(0,d));b&&(d=c.lastIndexOf("."),0<d&&(c=c.substring(0,d)));return c}function Pa(a){var b="",c=a.lastIndexOf(".");0<=c&&(b=a.substr(c+1).toLowerCase());return b}function Qa(a,b){return-1!==a.indexOf(b,a.length-b.length)}function Ra(a){return a.replace(/[&<>"']/g,function(a){return Sa[a]})}function Xa(a,b){return(a+" ").slice(0,b)}
|
||||
function Ya(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}var Sa={"&":"&","<":"<",">":">",'"':""","'":"'"},Za={0:"NUL",1:"SOH",2:"STX",3:"ETX",4:"EOT",5:"ENQ",6:"ACK",7:"BEL",8:"BS",9:"TAB",10:"LF",11:"VT",12:"FF",13:"CR",14:"SO",15:"SI",16:"DLE",17:"XON",18:"DC2",19:"XOFF",20:"DC4",21:"NAK",22:"SYN",23:"ETB",24:"CAN",25:"EM",26:"SUB",27:"ESC",28:"FS",29:"GS",30:"RS",31:"US"};
|
||||
function $a(a,b,c){var d=0,e=a.length,f=0;for(c||(c=function(a,b){return a>b?1:a<b?-1:0});d<e;){var g=d+e>>1,k;k=c(b,a[g]);0<k?d=g+1:(e=g,f=!k)}return f?d:~d}function ab(){function a(a){return(10>a?"0":"")+a}var b=new Date;return b.getFullYear()+"-"+a(b.getMonth()+1)+"-"+a(b.getDate())+" "+a(b.getHours())+":"+a(b.getMinutes())+":"+a(b.getSeconds())}
|
||||
|
|
@ -100,7 +100,7 @@ function Ic(a,b,c){var d=!1,e=this.controller,f=e.Pa[a],g=c&65535;if(f)if(f[1])f
|
|||
b),!0,!e.na))}function Jc(a,b){var c=-1,d=this.controller;a=d.Pa[a];var e=b&65535;a&&(a[2]?c=a[2](e):a[0]&&(c=a[0](e)|a[0](e+1)<<8));if(0<=c)return this.f&&z(this.f,16|a[5])&&C(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.na),c;d.Na(b,16,2);c=65535;this.f&&z(this.f,16)&&C(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.na);return c}
|
||||
function Kc(a,b,c){var d=!1,e=this.controller;a=e.Pa[a];var f=c&65535;a&&(a[3]?(a[3](b,f),d=!0):a[1]&&(a[1](b&255,f),a[1](b>>8,f+1),d=!0));d?this.f&&z(this.f,16|a[5])&&C(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.na):(e.Na(c,16,4),this.f&&z(this.f,16)&&C(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.na))}function L(a){u.call(this,"Device",a,256);this.b={gb:128,Hd:-1}}p(L,u);h=L.prototype;
|
||||
h.za=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.F=d;var e=this;this.b.Hd=ld(c,function(){e.b.gb|=128;e.b.gb&64&&md(e.f,e.b.Qa);e.J&&H(e.J,1);nd(e.f,e.b.Hd,1E3/60)});this.b.Qa=od(c,64,6,2097152);Xb(b,this,pd);ec(b,this.reset.bind(this));d&&qd(d,64,function(a){var b=e.f;rd(e,"KIPDR",b.B[0],0,a[0]);rd(e,"KDPDR",b.B[0],8,a[0]);rd(e,"KIPAR",b.M[0],0,a[0]);rd(e,"KDPAR",b.M[0],8,a[0],!0);rd(e,"SIPDR",b.B[1],0,a[0]);rd(e,"SDPDR",b.B[1],8,a[0]);rd(e,"SIPAR",b.M[1],0,a[0]);rd(e,"SDPAR",b.M[1],8,a[0],
|
||||
!0);rd(e,"UIPDR",b.B[3],0,a[0]);rd(e,"UDPDR",b.B[3],8,a[0]);rd(e,"UIPAR",b.M[3],0,a[0]);rd(e,"UDPAR",b.M[3],8,a[0],!0);b.W&32&&rd(e,"UNIMAP",b.Ha,-1,a[0])});y(this)};function rd(a,b,c,d,e,f){a=a.F;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=8;var g="",k=!1,l=0,m=8;0>d&&(e=c.length,d=0,k=!0,l=3,m=4);for(var n=0;n<e;n++)n%m||(g&&(g+="\n"),g+=b+(k?"["+Ma(n)+"]":"")+":"),g+=" "+K(a,c[d+n],l);a.v(g+(f?"\n":""))}}h.Ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
!0);rd(e,"UIPDR",b.B[3],0,a[0]);rd(e,"UDPDR",b.B[3],8,a[0]);rd(e,"UIPAR",b.M[3],0,a[0]);rd(e,"UDPAR",b.M[3],8,a[0],!0);b.W&32&&rd(e,"UNIMAP",b.Ha,-1,a[0])});y(this)};function rd(a,b,c,d,e,f){a=a.F;if(!(e&&0>b.indexOf(e.toUpperCase()))){e=0;var g=8,k="",l=!1,m=8;0>d&&(e=22,g=c.length,d=0,l=!0,m=4);for(var n=0;n<g;n++)n%m||(k&&(k+="\n"),k+=b+(l?"["+Ma(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Ca=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
h.Ba=function(a){return a?this.save():!0};h.reset=function(){this.b.gb=128;nd(this.f,this.b.Hd,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.gb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.gb=a.next().value;return!0};h.fg=function(){return this.b.gb};h.yh=function(a){this.b.gb=a&192;this.b.gb&64||sd(this.f,this.b.Qa)};h.hg=function(){return td(this.f)};h.Ah=function(a){ud(this.f,a&-129|this.f.S&128)};h.ig=function(){return vd(this.f)};h.jg=function(){return wd(this.f)};
|
||||
h.kg=function(){return this.f.W};h.Bh=function(a){xd(this.f,a)};h.Wg=function(a){a=a>>1&63;var b=this.f.Ha[a>>1];return a&1?b>>16:b&65535};h.mi=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ha[c]=b&1?this.f.Ha[c]&65535|(a&63)<<16:this.f.Ha[c]&-65536|a&65534};h.Pg=function(a){return this.f.B[1][a>>1&7]};h.fi=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Ng=function(a){return this.f.B[1][(a>>1&7)+8]};h.di=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Og=function(a){return this.f.M[1][a>>1&7]};
|
||||
h.ei=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Mg=function(a){return this.f.M[1][(a>>1&7)+8]};h.ci=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.eg=function(a){return this.f.B[0][a>>1&7]};h.xh=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.cg=function(a){return this.f.B[0][(a>>1&7)+8]};h.vh=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.dg=function(a){return this.f.M[0][a>>1&7]};h.wh=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};
|
||||
|
|
@ -166,10 +166,10 @@ function P(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Fa(b,e,6),a.lc(e,d.call
|
|||
function $e(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Fa(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.lc(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
|
||||
h.Cc=function(a){this.A.complete=!0;var b=this.F?af(this.F)?1:this.A.Sc?-1:0:0,c=a?this.A.Sc?0:1:-1;this.A.Sc=!1;this.lb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(bf(this.F,this.g[7],c)){this.ba();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.ob&224)>>5,f=this.R&&this.R.pb>e?this.R:null;f&&(d=f.Fb,e=f.pb);e>(this.w&224)>>5?(this.i&8&&(Ee(this,2),this.i&=-9),this.ra(d,0,-10),e=!0):e=!1;e&&(f&&Ge(this,f),a=!0);this.R||this.ob||(this.i&=-3)}else this.i&
|
||||
1&&this.i++;if(a){if(this.i&4&&bf(this.F,this.g[7],c)){this.ba();break}if(0>c)break}if(this.i&112&&He(this)){if(this.i&4&&bf(this.F,this.g[7],c)){this.ba();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.O=this.g[7];f=this.oa(a);this.g[7]=a+2&65535;this.Sd(f)}while(0<this.b);return this.A.complete?this.lb-this.b:!1===this.A.complete?-1:0};rb(function(){for(var a=x(document,w,"cpu"),b=0;b<a.length;b++){var c=a[b],d=wa(c),d=new ue(d);xa(d,c)}});
|
||||
function yf(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function zf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function Af(a,b){a=b<<1;Ie(this,a);return a&65535}function Bf(a,b){a=b<<1;Ie(this,a<<8);return a&255}function Cf(a,b){a=b&32768|b>>1|b<<16;Ie(this,a);return a&65535}function Df(a,b){a=b&128|b>>1|b<<8;Ie(this,a<<8);return a&255}function Ef(a,b){a=b&~a;this.Da(a);return a}function Ff(a,b){a=b&~a;this.Da(a<<8);return a}
|
||||
function cf(a,b){var c=b+a;this.I=this.L=this.C=c;this.G=(a^c)&(b^c);return c&65535}function zf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.C=d;this.G=(a<<8^d)&(b<<8^d);return c&255}function Af(a,b){a=b<<1;Ie(this,a);return a&65535}function Bf(a,b){a=b<<1;Ie(this,a<<8);return a&255}function Cf(a,b){a=b&32768|b>>1|b<<16;Ie(this,a);return a&65535}function Df(a,b){a=b&128|b>>1|b<<8;Ie(this,a<<8);return a&255}function Ef(a,b){a=b&~a;this.Da(a);return a}function Ff(a,b){a=b&~a;this.Da(a<<8);return a}
|
||||
function Gf(a,b){a|=b;this.Da(a);return a}function Hf(a,b){a|=b;this.Da(a<<8);return a}function If(a,b){a=~b|65536;this.qb(a);return a&65535}function Jf(a,b){a=~b|256;this.qb(a<<8);return a&255}function Kf(a,b){this.I=this.L=a=b-a;this.G=b&(b^a);return a&65535}function Lf(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.G=b&(b^c);return a&255}function Mf(a,b){this.I=this.L=a=b+a;this.G=a&(b^a);return a&65535}function Nf(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.G=c&(b<<8^c);return a&255}
|
||||
function Of(a,b){a=-b;this.qb(a,a&b&32768);return a&65535}function Pf(a,b){a=-b;this.qb(a<<8,(a&b&128)<<8);return a&255}function Qf(a,b){a=b<<1|this.C>>16&1;Ie(this,a);return a&65535}function Rf(a,b){a=b<<1|this.C>>16&1;Ie(this,a<<8);return a&255}function Sf(a,b){a=(this.C&65536|b)>>1|b<<16;Ie(this,a);return a&65535}function Tf(a,b){a=((this.C&65536)>>8|b)>>1|b<<8;Ie(this,a<<8);return a&255}function Uf(a,b){var c=b-a;Je(this,c,a,b);return c&65535}
|
||||
function Vf(a,b){var c=b-a;Je(this,c<<8,a<<8,b<<8);return c&255}function Wf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Xf(a,b){a^=b;this.Da(a);return a&65535}function Yf(a){P(this,a,Ue(this,a),yf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
|
||||
function Vf(a,b){var c=b-a;Je(this,c<<8,a<<8,b<<8);return c&255}function Wf(a,b){this.I=this.L=b&65280;this.G=this.C=0;return(b<<8|b>>8)&65535}function Xf(a,b){a^=b;this.Da(a);return a&65535}function Yf(a){P(this,a,Ue(this,a),cf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
|
||||
function Zf(a){var b=Xe(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.C=this.G=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.C=c<<17-b,c>>=b;else if(b)if(16<b)this.G=c,c=0;else{this.C=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.G=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.u?6:7)+b}
|
||||
function $f(a){var b=Xe(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.C=this.G=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.C=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.C=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.G=32768)):d=c;this.g[a]=d>>16&65535;this.g[a|1]=d&65535;this.I=d>>16;this.L=d>>16|d;this.b-=(this.u?6:7)+b}function ag(a){Fe(this,a,!Ae(this))}function bg(a){Fe(this,a,Ae(this))}
|
||||
function cg(a){P(this,a,Ue(this,a),Ef);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function dg(a){Ye(this,a,Te(this,a),Ff);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function eg(a){P(this,a,Ue(this,a),Gf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}function fg(a){Ye(this,a,Te(this,a),Hf);this.b-=this.u?9+(this.Y&&6<=this.j?1:0):(this.U?5:3)+(7==this.j?2:0)}
|
||||
|
|
@ -184,7 +184,7 @@ function Rg(a){a&1&&(this.C=65536);a&2&&(this.G=32768);a&4&&(this.L=0);a&8&&(thi
|
|||
function Wg(){this.sa&&(this.sa.Gd(this.g[7],!0),this.sa.setData(this.g[0],!0));this.i|=8;Ee(this,-2);this.b-=3}function Xg(a){P(this,a,this.g[(a>>6&7)+this.zc],Xf);this.b-=this.u?9:3+(7==this.j?2:0)}function Q(a){var b;if(b=this.F)b=this.F,z(b,1)?(C(b,"undefined opcode "+K(b,a),!0,!0),b=Cg(b)):b=!1;b||this.ra(8,0,-9)}function ve(a){Yg[a>>12].call(this,a)}function Zg(a){$g[a>>6&3].call(this,a)}function ah(a){bh[a>>6&3].call(this,a)}function ch(a){dh[a>>6&3].call(this,a)}
|
||||
function eh(a){fh[a&15].call(this,a)}function gh(a){hh[a&15].call(this,a)}function ih(a){jh[a>>6&3].call(this,a)}function kh(a){lh[a>>6&3].call(this,a)}function mh(a){nh[a>>6&3].call(this,a)}
|
||||
var Yg=[function(a){oh[a>>8&15].call(this,a)},Jg,xg,gg,cg,eg,Yf,Q,function(a){ph[a>>8&15].call(this,a)},Kg,yg,hg,dg,fg,Tg,Q],oh=[function(a){qh[a>>4&15].call(this,a)},tg,qg,ig,jg,og,kg,mg,Hg,Hg,Zg,ah,ch,Q,Q,Q],$g=[function(a){$e(this,a,0,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,If);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Mf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,1,Kf);this.b-=this.u?9:3+(7==this.j?2:0)}],bh=[function(a){P(this,a,0,Of);
|
||||
this.b-=this.u?11:6},function(a){P(this,a,Ae(this)?1:0,yf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Ae(this)?1:0,Uf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Xe(this,a);this.qb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],dh=[function(a){P(this,a,0,Sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Qf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Af);this.b-=this.u?9:3+(7==this.j?2:0)}],qh=
|
||||
this.b-=this.u?11:6},function(a){P(this,a,Ae(this)?1:0,cf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,Ae(this)?1:0,Uf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=Xe(this,a);this.qb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],dh=[function(a){P(this,a,0,Sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Qf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){P(this,a,0,Af);this.b-=this.u?9:3+(7==this.j?2:0)}],qh=
|
||||
[function(a){rh[a&15].call(this,a)},Q,Q,Q,Fg,Fg,Fg,Fg,Pg,Q,eh,gh,Ug,Ug,Ug,Ug],rh=[Bg,Wg,Qg,sg,Dg,Og,Q,Q,Q,Q,Q,Q,Q,Q,Q,Q],fh=[Ng,function(){this.C=0;this.b-=5},function(){this.G=0;this.b-=5},wg,function(){this.L=1;this.b-=5},wg,wg,wg,function(){this.I=0;this.b-=5},wg,wg,wg,wg,wg,wg,wg],hh=[Ng,function(){this.C=65536;this.b-=5},function(){this.G=32768;this.b-=5},Rg,function(){this.L=0;this.b-=5},Rg,Rg,Rg,function(){this.I=32768;this.b-=5},Rg,Rg,Rg,Rg,Rg,Rg,Rg],ph=[rg,pg,lg,ng,ug,vg,ag,bg,Ag,Vg,ih,kh,
|
||||
mh,Q,Q,Q],jh=[function(a){Ze(this,a,0,255,this.qb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ye(this,a,0,Jf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ye(this,a,1,Nf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ye(this,a,1,Lf);this.b-=this.u?9:3+(7==this.j?2:0)}],lh=[function(a){Ye(this,a,0,Pf);this.b-=this.u?11:6},function(a){Ye(this,a,Ae(this)?1:0,zf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ye(this,a,Ae(this)?1:0,Vf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=We(this,
|
||||
a);this.qb(a<<8);this.b-=this.u?4:3+(7==this.j?2:0)}],nh=[function(a){Ye(this,a,0,Tf);this.b-=this.u?9+(this.Wc&1):3+(7==this.j?2:0)},function(a){Ye(this,a,0,Rf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){Ye(this,a,0,Df);this.b-=this.u?9+(this.Wc&1):3+(7==this.j?2:0)},function(a){Ye(this,a,0,Bf);this.b-=this.u?9:3+(7==this.j?2:0)}];function we(a){sh[a>>12].call(this,a)}
|
||||
|
|
@ -292,7 +292,7 @@ case "^":d=f^e;break;case "|":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d
|
|||
function zj(a,b,c){var d;if(b){b=Aj(a,b);for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],q=n.length,n=Ya(n);if(!n){f=!0;break}n=Bj(a,n,null,!1===c);if(void 0===n){f=!0;c=!1;break}k.push(n);if(e==m.length)break;var n=m[e++],t=n.length;l.length&&Cj[n]<Cj[l[l.length-1]]&&yj(k,l,1);l.push(n);b=b.substr(q+t)}yj(k,l)&&1==k.length||(f=!0);f?c&&a.v("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),c&&Dj(a,null,
|
||||
d))}return d}function Aj(a,b){for(var c,d=a.ia?"(":"{",e=a.ia?")":"}",f=new RegExp(a.ia?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=zj(a,c[1]);b=b.replace(d+c[1]+e,null!=g?K(a,g):"undefined")}for(;(c=b.match(/\[(.*?)]/))&&!(0<=c[1].indexOf("["));)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){c=null;switch(b[1].toLowerCase()){case "ops":c=0}if(null==c)break;a=a.replace(b[0],c.toString())}return a}
|
||||
function Bj(a,b,c,d){var e;null!=b?(e=a.re(b),0<=e?e=a.Ad(e):(e=a.S[b],null==e&&(e=Ka(b,a.Aa))),null!=e||d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return e}function Dj(a,b,c){var d,e=!1;if(void 0!==c){e=!0;d=c;var f=4,g="";if(!f||4<f)f=4;for(var k=0;k<f;k++)g&&(g=","+g),g=La(d&255,8)+g,d>>=8;d=F(c,0,!0)+" "+c+". "+E(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.v((null!=b?b+": ":"")+d);return e}
|
||||
function Ej(a,b){if(b)return Dj(a,b,a.S[b]);var c=0;for(b in a.S)Dj(a,b,a.S[b]),c++;return 0<c}function K(a,b,c,d){c=void 0===c?0:c;switch(a.Aa){case 8:a=E(b,3*c);break;case 10:a=b.toString();break;default:a=F(b,2*c)}(void 0===d?0:d)?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}var Cj={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Ej(a,b){if(b)return Dj(a,b,a.S[b]);var c=0;for(b in a.S)Dj(a,b,a.S[b]),c++;return 0<c}function K(a,b,c){c=void 0===c?0:c;switch(a.Aa){case 8:a=E(b,0<c?(c+2)/3|0:0);break;case 10:a=Ma(b,0<c?Math.ceil(.3*c):0);break;default:a=F(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Cj={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function Fj(a){wj.call(this,a);this.Ga=!1;this.ia=!0;this.G=X();this.Fa=X();this.N=X();this.B=[];this.b=this.L=this.C=[];Gj(this);this.P=this.Y=0;this.i=[];this.pa=void 0;Hj(this);this.F=this;this.ka={};this.ha=this.ke=0;this.R=null;this.M=[];Ij(this,a.messages);this.ta=a.commands;this.Ja=Jj;this.W=[];this.I=0;this.Ka=this.sa=null;this.w=this.Ia=this.Ha=this.X=this.la=0;this.g=this.U=null;var b=this;window?void 0===window[w]&&(window[w]=function(a){return ke(b,a)}):void 0===global[w]&&(global[w]=
|
||||
function(a){return ke(b,a)})}p(Fj,wj);function Kj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Ma:void 0===b?!1:b,Ua:!1,Aa:c}}h=Fj.prototype;h.Gd=function(a,b){a.K=b;a.Ua=!1;a.Aa=void 0;return a};function Lj(a){return[a.K,a.Ma,a.Aa,a.Ua,a.Pc]}function Mj(a,b){var c=X(b[0],b[1],b[2]);c.Ua=b[3];b[4]&&(c.he=xj(a,c.Pc=b[4]));return c}
|
||||
h.za=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.g=a.i;(a=fe(a,"messages"))&&Ij(this,a);1140>this.f.ka&&(this.W=this.W.concat(Nj));1145>this.f.ka&&(this.W=this.W.concat(Oj));qd(this,16,function(a){a:{var b=d.D.b,c=a[0],e=a=0,l=b.length;if(c){a=Kj(Pj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.D.g;l=1}d.v("blockid physical blockaddr used size type");d.v("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.v("..."):
|
||||
|
|
@ -308,7 +308,7 @@ h.Ad=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.ta[a-8
|
|||
h.message=function(a,b){b&&(a+=" @"+Sj(this,X(this.f.O&65535)));if(!this.R||a!=this.R)if(this.R=a,this.ha&1073741824)this.M.push(a);else{var c;if(this.ha&-2147483648&&this.f&&(c=this.f.A.V)||Ha(this,!0))this.ba(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,qe(a),a.Ab=0,a.J&&H(a.J,void 0))}};
|
||||
function Hj(a){var b;if(!af(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.P=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(hk);for(b=0;b<a.i.length;b++)a.i[b]=X();a.P=0;a.v("instruction history buffer allocated")}}function ik(a,b,c){if(!jk(a,c))return!1;tc(a.f,b);return!0}
|
||||
function uc(a,b,c,d){if(!jk(a))return!1;var e="";null===c&&(e=(c=!a.sa||"tr"==a.sa)?"tr":"t");a.w=0;b||af(a)&&bf(a,a.f.g[7],0);try{b=re(a.f,b);var f=a.f.Cc(b);0<f&&(vc(a.f,f),a.w+=f,wc(a.f,f,!0),xc(a.f,f),a.X++)}catch(g){"number"!=typeof g&&(a.w=0,Ea(a.f,g.stack||g.message))}!1!==d&&(a.g&&a.g.stop(),H(a.J,-1));ie(a,c||!1,e);return 0<a.w}h.ba=function(a){this.f&&this.f.ba(a)};
|
||||
function ie(a,b,c){if(a.Ga){void 0===b&&(b=!0);c&&a.v(kk+c);c=a.f;if(c=c.i&128?c.Dc|c.Ac<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,1)+" ("+(0>d?Lb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?lk(a):mk(a)}}function jk(a,b){var c;(c=!a.f||!Ga(a.f))||(c=a.f,c.A.aa?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Fa(a.f)}h.Ca=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
|
||||
function ie(a,b,c){if(a.Ga){void 0===b&&(b=!0);c&&a.v(kk+c);c=a.f;if(c=c.i&128?c.Dc|c.Ac<<8:0){var d=c>>8;a.v("trapped to "+K(a,c&255,8)+" ("+(0>d?Lb[-d]:K(a,d))+")")}a.G=X(a.f.g[7]);b&&1!=a.I?lk(a):mk(a)}}function jk(a,b){var c;(c=!a.f||!Ga(a.f))||(c=a.f,c.A.aa?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.V?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Fa(a.f)}h.Ca=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
|
||||
h.Ba=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){Hj(this);this.X=0;this.R=null;this.w=0;this.G=X(this.f.g[7]);this.A.V=!1;nk(this);a||ie(this)};h.save=function(){var a=new G(this);a.set(0,Lj(this.G));a.set(1,Lj(this.N));a.set(2,[this.j,this.O,this.ha]);a.set(3,this.B);return a.data()};
|
||||
h.restore=function(a){var b=0;void 0!==a[2]&&(this.G=Mj(this,a[b++]),this.N=Mj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.O=a[b][1],this.ha|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.V=!0;this.Ha=a;this.Ia=b};
|
||||
h.stop=function(a,b){if(this.A.V){this.A.V=!1;this.w=b-this.Ia;if(!this.I){b="stopped";if(this.w){a-=this.Ha;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";af(this)&&(b+=this.X+" instructions, ",this.X=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else z(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}ie(this,!0);je(this);nk(this,this.f.g[7]);this.R=null}};function af(a){return 1<a.b.length||!!a.Y}
|
||||
|
|
@ -318,9 +318,9 @@ h.Bb=function(a,b,c){var d=!0;c||pk(this,a,b,!1,!0);if(a!=this.b){var e=Kj(b);if
|
|||
function pk(a,b,c,d,e){var f=!1;c=Kj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Kj(k)&&(!d||k.Ua)){f=!0;k.Ua||e||qk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Ma?(d=a.D,Zd(d.b[c>>>d.g],b)):Qe(a.f,b));k.Ua||Hj(a);break}}return f}function rk(a,b){for(var c=1;c<b.length;c++)qk(a,b,c);return b.length-1}function qk(a,b,c,d){c=b[c];a.v(b[0]+" "+Sj(a,c)+(d?" "+d:c.Pc?' "'+c.Pc+'"':""))}
|
||||
function nk(a,b){if(void 0!==b)ok(a,b,1,a.b,!0),a.I=0;else for(b=1;b<a.b.length;b++){var c=a.b[b];if(c.Ua){if(!pk(a,a.b,c,!0))break;b=0}}}
|
||||
function ok(a,b,c,d,e){var f=!1;if(!a.la++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Ua)for(var l=Kj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Ua&&(pk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!sk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var t=q+1;t<n.length&&n[t].indexOf("else");t++)q++;if(t==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||qk(a,d,g,"hit");break}}}a.la--;return f}
|
||||
function tk(a,b,c,d){var e=X(b.K),f=a.Ra(b,2),g,k;for(k in a.Ja)if(g=a.Ja[k][f&k])break;g||(g=uk);var l=g[0];0<=a.W.indexOf(l)&&(g=uk,l=g[0]);var m=k="",n=vk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&wk;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==xk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==yk)A=K(r,f&7,1);else if(B==zk)A=K(r,f&63,1);else if(B==Ak)A=K(r,f&255,1);else if(B=f&D,D&Bk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
|
||||
Ck;switch(B&Dk){case 0:A=Uj(r,J);break;case 8:A="@"+Uj(r,J);D=Ek(r,r.f.g[J]);break;case 16:7>J?A="("+Uj(r,J)+")+":(B=r.Ra(t,2),A="#"+K(r,B,0,!0));break;case 24:7>J?A="@("+Uj(r,J)+")+":(B=r.Ra(t,2),A="@#"+K(r,B,0,!0),D=Ek(r,B));break;case 32:A="-("+Uj(r,J)+")";break;case 40:A="@-("+Uj(r,J)+")";break;case 48:B=r.Ra(t,2);A=K(r,B,0,!0)+"("+Uj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Ek(r,B));break;case 56:B=r.Ra(t,2),A="@"+K(r,B)+"("+Uj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Ek(r,Cc(r.f,B)))}D&&(A=
|
||||
[A,D])}r=A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Sj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ra(e,2)),null==e.K)break;while(e.K!=b.K)}g+=Xa(f,24);g+=Xa(n,5);k&&(g+=" "+k);if(c||m)g=Xa(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+le(a.f).toString()+" cs="+F(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function tk(a,b,c,d){var e=X(b.K),f=a.Ra(b,2),g,k;for(k in a.Ja)if(g=a.Ja[k][f&k])break;g||(g=uk);var l=g[0];0<=a.W.indexOf(l)&&(g=uk,l=g[0]);var m=k="",n=vk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var t=g[l];if(void 0!==t){var r;r=a;var D=t,t=b,A="",B=D&wk;if(B==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(B==xk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(B==yk)A=K(r,f&7,3);else if(B==zk)A=K(r,f&63,6);else if(B==Ak)A=K(r,f&255,8);else if(B=f&D,D&Bk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
|
||||
Ck;switch(B&Dk){case 0:A=Uj(r,J);break;case 8:A="@"+Uj(r,J);D=Ek(r,r.f.g[J]);break;case 16:7>J?A="("+Uj(r,J)+")+":(B=r.Ra(t,2),A="#"+K(r,B,-1));break;case 24:7>J?A="@("+Uj(r,J)+")+":(B=r.Ra(t,2),A="@#"+K(r,B,-1),D=Ek(r,B));break;case 32:A="-("+Uj(r,J)+")";break;case 40:A="@-("+Uj(r,J)+")";break;case 48:B=r.Ra(t,2);A=K(r,B,-1)+"("+Uj(r,J)+")";7==J&&(A=K(r,B=B+t.K&65535),D=Ek(r,B));break;case 56:B=r.Ra(t,2),A="@"+K(r,B)+"("+Uj(r,J)+")",7==J&&(A="@"+K(r,B=B+t.K&65535),D=Ek(r,Cc(r.f,B)))}D&&(A=[A,D])}r=
|
||||
A;if(!r||!r.length){k="INVALID";break}"string"!=typeof r&&(m=r[1],r=r[0]);0<k.length&&(k+=",");k+=r||"???"}}f="";g=Sj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ra(e,2)),null==e.K)break;while(e.K!=b.K)}g+=Xa(f,24);g+=Xa(n,5);k&&(g+=" "+k);if(c||m)g=Xa(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+le(a.f).toString()+" cs="+F(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function Ek(a,b){b=Oe(a.f,b)[0];b>=a.f.ub&&b<a.D.B&&(b=b-a.f.ub+a.D.B);var c=a.D;a=null;b>=c.B&&(b=c.Pa[b&jd])&&(a=b[4]);return a}function Fk(a,b){switch(b){case "N":a=De(a.f);break;case "Z":a=Ce(a.f);break;case "V":a=Be(a.f);break;case "C":a=Ae(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Gk(a,b){var c=Uj(a,b);c&&(c+="="+K(a,a.Ad(b))+" ");return c}
|
||||
function Hk(a,b){var c,d="";for(c=0;6>c;c++)d+=Gk(a,c);d=d+"\n"+(Gk(a,6)+Gk(a,7));d+=Gk(a,Xj)+Gk(a,Yj)+Gk(a,ak);d+=Fk(a,"T")+Fk(a,"N")+Fk(a,"Z")+Fk(a,"V")+Fk(a,"C");b&&(b=d,c=""+(Gk(a,bk)+Gk(a,ck)),c+=Gk(a,dk)+Gk(a,ek)+Gk(a,Zj),c=c+"\n"+(Gk(a,gk)+Gk(a,Vj)+Gk(a,fk)),d=b+("\n"+c));return d}h.me=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Ch(a,b,c,d,e){var f=[],g;for(g in e){var k=e[g];"number"==typeof k&&(e[g]=k={o:k});var l=k.o,m=k.a;if(void 0!==l){var n=f,l=[l>>>0,g],q=$a(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Gk:b,K:c,Lf:d,ga:e,ie:f})}function Ik(a,b,c){var d=[],e=Kj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Lf;if(e>=g&&e<g+k){e=$a(f.ie,[e-g],a.me);0<=e?Jk(a,b,e,d):c&&(e=~e,Jk(a,b,e-1,d),Jk(a,b,e,d));break}}return d}
|
||||
|
|
@ -335,20 +335,20 @@ function sk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(kk+b):(a.O&&(a.v("ende
|
|||
Pj(a,g[1],!0);if(q)if(a.N=q,void 0===g[2])a.v("begin assemble at "+Sj(a,q)),a.O=!0,H(a.J);else{var t;a.v("not supported yet");t=[];if(t.length){for(var r=0;r<t.length;r++)a.Pd(q,t[r],1);a.v(tk(a,a.N))}}break;case "b":a:{var D=g[0],A=g[1],B=b;if("?"==A)a.v("breakpoint commands:"),a.v("\tbp #\tset exec breakpoint"),a.v("\tbr #\tset read breakpoint"),a.v("\tbw #\tset write breakpoint"),a.v("\tbc #\tclear breakpoint (* to clear all)"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
|
||||
else{var J=D.charAt(1);if("l"==J){var vb;vb=0+rk(a,a.b);vb+=rk(a,a.L);(vb+=rk(a,a.C))||a.v("no breakpoints")}else if("n"==J){var Cd=+A||0;A&&(a.Y=Cd);a.v("break after "+Cd+" instruction(s)")}else if(void 0===A)a.v("missing breakpoint address");else{var sa=X();if("*"!=A&&(sa=Pj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Gj(a),a.v("all breakpoints cleared")):pk(a,a.b,sa)||pk(a,a.L,sa)||pk(a,a.C,sa)||a.v("breakpoint missing: "+Sj(a,sa)):null!=sa.K&&(Rj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
|
||||
J?a.Bb(a.C,sa):a.v("unknown breakpoint command: "+J))}}}break;case "c":a.Ta&&(a.Ta.value="");break;case "d":a:{var Yb,jb=g[0],Ta=g[1],kb=g[2],ml=g[3];if("?"==Ta){var Zb="";for(Yb in Qb)a.ka[Yb]&&(Zb&&(Zb+=","),Zb+=Yb);Zb+=",state,symbols";a.v("dump memory commands:");a.v("\tda [a] dump info for address a");a.v("\tdb [a] [n] dump n bytes at address a");a.v("\tdw [a] [n] dump n words at address a");a.v("\tdd [a] [n] dump n dwords at address a");a.v("\tds [a] [n] dump n words at address a as JSON");
|
||||
a.v("\tdh [p] [n] dump n instructions from history position p");Zb.length&&a.v("dump extension commands:\n\t"+Zb)}else if("state"==Ta){var cf=Ok(a.J,!0);"console"==kb?console.log(cf):(a.Ta&&(a.Ta.value=""),cf&&a.v(cf))}else if("symbols"==Ta)for(var df=0;df<a.B.length;df++){var ef=a.B[df],$b;for($b in ef.ga)if("."!=$b.charAt(0)){var ui=ef.ga[$b].o;if(void 0!==ui){var vi=ef.ga[$b].l;vi&&($b=vi);a.v(K(a,ui)+" "+$b)}}}else{if("d"==jb){for(Yb in Qb)if(g[1]==Yb){var wi=a.ka[Yb];wi?(g.shift(),g.shift(),
|
||||
wi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Ka||"dw")}else a.Ka=jb;if("dh"==jb){var xi=Ta,yi=kb,zi="",Ai=0,Ia=a.P,Ua=a.i;if(Ua.length){var Ca=+xi||a.pa,Lc=+yi||10;isNaN(Ca)?Ca=Lc:zi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var ff=[];"call"==yi&&(Lc=1E5,ff=["CALL"]);for(void 0!==xi&&a.v(Ca+" instructions earlier:");0<Lc&&Ia!=a.P;){var Bi=Ua[Ia++];if(null==Bi.K)break;var Mc=X(Bi.K),
|
||||
nl=Ca--,Ci=tk(a,Mc,"history",nl);(!ff.length||0<=Ci.indexOf(ff[0]))&&a.v(Ci);Mc.xd&&(Ia+=Mc.xd,Lc-=Mc.xd,Ca-=Mc.xd);Ia>=Ua.length&&(Ia=0);a.pa=Ca;Ai++;Lc--}}Ai||(a.v("no "+zi+"history available"),a.pa=void 0)}else{var oa=Pj(a,Ta);if(oa)if("da"==jb){var gf=oa.Ma||65535<oa.K,O=Oe(a.f,oa.K||0,gf);a.v(Xa("",gf?12:19)+La(oa.K,gf?22:17,3)+" "+E(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+La(O[3],13,3)+" "+E(O[3],8)),a.v("UNIMAP["+Ma(O[1])+"]: "+La(O[2],22,3)+" "+E(O[2],8))),a.v(" PHYSICAL: "+
|
||||
La(O[0],22,3)+" "+E(O[0],8))):(a.v(" OFFSET: "+La(O[1],13,3)+" "+E(O[1],8)),a.v("+ "+Pk[O[2]]+"PAR"+O[3]+": "+La(O[4],22,3)+" "+E(O[4],8)),a.v("& MMUMASK: "+La(O[5],22,3)+" "+E(O[5],8)),a.v("= PHYSICAL: "+La(O[0],22,3)+" "+E(O[0],8)))}else{var xb=0,hf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ml,xb=Bj(a,kb);else{var Di=Pj(a,kb);Di&&(xb=Di.K-oa.K)}0>xb&&(xb=0);65536<xb&&(xb=65536)}var pl=a.Aa;oa.Aa&&(a.Aa=oa.Aa);for(var yb="dd"==jb?4:"db"==jb?1:2,Ld=yb*xb||128,jf=
|
||||
hf?16:a.Aa,ql=(Ld+jf-1)/jf|0||1,zb="";ql--&&0<Ld;){for(var Ab="",kf="",Ta=Sj(a,oa),Md=jf,Nc=0,Oc=0;0<Md&&0<Ld;){var ac=1,Nd=1==yb?a.Od(oa,ac):a.Ra(oa,ac=2),Nc=Nc|Nd<<(Oc<<3),Oc=Oc+ac;Oc==yb&&(hf?(Ab&&(Ab+=","),Ab+="0x"+F(Nc,2*yb)):(Ab+=K(a,Nc,yb),Ab+=1==yb?9==Md?"-":" ":" "),Nc=Oc=0);Md-=ac;for(Ld-=ac;1==yb&&ac--;)var lf=Nd&255,kf=kf+(32<=lf&&128>lf?String.fromCharCode(lf):"."),Nd=Nd>>8}zb&&(zb+="\n");zb=hf?zb+(Ab+","):zb+(Ta+": "+Ab+(Md?"":" "+kf))}zb&&a.v(zb);a.Fa=oa;a.Aa=pl}}}}break;case "e":if("else"==
|
||||
g[0])break;var bc,mf,nf,of,pf=g[0],qf=g[1];"eb"==pf?(bc=1,mf=255,nf=a.Od,of=a.Pd):"e"==pf||"ew"==pf?(bc=2,mf=65535,nf=a.Ra,of=a.Le):qf=null;if(null==qf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Od=Pj(a,qf);if(Od)for(var Pd=2;Pd<g.length;Pd++){var Pc=zj(a,g[Pd]);if(void 0===Pc){a.v("unrecognized value: "+g[Pd]);break}Pc&~mf&&a.v("warning: "+F(Pc)+" exceeds "+bc+"-byte value");a.v("changing "+Sj(a,Od)+(z(a,16)?
|
||||
"":" from "+K(a,nf.call(a,Od),bc))+" to "+K(a,Pc,bc));of.call(a,Od,Pc,bc)}}break;case "g":a:{var Ei=g[1],rl=b;if(void 0!==Ei){var rf=Pj(a,Ei,!0);if(!rf)break a;Rj(a,rf,rl);a.Bb(a.b,rf,!0)}ik(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.ba()):Ha(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var sf;var Qc=b.substr(2),Qc=Ya(Qc);zj(a,Qc)?(c||a.v("true: "+Qc),sf=!0):(c||a.v("false: "+Qc),sf=!1);sf||(d=!1);break}f=!0;break;case "k":var sl=g[0];if("?"==g[1])a.v("stack trace commands:"),
|
||||
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var tf=0,uf=X(),Rc=X(a.f.g[6]);for(a.v("stack trace for "+Sj(a,Rc));10>tf;){for(var Bb=null,tl=256;65536>Rc.K>>>0;){uf.K=a.Ra(Rc,2);if(null==Rc.K||!tl--)break;if(!(uf.K&1)){for(var ul=a,Qd=uf,Fi=null,Sc=Qd.K,Gi=Sc,vf=1;6>=vf&⪼vf++){if(2<vf){Qd.K=Sc;var Rd=tk(ul,Qd);if(0<=Rd.indexOf("JSR")){var Hi=Rd.indexOf(" ");if(Sc+(Rd.indexOf(" ",Hi+1)-Hi-1)/2==Gi){Fi=Rd;break}}}Sc-=2}Qd.K=Gi;if(Bb=Fi)break}}if(!Bb||null==Bb)break;var Ii=
|
||||
null;if("ks"==sl){var Ji=Bb.match(/[0-9A-F]+$/);Ji&&(Ii=Lk(a,Ji[0]))}Bb=Xa(Bb,50)+" ;"+(Ii||"stack="+Sj(a,Rc));a.v(Bb);tf++}tf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Lk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Qb)if(T==Va){lb=Qb[Va];Wa=!!(a.ha&lb);break}if(!lb){a.v("unknown message category: "+
|
||||
a.v("\tdh [p] [n] dump n instructions from history position p");Zb.length&&a.v("dump extension commands:\n\t"+Zb)}else if("state"==Ta){var df=Ok(a.J,!0);"console"==kb?console.log(df):(a.Ta&&(a.Ta.value=""),df&&a.v(df))}else if("symbols"==Ta)for(var ef=0;ef<a.B.length;ef++){var ff=a.B[ef],$b;for($b in ff.ga)if("."!=$b.charAt(0)){var ui=ff.ga[$b].o;if(void 0!==ui){var vi=ff.ga[$b].l;vi&&($b=vi);a.v(K(a,ui)+" "+$b)}}}else{if("d"==jb){for(Yb in Qb)if(g[1]==Yb){var wi=a.ka[Yb];wi?(g.shift(),g.shift(),
|
||||
wi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Ka||"dw")}else a.Ka=jb;if("dh"==jb){var xi=Ta,yi=kb,zi="",Ai=0,Ia=a.P,Ua=a.i;if(Ua.length){var Ca=+xi||a.pa,Lc=+yi||10;isNaN(Ca)?Ca=Lc:zi="more ";Ca>Ua.length&&(a.v("note: only "+Ua.length+" available"),Ca=Ua.length);Ia-=Ca;0>Ia&&(null==Ua[Ua.length-1].K?(Ca=Ia+Ca,Ia=0):Ia+=Ua.length);var gf=[];"call"==yi&&(Lc=1E5,gf=["CALL"]);for(void 0!==xi&&a.v(Ca+" instructions earlier:");0<Lc&&Ia!=a.P;){var Bi=Ua[Ia++];if(null==Bi.K)break;var Mc=X(Bi.K),
|
||||
nl=Ca--,Ci=tk(a,Mc,"history",nl);(!gf.length||0<=Ci.indexOf(gf[0]))&&a.v(Ci);Mc.xd&&(Ia+=Mc.xd,Lc-=Mc.xd,Ca-=Mc.xd);Ia>=Ua.length&&(Ia=0);a.pa=Ca;Ai++;Lc--}}Ai||(a.v("no "+zi+"history available"),a.pa=void 0)}else{var oa=Pj(a,Ta);if(oa)if("da"==jb){var hf=oa.Ma||65535<oa.K,O=Oe(a.f,oa.K||0,hf);a.v(Xa("",hf?12:19)+La(oa.K,hf?22:17,3)+" "+E(oa.K,8));6>O.length?(2<O.length&&(a.v(" OFFSET: "+La(O[3],13,3)+" "+E(O[3],8)),a.v("UNIMAP["+Ma(O[1],2)+"]: "+La(O[2],22,3)+" "+E(O[2],8))),a.v(" PHYSICAL: "+
|
||||
La(O[0],22,3)+" "+E(O[0],8))):(a.v(" OFFSET: "+La(O[1],13,3)+" "+E(O[1],8)),a.v("+ "+Pk[O[2]]+"PAR"+O[3]+": "+La(O[4],22,3)+" "+E(O[4],8)),a.v("& MMUMASK: "+La(O[5],22,3)+" "+E(O[5],8)),a.v("= PHYSICAL: "+La(O[0],22,3)+" "+E(O[0],8)))}else{var xb=0,jf="ds"==jb;if(kb){if("l"==kb.charAt(0))kb=kb.substr(1)||ml,xb=Bj(a,kb);else{var Di=Pj(a,kb);Di&&(xb=Di.K-oa.K)}0>xb&&(xb=0);65536<xb&&(xb=65536)}var pl=a.Aa;oa.Aa&&(a.Aa=oa.Aa);for(var yb="dd"==jb?4:"db"==jb?1:2,Ld=yb*xb||128,kf=
|
||||
jf?16:a.Aa,ql=(Ld+kf-1)/kf|0||1,zb="";ql--&&0<Ld;){for(var Ab="",lf="",Ta=Sj(a,oa),Md=kf,Nc=0,Oc=0;0<Md&&0<Ld;){var ac=1,Nd=1==yb?a.Od(oa,ac):a.Ra(oa,ac=2),Nc=Nc|Nd<<(Oc<<3),Oc=Oc+ac;Oc==yb&&(jf?(Ab&&(Ab+=","),Ab+="0x"+F(Nc,yb<<1)):(Ab+=K(a,Nc,yb<<3),Ab+=1==yb?9==Md?"-":" ":" "),Nc=Oc=0);Md-=ac;for(Ld-=ac;1==yb&&ac--;)var mf=Nd&255,lf=lf+(32<=mf&&128>mf?String.fromCharCode(mf):"."),Nd=Nd>>8}zb&&(zb+="\n");zb=jf?zb+(Ab+","):zb+(Ta+": "+Ab+(Md?"":" "+lf))}zb&&a.v(zb);a.Fa=oa;a.Aa=pl}}}}break;case "e":if("else"==
|
||||
g[0])break;var bc,nf,of,pf,qf=g[0],rf=g[1];"eb"==qf?(bc=1,nf=255,of=a.Od,pf=a.Pd):"e"==qf||"ew"==qf?(bc=2,nf=65535,of=a.Ra,pf=a.Le):rf=null;if(null==rf)a.v("edit memory commands:"),a.v("\teb [a] [...] edit bytes at address a"),a.v("\tew [a] [...] edit words at address a");else{var Od=Pj(a,rf);if(Od)for(var Pd=2;Pd<g.length;Pd++){var Pc=zj(a,g[Pd]);if(void 0===Pc){a.v("unrecognized value: "+g[Pd]);break}Pc&~nf&&a.v("warning: "+F(Pc)+" exceeds "+bc+"-byte value");a.v("changing "+Sj(a,Od)+(z(a,16)?
|
||||
"":" from "+K(a,of.call(a,Od),bc<<3))+" to "+K(a,Pc,bc<<3));pf.call(a,Od,Pc,bc)}}break;case "g":a:{var Ei=g[1],rl=b;if(void 0!==Ei){var sf=Pj(a,Ei,!0);if(!sf)break a;Rj(a,sf,rl);a.Bb(a.b,sf,!0)}ik(a,!0,c)}break;case "h":a.A.V?(c||a.v("halting"),a.ba()):Ha(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var tf;var Qc=b.substr(2),Qc=Ya(Qc);zj(a,Qc)?(c||a.v("true: "+Qc),tf=!0):(c||a.v("false: "+Qc),tf=!1);tf||(d=!1);break}f=!0;break;case "k":var sl=g[0];if("?"==g[1])a.v("stack trace commands:"),
|
||||
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var uf=0,vf=X(),Rc=X(a.f.g[6]);for(a.v("stack trace for "+Sj(a,Rc));10>uf;){for(var Bb=null,tl=256;65536>Rc.K>>>0;){vf.K=a.Ra(Rc,2);if(null==Rc.K||!tl--)break;if(!(vf.K&1)){for(var ul=a,Qd=vf,Fi=null,Sc=Qd.K,Gi=Sc,wf=1;6>=wf&⪼wf++){if(2<wf){Qd.K=Sc;var Rd=tk(ul,Qd);if(0<=Rd.indexOf("JSR")){var Hi=Rd.indexOf(" ");if(Sc+(Rd.indexOf(" ",Hi+1)-Hi-1)/2==Gi){Fi=Rd;break}}}Sc-=2}Qd.K=Gi;if(Bb=Fi)break}}if(!Bb||null==Bb)break;var Ii=
|
||||
null;if("ks"==sl){var Ji=Bb.match(/[0-9A-F]+$/);Ji&&(Ii=Lk(a,Ji[0]))}Bb=Xa(Bb,50)+" ;"+(Ii||"stack="+Sj(a,Rc));a.v(Bb);uf++}uf||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){Lk(a,g[1],!0);break}f=!0;break;case "m":a:{var Va,Wa=null,T=g[1];"?"==T&&(T=void 0);if(void 0!==T){var lb=0;if("all"==T)lb=1879046143,T=null;else if("on"==T)Wa=!0,T=null;else if("off"==T)Wa=!1,T=null;else{"keys"==T&&(T="key");"kbd"==T&&(T="keyboard");for(Va in Qb)if(T==Va){lb=Qb[Va];Wa=!!(a.ha&lb);break}if(!lb){a.v("unknown message category: "+
|
||||
T);break a}}if(lb)if("on"==g[2])a.ha|=lb,Wa=!0;else if("off"==g[2]&&(a.ha&=~lb,Wa=!1,1073741824==lb)){for(var Ki=1E3<=a.M.length?a.M.length-1E3:0;Ki<a.M.length;)a.v(a.M[Ki++]);a.M=[]}}var vl=0,Tc="";for(Va in Qb)if(!T||T==Va){var wl=!!(a.ha&Qb[Va]);if(null===Wa||Wa==wl)Tc&&(Tc+=","),++vl%10||(Tc+="\n\t"),"key"==Va&&(Va="keys"),Tc+=Va}void 0===T&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Wa?Wa?"messages on: ":"messages off: ":"message categories:\n\t")+
|
||||
(Tc||"none"));Hj(a)}break;case "p":if("print"==g[0]){Mk(a,b.substr(5));break}var xl=g[0];if("?"==g[1])a.v("step commands:"),a.v("\tp\tstep over instruction"),a.v("\tpr\tstep over instruction with register update");else{var Li="pr"==xl?1:0,Mi=1+Li;if(a.I)a.v("step in progress");else{var Sd=X(a.f.g[7]),cc=a.Ra(Sd);3==cc||4==cc||34816==(cc&65280)||32256==(cc&65024)||35072==(cc&65280)?(a.I=Mi,Qj(Sd,2)):2048==(cc&65024)&&(tk(a,Sd),a.I=Mi);a.I?(a.Bb(a.b,Sd,!0),ik(a)||(a.J&&pe(a.J),a.I=0)):Nk(a,Li?"tr":
|
||||
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}lk(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Uc=+g[2];if(8==Uc||10==Uc||16==Uc)a.Aa=Uc;else{a.v("invalid base: "+Uc);break}}a.v("default base: "+a.Aa);break;case "cs":var Vc;void 0!==g[3]&&(Vc=+g[3]);switch(g[2]){case "int":a.f.Ob=Vc;break;case "start":a.f.pc=Vc;break;case "stop":a.f.Rb=Vc;break;default:a.v("unknown cs option");break a}void 0!==Vc&&he(a.f);a.v("checksums "+(a.f.A.Nb?"enabled":"disabled"));break;case "sp":void 0!==
|
||||
g[2]&&(me(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.xb.toFixed(2)+"Mhz")+" ("+a.f.mb+"x)");break;default:if(g[1]){a.v("unknown option: "+g[1]);break}case "?":a.v("debugger options:"),a.v("\tbase #\t\tset default base to #"),a.v("\tcs int #\tset checksum cycle interval to #"),a.v("\tcs start #\tset checksum cycle start count to #"),a.v("\tcs stop #\tset checksum cycle stop count to #"),a.v("\tsp #\t\tset speed multiplier to #")}break;case "t":Nk(a,
|
||||
g[0],g[1]);break;case "u":mk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Kk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Gb||"PDP11")+" version 1.34.0 ("+a.f.ka+",RELEASE"+(Ib?",TYPEDARRAYS":Hb?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Mk(a,b.substr(1));break}var wf="commands:",xf;for(xf in Qk)wf+="\n"+Xa(xf,9)+Qk[xf];af(a)||(wf+="\nnote: history disabled if no exec breakpoints");a.v(wf);break;default:f=!0}f&&(a.v("unknown command: "+
|
||||
g[0],g[1]);break;case "u":mk(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Kk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Gb||"PDP11")+" version 1.34.0 ("+a.f.ka+",RELEASE"+(Ib?",TYPEDARRAYS":Hb?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){Mk(a,b.substr(1));break}var xf="commands:",yf;for(yf in Qk)xf+="\n"+Xa(yf,9)+Qk[yf];af(a)||(xf+="\nnote: history disabled if no exec breakpoints");a.v(xf);break;default:f=!0}f&&(a.v("unknown command: "+
|
||||
b),d=!1)}}catch(Oi){a.v("debugger error: "+(Oi.stack||Oi.message)),d=!1}return d}function ke(a,b,c){b=xj(a,b,c);for(var d in b)if(!sk(a,b[+d]))return!1;return!0}
|
||||
var Qk={"?":"help/print","a [#]":"assemble","b [#]":"breakpoint",c:"clear output","d [#]":"dump memory","e [#]":"edit memory","g [#]":"go [to #]",h:"halt","if":"eval expression","int [#]":"request interrupt",k:"stack trace",ln:"list nearest symbol(s)",m:"messages",p:"step over",print:"print expression",r:"dump/set registers",reset:"reset machine",s:"set options","t [#]":"trace","u [#]":"unassemble","var":"assign variable",ver:"print version"},vk=".WORD ADC ADCB ADD ASL ASLB ASR ASRB BCC BCS BEQ BGE BGT BHI BIC BICB BIS BISB BIT BITB BLE BLOS BLT BMI BNE BPL BPT BR BVC BVS CCC CLC CLCN CLCV CLCVN CLCVZ CLCZ CLCZN CLN CLR CLRB CLV CLVN CLVZ CLVZN CLZ CLZN CMP CMPB COM COMB DEC DECB INC INCB HALT JMP JSR MARK MFPD MFPI MFPS MOV MOVB MTPD MTPI MTPS NEG NEGB NOP RESET ROL ROLB ROR RORB RTI RTS SBC SBCB SCC SEC SECN SECV SECVN SECVZ SECZ SECZN SEN SEV SEVN SEVZ SEVZN SEZ SEZN SUB SWAB SXT TST TSTB WAIT MUL DIV ASH ASHC XOR SOB EMT TRAP SPL IOT RTT MFPT".split(" "),
|
||||
Xj=20,Yj=21,Zj=22,ak=23,bk=24,ck=25,dk=26,ek=27,Vj=28,fk=29,gk=30,Tj={SP:6,PC:7,PS:Xj,PI:Yj,ER:Zj,SL:ak,M0:bk,M1:ck,M2:dk,M3:ek,AR:Vj,DR:fk,SR:gk},Wj="R0 R1 R2 R3 R4 R5 SP PC A0 A1 A2 A3 A4 A5 A6 A7 S0 S1 S2 S3 PS PI ER SL M0 M1 M2 M3 AR DR SR".split(" "),Pk="KI KD SI SD ?? ?? UI UD".split(" "),Ck=7,Dk=56,Z=Dk|Ck,Bk=4032,Y=4096,xk=8192,yk=12288,zk=24576,Ak=32768,wk=61440,Jj={61440:{4096:[62,Bk,Z],8192:[47,Bk,Z],12288:[18,Bk,Z],16384:[14,Bk,Z],20480:[16,Bk,Z],24576:[3,Bk,Z],36864:[63,Bk,Z],40960:[48,
|
||||
|
|
|
|||
Loading…
Reference in a new issue