Cleaned up the expression parser, fixed some PDP-10 evaluation errors, and added support unary minus
This commit is contained in:
parent
0e8e2ed4a2
commit
6e0e489bee
8 changed files with 536 additions and 447 deletions
|
|
@ -64,7 +64,7 @@ function z(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.g
|
|||
function qb(a){for(var b=!0,c=rb[a];c&&c.length;){var d=c.splice(0,1)[0],e=d[0],f=null;0<=sb.indexOf(e)&&(f=function(){return function(){qb(a)}}());var g=tb[e];if(g)if(!f)b=g(d[1],d[2],d[3]);else{if(!g(f,d[1],d[2],d[3]))break}else{var b=!1,k=nb(d[1],a);if(k)if(g=ub[e])b=g(k,d[2],d[3]);else{var l=k.exports;if(l&&(g=l[e]))if(b=!0,!f)b=g.call(k,d[2],d[3]);else if(!g.call(k,f,d[2],d[3]))break}}if(!b){w("Script error: "+e+(g?" failed":" unrecognized"));break}}c&&!c.length&&delete rb[a];return b}h=x.prototype;
|
||||
h.toString=function(){return this.name?this.name:this.id||this.type};
|
||||
h.va=function(a,b,c){switch(b){case "clear":return this.H[b]||(this.H[b]=c,c.onclick=function(a){return function(){a.H.print&&(a.H.print.value="")}}(this)),!0;case "print":return this.H[b]||(this.Va=this.H[b]=c,c.value="",this.v=function(a){return function(b,c){8192<a.value.length&&(a.value=a.value.substr(a.value.length-4096));a.value+=(void 0!==c?c+": ":"")+(b||"")+"\n";a.scrollTop=a.scrollHeight}}(c),this.T=function(a){this.v(a,this.Mb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
|
||||
h.status=function(a){this.v(this.Mb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function wb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Oc=b);return a.A.ready}function C(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Oc,a.Oc=null,b&&b()))}function Eb(a,b){a.A.fb&&(b?a.A.xd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.fb}
|
||||
h.status=function(a){this.v(this.Mb+": "+a)};h.T=function(a,b,c){c=c||this.type;b||w((c?c+": ":"")+a)};function wb(a,b){a.A.error=!0;a.T(b)}function Cb(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Db(a,b){b&&(a.A.ready?b():a.Oc=b);return a.A.ready}function D(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.Oc,a.Oc=null,b&&b()))}function Eb(a,b){a.A.fb&&(b?a.A.xd=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.fb}
|
||||
function Fb(a,b){if(a.A.xd)return a.A.fb=!1,a.A.xd=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.fb=b;return a.A.fb}h.Ea=function(){return this.A.ba=!0};h.Da=function(a,b){b&&(this.A.ba=!1);return!0};function E(a,b){if(a.D){a===a.D?b|=0:b=b||a.ha;var c=a.D.ha&b;return!!b&&c===b||!!(c&a.D.ke)}return!1}function F(a,b,c,d){a.D&&(!0===c||E(a,c|0))&&a.D.message(b,d)}
|
||||
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]),window.PCjs.Commands||(window.PCjs.Commands={}));
|
||||
var fb=window?window.PCjs.Machines:{},db=window?window.PCjs.Components:[],rb=window?window.PCjs.Commands:{},sb=["hold","sleep","wait"],tb={alert:function(a){w(a);return!0},sleep:function(a,b){setTimeout(a,+b);return!1}},ub={select:function(a,b,c){var d=!1;if(a=a.bindings[b])for(b=0;b<a.options.length;b++)if(a.options[b].textContent==c){a.selectedIndex!=b&&(a.selectedIndex=b);d=!0;break}return d}};
|
||||
|
|
@ -76,7 +76,7 @@ mj:16384,uj:32768},ff:{cb:63},Rd:{Oj:1024,dj:2048,ge:2048,yj:3072,Ie:4096,bb:512
|
|||
52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11",180:"RX11"};Pb.jf=["DX",77,1,26,128,1,0,0,128,0];Nb.Hc=["RK",203,2,12,512,0,0,0,512,Nb.Ic.Hc|Nb.Ic.de|Nb.Ic.$d];Ob.cf=["RL",512,2,40,256,0,0,0,256,Ob.Jc.Pe.Re|Ob.Jc.Sd|Ob.Jc.Oe];
|
||||
var y="pdp11",Hb="PDPjs",Ib=!1,Jb=Gb,Lb=Kb=!0,Rb={cpu:1,trap:2,fault:4,"int":8,bus:16,memory:32,mmu:64,rom:128,device:256,panel:512,keyboard:1024,key:2048,pc11:4096,paper:4096,disk:8192,read:16384,write:32768,rk11:65536,rl11:131072,rx11:262144,dl11:1048576,serial:1048576,kw11:2097152,timer:2097152,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
|
||||
function Sb(a,b){x.call(this,"Panel",a,512);this.j=this.u=0;this.M=b;this.fa=this.g=this.Ya=this.Eb=0;this.B=this.C=-1;this.G=this.I=this.w=!1;this.L=Tb;this.i={};this.b={START:[1,1,!0,!1,this.Tf],STEP:[1,1,!1,!1,this.Uf],ENABLE:[1,1,!1,!1,this.Of],CONT:[1,1,!0,!1,this.Mf],DEP:[0,0,!0,!1,this.Nf],EXAM:[1,1,!0,!1,this.Pf],LOAD:[1,1,!0,!1,this.Rf],TEST:[0,0,!0,!1,this.Qf]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Sf,a];this.D=this.f=this.F=this.J=null;this.exports={hold:this.Hf,toggle:this.lh,
|
||||
reset:this.gh,set:this.kh};C(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Eb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
|
||||
reset:this.gh,set:this.kh};D(this)}p(Sb,x);function Ub(a,b){return Vb(a,a.Eb=b)}h=Sb.prototype;h.reset=function(a){this.stop();a&&Ub(this,0)};
|
||||
h.va=function(a,b,c,d){if(this.J&&this.J.va(a,b,c,d)||this.f&&this.f.va(a,b,c,d)||this.D&&this.D.va(a,b,c,d))return!0;switch(b){case "R0":case "R1":case "R2":case "R3":case "R4":case "R5":case "R6":case "R7":case "NF":case "ZF":case "VF":case "CF":case "PS":return this.H[b]=c,this.u++,!0;default:return"led"==a||"rled"==a?(this.H[b]=c,this.i[b]=d?1:0,this.u++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.H[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
|
||||
b){return function(){Wb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Xb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Wb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Xb(a,b)}}(this,b),!0):x.prototype.va.call(this,a,b,c,d)}};h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;dc(b,this,ec);fc(b,this.reset.bind(this));gc(this);hc(this)};
|
||||
h.Ea=function(a,b){if(!b)if(this.M&&ic(),!a)this.reset(!0);else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,[this.fa,this.Eb,this.Ya]);return a.data()};h.restore=function(a){if(a=a[0])jc(this,this.fa=a[0]),Ub(this,a[1]),kc(this,a[2]);return!0};h.gh=function(){for(var a in this.b){var b=this.b[a];b[1]=b[0]}hc(this);return!0};function lc(a,b,c){if(a=a.H[b])a.style.backgroundColor=c?"#ff0000":"#000000"}
|
||||
|
|
@ -87,21 +87,21 @@ h.Nf=function(a){if(a&&!this.f.A.V)if(this.G&&zc(this),a=Ub(this,this.Ya),this.L
|
|||
function zc(a){var b=1140>=a.f.ka?8:16,c=65472<=a.fa&&a.fa<65472+b,b=c?1:2,c=c?15:a.F.I;a.b[oc]&&a.b[oc][1]||(b=-b);jc(a,a.fa&~c|a.fa+b&c)}function jc(a,b){a.fa=b&a.F.I;if(a.B!==a.fa){a.B=a.fa;b=a.B;for(var c=0;22>c;c++)Ec(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.C!==a.g){a.C=a.g;b=a.C;for(var c=0;16>c;c++)Ec(a,"D"+c,b&1<<c)}return a.g}function Ec(a,b,c){a.i[b]=c;a.w||lc(a,b,c)}function kc(a,b){a.Ya=b|0;for(b=0;22>b;b++)a.b["S"+b][1]=a.Ya&1<<b?1:0;hc(a);return!0}
|
||||
h.stop=function(){jc(this,this.f.g[7])};h.Hd=function(a){this.fa=a};h.setData=function(a,b){b?this.Eb=a:this.g=a};h.Zf=function(a,b){return(b?this.Eb:this.Ya)&65535};h.rh=function(a){this.Eb=a};function ic(){for(var a=z(document,y,"panel"),b=0;b<a.length;b++){var c=a[b],d=ob(c),e=mb(d.id);e||(e=new Sb(d,!0));pb(e,c)}}var Tb=7,pc="DEP",tc="ENABLE",qc="EXAM",oc="STEP",Fc={},ec=(Fc[65400]=[null,null,Sb.prototype.Zf,Sb.prototype.rh,"CNSW"],Fc);Sa(ic);
|
||||
function Gc(a,b,c){x.call(this,"Bus",a,16);this.f=b;this.D=c;this.U=+a.busWidth||16;this.M=1<<this.U;this.I=this.M-1;this.j=Hc;this.g=Math.log2(this.j);this.R=this.j>>2;this.i=this.j-1;this.G=this.M/this.j|0;this.S=this.G-1;this.Ra=[];this.na=0;this.C=!1;this.N=[];this.yf=[Ic,Jc,Kc,Wc];this.b=this.u=[];this.B=this.L=this.w=this.O=this.P=0;a=new I(this);Xc(a,this.D);this.b=Array(this.G);this.u=Array(this.G);for(b=0;b<this.G;b++)this.b[b]=this.u[b]=a;this.B=this.M-Hc;Yc(this,this.B,Hc,Zc,this);this.P=
|
||||
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;C(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
|
||||
this.O=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;D(this)}p(Gc,x);function $c(a,b){if(b!=a.L){for(var c=0;c<a.G;c++)a.u[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Hc,a.P=(b&a.w)>>>a.g,a.u[a.P]=a.b[a.O])}}h=Gc.prototype;h.reset=function(){for(var a=0;a<this.N.length;a++)this.N[a]();$c(this,16)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.save=function(){var a=new G(this);a.set(0,ad(this));return a.data()};
|
||||
h.restore=function(a){a:{a=a[0];var b;for(b=0;b<a.length-1;b+=2){var c=a[b],d=a[b+1];if(d&&d.length<this.R){for(var e=0,f=Array(this.R),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.b[c];if(!e||!e.restore(d)){w("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
|
||||
function Yc(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.g;0<g&&k<a.b.length;){var l=a.b[k],m=k*a.j,n=a.j-(f-m);n>g&&(n=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.K)return l.Xb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Xb){n=l.size-(f-m);n>g&&(n=g);l.Xb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return bd(cd,f,g)}f=new I(a,f,n,a.j,d,e);Xc(f,a.D,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+dd[d]+" at "+u(b)),!0):bd(ed,b,c)}h.Ld=function(a){return this.u[(a&this.w)>>>this.g].Db(a&this.i,a)};
|
||||
h.Bc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Lb||b!=this.i?this.u[c].oa(b,a):this.u[c++].Db(b,a)|this.u[c&this.S].Db(0,a+1)<<8};h.Md=function(a,b){this.u[(a&this.w)>>>this.g].Gb(a&this.i,b,a)};h.ac=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Lb||c!=this.i?this.u[d].Hb(c,b,a):(this.u[d++].Gb(c,b&255,a),this.u[d&this.S].Gb(0,b>>8&255,a+1))};function fd(a,b){return a.b[(b&a.I)>>>a.g]}
|
||||
function Cc(a,b){var c;a.C=!1;a.na++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?c=e.B(d,b):c=e.J(d,b)|fd(a,b+1).J(0,b+1)<<8;a.na--;return c}function gd(a,b,c){a.C=!1;a.na++;fd(a,b).F(b&a.i,c&255,b);a.na--}function Ac(a,b,c){a.C=!1;a.na++;var d=b&a.i,e=fd(a,b);Lb||d!=a.i?e.C(d,c&65535,b):(e.F(d,c&255,b),fd(a,b+1).F(0,c>>8&255,b+1));a.na--}
|
||||
function ad(a){for(var b=0,c=[],d=0;d<a.G;d++){var e=a.b[d];if(e.gb||e.Ff){c[b++]=d;var f=b++;if(e=e.save()){for(var g=0,k=0,l=[];g<e.length;){for(var m=e[g],n=g+1;n<e.length&&e[n]===m;)n++;l[k++]=n-g;l[k++]=m;g=n}l.length<e.length&&(e=l)}c[f]=e}}return c}function hd(a){for(var b=id,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Xb)}return c}
|
||||
function jd(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&kd;if(void 0!==a.Ra[n])return w("I/O address already registered: "+v(b,8,!0)),!1;var q=l||"unknown";q&&0<=m&&(q+=m++);a.Ra[n]=[d,e,f,g,q,k||16,!1]}return!0}
|
||||
function dc(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ka)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var q=g[4],r=g[5]||1,t=0;t<r;t++,f+=2)if(q&&1<r&&(q=g[4]+t),!jd(a,f,f,k,l,m,n,g[7]||b.ha,q||b.Mb))return!1}}return!0}
|
||||
function dc(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ka)){var k=g[0]?g[0].bind(b):null,l=g[1]?g[1].bind(b):null,m=g[2]?g[2].bind(b):null,n=g[3]?g[3].bind(b):null;65472<=f&&65487>=f&&(!k&&m&&(k=function(a){return function(b){return a(b)&255}.bind(b)}(m)),!l&&n&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(n)));for(var q=g[4],t=g[5]||1,r=0;r<t;r++,f+=2)if(q&&1<t&&(q=g[4]+r),!jd(a,f,f,k,l,m,n,g[7]||b.ha,q||b.Mb))return!1}}return!0}
|
||||
function fc(a,b){a.N.push(b)}h.Oa=function(a,b,c){this.C=!0;this.na||(this.D&&E(this.D,4)&&F(this.D,"memory fault ("+c+") on "+K(this.D,a),!0,!0),b&&(this.f.P|=b),this.f.ra(4,0,a))};function ld(a){var b=a.C;a.C=!1;return b}function bd(a,b,c){w("Memory block error ("+a+": "+v(b)+","+v(c)+")");return!1}var Hc=8192,kd=Hc-1,cd=1,ed=2;
|
||||
function Ic(a,b){var c=-1,d=this.controller,e=d.Ra[a],f=b&65535;e?e[0]?c=e[0](f):e[2]&&(c=f&1?e[2](f&-2)>>8:e[2](f)&255):f&1&&(e=d.Ra[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&E(this.f,16|e[5])&&F(this.f,e[4]+".readByte("+K(this.f,b)+"): "+K(this.f,c),!0,!d.na),c;d.Oa(b,16,3);c=255;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to byte @"+K(this.f,b)+": "+K(this.f,c),!0,!d.na);return c}
|
||||
function Jc(a,b,c){var d=!1,e=this.controller,f=e.Ra[a],g=c&65535;if(f)if(f[1])f[1](b,g),d=!0;else{if(f[3]){a=f[2]?f[2](g,!0):0;if(g&1)f[3](a&255|b<<8,g&-2);else f[3](a&-256|b,g);d=!0}}else g&1&&(f=e.Ra[a&-2])&&(f[3]?(g&=-2,a=f[2]?f[2](g,!0):0,f[3](a&255|b<<8,g),d=!0):f[1]&&(f[1](b,g),d=!0));d?this.f&&E(this.f,16|f[5])&&F(this.f,f[4]+".writeByte("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.na):(e.Oa(c,16,5),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to byte @"+K(this.f,c)+": "+K(this.f,
|
||||
b),!0,!e.na))}function Kc(a,b){var c=-1,d=this.controller;a=d.Ra[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&&E(this.f,16|a[5])&&F(this.f,a[4]+".readWord("+K(this.f,b)+"): "+K(this.f,c),!0,!d.na),c;d.Oa(b,16,2);c=65535;this.f&&E(this.f,16)&&F(this.f,"warning: unconverted read access to word @"+K(this.f,b)+": "+K(this.f,c),!0,!d.na);return c}
|
||||
function Wc(a,b,c){var d=!1,e=this.controller;a=e.Ra[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&&E(this.f,16|a[5])&&F(this.f,a[4]+".writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0,!e.na):(e.Oa(c,16,4),this.f&&E(this.f,16)&&F(this.f,"warning: unconverted write access to word @"+K(this.f,c)+": "+K(this.f,b),!0,!e.na))}function L(a){x.call(this,"Device",a,256);this.b={hb:128,Id:-1}}p(L,x);h=L.prototype;
|
||||
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.D=d;var e=this;this.b.Id=md(c,function(){e.b.hb|=128;e.b.hb&64&&nd(e.f,e.b.Sa);e.J&&H(e.J,1);od(e.f,e.b.Id,1E3/60)});this.b.Sa=pd(c,64,6,2097152);dc(b,this,qd);fc(b,this.reset.bind(this));d&&rd(d,64,function(a){var b=e.f;sd(e,"KIPDR",b.B[0],0,a[0]);sd(e,"KDPDR",b.B[0],8,a[0]);sd(e,"KIPAR",b.M[0],0,a[0]);sd(e,"KDPAR",b.M[0],8,a[0],!0);sd(e,"SIPDR",b.B[1],0,a[0]);sd(e,"SDPDR",b.B[1],8,a[0]);sd(e,"SIPAR",b.M[1],0,a[0]);sd(e,"SDPAR",b.M[1],8,a[0],
|
||||
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.W&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});C(this)};function sd(a,b,c,d,e,f){a=a.D;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?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
!0);sd(e,"UIPDR",b.B[3],0,a[0]);sd(e,"UDPDR",b.B[3],8,a[0]);sd(e,"UIPAR",b.M[3],0,a[0]);sd(e,"UDPAR",b.M[3],8,a[0],!0);b.W&32&&sd(e,"UNIMAP",b.Ha,-1,a[0])});D(this)};function sd(a,b,c,d,e,f){a=a.D;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?"["+qa(n,2)+"]":"")+":"),k+=" "+K(a,c[d+n],e);a.v(k+(f?"\n":""))}}h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
|
||||
h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b.hb=128;od(this.f,this.b.Id,1E3/60,!0)};h.save=function(){var a=new G(this);a.set(0,[this.b.hb]);return a.data()};h.restore=function(a){a=ia(a[0]);this.b.hb=a.next().value;return!0};h.fg=function(){return this.b.hb};h.yh=function(a){this.b.hb=a&192;this.b.hb&64||td(this.f,this.b.Sa)};h.hg=function(){return ud(this.f)};h.Ah=function(a){vd(this.f,a&-129|this.f.S&128)};h.ig=function(){return wd(this.f)};h.jg=function(){return xd(this.f)};
|
||||
h.kg=function(){return this.f.W};h.Bh=function(a){yd(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};
|
||||
|
|
@ -127,7 +127,7 @@ h.ah=function(a,b){Kb&&a&1&&this.D.Oa(b,64,2);a=!Lb&&a&1?this.g[a]|this.g[a+1]<<
|
|||
h.pi=function(a,b,c){Kb&&a&1&&this.D.Oa(c,64,4);!Lb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.G[a>>1]=b;this.gb=!0;this.f&&E(this.f,32)&&F(this.f,"Memory.writeWord("+K(this.f,c)+","+K(this.f,b)+")",!0)};var Hd=0,id=1,Id=2,Zc=4,dd=["NONE","RAM","ROM","VID","H/W"],Gd=0,Wd=[],Vd=[I.prototype.Yf,I.prototype.qh,I.prototype.bh,I.prototype.ri],Zd=[I.prototype.Wf,I.prototype.oh,I.prototype.Yg,I.prototype.oi];
|
||||
if(Gb)var Ud=[I.prototype.Vf,I.prototype.nh,I.prototype.Xg,I.prototype.ni],Td=[I.prototype.Xf,I.prototype.ph,I.prototype.ah,I.prototype.pi];var ce;if(Gb){var de=new ArrayBuffer(2);(new DataView(de)).setUint16(0,256,!0);ce=256===(new Uint16Array(de))[0]}else ce=!1;var Kd=ce;
|
||||
function ee(a,b){x.call(this,"CPU",a,1);b=+a.cycles||b;var c=+a.multiplier||1;this.ad=0;this.Zc=b;this.mb=c;this.md=Math.round(this.Zc/1E4)/100;this.xb=this.md*this.mb;this.nd=this.qc=this.Ab=this.zc=0;this.A.V=this.A.Tc=!1;this.A.qa=a.autoStart;"string"==typeof this.A.qa&&(this.A.qa="true"==this.A.qa);this.A.Nb=!1;this.oc=this.Qb=0;this.pc=+a.csStart;this.Ob=+a.csInterval;this.Rb=+a.csStop;this.ia=[];this.Zd=this.hh.bind(this);this.nb=this.Ka=this.lb=this.b=this.la=this.Ja=this.nc=this.kb=this.Sb=
|
||||
this.od=this.wb=0;this.sa=null;C(this)}p(ee,x);h=ee.prototype;h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.sa=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.va(null,fe[a],b);C(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
|
||||
this.od=this.wb=0;this.sa=null;D(this)}p(ee,x);h=ee.prototype;h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.D=d;this.sa=a.i;for(a=0;a<fe.length;a++)(b=this.H[fe[a]])&&this.J.va(null,fe[a],b);D(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
|
||||
h.Ea=function(a,b){var c=ge(this.J,"autoStart");null!=c?this.A.qa="true"==c?!0:"false"==c?!1:!!c:null==this.A.qa&&(this.A.qa=!this.D&&void 0===this.H.run);if(!b){if(a){he(this);if(!this.restore(a))return!1;ie(this)}else this.reset();this.D?(a=this.D,b=this.A.qa,a.Ia=!0,a.v("Type ? for help with PDPjs Debugger commands"),je(a),b||ke(a),a.xa&&(b=a.xa,a.xa=null,le(a,b))):this.status("No debugger detected");this.A.qa||this.v("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};
|
||||
h.Da=function(a){return a?this.save():!0};h.qa=function(){return this.A.V?!0:this.A.qa?(uc(this),!0):!1};h.qe=function(){return 0};function ie(a){void 0===a.pc&&(a.pc=0);void 0===a.Ob&&(a.Ob=-1);void 0===a.Rb&&(a.Rb=-1);a.A.Nb=0<=a.pc&&0<a.Ob;a.A.Nb&&(a.oc=0,a.Qb=a.pc-a.nb)}function yc(a,b){if(a.A.Nb){var c=!1;a.oc=a.oc+a.qe()|0;a.Qb-=b;0>=a.Qb&&(a.Qb+=a.Ob,c=!0);0<=a.Rb&&a.Rb<=me(a)&&(a.Ob=a.Rb=-1,ie(a),a.ca(),c=!0);c&&a.v(me(a)+" cycles: checksum="+v(a.oc))}}
|
||||
h.va=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.H[b]=c,!0;case "run":return this.H[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ba)a=!0;else{var b=null,c,k=ib(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.A.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.A.ba);c++);c==k.length&&(b=a);w("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.Oc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.V?d.ca():uc(d))},!0;
|
||||
|
|
@ -195,20 +195,20 @@ Yg,Yg,Q,Q,Q,Q,Tg,Tg],wh=[sg,qg,mg,og,vg,wg,bg,cg,Bg,Wg,jh,lh,nh,function(a){1145
|
|||
function Bh(a){x.call(this,"ROM",a,128);this.ga=this.g=null;this.u=+a.addr;this.b=+a.size;this.w=!1;this.i=a.alias;"string"==typeof this.i&&(this.i=eval(this.i));this.j=a.file;this.B=ta(this.j);if(this.j){a=this.j;var b=ua(this.B);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.Z,c.ga=a.ga):c.j=null);Ch(c)})}}p(Bh,x);
|
||||
h=Bh.prototype;h.Ba=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Ch(this)};h.Ea=function(){this.ga&&(this.D&&Dh(this.D,this.id,this.u,this.b,this.ga),delete this.ga);return!0};h.Da=function(){return!0};
|
||||
function Ch(a){if(!Db(a)){if(a.j){if(!a.g||!a.F)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)wb(a,"ROM size ("+v(a.g.length,8,!0)+") does not match specified size ("+v(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Hc){var c={},c=(c[b]=[Bh.prototype.Jg,Bh.prototype.$h,null,null,null,a.b>>1],c);if(dc(a.F,a,c)){a.status("Added "+a.b+"-byte ROM at "+u(b));b=a.w=!0;break a}}else if(Yc(a.F,b,a.b,Id)){for(c=0;c<a.g.length;c++)gd(a.F,b+c,a.g[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.i?
|
||||
b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}C(a)}}h.Jg=function(a){return this.g[a-this.u]};h.$h=function(){};Sa(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
|
||||
b.push(a.i):null!=a.i&&a.i.length&&(b=a.i);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.F,g=d.b,k=[],l=d.u>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.F;d=d.b;g=0;for(e>>>=f.g;0<d&&e<f.b.length;){l=k[g++];if(!l)break;f.b[e++]=l;d-=f.j}}a.w||delete a.g}}}D(a)}}h.Jg=function(a){return this.g[a-this.u]};h.$h=function(){};Sa(function(){for(var a=z(document,y,"rom"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Bh(d);pb(d,c)}});
|
||||
function Eh(a){x.call(this,"RAM",a);this.ga=this.g=null;this.i=+a.addr;this.j=+a.size;this.Aa=a.load;this.za=a.exec;null!=this.Aa&&(this.Aa=+this.Aa);null!=this.za&&(this.za=+this.za);this.u=this.B=!1;this.b=a.file;this.w=ta(this.b);if(this.b){a=this.b;var b=ua(this.w);"json"!=b&&"hex"!=b&&(a=Ga()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;Ea(a,null,!0,function(a,b,f){f?(c.T("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(eb(c.vb,a,b),(a=Fa(a,b))?(c.g=a.Z,
|
||||
c.ga=a.ga,null==c.Aa&&(c.Aa=a.Aa),null==c.za&&(c.za=a.za)):c.b=null);Fh(c)})}}p(Eh,x);Eh.prototype.Ba=function(a,b,c,d){this.F=b;this.f=c;this.D=d;Fh(this)};Eh.prototype.Ea=function(a,b){this.ga&&(this.D&&Dh(this.D,this.id,this.i,this.j,this.ga),delete this.ga);b||this.reset();return!0};Eh.prototype.Da=function(){return!0};
|
||||
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Aa,a.za,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;C(a)}}
|
||||
function Fh(a){if(a.F&&(!a.u&&a.j&&(Yc(a.F,a.i,a.j,id)?a.u=!0:a.j=0),!Db(a))){if(!a.u)w("No RAM allocated");else if(a.b){if(!a.g)return;Gh(a,a.g,a.Aa,a.za,a.i)?a.status('Loaded image "'+a.w+'"'):a.T('Error loading image "'+a.w+'"')}a.B=!0;D(a)}}
|
||||
Eh.prototype.reset=function(){if(this.u&&!this.B){for(var a=this.F,b=this.i,c=this.j,d=b&a.i,b=b>>>a.g;0<c&&b<a.b.length;){var e=a.b[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(Gb&&e.g)for(k=d;f--&&k<e.g.length;k++)e.g[k]=g;else for(k=d;f--&&k<e.size;k++)e.F(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&Gh(this,this.g,this.Aa,this.za,this.i,!this.D)}this.B=!1};
|
||||
function Gh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){F(a,"invalid signature ("+ra(m)+") at offset "+ra(n),4096);break}if(l+6>=b.length){F(a,"invalid block at offset "+ra(n),4096);break}for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,r=b[l++]&255|(b[l++]&255)<<8,m=m+((q&255)+(q>>8)+(r&255)+(r>>8)),t=l,D=q-=6;0<q&&l<b.length;)m+=b[l++]&255,q--;if(q||l>=b.length){F(a,"insufficient data for block at offset "+ra(n),4096);
|
||||
break}m+=b[l++]&255;if(m&255){F(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+ra(n),4096);break}if(D)for(F(a,"loading "+ra(D)+" bytes at "+ra(r)+"-"+ra(r+D),4096);D--;)gd(a.F,r++,b[t++]&255);else r&1?g=!0:null==d&&(d=r),null!=d&&F(a,"starting address: "+ra(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)gd(a.F,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.ca(),f=!1;null!=d&&ze(a.f,d,f)}return k}
|
||||
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);C(this)}p(Hh,x);Hh.prototype.va=function(){return!1};Hh.prototype.Ba=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
|
||||
function Gh(a,b,c,d,e,f){var g=!1,k=!1;if(null==c)for(var l=0;l<b.length-1;){var m=b[l]&255|(b[l+1]&255)<<8;if(m)if(m&255){var n=l;if(1!=m){F(a,"invalid signature ("+ra(m)+") at offset "+ra(n),4096);break}if(l+6>=b.length){F(a,"invalid block at offset "+ra(n),4096);break}for(var l=l+2,q=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((q&255)+(q>>8)+(t&255)+(t>>8)),r=l,B=q-=6;0<q&&l<b.length;)m+=b[l++]&255,q--;if(q||l>=b.length){F(a,"insufficient data for block at offset "+ra(n),4096);
|
||||
break}m+=b[l++]&255;if(m&255){F(a,"invalid checksum ("+v(m,2,!0)+") for block at offset "+ra(n),4096);break}if(B)for(F(a,"loading "+ra(B)+" bytes at "+ra(t)+"-"+ra(t+B),4096);B--;)gd(a.F,t++,b[r++]&255);else t&1?g=!0:null==d&&(d=t),null!=d&&F(a,"starting address: "+ra(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)gd(a.F,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.ca(),f=!1;null!=d&&ze(a.f,d,f)}return k}
|
||||
Sa(function(){for(var a=z(document,y,"ram"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Eh(d);pb(d,c)}});function Hh(a){x.call(this,"Keyboard",a,1024);D(this)}p(Hh,x);Hh.prototype.va=function(){return!1};Hh.prototype.Ba=function(a,b,c,d){this.J=a;this.f=c;this.D=d};Sa(function(){for(var a=z(document,y,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hh(d);pb(d,c)}});
|
||||
function Ih(a){x.call(this,"SerialPort",a,1048576);this.M=+a.adapter;this.S=+a.baudReceive||9600;this.Y=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.u=this.w=null;this.W=+a.tabSize;this.U=+a.charBOL;this.B=0;this.I=!0;this.P=this.N=null;this.R=this.X=-1;this.C=this.b=this.g=0;this.i=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Jh;b&&(void 0===c&&(c="Panel"),(c=nb(c,this.id))&&(b=c.H[b])&&this.va(null,a,b))}this.j=this.G=this.O=null;this.exports=
|
||||
{connect:this.ue,receiveData:this.Pc,receiveStatus:this.fh,setConnection:this.jh}}p(Ih,x);h=Ih.prototype;
|
||||
h.va=function(a,b,c){var d=this;switch(b){case Jh:return this.H[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?la.Od:la.cc:46==c?b=la.Od:a.ctrlKey&&c>=la.Kd&&c<=la.xf&&(b=c-(la.Kd-la.Fe));b&&(a.preventDefault&&a.preventDefault(),d.Pc(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==la.He&&(b=la.Ge);d.Pc(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
|
||||
a.preventDefault&&a.preventDefault();(a=a.clipboardData||window.clipboardData)&&d.Pc(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;var e=this;this.P=pd(this.f,this.M?-1:48,4,1048576);this.R=md(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,F(e,"receiveByte("+v(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),od(e.f,e.R,1E3/Math.round(e.S/10)));0<=a&&(e.C=a,e.b&128?e.C|=49152:e.b|=128,e.b&64&&nd(c,e.P))});this.N=pd(this.f,this.M?-1:52,4,1048576);this.X=md(this.f,function(){e.g|=128;e.g&64&&nd(c,e.N)});dc(b,this,Kh,this.M?64832+8*(this.M-1)-65392:0);fc(b,this.reset.bind(this));
|
||||
C(this)};h.ue=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Mb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.vb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
||||
D(this)};h.ue=function(a){if(!this.j){var b=ge(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=za(c[0]);if(d!=this.Mb)return;c=za(c[1]);if(this.j=mb(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.G=e.receiveData){this.I=a;this.O=e.receiveStatus;this.status("Connected "+this.vb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
|
||||
h.Ea=function(a,b){if(!b)if(this.ue(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){Lh(this)};h.save=function(){var a=new G(this);a.set(0,[this.C,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Lh(this,a[0])};function Lh(a,b){b||(b=[0,8192,128,a.i]);b=ia(b);a.C=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
|
||||
h.Pc=function(a){if("number"==typeof a)this.i.push(a);else if("string"==typeof a)for(var b=0,c,d=0;d<a.length;d++){c=b;b=a.charCodeAt(d);if(10==b){if(13==c)continue;b=13}this.i.push(b)}else this.i=this.i.concat(a);od(this.f,this.R,1E3/Math.round(this.S/10));return!0};h.fh=function(a){var b=this.b;this.b&=-12289;a&32&&(this.b|=8192);a&256&&(this.b|=4096);b!=this.b&&(this.b|=32768,this.b&32&&nd(this.f,this.P))};h.jh=function(a,b){return this.j?!1:(this.j=a,this.G=b,!0)};
|
||||
h.wg=function(){var a=this.b&65534;this.b&=-32769;return a};h.Nh=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.O&&b&6&&(b=0,b=this.I?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.O.call(this.j,b))};h.vg=function(){this.b&=-129;return this.C};h.Mh=function(){};h.eh=function(){return this.g};h.vi=function(a){this.g&128&&(a&64?nd(this.f,this.N):td(this.f,this.N));this.g=this.g&-70|a&69};h.dh=function(){return 0};
|
||||
|
|
@ -218,23 +218,23 @@ function Dd(a){x.call(this,"PC11",a,4096);this.N=Nh(this,a.autoMount);this.g=0;t
|
|||
h.va=function(a,b,c){var d=this,e=Ph;switch(b){case "listTapes":return this.H[b]=c,c.onchange=function(){var a=d.H.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){w("PC11 option error: "+l.message)}b=e.desc;void 0===b&&(b="");e=e.href;void 0!==e&&(b='<a href="'+e+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descTape":return this.H[b]=c,!0;case "readTape":e=Qh;case "loadTape":return e||(e=Rh),this.H[b]=c,c.onclick=
|
||||
function(){var a=d.H.listTapes;a&&Sh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length});c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;Sh(d,ta(b,!0),b,Rh,a)}return!1};return!0;case Th:return this.H[b]=c,!0}return!1};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;this.I=Uh(a);var e=this;if(a=Nh(this,ge(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.N[f]=a[f]);this.G=pd(this.f,56,4,4096);this.S=md(this.f,function(){1!=(e.b&32769)||e.b&128||(e.i<e.C.length?(e.w=e.C[e.i]&255,E(e)&&F(e,e.type+".advanceReader("+e.i+"): "+v(e.w,2,!0),!0),e.i++,Vh(e,e.i/e.C.length*100)):e.b|=32768,e.b|=128,e.b&=-2049,e.b&64&&nd(e.f,e.G))});dc(b,this,Wh);fc(b,this.reset.bind(this));Xh(this,"None",Oh,!0);this.O&&Xh(this,
|
||||
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||C(this)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
|
||||
"Local Tape",Yh);Xh(this,"Remote Tape",Zh);$h(this)||D(this)};h.Ea=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.w=0};function $h(a){a.g=0;var b=a.N.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.H.listTapes)&&b.options)for(var d=0;d<b.options.length;d++){var e=b.options[d];if(e.value==c){b=e.text;break a}}b=ta(c,!0)}c&&b?ai(a,b,c,Rh,!0):bi(a)}return!!a.g}
|
||||
function Sh(a,b,c,d,e){if(c)if(c==Yh)a.T('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Zh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=ta(c);a.status("Attempting to load "+c+' as "'+b+'"');a.B=Zh}else a.B=c;ai(a,b,c,d,!1,e)}else ci(a,!1)}
|
||||
function ai(a,b,c,d,e,f){var g=-1;if(a.u.toLowerCase()!=c.toLowerCase()||a.j!=d)g++,ci(a,!0),a.A.fb?a.T("PC11 busy"):(e&&(a.g++,E(a)&&F(a,"auto-loading tape: "+b)),di(a,b,c,d,f)?g++:a.A.fb=!0);g&&ei(a,a.M,a.u,a.j,a.Z,a.Aa,a.za)}
|
||||
function di(a,b,c,d,e){var f=c;if(e){var g=new FileReader;g.onload=function(){var e=g.result;e&&(e=new Uint8Array(e,0,e.byteLength),ei(a,b,c,d,e),a.B=Yh);a.A.fb=!1;bi(a)};g.readAsArrayBuffer(e);return!1}0>c.indexOf("/api/v1/dump")&&(e=ua(c),f="json"==e||"gz"==e?encodeURI(c):Ga()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!Ea(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ba;g?a.T('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(eb(a.vb,e,f),(e=Fa(e,f))&&ei(a,b,c,d,
|
||||
e.Z,e.Aa,e.za));a.A.fb=!1;a.g&&(a.g--,a.g||C(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
e.Z,e.Aa,e.za));a.A.fb=!1;a.g&&(a.g--,a.g||D(a));bi(a)})}function Xh(a,b,c,d){if((a=a.H.listTapes)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function bi(a){var b=a.H.listTapes;if(b&&b.options){a=a.B||a.u;for(var c=0;c<b.options.length;c++)if(b.options[c].value==a){b.selectedIndex!=c&&(b.selectedIndex=c);break}c==b.options.length&&(b.selectedIndex=0)}}function Vh(a,b){b|=0;if(b!==a.P){var c=a.H[Th];c&&(c=(c=z(c,fi))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
|
||||
function ei(a,b,c,d,e,f,g){a.M=b;a.u=c;a.j=d;a.Z=e;a.Aa=f;a.za=g;d==Qh?a.I&&Gh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.T('No valid memory address for tape "'+b+'"'):(a.i=0,a.C=e,a.b&=-32769,a.status('Loaded tape "'+b+'" ('+e.length+" bytes)"),Vh(a,0))}function ci(a,b){if(a.u||!1===b)a.M="",a.u="",b||(a.j&&a.status(a.j==Rh?"tape detached":"tape unloaded"),a.B=Oh,a.j=Ph,bi(a))}h.save=function(){return(new G(this)).data()};h.restore=function(){return!0};h.pg=function(){return this.b&65534};
|
||||
h.Gh=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&nd(this.f,this.G)):(this.b&=-129,this.b|=2048,this.w=0,od(this.f,this.S,1E3/Math.round(this.U/10))));this.b=this.b&-66|a&65};h.og=function(){this.b&=-129;this.b|=2048;return this.w};h.Fh=function(){};h.ng=function(){return this.L};h.Eh=function(a){this.L=this.L&-65|a&64};h.mg=function(){return this.R};h.Dh=function(a){this.R=a&255};
|
||||
var Oh="",Yh="?",Zh="??",Ph=0,Rh=1,Qh=2,Th="readProgress",fi="pcjs-progress-bar",gi={},Wh=(gi[65384]=[null,null,Dd.prototype.pg,Dd.prototype.Gh,"PRS"],gi[65386]=[null,null,Dd.prototype.og,Dd.prototype.Fh,"PRB"],gi[65388]=[null,null,Dd.prototype.ng,Dd.prototype.Eh,"PPS"],gi[65390]=[null,null,Dd.prototype.mg,Dd.prototype.Dh,"PPB"],gi);
|
||||
function hi(a,b,c){x.call(this,"Disk",{id:a.vb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Za=b.name;this.Pa=this.Gd="";this.Ad=b.Ad;this.aa=this.ja=this.ea=this.ua=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.aa,b.ja,b.ea,b.ua);this.g=this.w=null;C(this)}p(hi,x);h=hi.prototype;h.Ba=function(a,b,c,d){this.D=d};
|
||||
function hi(a,b,c){x.call(this,"Disk",{id:a.vb+".disk"+v(++ii,4)},8192);this.controller=a;this.J=a.J;this.D=a.D;this.u=b;this.Za=b.name;this.Pa=this.Gd="";this.Ad=b.Ad;this.aa=this.ja=this.ea=this.ua=this.mode=0;this.b=[];this.i=null;this.j=!1;ji(this,c,b.aa,b.ja,b.ea,b.ua);this.g=this.w=null;D(this)}p(hi,x);h=hi.prototype;h.Ba=function(a,b,c,d){this.D=d};
|
||||
function ji(a,b,c,d,e,f){a.mode=b;a.aa=c;a.ja=d;a.ea=e;a.ua=f;a.b=[];if("preload"!=a.mode){b=Array(a.aa);for(c=0;c<b.length;c++){d=Array(a.ja);for(e=0;e<d.length;e++){f=Array(a.ea);for(var g=1;g<=f.length;g++)f[g-1]=ki(null,c,e,g,a.ua,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
|
||||
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Za=b;a.Pa=c;a.Gd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.aa=e[0];a.ja=e[1];a.ea=e[2];a.ua=e[3]||512;c=a.ua>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.aa);for(d=0;d<a.b.length;d++)for(var r=a.b[d]=Array(a.ja),t=0;t<r.length;t++)for(var D=r[t]=Array(a.ea),A=0;A<D.length;A++){for(var B=ki(null,d,t,A+1,a.ua,0),J=B.data,vb=0;vb<c;vb++,f+=4)var Cd=J[vb]=b.getInt32(f,
|
||||
!0),e=e+Cd&-1;B.Ma=c;D[A]=B}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Za,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ad?"":e)+"&format=json"));return!!Ea(f,
|
||||
function li(a,b,c,d,e){var f=c;if(a.g)return!0;a.Za=b;a.Pa=c;a.Gd=ta(c);a.g=e;a.w=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=ka[d];if(e){a.aa=e[0];a.ja=e[1];a.ea=e[2];a.ua=e[3]||512;c=a.ua>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.aa);for(d=0;d<a.b.length;d++)for(var t=a.b[d]=Array(a.ja),r=0;r<t.length;r++)for(var B=t[r]=Array(a.ea),A=0;A<B.length;A++){for(var C=ki(null,d,r,A+1,a.ua,0),J=C.data,vb=0;vb<c;vb++,f+=4)var Cd=J[vb]=b.getInt32(f,
|
||||
!0),e=e+Cd&-1;C.Ma=c;B[A]=C}a.i=e;c=a}else a.T("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Za,a.Pa),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=ua(c),"json"==b||"gz"==b?f=encodeURI(c):(d="path",e="&mbhd=10",!c.indexOf("http:")||!c.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(b)?(d="disk",e="&mbhd=0"):va(c,"/")&&(d="dir"),f=Ga()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Ad?"":e)+"&format=json"));return!!Ea(f,
|
||||
null,!0,function(b,c,d){mi(a,b,c,d)})}
|
||||
function mi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ba;a.j=!1;if(d)a.controller.T('Unable to load disk "'+a.Za+'" (error '+d+": "+b+")",f);else{eb(a.controller.vb,b,c);try{if(0<ta(a.Gd,!0).toLowerCase().indexOf("-readonly"))a.j=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.j=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.Za]:k=0>c.indexOf("0x")&&'["'!=c.substr(0,2)?JSON.parse(c.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+
|
||||
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.aa=k.length;a.ja=k[0].length;a.ea=k[0][0].length;var l=k[0][0][0];a.ua=l&&l.length||512;for(d=c=0;d<a.aa;d++)for(f=0;f<a.ja;f++)for(g=0;g<a.ea;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var r=l.bytes;if(void 0!==r&&r.length){for(var t=m<<2,D=r.length;D<t;D++)r[D]=n;ni(l,r)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(t=
|
||||
0;t<q.length;t++)c=c+q[t]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Za)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Za,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.zk=b;a.Ak=c;a.Xa=a.Ma=0;a.gb=!1;return a}
|
||||
c+")");if(k.length)if(1==k.length)w(k[0]);else{a.aa=k.length;a.ja=k[0].length;a.ea=k[0][0].length;var l=k[0][0][0];a.ua=l&&l.length||512;for(d=c=0;d<a.aa;d++)for(f=0;f<a.ja;f++)for(g=0;g<a.ea;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,n=l.pattern;void 0===n&&(n=l.pattern=0);var q=l.data;if(void 0===q){var t=l.bytes;if(void 0!==t&&t.length){for(var r=m<<2,B=t.length;B<r;B++)t[B]=n;ni(l,t)}else q=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=q;delete l.bytes}ki(l,d,f);for(r=
|
||||
0;r<q.length;r++)c=c+q[r]&-1}a.b=k;a.i=c;e=a}else w("Empty disk image: "+a.Za)}catch(A){w("Disk image error ("+b+"): "+A.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Za,a.Pa),a.g=null)}function ki(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.zk=b;a.Ak=c;a.Xa=a.Ma=0;a.gb=!1;return a}
|
||||
h.seek=function(a,b,c,d,e){d=null;var f=this.u,g=this.b[a];if(g){var k=g[b];if(!k&&f.zf&&b<f.ja)for(k=g[b]=Array(f.Af),g=0;g<k.length;g++)k[g]=ki(null,a,b,g+1,f.ve,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.zf&&9==f.je&&(d=k[g]=ki(null,a,b,f.je,f.ve,0))}}e&&e(d,!1);return d};function ni(a,b){for(var c=0,d=a.length>>2,e=Array(d),f=0;f<d;f++)e[f]=b[c]|b[c+1]<<8|b[c+2]<<16|b[c+3]<<24,c+=4;a.data=e}
|
||||
h.read=function(a,b){var c=-1;if(a&&b<a.length)var c=a.data,d=b>>2,c=(d<c.length?c[d]:a.pattern)>>((b&3)<<3)&255;return c};h.write=function(a,b,c){if(this.j)return!1;if(b<a.length){if(c!=this.read(a,b,!0)){var d=a.data,e=a.pattern,f=b>>2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.Ma?f<a.Xa?(a.Ma+=a.Xa-f,a.Xa=f):f>=a.Xa+a.Ma&&(a.Ma+=f-(a.Xa+a.Ma)+1):(a.Xa=f,a.Ma=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
|
||||
function oi(a,b){var c=a.ja*a.ea,d=b/c|0;return d<a.aa?(b%=c,a.seek(d,b/a.ea|0,b%a.ea+1)):null}function pi(a,b,c){for(var d=1,e=0,f=0;d--;){var g=a.read(b,c++);if(0>g)break;e|=g<<f;f+=8}return e}
|
||||
|
|
@ -247,24 +247,24 @@ function si(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){w(a.typ
|
|||
h.va=function(a,b,c){var d=this;switch(b){case "listDisks":return this.H[b]=c,c.onchange=function(){ti(d)},!0;case "descDisk":case "listDrives":return this.H[b]=c,c.onchange=function(){var a=ma(c.value,10);null!=a&&ui(d,a)},!0;case "loadDisk":return this.H[b]=c,c.onclick=function(){d.Cd()},!0;case "bootDisk":return this.H[b]=c,c.onclick=function(){d.le()},!0;case "saveDisk":if(!this.O){c.parentNode.removeChild(c);break}this.H[b]=c;c.onclick=function(){var a=d.H.listDrives;if(a&&a.options&&d.g)if(a=
|
||||
d.g[ma(a.value,10)||0])if(a=a.da){var b;b="";for(var c=0,k;k=oi(a,c++);)for(var l=0,m=k.length;l<m;l++)b+=String.fromCharCode(pi(a,k,l));b=btoa(b);a=a.Gd.replace(".json",".img");c=null;b="data:application/octet-stream;base64,"+b;a&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=b,c.download=a,document.body.appendChild(c),c.click(),document.body.removeChild(c),a="Check your Downloads folder for "+a+"."):(window.open(b),a="Check your browser for a new window/tab containing the requested data"+
|
||||
(a?" ("+a+")":"")+".");w(a)}else d.T("No disk loaded in drive.");else d.T("No disk drive selected.")};return!0;case "mountDisk":if(this.O)return this.H[b]=c,c.addEventListener("change",function(){var a=c.children[0];a.children[1].disabled=!a.children[0].files.length}),c.onsubmit=function(a){if(a=a.currentTarget[1].files[0]){var b=a.name;d.Cd(ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Sa=pd(this.f,this.R.vd,this.R.rd,this.ha);dc(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||C(this)};
|
||||
h.Ba=function(a,b,c,d){this.J=a;this.F=b;this.f=c;this.D=d;if(a=si(this,ge(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.N[e]=a[e]);this.reset();this.Sa=pd(this.f,this.R.vd,this.R.rd,this.ha);dc(b,this,this.U);fc(b,this.reset.bind(this));vi(this,"None",Pi,!0);this.O&&vi(this,"Local Disk",Ri);vi(this,"Remote Disk",Si);Ti(this)||D(this)};
|
||||
h.Ea=function(a,b){if(!b){if(!a){if(this.reset(),this.J.M){this.B=[];for(a=0;a<this.g.length;a++)Ui(this,a,!0);Ti(this,!0)}}else if(!this.restore(a))return!1;if(a=this.H.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.P;b++){var c=document.createElement("option");c.value=b;c.text=this.g[b].Rc||"---";a.appendChild(c)}0<this.P&&(a.value="0",ui(this,0))}}return!0};h.Da=function(a){return a?this.save():!0};h.reset=function(){this.Cb();Vi(this)};
|
||||
h.save=function(){var a=new G(this);a.set(0,this.Sc());a.set(1,Wi(this));a.set(2,Xi(this));return a.data()};h.restore=function(a){var b=!0;this.Cb(a[0])||(b=!1);var c=a[1];c&&(this.B=c);Vi(this,a[2])||(b=!1);return b};h.Cb=function(){return!0};h.Sc=function(){return[]};
|
||||
function Vi(a,b){for(var c=0;c<a.g.length;c++){var d=a.g[c];void 0===d&&(d=a.g[c]={});var e=a,f=d,d=c,g=a.S,k=b&&b[c],l=0;f.Tb=d;f.name=e.Mb;f.Nc=f.Pb=!1;f.ic=null;f.Ad=!0;f.Rc=g[l++]+d;f.aa=g[l++];f.ja=g[l++];f.ea=g[l++];f.ua=g[l++];f.If=g[l++];f.Jf=g[l++];f.Kf=g[l++];f.Bf=g[l++];f.status=g[l++];f.tk=0;f.sk=0;f.je=1;f.Af=f.ea;f.ve=f.ua;f.Bk=0;f.Ik=null;f.da||(f.Pa="");k&&(l=k[1],g=k[2],k[0]?(f=l,k=g,g=e.g[d],Ui(e,d,!0),g.Pb=!0,d=new hi(e,g,"preload"),e.oe(g,d,f,k,!0)):Yi(e,d,l,g,!0)?f.da&&g&&Zi(e,
|
||||
l,g,f.da):C(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Pb,d.Za,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.da&&$i(a,c.Pa,c.da)}return a.B}
|
||||
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&C(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
|
||||
l,g,f.da):D(e,!1))}return!0}function Xi(a){for(var b=[],c=0;c<a.g.length;c++){var d=a.g[c];b.push([d.Pb,d.Za,d.Pa])}return b}function Wi(a){for(var b=0;b<a.g.length;b++){var c=a.g[b];c.da&&$i(a,c.Pa,c.da)}return a.B}
|
||||
function Ti(a,b){b||(a.M=0);for(var c in a.N){var d=a.N[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.H.listDisks)&&f.options)for(var g=0;g<f.options.length;g++){var k=f.options[g];if(k.value==e){f=k.text;break a}}f=ta(e,!0)}if(e&&f&&(g=-1,c&&(g=c.charCodeAt(c.length-1)-48,0>g||9<g)&&(g=-1),0<=g&&g<a.g.length)){!Yi(a,g,f,e,!0)&&b&&D(a,!1);continue}a.T("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.M}
|
||||
h.Cd=function(a,b,c){if(!a&&!b){var d=this.H.listDisks;d&&d.options&&(a=d.options[d.selectedIndex].text,b=d.value)}d=(d=this.H.listDrives)&&ma(d.value,10);if(void 0===d||0>d||d>=this.g.length)return this.T("Unable to load the selected drive"),!1;if(!b)return Ui(this,d),!0;if(b==Ri)return this.T('Use "Choose File" and "Mount" to select and load a local disk.'),!1;if(b==Si){b=window.prompt("Enter the URL of a remote disk image.","")||"";if(!b)return!1;a=ta(b);this.status("Attempting to load "+b+' as "'+
|
||||
a+'"')}Yi(this,d,a,b,!1,c);return!0};h.le=function(){var a,b=this.H.listDrives,b=b&&ma(b.value,10);if(null==b||0>b||b>=this.g.length||!(a=this.g[b]))return this.T("Unable to boot the selected drive"),!1;if(!a.da)return this.T("Load a disk into the drive first"),!1;ze(this.f,0,!0,b);return(a=this.Ub(a,a.If,a.Jf,a.Kf,a.Bf,0,2))?(this.T("Unable to read the boot sector ("+a+")"),!1):!0};
|
||||
function Yi(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Pa.toLowerCase()!=d.toLowerCase()&&(g++,Ui(a,b,!0),k.Nc?a.T(a.type+" busy"):(k.Nc=!0,e&&(k.zd=!0,a.M++,E(a)&&F(a,"auto-loading disk: "+c)),k.Pb=!!f,li(new hi(a,k,"preload"),c,d,f,a.oe)&&g++));return g}
|
||||
h.oe=function(a,b,c,d,e){a.Nc=!1;b&&(b.aa>a.aa||b.ja>a.ja)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Tb].Rc||"---")),b=null);b?(a.da=b,a.Za=c,a.Pa=d,this.we(a.Tb),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Tb].Rc||"---"),a.zd||e),this.J&&qe(this.J)):a.Pb=!1;a.zd&&(a.zd=!1,--this.M||C(this));ui(this,a.Tb);a.ic&&(a.ic(),a.ic=null)};
|
||||
h.oe=function(a,b,c,d,e){a.Nc=!1;b&&(b.aa>a.aa||b.ja>a.ja)&&(this.T('Disk "'+c+'" too large for drive '+(this.g[a.Tb].Rc||"---")),b=null);b?(a.da=b,a.Za=c,a.Pa=d,this.we(a.Tb),Zi(this,c,d,b),this.T('Loaded disk "'+c+'" in drive '+(this.g[a.Tb].Rc||"---"),a.zd||e),this.J&&qe(this.J)):a.Pb=!1;a.zd&&(a.zd=!1,--this.M||D(this));ui(this,a.Tb);a.ic&&(a.ic(),a.ic=null)};
|
||||
function vi(a,b,c,d){if((a=a.H.listDisks)&&a.options){for(var e=0;e<a.options.length;e++)if(a.options[e].value==c)return;e=document.createElement("option");e.text=b;e.value=c;d&&a.childNodes[0]?a.insertBefore(e,a.childNodes[0]):a.appendChild(e)}}
|
||||
function ui(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.H.listDisks;a=a.H.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(ma(a.options[c].value,10)==e.Tb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=ma(a.value,10);e=e.Pb?Ri:e.Pa;if(!isNaN(c)&&c==b){for(c=0;c<f.options.length;c++)if(f.options[c].value==e){f.selectedIndex!=c&&(f.selectedIndex=c);d=!0;break}c==f.options.length&&(f.selectedIndex=0)}}}return d}
|
||||
h.ih=function(a){var b=this.H.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].textContent==a){var e=ma(b.options[d].value,10);if(0<=e)return ui(this,e,!0)}return!1};
|
||||
function ti(a){var b=a.H.listDisks,c=a.H.descDisk,d=b.options&&b.options[b.selectedIndex];if(c&&d){b={};if(d=d.getAttribute("data-value"))try{b=eval("("+d+")")}catch(e){w(a.type+" option error: "+e.message)}a=b.desc;void 0===a&&(a="");b=b.href;void 0!==b&&(a='<a href="'+b+'" target="_blank">'+a+"</a>");c.innerHTML=a}}h.mh=function(a){for(var b=0;b<this.g.length;b++){var c=this.g[b];if(c&&c.Nc)return c.ic||(c.ic=a),!1}return!0};
|
||||
function Ui(a,b,c){var d=a.g[b];if(d.da||!1===c)$i(a,d.Pa,d.da),d.Za="",d.Pa="",d.da=null,d.Pb=!1,c||(a.T("Drive "+(a.g[b].Rc||"---")+" unloaded",c),ui(a,b))}function Zi(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function $i(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}h.we=function(){};h.Ub=function(){return-1};h.Vc=function(){return-1};var Pi="",Ri="?",Si="??";
|
||||
function N(a){ri.call(this,"RK11",a,65536,Nb,Nb.Hc,aj);this.G=this.i=this.b=this.w=this.u=this.j=this.C=0}p(N,ri);h=N.prototype;h.Cb=function(a){a||(a=[bj.Hc|bj.de|bj.$d,0,R.ab,0,0,0,0]);a=ia(a);this.G=a.next().value;this.i=a.next().value;this.b=a.next().value;this.w=a.next().value;this.u=a.next().value;this.j=a.next().value;this.C=a.next().value;return!0};h.Sc=function(){return[this.G,this.i,this.b,this.w,this.u,this.j,this.C]};
|
||||
h.Ub=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1);if(!n){m=S.ce;break}q=0;++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b))}var r,t;if(0>(r=a.read(n,q++))||0>(t=a.read(n,q++))){m=S.Gc;break}if(!k&&(Ac(this.F,Oe(this.f,f),r|t<<8),ld(this.F))){m=S.ec;break}q>=a.ua&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){var r=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.ec;break}if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.ce;break}q=0;++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b))}if(k){var t,D;if(0>(t=a.read(n,q++))||0>(D=a.read(n,q++))){m=S.Gc;break}if(r!=(t|D<<8)){m=S.ge;break}}else if(!a.write(n,q++,r&255)||!a.write(n,q++,r>>8)){m=S.Gc;break}q>=a.ua&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Ub=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1);if(!n){m=S.ce;break}q=0;++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b))}var t,r;if(0>(t=a.read(n,q++))||0>(r=a.read(n,q++))){m=S.Gc;break}if(!k&&(Ac(this.F,Oe(this.f,f),t|r<<8),ld(this.F))){m=S.ec;break}q>=a.ua&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,q;a||(m=S.Ud,e=0);for(;e;){var t=Cc(this.F,Oe(this.f,f));if(ld(this.F)){m=S.ec;break}if(!n){if(b>=a.aa){m=S.Fc;break}n=a.seek(b,c,d+1,!0);if(!n){m=S.ce;break}q=0;++d>=a.ea&&(d=0,++c>=a.ja&&(c=0,++b))}if(k){var r,B;if(0>(r=a.read(n,q++))||0>(B=a.read(n,q++))){m=S.Gc;break}if(t!=(r|B<<8)){m=S.ge;break}}else if(!a.write(n,q++,t&255)||!a.write(n,q++,t>>8)){m=S.Gc;break}q>=a.ua&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
|
||||
h.Ze=function(a,b,c,d,e,f){this.u=f&65535;this.b=this.b&~R.Jb|f>>16-R.ma.Jb&R.Jb;this.w=65536-e&65535;this.j=this.j&~cj.sd|d&cj.sd;this.i|=a;dj(this);return!0};function dj(a){a.b&=~R.ib;a.i&&(a.i|=S.Je,a.b|=R.ib,a.i&S.ed&&(a.b|=R.ed),E(a)&&F(a,a.type+": ERROR: "+u(a.i)))}h.Bg=function(){return this.G};h.Sh=function(){};h.Cg=function(){return this.i};h.Th=function(){};h.yg=function(){return this.b&R.fc};
|
||||
h.Ph=function(a){this.b=this.b&~R.Ua|a&R.Ua;if(this.b&R.dc){a=!0;var b,c,d="",e=(this.j&cj.sb)>>cj.ma.sb,f=this.g[e],g,k,l,m,n,q;this.b&=~(R.ab|R.td);this.i&=~S.qf;switch(c=this.b&R.wa){case ej.Ee:E(this)&&F(this,this.type+": CRESET("+e+")",!0);this.i=this.j=0;this.b=R.ab;break;case ej.Ue:d="RCHK";case ej.tb:d||(d="READ"),b=this.Ub;case ej.wd:d||(d="WCHK");case ej.hc:d||(d="WRITE");b||(b=this.Vc);g=(this.j&cj.bc)>>cj.ma.bc;k=(this.j&cj.hd)>>cj.ma.hd;l=this.j&cj.sd;m=65536-this.w&65535;n=(this.b&R.Jb)<<
|
||||
16-R.ma.Jb|this.u;q=this.b&R.Qe?0:2;E(this)&&F(this,this.type+": "+d+"("+g+":"+k+":"+l+") "+u(n)+"--"+u(n+(m<<1)),!0,!0);if(g>=f.aa){this.i|=S.Fc;break}if(l>=f.ea){this.i|=S.Gc;break}a=b.call(this,f,g,k,l,m,n,q,c>=ej.wd,this.Ze.bind(this));break;case ej.Lc:g=(this.j&cj.bc)>>cj.ma.bc;E(this)&&F(this,this.type+": SEEK("+g+")",!0);g<f.aa?this.b|=R.td:this.i|=S.Fc;break;case ej.Ke:E(this)&&F(this,this.type+": DRESET("+e+")");this.i=this.j=0;this.b=R.ab|R.td;break;default:E(this)&&F(this,this.type+": UNSUPPORTED("+
|
||||
|
|
@ -280,7 +280,7 @@ h.Yh=function(a){this.i=a};h.Ig=function(){return this.w};h.Zh=function(a){this.
|
|||
var U=Ob.gf,mj=Ob.ef,jj=Ob.hf,lj=Ob.Jc,ij=Ob.ff,hj=Ob.Rd,kj=Ob.wa,nj={},gj=(nj[63744]=[null,null,Ed.prototype.Gg,Ed.prototype.Xh,"RLCS"],nj[63746]=[null,null,Ed.prototype.Eg,Ed.prototype.Vh,"RLBA"],nj[63748]=[null,null,Ed.prototype.Hg,Ed.prototype.Yh,"RLDA"],nj[63750]=[null,null,Ed.prototype.Ig,Ed.prototype.Zh,"RLMP"],nj[63752]=[null,null,Ed.prototype.Fg,Ed.prototype.Wh,"RLBE"],nj);
|
||||
function Fd(a){ri.call(this,"RX11",a,262144,Pb,Pb.jf,oj);this.I=this.G=this.i=this.L=this.b=this.C=0;this.j=V.Kb;this.u=0;this.w=Array(128).fill(0)}p(Fd,ri);h=Fd.prototype;h.Cb=function(a){a?(a=ia(a),this.b=a.next().value,this.C=a.next().value,this.I=a.next().value,this.G=a.next().value,this.i=a.next().value,this.L=a.next().value,this.j=a.next().value,this.u=a.next().value,this.w=a.next().value):(this.C=this.b=0,this.G=this.I=1,this.L=this.i=0,this.j=V.tb,this.u=0,td(this.f,this.Sa),pj(this));return!0};
|
||||
h.Sc=function(){return[this.b,this.C,this.I,this.G,this.i,this.L,this.j,this.u,this.w]};h.we=function(a){a||this.Cb()};function qj(a,b){b&&(a.L=b,a.C=a.i,a.b|=W.ib);a.j=V.Kb;a.b|=W.DONE;a.b&W.Ib&&nd(a.f,a.Sa)}
|
||||
h.Ub=function(a,b,c,d,e,f,g,k,l){k=0;var m=a.da,n=null,q;E(this)&&F(this,this.type+".readData("+b+":"+c+":"+d+") "+u(f)+"--"+u(f+(e<<1)),!0,!0);m||(k=a.Tb?rj.gd:rj.fd,e=0);for(;e;){if(!n){if(b>=m.aa){k=rj.Se;break}n=m.seek(b,c,d+1);if(!n){k=rj.qd;break}q=0;++d>=m.ea&&(d=0,++c>=m.ja&&(c=0,++b))}var r;if(0>(a=m.read(n,q++))||0>(r=m.read(n,q++))){k=rj.pd;break}Ac(this.F,Oe(this.f,f),a|r<<8);q>=m.ua&&(n=null);f+=g;e--}return l?l(k,b,c,d,e,f):k};
|
||||
h.Ub=function(a,b,c,d,e,f,g,k,l){k=0;var m=a.da,n=null,q;E(this)&&F(this,this.type+".readData("+b+":"+c+":"+d+") "+u(f)+"--"+u(f+(e<<1)),!0,!0);m||(k=a.Tb?rj.gd:rj.fd,e=0);for(;e;){if(!n){if(b>=m.aa){k=rj.Se;break}n=m.seek(b,c,d+1);if(!n){k=rj.qd;break}q=0;++d>=m.ea&&(d=0,++c>=m.ja&&(c=0,++b))}var t;if(0>(a=m.read(n,q++))||0>(t=m.read(n,q++))){k=rj.pd;break}Ac(this.F,Oe(this.f,f),a|t<<8);q>=m.ua&&(n=null);f+=g;e--}return l?l(k,b,c,d,e,f):k};
|
||||
function pj(a){var b=0,c=a.b&W.ud?1:0,d=a.g[c],d=d&&d.da,e=a.I&sj.cb,f=a.G&tj.cb;a.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(d)if(a.i|=uj.Ga,E(a)&&F(a,a.type+".readSector("+e+":0:"+f+")",!0,!0),c=d.seek(e,0,f,!0)){e=0;for(f=a.w.length;e<f;){var g=d.read(c,e);if(0>g){b=rj.pd;break}a.w[e++]=g}c.Ef&&(a.i|=uj.cc)}else b=rj.qd;else b=c?rj.gd:rj.fd;qj(a,b)}
|
||||
h.Kg=function(a,b){a=this.b;if(!b)switch(a&=W.fc,this.j){case V.bd:case V.EMPTY:this.u<this.w.length&&(this.b|=W.eb);break;case V.tb:case V.hc:case V.Mc:2>this.u&&(this.b|=W.eb)}return a};
|
||||
h.ai=function(a){this.b=this.b&~W.Ua|a&W.Ua;if(this.b&W.INIT)this.Cb();else if(this.b&W.dc&&this.j==V.Kb)switch(this.j=this.b&W.wa,this.b&=~(W.dc|W.eb|W.DONE|W.ib),td(this.f,this.Sa),E(this)&&F(this,this.type+".processCommand("+vj[this.j>>1]+")",!0,!0),this.j){case V.bd:case V.EMPTY:case V.tb:case V.hc:case V.Mc:this.u=0;break;case V.Xe:a=this.g[this.b&W.ud?1:0];this.i&=~uj.Ga;a&&a.da&&(this.i|=uj.Ga);this.C=this.i;qj(this);break;case V.We:this.C=this.L,qj(this)}else this.b&W.Ib?this.b&W.DONE&&nd(this.f,
|
||||
|
|
@ -288,19 +288,19 @@ this.Sa):td(this.f,this.Sa)};h.Lg=function(a,b){if(!b)switch(this.j){case V.EMPT
|
|||
h.bi=function(a){switch(this.j){case V.bd:this.b&W.eb&&(this.b&=~W.eb,this.w[this.u]=a&255,E(this)&&F(this,this.type+".writeByte("+this.u+","+v(a,2,!0)+")",!0,!0),++this.u>=this.w.length&&qj(this));break;case V.tb:case V.hc:case V.Mc:if(this.b&W.eb)switch(this.b&=~W.eb,this.u++){case 0:this.G=a;break;case 1:if(this.I=a,this.j==V.tb)pj(this);else{var b=this.j==V.Mc,c=0,d=this.b&W.ud?1:0,e=this.g[d],e=e&&e.da,f=this.I&sj.cb,g=this.G&tj.cb;this.i&=~(uj.Nd|uj.Xd|uj.cc|uj.Ga);if(e)if(this.i|=uj.Ga,E(this)&&
|
||||
F(this,this.type+".writeSector("+f+":0:"+g+")",!0,!0),d=e.seek(f,0,g,!0))for(b&&(d.Ef=!0),b=0,f=this.w.length;b<f;){if(!e.write(d,b,this.w[b]&255)){c=rj.pd;break}b++}else c=rj.qd;else c=d?rj.gd:rj.fd;qj(this,c)}}}this.C=a};var W=Pb.kf,sj=Pb.nf,tj=Pb.mf,uj=Pb.lf,V=Pb.wa,rj=Pb.ERROR,vj="FILL EMPTY WRITE READ UNUSED RDSTAT WRDEL RDERR".split(" "),wj={},oj=(wj[65144]=[null,null,Fd.prototype.Kg,Fd.prototype.ai,"RXCS"],wj[65146]=[null,null,Fd.prototype.Lg,Fd.prototype.bi,"RXDB"],wj);
|
||||
function xj(a){x.call(this,"Debugger",a);this.Ca=+a.base||16;this.ya=null;this.ka=["{","}"];this.ia=["[","]"];this.w=0;this.O=!1;this.u=-1;this.j=[];this.S={}}p(xj,x);xj.prototype.re=function(){return-1};xj.prototype.Bd=function(){};
|
||||
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}function zj(a){var b,c=a;b=32;if(32>=b)c=a|0;else if(b=Math.pow(2,b-1),a<-b||a>=b)c=a%b;a!=c&&(a=c);return a}
|
||||
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=f/e;break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=e?1:0;break;case "&":d=
|
||||
f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f^e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(zj(d))}return!0}
|
||||
function Bj(a,b,c){var d;a.ya=null;b&&(b=Cj(a,b));if(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=za(n);if(!n){f=!0;break}var r=Dj(a,n,null,c);if(void 0===r)if(null==a.ya&&c)a.ya=n,r=0;else{f=!0;c=!c;break}k.push(zj(r));if(e==m.length)break;n=m[e++];r=n.length;l.length&&Ej[n]<Ej[l[l.length-1]]&&Aj(k,l,1);l.push(n);b=b.substr(q+r)}Aj(k,l)&&1==k.length||(f=!0);f?!1===c&&a.v("error parsing '"+g+"' at character "+
|
||||
(g.length-b.length)):(d=k.pop(),!1===c&&Fj(a,null,d))}return d}
|
||||
function yj(a,b,c,d){if(c)if(b){0>a.u&&a.j.length&&(a.u=0);if(0>a.u||b!=a.j[a.u])a.j.splice(0,0,b),a.u=0;a.u--}else a.O?b="end":b=a.j[a.u+1];a=[];if(b){b=b.replace(/""/g,"'");c=0;var e=null;d=d||";";for(var f=0;f<=b.length;f++){var g=b.charAt(f);if('"'==g||"'"==g)e?g==e&&(e=null):e=g;else if(g==d&&!e||!g)a.push(za(b.substring(c,f))),c=f+1}}return a}function zj(a){var b,c=a;b=b||32;32>=b?c=a|0:(b=Math.pow(2,b-1),a<-b?c=a%b:a>=2*b&&(c=a%(2*b)));a!=c&&(a=c);return a}
|
||||
function Aj(a,b,c){for(c=void 0===c?-1:c;c--&&b.length;){var d=b.pop();if(2>a.length)return!1;var e=a.pop(),f=a.pop();switch(d){case "*":d=f*e;break;case "/":if(!e)return!1;d=Math.trunc(f/e);break;case "%":if(!e)return!1;d=f%e;break;case "+":d=f+e;break;case "-":case "--":d=f-e;break;case "<<":d=f<<e;break;case ">>":d=f>>e;break;case ">>>":d=f>>>e;break;case "<":d=f<e?1:0;break;case "<=":d=f<=e?1:0;break;case ">":d=f>e?1:0;break;case ">=":d=f>=e?1:0;break;case "==":d=f==e?1:0;break;case "!=":d=f!=
|
||||
e?1:0;break;case "&":d=f&e;break;case "!":case "|":d=f|e;break;case "^^":d=f|e;break;case "&&":d=f&&e?1:0;break;case "||":d=f||e?1:0;break;default:return!1}a.push(zj(d))}return!0}
|
||||
function Bj(a,b,c){var d;a.ya=null;b&&(b=Cj(a,b));if(b){for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||\^\^|&|!=|!|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],q=n.length,t=null,r=0;e<m.length&&(t=m[e++],r=t.length);n=za(n);if(!n){if("-"!=t){f=!0;break}t="--";n="0"}var B=Dj(a,n,null,c);if(void 0===B)if(null==a.ya&&c)a.ya=n,B=0;else{f=!0;c=!c;break}k.push(zj(B));if(!t)break;l.length&&Ej[t]<Ej[l[l.length-1]]&&Aj(k,l,1);l.push(t);b=b.substr(q+r)}Aj(k,l)&&1==k.length||(f=!0);
|
||||
f?!1===c&&a.v("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),!1===c&&Fj(a,null,d))}return d}
|
||||
function Cj(a,b){var c,d=a.ka[0],e=a.ka[1];c="("==d||"{"==d||"["==d?"\\":"";for(var f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);){var g=Bj(a,c[1]);if(void 0===g)return;b=b.replace(d+c[1]+e,null!=g?K(a,g):"undefined")}if(a.ia.length)for(d=a.ia[0],e=a.ia[1],c="("==d||"{"==d||"["==d?"\\":"",f="["==d?"\\":"",f=new RegExp(c+d+"([^"+f+d+f+e+"]+)"+c+e);c=b.match(f);)b=b.replace("["+c[1]+"]","unimplemented");for(a=b;b=a.match(/\$([a-z]+)/i);){d=null;switch(b[1].toLowerCase()){case "ops":d=
|
||||
0}if(null==d)break;a=a.replace(b[0],d.toString())}return a}function Dj(a,b,c,d){var e;null!=b?(e=a.re(b),0<=e?e=a.Bd(e):(e=a.S[b],null==e&&(e=ma(b,a.Ca))),null!=e||d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return e}
|
||||
function Fj(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=pa(d&255,8)+g,d>>=8;d=v(c,0,!0)+" "+c+". "+u(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.v((null!=b?b+": ":"")+d);return e}function Gj(a,b){if(b)return Fj(a,b,a.S[b]);var c=0;for(b in a.S)Fj(a,b,a.S[b]),c++;return 0<c}
|
||||
function K(a,b,c){c=void 0===c?0:c;switch(a.Ca){case 8:a=u(b,0<c?(c+2)/3|0:0);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ej={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
|
||||
function K(a,b,c){c=void 0===c?0:c;switch(a.Ca){case 8:a=u(b,0<c?(c+2)/3|0:0);break;case 10:a=qa(b,0<c?Math.ceil(.3*c):0);break;default:a=v(b,0<c?c+3>>2:0)}0>c?c=a.replace(/^0+([0-9A-F]+)$/i,"$1"):c=a;return c}var Ej={"||":0,"&&":1,"!":2,"|":2,"^^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9,"--":10};
|
||||
function Hj(a){xj.call(this,a);this.Ia=!1;this.ka=["(",")"];this.ia=[];this.G=X();this.Ha=X();this.N=X();this.B=[];this.b=this.L=this.C=[];Ij(this);this.P=this.Y=0;this.i=[];this.sa=void 0;Jj(this);this.D=this;this.la={};this.ha=this.ke=0;this.R=null;this.M=[];Kj(this,a.messages);this.xa=a.commands;this.La=Lj;this.W=[];this.I=0;this.Qa=this.ta=null;this.w=this.Ka=this.Ja=this.X=this.pa=0;this.g=this.U=null;var b=this;window?void 0===window[y]&&(window[y]=function(a){return le(b,a)}):void 0===global[y]&&
|
||||
(global[y]=function(a){return le(b,a)})}p(Hj,xj);function Mj(a){a=a&&a.K;null==a&&(a=-1);return a}function X(a,b,c){return{K:void 0===a?null:a,Na:void 0===b?!1:b,Wa:!1,Ca:c}}h=Hj.prototype;h.Hd=function(a,b){a.K=b;a.Wa=!1;a.Ca=void 0;return a};function Nj(a){return[a.K,a.Na,a.Ca,a.Wa,a.Qc]}function Oj(a,b){var c=X(b[0],b[1],b[2]);c.Wa=b[3];b[4]&&(c.he=yj(a,c.Qc=b[4]));return c}
|
||||
h.Ba=function(a,b,c,d){this.F=b;this.J=a;this.f=c;this.g=a.i;(a=ge(a,"messages"))&&Kj(this,a);1140>this.f.ka&&(this.W=this.W.concat(Pj));1145>this.f.ka&&(this.W=this.W.concat(Qj));rd(this,16,function(a){a:{var b=d.F.b,c=a[0],e=a=0,l=b.length;if(c){a=Mj(Rj(d,c));if(-1===a){d.v("invalid address: "+c);break a}e=a>>>d.F.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("..."):
|
||||
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Xb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});C(this)};
|
||||
(c=n.type,m=dd[c],n&&d.v(v(n.id,8)+" %"+v(e<<d.F.g,8)+" %"+v(n.K,8)+" "+ra(n.Xb)+" "+ra(n.size)+" "+m),c!=Hd&&(c=-1),m=0);a+=d.F.j;e++}}});D(this)};
|
||||
h.va=function(a,b,c){var d=this;switch(b){case "debugInput":return this.U=this.H[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",le(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.u<d.j.length-1&&(b=d.j[++d.u])):40==a.keyCode&&(0<d.u?b=d.j[--d.u]:(b="",d.u=-1)),null!=b){var e=b.length;c.value=b;c.setSelectionRange(e,e)}null!=b&&a.preventDefault&&a.preventDefault()},!0;case "debugEnter":return this.H[b]=c,Qa(c,function(){if(d.U){var a=d.U.value;d.U.value=
|
||||
"";le(d,a,!0);return!0}return!1}),!0;case "step":return this.H[b]=c,Qa(c,function(a){var b=!1;Eb(d,!0)||(Fb(d,!0),b=vc(d,a?1:0,null),Fb(d,!1));return b}),!0}return!1};function ke(a){if(a.U){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.U.focus();window&&window.scrollTo(b,c)}}h.Pd=function(a,b){var c=255,d=Mj(a);-1!==d&&(a.Na||65535<d?(c=this.F,d=Oe(this.f,d),c.C=!1,c.na++,d=fd(c,d).J(d&c.i,d),c.na--):(c=this.f,c.pa++,d=c.F.Ld(Bc(c,d,3)),c.pa--),c=d,b&&Sj(a,b));return c};
|
||||
h.Ta=function(a,b){var c=65535,d=Mj(a);-1!==d&&(c=a.Na||65535<d?Cc(this.F,Oe(this.f,d)):Dc(this.f,d),b&&Sj(a,b));return c};h.Qd=function(a,b,c){var d=Mj(a);if(-1!==d){if(a.Na||65535<d)gd(this.F,Oe(this.f,d),b);else{var e=this.f;e.pa++;e.F.Md(Bc(e,d,5),b);e.pa--}c&&Sj(a,c);H(this.J,-1)}};h.Le=function(a,b,c){var d=Mj(a);if(-1!==d){if(a.Na||65535<d)Ac(this.F,Oe(this.f,d),b);else{var e=this.f;e.pa++;e.F.ac(Bc(e,d,4),b);e.pa--}c&&Sj(a,c);H(this.J,-1)}};
|
||||
|
|
@ -321,10 +321,10 @@ function Ij(a){var b,c,d;a.b=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=M
|
|||
h.Bb=function(a,b,c){var d=!0;c||rk(this,a,b,!1,!0);if(a!=this.b){var e=Mj(b);if(-1===e)this.v("invalid address: "+Uj(this,b)),d=!1;else{var f=a==this.C;65535<e&&(b.Na=!0);if(b.Na){var g=this.F;g.b[e>>>g.g].Bb(e&g.i,f)}else e=this.f,(f?e.tc++:e.sc++)||ye(e)}}d&&(a.push(b),c?b.Wa=!0:(sk(this,a,a.length-1,"set"),Jj(this)));return d};
|
||||
function rk(a,b,c,d,e){var f=!1;c=Mj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==Mj(k)&&(!d||k.Wa)){f=!0;k.Wa||e||sk(a,b,g,"cleared");b.splice(g,1);b!=a.b&&(b=b==a.C,k.Na?(d=a.F,$d(d.b[c>>>d.g],b)):Re(a.f,b));k.Wa||Jj(a);break}}return f}function tk(a,b){for(var c=1;c<b.length;c++)sk(a,b,c);return b.length-1}function sk(a,b,c,d){c=b[c];a.v(b[0]+" "+Uj(a,c)+(d?" "+d:c.Qc?' "'+c.Qc+'"':""))}
|
||||
function pk(a,b){if(void 0!==b)qk(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.Wa){if(!rk(a,a.b,c,!0))break;b=0}}}
|
||||
function qk(a,b,c,d,e){var f=!1;if(!a.pa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Wa)for(var l=Mj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Wa&&(rk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!uk(a,n[q],!0)){if(n[q].indexOf("if")){f=!0;break}for(var r=q+1;r<n.length&&n[r].indexOf("else");r++)q++;if(r==n.length){f=!0;break}}a.f.A.V||(f=!0)}if(f){e||sk(a,d,g,"hit");break}}}a.pa--;return f}
|
||||
function vk(a,b,c,d){var e=X(b.K),f=a.Ta(b,2),g,k;for(k in a.La)if(g=a.La[k][f&k])break;g||(g=wk);var l=g[0];0<=a.W.indexOf(l)&&(g=wk,l=g[0]);var m=k="",n=xk[l],q=g.length-1;l||q||(k=K(a,f));for(l=1;l<=q;l++){var r=g[l];if(void 0!==r){var t;t=a;var D=r,r=b,A="",B=D&yk;if(B==Y)r=r.K+((f&255)<<24>>23)&65535,A=K(t,r);else if(B==zk)r=r.K-((f&63)<<1)&65535,A=K(t,r);else if(B==Ak)A=K(t,f&7,3);else if(B==Bk)A=K(t,f&63,6);else if(B==Ck)A=K(t,f&255,8);else if(B=f&D,D&Dk&&(B>>=6,D>>=6),D&Z){var D=null,J=B&
|
||||
Ek;switch(B&Fk){case 0:A=Wj(t,J);break;case 8:A="@"+Wj(t,J);D=Gk(t,t.f.g[J]);break;case 16:7>J?A="("+Wj(t,J)+")+":(B=t.Ta(r,2),A="#"+K(t,B,-1));break;case 24:7>J?A="@("+Wj(t,J)+")+":(B=t.Ta(r,2),A="@#"+K(t,B,-1),D=Gk(t,B));break;case 32:A="-("+Wj(t,J)+")";break;case 40:A="@-("+Wj(t,J)+")";break;case 48:B=t.Ta(r,2);A=K(t,B,-1)+"("+Wj(t,J)+")";7==J&&(A=K(t,B=B+r.K&65535),D=Gk(t,B));break;case 56:B=t.Ta(r,2),A="@"+K(t,B)+"("+Wj(t,J)+")",7==J&&(A="@"+K(t,B=B+r.K&65535),D=Gk(t,Dc(t.f,B)))}D&&(A=[A,D])}t=
|
||||
A;if(!t||!t.length){k="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<k.length&&(k+=",");k+=t||"???"}}f="";g=Uj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ta(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function qk(a,b,c,d,e){var f=!1;if(!a.pa++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Wa)for(var l=Mj(k)&(d==a.b?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Wa&&(rk(a,d,k,!0),e=!0);if(n=k.he){for(var f=!1,q=0;q<n.length;q++)if(!uk(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||sk(a,d,g,"hit");break}}}a.pa--;return f}
|
||||
function vk(a,b,c,d){var e=X(b.K),f=a.Ta(b,2),g,k;for(k in a.La)if(g=a.La[k][f&k])break;g||(g=wk);var l=g[0];0<=a.W.indexOf(l)&&(g=wk,l=g[0]);var m=k="",n=xk[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 B=t,t=b,A="",C=B&yk;if(C==Y)t=t.K+((f&255)<<24>>23)&65535,A=K(r,t);else if(C==zk)t=t.K-((f&63)<<1)&65535,A=K(r,t);else if(C==Ak)A=K(r,f&7,3);else if(C==Bk)A=K(r,f&63,6);else if(C==Ck)A=K(r,f&255,8);else if(C=f&B,B&Dk&&(C>>=6,B>>=6),B&Z){var B=null,J=C&
|
||||
Ek;switch(C&Fk){case 0:A=Wj(r,J);break;case 8:A="@"+Wj(r,J);B=Gk(r,r.f.g[J]);break;case 16:7>J?A="("+Wj(r,J)+")+":(C=r.Ta(t,2),A="#"+K(r,C,-1));break;case 24:7>J?A="@("+Wj(r,J)+")+":(C=r.Ta(t,2),A="@#"+K(r,C,-1),B=Gk(r,C));break;case 32:A="-("+Wj(r,J)+")";break;case 40:A="@-("+Wj(r,J)+")";break;case 48:C=r.Ta(t,2);A=K(r,C,-1)+"("+Wj(r,J)+")";7==J&&(A=K(r,C=C+t.K&65535),B=Gk(r,C));break;case 56:C=r.Ta(t,2),A="@"+K(r,C)+"("+Wj(r,J)+")",7==J&&(A="@"+K(r,C=C+t.K&65535),B=Gk(r,Dc(r.f,C)))}B&&(A=[A,B])}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=Uj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+K(a,a.Ta(e,2)),null==e.K)break;while(e.K!=b.K)}g+=ya(f,24);g+=ya(n,5);k&&(g+=" "+k);if(c||m)g=ya(g,60)+";"+(c||""),g=a.f.A.Nb?g+("cycles="+me(a.f).toString()+" cs="+v(a.f.oc)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
|
||||
function Gk(a,b){b=Pe(a.f,b)[0];b>=a.f.ub&&b<a.F.B&&(b=b-a.f.ub+a.F.B);var c=a.F;a=null;b>=c.B&&(b=c.Ra[b&kd])&&(a=b[4]);return a}function Hk(a,b){switch(b){case "N":a=Ee(a.f);break;case "Z":a=De(a.f);break;case "V":a=Ce(a.f);break;case "C":a=Be(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}function Ik(a,b){var c=Wj(a,b);c&&(c+="="+K(a,a.Bd(b))+" ");return c}
|
||||
function Jk(a,b){var c,d="";for(c=0;6>c;c++)d+=Ik(a,c);d=d+"\n"+(Ik(a,6)+Ik(a,7));d+=Ik(a,Zj)+Ik(a,ak)+Ik(a,ck);d+=Hk(a,"T")+Hk(a,"N")+Hk(a,"Z")+Hk(a,"V")+Hk(a,"C");b&&(b=d,c=""+(Ik(a,dk)+Ik(a,ek)),c+=Ik(a,fk)+Ik(a,gk)+Ik(a,bk),c=c+"\n"+(Ik(a,ik)+Ik(a,Xj)+Ik(a,hk)),d=b+("\n"+c));return d}h.me=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
|
||||
function Dh(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=Ba(n,l,a.me);0>q&&n.splice(-(q+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({Hk:b,K:c,Lf:d,ga:e,ie:f})}function Kk(a,b,c){var d=[],e=Mj(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=Ba(f.ie,[e-g],a.me);0<=e?Lk(a,b,e,d):c&&(e=~e,Lk(a,b,e-1,d),Lk(a,b,e,d));break}}return d}
|
||||
|
|
@ -336,8 +336,8 @@ f);return}H(a.J);a.v("updated registers:")}}a.v(Jk(a,d));c&&(a.G=X(e.g[7]),ok(a,
|
|||
function Pk(a,b,c){if("?"==c)a.v("trace commands:"),a.v("\tt [#]\ttrace # instructions"),a.v("\ttr [#]\ttrace # instructions with register updates"),a.v("\ttc [#]\ttrace # cycles"),a.v("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=Dj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.ta=b;Pa(c,function(){return Fb(a,!0)&&vc(a,e,d,!1)},function(){a.g&&a.g.stop();H(a.J,-1);Fb(a,!1)})}}
|
||||
function ok(a,b,c,d){if(b=Rj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=Dj(a,c.substr(1)),null!=c&&(d=c);else{d=Rj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.v("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=Eb(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=Kk(a,b),l=b.K;if(k[0]&&d&&(!c&&d||0>k[0].indexOf("+"))){var m=k[0]+":";k[2]&&(m+=" "+k[2]);a.v(m)}k[3]&&(g=k[3],f=null);f=vk(a,b,g,f);a.v(f);a.G=b;e-=b.K-l;c++}}}
|
||||
function uk(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(mk+b):(a.O&&(a.v("ended assemble at "+Uj(a,a.N)),a.G=a.N,a.O=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.R=null;if(Db(a)&&0<b.length){a.O&&(b="a "+Uj(a,a.N)+" "+b);var f=!1,g=b.replace(/ +/g," ").split(" ");g[0]=g[0].toLowerCase();if(g&&g.length)for(var k=g[0],l=k.charAt(0),m=1;m<k.length;m++){var n=k.charAt(m);if("?"==l||"r"==l||"a">n||"z"<n){g[0]=k.substr(m);g.unshift(k.substr(0,m));break}}switch(g[0].charAt(0)){case "a":var q=
|
||||
Rj(a,g[1],!0);if(q)if(a.N=q,void 0===g[2])a.v("begin assemble at "+Uj(a,q)),a.O=!0,H(a.J);else{var r;a.v("not supported yet");r=[];if(r.length){for(var t=0;t<r.length;t++)a.Qd(q,r[t],1);a.v(vk(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+tk(a,a.b);vb+=tk(a,a.L);(vb+=tk(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=Rj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Ij(a),a.v("all breakpoints cleared")):rk(a,a.b,sa)||rk(a,a.L,sa)||rk(a,a.C,sa)||a.v("breakpoint missing: "+Uj(a,sa)):null!=sa.K&&(Tj(a,sa,B),"p"==J?a.Bb(a.b,sa):"r"==J?a.Bb(a.L,sa):"w"==
|
||||
Rj(a,g[1],!0);if(q)if(a.N=q,void 0===g[2])a.v("begin assemble at "+Uj(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.Qd(q,t[r],1);a.v(vk(a,a.N))}}break;case "b":a:{var B=g[0],A=g[1],C=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=B.charAt(1);if("l"==J){var vb;vb=0+tk(a,a.b);vb+=tk(a,a.L);(vb+=tk(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=Rj(a,A,!0),!sa))break a;"c"==J?null==sa.K?(Ij(a),a.v("all breakpoints cleared")):rk(a,a.b,sa)||rk(a,a.L,sa)||rk(a,a.C,sa)||a.v("breakpoint missing: "+Uj(a,sa)):null!=sa.K&&(Tj(a,sa,C),"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.Va&&(a.Va.value="");break;case "d":a:{var Yb,jb=g[0],Ta=g[1],kb=g[2],ol=g[3];if("?"==Ta){var Zb="";for(Yb in Rb)a.la[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 ff=Qk(a.J,!0);"console"==kb?console.log(ff):(a.Va&&(a.Va.value=""),ff&&a.v(ff))}else if("symbols"==Ta)for(var gf=0;gf<a.B.length;gf++){var hf=a.B[gf],$b;for($b in hf.ga)if("."!=$b.charAt(0)){var wi=hf.ga[$b].o;if(void 0!==wi){var xi=hf.ga[$b].l;xi&&($b=xi);a.v(K(a,wi)+" "+$b)}}}else{if("d"==jb){for(Yb in Rb)if(g[1]==Yb){var yi=a.la[Yb];yi?(g.shift(),g.shift(),
|
||||
yi(g)):a.v("no dump registered for "+Ta);break a}Ta||(jb=a.Qa||"dw")}else a.Qa=jb;if("dh"==jb){var zi=Ta,Ai=kb,Bi="",Ci=0,Ia=a.P,Ua=a.i;if(Ua.length){var Ca=+zi||a.sa,Lc=+Ai||10;isNaN(Ca)?Ca=Lc:Bi="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 jf=[];"call"==Ai&&(Lc=1E5,jf=["CALL"]);for(void 0!==zi&&a.v(Ca+" instructions earlier:");0<Lc&&Ia!=a.P;){var Di=Ua[Ia++];if(null==Di.K)break;var Mc=X(Di.K),
|
||||
|
|
@ -361,7 +361,7 @@ Dk,Z],45056:[19,Dk,Z],49152:[15,Dk,Z],53248:[17,Dk,Z],57344:[94,Dk,Z]},65024:{20
|
|||
166:[43],167:[35],168:[38],169:[32],170:[42],171:[34],172:[46],173:[37],174:[44],175:[30],176:[69],177:[80],178:[88],179:[82],180:[92],181:[85],182:[90],183:[84],184:[87],185:[81],186:[89],187:[83],188:[93],189:[86],190:[91],191:[79]}},wk=[0],Pj=[58,60,65,96,110,100,101,102,103,104,105],Qj=[108,59,64],jk=1E3,mk=">> ";Sa(function(){for(var a=z(document,y,"debugger"),b=0;b<a.length;b++){var c=a[b],d=ob(c),d=new Hj(d);pb(d,c)}});
|
||||
function Tk(a,b,c){x.call(this,"Computer",a,33554432);this.A.ba=!1;this.O=null;Uk(this,b);this.L=ge(this,"autoPower",a,6);this.j=0;this.S=+a.busWidth||+a.buswidth;this.G=this.w=this.I=null;this.C=this.R=!1;this.B=this.u=null;this.P=this.M=this.N=!1;this.U=ge(this,"url")||"";(Math.random()+.1).toString(36);this.g=Vk(this);if(this.f=nb("CPU",this.id)){this.D=nb("Debugger",this.id);this.F=new Gc({id:this.vb+".bus",busWidth:this.S},this.f,this.D);var d,e=ib(this.id);if((this.i=nb("Panel",this.id))&&this.i.Va)for(b=
|
||||
0;b<e.length;b++)d=e[b],d.T=this.i.T,d.v=this.i.v,d.Va=this.i.Va;this.v(Hb+" v1.34.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.v("Portions adapted from the PDP-11/70 Emulator by Paul Nankervis <http://skn.noip.me/pdp11/pdp11.html>");for(b=0;b<e.length;b++)d=e[b],d.Ba&&d.Ba(this,this.F,this.f,this.D);b=null;d=ge(this,"resume",a);void 0!==d&&(1<d.length?b=this.w=d:this.b=parseInt(d,10));var f;if(a=ge(this,"state")||
|
||||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Wk),this.b&&(this.B=new G(this,"1.34.2"),Xk(this.B)?b=null:delete this.B);!b&&this.b&&(b=Yk(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);C(g)})}else C(this);this.H.power||(this.L=!0);!c&&this.L&&this.yc(this.rc)}else w("Unable to find CPU component")}p(Tk,x);
|
||||
(f=!0,a.state))this.I=b=a,f||(this.C=!0,this.b=Wk),this.b&&(this.B=new G(this,"1.34.2"),Xk(this.B)?b=null:delete this.B);!b&&this.b&&(b=Yk(this))&&(this.C=!0);if(b){var g=this;Ea(b,null,!0,function(a,b,c){c?(g.w=null,g.C=!1,g.T("Unable to load machine state from server (error "+c+(b?": "+za(b):"")+")")):(g.G=b,g.R=!0);D(g)})}else D(this);this.H.power||(this.L=!0);!c&&this.L&&this.yc(this.rc)}else w("Unable to find CPU component")}p(Tk,x);
|
||||
function Uk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){w(d.message+" ("+c+")")}}a.O=b}function ge(a,b,c,d){var e=b.toLowerCase(),e=Na(b)||Na(e);void 0===e&&a.O&&(e=a.O[b]);void 0===e&&c&&(e=c[b]);void 0===e&&"object"==typeof resources&&resources[b]&&(e=b);void 0===e&&(e=void 0);if("string"==typeof e&&d)switch(d){case 4:e=+e;isNaN(e)&&(e=0);break;case 6:e="true"==e}return e}h=Tk.prototype;
|
||||
h.yc=function(a,b){for(var c=this,d=ib(this.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:this;if(!Db(f)){Db(f,function(){c.yc(a,b)});return}}a.call(this,b)};function Zk(a,b){var c=new G(a,"1.34.2",$k);if(Xk(c)&&al(c)){var d=c.get(bl),e=b?b.get(bl):"unknown";d!=e&&(a.T("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}
|
||||
h.rc=function(a){void 0===a&&(a=this.b||(this.G?cl:Wk));if(!this.j){this.j++;var b=!1,c=!1;this.N=!1;var d=this.B||new G(this,"1.34.2");if(a==dl)b=!0;else if(a>Wk){if(Xk(d,this.G)){this.u=new G(this,"1.34.2",el);Xk(this.u)&&(fl(this,d),a=gl,hl(this.u));this.u.set(bl,Da());il(this.u);var e=this.b&&!this.C;if(a==cl||hb("Click OK to restore the previous "+Hb+" machine state, or CANCEL to reset the machine.")){if(c=al(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Xk(d,g):("error"==f&&"no machine state"!=
|
||||
|
|
@ -390,7 +390,7 @@ function Fl(a,b,c,d,e,f,g,k){function l(a,g){if(g)k(g,null);else{c&&(eb(c,b,a),(
|
|||
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1"+d+"$2"));g=null;if("<"==a.charAt(0))try{f||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(g=new window.ActiveXObject("Microsoft.XMLDOM"),g.async=!1,g.loadXML(a)):g=(new window.DOMParser).parseFromString(a,"text/xml")}catch(q){g=null,a=q.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);k(a,g)}}a?f?Gl(a,g,l):l(a,null):k("no data"+(b?" for file: "+b:""),null)}
|
||||
function Gl(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");Ea(e,null,!0,function(f,g,k){if(k||!g)c(a,"unable to resolve XML reference: "+d[0]+" ("+k+")");else{if(f=d[3])if(k=g.match(new RegExp("<"+d[1]+"[^>]*>"))){for(var l=k[0],m,n=/( [a-z]+=)(['"])(.*?)\2/g;m=n.exec(f);)l=0>l.indexOf(m[1])?l.replace(">",m[0]+">"):l.replace(new RegExp(m[1]+"(['\"])(.*?)\\1"),m[0]);k[0]!=l&&(g=g.replace(k[0],l))}else{c(a,"missing <"+d[1]+"> in "+e);return}g=g.replace(/<\?xml[^>]*>[\r\n]*/,
|
||||
"");a=a.replace(d[0],g);Gl(a,b,c)}})}else c(a,null)}
|
||||
function Hl(a,b,c,d,e){function f(a){if(void 0===l){var b=k&&z(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=wa(a))}function g(a){f("Error: "+a);m&&(--Dl||$a(!0));m=!1}var k,l,m=!0;Dl++;fb[b]={};try{if(k=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n));q.appendChild(r)}d||
|
||||
function Hl(a,b,c,d,e){function f(a){if(void 0===l){var b=k&&z(k,"machine-warning");l=b&&b[0]||k}l&&(l.innerHTML=wa(a))}function g(a){f("Error: "+a);m&&(--Dl||$a(!0));m=!1}var k,l,m=!0;Dl++;fb[b]={};try{if(k=document.getElementById(b)){var n;if("object"==typeof resources&&(n=resources.css)){var q=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=n:t.appendChild(document.createTextNode(n));q.appendChild(t)}d||
|
||||
(n=a,"pdp"==a.substr(0,3)&&(n="pdpjs"),d="/versions/"+n+"/1.34.2/components.xsl");n=function(e,l){l?El(d,null,a,null,!1,f,function(a,e){e?(eb(b,d,a),f("Processing "+c+"..."),window.ActiveXObject||"ActiveXObject"in window?(e=l.transformNode(e))?(k.outerHTML=e,--Dl||$a(!0)):g("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(a=new XSLTProcessor,a.importStylesheet(e),(e=a.transformToFragment(l,document))?k.parentNode?(k.parentNode.replaceChild(e,k),--Dl||
|
||||
$a(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?El(c,b,a,e,!0,f,n):Fl(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(t){g(t.message)}return m}window.embedPDP10=function(a,b,c,d){$a(!1);return Hl("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){$a(!1);return Hl("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
|
||||
$a(!0)):g("invalid machine element: "+b):g("transformToFragment failed")):g("unable to transform XML: unsupported browser")):g(a)}):g(e)};"<"!=c.charAt(0)?El(c,b,a,e,!0,f,n):Fl(c,null,b,a,e,!1,f,n)}else g("missing machine element: "+b)}catch(r){g(r.message)}return m}window.embedPDP10=function(a,b,c,d){$a(!1);return Hl("pdp10",a,b,c,d)};window.embedPDP11=function(a,b,c,d){$a(!1);return Hl("pdp11",a,b,c,d)};window.findMachineComponent=function(a,b){return nb(b,a+".machine")};
|
||||
window.processMachineScript=function(a,b){var c=!1;a+=".machine";if("string"==typeof b&&!rb[a]){for(var c=!0,d=rb,e=a,f=b.length,g=[],k=[],l="",m=null,n=0;n<f;n++){var q=b[n];if('"'==q||"'"==q)m&&q!=m?l+=q:(m?m=null:m=q,l&&(k.push(l),l=""));else{if(!m){if("\r"==q||"\n"==q)q=";";if(" "==q||"\t"==q||";"==q){l&&(k.push(l),l="");";"==q&&k.length&&(g.push(k),k=[]);continue}}l+=q}}l&&k.push(l);k.length&&g.push(k);d[e]=g;qb(a)||(c=!1)}return c};window.enableEvents=$a;window.sendEvent=bb;})();//# sourceMappingURL=/tmp/pdpjs/1.34.2/pdp11-dbg.map
|
||||
|
|
|
|||
Loading…
Reference in a new issue