Improved PDP-11 save/restore support (added to Device, Panel, RK11, and Serial)

This commit is contained in:
Jeff Parsons 2017-01-26 10:04:44 -08:00 • committed by Jeff Parsons
commit d182c7eced
15 changed files with 850 additions and 635 deletions

View file

@ -654,7 +654,7 @@ l.Pb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.
void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ea(c.value,10);null!=a&&xp(d,a)},!0;case "loadDisk":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&yp(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.ia){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&((a=
d.A[ea(a.value,10)||0])?(a=a.za)?(a=Qa(tp(a),"octet-stream",!0,a.Ug.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDisk":if(this.ia)return this.qa[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;yp(d,ja(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
l.Jc=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.X=a;this.N=Gb(a,"ChipSet");if((this.U=Vc(this.X,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}zp(this);nc(b,this,Ap);rc(b,this,Bp);Cp(this,"None","",!0);this.ia&&Cp(this,"Local Disk","?");Cp(this,"Remote Disk","??");Dp(this)||ub(this)};
l.hc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.X.lh){this.B=[];for(a=0;a<this.A.length;a++)Ep(this,a,!0);Dp(this,!0)}}else if(!this.restore(a))return!1;if(a=this.qa.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.ka;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.ka&&(a.value="0",xp(this,0))}}return!0};l.gc=function(a){return a?this.save():!0};l.reset=function(){zp(this)};
l.hc=function(a,b){if(!b){if(!a){if(this.reset(),this.X.lh){this.B=[];for(a=0;a<this.A.length;a++)Ep(this,a,!0);Dp(this,!0)}}else if(!this.restore(a))return!1;if(a=this.qa.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.ka;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.ka&&(a.value="0",xp(this,0))}}return!0};l.gc=function(a){return a?this.save():!0};l.reset=function(){zp(this)};
l.save=function(){var a=new nf(this);a.set(0,Fp(this));return a.data()};l.restore=function(a){return zp(this,a[0])};
function zp(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c++;a.ma=b[c++];a.V=b[c++];a.L=b[c++];a.C=b[c++];a.aa=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.B=d);void 0===a.A&&(a.ka=4,a.N&&(a.ka=+Vk(a.N,wk,void 0)),a.A=Array(4));for(d=0;d<a.A.length;d++){var g=a.A[d];if(void 0===g){var g=a.A[d]={},h;if(a.N)a:{h=a.N;if(d<+Vk(h,wk,void 0)){if(!h.ia){h=360;break a}if(d<h.ia.length){h=h.ia[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.ub=1;default:g.Bb=40;g.lb=9;break;case 720:g.Bb=
80;g.lb=9;break;case 1200:g.Bb=80;g.lb=15;break;case 1440:g.Bb=80,g.lb=18}}var k=a,m=d,n=f[d],t=0;h=!0;g.hb=m;g.$e=g.bf=!1;n||(n=[192,!0,0,2,0]);"boolean"==typeof n[1]&&(n[1]=["Floppy Drive",g.Bb||40,g.ub||n[3],g.lb||9,g.Va||512,n[1],g.Fg,g.Rf,g.Sf]);g.Cb=n[t++];var q=n[t++];g.name=q[0];g.Bb=q[1];g.ub=q[2];g.lb=q[3];g.Va=q[4];g.cf=q[5];(g.Fg=q[6])?(g.Rf=q[7],g.Sf=q[8]):(g.Fg=g.Bb,g.Rf=g.ub,g.Sf=g.lb);g.kb=n[t++];g.ee=n[t++];g.Qb=n[t++];g.ee=100<=g.ee?g.ee-100:g.ee-g.Qb;g.xb=n[t++];g.fe=n[t++];g.Hb=
@ -681,7 +681,7 @@ var Qp=["XTC","ATC","COMPAQ"],Rp=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];l=Pp.prototype;
l.Pb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.qa[b]=c,c.onclick=function(a){return function(){var b=d.A&&d.A[a];b&&b.za?(b=b.za,b=Qa(tp(b),"octet-stream",!0,b.Ug.replace(".json",".img")),w(b)):d.Na("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
l.Jc=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.X=a;if(d=Vc(a,"drives"))this.ua=d;else if(this.Ea)try{this.ua=eval("("+this.Ea+")")}catch(e){w("HDC drive configuration error: "+e.message+" ("+this.Ea+")")}this.N=Gb(a,"ChipSet");this.U=0;this.Ga=3;nc(b,this,this.ia?Sp:Tp);rc(b,this,this.ia?Up:Vp);this.ia&&(this.U++,this.N&&5180==this.N.ja&&this.U++,this.Ga=2,b.aa[496]=2,b.ea[496]=2);hf(c,19,this.Pm.bind(this));hf(c,64,this.Qm.bind(this));this.reset();Wp(this)||ub(this)};
l.hc=function(a,b){if(!b)if(!a||!this.restore)Xp(this),this.X.lh&&Wp(this,!0);else if(!this.restore(a))return!1;return!0};l.gc=function(a){return a?this.save():!0};l.gf=function(){return this.X?this.X.gf():""};l.ie=function(){return this.X?this.X.ie():""};l.reset=function(){Xp(this,null,!0)};l.save=function(){var a=new nf(this);a.set(0,Yp(this));return a.data()};l.restore=function(a){return Xp(this,a[0])};
l.hc=function(a,b){if(!b)if(!a)Xp(this),this.X.lh&&Wp(this,!0);else if(!this.restore(a))return!1;return!0};l.gc=function(a){return a?this.save():!0};l.gf=function(){return this.X?this.X.gf():""};l.ie=function(){return this.X?this.X.ie():""};l.reset=function(){Xp(this,null,!0)};l.save=function(){var a=new nf(this);a.set(0,Yp(this));return a.data()};l.restore=function(a){return Xp(this,a[0])};
function Xp(a,b,c){var d=0,e=!0;a.hb=-1;if(a.ia){if(b||(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.W=b[d++],a.Pa=b[d++],a.aa=b[d++],a.Ca=b[d++],a.ya=b[d++],a.va=b[d++],a.ra=b[d++],a.ma=b[d++],a.Da=b[d++],a.fa=b[d++],"object"==typeof a.fa){var f=a.fa;a.fa=f[0];a.hb=f[1]}}else b||(b=[0,0,Array(14),0,0]),a.pa=b[d++],a.ma=b[d++],a.V=b[d++],a.L=b[d++],a.C=b[d++],a.Oa=b[d++],a.Ka=b[d++],a.Ja=b[d++],f=b[d++],void 0!==f?a.ka=f:void 0===a.ka&&(a.ka=-1);void 0===a.A&&(a.A=Array(a.ua.length));b=b[d];void 0===b&&(b=[]);
for(d=0;d<a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,m=a.ua[d],n=b[d],t=c,q=0,A=!0;n||(n=[0,0,!1,Array(8)]);k.hb=h;k.errorCode=n[q++];k.Vk=n[q++];k.cf=n[q++];k.Te=n[q++];k.Ue=n[q++];k.kb=n[q++];k.ub=n[q++];k.be=n[q++];k.xb=n[q++];k.fe=n[q++];k.Hb=n[q++];k.sg=g.ia?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.ie()||(k.mode="local");k.type=m.type;if(void 0===k.type||
void 0===Rp[g.U][k.type])k.type=g.Ga;m=Rp[g.U][k.type];k.lb=m[2]||17;k.Va=m[3]||512;if(t&&g.N){var m=g.N,F=k.type;if(m.A){var t=null,C=m.A[18];15<F&&(t=F,F=15);h?(C=C&240|F,F=26):(C=C&15|F<<4,F=25);var D=m;D.A&&(D.A[18]=C,Yk(D));null!=t&&m.A&&(m.A[F]=t,Yk(m))}}void 0===k.za&&(k.za=null,g.Na("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Zp(g,k);k.eb=n[q++];k.pb=null;k.za&&(g=n[q],void 0!==g&&0>k.za.restore(g)&&(A=!1),A&&void 0!==k.eb&&(k.pb=k.za.seek(k.be,k.kb,k.xb+k.sg)));A||(e=!1);null!=a.pa&&

View file

@ -603,7 +603,7 @@ l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.la[b]=c;if(this.
b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.la[b]=c,c.onchange=function(){var a=ea(c.value,10);null!=a&&vm(d,a)},!0;case "loadDisk":return this.la[b]=c,c.onclick=function(){var a=d.la.listDisks;a&&wm(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.Y){c.parentNode.removeChild(c);break}this.la[b]=c;c.onclick=function(){var a=d.la.listDrives;a&&a.options&&d.B&&((a=d.B[ea(a.value,
10)||0])?(a=a.ua)?(a=Ca(rm(a),"octet-stream",!0,a.th.replace(".json",".img")),r(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDisk":if(this.Y)return this.la[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;wm(d,ga(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.ba=a;this.S=jb(a,"ChipSet");if((this.K=kc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){r("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}xm(this);Pb(b,this,ym);Rb(b,this,zm);Am(this,"None","",!0);this.Y&&Am(this,"Local Disk","?");Am(this,"Remote Disk","??");Bm(this)||t(this)};
l.Ub=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.pg){this.C=[];for(a=0;a<this.B.length;a++)Cm(this,a,!0);Bm(this,!0)}}else if(!this.restore(a))return!1;if(a=this.la.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.Z;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.Z&&(a.value="0",vm(this,0))}}return!0};l.Tb=function(a){return a?this.save():!0};l.reset=function(){xm(this)};
l.Ub=function(a,b){if(!b){if(!a){if(this.reset(),this.ba.pg){this.C=[];for(a=0;a<this.B.length;a++)Cm(this,a,!0);Bm(this,!0)}}else if(!this.restore(a))return!1;if(a=this.la.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.Z;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.Z&&(a.value="0",vm(this,0))}}return!0};l.Tb=function(a){return a?this.save():!0};l.reset=function(){xm(this)};
l.save=function(){var a=new ae(this);a.set(0,Dm(this));return a.data()};l.restore=function(a){return xm(this,a[0])};
function xm(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c++;a.aa=b[c++];a.I=b[c++];a.G=b[c++];a.D=b[c++];a.P=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.C=d);void 0===a.B&&(a.Z=4,a.S&&(a.Z=+Yi(a.S,Di,void 0)),a.B=Array(4));for(d=0;d<a.B.length;d++){var g=a.B[d];if(void 0===g){var g=a.B[d]={},h;if(a.S)a:{h=a.S;if(d<+Yi(h,Di,void 0)){if(!h.Y){h=360;break a}if(d<h.Y.length){h=h.Y[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.jb=1;default:g.ib=40;g.eb=9;break;case 720:g.ib=
80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,q=f[d],y=0;h=!0;g.Qa=m;g.ne=g.pe=!1;q||(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.ib||40,g.jb||q[3],g.eb||9,g.nb||512,q[1],g.Nf,g.Xe,g.Ye]);g.kb=q[y++];var w=q[y++];g.name=w[0];g.ib=w[1];g.jb=w[2];g.eb=w[3];g.nb=w[4];g.qe=w[5];(g.Nf=w[6])?(g.Xe=w[7],g.Ye=w[8]):(g.Nf=g.ib,g.Xe=g.jb,g.Ye=g.eb);g.Ya=q[y++];g.vd=q[y++];g.wb=q[y++];g.vd=100<=g.vd?g.vd-100:g.vd-g.wb;g.mb=q[y++];g.wd=q[y++];g.vb=
@ -627,7 +627,7 @@ var Nm=["XTC","ATC","COMPAQ"],Om=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];l=Z.prototype;
l.zb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.la[b]=c,c.onclick=function(a){return function(){var b=d.B&&d.B[a];b&&b.ua?(b=b.ua,b=Ca(rm(b),"octet-stream",!0,b.th.replace(".json",".img")),r(b)):d.Ba("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.ba=a;if(d=kc(a,"drives"))this.ga=d;else if(this.qa)try{this.ga=eval("("+this.qa+")")}catch(e){r("HDC drive configuration error: "+e.message+" ("+this.qa+")")}this.S=jb(a,"ChipSet");this.H=0;this.ra=3;Pb(b,this,this.W?Pm:Qm);Rb(b,this,this.W?Rm:Sm);this.W&&(this.H++,this.S&&5180==this.S.ca&&this.H++,this.ra=2,b.S[496]=2,b.P[496]=2);Xd(c,19,this.Bl.bind(this));Xd(c,64,this.Cl.bind(this));this.reset();Tm(this)||t(this)};
l.Ub=function(a,b){if(!b)if(!a||!this.restore)Um(this),this.ba.pg&&Tm(this,!0);else if(!this.restore(a))return!1;return!0};l.Tb=function(a){return a?this.save():!0};l.ue=function(){return this.ba?this.ba.ue():""};l.zd=function(){return this.ba?this.ba.zd():""};l.reset=function(){Um(this,null,!0)};l.save=function(){var a=new ae(this);a.set(0,Vm(this));return a.data()};l.restore=function(a){return Um(this,a[0])};
l.Ub=function(a,b){if(!b)if(!a)Um(this),this.ba.pg&&Tm(this,!0);else if(!this.restore(a))return!1;return!0};l.Tb=function(a){return a?this.save():!0};l.ue=function(){return this.ba?this.ba.ue():""};l.zd=function(){return this.ba?this.ba.zd():""};l.reset=function(){Um(this,null,!0)};l.save=function(){var a=new ae(this);a.set(0,Vm(this));return a.data()};l.restore=function(a){return Um(this,a[0])};
function Um(a,b,c){var d=0,e=!0;a.Qa=-1;if(a.W){if(b||(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.K=b[d++],a.za=b[d++],a.L=b[d++],a.oa=b[d++],a.ma=b[d++],a.ka=b[d++],a.Z=b[d++],a.aa=b[d++],a.pa=b[d++],a.P=b[d++],"object"==typeof a.P){var f=a.P;a.P=f[0];a.Qa=f[1]}}else b||(b=[0,0,Array(14),0,0]),a.da=b[d++],a.aa=b[d++],a.I=b[d++],a.G=b[d++],a.D=b[d++],a.xa=b[d++],a.va=b[d++],a.sa=b[d++],f=b[d++],void 0!==f?a.Y=f:void 0===a.Y&&(a.Y=-1);void 0===a.B&&(a.B=Array(a.ga.length));b=b[d];void 0===b&&(b=[]);for(d=0;d<
a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var f=a.B[d],g=a,h=d,k=f,m=a.ga[d],q=b[d],y=c,w=0,z=!0;q||(q=[0,0,!1,Array(8)]);k.Qa=h;k.errorCode=q[w++];k.Kj=q[w++];k.qe=q[w++];k.fe=q[w++];k.ge=q[w++];k.Ya=q[w++];k.jb=q[w++];k.Id=q[w++];k.mb=q[w++];k.wd=q[w++];k.vb=q[w++];k.yf=g.W?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.zd()||(k.mode="local");k.type=m.type;if(void 0===k.type||void 0===
Om[g.H][k.type])k.type=g.ra;m=Om[g.H][k.type];k.eb=m[2]||17;k.nb=m[3]||512;if(y&&g.S){var m=g.S,B=k.type;if(m.B){var y=null,Q=m.B[18];15<B&&(y=B,B=15);h?(Q=Q&240|B,B=26):(Q=Q&15|B<<4,B=25);var V=m;V.B&&(V.B[18]=Q,aj(V));null!=y&&m.B&&(m.B[B]=y,aj(m))}}void 0===k.ua&&(k.ua=null,g.Ba("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Wm(g,k);k.Ua=q[w++];k.Wa=null;k.ua&&(g=q[w],void 0!==g&&0>k.ua.restore(g)&&(z=!1),z&&void 0!==k.Ua&&(k.Wa=k.ua.seek(k.Id,k.Ya,k.mb+k.yf)));z||(e=!1);null!=a.da&&1>=d&&

View file

@ -684,7 +684,7 @@ FDC.prototype.initBus = function(cmp, bus, cpu, dbg)
FDC.prototype.powerUp = function(data, fRepower)
{
if (!fRepower) {
if (!data || !this.restore) {
if (!data) {
this.reset();
if (this.cmp.fReload) {
/*
@ -798,7 +798,7 @@ FDC.prototype.initController = function(data)
var i = 0, iDrive;
var fSuccess = true;
if (data === undefined) {
if (!data) {
data = [0, 0, FDC.REG_STATUS.RQM, new Array(9), 0, 0, 0, []];
}

View file

@ -668,7 +668,7 @@ HDC.prototype.initBus = function(cmp, bus, cpu, dbg)
HDC.prototype.powerUp = function(data, fRepower)
{
if (!fRepower) {
if (!data || !this.restore) {
if (!data) {
this.initController();
if (this.cmp.fReload) {
/*

View file

@ -727,7 +727,7 @@ class ComputerPDP11 extends Component {
* TODO: Do we not care about the return value here? (ie, is checking fRestoreError sufficient)?
*/
this.powerRestore(this.cpu, stateComputer, fRepower, fRestore);
this.updateDisplays();
this.updateDisplays(-2);
this.cpu.autoStart();
}

View file

@ -577,10 +577,11 @@ class CPUStatePDP11 extends CPUPDP11 {
{
this.addrReset = addr;
this.resetCPU();
this.setPC(addr);
this.setPSW(0);
this.resetCPU();
if (fStart) {
/*
* TODO: Review. I'm zeroing R2-R5 in the fStart case (ie, for boot code) simply because that's what I
@ -677,7 +678,7 @@ class CPUStatePDP11 extends CPUPDP11 {
restore(data)
{
/*
* ES6 ALERT: Gotta love these destructuring assignments, which make it easy to perform the
* ES6 ALERT: Love these destructuring assignments, which make it easy to perform the
* inverse of what save() does when it collects a bunch of object properties into an array.
*/
[

View file

@ -2752,7 +2752,9 @@ class DebuggerPDP11 extends Debugger {
if (sParm == 'n') {
this.nBreakInstructions = this.parseValue(sAddr);
this.println("break after " + this.nBreakInstructions + " instruction(s)");
if (this.nBreakInstructions != null) {
this.println("break after " + this.nBreakInstructions + " instruction(s)");
}
return;
}

View file

@ -241,7 +241,7 @@ class DevicePDP11 extends Component {
restore(data)
{
/*
* ES6 ALERT: Gotta love these destructuring assignments, which make it easy to perform the
* ES6 ALERT: Love these destructuring assignments, which make it easy to perform the
* inverse of what save() does when it collects a bunch of object properties into an array.
*/
[

View file

@ -36,6 +36,7 @@ if (NODE) {
var Str = require("../../shared/es6/strlib");
var Web = require("../../shared/es6/weblib");
var Component = require("../../shared/es6/component");
var State = require("../../shared/es6/state");
var PDP11 = require("./defines");
var BusPDP11 = require("./bus");
var MessagesPDP11 = require("./messages");
@ -80,6 +81,7 @@ class PanelPDP11 extends Component {
this.regDisplay = 0;
this.regSwitches = 0;
this.regAddr = this.regData = 0;
this.ledAddr = this.ledData = -1;
/*
* The panel hardware has the following additional (supported) state; note that there are several
@ -246,6 +248,7 @@ class PanelPDP11 extends Component {
* Simulate a call to our stop() handler, to update the panel's ADDRESS register with the current PC.
*/
this.stop();
this.setDR(0);
}
/**
@ -396,10 +399,11 @@ class PanelPDP11 extends Component {
*/
if (this.fBindings) PanelPDP11.init();
/*
* TODO: Until we implement a restore() function, all we can do is reset()
*/
this.reset();
if (!data) {
this.reset();
} else {
if (!this.restore(data)) return false;
}
}
return true;
}
@ -414,6 +418,45 @@ class PanelPDP11 extends Component {
*/
powerDown(fSave, fShutdown)
{
return fSave? this.save() : true;
}
/**
* save()
*
* This implements save support for the PanelPDP11 component.
*
* @this {PanelPDP11}
* @return {Object}
*/
save()
{
var state = new State(this);
state.set(0, [
this.getAR(),
this.getDR(),
this.getSR()
]);
return state.data();
}
/**
* restore(data)
*
* This implements restore support for the PanelPDP11 component.
*
* @this {PanelPDP11}
* @param {Object} data
* @return {boolean} true if successful, false if failure
*/
restore(data)
{
var a = data[0];
if (a) {
this.setAR(a[0]);
this.setDR(a[1]);
this.setSR(a[2]);
}
return true;
}
@ -865,7 +908,10 @@ class PanelPDP11 extends Component {
updateAddr(value)
{
this.regAddr = value & this.bus.nBusMask;
this.updateLEDArray("A", this.regAddr, 22);
if (this.ledAddr !== this.regAddr) {
this.ledAddr = this.regAddr;
this.updateLEDArray("A", this.ledAddr, 22);
}
return this.regAddr;
}
@ -879,7 +925,10 @@ class PanelPDP11 extends Component {
updateData(value)
{
this.regData = value & 0xffff;
this.updateLEDArray("D", this.regData, 16);
if (this.ledData !== this.regData) {
this.ledData = this.regData;
this.updateLEDArray("D", this.ledData, 16);
}
return this.regData;
}
@ -996,7 +1045,7 @@ class PanelPDP11 extends Component {
* Called by the Computer component at intervals to update registers, LEDs, etc.
*
* @this {PanelPDP11}
* @param {number} [nUpdate] (< 0 for forced, > 0 for periodic, 0 otherwise)
* @param {number} [nUpdate] (-2 for power on, -1 for forced, > 0 for periodic, 0 or undefined otherwise)
*/
updateDisplay(nUpdate)
{
@ -1032,7 +1081,13 @@ class PanelPDP11 extends Component {
* TODO: There is currently no mechanism for selecting regData over regDisplay;
* we are acting as if the DATASEL switch setting is locked to "DISPLAY REGISTER".
*/
this.updateAddr(nUpdate > 0 && fRunning && !fWaiting? this.cpu.getLastAddr() : this.regAddr);
if (nUpdate < -1) {
this.regAddr = this.cpu.regsGen[7];
} else if (nUpdate > 0 && fRunning && !fWaiting) {
this.regAddr = this.cpu.getLastAddr();
}
this.updateAddr(this.regAddr);
this.updateData(this.regDisplay);
var bits = this.cpu.getMMUState();

View file

@ -79,10 +79,24 @@ class RK11 extends Component {
this.fLocalDisks = (!Web.isMobile() && window && 'FileReader' in window);
this.sDiskSource = RK11.SOURCE.NONE;
/*
* The following array keeps track of every disk image we've ever mounted. Each entry in the
* array is another array whose elements are:
*
* [0]: name of disk
* [1]: path of disk
* [2]: array of deltas, uninitialized until the disk is unmounted and/or all state is saved
*
* See functions addDiskHistory() and updateDiskHistory().
*/
this.aDiskHistory = [];
this.irq = null;
/*
* Define all the properties to be initialized by initController()
*
* TODO: Determine what we should really be doing with the RKDB register.
*/
this.regRKDS = this.regRKER = this.regRKCS = this.regRKWC = this.regRKBA = this.regRKDA = this.regRKDB = 0;
}
@ -436,7 +450,7 @@ class RK11 extends Component {
save()
{
var state = new State(this);
// state.set(0, this.saveController());
state.set(0, this.saveController());
return state.data();
}
@ -454,17 +468,156 @@ class RK11 extends Component {
return this.initController(data[0]);
}
/**
* initController(a)
*
* @this {RK11}
* @param {Array} [a]
* @return {boolean} true if successful, false if failure
*/
initController(a)
{
var fSuccess = true;
if (!a) {
a = [(RK11.RKDS.RK05 | RK11.RKDS.SOK | RK11.RKDS.RRDY), 0, (RK11.RKCS.CRDY), 0, 0, 0, 0];
}
/*
* ES6 ALERT: Love these destructuring assignments, which make it easy to perform the
* inverse of what save() does when it collects a bunch of object properties into an array.
*/
[
this.regRKDS,
this.regRKER,
this.regRKCS,
this.regRKWC,
this.regRKBA,
this.regRKDA,
this.regRKDB
] = a;
/*
* Initialize the disk history (if available) before initializing the drives, so that any disk deltas can be
* applied to disk images that are already loaded.
*/
if (a[7]) {
this.aDiskHistory = a[7];
}
for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
var drive = this.aDrives[iDrive];
if (drive === undefined) {
drive = this.aDrives[iDrive] = {};
}
if (!this.initDrive(drive, iDrive)) {
fSuccess = false;
}
}
return fSuccess;
}
/**
* saveController()
*
* TODO: Implement.
* Basically, the inverse of initController().
*
* @this {RK11}
* @return {Array}
*/
saveController()
{
return [];
return [
this.regRKDS,
this.regRKER,
this.regRKCS,
this.regRKWC,
this.regRKBA,
this.regRKDA,
this.regRKDB,
this.saveDeltas()
];
}
/**
* saveDeltas()
*
* This returns an array of entries, one for each disk image we've ever mounted, including any deltas; ie:
*
* [name, path, deltas]
*
* aDiskHistory contains exactly that, except that deltas may not be up-to-date for any currently mounted
* disk image(s), so we call updateHistory() for all those disks, and then aDiskHistory is ready to be saved.
*
* @this {RK11}
* @return {Array}
*/
saveDeltas()
{
for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
var drive = this.aDrives[iDrive];
if (drive.disk) {
this.updateDiskHistory(drive.sDiskName, drive.sDiskPath, drive.disk);
}
}
return this.aDiskHistory;
}
/**
* initDrive(drive, iDrive, data)
*
* TODO: Consider a separate Drive class that any drive controller can use, since there's a lot of commonality
* between the drive objects created by disk controllers. This will clean up overall drive management and allow
* us to factor out some common Drive methods.
*
* Also, either use or eliminate the data parameter; if there are no drive properties that need to be preserved
* across save/restore, then eliminate it.
*
* @this {RK11}
* @param {Object} drive
* @param {number} iDrive
* @param {Array|undefined} [data]
* @return {boolean} true if successful, false if failure
*/
initDrive(drive, iDrive, data)
{
var i = 0;
var fSuccess = true;
drive.iDrive = iDrive;
drive.name = this.idComponent;
drive.fBusy = drive.fLocal = false;
/*
* NOTE: We initialize the following drive properties to their MAXIMUMs; disks may have
* these or SMALLER values (subject to the limits of what the controller supports, of course).
*/
drive.nCylinders = 203;
drive.nHeads = 2;
drive.nSectors = 12;
drive.cbSector = 512;
drive.fRemovable = true;
/*
* The next group of properties are set by various controller command sequences.
*/
drive.bHead = 0;
drive.bCylinder = 0;
drive.bSector = 1;
drive.bSectorEnd = drive.nSectors; // aka EOT
drive.nBytes = drive.cbSector;
/*
* The next group of properties are managed by worker functions (eg, doRead()) to maintain state across DMA requests.
*/
drive.ibSector = 0;
drive.sector = null;
if (!drive.disk) drive.sDiskPath = ""; // ensure this is initialized to a default that displayDisk() can deal with
drive.status = RK11.RKDS.RK05 | RK11.RKDS.SOK | RK11.RKDS.RRDY;
return fSuccess;
}
/**
@ -637,8 +790,6 @@ class RK11 extends Component {
*/
finishLoadDrive(drive, disk, sDiskName, sDiskPath, fAutoMount)
{
var aDiskInfo;
drive.fBusy = false;
if (disk) {
@ -669,23 +820,7 @@ class RK11 extends Component {
* of a local disk image, it will map all such disks to "Local Disk", and any attempt to "Mount" such
* a disk, will essentially result in a "Disk not found" error.
*/
// this.addDiskHistory(sDiskName, sDiskPath, disk);
/*
* For a local disk (ie, one loaded via mountDrive()), the disk.restore() performed by addDiskHistory()
* may have altered the disk geometry, so refresh the disk info.
*/
// aDiskInfo = disk.info();
/*
* Clearly, a successful mount implies a disk change, and I suppose that, technically, an *unsuccessful*
* mount should imply the same, but what would the real-world analog be? Inserting a piece of cardboard
* instead of an actual disk? In any case, if we can do the user a favor by pretending (as far as the
* disk change line is concerned) that an unsuccessful mount never happened, let's do it.
*
* Successful unmounts are a different story, however; those *do* trigger a change. See unloadDrive().
*/
// this.regInput |= FDC.REG_INPUT.DISK_CHANGE;
this.addDiskHistory(sDiskName, sDiskPath, disk);
/*
* With the addition of notify(), users are now "alerted" whenever a disk has finished loading;
@ -826,7 +961,7 @@ class RK11 extends Component {
/*
* Before we toss the disk's information, capture any deltas that may have occurred.
*/
// this.updateDiskHistory(drive.sDiskName, drive.sDiskPath, drive.disk);
this.updateDiskHistory(drive.sDiskName, drive.sDiskPath, drive.disk);
drive.sDiskName = "";
drive.sDiskPath = "";
@ -851,7 +986,7 @@ class RK11 extends Component {
*/
unloadAllDrives(fDiscard)
{
// if (fDiscard) this.aDiskHistory = [];
if (fDiscard) this.aDiskHistory = [];
for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
this.unloadDrive(iDrive, true);
@ -859,89 +994,85 @@ class RK11 extends Component {
}
/**
* initController(data)
* addDiskHistory(sDiskName, sDiskPath, disk)
*
* @this {RK11}
* @param {Array} [data]
* @return {boolean} true if successful, false if failure
* @param {string} sDiskName
* @param {string} sDiskPath
* @param {DiskPDP11} disk containing corresponding disk image
*/
initController(data)
addDiskHistory(sDiskName, sDiskPath, disk)
{
var i = 0;
if (!data) data = [];
this.regRKDS = data[i++] || (RK11.RKDS.RK05 | RK11.RKDS.SOK | RK11.RKDS.RRDY);
this.regRKER = data[i++] || 0;
this.regRKCS = data[i++] || (RK11.RKCS.CRDY);
this.regRKWC = data[i++] || 0;
this.regRKBA = data[i++] || 0;
this.regRKDA = data[i++] || 0;
this.regRKDB = data[i] || 0; // TODO: Determine if there's anything we should be doing to the RKDB register
var fSuccess = true;
for (var iDrive = 0; iDrive < this.aDrives.length; iDrive++) {
var drive = this.aDrives[iDrive];
if (drive === undefined) {
drive = this.aDrives[iDrive] = {};
}
if (!this.initDrive(drive, iDrive)) {
fSuccess = false;
var i;
this.assert(!!sDiskPath);
for (i = 0; i < this.aDiskHistory.length; i++) {
if (this.aDiskHistory[i][1] == sDiskPath) {
var nChanges = disk.restore(this.aDiskHistory[i][2]);
if (DEBUG && this.messageEnabled()) {
this.printMessage("disk '" + sDiskName + "' restored from history (" + nChanges + " changes)");
}
return;
}
}
return fSuccess;
if (DEBUG && this.messageEnabled()) {
this.printMessage("disk '" + sDiskName + "' added to history (nothing to restore)");
}
this.aDiskHistory[i] = [sDiskName, sDiskPath, []];
}
/**
* initDrive(drive, iDrive, data)
*
* TODO: Consider a separate Drive class that any drive controller can use, since there's a lot of commonality
* between the drive objects created by disk controllers. This will clean up overall drive management and allow
* us to factor out some common Drive methods.
* removeDiskHistory(sDiskName, sDiskPath)
*
* @this {RK11}
* @param {Object} drive
* @param {number} iDrive
* @param {Array|undefined} [data]
* @return {boolean} true if successful, false if failure
* @param {string} sDiskName
* @param {string} sDiskPath
*/
initDrive(drive, iDrive, data)
removeDiskHistory(sDiskName, sDiskPath)
{
var i = 0;
var fSuccess = true;
drive.iDrive = iDrive;
drive.name = this.idComponent;
drive.fBusy = drive.fLocal = false;
var i;
for (i = 0; i < this.aDiskHistory.length; i++) {
if (this.aDiskHistory[i][1] == sDiskPath) {
this.aDiskHistory.splice(i, 1);
if (DEBUG && this.messageEnabled()) {
this.printMessage("disk '" + sDiskName + "' removed from history");
}
return;
}
}
if (DEBUG && this.messageEnabled()) {
this.printMessage("unable to remove disk '" + sDiskName + "' from history (" + sDiskPath + ")");
}
}
/**
* updateDiskHistory(sDiskName, sDiskPath, disk)
*
* @this {RK11}
* @param {string} sDiskName
* @param {string} sDiskPath
* @param {DiskPDP11} disk containing corresponding disk image, with possible deltas
*/
updateDiskHistory(sDiskName, sDiskPath, disk)
{
var i;
for (i = 0; i < this.aDiskHistory.length; i++) {
if (this.aDiskHistory[i][1] == sDiskPath) {
this.aDiskHistory[i][2] = disk.save();
if (DEBUG && this.messageEnabled()) {
this.printMessage("disk '" + sDiskName + "' updated in history");
}
return;
}
}
/*
* NOTE: We initialize the following drive properties to their MAXIMUMs; disks may have
* these or SMALLER values (subject to the limits of what the controller supports, of course).
* I used to report this as an error (at least in the DEBUG release), but it's no longer really
* an error, because if we're trying to re-mount a clean copy of a disk, we toss its history, then
* unload, and then reload/remount. And since unloadDrive's normal behavior is to call updateDiskHistory()
* before unloading, the fact that the disk is no longer listed here can't be treated as an error.
*/
drive.nCylinders = 203;
drive.nHeads = 2;
drive.nSectors = 12;
drive.cbSector = 512;
drive.fRemovable = true;
/*
* The next group of properties are set by various controller command sequences.
*/
drive.bHead = 0;
drive.bCylinder = 0;
drive.bSector = 1;
drive.bSectorEnd = drive.nSectors; // aka EOT
drive.nBytes = drive.cbSector;
/*
* The next group of properties are managed by worker functions (eg, doRead()) to maintain state across DMA requests.
*/
drive.ibSector = 0;
drive.sector = null;
if (!drive.disk) drive.sDiskPath = ""; // ensure this is initialized to a default that displayDisk() can deal with
drive.status = RK11.RKDS.RK05 | RK11.RKDS.SOK | RK11.RKDS.RRDY;
return fSuccess;
if (DEBUG && this.messageEnabled()) {
this.printMessage("unable to update disk '" + sDiskName + "' in history (" + sDiskPath + ")");
}
}
/**

View file

@ -485,32 +485,48 @@ class SerialPortPDP11 extends Component {
}
/**
* initState(data)
* initState(a)
*
* @this {SerialPortPDP11}
* @param {Array} [data]
* @param {Array} [a]
* @return {boolean} true if successful, false if failure
*/
initState(data)
initState(a)
{
this.regRBUF = 0;
this.regRCSR = PDP11.DL11.RCSR.CTS; // TODO: I didn't use to set this initially; is this wise?
this.regXCSR = PDP11.DL11.XCSR.READY;
this.abReceive = [];
if (!a) {
a = [0, PDP11.DL11.RCSR.CTS, PDP11.DL11.XCSR.READY, this.abReceive];
}
/*
* ES6 ALERT: Love these destructuring assignments, which make it easy to perform the
* inverse of what save() does when it collects a bunch of object properties into an array.
*/
[
this.regRBUF,
this.regRCSR,
this.regXCSR,
this.abReceive
] = a;
return true;
}
/**
* saveRegisters()
*
* TODO: Implement.
* Basically, the inverse of initState().
*
* @this {SerialPortPDP11}
* @return {Array}
*/
saveRegisters()
{
return [];
return [
this.regRBUF,
this.regRCSR,
this.regXCSR,
this.abReceive
];
}
/**

View file

@ -654,7 +654,7 @@ l.Pb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.
void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ea(c.value,10);null!=a&&xp(d,a)},!0;case "loadDisk":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&yp(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.ia){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&((a=
d.A[ea(a.value,10)||0])?(a=a.za)?(a=Qa(tp(a),"octet-stream",!0,a.Ug.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDisk":if(this.ia)return this.qa[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;yp(d,ja(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
l.Jc=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.X=a;this.N=Gb(a,"ChipSet");if((this.U=Vc(this.X,"autoMount")||this.U)&&"string"==typeof this.U)try{this.U=eval("("+this.U+")")}catch(e){w("FDC auto-mount error: "+e.message+" ("+this.U+")"),this.U=null}zp(this);nc(b,this,Ap);rc(b,this,Bp);Cp(this,"None","",!0);this.ia&&Cp(this,"Local Disk","?");Cp(this,"Remote Disk","??");Dp(this)||ub(this)};
l.hc=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.X.lh){this.B=[];for(a=0;a<this.A.length;a++)Ep(this,a,!0);Dp(this,!0)}}else if(!this.restore(a))return!1;if(a=this.qa.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.ka;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.ka&&(a.value="0",xp(this,0))}}return!0};l.gc=function(a){return a?this.save():!0};l.reset=function(){zp(this)};
l.hc=function(a,b){if(!b){if(!a){if(this.reset(),this.X.lh){this.B=[];for(a=0;a<this.A.length;a++)Ep(this,a,!0);Dp(this,!0)}}else if(!this.restore(a))return!1;if(a=this.qa.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.ka;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.ka&&(a.value="0",xp(this,0))}}return!0};l.gc=function(a){return a?this.save():!0};l.reset=function(){zp(this)};
l.save=function(){var a=new nf(this);a.set(0,Fp(this));return a.data()};l.restore=function(a){return zp(this,a[0])};
function zp(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.hb=b[c++];c++;a.ma=b[c++];a.V=b[c++];a.L=b[c++];a.C=b[c++];a.aa=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.B=d);void 0===a.A&&(a.ka=4,a.N&&(a.ka=+Vk(a.N,wk,void 0)),a.A=Array(4));for(d=0;d<a.A.length;d++){var g=a.A[d];if(void 0===g){var g=a.A[d]={},h;if(a.N)a:{h=a.N;if(d<+Vk(h,wk,void 0)){if(!h.ia){h=360;break a}if(d<h.ia.length){h=h.ia[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.ub=1;default:g.Bb=40;g.lb=9;break;case 720:g.Bb=
80;g.lb=9;break;case 1200:g.Bb=80;g.lb=15;break;case 1440:g.Bb=80,g.lb=18}}var k=a,m=d,n=f[d],t=0;h=!0;g.hb=m;g.$e=g.bf=!1;n||(n=[192,!0,0,2,0]);"boolean"==typeof n[1]&&(n[1]=["Floppy Drive",g.Bb||40,g.ub||n[3],g.lb||9,g.Va||512,n[1],g.Fg,g.Rf,g.Sf]);g.Cb=n[t++];var q=n[t++];g.name=q[0];g.Bb=q[1];g.ub=q[2];g.lb=q[3];g.Va=q[4];g.cf=q[5];(g.Fg=q[6])?(g.Rf=q[7],g.Sf=q[8]):(g.Fg=g.Bb,g.Rf=g.ub,g.Sf=g.lb);g.kb=n[t++];g.ee=n[t++];g.Qb=n[t++];g.ee=100<=g.ee?g.ee-100:g.ee-g.Qb;g.xb=n[t++];g.fe=n[t++];g.Hb=
@ -681,7 +681,7 @@ var Qp=["XTC","ATC","COMPAQ"],Rp=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];l=Pp.prototype;
l.Pb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.qa[b]=c,c.onclick=function(a){return function(){var b=d.A&&d.A[a];b&&b.za?(b=b.za,b=Qa(tp(b),"octet-stream",!0,b.Ug.replace(".json",".img")),w(b)):d.Na("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
l.Jc=function(a,b,c,d){this.ga=b;this.F=c;this.ha=d;this.X=a;if(d=Vc(a,"drives"))this.ua=d;else if(this.Ea)try{this.ua=eval("("+this.Ea+")")}catch(e){w("HDC drive configuration error: "+e.message+" ("+this.Ea+")")}this.N=Gb(a,"ChipSet");this.U=0;this.Ga=3;nc(b,this,this.ia?Sp:Tp);rc(b,this,this.ia?Up:Vp);this.ia&&(this.U++,this.N&&5180==this.N.ja&&this.U++,this.Ga=2,b.aa[496]=2,b.ea[496]=2);hf(c,19,this.Pm.bind(this));hf(c,64,this.Qm.bind(this));this.reset();Wp(this)||ub(this)};
l.hc=function(a,b){if(!b)if(!a||!this.restore)Xp(this),this.X.lh&&Wp(this,!0);else if(!this.restore(a))return!1;return!0};l.gc=function(a){return a?this.save():!0};l.gf=function(){return this.X?this.X.gf():""};l.ie=function(){return this.X?this.X.ie():""};l.reset=function(){Xp(this,null,!0)};l.save=function(){var a=new nf(this);a.set(0,Yp(this));return a.data()};l.restore=function(a){return Xp(this,a[0])};
l.hc=function(a,b){if(!b)if(!a)Xp(this),this.X.lh&&Wp(this,!0);else if(!this.restore(a))return!1;return!0};l.gc=function(a){return a?this.save():!0};l.gf=function(){return this.X?this.X.gf():""};l.ie=function(){return this.X?this.X.ie():""};l.reset=function(){Xp(this,null,!0)};l.save=function(){var a=new nf(this);a.set(0,Yp(this));return a.data()};l.restore=function(a){return Xp(this,a[0])};
function Xp(a,b,c){var d=0,e=!0;a.hb=-1;if(a.ia){if(b||(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.W=b[d++],a.Pa=b[d++],a.aa=b[d++],a.Ca=b[d++],a.ya=b[d++],a.va=b[d++],a.ra=b[d++],a.ma=b[d++],a.Da=b[d++],a.fa=b[d++],"object"==typeof a.fa){var f=a.fa;a.fa=f[0];a.hb=f[1]}}else b||(b=[0,0,Array(14),0,0]),a.pa=b[d++],a.ma=b[d++],a.V=b[d++],a.L=b[d++],a.C=b[d++],a.Oa=b[d++],a.Ka=b[d++],a.Ja=b[d++],f=b[d++],void 0!==f?a.ka=f:void 0===a.ka&&(a.ka=-1);void 0===a.A&&(a.A=Array(a.ua.length));b=b[d];void 0===b&&(b=[]);
for(d=0;d<a.A.length;d++){void 0===a.A[d]&&(a.A[d]={});var f=a.A[d],g=a,h=d,k=f,m=a.ua[d],n=b[d],t=c,q=0,A=!0;n||(n=[0,0,!1,Array(8)]);k.hb=h;k.errorCode=n[q++];k.Vk=n[q++];k.cf=n[q++];k.Te=n[q++];k.Ue=n[q++];k.kb=n[q++];k.ub=n[q++];k.be=n[q++];k.xb=n[q++];k.fe=n[q++];k.Hb=n[q++];k.sg=g.ia?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.ie()||(k.mode="local");k.type=m.type;if(void 0===k.type||
void 0===Rp[g.U][k.type])k.type=g.Ga;m=Rp[g.U][k.type];k.lb=m[2]||17;k.Va=m[3]||512;if(t&&g.N){var m=g.N,F=k.type;if(m.A){var t=null,C=m.A[18];15<F&&(t=F,F=15);h?(C=C&240|F,F=26):(C=C&15|F<<4,F=25);var D=m;D.A&&(D.A[18]=C,Yk(D));null!=t&&m.A&&(m.A[F]=t,Yk(m))}}void 0===k.za&&(k.za=null,g.Na("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Zp(g,k);k.eb=n[q++];k.pb=null;k.za&&(g=n[q],void 0!==g&&0>k.za.restore(g)&&(A=!1),A&&void 0!==k.eb&&(k.pb=k.za.seek(k.be,k.kb,k.xb+k.sg)));A||(e=!1);null!=a.pa&&

View file

@ -603,7 +603,7 @@ l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.la[b]=c;if(this.
b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}};return!0;case "descDisk":case "listDrives":return this.la[b]=c,c.onchange=function(){var a=ea(c.value,10);null!=a&&vm(d,a)},!0;case "loadDisk":return this.la[b]=c,c.onclick=function(){var a=d.la.listDisks;a&&wm(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.Y){c.parentNode.removeChild(c);break}this.la[b]=c;c.onclick=function(){var a=d.la.listDrives;a&&a.options&&d.B&&((a=d.B[ea(a.value,
10)||0])?(a=a.ua)?(a=Ca(rm(a),"octet-stream",!0,a.th.replace(".json",".img")),r(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDisk":if(this.Y)return this.la[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;wm(d,ga(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.ba=a;this.S=jb(a,"ChipSet");if((this.K=kc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){r("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}xm(this);Pb(b,this,ym);Rb(b,this,zm);Am(this,"None","",!0);this.Y&&Am(this,"Local Disk","?");Am(this,"Remote Disk","??");Bm(this)||t(this)};
l.Ub=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.pg){this.C=[];for(a=0;a<this.B.length;a++)Cm(this,a,!0);Bm(this,!0)}}else if(!this.restore(a))return!1;if(a=this.la.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.Z;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.Z&&(a.value="0",vm(this,0))}}return!0};l.Tb=function(a){return a?this.save():!0};l.reset=function(){xm(this)};
l.Ub=function(a,b){if(!b){if(!a){if(this.reset(),this.ba.pg){this.C=[];for(a=0;a<this.B.length;a++)Cm(this,a,!0);Bm(this,!0)}}else if(!this.restore(a))return!1;if(a=this.la.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.Z;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.Z&&(a.value="0",vm(this,0))}}return!0};l.Tb=function(a){return a?this.save():!0};l.reset=function(){xm(this)};
l.save=function(){var a=new ae(this);a.set(0,Dm(this));return a.data()};l.restore=function(a){return xm(this,a[0])};
function xm(a,b){var c=0,d,e=!0;b||(b=[0,0,128,Array(9),0,0,0,[]]);a.Qa=b[c++];c++;a.aa=b[c++];a.I=b[c++];a.G=b[c++];a.D=b[c++];a.P=b[c++];var f=b[c++];d=b[c++];null!=d&&(a.C=d);void 0===a.B&&(a.Z=4,a.S&&(a.Z=+Yi(a.S,Di,void 0)),a.B=Array(4));for(d=0;d<a.B.length;d++){var g=a.B[d];if(void 0===g){var g=a.B[d]={},h;if(a.S)a:{h=a.S;if(d<+Yi(h,Di,void 0)){if(!h.Y){h=360;break a}if(d<h.Y.length){h=h.Y[d];break a}}h=0}else h=0;switch(h){case 160:case 180:g.jb=1;default:g.ib=40;g.eb=9;break;case 720:g.ib=
80;g.eb=9;break;case 1200:g.ib=80;g.eb=15;break;case 1440:g.ib=80,g.eb=18}}var k=a,m=d,q=f[d],y=0;h=!0;g.Qa=m;g.ne=g.pe=!1;q||(q=[192,!0,0,2,0]);"boolean"==typeof q[1]&&(q[1]=["Floppy Drive",g.ib||40,g.jb||q[3],g.eb||9,g.nb||512,q[1],g.Nf,g.Xe,g.Ye]);g.kb=q[y++];var w=q[y++];g.name=w[0];g.ib=w[1];g.jb=w[2];g.eb=w[3];g.nb=w[4];g.qe=w[5];(g.Nf=w[6])?(g.Xe=w[7],g.Ye=w[8]):(g.Nf=g.ib,g.Xe=g.jb,g.Ye=g.eb);g.Ya=q[y++];g.vd=q[y++];g.wb=q[y++];g.vd=100<=g.vd?g.vd-100:g.vd-g.wb;g.mb=q[y++];g.wd=q[y++];g.vb=
@ -627,7 +627,7 @@ var Nm=["XTC","ATC","COMPAQ"],Om=[{0:[306,2],1:[375,8],2:[306,6],3:[306,4]},{1:[
8],20:[733,5],21:[733,7],22:[524,4,40],23:[924,8],24:[966,14],25:[966,16],26:[1023,14],27:[832,6,33],28:[1222,15,34],29:[1240,7,34],30:[615,4,25],31:[615,8,25],32:[905,9,25],33:[832,8,33],34:[966,7,34],35:[966,8,34],36:[966,9,34],37:[966,5,34],38:[612,16,63],39:[1023,11,33],40:[1023,15,34],41:[1630,15,52],42:[1023,16,63],43:[805,4,26],44:[805,2,26],45:[748,8,33],46:[748,6,33],47:[966,5,25]}];l=Z.prototype;
l.zb=function(a,b,c){var d=this;switch(b){case "saveHD0":case "saveHD1":return this.la[b]=c,c.onclick=function(a){return function(){var b=d.B&&d.B[a];b&&b.ua?(b=b.ua,b=Ca(rm(b),"octet-stream",!0,b.th.replace(".json",".img")),r(b)):d.Ba("Hard drive "+a+" is not available.")}}(+b.slice(-1)),!0}return!1};
l.pc=function(a,b,c,d){this.ia=b;this.A=c;this.Ia=d;this.ba=a;if(d=kc(a,"drives"))this.ga=d;else if(this.qa)try{this.ga=eval("("+this.qa+")")}catch(e){r("HDC drive configuration error: "+e.message+" ("+this.qa+")")}this.S=jb(a,"ChipSet");this.H=0;this.ra=3;Pb(b,this,this.W?Pm:Qm);Rb(b,this,this.W?Rm:Sm);this.W&&(this.H++,this.S&&5180==this.S.ca&&this.H++,this.ra=2,b.S[496]=2,b.P[496]=2);Xd(c,19,this.Bl.bind(this));Xd(c,64,this.Cl.bind(this));this.reset();Tm(this)||t(this)};
l.Ub=function(a,b){if(!b)if(!a||!this.restore)Um(this),this.ba.pg&&Tm(this,!0);else if(!this.restore(a))return!1;return!0};l.Tb=function(a){return a?this.save():!0};l.ue=function(){return this.ba?this.ba.ue():""};l.zd=function(){return this.ba?this.ba.zd():""};l.reset=function(){Um(this,null,!0)};l.save=function(){var a=new ae(this);a.set(0,Vm(this));return a.data()};l.restore=function(a){return Um(this,a[0])};
l.Ub=function(a,b){if(!b)if(!a)Um(this),this.ba.pg&&Tm(this,!0);else if(!this.restore(a))return!1;return!0};l.Tb=function(a){return a?this.save():!0};l.ue=function(){return this.ba?this.ba.ue():""};l.zd=function(){return this.ba?this.ba.zd():""};l.reset=function(){Um(this,null,!0)};l.save=function(){var a=new ae(this);a.set(0,Vm(this));return a.data()};l.restore=function(a){return Um(this,a[0])};
function Um(a,b,c){var d=0,e=!0;a.Qa=-1;if(a.W){if(b||(b=[0,0,0,0,0,0,0,64,0,[0,-1]]),a.K=b[d++],a.za=b[d++],a.L=b[d++],a.oa=b[d++],a.ma=b[d++],a.ka=b[d++],a.Z=b[d++],a.aa=b[d++],a.pa=b[d++],a.P=b[d++],"object"==typeof a.P){var f=a.P;a.P=f[0];a.Qa=f[1]}}else b||(b=[0,0,Array(14),0,0]),a.da=b[d++],a.aa=b[d++],a.I=b[d++],a.G=b[d++],a.D=b[d++],a.xa=b[d++],a.va=b[d++],a.sa=b[d++],f=b[d++],void 0!==f?a.Y=f:void 0===a.Y&&(a.Y=-1);void 0===a.B&&(a.B=Array(a.ga.length));b=b[d];void 0===b&&(b=[]);for(d=0;d<
a.B.length;d++){void 0===a.B[d]&&(a.B[d]={});var f=a.B[d],g=a,h=d,k=f,m=a.ga[d],q=b[d],y=c,w=0,z=!0;q||(q=[0,0,!1,Array(8)]);k.Qa=h;k.errorCode=q[w++];k.Kj=q[w++];k.qe=q[w++];k.fe=q[w++];k.ge=q[w++];k.Ya=q[w++];k.jb=q[w++];k.Id=q[w++];k.mb=q[w++];k.wd=q[w++];k.vb=q[w++];k.yf=g.W?0:1;k.name=m.name;void 0===k.name&&(k.name="Hard Drive");k.path=m.path;k.mode=m.mode||(k.path?"preload":"local");"demandro"!=k.mode&&"demandrw"!=k.mode||g.zd()||(k.mode="local");k.type=m.type;if(void 0===k.type||void 0===
Om[g.H][k.type])k.type=g.ra;m=Om[g.H][k.type];k.eb=m[2]||17;k.nb=m[3]||512;if(y&&g.S){var m=g.S,B=k.type;if(m.B){var y=null,Q=m.B[18];15<B&&(y=B,B=15);h?(Q=Q&240|B,B=26):(Q=Q&15|B<<4,B=25);var V=m;V.B&&(V.B[18]=Q,aj(V));null!=y&&m.B&&(m.B[B]=y,aj(m))}}void 0===k.ua&&(k.ua=null,g.Ba("Type "+k.type+' "'+k.name+'" is fixed disk '+h,!0));Wm(g,k);k.Ua=q[w++];k.Wa=null;k.ua&&(g=q[w],void 0!==g&&0>k.ua.restore(g)&&(z=!1),z&&void 0!==k.Ua&&(k.Wa=k.ua.seek(k.Id,k.Ya,k.mb+k.yf)));z||(e=!1);null!=a.da&&1>=d&&

View file

@ -37,14 +37,14 @@ function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("
function p(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}for(var ka=ba,la=["Math","log2"],ma=0;ma<la.length-1;ma++){var na=la[ma];na in ka||(ka[na]={});ka=ka[na]}var oa=la[la.length-1],pa=ka[oa],ra=pa?pa:function(a){return Math.log(a)/Math.LN2};ra!=pa&&null!=ra&&aa(ka,oa,{configurable:!0,writable:!0,value:ra});
var sa={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},ta={rg:0,ud:1,tg:2,ug:3,vg:4,wg:5,xg:6,yg:7,Mc:8,zg:9,vd:10,Ag:11,Bg:12,wd:13,Cg:14,Dg:15,Eg:16,Fg:17,Gg:18,Hg:19,Ig:20,Jg:21,Kg:22,Lg:23,Mg:24,Ng:25,Og:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,Jc:65,qg:66,sg:67,Pg:68,E:69,Qg:70,Rg:71,Sg:72,Tg:73,Ug:74,Vg:75,Wg:76,Xg:77,Yg:78,Zg:79,$g:80,Q:81,ah:82,bh:83,dh:84,eh:85,fh:86,gh:87,hh:88,ih:89,Gd:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,jh:97,kh:98,lh:99,d:100,e:101,mh:102,nh:103,oh:104,ph:105,sh:106,k:107,th:108,uh:109,n:110,vh:111,p:112,q:113,r:114,wh:115,t:116,yh:117,zh:118,Ah:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,xd:127};function q(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Sc=b.comment;this.Fd=b;this.exports={};this.B=this.bindings={};a=this.id.indexOf(".");0>a?this.mb=this.id:(this.nb=this.id.substr(0,a),this.mb=this.id.substr(a+1));this.A={ready:!1,fb:!1,Ac:!1,fa:!1,error:!1};this.hc=null;this.A.error=!1;this.ha=d||0;this.F=this.f=this.D=this.J=this.Pa=null;ua.push(this)}function va(a,b,c){xa[a]&&b&&(xa[a][b]=c)}
"|":124,"}":125,"~":126,xd:127};function q(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.Sc=b.comment;this.Fd=b;this.exports={};this.C=this.bindings={};a=this.id.indexOf(".");0>a?this.nb=this.id:(this.ob=this.id.substr(0,a),this.nb=this.id.substr(a+1));this.A={ready:!1,gb:!1,Ac:!1,ha:!1,error:!1};this.hc=null;this.A.error=!1;this.ja=d||0;this.G=this.f=this.D=this.J=this.Pa=null;ua.push(this)}function va(a,b,c){xa[a]&&b&&(xa[a][b]=c)}
function ya(){return Date.now()||+new Date}function v(a){window&&window.alert(a)}function za(a){var b=!1;window&&(b=window.confirm(a));return b}function Aa(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<ua.length;b++){var d=ua[b];a&&d.id.indexOf(a)||c.push(d)}return c}function Ba(a){if(void 0!==a){var b;for(b=0;b<ua.length;b++)if(ua[b].id===a)return ua[b]}return null}
function Ca(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<ua.length;d++)if(c)c==ua[d]&&(c=null);else if(!(a!=ua[d].type||b&&ua[d].id.indexOf(b)))return ua[d]}return null}function w(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function Da(a,b){var c=x;b=y(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=w(g))&&k.binding&&a.qa(k.type,k.binding,g,k.value),m=l.length}}}}
function Da(a,b){var c=x;b=y(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=w(g))&&k.binding&&a.sa(k.type,k.binding,g,k.value),m=l.length}}}}
function y(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=q.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.qa=function(a,b,c){switch(b){case "clear":return this.B[b]||(this.B[b]=c,c.onclick=function(a){return function(){a.B.print&&(a.B.print.value="")}}(this)),!0;case "print":return this.B[b]||(this.Pa=this.B[b]=c,c.value="",this.u=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.N=function(a){this.u(a,this.mb)}),!0;default:return!1}};h.log=function(){};h.u=function(){};
h.status=function(a){this.u(this.mb+": "+a)};h.N=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ea(a,b){a.A.error=!0;a.N(b)}function Ja(a){return a.A.error?(a.u(a.toString()+" error"),!0):!1}function Ka(a,b){b&&(a.A.ready?b():a.hc=b);return a.A.ready}function A(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.hc,a.hc=null,b&&b()))}function La(a,b){a.A.fb&&(b?a.A.Ac=!0:void 0===b&&a.u(a.toString()+" busy"));return a.A.fb}
function Ma(a,b){if(a.A.Ac)return a.A.fb=!1,a.A.Ac=!1;if(a.A.error)return a.u(a.toString()+" error"),!1;a.A.fb=b;return a.A.fb}h.wa=function(){return this.A.fa=!0};h.va=function(a,b){b&&(this.A.fa=!1);return!0};function B(a,b){if(a.F){a===a.F?b|=0:b=b||a.ha;var c=a.F.ha&b;return!!b&&c===b||!!(c&a.F.cd)}return!1}function C(a,b,c,d){a.F&&(!0===c||B(a,c|0))&&a.F.message(b,d)}
h.sa=function(a,b,c){switch(b){case "clear":return this.C[b]||(this.C[b]=c,c.onclick=function(a){return function(){a.C.print&&(a.C.print.value="")}}(this)),!0;case "print":return this.C[b]||(this.Pa=this.C[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.N=function(a){this.v(a,this.nb)}),!0;default:return!1}};h.log=function(){};h.v=function(){};
h.status=function(a){this.v(this.nb+": "+a)};h.N=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function Ea(a,b){a.A.error=!0;a.N(b)}function Ja(a){return a.A.error?(a.v(a.toString()+" error"),!0):!1}function Ka(a,b){b&&(a.A.ready?b():a.hc=b);return a.A.ready}function A(a,b){a.A.error||(a.A.ready=!1!==b,a.A.ready&&(b=a.hc,a.hc=null,b&&b()))}function La(a,b){a.A.gb&&(b?a.A.Ac=!0:void 0===b&&a.v(a.toString()+" busy"));return a.A.gb}
function Ma(a,b){if(a.A.Ac)return a.A.gb=!1,a.A.Ac=!1;if(a.A.error)return a.v(a.toString()+" error"),!1;a.A.gb=b;return a.A.gb}h.ya=function(){return this.A.ha=!0};h.xa=function(a,b){b&&(this.A.ha=!1);return!0};function B(a,b){if(a.G){a===a.G?b|=0:b=b||a.ja;var c=a.G.ja&b;return!!b&&c===b||!!(c&a.G.cd)}return!1}function C(a,b,c,d){a.G&&(!0===c||B(a,c|0))&&a.G.message(b,d)}
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var xa=window?window.PCjs.Machines:{},ua=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
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 G(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&&
@ -55,48 +55,50 @@ function Za(a){return String.prototype.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}
function ab(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 bb(){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())}
function cb(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function db(a,b){var c,d={ca:null,ea:null,Aa:null,za:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Aa=g.load;d.za=g.exec;if(e=g.bytes)d.ca=e;else if(e=g.words)for(d.ca=Array(2*e.length),f=c=0;c<e.length;c++)d.ca[f++]=e[c]&255,d.ca[f++]=e[c]>>8&255;else if(e=g.data)for(d.ca=Array(4*e.length),f=c=0;c<e.length;c++)d.ca[f++]=
e[c]&255,d.ca[f++]=e[c]>>8&255,d.ca[f++]=e[c]>>16&255,d.ca[f++]=e[c]>>24&255;else d.ca=g;d.ea=g.symbols;d.ca.length?1==d.ca.length&&(v(d.ca[0]),d=null):(v("Empty resource: "+a),d=null)}catch(k){v("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ca=e)}return d}
function db(a,b){var c,d={ca:null,ga:null,Ba:null,Aa:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.Ba=g.load;d.Aa=g.exec;if(e=g.bytes)d.ca=e;else if(e=g.words)for(d.ca=Array(2*e.length),f=c=0;c<e.length;c++)d.ca[f++]=e[c]&255,d.ca[f++]=e[c]>>8&255;else if(e=g.data)for(d.ca=Array(4*e.length),f=c=0;c<e.length;c++)d.ca[f++]=
e[c]&255,d.ca[f++]=e[c]>>8&255,d.ca[f++]=e[c]>>16&255,d.ca[f++]=e[c]>>24&255;else d.ca=g;d.ga=g.symbols;d.ca.length?1==d.ca.length&&(v(d.ca[0]),d=null):(v("Empty resource: "+a),d=null)}catch(k){v("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.ca=e)}return d}
function eb(){return"http://"+(window?window.location.host:"www.pcjs.org")}function fb(){if(null==hb){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}hb=a}return hb}function nb(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function ob(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function pb(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function qb(a){if(!rb){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}rb=c}return rb[a]}
function sb(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}function tb(a,b,c){function d(){--a;0<=a&&(b()||(a=0));0<a?setTimeout(d,0):c()}d()}
function ub(a,b){function c(){b(100===d)&&(e=setTimeout(c,d),d=100)}var d=0,e=null,f=!1;a.onmousedown=function(){f||e||(d=500,c())};a.ontouchstart=function(){e||(d=500,c())};a.onmouseup=a.onmouseout=function(){e&&(clearTimeout(e),e=null)};a.ontouchend=a.ontouchcancel=function(){e&&(clearTimeout(e),e=null);f=!0}}function vb(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function wb(a){xb.init.push(a)}
function yb(a){if(zb)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Ab(a){!zb&&a?(zb=!0,Bb&&Cb("init"),Db&&Cb("show")):zb=a}function Cb(a){xb[a]&&yb(xb[a])}var rb=null,xb={init:[],show:[],exit:[]},Bb=!1,Db=!1,zb=!0,hb=null;vb("onload",function(){Bb=!0;yb(xb.init)});vb("onpageshow",function(){Db=!0;yb(xb.show)});vb(pb("Opera")||pb("iOS")?"onunload":"onbeforeunload",function(){yb(xb.exit)});
var Eb="undefined"!==typeof ArrayBuffer,x="pdp11",Fb="PDPjs",Gb=!1,Nb=Eb,Ob=!0,Pb=!0,Qb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Rb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},x="pdp11",Fb="PDPjs",Gb=!1,Nb=Eb,Pb=Ob=!0,Sb={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,dl11:262144,serial:262144,
var Eb="undefined"!==typeof ArrayBuffer,x="pdp11",Fb="PDPjs",Gb=!1,Hb=Eb,Ib=!0,Pb=!0,Qb="UNKNOWN PANIC ABORT ILLEGAL RED YELLOW FAULT TRACE HALT OPCODE INTERRUPT".split(" "),Rb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},x="pdp11",Fb="PDPjs",Gb=!1,Hb=Eb,Pb=Ib=!0,Sb={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,dl11:262144,serial:262144,
kw11:524288,timer:524288,speaker:16777216,computer:33554432,log:268435456,warn:536870912,buffer:1073741824,halt:-2147483648};
function Tb(a,b){q.call(this,"Panel",a,0,512);this.j=this.v=0;this.I=b;this.xa=this.i=this.Za=this.wb=0;this.C=this.G=this.w=!1;this.H=Ub;this.g={};this.b={START:[1,1,!0,!1,this.Xd],STEP:[1,1,!1,!1,this.Yd],ENABLE:[1,1,!1,!1,this.Td],CONT:[1,1,!0,!1,this.Rd],DEP:[0,0,!0,!1,this.Sd],EXAM:[1,1,!0,!1,this.Ud],LOAD:[1,1,!0,!1,this.Wd],TEST:[0,0,!0,!1,this.Vd]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Zd,a];this.F=this.f=this.D=this.J=null;A(this)}p(Tb,q);h=Tb.prototype;h.reset=function(){this.stop()};
h.qa=function(a,b,c,d){if(this.J&&this.J.qa(a,b,c,d)||this.f&&this.f.qa(a,b,c,d)||this.F&&this.F.qa(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.B[b]=c,this.v++,!0;default:return"led"==a||"rled"==a?(this.B[b]=c,this.g[b]=d?1:0,this.v++,!0):"switch"==a?(void 0===this.b[b]&&(this.b[b]=[d?1:0,d?1:0]),this.B[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,
b){return function(){Vb(a,b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){Wb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){Vb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){Wb(a,b)}}(this,b),!0):q.prototype.qa.call(this,a,b,c,d)}};h.ua=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;Xb(b,this,Yb);Zb(b,this.reset.bind(this));$b(this);ac(this)};h.wa=function(a,b){b||(this.I&&bc(),this.reset());return!0};h.va=function(){return!0};
function cc(a,b,c){if(a=a.B[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function $b(a,b){for(var c in a.g)cc(a,c,null!=b?b:a.g[c])}function dc(a,b,c){if(a=a.B[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function ac(a){for(var b in a.b)dc(a,b,a.b[b][1])}function ec(a,b,c,d){a.B[b]&&(void 0===c&&(Ea(a,"Value for "+b+" is invalid"),a.f.Z()),c=8==(a.F&&a.F.Ba||8)?H(c,d):I(c,d),a.B[b].textContent!=c&&(a.B[b].textContent=c))}
function Vb(a,b){var c=a.b[b];dc(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=fc&&(a.C=b==gc,a.G=b==hc)}function Wb(a,b){var c=a.b[b];c[2]&&c[3]&&(dc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Xd=function(a){a||this.f.A.U||(a=this.f,a.D.reset(),ic(a),this.b[jc]&&this.b[jc][1]&&kc(this.f))};h.Yd=function(){};h.Td=function(a){a||this.f.Z()};
h.Rd=function(a){if(!a&&!this.f.A.U)if(this.b[jc]&&this.b[jc][1])kc(this.f);else{if((a=this.F)&&!La(a,!0))Ma(a,!0),lc(a,0,null),Ma(a,!1);else try{var b=this.f.ec(1);0<b&&(mc(this.f,b),nc(this.f,b,!0),oc(this.f,b))}catch(c){"number"!=typeof c&&Ea(this.f,c.stack||c.message)}this.stop();this.J&&J(this.J)}};h.Sd=function(a){if(a&&!this.f.A.U)if(this.C&&pc(this),a=qc(this,this.Za),this.H==Ub)rc(this.D,this.xa,a);else{var b=this.f,c=this.xa;b.na++;b.D.Ob(Dc(b,c,4),a);b.na--}};
h.Ud=function(a){a||this.f.A.U||(this.G&&pc(this),a=this.H==Ub?Ec(this.D,this.xa):Fc(this.f,this.xa),qc(this,a))};h.Wd=function(a){a||this.f.A.U||Gc(this,this.Za)};h.Vd=function(a){a?(this.w=!0,$b(this,!0)):(this.w=!1,$b(this),Hc(this,0))};h.Zd=function(a,b){this.Za=a?this.Za|1<<b:this.Za&~(1<<b)};function pc(a){var b=1140>=a.f.ia?8:16,c=65472<=a.xa&&a.xa<65472+b,b=c?1:2,c=c?15:a.D.I;a.b[fc]&&a.b[fc][1]||(b=-b);Gc(a,a.xa&~c|a.xa+b&c)}
function Gc(a,b){a.xa=b&a.D.I;b=a.xa;for(var c=0;22>c;c++)Ic(a,"A"+c,b&1<<c)}function qc(a,b){a.i=b&65535;b=a.i;for(var c=0;16>c;c++)Ic(a,"D"+c,b&1<<c);return a.i}function Ic(a,b,c){a.g[b]=c;a.w||cc(a,b,c)}function Jc(a){return void 0!==a.B[Kc]}function Hc(a,b){if(Jc(a)){a.Za=b;for(var c=0;22>c;c++)a.b["S"+c][1]=b&1<<c?1:0;ac(a)}}h.stop=function(){Gc(this,this.f.g[7])};h.Gc=function(a){this.xa=a};h.setData=function(a,b){b?this.wb=a:this.i=a};h.de=function(a,b){return(b?this.wb:this.Za)&65535};
h.qf=function(a){this.wb=a};function bc(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=Ba(d.id);e||(e=new Tb(d,!0));Da(e,c)}}var Ub=7,Kc="S0",gc="DEP",jc="ENABLE",hc="EXAM",fc="STEP",Lc={},Yb=(Lc[65400]=[null,null,Tb.prototype.de,Tb.prototype.qf,"CNSW"],Lc);wb(bc);
function Mc(a,b,c){q.call(this,"Bus",a,0,16);this.f=b;this.F=c;this.V=+a.busWidth||16;this.M=1<<this.V;this.I=this.M-1;this.j=Nc;this.g=Math.log2(this.j);this.S=this.j>>2;this.i=this.j-1;this.H=this.M/this.j|0;this.T=this.H-1;this.Ma=[];this.la=0;this.G=!1;this.O=[];this.Hd=[Oc,Pc,Qc,Rc];this.b=this.v=[];this.C=this.L=this.w=this.P=this.R=0;a=new L(this);Sc(a,this.F);this.b=Array(this.H);this.v=Array(this.H);for(b=0;b<this.H;b++)this.b[b]=this.v[b]=a;this.C=this.M-Nc;Tc(this,this.C,Nc,Uc,this);this.R=
this.P=(this.C&this.I)>>>this.g;this.L=0;this.w=this.I;A(this)}p(Mc,q);function Vc(a,b){if(b!=a.L){for(var c=0;c<a.H;c++)a.v[c]=a.b[c];a.L=0;a.w=a.I;b&&(a.L=b,b=1<<b,a.w=b-1,b-=Nc,a.R=(b&a.w)>>>a.g,a.v[a.R]=a.b[a.P])}}h=Mc.prototype;h.reset=function(){for(var a=0;a<this.O.length;a++)this.O[a]();Vc(this,16)};h.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.va=function(a){return a?this.save():!0};h.save=function(){var a=new M(this);a.set(0,Wc(this));return a.data()};
function Tb(a,b){q.call(this,"Panel",a,0,512);this.j=this.u=0;this.M=b;this.fa=this.g=this.Ta=this.Sa=0;this.B=this.F=-1;this.H=this.I=this.w=!1;this.L=Ub;this.i={};this.b={START:[1,1,!0,!1,this.Xd],STEP:[1,1,!1,!1,this.Yd],ENABLE:[1,1,!1,!1,this.Td],CONT:[1,1,!0,!1,this.Rd],DEP:[0,0,!0,!1,this.Sd],EXAM:[1,1,!0,!1,this.Ud],LOAD:[1,1,!0,!1,this.Wd],TEST:[0,0,!0,!1,this.Vd]};for(a=0;22>a;a++)this.b["S"+a]=[0,0,!1,!1,this.Zd,a];this.G=this.f=this.D=this.J=null;A(this)}p(Tb,q);h=Tb.prototype;
h.reset=function(){this.stop();Vb(this,this.Sa=0)};
h.sa=function(a,b,c,d){if(this.J&&this.J.sa(a,b,c,d)||this.f&&this.f.sa(a,b,c,d)||this.G&&this.G.sa(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.C[b]=c,this.u++,!0;default:return"led"==a||"rled"==a?(this.C[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.C[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):q.prototype.sa.call(this,a,b,c,d)}};h.wa=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.G=d;Yb(b,this,Zb);$b(b,this.reset.bind(this));ac(this);bc(this)};
h.ya=function(a,b){if(!b)if(this.M&&cc(),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.xa=function(a){return a?this.save():!0};h.save=function(){var a=new J(this);a.set(0,[this.fa,this.Sa,this.Ta]);return a.data()};h.restore=function(a){if(a=a[0])dc(this,this.fa=a[0]),Vb(this,this.Sa=a[1]),ec(this,a[2]);return!0};function fc(a,b,c){if(a=a.C[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ac(a,b){for(var c in a.i)fc(a,c,null!=b?b:a.i[c])}
function gc(a,b,c){if(a=a.C[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function bc(a){for(var b in a.b)gc(a,b,a.b[b][1])}function hc(a,b,c,d){a.C[b]&&(void 0===c&&(Ea(a,"Value for "+b+" is invalid"),a.f.Z()),c=8==(a.G&&a.G.Ca||8)?H(c,d):I(c,d),a.C[b].textContent!=c&&(a.C[b].textContent=c))}function Wb(a,b){var c=a.b[b];gc(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=ic&&(a.H=b==jc,a.I=b==kc)}
function Xb(a,b){var c=a.b[b];c[2]&&c[3]&&(gc(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.Xd=function(a){a||this.f.A.U||(a=this.f,a.D.reset(),lc(a),this.b[mc]&&this.b[mc][1]&&nc(this.f))};h.Yd=function(){};h.Td=function(a){a||this.f.Z()};
h.Rd=function(a){if(!a&&!this.f.A.U)if(this.b[mc]&&this.b[mc][1])nc(this.f);else{if((a=this.G)&&!La(a,!0))Ma(a,!0),oc(a,0,null),Ma(a,!1);else try{var b=this.f.ec(1);0<b&&(pc(this.f,b),qc(this.f,b,!0),rc(this.f,b))}catch(c){"number"!=typeof c&&Ea(this.f,c.stack||c.message)}this.stop();this.J&&L(this.J)}};h.Sd=function(a){if(a&&!this.f.A.U)if(this.H&&sc(this),a=Vb(this,this.Ta),this.L==Ub)Ec(this.D,this.fa,a);else{var b=this.f,c=this.fa;b.oa++;b.D.Ob(Fc(b,c,4),a);b.oa--}};
h.Ud=function(a){a||this.f.A.U||(this.I&&sc(this),a=this.L==Ub?Gc(this.D,this.fa):Hc(this.f,this.fa),Vb(this,a))};h.Wd=function(a){a||this.f.A.U||dc(this,this.Ta)};h.Vd=function(a){a?(this.w=!0,ac(this,!0)):(this.w=!1,ac(this),ec(this,0))};h.Zd=function(a,b){this.Ta=a?this.Ta|1<<b:this.Ta&~(1<<b)};function sc(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.D.I;a.b[ic]&&a.b[ic][1]||(b=-b);dc(a,a.fa&~c|a.fa+b&c)}
function dc(a,b){a.fa=b&a.D.I;if(a.B!==a.fa){a.B=a.fa;b=a.B;for(var c=0;22>c;c++)Ic(a,"A"+c,b&1<<c)}}function Vb(a,b){a.g=b&65535;if(a.F!==a.g){a.F=a.g;b=a.F;for(var c=0;16>c;c++)Ic(a,"D"+c,b&1<<c)}return a.g}function Ic(a,b,c){a.i[b]=c;a.w||fc(a,b,c)}function Jc(a){return void 0!==a.C[Kc]}function ec(a,b){if(Jc(a)){a.Ta=b;for(var c=0;22>c;c++)a.b["S"+c][1]=b&1<<c?1:0;bc(a)}}h.stop=function(){dc(this,this.f.g[7])};h.Gc=function(a){this.fa=a};h.setData=function(a,b){b?this.Sa=a:this.g=a};
h.de=function(a,b){return(b?this.Sa:this.Ta)&65535};h.qf=function(a){this.Sa=a};function cc(){for(var a=y(document,x,"panel"),b=0;b<a.length;b++){var c=a[b],d=w(c),e=Ba(d.id);e||(e=new Tb(d,!0));Da(e,c)}}var Ub=7,Kc="S0",jc="DEP",mc="ENABLE",kc="EXAM",ic="STEP",Lc={},Zb=(Lc[65400]=[null,null,Tb.prototype.de,Tb.prototype.qf,"CNSW"],Lc);wb(cc);
function Mc(a,b,c){q.call(this,"Bus",a,0,16);this.f=b;this.G=c;this.V=+a.busWidth||16;this.M=1<<this.V;this.I=this.M-1;this.j=Nc;this.g=Math.log2(this.j);this.S=this.j>>2;this.i=this.j-1;this.H=this.M/this.j|0;this.T=this.H-1;this.Ma=[];this.ma=0;this.F=!1;this.O=[];this.Hd=[Oc,Pc,Qc,Rc];this.b=this.u=[];this.B=this.L=this.w=this.P=this.R=0;a=new M(this);Sc(a,this.G);this.b=Array(this.H);this.u=Array(this.H);for(b=0;b<this.H;b++)this.b[b]=this.u[b]=a;this.B=this.M-Nc;Tc(this,this.B,Nc,Uc,this);this.R=
this.P=(this.B&this.I)>>>this.g;this.L=0;this.w=this.I;A(this)}p(Mc,q);function Vc(a,b){if(b!=a.L){for(var c=0;c<a.H;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-=Nc,a.R=(b&a.w)>>>a.g,a.u[a.R]=a.b[a.P])}}h=Mc.prototype;h.reset=function(){for(var a=0;a<this.O.length;a++)this.O[a]();Vc(this,16)};h.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.xa=function(a){return a?this.save():!0};h.save=function(){var a=new J(this);a.set(0,Wc(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.S){for(var e=0,f=Array(this.S),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)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Tc(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.Kb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Kb){n=l.size-(f-m);n>g&&(n=g);l.Kb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return Xc(Yc,f,g)}f=new L(a,f,n,a.j,d,e);Sc(f,a.F,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Zc[d]+" at "+H(b)),!0):Xc($c,b,c)}h.Kc=function(a){return this.v[(a&this.w)>>>this.g].vb(a&this.i,a)};
h.dc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Pb||b!=this.i?this.v[c].ma(b,a):this.v[c++].vb(b,a)|this.v[c&this.T].vb(0,a+1)<<8};h.Lc=function(a,b){this.v[(a&this.w)>>>this.g].yb(a&this.i,b,a)};h.Ob=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Pb||c!=this.i?this.v[d].zb(c,b,a):(this.v[d++].yb(c,b&255,a),this.v[d&this.T].yb(0,b>>8&255,a+1))};function ad(a,b){return a.b[(b&a.I)>>>a.g]}
function Ec(a,b){var c;a.G=!1;a.la++;var d=b&a.i,e=ad(a,b);Pb||d!=a.i?c=e.C(d,b):c=e.j(d,b)|ad(a,b+1).j(0,b+1)<<8;a.la--;return c}function bd(a,b,c){a.G=!1;a.la++;ad(a,b).D(b&a.i,c&255,b);a.la--}function rc(a,b,c){a.G=!1;a.la++;var d=b&a.i,e=ad(a,b);Pb||d!=a.i?e.G(d,c&65535,b):(e.D(d,c&255,b),ad(a,b+1).D(0,c>>8&255,b+1));a.la--}
function Wc(a){for(var b=0,c=[],d=0;d<a.H;d++){var e=a.b[d];if(e.Wa||e.Nd){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 cd(a){for(var b=dd,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Kb)}return c}
function Tc(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.Kb+=l.K-f,l.K=f,!0;if(f>=l.K+l.Kb){n=l.size-(f-m);n>g&&(n=g);l.Kb=f-l.K+n;f=m+a.j;g-=n;k++;continue}}return Xc(Yc,f,g)}f=new M(a,f,n,a.j,d,e);Sc(f,a.G,l);a.b[k++]=f;f=m+a.j;g-=n}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+Zc[d]+" at "+H(b)),!0):Xc($c,b,c)}h.Kc=function(a){return this.u[(a&this.w)>>>this.g].wb(a&this.i,a)};
h.dc=function(a){var b=a&this.i,c=(a&this.w)>>>this.g;return Pb||b!=this.i?this.u[c].na(b,a):this.u[c++].wb(b,a)|this.u[c&this.T].wb(0,a+1)<<8};h.Lc=function(a,b){this.u[(a&this.w)>>>this.g].yb(a&this.i,b,a)};h.Ob=function(a,b){var c=a&this.i,d=(a&this.w)>>>this.g;Pb||c!=this.i?this.u[d].zb(c,b,a):(this.u[d++].yb(c,b&255,a),this.u[d&this.T].yb(0,b>>8&255,a+1))};function ad(a,b){return a.b[(b&a.I)>>>a.g]}
function Gc(a,b){var c;a.F=!1;a.ma++;var d=b&a.i,e=ad(a,b);Pb||d!=a.i?c=e.B(d,b):c=e.j(d,b)|ad(a,b+1).j(0,b+1)<<8;a.ma--;return c}function bd(a,b,c){a.F=!1;a.ma++;ad(a,b).D(b&a.i,c&255,b);a.ma--}function Ec(a,b,c){a.F=!1;a.ma++;var d=b&a.i,e=ad(a,b);Pb||d!=a.i?e.F(d,c&65535,b):(e.D(d,c&255,b),ad(a,b+1).D(0,c>>8&255,b+1));a.ma--}
function Wc(a){for(var b=0,c=[],d=0;d<a.H;d++){var e=a.b[d];if(e.Ya||e.Nd){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 cd(a){for(var b=dd,c=0,d=0;d<a.b.length;d++){var e=a.b[d];e.type==b&&(c=e.K+e.Kb)}return c}
function ed(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var n=b&fd;if(void 0!==a.Ma[n])return v("I/O address already registered: "+I(b,8,!0)),!1;var r=l||"unknown";r&&0<=m&&(r+=m++);a.Ma[n]=[d,e,f,g,r,k||16,!1]}return!0}
function Xb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.f.ia)){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 r=g[4],u=g[5]||1,t=0;t<u;t++,f+=2)if(r&&1<u&&(r=g[4]+t),!ed(a,f,f,k,l,m,n,g[7]||b.ha,r||b.mb))return!1}}return!0}
function Zb(a,b){a.O.push(b)}h.La=function(a,b,c){this.G=!0;this.la||(this.F&&B(this.F,4)&&C(this.F,"memory fault ("+c+") on "+O(this.F,a),!0,!0),b&&(this.f.R|=b),this.f.ra(4,0,a))};function gd(a){var b=a.G;a.G=!1;return b}function Xc(a,b,c){v("Memory block error ("+a+": "+I(b)+","+I(c)+")");return!1}var Nc=8192,fd=Nc-1,Yc=1,$c=2;
function Oc(a,b){var c=-1,d=this.controller,e=d.Ma[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.Ma[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&B(this.f,16|e[5])&&C(this.f,e[4]+".readByte("+O(this.f,b)+"): "+O(this.f,c),!0,!d.la),c;d.La(b,16,3);c=255;this.f&&B(this.f,16)&&C(this.f,"warning: unconverted read access to byte @"+O(this.f,b)+": "+O(this.f,c),!0,!d.la);return c}
function Pc(a,b,c){var d=!1,e=this.controller,f=e.Ma[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.Ma[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&&B(this.f,16|f[5])&&C(this.f,f[4]+".writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.la):(e.La(c,16,5),this.f&&B(this.f,16)&&C(this.f,"warning: unconverted write access to byte @"+O(this.f,c)+": "+O(this.f,
b),!0,!e.la))}function Qc(a,b){var c=-1,d=this.controller;a=d.Ma[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&&B(this.f,16|a[5])&&C(this.f,a[4]+".readWord("+O(this.f,b)+"): "+O(this.f,c),!0,!d.la),c;d.La(b,16,2);c=65535;this.f&&B(this.f,16)&&C(this.f,"warning: unconverted read access to word @"+O(this.f,b)+": "+O(this.f,c),!0,!d.la);return c}
function Rc(a,b,c){var d=!1,e=this.controller;a=e.Ma[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&&B(this.f,16|a[5])&&C(this.f,a[4]+".writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.la):(e.La(c,16,4),this.f&&B(this.f,16)&&C(this.f,"warning: unconverted write access to word @"+O(this.f,c)+": "+O(this.f,b),!0,!e.la))}function P(a){q.call(this,"Device",a,0,256);this.b={Ya:128,Hc:-1}}p(P,q);h=P.prototype;
h.ua=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.F=d;var e=this;this.b.Hc=hd(c,function(){e.b.Ya|=128;e.b.Ya&64&&id(e.f,e.b.hb);e.J&&J(e.J,1);jd(e.f,e.b.Hc,1E3/60)});this.b.hb=kd(c,64,6,524288);Xb(b,this,ld);Zb(b,this.reset.bind(this));d&&md(d,64,function(a){var b=e.f;nd(e,"KIPDR",b.C[0],0,a[0]);nd(e,"KDPDR",b.C[0],8,a[0]);nd(e,"KIPAR",b.M[0],0,a[0]);nd(e,"KDPAR",b.M[0],8,a[0],!0);nd(e,"SIPDR",b.C[1],0,a[0]);nd(e,"SDPDR",b.C[1],8,a[0]);nd(e,"SIPAR",b.M[1],0,a[0]);nd(e,"SDPAR",b.M[1],8,a[0],
!0);nd(e,"UIPDR",b.C[3],0,a[0]);nd(e,"UDPDR",b.C[3],8,a[0]);nd(e,"UIPAR",b.M[3],0,a[0]);nd(e,"UDPAR",b.M[3],8,a[0],!0);b.T&32&&nd(e,"UNIMAP",b.Ga,-1,a[0])});A(this)};function nd(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?"["+Oa(n)+"]":"")+":"),g+=" "+O(a,c[d+n],l);a.u(g+(f?"\n":""))}}h.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.va=function(a){return a?this.save():!0};h.reset=function(){this.b.Ya=128;jd(this.f,this.b.Hc,1E3/60,!0)};h.save=function(){var a=new M(this);a.set(0,[this.b.Ya]);return a.data()};h.restore=function(a){a=ja(a[0]);this.b.Ya=a.next().value;return!0};h.ke=function(){return this.b.Ya};h.xf=function(a){this.b.Ya=a&192;this.b.Ya&64||od(this.f,this.b.hb)};h.me=function(){return pd(this.f)};h.zf=function(a){qd(this.f,a&-129|this.f.S&128)};h.ne=function(){return rd(this.f)};h.oe=function(){return sd(this.f)};
h.pe=function(){return this.f.T};h.Af=function(a){td(this.f,a)};h.Xe=function(a){a=a>>1&63;var b=this.f.Ga[a>>1];return a&1?b>>16:b&65535};h.hg=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ga[c]=b&1?this.f.Ga[c]&65535|(a&63)<<16:this.f.Ga[c]&-65536|a&65534};h.Qe=function(a){return this.f.C[1][a>>1&7]};h.ag=function(a,b){this.f.C[1][b>>1&7]=a&65295};h.Oe=function(a){return this.f.C[1][(a>>1&7)+8]};h.Zf=function(a,b){this.f.C[1][(b>>1&7)+8]=a&65295};h.Pe=function(a){return this.f.M[1][a>>1&7]};
h.$f=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.C[1][b]&=65295};h.Ne=function(a){return this.f.M[1][(a>>1&7)+8]};h.Yf=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.C[1][b]&=65295};h.je=function(a){return this.f.C[0][a>>1&7]};h.wf=function(a,b){this.f.C[0][b>>1&7]=a&65295};h.he=function(a){return this.f.C[0][(a>>1&7)+8]};h.uf=function(a,b){this.f.C[0][(b>>1&7)+8]=a&65295};h.ie=function(a){return this.f.M[0][a>>1&7]};h.vf=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.C[0][b]&=65295};
h.ge=function(a){return this.f.M[0][(a>>1&7)+8]};h.tf=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.C[0][b]&=65295};h.We=function(a){return this.f.C[3][a>>1&7]};h.gg=function(a,b){this.f.C[3][b>>1&7]=a&65295};h.Ue=function(a){return this.f.C[3][(a>>1&7)+8]};h.eg=function(a,b){this.f.C[3][(b>>1&7)+8]=a&65295};h.Ve=function(a){return this.f.M[3][a>>1&7]};h.fg=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.C[3][b]&=65295};h.Te=function(a){return this.f.M[3][(a>>1&7)+8]};
h.dg=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.C[3][b]&=65295};h.Ib=function(a){a&=7;return this.f.w&2048?this.f.oa[a]:this.f.g[a]};h.Mb=function(a,b){b&=7;this.f.w&2048?this.f.oa[b]=a:this.f.g[b]=a};h.ue=function(){return this.f.w&49152?this.f.W[0]:this.f.g[6]};h.Ff=function(a){this.f.w&49152?this.f.W[0]=a:this.f.g[6]=a};h.xe=function(){return this.f.g[7]};h.If=function(a){this.f.g[7]=a};h.Jb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.oa[a]};
h.Nb=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.oa[b]=a};h.ve=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.W[1]};h.Gf=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.W[1]=a};h.we=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.W[3]};h.Hf=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.W[3]=a};h.fe=function(a){return this.f.ac[a-65504>>1]};h.sf=function(a,b){this.f.ac[b-65504>>1]=a};h.nd=function(a){return 65520==a?(cd(this.D)>>6)-1:0};
h.sd=function(){};h.Se=function(){return 1};h.cg=function(){};h.ee=function(){return this.f.R};h.rf=function(){this.f.R=0};h.le=function(){return this.f.$b};h.yf=function(a,b){b&1||(a&=255);this.f.$b=a};h.qe=function(a,b){return b?0:this.f.Va};h.Bf=function(a){ud(this.f,a)};h.Re=function(a,b){return b?0:this.f.ya&65280};h.bg=function(a){this.f.ya=a|255};h.te=function(){return vd(this.f)};h.Ef=function(a){Ed(this.f,a)};h.rd=function(a,b){B(this)&&C(this,"writeIgnored("+H(b)+"): "+H(a),!0,!0)};
function Yb(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 r=g[4],u=g[5]||1,t=0;t<u;t++,f+=2)if(r&&1<u&&(r=g[4]+t),!ed(a,f,f,k,l,m,n,g[7]||b.ja,r||b.nb))return!1}}return!0}
function $b(a,b){a.O.push(b)}h.La=function(a,b,c){this.F=!0;this.ma||(this.G&&B(this.G,4)&&C(this.G,"memory fault ("+c+") on "+O(this.G,a),!0,!0),b&&(this.f.R|=b),this.f.ta(4,0,a))};function gd(a){var b=a.F;a.F=!1;return b}function Xc(a,b,c){v("Memory block error ("+a+": "+I(b)+","+I(c)+")");return!1}var Nc=8192,fd=Nc-1,Yc=1,$c=2;
function Oc(a,b){var c=-1,d=this.controller,e=d.Ma[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.Ma[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return this.f&&B(this.f,16|e[5])&&C(this.f,e[4]+".readByte("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ma),c;d.La(b,16,3);c=255;this.f&&B(this.f,16)&&C(this.f,"warning: unconverted read access to byte @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ma);return c}
function Pc(a,b,c){var d=!1,e=this.controller,f=e.Ma[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.Ma[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&&B(this.f,16|f[5])&&C(this.f,f[4]+".writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ma):(e.La(c,16,5),this.f&&B(this.f,16)&&C(this.f,"warning: unconverted write access to byte @"+O(this.f,c)+": "+O(this.f,
b),!0,!e.ma))}function Qc(a,b){var c=-1,d=this.controller;a=d.Ma[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&&B(this.f,16|a[5])&&C(this.f,a[4]+".readWord("+O(this.f,b)+"): "+O(this.f,c),!0,!d.ma),c;d.La(b,16,2);c=65535;this.f&&B(this.f,16)&&C(this.f,"warning: unconverted read access to word @"+O(this.f,b)+": "+O(this.f,c),!0,!d.ma);return c}
function Rc(a,b,c){var d=!1,e=this.controller;a=e.Ma[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&&B(this.f,16|a[5])&&C(this.f,a[4]+".writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0,!e.ma):(e.La(c,16,4),this.f&&B(this.f,16)&&C(this.f,"warning: unconverted write access to word @"+O(this.f,c)+": "+O(this.f,b),!0,!e.ma))}function P(a){q.call(this,"Device",a,0,256);this.b={$a:128,Hc:-1}}p(P,q);h=P.prototype;
h.wa=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.G=d;var e=this;this.b.Hc=hd(c,function(){e.b.$a|=128;e.b.$a&64&&id(e.f,e.b.ib);e.J&&L(e.J,1);jd(e.f,e.b.Hc,1E3/60)});this.b.ib=kd(c,64,6,524288);Yb(b,this,ld);$b(b,this.reset.bind(this));d&&md(d,64,function(a){var b=e.f;nd(e,"KIPDR",b.B[0],0,a[0]);nd(e,"KDPDR",b.B[0],8,a[0]);nd(e,"KIPAR",b.M[0],0,a[0]);nd(e,"KDPAR",b.M[0],8,a[0],!0);nd(e,"SIPDR",b.B[1],0,a[0]);nd(e,"SDPDR",b.B[1],8,a[0]);nd(e,"SIPAR",b.M[1],0,a[0]);nd(e,"SDPAR",b.M[1],8,a[0],
!0);nd(e,"UIPDR",b.B[3],0,a[0]);nd(e,"UDPDR",b.B[3],8,a[0]);nd(e,"UIPAR",b.M[3],0,a[0]);nd(e,"UDPAR",b.M[3],8,a[0],!0);b.T&32&&nd(e,"UNIMAP",b.Ga,-1,a[0])});A(this)};function nd(a,b,c,d,e,f){a=a.G;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?"["+Oa(n)+"]":"")+":"),g+=" "+O(a,c[d+n],l);a.v(g+(f?"\n":""))}}h.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.xa=function(a){return a?this.save():!0};h.reset=function(){this.b.$a=128;jd(this.f,this.b.Hc,1E3/60,!0)};h.save=function(){var a=new J(this);a.set(0,[this.b.$a]);return a.data()};h.restore=function(a){a=ja(a[0]);this.b.$a=a.next().value;return!0};h.ke=function(){return this.b.$a};h.xf=function(a){this.b.$a=a&192;this.b.$a&64||od(this.f,this.b.ib)};h.me=function(){return pd(this.f)};h.zf=function(a){qd(this.f,a&-129|this.f.S&128)};h.ne=function(){return rd(this.f)};h.oe=function(){return sd(this.f)};
h.pe=function(){return this.f.T};h.Af=function(a){td(this.f,a)};h.Xe=function(a){a=a>>1&63;var b=this.f.Ga[a>>1];return a&1?b>>16:b&65535};h.hg=function(a,b){b=b>>1&63;var c=b>>1;this.f.Ga[c]=b&1?this.f.Ga[c]&65535|(a&63)<<16:this.f.Ga[c]&-65536|a&65534};h.Qe=function(a){return this.f.B[1][a>>1&7]};h.ag=function(a,b){this.f.B[1][b>>1&7]=a&65295};h.Oe=function(a){return this.f.B[1][(a>>1&7)+8]};h.Zf=function(a,b){this.f.B[1][(b>>1&7)+8]=a&65295};h.Pe=function(a){return this.f.M[1][a>>1&7]};
h.$f=function(a,b){b=b>>1&7;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.Ne=function(a){return this.f.M[1][(a>>1&7)+8]};h.Yf=function(a,b){b=(b>>1&7)+8;this.f.M[1][b]=a;this.f.B[1][b]&=65295};h.je=function(a){return this.f.B[0][a>>1&7]};h.wf=function(a,b){this.f.B[0][b>>1&7]=a&65295};h.he=function(a){return this.f.B[0][(a>>1&7)+8]};h.uf=function(a,b){this.f.B[0][(b>>1&7)+8]=a&65295};h.ie=function(a){return this.f.M[0][a>>1&7]};h.vf=function(a,b){b=b>>1&7;this.f.M[0][b]=a;this.f.B[0][b]&=65295};
h.ge=function(a){return this.f.M[0][(a>>1&7)+8]};h.tf=function(a,b){b=(b>>1&7)+8;this.f.M[0][b]=a;this.f.B[0][b]&=65295};h.We=function(a){return this.f.B[3][a>>1&7]};h.gg=function(a,b){this.f.B[3][b>>1&7]=a&65295};h.Ue=function(a){return this.f.B[3][(a>>1&7)+8]};h.eg=function(a,b){this.f.B[3][(b>>1&7)+8]=a&65295};h.Ve=function(a){return this.f.M[3][a>>1&7]};h.fg=function(a,b){b=b>>1&7;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Te=function(a){return this.f.M[3][(a>>1&7)+8]};
h.dg=function(a,b){b=(b>>1&7)+8;this.f.M[3][b]=a;this.f.B[3][b]&=65295};h.Ib=function(a){a&=7;return this.f.w&2048?this.f.pa[a]:this.f.g[a]};h.Mb=function(a,b){b&=7;this.f.w&2048?this.f.pa[b]=a:this.f.g[b]=a};h.ue=function(){return this.f.w&49152?this.f.W[0]:this.f.g[6]};h.Ff=function(a){this.f.w&49152?this.f.W[0]=a:this.f.g[6]=a};h.xe=function(){return this.f.g[7]};h.If=function(a){this.f.g[7]=a};h.Jb=function(a){a&=7;return this.f.w&2048?this.f.g[a]:this.f.pa[a]};
h.Nb=function(a,b){b&=7;this.f.w&2048?this.f.g[b]=a:this.f.pa[b]=a};h.ve=function(){return 1==(this.f.w&49152)>>14?this.f.g[6]:this.f.W[1]};h.Gf=function(a){1==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.W[1]=a};h.we=function(){return 3==(this.f.w&49152)>>14?this.f.g[6]:this.f.W[3]};h.Hf=function(a){3==(this.f.w&49152)>>14?this.f.g[6]=a:this.f.W[3]=a};h.fe=function(a){return this.f.ac[a-65504>>1]};h.sf=function(a,b){this.f.ac[b-65504>>1]=a};h.nd=function(a){return 65520==a?(cd(this.D)>>6)-1:0};
h.sd=function(){};h.Se=function(){return 1};h.cg=function(){};h.ee=function(){return this.f.R};h.rf=function(){this.f.R=0};h.le=function(){return this.f.$b};h.yf=function(a,b){b&1||(a&=255);this.f.$b=a};h.qe=function(a,b){return b?0:this.f.Xa};h.Bf=function(a){ud(this.f,a)};h.Re=function(a,b){return b?0:this.f.za&65280};h.bg=function(a){this.f.za=a|255};h.te=function(){return vd(this.f)};h.Ef=function(a){wd(this.f,a)};h.rd=function(a,b){B(this)&&C(this,"writeIgnored("+H(b)+"): "+H(a),!0,!0)};
var Q={},ld=(Q[61568]=[null,null,P.prototype.Xe,P.prototype.hg,"UNIMAP",64,1170],Q[62592]=[null,null,P.prototype.Qe,P.prototype.ag,"SIPDR",8,1145,64],Q[62608]=[null,null,P.prototype.Oe,P.prototype.Zf,"SDPDR",8,1145,64],Q[62624]=[null,null,P.prototype.Pe,P.prototype.$f,"SIPAR",8,1145,64],Q[62640]=[null,null,P.prototype.Ne,P.prototype.Yf,"SDPAR",8,1145,64],Q[62656]=[null,null,P.prototype.je,P.prototype.wf,"KIPDR",8,1140,64],Q[62672]=[null,null,P.prototype.he,P.prototype.uf,"KDPDR",8,1145,64],Q[62688]=
[null,null,P.prototype.ie,P.prototype.vf,"KIPAR",8,1140,64],Q[62704]=[null,null,P.prototype.ge,P.prototype.tf,"KDPAR",8,1145,64],Q[62798]=[null,null,P.prototype.pe,P.prototype.Af,"MMR3",1,1145,64],Q[65382]=[null,null,P.prototype.ke,P.prototype.xf,"LKS"],Q[65402]=[null,null,P.prototype.me,P.prototype.zf,"MMR0",1,1140,64],Q[65404]=[null,null,P.prototype.ne,P.prototype.rd,"MMR1",1,1145,64],Q[65406]=[null,null,P.prototype.oe,P.prototype.rd,"MMR2",1,1140,64],Q[65408]=[null,null,P.prototype.We,P.prototype.gg,
"UIPDR",8,1140,64],Q[65424]=[null,null,P.prototype.Ue,P.prototype.eg,"UDPDR",8,1145,64],Q[65440]=[null,null,P.prototype.Ve,P.prototype.fg,"UIPAR",8,1140,64],Q[65456]=[null,null,P.prototype.Te,P.prototype.dg,"UDPAR",8,1145,64],Q[65472]=[null,null,P.prototype.Ib,P.prototype.Mb,"R0SET0"],Q[65473]=[null,null,P.prototype.Ib,P.prototype.Mb,"R1SET0"],Q[65474]=[null,null,P.prototype.Ib,P.prototype.Mb,"R2SET0"],Q[65475]=[null,null,P.prototype.Ib,P.prototype.Mb,"R3SET0"],Q[65476]=[null,null,P.prototype.Ib,
@ -104,274 +106,276 @@ P.prototype.Mb,"R4SET0"],Q[65477]=[null,null,P.prototype.Ib,P.prototype.Mb,"R5SE
P.prototype.Nb,"R4SET1",1,1145],Q[65485]=[null,null,P.prototype.Jb,P.prototype.Nb,"R5SET1",1,1145],Q[65486]=[null,null,P.prototype.ve,P.prototype.Gf,"R6SUPER",1,1145],Q[65487]=[null,null,P.prototype.we,P.prototype.Hf,"R6USER",1,1145],Q[65504]=[null,null,P.prototype.fe,P.prototype.sf,"CTRL",8,1170],Q[65520]=[null,null,P.prototype.nd,P.prototype.sd,"LSIZE",1,1170],Q[65522]=[null,null,P.prototype.nd,P.prototype.sd,"HSIZE",1,1170],Q[65524]=[null,null,P.prototype.Se,P.prototype.cg,"SYSID",1,1170],Q[65526]=
[null,null,P.prototype.ee,P.prototype.rf,"ERR",1,1170],Q[65528]=[null,null,P.prototype.le,P.prototype.yf,"MBR",1,1170],Q[65530]=[null,null,P.prototype.qe,P.prototype.Bf,"PIR"],Q[65532]=[null,null,P.prototype.Re,P.prototype.bg,"SLR"],Q[65534]=[null,null,P.prototype.te,P.prototype.Ef,"PSW"],Q);
wb(function(){for(var a=y(document,x,"device"),b=0;b<a.length;b++){var c,d=a[b];c=w(d);switch(c.type){case "default":c=new P(c);Da(c,d);break;case "pc11":c=new Fd(c);Da(c,d);break;case "rl11":c=new Gd(c);Da(c,d);break;case "rk11":c=new R(c),Da(c,d)}}});
function L(a,b,c,d,e,f){this.B=a;this.id=Hd+=2;this.b=null;this.K=b;this.Kb=c;this.size=d||0;this.type=e||Id;this.J=e==Jd;this.f=this.controller=null;this.vb=this.j=this.Dc;this.ma=this.C=this.Ec;this.yb=this.D=this.Lb;this.zb=this.G=this.nc;this.F=this.i=0;Sc(this);this.Wa=this.Nd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Kd(this,f.Hd);else if(Eb)this.v=new ArrayBuffer(this.size),this.w=new DataView(this.v,0,this.size),this.g=new Uint8Array(this.v,0,this.size),this.H=new Uint16Array(this.v,
0,this.size>>1),this.b=new Int32Array(this.v,0,this.size>>2),Kd(this,Ld?Md:Nd);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Kd(this,Od)}else Kd(this)}h=L.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Eb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Eb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.Wa=!0}return!1};function Kd(a,b){b||(b=Pd);Qd(a,b,void 0);Rd(a,b,void 0)}function Qd(a,b,c){c&&a.F||(a.vb=b[0]||a.Dc,a.ma=b[2]||a.Ec);if(c||void 0===c)a.j=b[0]||a.Dc,a.C=b[2]||a.Ec}function Rd(a,b,c){c&&a.i||(a.yb=!a.J&&b[1]||a.Lb,a.zb=!a.J&&b[3]||a.nc);if(c||void 0===c)a.D=b[1]||a.Lb,a.G=b[3]||a.nc}
h.rb=function(a,b){b?this.i++||Rd(this,Sd,!1):this.F++||Qd(this,Sd,!1)};function Td(a,b){b?--a.i||(a.yb=a.J?a.Lb:a.D,a.zb=a.J?a.nc:a.G):--a.F||(a.vb=a.j,a.ma=a.C)}function Sc(a,b,c){a.f=b;a.F=a.i=0;c&&((a.F=c.F)&&Qd(a,Sd,!1),(a.i=c.i)&&Rd(a,Sd,!1))}h.Dc=function(a,b){this.f&&B(this.f,32)&&C(this.f,"attempt to read invalid address "+O(this.f,b),!0);this.B.La(b,32,2);return 255};
h.Lb=function(a,b,c){this.f&&B(this.f,32)&&C(this.f,"attempt to write "+O(this.f,b)+" to invalid addresses "+O(this.f,c),!0);this.B.La(c,32,4)};h.Ec=function(a,b){return this.vb(a++,b++)|this.vb(a,b)<<8};h.nc=function(a,b,c){this.yb(a++,b&255,c++);this.yb(a,b>>8,c)};h.ce=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.cf=function(a,b){Ob&&a&1&&this.B.La(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};
h.pf=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Wa=!0};h.lg=function(a,b,c){Ob&&a&1&&this.B.La(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Wa=!0};h.ae=function(a,b){this.f&&null!=this.K&&Ud(this.f,this.K+a);return this.j(a,b)};h.Ze=function(a,b){this.f&&null!=this.K&&Ud(this.f,this.K+a,2);return this.C(a,b)};
h.mf=function(a,b,c){this.f&&null!=this.K&&Vd(this.f,this.K+a);this.J?this.Lb(0,b,c):this.D(a,b,c)};h.jg=function(a,b,c){this.f&&null!=this.K&&Vd(this.f,this.K+a,2);this.J?this.Lb(0,b,c):this.G(a,b,c)};h.$d=function(a){return this.g[a]};h.be=function(a,b){a=this.g[a];this.f&&B(this.f,32)&&C(this.f,"Memory.readByte("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.Ye=function(a,b){Ob&&a&1&&this.B.La(b,64,2);return this.w.getUint16(a,!0)};
h.bf=function(a,b){Ob&&a&1&&this.B.La(b,64,2);a=!Pb&&a&1?this.g[a]|this.g[a+1]<<8:this.H[a>>1];this.f&&B(this.f,32)&&C(this.f,"Memory.readWord("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.lf=function(a,b){this.g[a]=b;this.Wa=!0};h.nf=function(a,b,c){this.g[a]=b;this.Wa=!0;this.f&&B(this.f,32)&&C(this.f,"Memory.writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0)};h.ig=function(a,b,c){Ob&&a&1&&this.B.La(c,64,4);this.w.setUint16(a,b,!0);this.Wa=!0};
h.kg=function(a,b,c){Ob&&a&1&&this.B.La(c,64,4);!Pb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.H[a>>1]=b;this.Wa=!0;this.f&&B(this.f,32)&&C(this.f,"Memory.writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0)};var Id=0,dd=1,Jd=2,Uc=4,Zc=["NONE","RAM","ROM","VID","H/W"],Hd=0,Pd=[],Od=[L.prototype.ce,L.prototype.pf,L.prototype.cf,L.prototype.lg],Sd=[L.prototype.ae,L.prototype.mf,L.prototype.Ze,L.prototype.jg];
if(Eb)var Nd=[L.prototype.$d,L.prototype.lf,L.prototype.Ye,L.prototype.ig],Md=[L.prototype.be,L.prototype.nf,L.prototype.bf,L.prototype.kg];var Wd;if(Eb){var Xd=new ArrayBuffer(2);(new DataView(Xd)).setUint16(0,256,!0);Wd=256===(new Uint16Array(Xd))[0]}else Wd=!1;var Ld=Wd;
function Yd(a,b){q.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.rc=0;this.pc=b;this.cb=c;this.wc=Math.round(this.pc/1E4)/100;this.pb=this.wc*this.cb;this.xc=this.Xb=this.sb=this.qc=0;this.A.U=this.A.lc=!1;this.A.ta=a.autoStart;"string"==typeof this.A.ta&&(this.A.ta="true"==this.A.ta);this.A.Bb=!1;this.Ub=this.Db=0;this.Wb=+a.csStart;this.Cb=+a.csInterval;this.Eb=+a.csStop;this.ga=[];this.Xc=this.gf.bind(this);this.eb=this.Ta=this.bb=this.b=this.ja=this.Sa=this.Tb=this.ab=this.Fb=
this.yc=this.ob=0;this.sa=null;A(this)}p(Yd,q);h=Yd.prototype;h.ua=function(a,b,c,d){this.J=a;this.D=b;this.F=d;this.sa=a.i;for(a=0;a<Zd.length;a++)(b=this.B[Zd[a]])&&this.J.qa(null,Zd[a],b);A(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.wa=function(a,b){var c=$d(this.J,"autoStart");null!=c?this.A.ta="true"==c?!0:"false"==c?!1:!!c:null==this.A.ta&&(this.A.ta=!this.F&&void 0===this.B.run);if(!b){if(a){ae(this);if(!this.restore(a))return!1;be(this)}else this.reset();this.F?(a=this.F,b=this.A.ta,a.Ea=!0,a.u("Type ? for help with PDPjs Debugger commands"),ce(a),b||de(a),a.sa&&(b=a.sa,a.sa=null,ee(a,b))):this.status("No debugger detected");this.A.ta||this.u("CPU will not be auto-started "+(this.sa?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.va=function(a){return a?this.save():!0};h.ta=function(){return this.A.U?!0:this.A.ta?(kc(this),!0):!1};h.gd=function(){return 0};function be(a){void 0===a.Wb&&(a.Wb=0);void 0===a.Cb&&(a.Cb=-1);void 0===a.Eb&&(a.Eb=-1);a.A.Bb=0<=a.Wb&&0<a.Cb;a.A.Bb&&(a.Ub=0,a.Db=a.Wb-a.eb)}function oc(a,b){if(a.A.Bb){var c=!1;a.Ub=a.Ub+a.gd()|0;a.Db-=b;0>=a.Db&&(a.Db+=a.Cb,c=!0);0<=a.Eb&&a.Eb<=fe(a)&&(a.Cb=a.Eb=-1,be(a),a.Z(),c=!0);c&&a.u(fe(a)+" cycles: checksum="+I(a.Ub))}}
h.qa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.B[b]=c,!0;case "run":return this.B[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.fa)a=!0;else{var b=null,c,k=Aa(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.fa);c++);c==k.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.hc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.U?d.Z():kc(d))},!0;
case "speed":return this.B[b]=c,!0;case "setSpeed":return this.B[b]=c,c.onclick=function(){ge(d,d.cb<<1,!0)},c.textContent=this.pb.toFixed(2)+"Mhz",!0}return!1};function nc(a,b,c){a.eb+=b;c&&(a.bb=a.b=a.ja=0)}function he(a,b){var c=1;b&&1<a.cb&&a.ob&&(c=a.ob/a.wc);a.xc=Math.round(1E3/ie);a.Xb=Math.floor(a.pc/ie*c);b||(a.sb=a.Xb);a.qc=0}function fe(a){return a.eb+a.Ta+a.bb-a.b}function ae(a){a.ob=0;a.yc=0;a.eb=a.Ta=a.bb=a.b=a.ja=0;be(a);ge(a,1)}
function ge(a,b,c){var d=!1;if(void 0!==b){.8>a.ob/a.pb?b=1:d=!0;a.cb=b;b=a.wc*a.cb;if(a.pb!=b){a.pb=b;b=a.pb.toFixed(2)+"Mhz";var e=a.B.setSpeed;e&&(e.textContent=b);a.u("target speed: "+b)}c&&a.J&&je(a.J)}nc(a,a.Ta);a.Ta=0;a.Sa=ya();a.ab=0;he(a);return d}function hd(a,b){var c=a.ga.length;a.ga.push([-1,b]);return c}function jd(a,b,c,d){0<=b&&b<a.ga.length&&(d||0>a.ga[b][0])&&(c=a.pc*a.cb/1E3*c|0,a.A.U&&(c+=ke(a)),a.ga[b][0]=c)}
function le(a,b){for(var c=a.ga.length-1;0<=c;c--){var d=a.ga[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function me(a){for(var b=[],c=0;c<a.ga.length;c++)b.push(a.ga[c][0]);return b}function mc(a,b){for(var c=a.ga.length-1;0<=c;c--){var d=a.ga[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ke(a,b){var c=a.bb-=a.b;a.b=a.ja=0;b&&(a.bb=0);return c}
h.gf=function(){if(this.A.U){this.qc>=this.pc&&he(this,!0);this.Fb=0;this.Tb=ya();if(this.ab){var a=this.Tb-this.ab;a>this.xc&&(this.Sa+=a,this.Sa>this.Tb&&(this.Sa=this.Tb))}try{do{var b=le(this,this.A.Bb?1:this.Xb);try{this.ec(b)}catch(e){if("number"!=typeof e)throw e;}b=ke(this,!0);this.Fb+=b;this.Ta+=b;oc(this,b);mc(this,b);this.sb-=b;if(0>=this.sb){this.sb+=this.Xb;++this.yc>=ne&&(this.J&&J(this.J,void 0),this.yc=0);break}}while(this.A.U)}catch(e){this.Z();this.J&&this.J.stop(ya(),fe(this));
Ea(this,e.stack||e.message);return}if(this.A.U){a=setTimeout;b=this.Xc;this.ab=ya();var c=this.xc;this.Fb&&(c=Math.round(c*this.Fb/this.Xb));var c=c-(this.ab-this.Tb),d=this.ab-this.Sa;d&&(this.ob=Math.round(this.Ta/(10*d))/100,864E5<=d&&(this.eb=0,ge(this)));if(0>c||this.ob<this.pb)-1E3>c&&(this.Sa-=c),c=0;this.qc+=this.Fb;this.ab+=c;a(b,c)}}};
function kc(a,b){if(!Ja(a))if(a.A.U)a.u(a.toString()+" busy");else{ge(a);a.A.U=!0;a.A.lc=!0;var c=a.B.run;c&&(c.textContent="Halt");a.J&&(b&&je(a.J,!0),a.J.start(a.Sa,fe(a)));a.F||a.status("Started");setTimeout(a.Xc,0)}}h.ec=function(){return 0};h.Z=function(a){var b=!1;if(this.A.U){ke(this);nc(this,this.Ta);this.Ta=0;this.A.U=!1;if(b=this.B.run)b.textContent="Run";this.J&&this.J.stop(ya(),fe(this));b=!0;this.F||this.status("Stopped")}this.A.complete=a;return b};var ie=30,ne=15,Zd=["power","reset"];
function oe(a){var b=+a.model||1170;Yd.call(this,a,6666667);this.ia=b;this.Rc=+a.addrReset||0;this.Ua=this.w=this.O=this.G=this.H=this.L=this.I=0;this.g=this.oa=this.W=[];this.M=this.C=this.Ga=this.ac=[];this.$a=this.P=this.Qc=this.Ia=this.kb=this.qb=this.Fa=this.R=this.$b=this.Va=this.ya=this.S=this.Gb=this.Hb=this.T=this.i=0;this.Tc=[4,2,0,1];this.bc=0;this.Uc=255;1120>=this.ia?(this.Pc=pe.bind(this),this.Ab=this.Ld,this.bc=8,this.Uc=-1,this.Zc=255,this.Yc=0):(this.Pc=qe.bind(this),this.Ab=this.Md,
this.Zc=~(1792|(1140>=this.ia?2048:0))&65535,this.Yc=1140<this.ia?2048:0);this.fc=this.cc=this.na=0;this.V=null;this.Sb=[];this.Pb=this.sc=this.fd;this.Qb=this.tc=this.ld;this.mc=this.uc=this.pd;this.Rb=this.vc=this.qd;this.Ha=this.lb=this.Yb=this.Zb=0;this.Ea=this.kd;this.ma=this.Fc;this.zb=this.Ic;this.v=this.j=this.oc=this.X=this.aa=0;this.A.complete=!1}p(oe,Yd);h=oe.prototype;
h.ua=function(a,b,c,d){Yd.prototype.ua.call(this,a,b,c,d);this.sc=b.Kc.bind(b);this.tc=b.dc.bind(b);this.uc=b.Lc.bind(b);this.vc=b.Ob.bind(b)};h.wa=function(a,b){for(var c=192,d=0;d<this.Sb.length;d++){var e=this.Sb[d];0>e.xb&&(e.xb=c,c+=4)}return Yd.prototype.wa.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ia);this.A.U&&this.Z();this.G=65536;this.H=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Rc,-1,-2,-3,-4,-5,-6,-7,-8];this.oa=[0,0,0,0,0,0];this.W=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.C=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ga=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.ac=[0,0,0,0,0,0,0,0];this.O=0;this.Ua=-1;this.v=this.j=this.oc=this.X=this.aa=this.i=this.$b=0;ic(this);ae(this);this.A.error=!1;Yd.prototype.reset.call(this)};function ic(a){a.S=0;a.Gb=0;a.Hb=0;a.T=0;a.R=0;a.Va=0;a.ya=255;a.Ia=0;a.kb=0;a.qb=0;a.Fa=262143;a.$a=a.g[7];a.P=0;a.V=null;a.D&&(re(a),a.Qc=cd(a.D))}
function re(a){a.Pb=a.sc;a.Qb=a.tc;a.mc=a.uc;a.Rb=a.vc;a.Yb&&(a.Pb=a.fd,a.Qb=a.ld);a.Zb&&(a.mc=a.pd,a.Rb=a.qd);a.Ia?(a.Ha=65536,a.lb=a.T&16?4186112:253952,a.Ea=a.kd,a.ma=a.Yb?a.af:a.Fc,a.zb=a.Zb?a.ng:a.Ic,Vc(a.D,a.T&16?22:18)):(a.Ha=0,a.lb=57344,a.Ea=a.Od,a.ma=a.Yb?a.$e:a.od,a.zb=a.Zb?a.mg:a.td,Vc(a.D,16))}function pd(a){var b=a.S;b&57344||(b=b&-3199|a.kb<<5|a.qb<<1);return b}
function qd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.Gb=a.P>>16&65535,a.Hb=a.P&65535);a.S=b;a.kb=(b&96)>>5;a.qb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ia!=c&&(a.Ia=c,re(a))}}function rd(a){a.S&57344||(a.Gb=a.P>>16&65535);a=a.Gb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function sd(a){a.S&57344||(a.Hb=a.P&65535);return a.Hb}function td(a,b){1170>a.ia&&(b&=-49);a.T!=b&&(a.T=b,a.Fa=b&16?4194303:262143,re(a))}
function se(a,b,c){a.Rc=b;a.D.reset();ic(a);te(a,b);Ed(a,0);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.A.U||kc(a)}else a.F?a.Z()||ce(a.F):!1===c&&a.Z();!a.A.U&&a.sa&&a.sa.stop()}h.gd=function(){return 0};
h.save=function(){var a=new M(this);a.set(0,[this.g,this.oa,this.W,this.M,this.C,this.Ga,this.ac,this.R,this.$b,this.Va,this.ya,this.S,this.Gb,this.Hb,this.T,this.Ia,this.kb,this.qb,this.Fa,this.$a,this.i,this.P,this.Ua,this.cc,this.fc]);a.set(1,[vd(this)]);a.set(2,[this.eb,this.cb,this.A.ta]);a.set(3,ue(this));a.set(4,me(this));return a.data()};
h.restore=function(a){var b=ja(a[0]);this.g=b.next().value;this.oa=b.next().value;this.W=b.next().value;this.M=b.next().value;this.C=b.next().value;this.Ga=b.next().value;this.ac=b.next().value;this.R=b.next().value;this.$b=b.next().value;this.Va=b.next().value;this.ya=b.next().value;this.S=b.next().value;this.Gb=b.next().value;this.Hb=b.next().value;this.T=b.next().value;this.Ia=b.next().value;this.kb=b.next().value;this.qb=b.next().value;this.Fa=b.next().value;this.$a=b.next().value;this.i=b.next().value;
this.P=b.next().value;this.Ua=b.next().value;this.cc=b.next().value;this.fc=b.next().value;b=a[1];Ed(this,b[0]);b=a[2];this.eb=b[0];ge(this,b[1]);this.A.ta=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sb.length;d++){var e=this.Sb[d];if(e.xb===b[c]){d=e;break a}}d=null}d&&(d.next=this.V,this.V=d)}a=a[4];for(b=0;b<this.ga.length&&b<a.length;b++)this.ga[b][0]=a[b];return!0};function ve(a){return a.G&65536?1:0}function we(a){return a.H&32768?2:0}
function xe(a){return a.L&65535?0:4}function ye(a){return a.I&32768?8:0}function ze(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function S(a,b,c){c&&(te(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function te(a,b){a.g[7]=b&65535}function kd(a,b,c,d){b={xb:b,ib:c,message:d||0,name:Rb[b],next:null};a.Sb.push(b);return b}function Ae(a,b){var c=a.V;if(c==b)a.V=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.V&&(a.i|=1)}
function id(a,b){if(b){if(b!=a.V){var c=a.V;if(!c||c.ib<=b.ib)b.next=c,a.V=b;else{do{var d=c.next;if(!d||d.ib<=b.ib){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&B(a,b.message|8)&&C(a,"setIRQ(vector="+H(b.xb)+",priority="+b.ib+")",!0,!0)}}function od(a,b){b&&(Ae(a,b),b.message&&B(a,b.message|8)&&C(a,"clearIRQ(vector="+H(b.xb)+",priority="+b.ib+")",!0,!0))}function ue(a){var b=[];for(a=a.V;a;)b.push(a.xb),a=a.next;return b}
function Be(a){return a.i&64?(a.ra(168,64,-6),!0):a.i&32?(a.ra(4,32,-5),!0):a.i&16?(a.ra(12,16,-7),!0):!1}function vd(a){return a.w=a.w&63728|ye(a)|xe(a)|we(a)|ve(a)}function Ed(a,b){b&=a.Zc;a.I=b<<12;a.L=~b&4;a.H=b<<14;a.G=b<<16;if((b^a.w)&a.Yc)for(var c=a.oa.length;0<=--c;){var d=a.g[c];a.g[c]=a.oa[c];a.oa[c]=d}a.O=b>>14&3;c=a.w>>14&3;a.O!=c&&(a.W[c]=a.g[6],a.g[6]=a.W[a.O]);a.w=b;a.i&=-3;a.i|=a.V?2:1}function ud(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.Va=b}
h.Da=function(a){this.I=this.L=a;this.H=0};h.jb=function(a,b){this.I=this.L=this.G=a;this.H=b||0};function Ce(a,b){a.I=a.L=a.G=b;a.H=a.I^a.G>>1}function De(a,b,c,d){a.I=a.L=a.G=b;a.H=(c^d)&(d^b)}
h.ra=function(a,b,c){if(!this.na){0>this.Ua?this.Ua=vd(this):this.O||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.R|=4,this.g[6]=a=4);if(-1!=c){this.P=a|4143316992;this.O=0;var d=this.ma(a|this.Ha),e=this.ma(a+2&65535|this.Ha);Ed(this,e&-12289|this.Ua>>2&12288);Ee(this,this.Ua);Ee(this,this.g[7]);te(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.Ua=-1;this.cc=c;this.fc=a;-1==c&&this.Z();if(-4<=c)throw a;}};
function Fe(a){var b=Ge(a),c=Ge(a);a.w&49152&&(c=c&-225|a.w&63712);te(a,b);Ed(a,c);a.i&=-17}function He(a,b){var c=b>>13&31;31>c&&(b=a.T&32?a.Ga[c]+(b&8191)&4194303:b&-3932161);return b}
function Ie(a,b,c){var d=[];if(c){c=He(a,b);var e=b>>13&31;d.push(c);d.push(e);a.T&32&&(d.push(a.Ga[e]),d.push(b&8191))}else if(a.Ia){var e=a.O<<1,f=b>>13;7<f&&(e|=1);a.T&a.Tc[a.O]||(f&=7);b&=8191;var g=a.M[a.O][f]<<6;c=g+b&a.Fa;3932160<=c&&(c=He(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.Fa)}else c=b&65535,57344<=c&&(c|=a.lb),d.push(c);return d}
function Dc(a,b,c){var d,e,f;if(!(c&a.Ia))return f=b&65535,57344<=f&&(f|=a.lb),f;d=b>>13;a.T&a.Tc[a.O]||(d&=7);e=a.C[a.O][d];f=(a.M[a.O][d]<<6)+(b&8191)&a.Fa;3932160<=f&&(f=He(a,f));if(a.na)return f;f>=a.Qc&&f<a.lb?(a.R|=32,a.ra(4,0,f)):f&1&&!(c&1)&&(a.R|=64,a.ra(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.C[a.O][d]=e;if(f!=(4194170&a.Fa)||a.O)a.kb=a.O,a.qb=d;g&&(g&57344&&(0<=a.Ua&&(g|=128),a.S&57344||(g|=a.S&4096|a.kb<<5|a.qb<<1,qd(a,a.S&-61695|g&61694)),a.ra(168,64,-2)),a.S&61440||!(f<(4191360&a.Fa)||f>(4194239&a.Fa))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ge(a){var b=a.ma(a.g[6]|a.Ha);a.g[6]=a.g[6]+2&65535;return b}function Ee(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.P=a.P&65535|(a.P&-65536)<<8|16121856;a.i&256||a.Ab(4,-2,c);a.zb(c,b)}
function Je(a,b,c,d){var e,f,g=d&8?0:a.Ha;switch(b){case 0:return a.ra(4,0,-3),0;case 1:return 6==c&&a.Ab(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Ab(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.ma(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Ab(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.ma(e)|g;a.b-=8;break;case 6:return e=a.ma(ze(a,2)),e=e+a.g[c]&65535,6==c&&a.Ab(d,
0,e),a.b-=6,e|g;case 7:return e=a.ma(ze(a,2)),e=e+a.g[c]&65535,e=a.ma(e|a.Ha),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.P=a.P&65535|(a.P&-65536)<<8|(f<<3&248|c)<<16;return e}h.Ld=function(a,b,c){!this.O&&0>=b&&c<=this.ya&&(this.i|=32)};h.Md=function(a,b,c){this.O||(65534<=c&&(c|=-65536),a&4&&c<=this.ya&&(c<=this.ya-32?this.ra(4,0,-4):(this.R|=8,this.i|=32)))};h.fd=function(a){this.F&&Ud(this.F,a,1);return this.sc(a)};h.ld=function(a){this.F&&Ud(this.F,a,2);return this.tc(a)};
h.pd=function(a,b){this.F&&Vd(this.F,a,1);this.uc(a,b)};h.qd=function(a,b){this.F&&Vd(this.F,a,2);this.vc(a,b)};function Fc(a,b){a.na++;b=a.D.dc(Dc(a,b,2));a.na--;return b}function Ke(a,b){(b?--a.Zb:--a.Yb)||re(a)}h.Od=function(a,b,c){return Je(this,a,b,c)};h.kd=function(a,b,c){return Dc(this,Je(this,a,b,c),c)};h.od=function(a){return this.D.dc(this.$a=a)};h.$e=function(a){this.F&&Ud(this.F,a,2);return this.od(a)};h.Fc=function(a){return this.D.dc(this.$a=Dc(this,a,2))};
h.af=function(a){this.F&&Ud(this.F,a,2);return this.Fc(a)};h.td=function(a,b){this.D.Ob(this.$a=a,b)};h.mg=function(a,b){this.F&&Vd(this.F,a,2);this.td(a,b)};h.Ic=function(a,b){this.D.Ob(this.$a=Dc(this,a,4),b)};h.ng=function(a,b){this.F&&Vd(this.F,a,2);this.Ic(a,b)};function Le(a,b,c){var d=a.j=b&7;(b=a.v=(b&56)>>3)?(d=Je(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.O=a.w>>12&3,c=a.ma(d|c&a.Ha),a.O=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.W[a.w>>12&3];return c}
function Me(a,b,c,d){a.P=a.P&65535|1441792;var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=Je(a,b,e,4),c&65536||(e&=65535),a.O=a.w>>12&3,e=Dc(a,e|c&65536,4),a.O=a.w>>14&3,a.Rb(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.W[a.w>>12&3]=d}function hf(a,b){b>>=6;var c=a.aa=b&7;return(b=a.X=(b&56)>>3)?a.Pb(a.Ea(b,c,3)):a.g[c+a.bc]&a.Uc}function jf(a,b){var c;b>>=6;var d=a.aa=b&7;(b=a.X=(b&56)>>3)?c=a.Qb(a.Ea(b,d,2)):c=a.g[d+a.bc];return c}function kf(a,b){var c=a.j=b&7;b=a.v=(b&56)>>3;return Je(a,b,c,8)}
function lf(a,b){var c=a.j=b&7;return(b=a.v=(b&56)>>3)?a.Pb(a.Ea(b,c,3)):a.g[c]&255}function mf(a,b){var c,d=a.j=b&7;(b=a.v=(b&56)>>3)?c=a.Qb(a.Ea(b,d,2)):c=a.g[d];return c}function nf(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.oc=a.Ea(b,e,7),c=0>c?a.g[-c-1]&255:c,a.mc(e,d.call(a,c,a.Pb(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function T(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.Ea(b,e,6),a.Rb(e,d.call(a,0>c?a.g[-c-1]:c,a.Qb(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function of(a,b,c,d,e){var f=a.j=b&7;(b=a.v=(b&56)>>3)?(d=a.Ea(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.mc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function pf(a,b,c,d){var e=a.j=b&7;(b=a.v=(b&56)>>3)?(e=a.Ea(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.Rb(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.ec=function(a){this.A.complete=!0;var b=this.F?qf(this.F)?1:this.A.lc?-1:0:0,c=a?this.A.lc?0:1:-1;this.A.lc=!1;this.bb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(rf(this.F,this.g[7],c)){this.Z();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.Va&224)>>5,f=this.V&&this.V.ib>e?this.V:null;f&&(d=f.xb,e=f.ib);e>(this.w&224)>>5?(this.i&8&&(ze(this,2),this.i&=-9),this.ra(d,0,-10),e=!0):e=!1;e&&(f&&Ae(this,f),a=!0);this.V||this.Va||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&rf(this.F,this.g[7],c)){this.Z();break}if(0>c)break}if(this.i&112&&Be(this)){if(this.i&4&&rf(this.F,this.g[7],c)){this.Z();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.P=this.g[7];f=this.ma(a);this.g[7]=a+2&65535;this.Pc(f)}while(0<this.b);return this.A.complete?this.bb-this.b:!1===this.A.complete?-1:0};wb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new oe(d);Da(d,c)}});
function sf(a,b){var c=b+a;this.I=this.L=this.G=c;this.H=(a^c)&(b^c);return c&65535}function tf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.G=d;this.H=(a<<8^d)&(b<<8^d);return c&255}function uf(a,b){a=b<<1;Ce(this,a);return a&65535}function vf(a,b){a=b<<1;Ce(this,a<<8);return a&255}function wf(a,b){a=b&32768|b>>1|b<<16;Ce(this,a);return a&65535}function xf(a,b){a=b&128|b>>1|b<<8;Ce(this,a<<8);return a&255}function yf(a,b){a=b&~a;this.Da(a);return a}function zf(a,b){a=b&~a;this.Da(a<<8);return a}
function Af(a,b){a|=b;this.Da(a);return a}function Bf(a,b){a|=b;this.Da(a<<8);return a}function Cf(a,b){a=~b|65536;this.jb(a);return a&65535}function Df(a,b){a=~b|256;this.jb(a<<8);return a&255}function Ef(a,b){this.I=this.L=a=b-a;this.H=b&(b^a);return a&65535}function Ff(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.H=b&(b^c);return a&255}function Gf(a,b){this.I=this.L=a=b+a;this.H=a&(b^a);return a&65535}function Hf(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.H=c&(b<<8^c);return a&255}
function If(a,b){a=-b;this.jb(a,a&b&32768);return a&65535}function Jf(a,b){a=-b;this.jb(a<<8,(a&b&128)<<8);return a&255}function Kf(a,b){a=b<<1|this.G>>16&1;Ce(this,a);return a&65535}function Lf(a,b){a=b<<1|this.G>>16&1;Ce(this,a<<8);return a&255}function Mf(a,b){a=(this.G&65536|b)>>1|b<<16;Ce(this,a);return a&65535}function Nf(a,b){a=((this.G&65536)>>8|b)>>1|b<<8;Ce(this,a<<8);return a&255}function Of(a,b){var c=b-a;De(this,c,a,b);return c&65535}
function Pf(a,b){var c=b-a;De(this,c<<8,a<<8,b<<8);return c&255}function Qf(a,b){this.I=this.L=b&65280;this.H=this.G=0;return(b<<8|b>>8)&65535}function Rf(a,b){a^=b;this.Da(a);return a&65535}function Sf(a){T(this,a,jf(this,a),sf);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}
function Tf(a){var b=mf(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.G=this.H=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.G=c<<17-b,c>>=b;else if(b)if(16<b)this.H=c,c=0;else{this.G=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.H=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.v?6:7)+b}
function Uf(a){var b=mf(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.G=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.G=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.H=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.v?6:7)+b}function Vf(a){S(this,a,!ve(this))}function Wf(a){S(this,a,ve(this))}
function Xf(a){T(this,a,jf(this,a),yf);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function Yf(a){nf(this,a,hf(this,a),zf);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function Zf(a){T(this,a,jf(this,a),Af);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function $f(a){nf(this,a,hf(this,a),Bf);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}
function ag(a){var b=jf(this,a);a=mf(this,a);this.Da((0>b?this.g[-b-1]:b)&a);this.b-=this.v?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}function bg(a){var b=hf(this,a);a=lf(this,a);this.Da(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.v?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}function cg(a){S(this,a,xe(this))}function dg(a){S(this,a,!ye(this)==!we(this))}function eg(a){S(this,a,!xe(this)&&!ye(this)==!we(this))}function fg(a){S(this,a,!ve(this)&&!xe(this))}
function gg(a){S(this,a,xe(this)||!ye(this)!=!we(this))}function hg(a){S(this,a,ve(this)||xe(this))}function ig(a){S(this,a,!ye(this)!=!we(this))}function jg(a){S(this,a,ye(this))}function kg(a){S(this,a,!xe(this))}function lg(a){S(this,a,!ye(this))}function mg(){this.ra(12,0,-9)}function ng(a){S(this,a,!0)}function og(a){S(this,a,!we(this))}function pg(a){S(this,a,we(this))}function qg(a){a&1&&(this.G=0);a&2&&(this.H=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function rg(a){var b=jf(this,a);a=mf(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;De(this,c,a,b);this.b-=this.v?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}function sg(a){var b=hf(this,a);a=lf(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);De(this,c,a,b);this.b-=this.v?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}
function tg(a){var b=mf(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.G=this.H=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.H=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.H=32768,this.G=65536,this.b-=7}function ug(){this.ra(24,0,-9);this.b-=20}
function vg(){this.w&49152?(this.R|=128,this.ra(4,0,-8)):(this.sa&&1120==this.ia&&this.sa.setData(this.g[0],!0),this.F?wg(this.F):this.Z());this.b-=7}function xg(){this.ra(16,0,-9);this.b-=20}var yg=[0,7,7,10,7,11,9,13];function zg(a){this.ja=this.b;te(this,kf(this,a));this.b=this.ja-yg[this.v]}var Ag=[0,14,14,17,14,18,16,20];function Bg(a){this.ja=this.b;var b=kf(this,a);a=a>>6&7;Ee(this,this.g[a]);this.g[a]=this.g[7];te(this,b);this.b=this.ja-Ag[this.v]}
var Cg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Dg(a){var b=jf(this,a);this.ja=this.b;pf(this,a,b,this.Da);this.b=this.ja-Cg[(this.X?8:0)+this.v]+(7!=this.j||this.v?0:2)}function Eg(a){var b=hf(this,a);of(this,a,b,65535,this.Da);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}var Fg=[7,13,13,17,14,18,17,21];
function Gg(a){var b=mf(this,a);a=a>>6&7;b=(b<<16>>16)*(this.g[a]<<16>>16);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;b|=0;this.I=b>>16;this.L=this.I|b;this.H=0;this.G=-32768>b||32767<b?65536:0;this.b-=23}function Hg(){this.b-=5}function Ig(){this.w&49152||(this.D.reset(),ic(this),this.sa&&this.sa.setData(this.g[0],!0));this.b-=667}function Jg(a){if(a&8)U.call(this,a);else{var b=Ge(this);a&=7;7==a?te(this,b):(te(this,this.g[a]),this.g[a]=b);this.b-=9}}function Kg(){Fe(this);this.b-=13}
function Lg(a){a&1&&(this.G=65536);a&2&&(this.H=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Mg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)te(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Ng(a){T(this,a,jf(this,a),Of);this.b-=this.v?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function Og(a){T(this,a,0,Qf);this.b-=this.v?9:3+(7==this.j?2:0)}function Pg(){this.ra(28,0,-9)}
function Qg(){this.sa&&(this.sa.Gc(this.g[7],!0),this.sa.setData(this.g[0],!0));this.i|=8;ze(this,-2);this.b-=3}function Rg(a){T(this,a,this.g[(a>>6&7)+this.bc],Rf);this.b-=this.v?9:3+(7==this.j?2:0)}function U(a){var b;if(b=this.F)b=this.F,B(b,1)?(C(b,"undefined opcode "+O(b,a),!0,!0),b=wg(b)):b=!1;b||this.ra(8,0,-9)}function pe(a){Sg[a>>12].call(this,a)}function Tg(a){Ug[a>>6&3].call(this,a)}function Vg(a){Wg[a>>6&3].call(this,a)}function Xg(a){Yg[a>>6&3].call(this,a)}
function M(a,b,c,d,e,f){this.C=a;this.id=Hd+=2;this.b=null;this.K=b;this.Kb=c;this.size=d||0;this.type=e||Id;this.J=e==Jd;this.f=this.controller=null;this.wb=this.j=this.Dc;this.na=this.B=this.Ec;this.yb=this.D=this.Lb;this.zb=this.F=this.nc;this.G=this.i=0;Sc(this);this.Ya=this.Nd=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.b=a[0],Kd(this,f.Hd);else if(Eb)this.u=new ArrayBuffer(this.size),this.w=new DataView(this.u,0,this.size),this.g=new Uint8Array(this.u,0,this.size),this.H=new Uint16Array(this.u,
0,this.size>>1),this.b=new Int32Array(this.u,0,this.size>>2),Kd(this,Ld?Md:Nd);else{a=this.b=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;Kd(this,Od)}else Kd(this)}h=M.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(Eb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.w.getInt32(b<<2,!0);else a=this.b;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(Eb)for(b=0;b<a.length;b++)this.w.setInt32(b<<2,a[b],!0);else this.b=a;return this.Ya=!0}return!1};function Kd(a,b){b||(b=Pd);Qd(a,b,void 0);Rd(a,b,void 0)}function Qd(a,b,c){c&&a.G||(a.wb=b[0]||a.Dc,a.na=b[2]||a.Ec);if(c||void 0===c)a.j=b[0]||a.Dc,a.B=b[2]||a.Ec}function Rd(a,b,c){c&&a.i||(a.yb=!a.J&&b[1]||a.Lb,a.zb=!a.J&&b[3]||a.nc);if(c||void 0===c)a.D=b[1]||a.Lb,a.F=b[3]||a.nc}
h.sb=function(a,b){b?this.i++||Rd(this,Sd,!1):this.G++||Qd(this,Sd,!1)};function Td(a,b){b?--a.i||(a.yb=a.J?a.Lb:a.D,a.zb=a.J?a.nc:a.F):--a.G||(a.wb=a.j,a.na=a.B)}function Sc(a,b,c){a.f=b;a.G=a.i=0;c&&((a.G=c.G)&&Qd(a,Sd,!1),(a.i=c.i)&&Rd(a,Sd,!1))}h.Dc=function(a,b){this.f&&B(this.f,32)&&C(this.f,"attempt to read invalid address "+O(this.f,b),!0);this.C.La(b,32,2);return 255};
h.Lb=function(a,b,c){this.f&&B(this.f,32)&&C(this.f,"attempt to write "+O(this.f,b)+" to invalid addresses "+O(this.f,c),!0);this.C.La(c,32,4)};h.Ec=function(a,b){return this.wb(a++,b++)|this.wb(a,b)<<8};h.nc=function(a,b,c){this.yb(a++,b&255,c++);this.yb(a,b>>8,c)};h.ce=function(a){return this.b[a>>2]>>>((a&3)<<3)&255};h.cf=function(a,b){Ib&&a&1&&this.C.La(b,64,2);b=a>>2;a=(a&3)<<3;var c=this.b[b]>>a;return 24>a?c&65535:c&255|(this.b[b+1]&255)<<8};
h.pf=function(a,b){var c=a>>2;a=(a&3)<<3;this.b[c]=this.b[c]&~(255<<a)|b<<a;this.Ya=!0};h.lg=function(a,b,c){Ib&&a&1&&this.C.La(c,64,4);c=a>>2;a=(a&3)<<3;24>a?this.b[c]=this.b[c]&~(65535<<a)|b<<a:(this.b[c]=this.b[c]&16777215|b<<24,c++,this.b[c]=this.b[c]&-256|b>>8);this.Ya=!0};h.ae=function(a,b){this.f&&null!=this.K&&Ud(this.f,this.K+a);return this.j(a,b)};h.Ze=function(a,b){this.f&&null!=this.K&&Ud(this.f,this.K+a,2);return this.B(a,b)};
h.mf=function(a,b,c){this.f&&null!=this.K&&Vd(this.f,this.K+a);this.J?this.Lb(0,b,c):this.D(a,b,c)};h.jg=function(a,b,c){this.f&&null!=this.K&&Vd(this.f,this.K+a,2);this.J?this.Lb(0,b,c):this.F(a,b,c)};h.$d=function(a){return this.g[a]};h.be=function(a,b){a=this.g[a];this.f&&B(this.f,32)&&C(this.f,"Memory.readByte("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.Ye=function(a,b){Ib&&a&1&&this.C.La(b,64,2);return this.w.getUint16(a,!0)};
h.bf=function(a,b){Ib&&a&1&&this.C.La(b,64,2);a=!Pb&&a&1?this.g[a]|this.g[a+1]<<8:this.H[a>>1];this.f&&B(this.f,32)&&C(this.f,"Memory.readWord("+O(this.f,b)+"): "+O(this.f,a),!0);return a};h.lf=function(a,b){this.g[a]=b;this.Ya=!0};h.nf=function(a,b,c){this.g[a]=b;this.Ya=!0;this.f&&B(this.f,32)&&C(this.f,"Memory.writeByte("+O(this.f,c)+","+O(this.f,b)+")",!0)};h.ig=function(a,b,c){Ib&&a&1&&this.C.La(c,64,4);this.w.setUint16(a,b,!0);this.Ya=!0};
h.kg=function(a,b,c){Ib&&a&1&&this.C.La(c,64,4);!Pb&&a&1?(this.g[a]=b,this.g[a+1]=b>>8):this.H[a>>1]=b;this.Ya=!0;this.f&&B(this.f,32)&&C(this.f,"Memory.writeWord("+O(this.f,c)+","+O(this.f,b)+")",!0)};var Id=0,dd=1,Jd=2,Uc=4,Zc=["NONE","RAM","ROM","VID","H/W"],Hd=0,Pd=[],Od=[M.prototype.ce,M.prototype.pf,M.prototype.cf,M.prototype.lg],Sd=[M.prototype.ae,M.prototype.mf,M.prototype.Ze,M.prototype.jg];
if(Eb)var Nd=[M.prototype.$d,M.prototype.lf,M.prototype.Ye,M.prototype.ig],Md=[M.prototype.be,M.prototype.nf,M.prototype.bf,M.prototype.kg];var Wd;if(Eb){var Xd=new ArrayBuffer(2);(new DataView(Xd)).setUint16(0,256,!0);Wd=256===(new Uint16Array(Xd))[0]}else Wd=!1;var Ld=Wd;
function Yd(a,b){q.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.rc=0;this.pc=b;this.eb=c;this.wc=Math.round(this.pc/1E4)/100;this.qb=this.wc*this.eb;this.xc=this.Xb=this.tb=this.qc=0;this.A.U=this.A.lc=!1;this.A.va=a.autoStart;"string"==typeof this.A.va&&(this.A.va="true"==this.A.va);this.A.Bb=!1;this.Ub=this.Db=0;this.Wb=+a.csStart;this.Cb=+a.csInterval;this.Eb=+a.csStop;this.ia=[];this.Xc=this.gf.bind(this);this.fb=this.Va=this.cb=this.b=this.la=this.Ua=this.Tb=this.bb=this.Fb=
this.yc=this.pb=0;this.ua=null;A(this)}p(Yd,q);h=Yd.prototype;h.wa=function(a,b,c,d){this.J=a;this.D=b;this.G=d;this.ua=a.i;for(a=0;a<Zd.length;a++)(b=this.C[Zd[a]])&&this.J.sa(null,Zd[a],b);A(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ya=function(a,b){var c=$d(this.J,"autoStart");null!=c?this.A.va="true"==c?!0:"false"==c?!1:!!c:null==this.A.va&&(this.A.va=!this.G&&void 0===this.C.run);if(!b){if(a){ae(this);if(!this.restore(a))return!1;be(this)}else this.reset();this.G?(a=this.G,b=this.A.va,a.Ea=!0,a.v("Type ? for help with PDPjs Debugger commands"),ce(a),b||de(a),a.ua&&(b=a.ua,a.ua=null,ee(a,b))):this.status("No debugger detected");this.A.va||this.v("CPU will not be auto-started "+(this.ua?"(click Run to start)":"(type 'go' to start)"))}return!0};
h.xa=function(a){return a?this.save():!0};h.va=function(){return this.A.U?!0:this.A.va?(nc(this),!0):!1};h.gd=function(){return 0};function be(a){void 0===a.Wb&&(a.Wb=0);void 0===a.Cb&&(a.Cb=-1);void 0===a.Eb&&(a.Eb=-1);a.A.Bb=0<=a.Wb&&0<a.Cb;a.A.Bb&&(a.Ub=0,a.Db=a.Wb-a.fb)}function rc(a,b){if(a.A.Bb){var c=!1;a.Ub=a.Ub+a.gd()|0;a.Db-=b;0>=a.Db&&(a.Db+=a.Cb,c=!0);0<=a.Eb&&a.Eb<=fe(a)&&(a.Cb=a.Eb=-1,be(a),a.Z(),c=!0);c&&a.v(fe(a)+" cycles: checksum="+I(a.Ub))}}
h.sa=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.C[b]=c,!0;case "run":return this.C[b]=c,c.onclick=function(){var a;if(a=d.J)if(a=d.J,a.A.ha)a=!0;else{var b=null,c,k=Aa(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.ha);c++);c==k.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.A.ready?"powered yet":"ready yet"+(b.hc?" (waiting for notification)":""))+".");a=!1}a&&(d.A.U?d.Z():nc(d))},!0;
case "speed":return this.C[b]=c,!0;case "setSpeed":return this.C[b]=c,c.onclick=function(){ge(d,d.eb<<1,!0)},c.textContent=this.qb.toFixed(2)+"Mhz",!0}return!1};function qc(a,b,c){a.fb+=b;c&&(a.cb=a.b=a.la=0)}function he(a,b){var c=1;b&&1<a.eb&&a.pb&&(c=a.pb/a.wc);a.xc=Math.round(1E3/ie);a.Xb=Math.floor(a.pc/ie*c);b||(a.tb=a.Xb);a.qc=0}function fe(a){return a.fb+a.Va+a.cb-a.b}function ae(a){a.pb=0;a.yc=0;a.fb=a.Va=a.cb=a.b=a.la=0;be(a);ge(a,1)}
function ge(a,b,c){var d=!1;if(void 0!==b){.8>a.pb/a.qb?b=1:d=!0;a.eb=b;b=a.wc*a.eb;if(a.qb!=b){a.qb=b;b=a.qb.toFixed(2)+"Mhz";var e=a.C.setSpeed;e&&(e.textContent=b);a.v("target speed: "+b)}c&&a.J&&je(a.J)}qc(a,a.Va);a.Va=0;a.Ua=ya();a.bb=0;he(a);return d}function hd(a,b){var c=a.ia.length;a.ia.push([-1,b]);return c}function jd(a,b,c,d){0<=b&&b<a.ia.length&&(d||0>a.ia[b][0])&&(c=a.pc*a.eb/1E3*c|0,a.A.U&&(c+=ke(a)),a.ia[b][0]=c)}
function le(a,b){for(var c=a.ia.length-1;0<=c;c--){var d=a.ia[c];0>d[0]||b>d[0]&&(b=d[0])}return b}function me(a){for(var b=[],c=0;c<a.ia.length;c++)b.push(a.ia[c][0]);return b}function pc(a,b){for(var c=a.ia.length-1;0<=c;c--){var d=a.ia[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function ke(a,b){var c=a.cb-=a.b;a.b=a.la=0;b&&(a.cb=0);return c}
h.gf=function(){if(this.A.U){this.qc>=this.pc&&he(this,!0);this.Fb=0;this.Tb=ya();if(this.bb){var a=this.Tb-this.bb;a>this.xc&&(this.Ua+=a,this.Ua>this.Tb&&(this.Ua=this.Tb))}try{do{var b=le(this,this.A.Bb?1:this.Xb);try{this.ec(b)}catch(e){if("number"!=typeof e)throw e;}b=ke(this,!0);this.Fb+=b;this.Va+=b;rc(this,b);pc(this,b);this.tb-=b;if(0>=this.tb){this.tb+=this.Xb;++this.yc>=ne&&(this.J&&L(this.J,void 0),this.yc=0);break}}while(this.A.U)}catch(e){this.Z();this.J&&this.J.stop(ya(),fe(this));
Ea(this,e.stack||e.message);return}if(this.A.U){a=setTimeout;b=this.Xc;this.bb=ya();var c=this.xc;this.Fb&&(c=Math.round(c*this.Fb/this.Xb));var c=c-(this.bb-this.Tb),d=this.bb-this.Ua;d&&(this.pb=Math.round(this.Va/(10*d))/100,864E5<=d&&(this.fb=0,ge(this)));if(0>c||this.pb<this.qb)-1E3>c&&(this.Ua-=c),c=0;this.qc+=this.Fb;this.bb+=c;a(b,c)}}};
function nc(a,b){if(!Ja(a))if(a.A.U)a.v(a.toString()+" busy");else{ge(a);a.A.U=!0;a.A.lc=!0;var c=a.C.run;c&&(c.textContent="Halt");a.J&&(b&&je(a.J,!0),a.J.start(a.Ua,fe(a)));a.G||a.status("Started");setTimeout(a.Xc,0)}}h.ec=function(){return 0};h.Z=function(a){var b=!1;if(this.A.U){ke(this);qc(this,this.Va);this.Va=0;this.A.U=!1;if(b=this.C.run)b.textContent="Run";this.J&&this.J.stop(ya(),fe(this));b=!0;this.G||this.status("Stopped")}this.A.complete=a;return b};var ie=30,ne=15,Zd=["power","reset"];
function oe(a){var b=+a.model||1170;Yd.call(this,a,6666667);this.ka=b;this.Rc=+a.addrReset||0;this.Wa=this.w=this.O=this.F=this.H=this.L=this.I=0;this.g=this.pa=this.W=[];this.M=this.B=this.Ga=this.ac=[];this.ab=this.P=this.Qc=this.Ia=this.lb=this.rb=this.Fa=this.R=this.$b=this.Xa=this.za=this.S=this.Gb=this.Hb=this.T=this.i=0;this.Tc=[4,2,0,1];this.bc=0;this.Uc=255;1120>=this.ka?(this.Pc=pe.bind(this),this.Ab=this.Ld,this.bc=8,this.Uc=-1,this.Zc=255,this.Yc=0):(this.Pc=qe.bind(this),this.Ab=this.Md,
this.Zc=~(1792|(1140>=this.ka?2048:0))&65535,this.Yc=1140<this.ka?2048:0);this.fc=this.cc=this.oa=0;this.V=null;this.Sb=[];this.Pb=this.sc=this.fd;this.Qb=this.tc=this.ld;this.mc=this.uc=this.pd;this.Rb=this.vc=this.qd;this.Ha=this.mb=this.Yb=this.Zb=0;this.Ea=this.kd;this.na=this.Fc;this.zb=this.Ic;this.u=this.j=this.oc=this.X=this.aa=0;this.A.complete=!1}p(oe,Yd);h=oe.prototype;
h.wa=function(a,b,c,d){Yd.prototype.wa.call(this,a,b,c,d);this.sc=b.Kc.bind(b);this.tc=b.dc.bind(b);this.uc=b.Lc.bind(b);this.vc=b.Ob.bind(b)};h.ya=function(a,b){for(var c=192,d=0;d<this.Sb.length;d++){var e=this.Sb[d];0>e.xb&&(e.xb=c,c+=4)}return Yd.prototype.ya.call(this,a,b)};
h.reset=function(){this.status("Model "+this.ka);this.A.U&&this.Z();this.F=65536;this.H=32768;this.L=65535;this.I=32768;this.w=15;this.g=[0,0,0,0,0,0,0,this.Rc,-1,-2,-3,-4,-5,-6,-7,-8];this.pa=[0,0,0,0,0,0];this.W=[0,0,0,0];this.M=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.B=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ga=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.ac=[0,0,0,0,0,0,0,0];this.O=0;this.Wa=-1;this.u=this.j=this.oc=this.X=this.aa=this.i=this.$b=0;lc(this);ae(this);this.A.error=!1;Yd.prototype.reset.call(this)};function lc(a){a.S=0;a.Gb=0;a.Hb=0;a.T=0;a.R=0;a.Xa=0;a.za=255;a.Ia=0;a.lb=0;a.rb=0;a.Fa=262143;a.ab=a.g[7];a.P=0;a.V=null;a.D&&(re(a),a.Qc=cd(a.D))}
function re(a){a.Pb=a.sc;a.Qb=a.tc;a.mc=a.uc;a.Rb=a.vc;a.Yb&&(a.Pb=a.fd,a.Qb=a.ld);a.Zb&&(a.mc=a.pd,a.Rb=a.qd);a.Ia?(a.Ha=65536,a.mb=a.T&16?4186112:253952,a.Ea=a.kd,a.na=a.Yb?a.af:a.Fc,a.zb=a.Zb?a.ng:a.Ic,Vc(a.D,a.T&16?22:18)):(a.Ha=0,a.mb=57344,a.Ea=a.Od,a.na=a.Yb?a.$e:a.od,a.zb=a.Zb?a.mg:a.td,Vc(a.D,16))}function pd(a){var b=a.S;b&57344||(b=b&-3199|a.lb<<5|a.rb<<1);return b}
function qd(a,b){b&=-3073;if(a.S!=b){b&57344&&!(a.S&57344)&&(a.Gb=a.P>>16&65535,a.Hb=a.P&65535);a.S=b;a.lb=(b&96)>>5;a.rb=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ia!=c&&(a.Ia=c,re(a))}}function rd(a){a.S&57344||(a.Gb=a.P>>16&65535);a=a.Gb;a&65280&&(a=(a<<8|a>>8)&65535);return a}function sd(a){a.S&57344||(a.Hb=a.P&65535);return a.Hb}function td(a,b){1170>a.ka&&(b&=-49);a.T!=b&&(a.T=b,a.Fa=b&16?4194303:262143,re(a))}
function se(a,b,c){a.Rc=b;te(a,b);wd(a,0);a.D.reset();lc(a);if(c){for(b=2;5>=b;b++)a.g[b]=0;a.A.U||nc(a)}else a.G?a.Z()||ce(a.G):!1===c&&a.Z();!a.A.U&&a.ua&&a.ua.stop()}h.gd=function(){return 0};
h.save=function(){var a=new J(this);a.set(0,[this.g,this.pa,this.W,this.M,this.B,this.Ga,this.ac,this.R,this.$b,this.Xa,this.za,this.S,this.Gb,this.Hb,this.T,this.Ia,this.lb,this.rb,this.Fa,this.ab,this.i,this.P,this.Wa,this.cc,this.fc]);a.set(1,[vd(this)]);a.set(2,[this.fb,this.eb,this.A.va]);a.set(3,ue(this));a.set(4,me(this));return a.data()};
h.restore=function(a){var b=ja(a[0]);this.g=b.next().value;this.pa=b.next().value;this.W=b.next().value;this.M=b.next().value;this.B=b.next().value;this.Ga=b.next().value;this.ac=b.next().value;this.R=b.next().value;this.$b=b.next().value;this.Xa=b.next().value;this.za=b.next().value;this.S=b.next().value;this.Gb=b.next().value;this.Hb=b.next().value;this.T=b.next().value;this.Ia=b.next().value;this.lb=b.next().value;this.rb=b.next().value;this.Fa=b.next().value;this.ab=b.next().value;this.i=b.next().value;
this.P=b.next().value;this.Wa=b.next().value;this.cc=b.next().value;this.fc=b.next().value;b=a[1];wd(this,b[0]);b=a[2];this.fb=b[0];ge(this,b[1]);this.A.va=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.Sb.length;d++){var e=this.Sb[d];if(e.xb===b[c]){d=e;break a}}d=null}d&&(d.next=this.V,this.V=d)}a=a[4];for(b=0;b<this.ia.length&&b<a.length;b++)this.ia[b][0]=a[b];return!0};function ve(a){return a.F&65536?1:0}function we(a){return a.H&32768?2:0}
function xe(a){return a.L&65535?0:4}function ye(a){return a.I&32768?8:0}function ze(a,b){var c=a.g[7];a.g[7]=c+b&65535;return c}function S(a,b,c){c&&(te(a,a.g[7]+(b<<24>>23)),a.b-=2);a.b-=3}function te(a,b){a.g[7]=b&65535}function kd(a,b,c,d){b={xb:b,jb:c,message:d||0,name:Rb[b],next:null};a.Sb.push(b);return b}function Ae(a,b){var c=a.V;if(c==b)a.V=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.V&&(a.i|=1)}
function id(a,b){if(b){if(b!=a.V){var c=a.V;if(!c||c.jb<=b.jb)b.next=c,a.V=b;else{do{var d=c.next;if(!d||d.jb<=b.jb){b.next=d;c.next=b;break}c=d}while(c)}}a.i|=1;b.message&&B(a,b.message|8)&&C(a,"setIRQ(vector="+H(b.xb)+",priority="+b.jb+")",!0,!0)}}function od(a,b){b&&(Ae(a,b),b.message&&B(a,b.message|8)&&C(a,"clearIRQ(vector="+H(b.xb)+",priority="+b.jb+")",!0,!0))}function ue(a){var b=[];for(a=a.V;a;)b.push(a.xb),a=a.next;return b}
function Be(a){return a.i&64?(a.ta(168,64,-6),!0):a.i&32?(a.ta(4,32,-5),!0):a.i&16?(a.ta(12,16,-7),!0):!1}function vd(a){return a.w=a.w&63728|ye(a)|xe(a)|we(a)|ve(a)}function wd(a,b){b&=a.Zc;a.I=b<<12;a.L=~b&4;a.H=b<<14;a.F=b<<16;if((b^a.w)&a.Yc)for(var c=a.pa.length;0<=--c;){var d=a.g[c];a.g[c]=a.pa[c];a.pa[c]=d}a.O=b>>14&3;c=a.w>>14&3;a.O!=c&&(a.W[c]=a.g[6],a.g[6]=a.W[a.O]);a.w=b;a.i&=-3;a.i|=a.V?2:1}function ud(a,b){if(b&=65024){var c=b>>9;do b+=34;while(c>>=1);a.i|=1}a.Xa=b}
h.Da=function(a){this.I=this.L=a;this.H=0};h.kb=function(a,b){this.I=this.L=this.F=a;this.H=b||0};function Ce(a,b){a.I=a.L=a.F=b;a.H=a.I^a.F>>1}function De(a,b,c,d){a.I=a.L=a.F=b;a.H=(c^d)&(d^b)}
h.ta=function(a,b,c){if(!this.oa){0>this.Wa?this.Wa=vd(this):this.O||(c=-4);-4==c&&(this.i&256&&(c=-1),this.i|=256,this.R|=4,this.g[6]=a=4);if(-1!=c){this.P=a|4143316992;this.O=0;var d=this.na(a|this.Ha),e=this.na(a+2&65535|this.Ha);wd(this,e&-12289|this.Wa>>2&12288);Ee(this,this.Wa);Ee(this,this.g[7]);te(this,d)}this.b-=5;this.i&=~(b|19);this.i|=129;this.Wa=-1;this.cc=c;this.fc=a;-1==c&&this.Z();if(-4<=c)throw a;}};
function Fe(a){var b=Ge(a),c=Ge(a);a.w&49152&&(c=c&-225|a.w&63712);te(a,b);wd(a,c);a.i&=-17}function He(a,b){var c=b>>13&31;31>c&&(b=a.T&32?a.Ga[c]+(b&8191)&4194303:b&-3932161);return b}
function Ie(a,b,c){var d=[];if(c){c=He(a,b);var e=b>>13&31;d.push(c);d.push(e);a.T&32&&(d.push(a.Ga[e]),d.push(b&8191))}else if(a.Ia){var e=a.O<<1,f=b>>13;7<f&&(e|=1);a.T&a.Tc[a.O]||(f&=7);b&=8191;var g=a.M[a.O][f]<<6;c=g+b&a.Fa;3932160<=c&&(c=He(a,c));d.push(c);d.push(b);d.push(e);d.push(f&7);d.push(g);d.push(a.Fa)}else c=b&65535,57344<=c&&(c|=a.mb),d.push(c);return d}
function Fc(a,b,c){var d,e,f;if(!(c&a.Ia))return f=b&65535,57344<=f&&(f|=a.mb),f;d=b>>13;a.T&a.Tc[a.O]||(d&=7);e=a.B[a.O][d];f=(a.M[a.O][d]<<6)+(b&8191)&a.Fa;3932160<=f&&(f=He(a,f));if(a.oa)return f;f>=a.Qc&&f<a.mb?(a.R|=32,a.ta(4,0,f)):f&1&&!(c&1)&&(a.R|=64,a.ta(4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.B[a.O][d]=e;if(f!=(4194170&a.Fa)||a.O)a.lb=a.O,a.rb=d;g&&(g&57344&&(0<=a.Wa&&(g|=128),a.S&57344||(g|=a.S&4096|a.lb<<5|a.rb<<1,qd(a,a.S&-61695|g&61694)),a.ta(168,64,-2)),a.S&61440||!(f<(4191360&a.Fa)||f>(4194239&a.Fa))||(a.S|=4096,a.S&512&&(a.i|=64)));return f}function Ge(a){var b=a.na(a.g[6]|a.Ha);a.g[6]=a.g[6]+2&65535;return b}function Ee(a,b){var c=a.g[6]-2&65535;a.g[6]=c;a.P=a.P&65535|(a.P&-65536)<<8|16121856;a.i&256||a.Ab(4,-2,c);a.zb(c,b)}
function Je(a,b,c,d){var e,f,g=d&8?0:a.Ha;switch(b){case 0:return a.ta(4,0,-3),0;case 1:return 6==c&&a.Ab(d,0,a.g[6]),a.b-=3,7==c?a.g[c]:a.g[c]|g;case 2:f=2;e=a.g[c];6==c&&a.Ab(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.b-=3;break;case 3:f=2;e=a.g[c];7!=c&&(e|=g);e=a.na(e);e|=g;a.b-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.g[c]+f&65535;6==c&&a.Ab(d,f,e);7!=c&&(e|=g);a.b-=4;break;case 5:f=-2;e=a.g[c]-2&65535;7!=c&&(e|=g);e=a.na(e)|g;a.b-=8;break;case 6:return e=a.na(ze(a,2)),e=e+a.g[c]&65535,6==c&&a.Ab(d,
0,e),a.b-=6,e|g;case 7:return e=a.na(ze(a,2)),e=e+a.g[c]&65535,e=a.na(e|a.Ha),a.b-=10,e|g}a.g[c]=a.g[c]+f&65535;a.P=a.P&65535|(a.P&-65536)<<8|(f<<3&248|c)<<16;return e}h.Ld=function(a,b,c){!this.O&&0>=b&&c<=this.za&&(this.i|=32)};h.Md=function(a,b,c){this.O||(65534<=c&&(c|=-65536),a&4&&c<=this.za&&(c<=this.za-32?this.ta(4,0,-4):(this.R|=8,this.i|=32)))};h.fd=function(a){this.G&&Ud(this.G,a,1);return this.sc(a)};h.ld=function(a){this.G&&Ud(this.G,a,2);return this.tc(a)};
h.pd=function(a,b){this.G&&Vd(this.G,a,1);this.uc(a,b)};h.qd=function(a,b){this.G&&Vd(this.G,a,2);this.vc(a,b)};function Hc(a,b){a.oa++;b=a.D.dc(Fc(a,b,2));a.oa--;return b}function Ke(a,b){(b?--a.Zb:--a.Yb)||re(a)}h.Od=function(a,b,c){return Je(this,a,b,c)};h.kd=function(a,b,c){return Fc(this,Je(this,a,b,c),c)};h.od=function(a){return this.D.dc(this.ab=a)};h.$e=function(a){this.G&&Ud(this.G,a,2);return this.od(a)};h.Fc=function(a){return this.D.dc(this.ab=Fc(this,a,2))};
h.af=function(a){this.G&&Ud(this.G,a,2);return this.Fc(a)};h.td=function(a,b){this.D.Ob(this.ab=a,b)};h.mg=function(a,b){this.G&&Vd(this.G,a,2);this.td(a,b)};h.Ic=function(a,b){this.D.Ob(this.ab=Fc(this,a,4),b)};h.ng=function(a,b){this.G&&Vd(this.G,a,2);this.Ic(a,b)};function Le(a,b,c){var d=a.j=b&7;(b=a.u=(b&56)>>3)?(d=Je(a,b,d,2),c&65536||61440!==(a.w&61440)&&(d&=65535),a.O=a.w>>12&3,c=a.na(d|c&a.Ha),a.O=a.w>>14&3):c=6!=d||(a.w>>2&12288)===(a.w&12288)?a.g[d]:a.W[a.w>>12&3];return c}
function Me(a,b,c,d){a.P=a.P&65535|1441792;var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=Je(a,b,e,4),c&65536||(e&=65535),a.O=a.w>>12&3,e=Fc(a,e|c&65536,4),a.O=a.w>>14&3,a.Rb(e,d)):6!=e||(a.w>>2&12288)===(a.w&12288)?a.g[e]=d:a.W[a.w>>12&3]=d}function Ne(a,b){b>>=6;var c=a.aa=b&7;return(b=a.X=(b&56)>>3)?a.Pb(a.Ea(b,c,3)):a.g[c+a.bc]&a.Uc}function Oe(a,b){var c;b>>=6;var d=a.aa=b&7;(b=a.X=(b&56)>>3)?c=a.Qb(a.Ea(b,d,2)):c=a.g[d+a.bc];return c}function kf(a,b){var c=a.j=b&7;b=a.u=(b&56)>>3;return Je(a,b,c,8)}
function lf(a,b){var c=a.j=b&7;return(b=a.u=(b&56)>>3)?a.Pb(a.Ea(b,c,3)):a.g[c]&255}function mf(a,b){var c,d=a.j=b&7;(b=a.u=(b&56)>>3)?c=a.Qb(a.Ea(b,d,2)):c=a.g[d];return c}function nf(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.oc=a.Ea(b,e,7),c=0>c?a.g[-c-1]&255:c,a.mc(e,d.call(a,c,a.Pb(e))),e&1&&a.b--):(b=a.g[e],c=0>c?a.g[-c-1]&255:c,a.g[e]=b&65280|d.call(a,c,b&255))}
function T(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Ea(b,e,6),a.Rb(e,d.call(a,0>c?a.g[-c-1]:c,a.Qb(e)))):a.g[e]=d.call(a,0>c?a.g[-c-1]:c,a.g[e])}function of(a,b,c,d,e){var f=a.j=b&7;(b=a.u=(b&56)>>3)?(d=a.Ea(b,f,5),e.call(a,(c=0>c?a.g[-c-1]&255:c)<<8),a.mc(d,c),d&1&&a.b--):(c?(c=0>c?a.g[-c-1]&255:c,a.g[f]=a.g[f]&~d|c<<24>>24&d):a.g[f]&=~d,e.call(a,c<<8))}
function pf(a,b,c,d){var e=a.j=b&7;(b=a.u=(b&56)>>3)?(e=a.Ea(b,e,4),d.call(a,c=0>c?a.g[-c-1]:c),a.Rb(e,c)):(a.g[e]=c=0>c?a.g[-c-1]:c,d.call(a,c))}
h.ec=function(a){this.A.complete=!0;var b=this.G?qf(this.G)?1:this.A.lc?-1:0:0,c=a?this.A.lc?0:1:-1;this.A.lc=!1;this.cb=this.b=a;this.i=this.i&-5|(b?4:0);do{if(this.i){if(this.i&4){if(rf(this.G,this.g[7],c)){this.Z();break}++b||(this.i&=-5);c||c++}if(a=this.i&11)if(a=!1,this.i&2){var d=160,e=(this.Xa&224)>>5,f=this.V&&this.V.jb>e?this.V:null;f&&(d=f.xb,e=f.jb);e>(this.w&224)>>5?(this.i&8&&(ze(this,2),this.i&=-9),this.ta(d,0,-10),e=!0):e=!1;e&&(f&&Ae(this,f),a=!0);this.V||this.Xa||(this.i&=-3)}else this.i&
1&&this.i++;if(a){if(this.i&4&&rf(this.G,this.g[7],c)){this.Z();break}if(0>c)break}if(this.i&112&&Be(this)){if(this.i&4&&rf(this.G,this.g[7],c)){this.Z();break}if(0>c)break}}this.i=this.i&15|this.w&16;a=this.P=this.g[7];f=this.na(a);this.g[7]=a+2&65535;this.Pc(f)}while(0<this.b);return this.A.complete?this.cb-this.b:!1===this.A.complete?-1:0};wb(function(){for(var a=y(document,x,"cpu"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new oe(d);Da(d,c)}});
function sf(a,b){var c=b+a;this.I=this.L=this.F=c;this.H=(a^c)&(b^c);return c&65535}function tf(a,b){var c=b+a,d=c<<8;this.I=this.L=this.F=d;this.H=(a<<8^d)&(b<<8^d);return c&255}function uf(a,b){a=b<<1;Ce(this,a);return a&65535}function vf(a,b){a=b<<1;Ce(this,a<<8);return a&255}function wf(a,b){a=b&32768|b>>1|b<<16;Ce(this,a);return a&65535}function xf(a,b){a=b&128|b>>1|b<<8;Ce(this,a<<8);return a&255}function yf(a,b){a=b&~a;this.Da(a);return a}function zf(a,b){a=b&~a;this.Da(a<<8);return a}
function Af(a,b){a|=b;this.Da(a);return a}function Bf(a,b){a|=b;this.Da(a<<8);return a}function Cf(a,b){a=~b|65536;this.kb(a);return a&65535}function Df(a,b){a=~b|256;this.kb(a<<8);return a&255}function Ef(a,b){this.I=this.L=a=b-a;this.H=b&(b^a);return a&65535}function Ff(a,b){a=b-a;var c=a<<8;b<<=8;this.I=this.L=c;this.H=b&(b^c);return a&255}function Gf(a,b){this.I=this.L=a=b+a;this.H=a&(b^a);return a&65535}function Hf(a,b){a=b+a;var c=a<<8;this.I=this.L=c;this.H=c&(b<<8^c);return a&255}
function If(a,b){a=-b;this.kb(a,a&b&32768);return a&65535}function Jf(a,b){a=-b;this.kb(a<<8,(a&b&128)<<8);return a&255}function Kf(a,b){a=b<<1|this.F>>16&1;Ce(this,a);return a&65535}function Lf(a,b){a=b<<1|this.F>>16&1;Ce(this,a<<8);return a&255}function Mf(a,b){a=(this.F&65536|b)>>1|b<<16;Ce(this,a);return a&65535}function Nf(a,b){a=((this.F&65536)>>8|b)>>1|b<<8;Ce(this,a<<8);return a&255}function Of(a,b){var c=b-a;De(this,c,a,b);return c&65535}
function Pf(a,b){var c=b-a;De(this,c<<8,a<<8,b<<8);return c&255}function Qf(a,b){this.I=this.L=b&65280;this.H=this.F=0;return(b<<8|b>>8)&65535}function Rf(a,b){a^=b;this.Da(a);return a&65535}function Sf(a){T(this,a,Oe(this,a),sf);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}
function Tf(a){var b=mf(this,a);a=a>>6&7;var c=this.g[a];c&32768&&(c|=4294901760);this.F=this.H=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.F=c<<17-b,c>>=b;else if(b)if(16<b)this.H=c,c=0;else{this.F=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.H=32768)}this.g[a]=c&65535;this.I=this.L=c;this.b-=(this.u?6:7)+b}
function Uf(a){var b=mf(this,a);a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.F=this.H=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.F=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.F=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.H=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 Vf(a){S(this,a,!ve(this))}function Wf(a){S(this,a,ve(this))}
function Xf(a){T(this,a,Oe(this,a),yf);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function Yf(a){nf(this,a,Ne(this,a),zf);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function Zf(a){T(this,a,Oe(this,a),Af);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function $f(a){nf(this,a,Ne(this,a),Bf);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}
function ag(a){var b=Oe(this,a);a=mf(this,a);this.Da((0>b?this.g[-b-1]:b)&a);this.b-=this.u?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}function bg(a){var b=Ne(this,a);a=lf(this,a);this.Da(((0>b?this.g[-b-1]&255:b)&a)<<8);this.b-=this.u?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}function cg(a){S(this,a,xe(this))}function dg(a){S(this,a,!ye(this)==!we(this))}function eg(a){S(this,a,!xe(this)&&!ye(this)==!we(this))}function fg(a){S(this,a,!ve(this)&&!xe(this))}
function gg(a){S(this,a,xe(this)||!ye(this)!=!we(this))}function hg(a){S(this,a,ve(this)||xe(this))}function ig(a){S(this,a,!ye(this)!=!we(this))}function jg(a){S(this,a,ye(this))}function kg(a){S(this,a,!xe(this))}function lg(a){S(this,a,!ye(this))}function mg(){this.ta(12,0,-9)}function ng(a){S(this,a,!0)}function og(a){S(this,a,!we(this))}function pg(a){S(this,a,we(this))}function qg(a){a&1&&(this.F=0);a&2&&(this.H=0);a&4&&(this.L=1);a&8&&(this.I=0);this.b-=5}
function rg(a){var b=Oe(this,a);a=mf(this,a);var c=(b=0>b?this.g[-b-1]:b)-a;De(this,c,a,b);this.b-=this.u?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}function sg(a){var b=Ne(this,a);a=lf(this,a);var c=(b=(0>b?this.g[-b-1]&255:b)<<8)-(a<<=8);De(this,c,a,b);this.b-=this.u?4+(this.aa&&6<=this.j?1:0):(this.X?4:3)+(7==this.j?2:0)}
function tg(a){var b=mf(this,a);if(b){a=a>>6&7;var c=this.g[a]<<16|this.g[a|1];this.F=this.H=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.g[a]=d&65535,this.g[a|1]=c-d*b&65535,this.L=d>>16|d,this.I=d>>16):(this.H=32768,this.L=d>>15|d,this.I=c>>16,-1===b&&65534===this.g[a]&&(this.g[a]=this.g[a|1]=1));this.b-=53}else this.L=this.I=0,this.H=32768,this.F=65536,this.b-=7}function ug(){this.ta(24,0,-9);this.b-=20}
function vg(){this.w&49152?(this.R|=128,this.ta(4,0,-8)):(this.ua&&1120==this.ka&&this.ua.setData(this.g[0],!0),this.G?wg(this.G):this.Z());this.b-=7}function xg(){this.ta(16,0,-9);this.b-=20}var yg=[0,7,7,10,7,11,9,13];function zg(a){this.la=this.b;te(this,kf(this,a));this.b=this.la-yg[this.u]}var Ag=[0,14,14,17,14,18,16,20];function Bg(a){this.la=this.b;var b=kf(this,a);a=a>>6&7;Ee(this,this.g[a]);this.g[a]=this.g[7];te(this,b);this.b=this.la-Ag[this.u]}
var Cg=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function Dg(a){var b=Oe(this,a);this.la=this.b;pf(this,a,b,this.Da);this.b=this.la-Cg[(this.X?8:0)+this.u]+(7!=this.j||this.u?0:2)}function Eg(a){var b=Ne(this,a);of(this,a,b,65535,this.Da);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}var Fg=[7,13,13,17,14,18,17,21];
function Gg(a){var b=mf(this,a);a=a>>6&7;b=(b<<16>>16)*(this.g[a]<<16>>16);this.g[a]=b>>16&65535;this.g[a|1]=b&65535;b|=0;this.I=b>>16;this.L=this.I|b;this.H=0;this.F=-32768>b||32767<b?65536:0;this.b-=23}function Hg(){this.b-=5}function Ig(){this.w&49152||(this.D.reset(),lc(this),this.ua&&this.ua.setData(this.g[0],!0));this.b-=667}function Jg(a){if(a&8)U.call(this,a);else{var b=Ge(this);a&=7;7==a?te(this,b):(te(this,this.g[a]),this.g[a]=b);this.b-=9}}function Kg(){Fe(this);this.b-=13}
function Lg(a){a&1&&(this.F=65536);a&2&&(this.H=32768);a&4&&(this.L=0);a&8&&(this.I=32768);this.b-=5}function Mg(a){var b=(a&448)>>6;if(this.g[b]=this.g[b]-1&65535)te(this,this.g[7]-((a&63)<<1)),this.b+=1;this.b-=6}function Ng(a){T(this,a,Oe(this,a),Of);this.b-=this.u?9+(this.aa&&6<=this.j?1:0):(this.X?5:3)+(7==this.j?2:0)}function Og(a){T(this,a,0,Qf);this.b-=this.u?9:3+(7==this.j?2:0)}function Pg(){this.ta(28,0,-9)}
function Qg(){this.ua&&(this.ua.Gc(this.g[7],!0),this.ua.setData(this.g[0],!0));this.i|=8;ze(this,-2);this.b-=3}function Rg(a){T(this,a,this.g[(a>>6&7)+this.bc],Rf);this.b-=this.u?9:3+(7==this.j?2:0)}function U(a){var b;if(b=this.G)b=this.G,B(b,1)?(C(b,"undefined opcode "+O(b,a),!0,!0),b=wg(b)):b=!1;b||this.ta(8,0,-9)}function pe(a){Sg[a>>12].call(this,a)}function Tg(a){Ug[a>>6&3].call(this,a)}function Vg(a){Wg[a>>6&3].call(this,a)}function Xg(a){Yg[a>>6&3].call(this,a)}
function Zg(a){$g[a&15].call(this,a)}function ah(a){bh[a&15].call(this,a)}function ch(a){dh[a>>6&3].call(this,a)}function eh(a){fh[a>>6&3].call(this,a)}function gh(a){hh[a>>6&3].call(this,a)}
var Sg=[function(a){ih[a>>8&15].call(this,a)},Dg,rg,ag,Xf,Zf,Sf,U,function(a){jh[a>>8&15].call(this,a)},Eg,sg,bg,Yf,$f,Ng,U],ih=[function(a){kh[a>>4&15].call(this,a)},ng,kg,cg,dg,ig,eg,gg,Bg,Bg,Tg,Vg,Xg,U,U,U],Ug=[function(a){pf(this,a,0,this.jb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Cf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Gf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Ef);this.b-=this.v?9:3+(7==this.j?2:0)}],Wg=[function(a){T(this,a,0,If);
this.b-=this.v?11:6},function(a){T(this,a,ve(this)?1:0,sf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,ve(this)?1:0,Of);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=mf(this,a);this.jb(a);this.b-=this.v?4:3+(7==this.j?2:0)}],Yg=[function(a){T(this,a,0,Mf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Kf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,wf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){T(this,a,0,uf);this.b-=this.v?9:3+(7==this.j?2:0)}],kh=
[function(a){lh[a&15].call(this,a)},U,U,U,zg,zg,zg,zg,Jg,U,Zg,ah,Og,Og,Og,Og],lh=[vg,Qg,Kg,mg,xg,Ig,U,U,U,U,U,U,U,U,U,U],$g=[Hg,function(){this.G=0;this.b-=5},function(){this.H=0;this.b-=5},qg,function(){this.L=1;this.b-=5},qg,qg,qg,function(){this.I=0;this.b-=5},qg,qg,qg,qg,qg,qg,qg],bh=[Hg,function(){this.G=65536;this.b-=5},function(){this.H=32768;this.b-=5},Lg,function(){this.L=0;this.b-=5},Lg,Lg,Lg,function(){this.I=32768;this.b-=5},Lg,Lg,Lg,Lg,Lg,Lg,Lg],jh=[lg,jg,fg,hg,og,pg,Vf,Wf,ug,Pg,ch,eh,
gh,U,U,U],dh=[function(a){of(this,a,0,255,this.jb);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){nf(this,a,0,Df);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){nf(this,a,1,Hf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){nf(this,a,1,Ff);this.b-=this.v?9:3+(7==this.j?2:0)}],fh=[function(a){nf(this,a,0,Jf);this.b-=this.v?11:6},function(a){nf(this,a,ve(this)?1:0,tf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){nf(this,a,ve(this)?1:0,Pf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){a=lf(this,
a);this.jb(a<<8);this.b-=this.v?4:3+(7==this.j?2:0)}],hh=[function(a){nf(this,a,0,Nf);this.b-=this.v?9+(this.oc&1):3+(7==this.j?2:0)},function(a){nf(this,a,0,Lf);this.b-=this.v?9:3+(7==this.j?2:0)},function(a){nf(this,a,0,xf);this.b-=this.v?9+(this.oc&1):3+(7==this.j?2:0)},function(a){nf(this,a,0,vf);this.b-=this.v?9:3+(7==this.j?2:0)}];function qe(a){mh[a>>12].call(this,a)}
var mh=[function(a){nh[a>>8&15].call(this,a)},Dg,rg,ag,Xf,Zf,Sf,function(a){oh[a>>8&15].call(this,a)},function(a){ph[a>>8&15].call(this,a)},Eg,sg,bg,Yf,$f,Ng,U],nh=[function(a){qh[a>>4&15].call(this,a)},ng,kg,cg,dg,ig,eg,gg,Bg,Bg,Tg,Vg,Xg,function(a){rh[a>>6&3].call(this,a)},U,U],rh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.ma(a|this.Ha);te(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Le(this,a,0);this.Da(a);Ee(this,a);this.b-=11},function(a){var b=Ge(this);
this.ja=this.b;this.Da(b);Me(this,a,0,b);this.b=this.ja-Fg[this.v]},function(a){pf(this,a,ye(this)?65535:0,this.Da);this.b-=this.v?9:3+(7==this.j?2:0)}],qh=[function(a){sh[a&15].call(this,a)},U,U,U,zg,zg,zg,zg,Jg,function(a){!(a&8)||1145>this.ia?U.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},Zg,ah,Og,Og,Og,Og],sh=[vg,Qg,function(){Fe(this);this.i|=this.w&16;this.b-=13},mg,xg,Ig,Kg,function(a){U.call(this,a)},U,U,U,U,U,U,U,U],oh=[Gg,Gg,tg,tg,Tf,Tf,Uf,Uf,
Rg,Rg,U,U,U,U,Mg,Mg],ph=[lg,jg,fg,hg,og,pg,Vf,Wf,ug,Pg,ch,eh,gh,function(a){1145>this.ia?U.call(this,a):th[a>>6&3].call(this,a)},U,U],th=[function(a){U.call(this,a)},function(a){a=Le(this,a,65536);this.Da(a);Ee(this,a);this.b-=11},function(a){var b=Ge(this);this.ja=this.b;this.Da(b);Me(this,a,65536,b);this.b=this.ja-Fg[this.v]},function(a){U.call(this,a)}];
function uh(a){q.call(this,"ROM",a,0,128);this.ea=this.g=null;this.v=+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.C=Qa(this.j);if(this.j){a=this.j;var b=Ra(this.C);"json"!=b&&"hex"!=b&&(a=eb()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;cb(a,null,!0,function(a,b,f){f?(c.N("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(va(c.nb,a,b),(a=db(a,b))?(c.g=a.ca,c.ea=a.ea):c.j=null);vh(c)})}}p(uh,q);
h=uh.prototype;h.ua=function(a,b,c,d){this.D=b;this.f=c;this.F=d;vh(this)};h.wa=function(){this.ea&&(this.F&&wh(this.F,this.id,this.v,this.b,this.ea),delete this.ea);return!0};h.va=function(){return!0};
function vh(a){if(!Ka(a)){if(a.j){if(!a.g||!a.D)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Ea(a,"ROM size ("+I(a.g.length,8,!0)+") does not match specified size ("+I(a.b,8,!0)+")");else{var b;a:{b=a.v;if(57344<=b&&b<57344+Nc){var c={},c=(c[b]=[uh.prototype.Me,uh.prototype.Xf,null,null,null,a.b>>1],c);if(Xb(a.D,a,c)){a.status("Added "+a.b+"-byte ROM at "+H(b));b=a.w=!0;break a}}else if(Tc(a.D,b,a.b,Jd)){for(c=0;c<a.g.length;c++)bd(a.D,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.D,g=d.b,k=[],l=d.v>>>f.g;0<g&&l<f.b.length;)k.push(f.b[l++]),g-=f.j;f=d.D;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}}}A(a)}}h.Me=function(a){return this.g[a-this.v]};h.Xf=function(){};wb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new uh(d);Da(d,c)}});
function xh(a){q.call(this,"RAM",a);this.ea=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.v=!1;this.b=a.file;this.w=Qa(this.b);if(this.b){a=this.b;var b=Ra(this.w);"json"!=b&&"hex"!=b&&(a=eb()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;cb(a,null,!0,function(a,b,f){f?(c.N("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(va(c.nb,a,b),(a=db(a,b))?(c.g=a.ca,c.ea=a.ea,
null==c.Aa&&(c.Aa=a.Aa),null==c.za&&(c.za=a.za)):c.b=null);yh(c)})}}p(xh,q);xh.prototype.ua=function(a,b,c,d){this.D=b;this.f=c;this.F=d;yh(this)};xh.prototype.wa=function(){this.ea&&(this.F&&wh(this.F,this.id,this.i,this.j,this.ea),delete this.ea);return!0};xh.prototype.va=function(){return!0};
function yh(a){if(a.D&&(!a.v&&a.j&&(Tc(a.D,a.i,a.j,dd)?a.v=!0:a.j=0),!Ka(a))){if(!a.v)v("No RAM allocated");else if(a.b){if(!a.g||!a.D)return;zh(a,a.g,a.Aa,a.za,a.i)?a.status('Loaded image "'+a.w+'"'):a.N('Error loading image "'+a.w+'"')}A(a)}}
xh.prototype.reset=function(){if(this.v){for(var a=this.D,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(Eb&&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.D(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&zh(this,this.g,this.Aa,this.za,this.i,!0)}};
var Sg=[function(a){ih[a>>8&15].call(this,a)},Dg,rg,ag,Xf,Zf,Sf,U,function(a){jh[a>>8&15].call(this,a)},Eg,sg,bg,Yf,$f,Ng,U],ih=[function(a){kh[a>>4&15].call(this,a)},ng,kg,cg,dg,ig,eg,gg,Bg,Bg,Tg,Vg,Xg,U,U,U],Ug=[function(a){pf(this,a,0,this.kb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Cf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Gf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,1,Ef);this.b-=this.u?9:3+(7==this.j?2:0)}],Wg=[function(a){T(this,a,0,If);
this.b-=this.u?11:6},function(a){T(this,a,ve(this)?1:0,sf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,ve(this)?1:0,Of);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=mf(this,a);this.kb(a);this.b-=this.u?4:3+(7==this.j?2:0)}],Yg=[function(a){T(this,a,0,Mf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,0,Kf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,0,wf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){T(this,a,0,uf);this.b-=this.u?9:3+(7==this.j?2:0)}],kh=
[function(a){lh[a&15].call(this,a)},U,U,U,zg,zg,zg,zg,Jg,U,Zg,ah,Og,Og,Og,Og],lh=[vg,Qg,Kg,mg,xg,Ig,U,U,U,U,U,U,U,U,U,U],$g=[Hg,function(){this.F=0;this.b-=5},function(){this.H=0;this.b-=5},qg,function(){this.L=1;this.b-=5},qg,qg,qg,function(){this.I=0;this.b-=5},qg,qg,qg,qg,qg,qg,qg],bh=[Hg,function(){this.F=65536;this.b-=5},function(){this.H=32768;this.b-=5},Lg,function(){this.L=0;this.b-=5},Lg,Lg,Lg,function(){this.I=32768;this.b-=5},Lg,Lg,Lg,Lg,Lg,Lg,Lg],jh=[lg,jg,fg,hg,og,pg,Vf,Wf,ug,Pg,ch,eh,
gh,U,U,U],dh=[function(a){of(this,a,0,255,this.kb);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){nf(this,a,0,Df);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){nf(this,a,1,Hf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){nf(this,a,1,Ff);this.b-=this.u?9:3+(7==this.j?2:0)}],fh=[function(a){nf(this,a,0,Jf);this.b-=this.u?11:6},function(a){nf(this,a,ve(this)?1:0,tf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){nf(this,a,ve(this)?1:0,Pf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){a=lf(this,
a);this.kb(a<<8);this.b-=this.u?4:3+(7==this.j?2:0)}],hh=[function(a){nf(this,a,0,Nf);this.b-=this.u?9+(this.oc&1):3+(7==this.j?2:0)},function(a){nf(this,a,0,Lf);this.b-=this.u?9:3+(7==this.j?2:0)},function(a){nf(this,a,0,xf);this.b-=this.u?9+(this.oc&1):3+(7==this.j?2:0)},function(a){nf(this,a,0,vf);this.b-=this.u?9:3+(7==this.j?2:0)}];function qe(a){mh[a>>12].call(this,a)}
var mh=[function(a){nh[a>>8&15].call(this,a)},Dg,rg,ag,Xf,Zf,Sf,function(a){oh[a>>8&15].call(this,a)},function(a){ph[a>>8&15].call(this,a)},Eg,sg,bg,Yf,$f,Ng,U],nh=[function(a){qh[a>>4&15].call(this,a)},ng,kg,cg,dg,ig,eg,gg,Bg,Bg,Tg,Vg,Xg,function(a){rh[a>>6&3].call(this,a)},U,U],rh=[function(a){a=this.g[7]+((a&63)<<1)&65535;var b=this.na(a|this.Ha);te(this,this.g[5]);this.g[6]=a+2&65535;this.g[5]=b;this.b-=8},function(a){a=Le(this,a,0);this.Da(a);Ee(this,a);this.b-=11},function(a){var b=Ge(this);
this.la=this.b;this.Da(b);Me(this,a,0,b);this.b=this.la-Fg[this.u]},function(a){pf(this,a,ye(this)?65535:0,this.Da);this.b-=this.u?9:3+(7==this.j?2:0)}],qh=[function(a){sh[a&15].call(this,a)},U,U,U,zg,zg,zg,zg,Jg,function(a){!(a&8)||1145>this.ka?U.call(this,a):(this.w&49152||(this.w=this.w&-225|(a&7)<<5,this.i|=1,this.i&=-3),this.b-=5)},Zg,ah,Og,Og,Og,Og],sh=[vg,Qg,function(){Fe(this);this.i|=this.w&16;this.b-=13},mg,xg,Ig,Kg,function(a){U.call(this,a)},U,U,U,U,U,U,U,U],oh=[Gg,Gg,tg,tg,Tf,Tf,Uf,Uf,
Rg,Rg,U,U,U,U,Mg,Mg],ph=[lg,jg,fg,hg,og,pg,Vf,Wf,ug,Pg,ch,eh,gh,function(a){1145>this.ka?U.call(this,a):th[a>>6&3].call(this,a)},U,U],th=[function(a){U.call(this,a)},function(a){a=Le(this,a,65536);this.Da(a);Ee(this,a);this.b-=11},function(a){var b=Ge(this);this.la=this.b;this.Da(b);Me(this,a,65536,b);this.b=this.la-Fg[this.u]},function(a){U.call(this,a)}];
function uh(a){q.call(this,"ROM",a,0,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=Qa(this.j);if(this.j){a=this.j;var b=Ra(this.B);"json"!=b&&"hex"!=b&&(a=eb()+"/api/v1/dump?file="+this.j+"&format=bytes&decimal=true");var c=this;cb(a,null,!0,function(a,b,f){f?(c.N("Unable to load ROM resource (error "+f+": "+a+")"),c.j=null):(va(c.ob,a,b),(a=db(a,b))?(c.g=a.ca,c.ga=a.ga):c.j=null);vh(c)})}}p(uh,q);
h=uh.prototype;h.wa=function(a,b,c,d){this.D=b;this.f=c;this.G=d;vh(this)};h.ya=function(){this.ga&&(this.G&&wh(this.G,this.id,this.u,this.b,this.ga),delete this.ga);return!0};h.xa=function(){return!0};
function vh(a){if(!Ka(a)){if(a.j){if(!a.g||!a.D)return;a.b||(a.b=a.g.length);if(a.g.length!=a.b)Ea(a,"ROM size ("+I(a.g.length,8,!0)+") does not match specified size ("+I(a.b,8,!0)+")");else{var b;a:{b=a.u;if(57344<=b&&b<57344+Nc){var c={},c=(c[b]=[uh.prototype.Me,uh.prototype.Xf,null,null,null,a.b>>1],c);if(Yb(a.D,a,c)){a.status("Added "+a.b+"-byte ROM at "+H(b));b=a.w=!0;break a}}else if(Tc(a.D,b,a.b,Jd)){for(c=0;c<a.g.length;c++)bd(a.D,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.D,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.D;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}}}A(a)}}h.Me=function(a){return this.g[a-this.u]};h.Xf=function(){};wb(function(){for(var a=y(document,x,"rom"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new uh(d);Da(d,c)}});
function xh(a){q.call(this,"RAM",a);this.ga=this.g=null;this.i=+a.addr;this.j=+a.size;this.Ba=a.load;this.Aa=a.exec;null!=this.Ba&&(this.Ba=+this.Ba);null!=this.Aa&&(this.Aa=+this.Aa);this.u=!1;this.b=a.file;this.w=Qa(this.b);if(this.b){a=this.b;var b=Ra(this.w);"json"!=b&&"hex"!=b&&(a=eb()+"/api/v1/dump?file="+this.b+"&format=bytes&decimal=true");var c=this;cb(a,null,!0,function(a,b,f){f?(c.N("Unable to load RAM resource (error "+f+": "+a+")"),c.b=null):(va(c.ob,a,b),(a=db(a,b))?(c.g=a.ca,c.ga=a.ga,
null==c.Ba&&(c.Ba=a.Ba),null==c.Aa&&(c.Aa=a.Aa)):c.b=null);yh(c)})}}p(xh,q);xh.prototype.wa=function(a,b,c,d){this.D=b;this.f=c;this.G=d;yh(this)};xh.prototype.ya=function(){this.ga&&(this.G&&wh(this.G,this.id,this.i,this.j,this.ga),delete this.ga);return!0};xh.prototype.xa=function(){return!0};
function yh(a){if(a.D&&(!a.u&&a.j&&(Tc(a.D,a.i,a.j,dd)?a.u=!0:a.j=0),!Ka(a))){if(!a.u)v("No RAM allocated");else if(a.b){if(!a.g||!a.D)return;zh(a,a.g,a.Ba,a.Aa,a.i)?a.status('Loaded image "'+a.w+'"'):a.N('Error loading image "'+a.w+'"')}A(a)}}
xh.prototype.reset=function(){if(this.u){for(var a=this.D,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(Eb&&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.D(d,g,e.K+d);c-=a.j;b++;d=0}this.g&&zh(this,this.g,this.Ba,this.Aa,this.i,!0)}};
function zh(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){C(a,"invalid signature ("+Pa(m)+") at offset "+Pa(n),4096);break}if(l+6>=b.length){C(a,"invalid block at offset "+Pa(n),4096);break}for(var l=l+2,r=b[l++]&255|(b[l++]&255)<<8,u=b[l++]&255|(b[l++]&255)<<8,m=m+((r&255)+(r>>8)+(u&255)+(u>>8)),t=l,E=r-=6;0<r&&l<b.length;)m+=b[l++]&255,r--;if(r||l>=b.length){C(a,"insufficient data for block at offset "+Pa(n),4096);
break}m+=b[l++]&255;if(m&255){C(a,"invalid checksum ("+I(m,2,!0)+") for block at offset "+Pa(n),4096);break}if(E)for(C(a,"loading "+Pa(E)+" bytes at "+Pa(u)+"-"+Pa(u+E),4096);E--;)bd(a.D,u++,b[t++]&255);else u&1?g=!0:null==d&&(d=u),null!=d&&C(a,"starting address: "+Pa(d),4096);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<b.length;e++)bd(a.D,c+e,b[e]);k=!0}if(k){if(null==d||g)a.f.Z(),f=!1;null!=d&&se(a.f,d,f)}return k}
wb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new xh(d);Da(d,c)}});function Ah(a){q.call(this,"Keyboard",a,0,1024);A(this)}p(Ah,q);Ah.prototype.qa=function(){return!1};Ah.prototype.ua=function(a,b,c,d){this.J=a;this.f=c;this.F=d};wb(function(){for(var a=y(document,x,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ah(d);Da(d,c)}});
function Bh(a){q.call(this,"SerialPort",a,0,262144);this.M=+a.adapter;this.T=+a.baudReceive||9600;this.aa=+a.baudTransmit||9600;this.L=a.upperCase;"string"==typeof this.L&&(this.L="true"==this.L);this.j=this.w=null;this.W=+a.tabSize;this.V=+a.charBOL;this.C=0;this.I=!0;this.R=this.O=null;this.S=this.X=-1;this.G=this.b=this.g=0;this.v=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Ch;b&&(void 0===c&&(c="Panel"),(c=Ca(c,this.id))&&(b=c.B[b])&&this.qa(null,a,b))}this.i=this.H=this.P=null;
wb(function(){for(var a=y(document,x,"ram"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new xh(d);Da(d,c)}});function Ah(a){q.call(this,"Keyboard",a,0,1024);A(this)}p(Ah,q);Ah.prototype.sa=function(){return!1};Ah.prototype.wa=function(a,b,c,d){this.J=a;this.f=c;this.G=d};wb(function(){for(var a=y(document,x,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Ah(d);Da(d,c)}});
function Bh(a){q.call(this,"SerialPort",a,0,262144);this.M=+a.adapter;this.T=+a.baudReceive||9600;this.aa=+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.V=+a.charBOL;this.B=0;this.I=!0;this.R=this.O=null;this.S=this.X=-1;this.F=this.b=this.g=0;this.i=[];var b=a.binding;if("console"==b)this.w="";else{var c;a=Ch;b&&(void 0===c&&(c="Panel"),(c=Ca(c,this.id))&&(b=c.C[b])&&this.sa(null,a,b))}this.j=this.H=this.P=null;
this.exports={connect:this.md,receiveData:this.ic,receiveStatus:this.ff,setConnection:this.kf}}p(Bh,q);h=Bh.prototype;
h.qa=function(a,b,c){var d=this;switch(b){case Ch:return this.B[b]=this.j=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ta.Mc:ta.xd:46==c?b=ta.Mc:a.ctrlKey&&c>=ta.Jc&&c<=ta.Gd&&(b=c-(ta.Jc-ta.ud));b&&(a.preventDefault&&a.preventDefault(),d.ic(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.wd&&(b=ta.vd);d.ic(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
h.sa=function(a,b,c){var d=this;switch(b){case Ch:return this.C[b]=this.u=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?ta.Mc:ta.xd:46==c?b=ta.Mc:a.ctrlKey&&c>=ta.Jc&&c<=ta.Gd&&(b=c-(ta.Jc-ta.ud));b&&(a.preventDefault&&a.preventDefault(),d.ic(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==ta.wd&&(b=ta.vd);d.ic(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.ic(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ua=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;var e=this;this.R=kd(this.f,this.M?-1:48,4,262144);this.S=hd(this.f,function(){var a;a=-1;e.v.length&&(a=e.v.shift()&255,C(e,"receiveByte("+I(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),jd(e.f,e.S,1E3/Math.round(e.T/10)));0<=a&&(e.G=a,e.b&128?e.G|=49152:e.b|=128,e.b&64&&id(c,e.R))});this.O=kd(this.f,this.M?-1:52,4,262144);this.X=hd(this.f,function(){e.g|=128;e.g&64&&id(c,e.O)});Xb(b,this,Dh,this.M?64832+8*(this.M-1)-65392:0);Zb(b,this.reset.bind(this));
A(this)};h.md=function(a){if(!this.i){var b=$d(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.i=Ba(c)){var e=this.i.exports;if(e){var f=e.connect;f&&f.call(this.i,this.I);if(this.H=e.receiveData){this.I=a;this.P=e.receiveStatus;this.status("Connected "+this.nb+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.wa=function(a,b){if(!b)if(this.md(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.va=function(a){return a?this.save():!0};h.reset=function(){Eh(this)};h.save=function(){var a=new M(this);a.set(0,[]);return a.data()};h.restore=function(){return Eh(this)};function Eh(a){a.G=0;a.b=8192;a.g=128;a.v=[];return!0}
h.ic=function(a){if("number"==typeof a)this.v.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.v.push(b)}else this.v=this.v.concat(a);jd(this.f,this.S,1E3/Math.round(this.T/10));return!0};h.ff=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&&id(this.f,this.R))};h.kf=function(a,b){return this.i?!1:(this.i=a,this.H=b,!0)};
h.ze=function(){var a=this.b&65534;this.b&=-32769;return a};h.Kf=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.P&&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.P.call(this.i,b))};h.ye=function(){this.b&=-129;return this.G};h.Jf=function(){};h.ef=function(){return this.g};h.pg=function(a){this.g&128&&(a&64?id(this.f,this.O):od(this.f,this.O));this.g=this.g&-70|a&69};h.df=function(){return 0};
h.og=function(a){a&=255;C(this,"transmitByte("+I(a,2,!0)+")");this.H&&this.H.call(this.i,a);a&=127;if(this.j)if(13==a)this.C=0;else if(8==a)this.j.value=this.j.value.slice(0,-1),0<this.C&&this.C--;else{if(a){var b;13!=a&&10!=a&&(b=$a[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.W||8,c=a-this.C%a,this.W&&(b=Ya("",c)));this.V&&!this.C&&c&&(b=String.fromCharCode(this.V)+b);this.j.value+=b;this.j.scrollTop=this.j.scrollHeight;this.C+=c}}else if(null!=this.w){if(10==
a||1024<=this.w.length)this.u(this.w),this.w="";10!=a&&(this.w+=String.fromCharCode(a))}jd(this.f,this.X,1E3/Math.round(this.aa/10));this.g&=-129};var Ch="buffer",Fh={},Dh=(Fh[65392]=[null,null,Bh.prototype.ze,Bh.prototype.Kf,"RCSR"],Fh[65394]=[null,null,Bh.prototype.ye,Bh.prototype.Jf,"RBUF"],Fh[65396]=[null,null,Bh.prototype.ef,Bh.prototype.pg,"XCSR"],Fh[65398]=[null,null,Bh.prototype.df,Bh.prototype.og,"XBUF"],Fh);
wb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Bh(d);Da(d,c)}});function Fd(a){q.call(this,"PC11",a);this.M=Gh(this,a.autoMount);this.g=0;this.S=+a.baudReceive||3600;this.C=this.G=this.b=0;this.w=[];this.v=Hh;this.i=Ih;this.L=this.j="";this.ca=this.Aa=this.za=null;this.P=-1;this.O=!pb("Mobi")&&window&&"FileReader"in window;this.H=null;this.R=-1;this.I=null}p(Fd,q);
h.wa=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.G=d;var e=this;this.R=kd(this.f,this.M?-1:48,4,262144);this.S=hd(this.f,function(){var a;a=-1;e.i.length&&(a=e.i.shift()&255,C(e,"receiveByte("+I(a,2,!0)+")"),e.L&&97<=a&&122>a&&(a-=32),jd(e.f,e.S,1E3/Math.round(e.T/10)));0<=a&&(e.F=a,e.b&128?e.F|=49152:e.b|=128,e.b&64&&id(c,e.R))});this.O=kd(this.f,this.M?-1:52,4,262144);this.X=hd(this.f,function(){e.g|=128;e.g&64&&id(c,e.O)});Yb(b,this,Dh,this.M?64832+8*(this.M-1)-65392:0);$b(b,this.reset.bind(this));
A(this)};h.md=function(a){if(!this.j){var b=$d(this.J,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Za(c[0]);if(d!=this.nb)return;c=Za(c[1]);if(this.j=Ba(c)){var e=this.j.exports;if(e){var f=e.connect;f&&f.call(this.j,this.I);if(this.H=e.receiveData){this.I=a;this.P=e.receiveStatus;this.status("Connected "+this.ob+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};
h.ya=function(a,b){if(!b)if(this.md(this.I),!a)this.reset();else if(!this.restore(a))return!1;return!0};h.xa=function(a){return a?this.save():!0};h.reset=function(){Eh(this)};h.save=function(){var a=new J(this);a.set(0,[this.F,this.b,this.g,this.i]);return a.data()};h.restore=function(a){return Eh(this,a[0])};function Eh(a,b){b||(b=[0,8192,128,a.i]);b=ja(b);a.F=b.next().value;a.b=b.next().value;a.g=b.next().value;a.i=b.next().value;return!0}
h.ic=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);jd(this.f,this.S,1E3/Math.round(this.T/10));return!0};h.ff=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&&id(this.f,this.R))};h.kf=function(a,b){return this.j?!1:(this.j=a,this.H=b,!0)};
h.ze=function(){var a=this.b&65534;this.b&=-32769;return a};h.Kf=function(a){var b=a^this.b;this.b=this.b&-112|a&111;this.P&&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.P.call(this.j,b))};h.ye=function(){this.b&=-129;return this.F};h.Jf=function(){};h.ef=function(){return this.g};h.pg=function(a){this.g&128&&(a&64?id(this.f,this.O):od(this.f,this.O));this.g=this.g&-70|a&69};h.df=function(){return 0};
h.og=function(a){a&=255;C(this,"transmitByte("+I(a,2,!0)+")");this.H&&this.H.call(this.j,a);a&=127;if(this.u)if(13==a)this.B=0;else if(8==a)this.u.value=this.u.value.slice(0,-1),0<this.B&&this.B--;else{if(a){var b;13!=a&&10!=a&&(b=$a[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.W||8,c=a-this.B%a,this.W&&(b=Ya("",c)));this.V&&!this.B&&c&&(b=String.fromCharCode(this.V)+b);this.u.value+=b;this.u.scrollTop=this.u.scrollHeight;this.B+=c}}else if(null!=this.w){if(10==
a||1024<=this.w.length)this.v(this.w),this.w="";10!=a&&(this.w+=String.fromCharCode(a))}jd(this.f,this.X,1E3/Math.round(this.aa/10));this.g&=-129};var Ch="buffer",Fh={},Dh=(Fh[65392]=[null,null,Bh.prototype.ze,Bh.prototype.Kf,"RCSR"],Fh[65394]=[null,null,Bh.prototype.ye,Bh.prototype.Jf,"RBUF"],Fh[65396]=[null,null,Bh.prototype.ef,Bh.prototype.pg,"XCSR"],Fh[65398]=[null,null,Bh.prototype.df,Bh.prototype.og,"XBUF"],Fh);
wb(function(){for(var a=y(document,x,"serial"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new Bh(d);Da(d,c)}});function Fd(a){q.call(this,"PC11",a);this.M=Gh(this,a.autoMount);this.g=0;this.S=+a.baudReceive||3600;this.B=this.F=this.b=0;this.w=[];this.u=Hh;this.i=Ih;this.L=this.j="";this.ca=this.Ba=this.Aa=null;this.P=-1;this.O=!pb("Mobi")&&window&&"FileReader"in window;this.H=null;this.R=-1;this.I=null}p(Fd,q);
function Gh(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Fd.prototype;
h.qa=function(a,b,c){var d=this,e=Ih;switch(b){case "listTapes":return this.B[b]=c,c.onchange=function(){var a=d.B.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("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.B[b]=c,!0;case "readTape":e=Jh;case "loadTape":return e||(e=Kh),this.B[b]=c,c.onclick=
function(){var a=d.B.listTapes;a&&Lh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.B[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;Lh(d,Qa(b,!0),b,Kh,a)}return!1};return!0;case Mh:return this.B[b]=c,!0}return!1};
h.ua=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;this.I=Nh(a);var e=this;if(a=Gh(this,$d(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.M[f]=a[f]);this.H=kd(this.f,56,4,4096);this.R=hd(this.f,function(){1==(e.b&32769)&&!(e.b&128)&&e.C<e.w.length&&(e.G=e.w[e.C++]&255,Oh(e,e.C/e.w.length*100),e.b|=128,e.b&=-2049,e.b&64&&id(e.f,e.H))});Xb(b,this,Ph);Zb(b,this.reset.bind(this));Qh(this,"None",Hh,!0);this.O&&Qh(this,"Local Tape",Rh);Qh(this,"Remote Tape",Sh);Th(this)||A(this)};
h.wa=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.va=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.G=0};function Th(a){a.g=0;var b=a.M.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.B.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=Qa(c,!0)}c&&b?Uh(a,b,c,Kh,!0):Vh(a)}return!!a.g}
function Lh(a,b,c,d,e){if(c)if(c==Rh)a.N('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Sh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=Qa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.v=Sh}else a.v=c;Uh(a,b,c,d,!1,e)}else Wh(a,!1)}
function Uh(a,b,c,d,e,f){var g=-1;if(a.j.toLowerCase()!=c.toLowerCase()||a.i!=d)g++,Wh(a,!0),a.A.fb?a.N("PC11 busy"):(e&&(a.g++,B(a)&&C(a,"auto-loading tape: "+b)),Xh(a,b,c,d,f)?g++:a.A.fb=!0);g&&Yh(a,a.L,a.j,a.i,a.ca,a.Aa,a.za)}
function Xh(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),Yh(a,b,c,d,e),a.v=Rh);Vh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=Ra(c),f="json"==e||"gz"==e?encodeURI(c):eb()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!cb(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.fa;g?a.N('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(va(a.nb,e,f),(e=db(e,f))&&Yh(a,b,c,d,e.ca,e.Aa,
e.za));a.A.fb=!1;a.g&&(a.g--,a.g||A(a));Vh(a)})}function Qh(a,b,c,d){if((a=a.B.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 Vh(a){var b=a.B.listTapes;if(b&&b.options){a=a.v||a.j;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 Oh(a,b){b|=0;if(b!==a.P){var c=a.B[Mh];c&&(c=(c=y(c,Zh))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function Yh(a,b,c,d,e,f,g){a.L=b;a.j=c;a.i=d;a.ca=e;a.Aa=f;a.za=g;d==Jh?a.I&&zh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.N('No valid memory address for tape "'+b+'"'):(a.C=0,a.w=e,a.status('Loaded tape "'+b+'"'),Oh(a,0))}function Wh(a,b){if(a.j||!1===b)a.L="",a.j="",b||(a.i&&a.status(a.i==Kh?"tape detached":"tape unloaded"),a.v=Hh,a.i=Ih,Vh(a))}h.save=function(){return(new M(this)).data()};h.restore=function(){return!0};h.se=function(){return this.b&65534};
h.Df=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&id(this.f,this.H)):(this.b&=-129,this.b|=2048,this.G=0,jd(this.f,this.R,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.re=function(){this.b&=-129;this.b|=2048;return this.G};h.Cf=function(){};var Hh="",Rh="?",Sh="??",Ih=0,Kh=1,Jh=2,Mh="readProgress",Zh="pcjs-progress-bar",$h={},Ph=($h[65384]=[null,null,Fd.prototype.se,Fd.prototype.Df,"PRS"],$h[65386]=[null,null,Fd.prototype.re,Fd.prototype.Cf,"PRB"],$h);
function ai(a,b,c){q.call(this,"Disk",{id:a.nb+".disk"+I(++bi,4)},0,8192);this.controller=a;this.J=a.J;this.F=a.F;this.v=b;this.Na=b.name;this.Ca=this.kc="";this.gc=b.gc;this.Y=this.da=this.ba=this.pa=this.mode=0;this.b=[];this.i=null;this.j=!1;ci(this,c,b.Y,b.da,b.ba,b.pa);this.g=this.w=null;A(this)}p(ai,q);h=ai.prototype;h.ua=function(a,b,c,d){this.F=d};
function ci(a,b,c,d,e,f){a.mode=b;a.Y=c;a.da=d;a.ba=e;a.pa=f;a.b=[];if("preload"!=a.mode){b=Array(a.Y);for(c=0;c<b.length;c++){d=Array(a.da);for(e=0;e<d.length;e++){f=Array(a.ba);for(var g=1;g<=f.length;g++)f[g-1]=di(null,c,e,g,a.pa,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function ei(a,b,c,d,e){var f=c;if(a.g)return!0;a.Na=b;a.Ca=c;a.kc=Qa(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=sa[d];if(e){a.Y=e[0];a.da=e[1];a.ba=e[2];a.pa=e[3]||512;c=a.pa>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.Y);for(d=0;d<a.b.length;d++)for(var u=a.b[d]=Array(a.da),t=0;t<u.length;t++)for(var E=u[t]=Array(a.ba),z=0;z<E.length;z++){for(var D=di(null,d,t,z+1,a.pa,0),F=D.data,gb=0;gb<c;gb++,f+=4)var W=F[gb]=b.getInt32(f,
!0),e=e+W&-1;D.Ja=c;E[z]=D}a.i=e;c=a}else a.N("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.v,c,a.Na,a.Ca),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=Ra(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"):Sa(c,"/")&&(d="dir"),f=eb()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.gc?"":e)+"&format=json"));return!!cb(f,
h.sa=function(a,b,c){var d=this,e=Ih;switch(b){case "listTapes":return this.C[b]=c,c.onchange=function(){var a=d.C.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("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.C[b]=c,!0;case "readTape":e=Jh;case "loadTape":return e||(e=Kh),this.C[b]=c,c.onclick=
function(){var a=d.C.listTapes;a&&Lh(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.O){c.parentNode.removeChild(c);break}this.C[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;Lh(d,Qa(b,!0),b,Kh,a)}return!1};return!0;case Mh:return this.C[b]=c,!0}return!1};
h.wa=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.G=d;this.I=Nh(a);var e=this;if(a=Gh(this,$d(this.J,"autoMount")))for(var f in a)"PTR"==f&&(this.M[f]=a[f]);this.H=kd(this.f,56,4,4096);this.R=hd(this.f,function(){1==(e.b&32769)&&!(e.b&128)&&e.B<e.w.length&&(e.F=e.w[e.B++]&255,Oh(e,e.B/e.w.length*100),e.b|=128,e.b&=-2049,e.b&64&&id(e.f,e.H))});Yb(b,this,Ph);$b(b,this.reset.bind(this));Qh(this,"None",Hh,!0);this.O&&Qh(this,"Local Tape",Rh);Qh(this,"Remote Tape",Sh);Th(this)||A(this)};
h.ya=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.xa=function(a){return a?this.save():!0};h.reset=function(){this.b&=-2241;this.F=0};function Th(a){a.g=0;var b=a.M.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.C.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=Qa(c,!0)}c&&b?Uh(a,b,c,Kh,!0):Vh(a)}return!!a.g}
function Lh(a,b,c,d,e){if(c)if(c==Rh)a.N('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Sh){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=Qa(c);a.status("Attempting to load "+c+' as "'+b+'"');a.u=Sh}else a.u=c;Uh(a,b,c,d,!1,e)}else Wh(a,!1)}
function Uh(a,b,c,d,e,f){var g=-1;if(a.j.toLowerCase()!=c.toLowerCase()||a.i!=d)g++,Wh(a,!0),a.A.gb?a.N("PC11 busy"):(e&&(a.g++,B(a)&&C(a,"auto-loading tape: "+b)),Xh(a,b,c,d,f)?g++:a.A.gb=!0);g&&Yh(a,a.L,a.j,a.i,a.ca,a.Ba,a.Aa)}
function Xh(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),Yh(a,b,c,d,e),a.u=Rh);Vh(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=Ra(c),f="json"==e||"gz"==e?encodeURI(c):eb()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!cb(f,null,!0,function(e,f,g){var k=0>g&&!!a.J&&!a.J.A.ha;g?a.N('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(va(a.ob,e,f),(e=db(e,f))&&Yh(a,b,c,d,e.ca,e.Ba,
e.Aa));a.A.gb=!1;a.g&&(a.g--,a.g||A(a));Vh(a)})}function Qh(a,b,c,d){if((a=a.C.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 Vh(a){var b=a.C.listTapes;if(b&&b.options){a=a.u||a.j;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 Oh(a,b){b|=0;if(b!==a.P){var c=a.C[Mh];c&&(c=(c=y(c,Zh))&&c[0])&&c.style&&(c.style.width=b+"%");a.P=b}}
function Yh(a,b,c,d,e,f,g){a.L=b;a.j=c;a.i=d;a.ca=e;a.Ba=f;a.Aa=g;d==Jh?a.I&&zh(a.I,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.N('No valid memory address for tape "'+b+'"'):(a.B=0,a.w=e,a.status('Loaded tape "'+b+'"'),Oh(a,0))}function Wh(a,b){if(a.j||!1===b)a.L="",a.j="",b||(a.i&&a.status(a.i==Kh?"tape detached":"tape unloaded"),a.u=Hh,a.i=Ih,Vh(a))}h.save=function(){return(new J(this)).data()};h.restore=function(){return!0};h.se=function(){return this.b&65534};
h.Df=function(a){a&1&&(this.b&32768?(a&=-2,this.b&64&&id(this.f,this.H)):(this.b&=-129,this.b|=2048,this.F=0,jd(this.f,this.R,1E3/Math.round(this.S/10))));this.b=this.b&-66|a&65};h.re=function(){this.b&=-129;this.b|=2048;return this.F};h.Cf=function(){};var Hh="",Rh="?",Sh="??",Ih=0,Kh=1,Jh=2,Mh="readProgress",Zh="pcjs-progress-bar",$h={},Ph=($h[65384]=[null,null,Fd.prototype.se,Fd.prototype.Df,"PRS"],$h[65386]=[null,null,Fd.prototype.re,Fd.prototype.Cf,"PRB"],$h);
function ai(a,b,c){q.call(this,"Disk",{id:a.ob+".disk"+I(++bi,4)},0,8192);this.controller=a;this.J=a.J;this.G=a.G;this.u=b;this.Na=b.name;this.ra=this.kc="";this.gc=b.gc;this.Y=this.ea=this.ba=this.qa=this.mode=0;this.b=[];this.i=null;this.j=!1;ci(this,c,b.Y,b.ea,b.ba,b.qa);this.g=this.w=null;A(this)}p(ai,q);h=ai.prototype;h.wa=function(a,b,c,d){this.G=d};
function ci(a,b,c,d,e,f){a.mode=b;a.Y=c;a.ea=d;a.ba=e;a.qa=f;a.b=[];if("preload"!=a.mode){b=Array(a.Y);for(c=0;c<b.length;c++){d=Array(a.ea);for(e=0;e<d.length;e++){f=Array(a.ba);for(var g=1;g<=f.length;g++)f[g-1]=di(null,c,e,g,a.qa,0);d[e]=f}b[c]=d}a.b=b}a.i=null}
function ei(a,b,c,d,e){var f=c;if(a.g)return!0;a.Na=b;a.ra=c;a.kc=Qa(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=sa[d];if(e){a.Y=e[0];a.ea=e[1];a.ba=e[2];a.qa=e[3]||512;c=a.qa>>2;var f=e=0,b=new DataView(b,0,d);a.b=Array(a.Y);for(d=0;d<a.b.length;d++)for(var u=a.b[d]=Array(a.ea),t=0;t<u.length;t++)for(var E=u[t]=Array(a.ba),z=0;z<E.length;z++){for(var D=di(null,d,t,z+1,a.qa,0),F=D.data,gb=0;gb<c;gb++,f+=4)var W=F[gb]=b.getInt32(f,
!0),e=e+W&-1;D.Ja=c;E[z]=D}a.i=e;c=a}else a.N("Unrecognized disk format ("+d+" bytes)");a.g&&(a.g.call(a.controller,a.u,c,a.Na,a.ra),a.g=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=Ra(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"):Sa(c,"/")&&(d="dir"),f=eb()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.gc?"":e)+"&format=json"));return!!cb(f,
null,!0,function(b,c,d){fi(a,b,c,d)})}
function fi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.fa;a.j=!1;if(d)a.controller.N('Unable to load disk "'+a.Na+'" (error '+d+": "+b+")",f);else{va(a.controller.nb,b,c);try{if(0<Qa(a.kc,!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.Na]: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)v(k[0]);else{a.Y=k.length;a.da=k[0].length;a.ba=k[0][0].length;var l=k[0][0][0];a.pa=l&&l.length||512;for(d=c=0;d<a.Y;d++)for(f=0;f<a.da;f++)for(g=0;g<a.ba;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 r=l.data;if(void 0===r){var u=l.bytes;if(void 0!==u&&u.length){for(var t=m<<2,E=u.length;E<t;E++)u[E]=n;gi(l,u)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}di(l,d,f);for(t=
0;t<r.length;t++)c=c+r[t]&-1}a.b=k;a.i=c;e=a}else v("Empty disk image: "+a.Na)}catch(z){v("Disk image error ("+b+"): "+z.message)}}a.g&&(a.g.call(a.w,a.v,e,a.Na,a.Ca),a.g=null)}function di(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.qh=b;a.rh=c;a.Ra=a.Ja=0;a.Wa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.v,g=this.b[a];if(g){var k=g[b];if(!k&&f.Jd&&b<f.da)for(k=g[b]=Array(f.bd),g=0;g<k.length;g++)k[g]=di(null,a,b,g+1,f.Cc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Jd&&9==f.zc&&(d=k[g]=di(null,a,b,f.zc,f.Cc,0))}}e&&e(d,!1);return d};function gi(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}
function fi(a,b,c,d){var e=null,f=0>d&&!!a.J&&!a.J.A.ha;a.j=!1;if(d)a.controller.N('Unable to load disk "'+a.Na+'" (error '+d+": "+b+")",f);else{va(a.controller.ob,b,c);try{if(0<Qa(a.kc,!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.Na]: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)v(k[0]);else{a.Y=k.length;a.ea=k[0].length;a.ba=k[0][0].length;var l=k[0][0][0];a.qa=l&&l.length||512;for(d=c=0;d<a.Y;d++)for(f=0;f<a.ea;f++)for(g=0;g<a.ba;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 r=l.data;if(void 0===r){var u=l.bytes;if(void 0!==u&&u.length){for(var t=m<<2,E=u.length;E<t;E++)u[E]=n;gi(l,u)}else r=[],n=l.pattern=n|n<<8|n<<16|n<<24,l.data=r;delete l.bytes}di(l,d,f);for(t=
0;t<r.length;t++)c=c+r[t]&-1}a.b=k;a.i=c;e=a}else v("Empty disk image: "+a.Na)}catch(z){v("Disk image error ("+b+"): "+z.message)}}a.g&&(a.g.call(a.w,a.u,e,a.Na,a.ra),a.g=null)}function di(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.qh=b;a.rh=c;a.Ra=a.Ja=0;a.Ya=!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.Jd&&b<f.ea)for(k=g[b]=Array(f.bd),g=0;g<k.length;g++)k[g]=di(null,a,b,g+1,f.Cc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Jd&&9==f.zc&&(d=k[g]=di(null,a,b,f.zc,f.Cc,0))}}e&&e(d,!1);return d};function gi(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.Ja?f<a.Ra?(a.Ja+=a.Ra-f,a.Ra=f):f>=a.Ra+a.Ja&&(a.Ja+=f-(a.Ra+a.Ja)+1):(a.Ra=f,a.Ja=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function hi(a,b){var c=a.da*a.ba,d=b/c|0;return d<a.Y?(b%=c,a.seek(d,b/a.ba|0,b%a.ba+1)):null}function ii(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}function ji(a){for(var b="",c=0,d;d=hi(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(ii(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.Ca,this.i,this.Y,this.da,this.ba,this.pa];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ja){for(var k=[],l=0,m=g.Ra,n=g.Ra+g.Ja;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Ra,k]}}return b};
function hi(a,b){var c=a.ea*a.ba,d=b/c|0;return d<a.Y?(b%=c,a.seek(d,b/a.ba|0,b%a.ba+1)):null}function ii(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}function ji(a){for(var b="",c=0,d;d=hi(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(ii(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.ra,this.i,this.Y,this.ea,this.ba,this.qa];if(!this.j)for(var c=this.b,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.Ja){for(var k=[],l=0,m=g.Ra,n=g.Ra+g.Ja;m<n;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.Ra,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.b.length&&6<=e.length?ci(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.i&&e[1]!=this.i&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.i+")",b=-2));for(this.b.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.b.length||l>=this.b[k].length||m>=this.b[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.j){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.b[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.Ra=e;for(k.Ja=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.N("Unable to restore disk '"+this.Na+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=hi(this,a++);)ki(b);a=JSON.stringify(this.b,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function ki(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var bi=0;function R(a){q.call(this,"RK11",a,0,65536);this.G=Ei(this,a.autoMount);this.C=0;this.i=Array(8);this.H=!pb("Mobi")&&window&&"FileReader"in window;this.hb=null;this.L=this.g=this.b=this.w=this.v=this.j=this.I=0}p(R,q);
function Ei(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=R.prototype;
h.qa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.B[b]=c,c.onchange=function(){var a=d.B.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.B[b]=c,c.onchange=function(){var a=G(c.value,10);null!=a&&Gi(d,
a)},!0;case "loadDisk":return this.B[b]=c,c.onclick=function(){var a=d.B.listDisks;a&&a.options&&Hi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.B[b]=c,c.onclick=function(){var a,b=d.B.listDrives,b=b&&G(b.value,10);null==b||0>b||b>=d.i.length||!(a=d.i[b])?d.N("Unable to boot the selected drive"):a.ka?(se(d.f,0,!0),(a=d.Vc(a,0,0,0,512,0,2))&&d.N("Unable to read the boot sector ("+a+")")):d.N("Load a disk into the drive first")},!0;case "saveDisk":if(!this.H){c.parentNode.removeChild(c);
break}this.B[b]=c;c.onclick=function(){var a=d.B.listDrives;a&&a.options&&d.i&&((a=d.i[G(a.value,10)||0])?(a=a.ka)?(a=sb(ji(a),a.kc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDisk":if(this.H)return this.B[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;Hi(d,Qa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ua=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=Ei(this,$d(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.G[e]=a[e]);Ii(this);this.hb=kd(this.f,144,5,65536);Xb(b,this,Ji);Zb(b,this.reset.bind(this));Ki(this,"None",Li,!0);this.H&&Ki(this,"Local Disk",Mi);Ki(this,"Remote Disk",Ni);Oi(this)||A(this)};
h.wa=function(a,b){if(!b){if(!a){if(this.reset(),this.J.C){for(a=0;a<this.i.length;a++)Pi(this,a,!0);Oi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.B.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Gi(this,0)}}return!0};h.va=function(a){return a?this.save():!0};h.reset=function(){Ii(this)};h.save=function(){return(new M(this)).data()};
h.restore=function(a){return Ii(this,a[0])};function Oi(a,b){b||(a.C=0);for(var c in a.G){var d=a.G[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.B.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=Qa(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.i.length)){!Qi(a,g,f,e,!0)&&b&&A(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.C}
function Hi(a,b,c,d){var e=a.B.listDrives,e=e&&G(e.value,10);if(void 0===e||0>e||e>=a.i.length)a.N("Unable to load the selected drive");else if(c)if(c==Mi)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Ni){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=Qa(c);a.status("Attempting to load "+c+' as "'+b+'"')}Qi(a,e,b,c,!1,d)}else Pi(a,e)}
function Qi(a,b,c,d,e,f){var g=-1,k=a.i[b];k.Ca.toLowerCase()!=d.toLowerCase()&&(g++,Pi(a,b,!0),k.ub?a.N("RK11 busy"):(k.ub=!0,e&&(k.tb=!0,a.C++,B(a)&&C(a,"auto-loading disk: "+c)),k.Xa=!!f,ei(new ai(a,k,"preload"),c,d,f,a.Ad)&&g++));return g}
h.Ad=function(a,b,c,d,e){a.ub=!1;b&&(b.Y>a.Y||b.da>a.da)&&(this.N('Disk "'+c+'" too large for drive '+("RK"+a.gb)),b=null);b?(a.ka=b,a.Na=c,a.Ca=d,this.N('Loaded disk "'+c+'" in drive '+("RK"+a.gb),a.tb||e),this.J&&je(this.J)):a.Xa=!1;a.tb&&(a.tb=!1,--this.C||A(this));Gi(this,a.gb)};
function Ki(a,b,c,d){if((a=a.B.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 Gi(a,b){if(0<=b&&b<a.i.length){var c=a.i[b],d=a.B.listDisks;a=a.B.listDrives;if(d&&a&&d.options&&a.options&&(a=G(a.value,10),c=c.Xa?Mi:c.Ca,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Pi(a,b,c){var d=a.i[b];if(d.ka||!1===c)d.Na="",d.Ca="",d.ka=null,d.Xa=!1,c||(a.N("Drive RK"+b+" unloaded",c),Gi(a,b))}
function Ii(a,b){var c=0;b||(b=[]);a.L=b[c++]||2368;a.g=b[c++]||0;a.b=b[c++]||128;a.w=b[c++]||0;a.v=b[c++]||0;a.j=b[c++]||0;a.I=b[c]||0;for(b=0;b<a.i.length;b++){var d=a.i[b];void 0===d&&(d=a.i[b]={});c=a;d.gb=b;d.name=c.mb;d.ub=d.Xa=!1;d.Y=203;d.da=2;d.ba=12;d.pa=512;d.gc=!0;d.Kd=0;d.Id=0;d.zc=1;d.bd=d.ba;d.Cc=d.pa;d.Pd=0;d.hf=null;d.ka||(d.Ca="");d.status=2368}return!0}
h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ka;var n=null,r;a||(m=128,e=0);for(;e;){if(!n){if(b>=a.Y){m=64;break}n=a.seek(b,c,d+1);if(!n){m=4096;break}r=0;++d>=a.ba&&(d=0,++c>=a.da&&(c=0,++b))}var u,t;if(0>(u=a.read(n,r++))||0>(t=a.read(n,r++))){m=32;break}if(!k&&(rc(this.D,He(this.f,f),u|t<<8),gd(this.D))){m=1024;break}r>=a.pa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Bd=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.ka;var n=null,r;a||(m=128,e=0);for(;e;){var u=Ec(this.D,He(this.f,f));if(gd(this.D)){m=1024;break}if(!n){if(b>=a.Y){m=64;break}n=a.seek(b,c,d+1,!0);if(!n){m=4096;break}r=0;++d>=a.ba&&(d=0,++c>=a.da&&(c=0,++b))}if(k){var t,E;if(0>(t=a.read(n,r++))||0>(E=a.read(n,r++))){m=32;break}if(u!=(t|E<<8)){m=1;break}}else if(!a.write(n,r++,u&255)||!a.write(n,r++,u>>8)){m=32;break}r>=a.pa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.zd=function(a,b,c,d,e,f){this.v=f&65535;this.b=this.b&-49|f>>12&48;this.w=65536-e&65535;this.j=this.j&-16|d&15;this.g|=a;Ri(this);return!0};function Ri(a){a.b&=-32769;a.g&&(a.g|=32768,a.b|=32768,a.g&32736&&(a.b|=16384),B(a)&&C(a,a.type+": ERROR: "+H(a.g)))}h.Ee=function(){return this.L};h.Pf=function(){};h.Fe=function(){return this.g};h.Qf=function(){};h.Be=function(){return this.b&61438};
h.Mf=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c,d="",e=(this.j&57344)>>13,f=this.i[e],g,k,l,m,n,r;this.b&=-8321;this.g&=-4;switch(c=this.b&14){case 0:B(this)&&C(this,this.type+": CRESET("+e+")",!0);this.g=this.j=0;this.b=128;break;case 10:d="RCHK";case 4:d||(d="READ"),b=this.Vc;case 6:d||(d="WCHK");case 2:d||(d="WRITE");b||(b=this.Bd);g=(this.j&8160)>>5;k=(this.j&16)>>4;l=this.j&15;m=65536-this.w&65535;n=(this.b&48)<<12|this.v;r=this.b&2048?0:2;B(this)&&C(this,this.type+": "+
d+"("+g+":"+k+":"+l+") "+H(n)+"--"+H(n+(m<<1)),!0,!0);if(g>=f.Y){this.g|=64;break}if(l>=f.ba){this.g|=32;break}a=b.call(this,f,g,k,l,m,n,r,6<=c,this.zd.bind(this));break;case 8:g=(this.j&8160)>>5;B(this)&&C(this,this.type+": SEEK("+g+")",!0);g<f.Y?this.b|=8192:this.g|=64;break;case 12:B(this)&&C(this,this.type+": DRESET("+e+")");this.g=this.j=0;this.b=8320;break;default:B(this)&&C(this,this.type+": UNSUPPORTED("+c+")")}this.L=f.status|(f.ka?128:0)|e<<13|this.j&15;Ri(this);a&&(this.b&=-2,this.b|=128,
this.b&64&&id(this.f,this.hb))}};h.Ge=function(){return this.w};h.Rf=function(a){this.w=a};h.Ae=function(){return this.v};h.Lf=function(a){this.v=a};h.Ce=function(){return this.j};h.Nf=function(a){this.j=a};h.De=function(){return this.I};h.Of=function(a){this.I=a};
var Li="",Mi="?",Ni="??",Si={},Ji=(Si[65280]=[null,null,R.prototype.Ee,R.prototype.Pf,"RKDS"],Si[65282]=[null,null,R.prototype.Fe,R.prototype.Qf,"RKER"],Si[65284]=[null,null,R.prototype.Be,R.prototype.Mf,"RKCS"],Si[65286]=[null,null,R.prototype.Ge,R.prototype.Rf,"RKWC"],Si[65288]=[null,null,R.prototype.Ae,R.prototype.Lf,"RKBA"],Si[65290]=[null,null,R.prototype.Ce,R.prototype.Nf,"RKDA"],Si[65294]=[null,null,R.prototype.De,R.prototype.Of,"RKDB"],Si);
function Gd(a){q.call(this,"RL11",a,0,131072);this.H=Ti(this,a.autoMount);this.G=0;this.g=Array(4);this.I=!pb("Mobi")&&window&&"FileReader"in window;this.hb=null;this.b=this.C=this.i=this.j=this.w=this.v=0;this.exports={selectDrive:this.jf}}p(Gd,q);function Ti(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Gd.prototype;
h.qa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.B[b]=c,c.onchange=function(){var a=d.B.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.B[b]=c,c.onchange=function(){var a=G(c.value,10);null!=a&&Ui(d,
a)},!0;case "loadDisk":return this.B[b]=c,c.onclick=function(){var a=d.B.listDisks;a&&a.options&&Vi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.B[b]=c,c.onclick=function(){var a,b=d.B.listDrives,b=b&&G(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.N("Unable to boot the selected drive"):a.ka?(se(d.f,0,!0),(a=d.Wc(a,0,0,0,512,0))&&d.N("Unable to read the boot sector ("+a+")")):d.N("Load a disk into the drive first")},!0;case "saveDisk":if(!this.I){c.parentNode.removeChild(c);
break}this.B[b]=c;c.onclick=function(){var a=d.B.listDrives;a&&a.options&&d.g&&((a=d.g[G(a.value,10)||0])?(a=a.ka)?(a=sb(ji(a),a.kc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDisk":if(this.I)return this.B[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;Vi(d,Qa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ua=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.F=d;if(a=Ti(this,$d(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.H[e]=a[e]);Wi(this);this.hb=kd(this.f,112,5,131072);Xb(b,this,Xi);Zb(b,this.reset.bind(this));Yi(this,"None",Zi,!0);this.I&&Yi(this,"Local Disk",$i);Yi(this,"Remote Disk",aj);bj(this)||A(this)};
h.wa=function(a,b){if(!b){if(!a){if(this.reset(),this.J.C){for(a=0;a<this.g.length;a++)cj(this,a,!0);bj(this,!0)}}else if(!this.restore(a))return!1;if(a=this.B.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Ui(this,0)}}return!0};h.va=function(a){return a?this.save():!0};h.reset=function(){Wi(this)};h.save=function(){return(new M(this)).data()};
h.restore=function(a){return Wi(this,a[0])};function bj(a,b){b||(a.G=0);for(var c in a.H){var d=a.H[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.B.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=Qa(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)){!dj(a,g,f,e,!0)&&b&&A(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.G}
function Vi(a,b,c,d){var e=a.B.listDrives,e=e&&G(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.N("Unable to load the selected drive");else if(c)if(c==$i)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==aj){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=Qa(c);a.status("Attempting to load "+c+' as "'+b+'"')}dj(a,e,b,c,!1,d)}else cj(a,e)}
function dj(a,b,c,d,e,f){var g=-1,k=a.g[b];k.Ca.toLowerCase()!=d.toLowerCase()&&(g++,cj(a,b,!0),k.ub?a.N("RL11 busy"):(k.ub=!0,e&&(k.tb=!0,a.G++,B(a)&&C(a,"auto-loading disk: "+c)),k.Xa=!!f,ei(new ai(a,k,"preload"),c,d,f,a.Dd)&&g++));return g}
h.Dd=function(a,b,c,d,e){a.ub=!1;b&&(b.Y>a.Y||b.da>a.da)&&(this.N('Disk "'+c+'" too large for drive '+("RL"+a.gb)),b=null);b?(a.ka=b,a.Na=c,a.Ca=d,this.N('Loaded disk "'+c+'" in drive '+("RL"+a.gb),a.tb||e),this.J&&je(this.J)):a.Xa=!1;a.tb&&(a.tb=!1,--this.G||A(this));Ui(this,a.gb)};
function Yi(a,b,c,d){if((a=a.B.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.B.listDisks;a=a.B.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(G(a.options[c].value,10)==e.gb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=G(a.value,10);e=e.Xa?$i:e.Ca;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.jf=function(a){var b=this.B.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].innerHTML==a){var e=G(b.options[d].value,10);if(0<=e)return Ui(this,e,!0)}return!1};function cj(a,b,c){var d=a.g[b];if(d.ka||!1===c)d.Na="",d.Ca="",d.ka=null,d.Xa=!1,c||(a.N("Drive RL"+b+" unloaded",c),Ui(a,b))}
function Wi(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.C=b[c++]||0;a.i=b[c++]||0;a.j=b[c++]||0;a.w=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.gb=b;d.name=c.mb;d.ub=d.Xa=!1;d.Y=512;d.da=2;d.ba=40;d.pa=256;d.gc=!0;d.Kd=0;d.Id=0;d.zc=1;d.bd=d.ba;d.Cc=d.pa;d.Pd=0;d.hf=null;d.ka||(d.Ca="");d.status=29}return!0}
h.Wc=function(a,b,c,d,e,f,g){var k=0;a=a.ka;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){k=5120;break}rc(this.D,He(this.f,f),n|r<<8);if(gd(this.D)){k=8192;break}f+=2;e--;if(m>=a.pa&&(l=null,++d>=a.ba&&(d=0,++c>=a.da&&(c=0,++b>=a.Y)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Ed=function(a,b,c,d,e,f,g){var k=0;a=a.ka;var l=null,m;a||(k=5120,e=0);for(;e;){var n=Ec(this.D,He(this.f,f));if(gd(this.D)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){k=5120;break}if(m>=a.pa&&(l=null,++d>=a.ba&&(d=0,++c>=a.da&&(c=0,++b>=a.Y)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Cd=function(a,b,c,d,e,f){this.C=f&65535;this.b=this.b&-49|f>>12&48;this.v=f>>16&63;this.j=this.i=b<<7|(c?64:0)|d&63;this.w=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};h.Je=function(){return this.b&65535};
h.Uf=function(a){this.b=this.b&-1023|a&1022;this.v=this.v&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c="",d=this.g[(this.b&768)>>8],e=d.ka,f,g,k;this.b&=-2;switch(this.b&14){case 4:this.w&8&&(this.b&=63);this.w=d.status|this.j&64|(e&&512==e.Y?128:0);break;case 6:1==(this.i&3)&&(b=this.i&65408,c=(this.i&16)<<2,this.j=this.i&4?this.j+b:this.j-b,this.i=this.j=this.j&65408|c);break;case 8:this.w=this.j;break;case 12:c="READ",b=this.Wc;case 10:c||(c="WRITE"),b||(b=this.Ed),f=this.i>>7,g=this.i&64?1:0,k=
this.i&63,!e||f>=e.Y||k>=e.ba?this.b|=37888:(a=65536-this.w&65535,e=(this.v&63)<<16|this.C,B(this)&&C(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+H(e)+"--"+H(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,this.Cd.bind(this)))}a&&(this.b|=129,this.b&64&&id(this.f,this.hb))}};h.He=function(){return this.C};h.Sf=function(a){this.C=a&65534};h.Ke=function(){return this.i};h.Vf=function(a){this.i=a};h.Le=function(){return this.w};h.Wf=function(a){this.w=a};h.Ie=function(){return this.v};
h.Tf=function(a){this.v=a&63;this.b=this.b&-49|(this.v&3)<<4};var Zi="",$i="?",aj="??",ej={},Xi=(ej[63744]=[null,null,Gd.prototype.Je,Gd.prototype.Uf,"RLCS"],ej[63746]=[null,null,Gd.prototype.He,Gd.prototype.Sf,"RLBA"],ej[63748]=[null,null,Gd.prototype.Ke,Gd.prototype.Vf,"RLDA"],ej[63750]=[null,null,Gd.prototype.Le,Gd.prototype.Wf,"RLMP"],ej[63752]=[null,null,Gd.prototype.Ie,Gd.prototype.Tf,"RLBE"],ej);
function fj(a){q.call(this,"Debugger",a);this.Ba=+a.base||16;this.ga=!1;this.w=0;this.P=!1;this.v=-1;this.j=[];this.T={}}p(fj,q);fj.prototype.hd=function(){return-1};fj.prototype.jd=function(){};
function gj(a,b,c,d){if(c)if(b){0>a.v&&a.j.length&&(a.v=0);if(0>a.v||b!=a.j[a.v])a.j.splice(0,0,b),a.v=0;a.v--}else a.P?b="end":b=a.j[a.v+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 hj(a,b,c){for(c=c||-1;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;
function ki(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var bi=0;function R(a){q.call(this,"RK11",a,0,65536);this.L=li(this,a.autoMount);this.F=0;this.i=Array(8);this.M=!pb("Mobi")&&window&&"FileReader"in window;this.u=[];this.ib=null;this.I=this.g=this.b=this.B=this.w=this.j=this.H=0}p(R,q);
function li(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=R.prototype;
h.sa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.C[b]=c,c.onchange=function(){var a=d.C.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.C[b]=c,c.onchange=function(){var a=G(c.value,10);null!=a&&Fi(d,
a)},!0;case "loadDisk":return this.C[b]=c,c.onclick=function(){var a=d.C.listDisks;a&&a.options&&Hi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.C[b]=c,c.onclick=function(){var a,b=d.C.listDrives,b=b&&G(b.value,10);null==b||0>b||b>=d.i.length||!(a=d.i[b])?d.N("Unable to boot the selected drive"):a.da?(se(d.f,0,!0),(a=d.Vc(a,0,0,0,512,0,2))&&d.N("Unable to read the boot sector ("+a+")")):d.N("Load a disk into the drive first")},!0;case "saveDisk":if(!this.M){c.parentNode.removeChild(c);
break}this.C[b]=c;c.onclick=function(){var a=d.C.listDrives;a&&a.options&&d.i&&((a=d.i[G(a.value,10)||0])?(a=a.da)?(a=sb(ji(a),a.kc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDisk":if(this.M)return this.C[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;Hi(d,Qa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.wa=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.G=d;if(a=li(this,$d(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.L[e]=a[e]);Ii(this);this.ib=kd(this.f,144,5,65536);Yb(b,this,Ji);$b(b,this.reset.bind(this));Ki(this,"None",Li,!0);this.M&&Ki(this,"Local Disk",Mi);Ki(this,"Remote Disk",Ni);Oi(this)||A(this)};
h.ya=function(a,b){if(!b){if(!a){if(this.reset(),this.J.B){this.u=[];for(a=0;a<this.i.length;a++)Pi(this,a,!0);Oi(this,!0)}}else if(!this.restore(a))return!1;if(a=this.C.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";Fi(this,0)}}return!0};h.xa=function(a){return a?this.save():!0};h.reset=function(){Ii(this)};
h.save=function(){var a=new J(this);a.set(0,[this.I,this.g,this.b,this.B,this.w,this.j,this.H,Qi(this)]);return a.data()};h.restore=function(a){return Ii(this,a[0])};
function Ii(a,b){b||(b=[2368,0,128,0,0,0,0]);var c=ja(b);a.I=c.next().value;a.g=c.next().value;a.b=c.next().value;a.B=c.next().value;a.w=c.next().value;a.j=c.next().value;a.H=c.next().value;b[7]&&(a.u=b[7]);for(b=0;b<a.i.length;b++){var d=a.i[b];void 0===d&&(d=a.i[b]={});c=a;d.hb=b;d.name=c.nb;d.vb=d.Za=!1;d.Y=203;d.ea=2;d.ba=12;d.qa=512;d.gc=!0;d.Kd=0;d.Id=0;d.zc=1;d.bd=d.ba;d.Cc=d.qa;d.Pd=0;d.hf=null;d.da||(d.ra="");d.status=2368}return!0}
function Qi(a){for(var b=0;b<a.i.length;b++){var c=a.i[b];c.da&&Ri(a,c.ra,c.da)}return a.u}
function Oi(a,b){b||(a.F=0);for(var c in a.L){var d=a.L[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.C.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=Qa(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.i.length)){!Si(a,g,f,e,!0)&&b&&A(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
function Hi(a,b,c,d){var e=a.C.listDrives,e=e&&G(e.value,10);if(void 0===e||0>e||e>=a.i.length)a.N("Unable to load the selected drive");else if(c)if(c==Mi)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Ni){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=Qa(c);a.status("Attempting to load "+c+' as "'+b+'"')}Si(a,e,b,c,!1,d)}else Pi(a,e)}
function Si(a,b,c,d,e,f){var g=-1,k=a.i[b];k.ra.toLowerCase()!=d.toLowerCase()&&(g++,Pi(a,b,!0),k.vb?a.N("RK11 busy"):(k.vb=!0,e&&(k.ub=!0,a.F++,B(a)&&C(a,"auto-loading disk: "+c)),k.Za=!!f,ei(new ai(a,k,"preload"),c,d,f,a.Ad)&&g++));return g}
h.Ad=function(a,b,c,d,e){a.vb=!1;b&&(b.Y>a.Y||b.ea>a.ea)&&(this.N('Disk "'+c+'" too large for drive '+("RK"+a.hb)),b=null);if(b){a.da=b;a.Na=c;a.ra=d;a:{var f;for(f=0;f<this.u.length;f++)if(this.u[f][1]==d){b.restore(this.u[f][2]);break a}this.u[f]=[c,d,[]]}this.N('Loaded disk "'+c+'" in drive '+("RK"+a.hb),a.ub||e);this.J&&je(this.J)}else a.Za=!1;a.ub&&(a.ub=!1,--this.F||A(this));Fi(this,a.hb)};
function Ki(a,b,c,d){if((a=a.C.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 Fi(a,b){if(0<=b&&b<a.i.length){var c=a.i[b],d=a.C.listDisks;a=a.C.listDrives;if(d&&a&&d.options&&a.options&&(a=G(a.value,10),c=c.Za?Mi:c.ra,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function Pi(a,b,c){var d=a.i[b];if(d.da||!1===c)Ri(a,d.ra,d.da),d.Na="",d.ra="",d.da=null,d.Za=!1,c||(a.N("Drive RK"+b+" unloaded",c),Fi(a,b))}
function Ri(a,b,c){var d;for(d=0;d<a.u.length;d++)if(a.u[d][1]==b){a.u[d][2]=c.save();break}}h.Vc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,r;a||(m=128,e=0);for(;e;){if(!n){if(b>=a.Y){m=64;break}n=a.seek(b,c,d+1);if(!n){m=4096;break}r=0;++d>=a.ba&&(d=0,++c>=a.ea&&(c=0,++b))}var u,t;if(0>(u=a.read(n,r++))||0>(t=a.read(n,r++))){m=32;break}if(!k&&(Ec(this.D,He(this.f,f),u|t<<8),gd(this.D))){m=1024;break}r>=a.qa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Bd=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.da;var n=null,r;a||(m=128,e=0);for(;e;){var u=Gc(this.D,He(this.f,f));if(gd(this.D)){m=1024;break}if(!n){if(b>=a.Y){m=64;break}n=a.seek(b,c,d+1,!0);if(!n){m=4096;break}r=0;++d>=a.ba&&(d=0,++c>=a.ea&&(c=0,++b))}if(k){var t,E;if(0>(t=a.read(n,r++))||0>(E=a.read(n,r++))){m=32;break}if(u!=(t|E<<8)){m=1;break}}else if(!a.write(n,r++,u&255)||!a.write(n,r++,u>>8)){m=32;break}r>=a.qa&&(n=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.zd=function(a,b,c,d,e,f){this.w=f&65535;this.b=this.b&-49|f>>12&48;this.B=65536-e&65535;this.j=this.j&-16|d&15;this.g|=a;Ti(this);return!0};function Ti(a){a.b&=-32769;a.g&&(a.g|=32768,a.b|=32768,a.g&32736&&(a.b|=16384),B(a)&&C(a,a.type+": ERROR: "+H(a.g)))}h.Ee=function(){return this.I};h.Pf=function(){};h.Fe=function(){return this.g};h.Qf=function(){};h.Be=function(){return this.b&61438};
h.Mf=function(a){this.b=this.b&-3968|a&3967;if(this.b&1){a=!0;var b,c,d="",e=(this.j&57344)>>13,f=this.i[e],g,k,l,m,n,r;this.b&=-8321;this.g&=-4;switch(c=this.b&14){case 0:B(this)&&C(this,this.type+": CRESET("+e+")",!0);this.g=this.j=0;this.b=128;break;case 10:d="RCHK";case 4:d||(d="READ"),b=this.Vc;case 6:d||(d="WCHK");case 2:d||(d="WRITE");b||(b=this.Bd);g=(this.j&8160)>>5;k=(this.j&16)>>4;l=this.j&15;m=65536-this.B&65535;n=(this.b&48)<<12|this.w;r=this.b&2048?0:2;B(this)&&C(this,this.type+": "+
d+"("+g+":"+k+":"+l+") "+H(n)+"--"+H(n+(m<<1)),!0,!0);if(g>=f.Y){this.g|=64;break}if(l>=f.ba){this.g|=32;break}a=b.call(this,f,g,k,l,m,n,r,6<=c,this.zd.bind(this));break;case 8:g=(this.j&8160)>>5;B(this)&&C(this,this.type+": SEEK("+g+")",!0);g<f.Y?this.b|=8192:this.g|=64;break;case 12:B(this)&&C(this,this.type+": DRESET("+e+")");this.g=this.j=0;this.b=8320;break;default:B(this)&&C(this,this.type+": UNSUPPORTED("+c+")")}this.I=f.status|(f.da?128:0)|e<<13|this.j&15;Ti(this);a&&(this.b&=-2,this.b|=128,
this.b&64&&id(this.f,this.ib))}};h.Ge=function(){return this.B};h.Rf=function(a){this.B=a};h.Ae=function(){return this.w};h.Lf=function(a){this.w=a};h.Ce=function(){return this.j};h.Nf=function(a){this.j=a};h.De=function(){return this.H};h.Of=function(a){this.H=a};
var Li="",Mi="?",Ni="??",Ui={},Ji=(Ui[65280]=[null,null,R.prototype.Ee,R.prototype.Pf,"RKDS"],Ui[65282]=[null,null,R.prototype.Fe,R.prototype.Qf,"RKER"],Ui[65284]=[null,null,R.prototype.Be,R.prototype.Mf,"RKCS"],Ui[65286]=[null,null,R.prototype.Ge,R.prototype.Rf,"RKWC"],Ui[65288]=[null,null,R.prototype.Ae,R.prototype.Lf,"RKBA"],Ui[65290]=[null,null,R.prototype.Ce,R.prototype.Nf,"RKDA"],Ui[65294]=[null,null,R.prototype.De,R.prototype.Of,"RKDB"],Ui);
function Gd(a){q.call(this,"RL11",a,0,131072);this.H=Vi(this,a.autoMount);this.F=0;this.g=Array(4);this.I=!pb("Mobi")&&window&&"FileReader"in window;this.ib=null;this.b=this.B=this.i=this.j=this.w=this.u=0;this.exports={selectDrive:this.jf}}p(Gd,q);function Vi(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Gd.prototype;
h.sa=function(a,b,c){var d=this;switch(b){case "listDisks":return this.C[b]=c,c.onchange=function(){var a=d.C.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.C[b]=c,c.onchange=function(){var a=G(c.value,10);null!=a&&Wi(d,
a)},!0;case "loadDisk":return this.C[b]=c,c.onclick=function(){var a=d.C.listDisks;a&&a.options&&Xi(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.C[b]=c,c.onclick=function(){var a,b=d.C.listDrives,b=b&&G(b.value,10);null==b||0>b||b>=d.g.length||!(a=d.g[b])?d.N("Unable to boot the selected drive"):a.da?(se(d.f,0,!0),(a=d.Wc(a,0,0,0,512,0))&&d.N("Unable to read the boot sector ("+a+")")):d.N("Load a disk into the drive first")},!0;case "saveDisk":if(!this.I){c.parentNode.removeChild(c);
break}this.C[b]=c;c.onclick=function(){var a=d.C.listDrives;a&&a.options&&d.g&&((a=d.g[G(a.value,10)||0])?(a=a.da)?(a=sb(ji(a),a.kc.replace(".json",".img")),v(a)):d.N("No disk loaded in drive."):d.N("No disk drive selected."))};return!0;case "mountDisk":if(this.I)return this.C[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;Xi(d,Qa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.wa=function(a,b,c,d){this.J=a;this.D=b;this.f=c;this.G=d;if(a=Vi(this,$d(this.J,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.H[e]=a[e]);Yi(this);this.ib=kd(this.f,112,5,131072);Yb(b,this,Zi);$b(b,this.reset.bind(this));$i(this,"None",aj,!0);this.I&&$i(this,"Local Disk",bj);$i(this,"Remote Disk",cj);dj(this)||A(this)};
h.ya=function(a,b){if(!b){if(!a){if(this.reset(),this.J.B){for(a=0;a<this.g.length;a++)ej(this,a,!0);dj(this,!0)}}else if(!this.restore(a))return!1;if(a=this.C.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Wi(this,0)}}return!0};h.xa=function(a){return a?this.save():!0};h.reset=function(){Yi(this)};h.save=function(){return(new J(this)).data()};
h.restore=function(a){return Yi(this,a[0])};function dj(a,b){b||(a.F=0);for(var c in a.H){var d=a.H[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.C.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=Qa(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)){!fj(a,g,f,e,!0)&&b&&A(a,!1);continue}a.N("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.F}
function Xi(a,b,c,d){var e=a.C.listDrives,e=e&&G(e.value,10);if(void 0===e||0>e||e>=a.g.length)a.N("Unable to load the selected drive");else if(c)if(c==bj)a.N('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==cj){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=Qa(c);a.status("Attempting to load "+c+' as "'+b+'"')}fj(a,e,b,c,!1,d)}else ej(a,e)}
function fj(a,b,c,d,e,f){var g=-1,k=a.g[b];k.ra.toLowerCase()!=d.toLowerCase()&&(g++,ej(a,b,!0),k.vb?a.N("RL11 busy"):(k.vb=!0,e&&(k.ub=!0,a.F++,B(a)&&C(a,"auto-loading disk: "+c)),k.Za=!!f,ei(new ai(a,k,"preload"),c,d,f,a.Dd)&&g++));return g}
h.Dd=function(a,b,c,d,e){a.vb=!1;b&&(b.Y>a.Y||b.ea>a.ea)&&(this.N('Disk "'+c+'" too large for drive '+("RL"+a.hb)),b=null);b?(a.da=b,a.Na=c,a.ra=d,this.N('Loaded disk "'+c+'" in drive '+("RL"+a.hb),a.ub||e),this.J&&je(this.J)):a.Za=!1;a.ub&&(a.ub=!1,--this.F||A(this));Wi(this,a.hb)};
function $i(a,b,c,d){if((a=a.C.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 Wi(a,b,c){var d=!1;if(0<=b&&b<a.g.length){var e=a.g[b],f=a.C.listDisks;a=a.C.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(G(a.options[c].value,10)==e.hb){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=G(a.value,10);e=e.Za?bj:e.ra;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.jf=function(a){var b=this.C.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].innerHTML==a){var e=G(b.options[d].value,10);if(0<=e)return Wi(this,e,!0)}return!1};function ej(a,b,c){var d=a.g[b];if(d.da||!1===c)d.Na="",d.ra="",d.da=null,d.Za=!1,c||(a.N("Drive RL"+b+" unloaded",c),Wi(a,b))}
function Yi(a,b){var c=0;b||(b=[]);a.b=b[c++]||129;a.B=b[c++]||0;a.i=b[c++]||0;a.j=b[c++]||0;a.w=b[c++]||0;a.u=b[c]||0;for(b=0;b<a.g.length;b++){var d=a.g[b];void 0===d&&(d=a.g[b]={});c=a;d.hb=b;d.name=c.nb;d.vb=d.Za=!1;d.Y=512;d.ea=2;d.ba=40;d.qa=256;d.gc=!0;d.Kd=0;d.Id=0;d.zc=1;d.bd=d.ba;d.Cc=d.qa;d.Pd=0;d.hf=null;d.da||(d.ra="");d.status=29}return!0}
h.Wc=function(a,b,c,d,e,f,g){var k=0;a=a.da;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var n,r;if(0>(n=a.read(l,m++))||0>(r=a.read(l,m++))){k=5120;break}Ec(this.D,He(this.f,f),n|r<<8);if(gd(this.D)){k=8192;break}f+=2;e--;if(m>=a.qa&&(l=null,++d>=a.ba&&(d=0,++c>=a.ea&&(c=0,++b>=a.Y)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Ed=function(a,b,c,d,e,f,g){var k=0;a=a.da;var l=null,m;a||(k=5120,e=0);for(;e;){var n=Gc(this.D,He(this.f,f));if(gd(this.D)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,n&255)||!a.write(l,m++,n>>8)){k=5120;break}if(m>=a.qa&&(l=null,++d>=a.ba&&(d=0,++c>=a.ea&&(c=0,++b>=a.Y)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Cd=function(a,b,c,d,e,f){this.B=f&65535;this.b=this.b&-49|f>>12&48;this.u=f>>16&63;this.j=this.i=b<<7|(c?64:0)|d&63;this.w=65536-e&65535;a&&(this.b=this.b|a|32768);return!0};h.Je=function(){return this.b&65535};
h.Uf=function(a){this.b=this.b&-1023|a&1022;this.u=this.u&60|(a&48)>>4;if(!(this.b&128)){a=!0;var b,c="",d=this.g[(this.b&768)>>8],e=d.da,f,g,k;this.b&=-2;switch(this.b&14){case 4:this.w&8&&(this.b&=63);this.w=d.status|this.j&64|(e&&512==e.Y?128:0);break;case 6:1==(this.i&3)&&(b=this.i&65408,c=(this.i&16)<<2,this.j=this.i&4?this.j+b:this.j-b,this.i=this.j=this.j&65408|c);break;case 8:this.w=this.j;break;case 12:c="READ",b=this.Wc;case 10:c||(c="WRITE"),b||(b=this.Ed),f=this.i>>7,g=this.i&64?1:0,k=
this.i&63,!e||f>=e.Y||k>=e.ba?this.b|=37888:(a=65536-this.w&65535,e=(this.u&63)<<16|this.B,B(this)&&C(this,this.type+": "+c+"("+f+":"+g+":"+k+") "+H(e)+"--"+H(e+(a<<1)),!0,!0),a=b.call(this,d,f,g,k,a,e,this.Cd.bind(this)))}a&&(this.b|=129,this.b&64&&id(this.f,this.ib))}};h.He=function(){return this.B};h.Sf=function(a){this.B=a&65534};h.Ke=function(){return this.i};h.Vf=function(a){this.i=a};h.Le=function(){return this.w};h.Wf=function(a){this.w=a};h.Ie=function(){return this.u};
h.Tf=function(a){this.u=a&63;this.b=this.b&-49|(this.u&3)<<4};var aj="",bj="?",cj="??",gj={},Zi=(gj[63744]=[null,null,Gd.prototype.Je,Gd.prototype.Uf,"RLCS"],gj[63746]=[null,null,Gd.prototype.He,Gd.prototype.Sf,"RLBA"],gj[63748]=[null,null,Gd.prototype.Ke,Gd.prototype.Vf,"RLDA"],gj[63750]=[null,null,Gd.prototype.Le,Gd.prototype.Wf,"RLMP"],gj[63752]=[null,null,Gd.prototype.Ie,Gd.prototype.Tf,"RLBE"],gj);
function hj(a){q.call(this,"Debugger",a);this.Ca=+a.base||16;this.ia=!1;this.w=0;this.P=!1;this.u=-1;this.j=[];this.T={}}p(hj,q);hj.prototype.hd=function(){return-1};hj.prototype.jd=function(){};
function ij(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.P?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 jj(a,b,c){for(c=c||-1;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 "^":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(d|0)}return!0}
function ij(a,b,c){var d;if(b){b=jj(a,b);for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Za(n);if(!n){f=!0;break}n=kj(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++],u=n.length;l.length&&lj[n]<lj[l[l.length-1]]&&hj(k,l,1);l.push(n);b=b.substr(r+u)}hj(k,l)&&1==k.length||(f=!0);f?c&&a.u("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),c&&mj(a,null,
d))}return d}function jj(a,b){for(var c,d=a.ga?"(":"{",e=a.ga?")":"}",f=new RegExp(a.ga?"\\((.*?)\\)":"\\{(.*?)\\}");(c=b.match(f))&&!(0<=c[1].indexOf(d));){var g=ij(a,c[1]);b=b.replace(d+c[1]+e,null!=g?O(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 kj(a,b,c,d){var e;null!=b?(e=a.hd(b),0<=e?e=a.jd(e):(e=a.T[b],null==e&&(e=G(b,a.Ba))),null!=e||d||a.u("invalid "+(c?c:"value")+": "+b)):d||a.u("missing "+(c||"value"));return e}function mj(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=Na(d&255,8)+g,d>>=8;d=I(c,0,!0)+" "+c+". "+H(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.u((null!=b?b+": ":"")+d);return e}
function nj(a,b){if(b)return mj(a,b,a.T[b]);var c=0;for(b in a.T)mj(a,b,a.T[b]),c++;return 0<c}function O(a,b,c,d){switch(a.Ba){case 8:a=H(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=I(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}var lj={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function oj(a){fj.call(this,a);this.Ea=!1;this.ga=!0;this.H=V();this.ya=V();this.O=V();this.C=[];this.g=this.L=this.G=[];pj(this);this.R=this.aa=0;this.i=[];this.na=void 0;qj(this);this.F=this;this.ia={};this.ha=this.cd=0;this.S=null;this.M=[];rj(this,a.messages);this.sa=a.commands;this.Ha=sj;this.W=[];this.I=0;this.Ia=this.oa=null;this.w=this.Ga=this.Fa=this.X=this.ja=0;this.b=this.V=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return ee(b,a)}):void 0===global[x]&&(global[x]=
function(a){return ee(b,a)})}p(oj,fj);function tj(a){a=a&&a.K;null==a&&(a=-1);return a}function V(a,b,c){return{K:void 0===a?null:a,Ka:void 0===b?!1:b,Qa:!1,Ba:c}}h=oj.prototype;h.Gc=function(a,b){a.K=b;a.Qa=!1;a.Ba=void 0;return a};function uj(a){return[a.K,a.Ka,a.Ba,a.Qa,a.jc]}function vj(a,b){var c=V(b[0],b[1],b[2]);c.Qa=b[3];b[4]&&(c.$c=gj(a,c.jc=b[4]));return c}
h.ua=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.b=a.i;(a=$d(a,"messages"))&&rj(this,a);1140>this.f.ia&&(this.W=this.W.concat(wj));1145>this.f.ia&&(this.W=this.W.concat(xj));md(this,16,function(a){a:{var b=d.D.b,c=a[0],e=a=0,l=b.length;if(c){a=tj(yj(d,c));if(-1===a){d.u("invalid address: "+c);break a}e=a>>>d.D.g;l=1}d.u("blockid physical blockaddr used size type");d.u("-------- --------- --------- ------ ------ ----");for(var c=-1,m=0;l--;){var n=b[e];n.type==c?m++||d.u("..."):
(c=n.type,m=Zc[c],n&&d.u(I(n.id,8)+" %"+I(e<<d.D.g,8)+" %"+I(n.K,8)+" "+Pa(n.Kb)+" "+Pa(n.size)+" "+m),c!=Id&&(c=-1),m=0);a+=d.D.j;e++}}});A(this)};
h.qa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.B[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ee(d,b,!0);else if(27==a.keyCode)c.value=b="";else if(38==a.keyCode?(b=null,d.v<d.j.length-1&&(b=d.j[++d.v])):40==a.keyCode&&(0<d.v?b=d.j[--d.v]:(b="",d.v=-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.B[b]=c,ub(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";ee(d,a,!0);return!0}return!1}),!0;case "step":return this.B[b]=c,ub(c,function(a){var b=!1;La(d,!0)||(Ma(d,!0),b=lc(d,a?1:0,null),Ma(d,!1));return b}),!0}return!1};function de(a){if(a.V){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.V.focus();window&&window.scrollTo(b,c)}}h.Nc=function(a,b){var c=255,d=tj(a);-1!==d&&(a.Ka||65535<d?(c=this.D,d=He(this.f,d),c.G=!1,c.la++,d=ad(c,d).j(d&c.i,d),c.la--):(c=this.f,c.na++,d=c.D.Kc(Dc(c,d,3)),c.na--),c=d,b&&zj(a,b));return c};
h.Oa=function(a,b){var c=65535,d=tj(a);-1!==d&&(c=a.Ka||65535<d?Ec(this.D,He(this.f,d)):Fc(this.f,d),b&&zj(a,b));return c};h.Oc=function(a,b,c){var d=tj(a);if(-1!==d){if(a.Ka||65535<d)bd(this.D,He(this.f,d),b);else{var e=this.f;e.na++;e.D.Lc(Dc(e,d,5),b);e.na--}c&&zj(a,c);J(this.J,-1)}};h.yd=function(a,b,c){var d=tj(a);if(-1!==d){if(a.Ka||65535<d)rc(this.D,He(this.f,d),b);else{var e=this.f;e.na++;e.D.Ob(Dc(e,d,4),b);e.na--}c&&zj(a,c);J(this.J,-1)}};
function yj(a,b,c){var d;c=(c?a.H:a.ya).K;var e,f;if(void 0!==b){b=jj(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,k;a:{c=a.D;var l;l=d.toUpperCase();for(k in c.Ma){var m=+k;if(c.Ma[m][4]==l){k=c.C+m;break a}}k=null}if(null==k&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.C.length;c++)if(l=a.C[c].ea[d],null!=l){k=l.o;break}null!=k&&(g=V(k));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=ij(a,b,void 0)}null!=c&&(d=V(c,e,f));return d}
function Aj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.$c=gj(a,b.jc=c[2]))}function zj(a,b){null!=a.K&&(a.K+=b||1)}function Bj(a,b){return(b.Ka?"%":"")+O(a,b.K)}
function rj(a,b){a.F=a;a.ha=a.cd=536870912;a.S=null;a.M=[];b=gj(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Sb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ha|=Sb[c],a.u(c+" messages enabled"))}}function md(a,b,c){for(var d in Sb)if(b==Sb[d]){a.ia[d]=c;break}}
h.hd=function(a){a=a.toUpperCase();var b=Cj[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Dj(a){return 6>a?"R"+a:6==a?"SP":"PC"}
h.jd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.oa[a-8];else if(20>a)b=this.f.W[a-16];else{var c=this.f,d=this.b;switch(a){case Ej:b=vd(this.f);break;case Fj:b=c.Va;break;case Gj:b=c.R;break;case Hj:b=c.ya&65280;break;case Ij:b=pd(c);break;case Jj:b=rd(c);break;case Kj:b=sd(c);break;case Lj:b=c.T;break;case Mj:d&&(b=d.xa);break;case Nj:d&&(b=d.wb);break;case Oj:d&&Jc(d)&&(b=d.Za)}}return b};
h.message=function(a,b){b&&(a+=" @"+Bj(this,V(this.f.P&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ha&1073741824)this.M.push(a);else{var c;if(this.ha&-2147483648&&this.f&&(c=this.f.A.U)||La(this,!0))this.Z(),c&&(a+=" (cpu halted)");this.u(a);this.f&&(a=this.f,ke(a),a.sb=0,a.J&&J(a.J,void 0))}};
function qj(a){var b;if(!qf(a))a.i&&a.i.length&&a.u("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(Pj);for(b=0;b<a.i.length;b++)a.i[b]=V();a.R=0;a.u("instruction history buffer allocated")}}function Qj(a,b,c){if(!Rj(a,c))return!1;kc(a.f,b);return!0}
function lc(a,b,c,d){if(!Rj(a))return!1;var e="";null===c&&(e=(c=!a.oa||"tr"==a.oa)?"tr":"t");a.w=0;b||qf(a)&&rf(a,a.f.g[7],0);try{b=le(a.f,b);var f=a.f.ec(b);0<f&&(mc(a.f,f),a.w+=f,nc(a.f,f,!0),oc(a.f,f),a.X++)}catch(g){"number"!=typeof g&&(a.w=0,Ea(a.f,g.stack||g.message))}!1!==d&&(a.b&&a.b.stop(),J(a.J,-1));ce(a,c||!1,e);return 0<a.w}h.Z=function(a){this.f&&this.f.Z(a)};
function ce(a,b,c){if(a.Ea){void 0===b&&(b=!0);c&&a.u(Sj+c);c=a.f;if(c=c.i&128?c.fc|c.cc<<8:0){var d=c>>8;a.u("trapped to "+O(a,c&255,1)+" ("+(0>d?Qb[-d]:O(a,d))+")")}a.H=V(a.f.g[7]);b&&1!=a.I?Tj(a):Uj(a)}}function Rj(a,b){var c;(c=!a.f||!Ka(a.f))||(c=a.f,c.A.fa?c=!0:(c.u(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.U?(b||a.u("cpu busy or unavailable, command ignored"),!1):!Ja(a.f)}h.wa=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
h.va=function(a,b){b&&this.u(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){qj(this);this.X=0;this.S=null;this.w=0;this.H=V(this.f.g[7]);this.A.U=!1;Vj(this);a||ce(this)};h.save=function(){var a=new M(this);a.set(0,uj(this.H));a.set(1,uj(this.O));a.set(2,[this.j,this.P,this.ha]);a.set(3,this.C);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.H=vj(this,a[b++]),this.O=vj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ha|=a[b][2]);a[3]&&(this.C=a[3]);return!0};h.start=function(a,b){this.I||this.u("running");this.A.U=!0;this.Fa=a;this.Ga=b};
h.stop=function(a,b){if(this.A.U){this.A.U=!1;this.w=b-this.Ga;if(!this.I){b="stopped";if(this.w){a-=this.Fa;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";qf(this)&&(b+=this.X+" instructions, ",this.X=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else B(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.u(b)}ce(this,!0);de(this);Vj(this,this.f.g[7]);this.S=null}};function qf(a){return 1<a.g.length||!!a.aa}
function rf(a,b,c){var d=-1;c||(d=Fc(a.f,b))||(a.f.P&65535)!=b||(b=ze(a.f,2));if(0<c&&(a.aa&&!--a.aa||Wj(a,b,1,a.g)))return!0;0<=c&&a.i.length&&(a.X++,0>d&&(d=Fc(a.f,b)),65535!=(d&65535)&&(a.Gc(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function wg(a){var b=a.f;if(b.A.U)throw te(b,a.f.P&65535),a.Z(),-1;return!1}function Ud(a,b,c){Wj(a,b,c||1,a.L)&&a.Z(!1)}function Vd(a,b,c){Wj(a,b,c||1,a.G)&&a.Z(!1)}
function pj(a){var b,c,d;a.g=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=tj(c),c.Ka?(c=a.D,Td(c.b[d>>>c.g],!1)):Ke(a.f,!1);a.L=["br"];if(a.G)for(b=1;b<a.G.length;b++)c=a.G[b],d=tj(c),c.Ka?(c=a.D,Td(c.b[d>>>c.g],!0)):Ke(a.f,!0);a.G=["bw"];a.ja=0}
h.rb=function(a,b,c){var d=!0;c||Xj(this,a,b,!1,!0);if(a!=this.g){var e=tj(b);if(-1===e)this.u("invalid address: "+Bj(this,b)),d=!1;else{var f=a==this.G;65535<e&&(b.Ka=!0);if(b.Ka){var g=this.D;g.b[e>>>g.g].rb(e&g.i,f)}else e=this.f,(f?e.Zb++:e.Yb++)||re(e)}}d&&(a.push(b),c?b.Qa=!0:(Yj(this,a,a.length-1,"set"),qj(this)));return d};
function Xj(a,b,c,d,e){var f=!1;c=tj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==tj(k)&&(!d||k.Qa)){f=!0;k.Qa||e||Yj(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(b=b==a.G,k.Ka?(d=a.D,Td(d.b[c>>>d.g],b)):Ke(a.f,b));k.Qa||qj(a);break}}return f}function Zj(a,b){for(var c=1;c<b.length;c++)Yj(a,b,c);return b.length-1}function Yj(a,b,c,d){c=b[c];a.u(b[0]+" "+Bj(a,c)+(d?" "+d:c.jc?' "'+c.jc+'"':""))}
function Vj(a,b){if(void 0!==b)Wj(a,b,1,a.g,!0),a.I=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Qa){if(!Xj(a,a.g,c,!0))break;b=0}}}
function Wj(a,b,c,d,e){var f=!1;if(!a.ja++)for(var g=1;!f&&g<d.length;g++){var k=d[g];if(!e||k.Qa)for(var l=tj(k)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Qa&&(Xj(a,d,k,!0),e=!0);if(n=k.$c){for(var f=!1,r=0;r<n.length;r++)if(!ak(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.f.A.U||(f=!0)}if(f){e||Yj(a,d,g,"hit");break}}}a.ja--;return f}
function bk(a,b,c,d){var e=V(b.K),f=a.Oa(b,2),g,k;for(k in a.Ha)if(g=a.Ha[k][f&k])break;g||(g=ck);var l=g[0];0<=a.W.indexOf(l)&&(g=ck,l=g[0]);var m=k="",n=dk[l],r=g.length-1;l||r||(k=O(a,f));for(l=1;l<=r;l++){var u=g[l];if(void 0!==u){var t;t=a;var E=u,u=b,z="",D=E&ek;if(D==X)u=u.K+((f&255)<<24>>23)&65535,z=O(t,u);else if(D==fk)u=u.K-((f&63)<<1)&65535,z=O(t,u);else if(D==gk)z=O(t,f&7,1);else if(D==hk)z=O(t,f&63,1);else if(D==ik)z=O(t,f&255,1);else if(D=f&E,E&jk&&(D>>=6,E>>=6),E&Y){var E=null,F=D&
kk;switch(D&lk){case 0:z=Dj(F);break;case 8:z="@"+Dj(F);E=mk(t,t.f.g[F]);break;case 16:7>F?z="("+Dj(F)+")+":(D=t.Oa(u,2),z="#"+O(t,D,0,!0));break;case 24:7>F?z="@("+Dj(F)+")+":(D=t.Oa(u,2),z="@#"+O(t,D,0,!0),E=mk(t,D));break;case 32:z="-("+Dj(F)+")";break;case 40:z="@-("+Dj(F)+")";break;case 48:D=t.Oa(u,2);z=O(t,D,0,!0)+"("+Dj(F)+")";7==F&&(z=O(t,D=D+u.K&65535),E=mk(t,D));break;case 56:D=t.Oa(u,2),z="@"+O(t,D)+"("+Dj(F)+")",7==F&&(z="@"+O(t,D=D+u.K&65535),E=mk(t,Fc(t.f,D)))}E&&(z=[z,E])}t=z;if(!t||
!t.length){k="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<k.length&&(k+=",");k+=t||"???"}}f="";g=Bj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+O(a,a.Oa(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.Bb?g+("cycles="+fe(a.f).toString()+" cs="+I(a.f.Ub)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function mk(a,b){b=Ie(a.f,b)[0];b>=a.f.lb&&b<a.D.C&&(b=b-a.f.lb+a.D.C);var c=a.D;a=null;b>=c.C&&(b=c.Ma[b&fd])&&(a=b[4]);return a}function nk(a,b){switch(b){case "N":a=ye(a.f);break;case "Z":a=xe(a.f);break;case "V":a=we(a.f);break;case "C":a=ve(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.f;if(8>b)c=Dj(b),c+="="+O(a,d.g[b]);else if(13>b)c="A"+(b-8)+"="+O(a,d.oa[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+O(a,d.W[b-16]);else switch(b){case Ej:c="PS="+O(a,vd(d));break;case Fj:c="PI="+O(a,d.Va);break;case Gj:c="ER="+O(a,d.R);break;case Hj:c="SL="+O(a,d.ya&65280);break;case Ij:c="M0="+O(a,pd(d));break;case Jj:c="M1="+O(a,rd(d));break;case Kj:c="M2="+O(a,sd(d));break;case Lj:c="M3="+O(a,d.T);break;case Mj:a.b&&(c="AR="+O(a,a.b.xa,3));break;case Nj:a.b&&(c="DR="+
O(a,a.b.wb));break;case Oj:a.b&&Jc(a.b)&&(c="SR="+O(a,a.b.Za,3))}c&&(c+=" ");return c}function ok(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,Ej)+Z(a,Fj)+Z(a,Hj);d+=nk(a,"T")+nk(a,"N")+nk(a,"Z")+nk(a,"V")+nk(a,"C");b&&(b=d,c=""+(Z(a,Ij)+Z(a,Jj)),c+=Z(a,Kj)+Z(a,Lj)+Z(a,Gj),c=c+"\n"+(Z(a,Oj)+Z(a,Mj)+Z(a,Nj)),d=b+("\n"+c));return d}h.dd=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function wh(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],r=ab(n,l,a.dd);0>r&&n.splice(-(r+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.C.push({xh:b,K:c,Qd:d,ea:e,ad:f})}function pk(a,b,c){var d=[],e=tj(b)>>>0;for(b=0;b<a.C.length;b++){var f=a.C[b],g=f.K>>>0,k=f.Qd;if(e>=g&&e<g+k){e=ab(f.ad,[e-g],a.dd);0<=e?qk(a,b,e,d):c&&(e=~e,qk(a,b,e-1,d),qk(a,b,e,d));break}}return d}
function qk(a,b,c,d){var e={},f=a.C[b].ad,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.C[b].ea[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function rk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return nj(a)||a.u("no variables"),!0;if(!c[2])return nj(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=ij(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.u("invalid assignment:"+b);return!1}
function sk(a,b,c){var d=null;if(b=yj(a,b,!0)){var e=pk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+Pa(f)),f=e[0]+" ("+O(a,e[1])+")"+g,c&&a.u(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+Pa(f)),f=e[4]+" ("+O(a,e[5])+")"+g,c&&a.u(f),d||(d=f))}else c&&a.u("no symbols")}return d}
function Tj(a,b){var c;if(b&&"?"==b[1])a.u("register commands:"),a.u("\tr\tdump registers"),a.u("\trm\tdump misc registers"),a.u("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.u("missing value for "+b[1]);return}g=ij(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":te(e,
g);a.H=V(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.H=g?32768:0;break;case "C":e.G=g?65536:0;break;case "PS":Ed(e,g);break;case "PI":ud(e,g);break;case "ER":e.R=g;d=!0;break;case "SL":e.ya=g|255;break;case "M0":qd(e,g);d=!0;break;case "M3":td(e,g);d=!0;break;case "AR":a.b&&(d=a.b,Gc(d,d.xa=g));d=!0;break;case "DR":a.b&&(d=a.b,qc(d,d.wb=g));d=!0;break;case "SR":if(a.b&&Jc(a.b)){Hc(a.b,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=
g&65535;break}a.u("unknown register: "+f);return}J(a.J);a.u("updated registers:")}}a.u(ok(a,d));c&&(a.H=V(e.g[7]),Uj(a,Bj(a,a.H)))}}function tk(a,b){b=Za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.u(c[2]):mj(a,null,c[2].charCodeAt(0)):ij(a,b,!0)}
function uk(a,b,c){if("?"==c)a.u("trace commands:"),a.u("\tt [#]\ttrace # instructions"),a.u("\ttr [#]\ttrace # instructions with register updates"),a.u("\ttc [#]\ttrace # cycles"),a.u("note: bn [#] breaks after # instructions without updates");else{var d="t"!=b;c=kj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.oa=b;tb(c,function(){return Ma(a,!0)&&lc(a,e,d,!1)},function(){a.b&&a.b.stop();J(a.J,-1);Ma(a,!1)})}}
function Uj(a,b,c,d){if(b=yj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=kj(a,c.substr(1)),null!=c&&(d=c);else{d=yj(a,c,!0);if(!d||d.K<b.K)return;e=d.K-b.K;if(256<e){a.u("range too large");return}d=-1}c=0;for(var f;0<e&&d--;){f=La(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=pk(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.u(m)}k[3]&&(g=k[3],f=null);f=bk(a,b,g,f);a.u(f);a.H=b;e-=b.K-l;c++}}}
function ak(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.u(Sj+b):(a.P&&(a.u("ended assemble at "+Bj(a,a.O)),a.H=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Ka(a)&&0<b.length){a.P&&(b="a "+Bj(a,a.O)+" "+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 r=
yj(a,g[1],!0);if(r)if(a.O=r,void 0===g[2])a.u("begin assemble at "+Bj(a,r)),a.P=!0,J(a.J);else{var u;a.u("not supported yet");u=[];if(u.length){for(var t=0;t<u.length;t++)a.Oc(r,u[t],1);a.u(bk(a,a.O))}}break;case "b":a:{var E=g[0],z=g[1],D=b;if("?"==z)a.u("breakpoint commands:"),a.u("\tbp [#]\tset exec breakpoint at addr #"),a.u("\tbr [#]\tset read breakpoint at addr #"),a.u("\tbw [#]\tset write breakpoint at addr #"),a.u("\tbc [#]\tclear breakpoint at addr #"),a.u("\tbl\tlist all breakpoints"),a.u("\tbn [#]\tbreak after # instruction(s)");
else{var F=E.charAt(1);if("l"==F){var gb;gb=0+Zj(a,a.g);gb+=Zj(a,a.L);(gb+=Zj(a,a.G))||a.u("no breakpoints")}else if("n"==F)a.aa=kj(a,z),a.u("break after "+a.aa+" instruction(s)");else if(void 0===z)a.u("missing breakpoint address");else{var W=V();if("*"!=z&&(W=yj(a,z,!0),!W))break a;"c"==F?null==W.K?(pj(a),a.u("all breakpoints cleared")):Xj(a,a.g,W)||Xj(a,a.L,W)||Xj(a,a.G,W)||a.u("breakpoint missing: "+Bj(a,W)):null!=W.K&&(Aj(a,W,D),"p"==F?a.rb(a.g,W):"r"==F?a.rb(a.L,W):"w"==F?a.rb(a.G,W):a.u("unknown breakpoint command: "+
F))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var Hb,Ta=g[0],Fa=g[1],Ua=g[2],Uk=g[3];if("?"==Fa){var Ib="";for(Hb in Sb)a.ia[Hb]&&(Ib&&(Ib+=","),Ib+=Hb);Ib+=",state,symbols";a.u("dump memory commands:");a.u("\tda [a] dump info for address a");a.u("\tdb [a] [n] dump n bytes at address a");a.u("\tdw [a] [n] dump n words at address a");a.u("\tdd [a] [n] dump n dwords at address a");a.u("\tds [a] [n] dump n words at address a as JSON");a.u("\tdh [p] [n] dump n instructions from history position p");
Ib.length&&a.u("dump extension commands:\n\t"+Ib)}else if("state"==Fa){var Ne=vk(a.J,!0);"console"==Ua?console.log(Ne):(a.Pa&&(a.Pa.value=""),Ne&&a.u(Ne))}else if("symbols"==Fa)for(var Oe=0;Oe<a.C.length;Oe++){var Pe=a.C[Oe],Jb;for(Jb in Pe.ea)if("."!=Jb.charAt(0)){var li=Pe.ea[Jb].o;if(void 0!==li){var mi=Pe.ea[Jb].l;mi&&(Jb=mi);a.u(O(a,li)+" "+Jb)}}}else{if("d"==Ta){for(Hb in Sb)if(g[1]==Hb){var ni=a.ia[Hb];ni?(g.shift(),g.shift(),ni(g)):a.u("no dump registered for "+Fa);break a}Fa||(Ta=a.Ia||"dw")}else a.Ia=
Ta;if("dh"==Ta){var oi=Fa,pi=Ua,qi="",ri=0,wa=a.R,Ga=a.i;if(Ga.length){var qa=+oi||a.na,sc=+pi||10;isNaN(qa)?qa=sc:qi="more ";qa>Ga.length&&(a.u("note: only "+Ga.length+" available"),qa=Ga.length);wa-=qa;0>wa&&(null==Ga[Ga.length-1].K?(qa=wa+qa,wa=0):wa+=Ga.length);var Qe=[];"call"==pi&&(sc=1E5,Qe=["CALL"]);for(void 0!==oi&&a.u(qa+" instructions earlier:");0<sc&&wa!=a.R;){var si=Ga[wa++];if(null==si.K)break;var tc=V(si.K),Vk=qa--,ti=bk(a,tc,"history",Vk);(!Qe.length||0<=ti.indexOf(Qe[0]))&&a.u(ti);
tc.Bc&&(wa+=tc.Bc,sc-=tc.Bc,qa-=tc.Bc);wa>=Ga.length&&(wa=0);a.na=qa;ri++;sc--}}ri||(a.u("no "+qi+"history available"),a.na=void 0)}else{var ga=yj(a,Fa);if(ga)if("da"==Ta){var Re=ga.Ka||65535<ga.K,K=Ie(a.f,ga.K||0,Re);a.u(Ya("",Re?12:19)+Na(ga.K,Re?22:17,3)+" "+H(ga.K,8));6>K.length?(2<K.length&&(a.u(" OFFSET: "+Na(K[3],13,3)+" "+H(K[3],8)),a.u("UNIMAP["+Oa(K[1])+"]: "+Na(K[2],22,3)+" "+H(K[2],8))),a.u(" PHYSICAL: "+Na(K[0],22,3)+" "+H(K[0],8))):(a.u(" OFFSET: "+
Na(K[1],13,3)+" "+H(K[1],8)),a.u("+ "+wk[K[2]]+"PAR"+K[3]+": "+Na(K[4],22,3)+" "+H(K[4],8)),a.u("& MMUMASK: "+Na(K[5],22,3)+" "+H(K[5],8)),a.u("= PHYSICAL: "+Na(K[0],22,3)+" "+H(K[0],8)))}else{var ib=0,Se="ds"==Ta;if(Ua){if("l"==Ua.charAt(0))Ua=Ua.substr(1)||Uk,ib=kj(a,Ua);else{var ui=yj(a,Ua);ui&&(ib=ui.K-ga.K)}0>ib&&(ib=0);65536<ib&&(ib=65536)}var Xk=a.Ba;ga.Ba&&(a.Ba=ga.Ba);for(var jb="dd"==Ta?4:"db"==Ta?1:2,wd=jb*ib||128,Te=Se?16:a.Ba,Yk=(wd+Te-1)/Te|0||1,kb="";Yk--&&0<wd;){for(var lb=
"",Ue="",Fa=Bj(a,ga),xd=Te,uc=0,vc=0;0<xd&&0<wd;){var Kb=1,yd=1==jb?a.Nc(ga,Kb):a.Oa(ga,Kb=2),uc=uc|yd<<(vc<<3),vc=vc+Kb;vc==jb&&(Se?(lb&&(lb+=","),lb+="0x"+I(uc,2*jb)):(lb+=O(a,uc,jb),lb+=1==jb?9==xd?"-":" ":" "),uc=vc=0);xd-=Kb;for(wd-=Kb;1==jb&&Kb--;)var Ve=yd&255,Ue=Ue+(32<=Ve&&128>Ve?String.fromCharCode(Ve):"."),yd=yd>>8}kb&&(kb+="\n");kb=Se?kb+(lb+","):kb+(Fa+": "+lb+(xd?"":" "+Ue))}kb&&a.u(kb);a.ya=ga;a.Ba=Xk}}}}break;case "e":if("else"==g[0])break;var Lb,We,Xe,Ye,Ze=g[0],$e=g[1];"eb"==Ze?
(Lb=1,We=255,Xe=a.Nc,Ye=a.Oc):"e"==Ze||"ew"==Ze?(Lb=2,We=65535,Xe=a.Oa,Ye=a.yd):$e=null;if(null==$e)a.u("edit memory commands:"),a.u("\teb [a] [...] edit bytes at address a"),a.u("\tew [a] [...] edit words at address a");else{var zd=yj(a,$e);if(zd)for(var Ad=2;Ad<g.length;Ad++){var wc=ij(a,g[Ad]);if(void 0===wc){a.u("unrecognized value: "+g[Ad]);break}wc&~We&&a.u("warning: "+I(wc)+" exceeds "+Lb+"-byte value");a.u("changing "+Bj(a,zd)+(B(a,16)?"":" from "+O(a,Xe.call(a,zd),Lb))+" to "+O(a,wc,Lb));
Ye.call(a,zd,wc,Lb)}}break;case "g":a:{var vi=g[1],Zk=b;if(void 0!==vi){var af=yj(a,vi,!0);if(!af)break a;Aj(a,af,Zk);a.rb(a.g,af,!0)}Qj(a,!0,c)}break;case "h":a.A.U?(c||a.u("halting"),a.Z()):La(a,!0)||c||a.u("already halted");break;case "i":if("if"==g[0]){var bf;var xc=b.substr(2),xc=Za(xc);ij(a,xc)?(c||a.u("true: "+xc),bf=!0):(c||a.u("false: "+xc),bf=!1);bf||(d=!1);break}f=!0;break;case "k":var $k=g[0];if("?"==g[1])a.u("stack trace commands:"),a.u("\tk\tshow frame addresses"),a.u("\tks\tshow symbol information");
else{var cf=0,df=V(),yc=V(a.f.g[6]);for(a.u("stack trace for "+Bj(a,yc));10>cf;){for(var mb=null,al=256;65536>yc.K>>>0;){df.K=a.Oa(yc,2);if(null==yc.K||!al--)break;if(!(df.K&1)){for(var bl=a,Bd=df,wi=null,zc=Bd.K,xi=zc,ef=1;6>=ef&&zc;ef++){if(2<ef){Bd.K=zc;var Cd=bk(bl,Bd);if(0<=Cd.indexOf("JSR")){var yi=Cd.indexOf(" ");if(zc+(Cd.indexOf(" ",yi+1)-yi-1)/2==xi){wi=Cd;break}}}zc-=2}Bd.K=xi;if(mb=wi)break}}if(!mb||null==mb)break;var zi=null;if("ks"==$k){var Ai=mb.match(/[0-9A-F]+$/);Ai&&(zi=sk(a,Ai[0]))}mb=
Ya(mb,50)+" ;"+(zi||"stack="+Bj(a,yc));a.u(mb);cf++}cf||a.u("no return addresses found")}break;case "l":if("ln"==g[0]){sk(a,g[1],!0);break}f=!0;break;case "m":a:{var Ha,Ia=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Va=0;if("all"==N)Va=1879046143,N=null;else if("on"==N)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in Sb)if(N==Ha){Va=Sb[Ha];Ia=!!(a.ha&Va);break}if(!Va){a.u("unknown message category: "+N);break a}}if(Va)if("on"==g[2])a.ha|=
Va,Ia=!0;else if("off"==g[2]&&(a.ha&=~Va,Ia=!1,1073741824==Va)){for(var Bi=1E3<=a.M.length?a.M.length-1E3:0;Bi<a.M.length;)a.u(a.M[Bi++]);a.M=[]}}var cl=0,Ac="";for(Ha in Sb)if(!N||N==Ha){var dl=!!(a.ha&Sb[Ha]);if(null===Ia||Ia==dl)Ac&&(Ac+=","),++cl%10||(Ac+="\n\t"),"key"==Ha&&(Ha="keys"),Ac+=Ha}void 0===N&&a.u("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.u((null!==Ia?Ia?"messages on: ":"messages off: ":"message categories:\n\t")+(Ac||"none"));qj(a)}break;case "p":if("print"==
g[0]){tk(a,b.substr(5));break}var el=g[0];if("?"==g[1])a.u("step commands:"),a.u("\tp\tstep over instruction"),a.u("\tpr\tstep over instruction with register update");else{var Ci="pr"==el?1:0,Di=1+Ci;if(a.I)a.u("step in progress");else{var Dd=V(a.f.g[7]),Mb=a.Oa(Dd);3==Mb||4==Mb||34816==(Mb&65280)||32256==(Mb&65024)||35072==(Mb&65280)?(a.I=Di,zj(Dd,2)):2048==(Mb&65024)&&(bk(a,Dd),a.I=Di);a.I?(a.rb(a.g,Dd,!0),Qj(a)||(a.J&&je(a.J),a.I=0)):uk(a,Ci?"tr":"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();
break}Tj(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Bc=+g[2];if(8==Bc||10==Bc||16==Bc)a.Ba=Bc;else{a.u("invalid base: "+Bc);break}}a.u("default base: "+a.Ba);break;case "cs":var Cc;void 0!==g[3]&&(Cc=+g[3]);switch(g[2]){case "int":a.f.Cb=Cc;break;case "start":a.f.Wb=Cc;break;case "stop":a.f.Eb=Cc;break;default:a.u("unknown cs option");break a}void 0!==Cc&&be(a.f);a.u("checksums "+(a.f.A.Bb?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(ge(a.f,+g[2])||a.u("warning: using 1x multiplier, previous target not reached"));
a.u("target speed: "+(a.f.pb.toFixed(2)+"Mhz")+" ("+a.f.cb+"x)");break;default:if(g[1]){a.u("unknown option: "+g[1]);break}case "?":a.u("debugger options:"),a.u("\tbase #\t\tset default base to #"),a.u("\tcs int #\tset checksum cycle interval to #"),a.u("\tcs start #\tset checksum cycle start count to #"),a.u("\tcs stop #\tset checksum cycle stop count to #"),a.u("\tsp #\t\tset speed multiplier to #")}break;case "t":uk(a,g[0],g[1]);break;case "u":Uj(a,g[1],g[2],8);break;case "v":if("var"==g[0]){rk(a,
b.substr(3))||(d=!1);break}if("ver"==g[0]){a.u((Fb||"PDP11")+" version 1.32.2 ("+a.f.ia+",RELEASE"+(Nb?",TYPEDARRAYS":Gb?",BYTEARRAYS":",LONGARRAYS")+")");a.u(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){tk(a,b.substr(1));break}var ff="commands:",gf;for(gf in xk)ff+="\n"+Ya(gf,9)+xk[gf];qf(a)||(ff+="\nnote: history disabled if no exec breakpoints");a.u(ff);break;default:f=!0}f&&(a.u("unknown command: "+b),d=!1)}}catch(Fi){a.u("debugger error: "+(Fi.stack||Fi.message)),
d=!1}return d}function ee(a,b,c){b=gj(a,b,c);for(var d in b)if(!ak(a,b[+d]))return!1;return!0}
var xk={"?":"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"},dk=".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(" "),
Ej=20,Fj=21,Gj=22,Hj=23,Ij=24,Jj=25,Kj=26,Lj=27,Mj=28,Nj=29,Oj=30,Cj={SP:6,PC:7,PS:Ej,PI:Fj,ER:Gj,SL:Hj,M0:Ij,M1:Jj,M2:Kj,M3:Lj,AR:Mj,DR:Nj,SR:Oj},wk="KI KD SI SD ?? ?? UI UD".split(" "),kk=7,lk=56,Y=lk|kk,jk=4032,X=4096,fk=8192,gk=12288,hk=24576,ik=32768,ek=61440,sj={61440:{4096:[62,jk,Y],8192:[47,jk,Y],12288:[18,jk,Y],16384:[14,jk,Y],20480:[16,jk,Y],24576:[3,jk,Y],36864:[63,jk,Y],40960:[48,jk,Y],45056:[19,jk,Y],49152:[15,jk,Y],53248:[17,jk,Y],57344:[94,jk,Y]},65024:{2048:[57,448,Y],28672:[100,Y,
448],29184:[101,Y,448],29696:[102,Y,448],30208:[103,Y,448],30720:[104,448,Y],32256:[105,448,fk]},65280:{256:[27,X],512:[24,X],768:[10,X],1024:[11,X],1280:[22,X],1536:[12,X],1792:[20,X],32768:[25,X],33024:[23,X],33280:[13,X],33536:[21,X],33792:[28,X],34048:[29,X],34304:[8,X],34560:[9,X],34816:[106,ik],35072:[107,ik]},65472:{64:[56,Y],192:[95,Y],2560:[39,Y],2624:[49,Y],2688:[53,Y],2752:[51,Y],2816:[67,Y],2880:[1,Y],2944:[77,Y],3008:[97,Y],3072:[73,Y],3136:[71,Y],3200:[6,Y],3264:[4,Y],3328:[58,hk],3392:[60,
Y],3456:[65,Y],3520:[96,Y],35328:[40,Y],35392:[50,Y],35456:[54,Y],35520:[52,Y],35584:[68,Y],35648:[2,Y],35712:[78,Y],35776:[98,Y],35840:[74,Y],35904:[72,Y],35968:[7,Y],36032:[5,Y],36096:[66,Y],36160:[59,Y],36224:[64,Y],36288:[61,Y]},65528:{128:[76,kk],152:[108,gk]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],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]}},ck=[0],wj=[58,60,65,96,110,100,101,102,103,104,105],xj=[108,59,64],Pj=1E3,Sj=">> ";wb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new oj(d);Da(d,c)}});
function yk(a,b,c){q.call(this,"Computer",a,0,33554432);this.A.fa=!1;this.P=null;zk(this,b);this.M=$d(this,"autoPower",a,6);this.j=0;this.T=+a.busWidth||+a.buswidth;this.I=this.H=this.L=null;this.G=this.S=!1;this.w=this.v=null;this.R=this.C=this.O=!1;this.V=$d(this,"url")||"";(Math.random()+.1).toString(36);this.g=Ak(this);if(this.f=Ca("CPU",this.id)){this.F=Ca("Debugger",this.id);this.D=new Mc({id:this.nb+".bus",busWidth:this.T},this.f,this.F);var d,e=Aa(this.id);if((this.i=Ca("Panel",this.id))&&
this.i.Pa)for(b=0;b<e.length;b++)d=e[b],d.N=this.i.N,d.u=this.i.u,d.Pa=this.i.Pa;this.u(Fb+" v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.u("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.ua&&d.ua(this,this.D,this.f,this.F);this.b=$d(this,"resume",a,4,Bk);var f;b=null;if(a=$d(this,"state")||(f=!0,a.state))this.L=b=a,
f||(this.G=!0,this.b=Bk),this.b&&(this.w=new M(this,"1.32.2"),Ck(this.w)?b=null:delete this.w);!b&&this.b&&(b=Dk(this))&&(this.G=!0);if(b){var g=this;cb(b,null,!0,function(a,b,c){c?(g.H=null,g.G=!1,g.N("Unable to load machine state from server (error "+c+(b?": "+Za(b):"")+")")):(g.I=b,g.S=!0);A(g)})}else A(this);this.B.power||(this.M=!0);!c&&this.M&&Ek(this,this.Vb)}else v("Unable to find CPU component")}p(yk,q);
function zk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.P=b}function $d(a,b,c,d,e){var f=b.toLowerCase(),f=qb(b)||qb(f);void 0===f&&a.P&&(f=a.P[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Ek(a,b,c){for(var d=Aa(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ka(f)){Ka(f,function(){Ek(a,b,c)});return}}b.call(a,c)}function Fk(a,b){var c=new M(a,"1.32.2",Gk);if(Ck(c)&&Hk(c)){var d=c.get(Ik),e=b?b.get(Ik):"unknown";d!=e&&(a.N("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=yk.prototype;
h.Vb=function(a){void 0===a&&(a=this.b||(this.I?Jk:Bk));if(!this.j){this.j++;var b=!1,c=!1;this.O=!1;var d=this.w||new M(this,"1.32.2");if(a==Kk)b=!0;else if(a>Bk){if(Ck(d,this.I)){this.v=new M(this,"1.32.2",Lk);Ck(this.v)&&(Mk(this,d),a=Nk,Ok(this.v));this.v.set(Ik,bb());Pk(this.v);var e=this.b&&!this.G;if(a==Jk||za("Click OK to restore the previous "+Fb+" machine state, or CANCEL to reset the machine.")){if(c=Hk(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ck(d,g):("error"==f&&"no machine state"!=
g?(this.N("Error: "+g),"unable to verify user"==g&&(ob(Qk,""),this.g=null)):this.u(f+": "+g),Ok(d),Ck(d)?(c=Hk(d),e=!0):c=!1))}e&&Fk(this,c?d:null)}else a==Nk&&d.clear()}else Fk(this);delete this.I;delete this.w}e=Aa(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Rk(this,g,d,b,c));b=[d,a,c];a!=Kk?Ek(this,this.ed,b):this.ed(b)}};
function Rk(a,b,c,d,e){if(!b.A.fa){b.A.fa=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.wa(f,d)&&f&&(v("Unable to restore state for "+b.type),a.L&&!a.S?(c.clear(),a.b=Bk,window&&window.location.reload()):a.O=!0,b.wa(null),e=!1),!d&&b.Sc){var g=b.Sc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ed=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.A.fa=!0;var d=this.B.power;d&&(d.textContent="Shutdown");this.f&&(Rk(this,this.f,b,c,a),J(this),this.f.ta());this.O&&(Mk(this,b),b.clear());!c&&this.v&&(this.v.clear(),delete this.v);this.j=0};
function Mk(a,b){if(za("There may be a problem with your "+Fb+" machine.\n\nTo help us diagnose it, click OK to send this "+Fb+" machine state to http://www.pcjs.org.")){var c=a.V;a=a.g||"";b=b.toString();var d={};d.app=Fb;d.ver="1.32.2";d.url=c;d.user=a;d.type="bug";d.data=b;cb("http://www.pcjs.org/api/v1/report",d,!0)}}
function vk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new M(a,"1.32.2"),g=new M(a,"1.32.2",Gk),k=bb();g.set(Ik,k);f.set(Ik,k);f.set(Sk,"1.32.2");f.set(Tk,window?window.location.href:null);f.set(Wk,window?window.navigator.userAgent:"");a.f&&a.f.va&&(c&&(b&&(a.f.A.ta=a.f.A.U),a.f.Z()),d=a.f.va(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.fa=!1,!1===d&&(e=null)));for(var k=Aa(a.id),l=0;l<k.length;l++){var m=k[l];m.A.fa&&(m.va&&(d=m.va(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.fa=
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&fl(a,a.g,f.toString()),Pk(g)&&Pk(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==gl),d&&f.clear(k)):e=f.toString());c&&(a.A.fa=!1,b=a.B.power)&&(b.textContent="Power");a.j=0;return e}
h.reset=function(){this.D&&this.D.reset&&(C(this,"Resetting "+this.D.type),this.D.reset());this.f&&this.f.reset&&(C(this,"Resetting "+this.f.type),this.f.reset());for(var a=Aa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.f&&c.reset&&(C(this,"Resetting "+c.type),c.reset())}J(this,-1)};h.start=function(a,b){for(var c=Aa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}J(this,-1)};
h.stop=function(a,b){for(var c=Aa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}J(this,-1)};
function J(a,b){if(a.f){var c=a.f,d=b||0,e=c.B.speed;e&&(0>=d||30<=(c.rc+=d))&&(e.textContent=c.A.U?c.ob.toFixed(2)+"Mhz":"Stopped",c.rc=0)}if(a.i&&(a=a.i,b=b||0,a.v)){c=a.f.A.U;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)ec(a,"R"+e,a.f.g[e]);e=vd(a.f);ec(a,"PS",e);ec(a,"NF",e&8?1:0,1);ec(a,"ZF",e&4?1:0,1);ec(a,"VF",e&2?1:0,1);ec(a,"CF",e&1?1:0,1);a.j=0}Gc(a,0<b&&c&&!d?a.f.$a:a.xa);qc(a,a.wb);b=a.f;b=b.Ia?b.T&16?1:2:4;Ic(a,"B22",b&1);Ic(a,"B18",b&2);Ic(a,"B16",b&4)}}
h.qa=function(a,b,c){var d=this;switch(b){case "power":return this.B[b]=c,c.onclick=function(){d.j||(d.A.fa?vk(d,!1,!0):Ek(d,d.Vb))},!0;case "reset":return this.B[b]=c,c.onclick=function(){if(d.A.fa&&!d.j)if(d.b&&!d.H){var a=za("Click OK to save changes to this "+Fb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");vk(d,a,!0);!a&&d.L?window&&window.location.reload():(a||(d.C=!0),d.Vb(Bk),d.C=!1)}else d.reset(),d.f&&d.f.ta()},!0;case "save":if(Sa(eb(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.B[b]=c,c.onclick=function(){var a=Ak(d,!0);if(a){var b=!!(d.b&&!d.H||d.L),c=vk(d,b);b?fl(d,a,c):d.N("Resume disabled, machine state not saved")}},!0}return!1};
function Ak(a,b){var c=a.g;c||((c=nb(Qk),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=hl(a,c))||a.N("The user ID is invalid.")):b&&a.N("Browser local storage is not available"));return c}
function hl(a,b){a.g=null;b=cb(eb()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ob(Qk,b.data),a.g=b.data)}catch(d){v(d.message+" ("+c+")")}return a.g}function Dk(a){var b=null;a.g&&(b=eb()+"/api/v1/user?req=load&user="+a.g+"&state="+il(a,"1.32.2"));return b}
function fl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=il(a,"1.32.2");d.data=c;b=cb(eb()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.N("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.N(c),ob(Qk,""),a.g=null)}}
function Nh(a){var b;a=Aa(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function je(a,b){if(a.Pa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Pa.focus();!b&&window&&window.scrollTo(c,d)}}var Lk="failsafe",Gk="validate",Ik="timestamp",Sk="version",Tk="url",Wk="browser",Qk="user",Kk=-1,Bk=0,Jk=1,Nk=2,gl=3;
wb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new yk(g,d,!0);Da(g,f);g.M&&Ek(g,g.Vb)}});xb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Ca("Computer",c.id))&&c.R&&!c.A.fa&&c.Vb(Kk)}});xb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Ca("Computer",c.id))&&c.A.fa&&vk(c,!(!c.b||c.H),!0)}});
function M(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.B=!1;this.key=il(a,b,c);Ok(this,a.Fd)}h=M.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Ck(a,b){return b?(a.b=b,a.g=!0,a.B=!1,!0):a.g?!0:fb()&&(b=nb(a.key))?(a.b=b,a.g=!0):!1}function Hk(a){var b=!0;if(!a.B)try{a.f=JSON.parse(a.b),a.B=!0}catch(c){v(c.message||c),b=!1}return b}
function Pk(a){var b=!0;if(fb()){var c=JSON.stringify(a.f);ob(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function Ok(a,b){a.b="";a.f={};a.g=a.B=!1;b&&a.set("parms",b)}
h.clear=function(a){Ok(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function il(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var jl=0;
function kl(a,b,c,d,e,f){e("Loading "+a+"...");cb(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):ll(k,a,b,c,d,e,f)})}
function ll(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(va(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?ml(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function ml(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");cb(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);ml(a,b,c)}})}else c(a,null)}
function nl(a,b,c,d){function e(a){if(void 0===k){var b=g&&y(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=Wa(a))}function f(a){e("Error: "+a);l&&(--jl||Ab(!0));l=!1}var g,k,l=!0;jl++;xa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.32.2/components.xsl");m=function(d,k){k?kl(c,null,null,!1,e,function(d,l){l?(va(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--jl||Ab(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--jl||Ab(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?kl(b,a,d,!0,e,m):ll(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPDP11=function(a,b,c,d){Ab(!1);return nl(a,b,c,d)};window.findMachineComponent=function(a,b){return Ca(b,a+".machine")};window.enableEvents=Ab;window.sendEvent=Cb;})();//# sourceMappingURL=/tmp/pdpjs/1.32.2/pdp11-dbg.map
function kj(a,b,c){var d;if(b){b=lj(a,b);for(var e=0,f=!1,g=b,k=[],l=[],m=b.split(/(\|\||&&|\||^|&|!=|==|>=|>>>|>>|>|<=|<<|<|-|\+|%|\/|\*)/);e<m.length;){var n=m[e++],r=n.length,n=Za(n);if(!n){f=!0;break}n=mj(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++],u=n.length;l.length&&nj[n]<nj[l[l.length-1]]&&jj(k,l,1);l.push(n);b=b.substr(r+u)}jj(k,l)&&1==k.length||(f=!0);f?c&&a.v("error parsing '"+g+"' at character "+(g.length-b.length)):(d=k.pop(),c&&oj(a,null,
d))}return d}function lj(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=kj(a,c[1]);b=b.replace(d+c[1]+e,null!=g?O(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 mj(a,b,c,d){var e;null!=b?(e=a.hd(b),0<=e?e=a.jd(e):(e=a.T[b],null==e&&(e=G(b,a.Ca))),null!=e||d||a.v("invalid "+(c?c:"value")+": "+b)):d||a.v("missing "+(c||"value"));return e}function oj(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=Na(d&255,8)+g,d>>=8;d=I(c,0,!0)+" "+c+". "+H(c,0,!0)+" "+("0b"+g);32<=c&&127>c&&(d+=" '"+String.fromCharCode(c)+"'")}a.v((null!=b?b+": ":"")+d);return e}
function pj(a,b){if(b)return oj(a,b,a.T[b]);var c=0;for(b in a.T)oj(a,b,a.T[b]),c++;return 0<c}function O(a,b,c,d){switch(a.Ca){case 8:a=H(b,3*c-(2<c?1:0));break;case 10:a=b.toString();break;default:a=I(b,2*c)}d?d=a.replace(/^0+([0-9A-F]+)$/i,"$1"):d=a;return d}var nj={"||":0,"&&":1,"|":2,"^":3,"&":4,"!=":5,"==":5,">=":6,">":6,"<=":6,"<":6,">>>":7,">>":7,"<<":7,"-":8,"+":8,"%":9,"/":9,"*":9};
function qj(a){hj.call(this,a);this.Ea=!1;this.ia=!0;this.H=V();this.za=V();this.O=V();this.B=[];this.g=this.L=this.F=[];rj(this);this.R=this.W=0;this.i=[];this.oa=void 0;sj(this);this.G=this;this.ka={};this.ja=this.cd=0;this.S=null;this.M=[];tj(this,a.messages);this.ua=a.commands;this.Ha=uj;this.X=[];this.I=0;this.Ia=this.pa=null;this.w=this.Ga=this.Fa=this.aa=this.la=0;this.b=this.V=null;var b=this;window?void 0===window[x]&&(window[x]=function(a){return ee(b,a)}):void 0===global[x]&&(global[x]=
function(a){return ee(b,a)})}p(qj,hj);function vj(a){a=a&&a.K;null==a&&(a=-1);return a}function V(a,b,c){return{K:void 0===a?null:a,Ka:void 0===b?!1:b,Qa:!1,Ca:c}}h=qj.prototype;h.Gc=function(a,b){a.K=b;a.Qa=!1;a.Ca=void 0;return a};function wj(a){return[a.K,a.Ka,a.Ca,a.Qa,a.jc]}function xj(a,b){var c=V(b[0],b[1],b[2]);c.Qa=b[3];b[4]&&(c.$c=ij(a,c.jc=b[4]));return c}
h.wa=function(a,b,c,d){this.D=b;this.J=a;this.f=c;this.b=a.i;(a=$d(a,"messages"))&&tj(this,a);1140>this.f.ka&&(this.X=this.X.concat(yj));1145>this.f.ka&&(this.X=this.X.concat(zj));md(this,16,function(a){a:{var b=d.D.b,c=a[0],e=a=0,l=b.length;if(c){a=vj(Aj(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("..."):
(c=n.type,m=Zc[c],n&&d.v(I(n.id,8)+" %"+I(e<<d.D.g,8)+" %"+I(n.K,8)+" "+Pa(n.Kb)+" "+Pa(n.size)+" "+m),c!=Id&&(c=-1),m=0);a+=d.D.j;e++}}});A(this)};
h.sa=function(a,b,c){var d=this;switch(b){case "debugInput":return this.V=this.C[b]=c,c.onkeydown=function(a){var b;if(13==a.keyCode)b=c.value,c.value="",ee(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.C[b]=c,ub(c,function(){if(d.V){var a=d.V.value;d.V.value=
"";ee(d,a,!0);return!0}return!1}),!0;case "step":return this.C[b]=c,ub(c,function(a){var b=!1;La(d,!0)||(Ma(d,!0),b=oc(d,a?1:0,null),Ma(d,!1));return b}),!0}return!1};function de(a){if(a.V){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.V.focus();window&&window.scrollTo(b,c)}}h.Nc=function(a,b){var c=255,d=vj(a);-1!==d&&(a.Ka||65535<d?(c=this.D,d=He(this.f,d),c.F=!1,c.ma++,d=ad(c,d).j(d&c.i,d),c.ma--):(c=this.f,c.oa++,d=c.D.Kc(Fc(c,d,3)),c.oa--),c=d,b&&Bj(a,b));return c};
h.Oa=function(a,b){var c=65535,d=vj(a);-1!==d&&(c=a.Ka||65535<d?Gc(this.D,He(this.f,d)):Hc(this.f,d),b&&Bj(a,b));return c};h.Oc=function(a,b,c){var d=vj(a);if(-1!==d){if(a.Ka||65535<d)bd(this.D,He(this.f,d),b);else{var e=this.f;e.oa++;e.D.Lc(Fc(e,d,5),b);e.oa--}c&&Bj(a,c);L(this.J,-1)}};h.yd=function(a,b,c){var d=vj(a);if(-1!==d){if(a.Ka||65535<d)Ec(this.D,He(this.f,d),b);else{var e=this.f;e.oa++;e.D.Ob(Fc(e,d,4),b);e.oa--}c&&Bj(a,c);L(this.J,-1)}};
function Aj(a,b,c){var d;c=(c?a.H:a.za).K;var e,f;if(void 0!==b){b=lj(a,b);"%"==b.charAt(0)&&(e=!0,b=b.substr(1));d=b;var g,k;a:{c=a.D;var l;l=d.toUpperCase();for(k in c.Ma){var m=+k;if(c.Ma[m][4]==l){k=c.B+m;break a}}k=null}if(null==k&&d.match(/^[a-z_][a-z0-9_]*$/i))for(d=d.toUpperCase(),c=0;c<a.B.length;c++)if(l=a.B[c].ga[d],null!=l){k=l.o;break}null!=k&&(g=V(k));if(d=g)return d;0<=b.indexOf("0x")?f=16:0<=b.indexOf("0o")?f=8:0<=b.indexOf(".")&&(f=10);c=kj(a,b,void 0)}null!=c&&(d=V(c,e,f));return d}
function Cj(a,b,c){c&&(c=c.match(/(['"])(.*?)\1/))&&(b.$c=ij(a,b.jc=c[2]))}function Bj(a,b){null!=a.K&&(a.K+=b||1)}function Dj(a,b){return(b.Ka?"%":"")+O(a,b.K)}
function tj(a,b){a.G=a;a.ja=a.cd=536870912;a.S=null;a.M=[];b=ij(a,b.replace("keys","key").replace("kbd","keyboard"),!1,"|");if(b.length)for(var c in Sb){var d;a:if(d=void 0,Array.prototype.indexOf)d=b.indexOf(c,d);else{d=d||0;0>d&&(d+=b.length);0>d&&(d=0);for(var e=b.length;d<e;d++)if(d in b&&b[d]===c)break a;d=-1}0<=d&&(a.ja|=Sb[c],a.v(c+" messages enabled"))}}function md(a,b,c){for(var d in Sb)if(b==Sb[d]){a.ka[d]=c;break}}
h.hd=function(a){a=a.toUpperCase();var b=Ej[a];null==b&&(b=-1,"R"==a.charAt(0)&&(b=+a.charAt(1),0>b||7<b))&&(b=-1);return b};function Fj(a){return 6>a?"R"+a:6==a?"SP":"PC"}
h.jd=function(a){var b;if(0<=a)if(8>a)b=this.f.g[a];else if(16>a)b=this.f.pa[a-8];else if(20>a)b=this.f.W[a-16];else{var c=this.f,d=this.b;switch(a){case Gj:b=vd(this.f);break;case Hj:b=c.Xa;break;case Ij:b=c.R;break;case Jj:b=c.za&65280;break;case Kj:b=pd(c);break;case Lj:b=rd(c);break;case Mj:b=sd(c);break;case Nj:b=c.T;break;case Oj:d&&(b=d.fa);break;case Pj:d&&(b=d.Sa);break;case Qj:d&&Jc(d)&&(b=d.Ta)}}return b};
h.message=function(a,b){b&&(a+=" @"+Dj(this,V(this.f.P&65535)));if(!this.S||a!=this.S)if(this.S=a,this.ja&1073741824)this.M.push(a);else{var c;if(this.ja&-2147483648&&this.f&&(c=this.f.A.U)||La(this,!0))this.Z(),c&&(a+=" (cpu halted)");this.v(a);this.f&&(a=this.f,ke(a),a.tb=0,a.J&&L(a.J,void 0))}};
function sj(a){var b;if(!qf(a))a.i&&a.i.length&&a.v("instruction history buffer freed"),a.R=0,a.i=[];else if(!a.i||!a.i.length){a.i=Array(Rj);for(b=0;b<a.i.length;b++)a.i[b]=V();a.R=0;a.v("instruction history buffer allocated")}}function Sj(a,b,c){if(!Tj(a,c))return!1;nc(a.f,b);return!0}
function oc(a,b,c,d){if(!Tj(a))return!1;var e="";null===c&&(e=(c=!a.pa||"tr"==a.pa)?"tr":"t");a.w=0;b||qf(a)&&rf(a,a.f.g[7],0);try{b=le(a.f,b);var f=a.f.ec(b);0<f&&(pc(a.f,f),a.w+=f,qc(a.f,f,!0),rc(a.f,f),a.aa++)}catch(g){"number"!=typeof g&&(a.w=0,Ea(a.f,g.stack||g.message))}!1!==d&&(a.b&&a.b.stop(),L(a.J,-1));ce(a,c||!1,e);return 0<a.w}h.Z=function(a){this.f&&this.f.Z(a)};
function ce(a,b,c){if(a.Ea){void 0===b&&(b=!0);c&&a.v(Uj+c);c=a.f;if(c=c.i&128?c.fc|c.cc<<8:0){var d=c>>8;a.v("trapped to "+O(a,c&255,1)+" ("+(0>d?Qb[-d]:O(a,d))+")")}a.H=V(a.f.g[7]);b&&1!=a.I?Vj(a):Wj(a)}}function Tj(a,b){var c;(c=!a.f||!Ka(a.f))||(c=a.f,c.A.ha?c=!0:(c.v(c.toString()+" not powered"),c=!1),c=!c);return c||a.f.A.U?(b||a.v("cpu busy or unavailable, command ignored"),!1):!Ja(a.f)}h.ya=function(a,b){return!b&&(this.reset(!0),a)?this.restore(a):!0};
h.xa=function(a,b){b&&this.v(a?"suspending":"shutting down");return a?this.save():!0};h.reset=function(a){sj(this);this.aa=0;this.S=null;this.w=0;this.H=V(this.f.g[7]);this.A.U=!1;Xj(this);a||ce(this)};h.save=function(){var a=new J(this);a.set(0,wj(this.H));a.set(1,wj(this.O));a.set(2,[this.j,this.P,this.ja]);a.set(3,this.B);return a.data()};
h.restore=function(a){var b=0;void 0!==a[2]&&(this.H=xj(this,a[b++]),this.O=xj(this,a[b++]),this.j=a[b][0],"string"==typeof this.j&&(this.j=[this.j]),this.P=a[b][1],this.ja|=a[b][2]);a[3]&&(this.B=a[3]);return!0};h.start=function(a,b){this.I||this.v("running");this.A.U=!0;this.Fa=a;this.Ga=b};
h.stop=function(a,b){if(this.A.U){this.A.U=!1;this.w=b-this.Ga;if(!this.I){b="stopped";if(this.w){a-=this.Fa;var c=0<a?Math.round(1E3*this.w/a):0;b+=" (";qf(this)&&(b+=this.aa+" instructions, ",this.aa=0);b+=this.w+" cycles, "+a+" ms, "+c+" hz)"}else B(this,-2147483648)&&(b+=" (use the 't' command to execute blocked faults)");this.v(b)}ce(this,!0);de(this);Xj(this,this.f.g[7]);this.S=null}};function qf(a){return 1<a.g.length||!!a.W}
function rf(a,b,c){var d=-1;c||(d=Hc(a.f,b))||(a.f.P&65535)!=b||(b=ze(a.f,2));if(0<c&&(a.W&&!--a.W||Yj(a,b,1,a.g)))return!0;0<=c&&a.i.length&&(a.aa++,0>d&&(d=Hc(a.f,b)),65535!=(d&65535)&&(a.Gc(a.i[a.R],b),++a.R==a.i.length&&(a.R=0)));return!1}function wg(a){var b=a.f;if(b.A.U)throw te(b,a.f.P&65535),a.Z(),-1;return!1}function Ud(a,b,c){Yj(a,b,c||1,a.L)&&a.Z(!1)}function Vd(a,b,c){Yj(a,b,c||1,a.F)&&a.Z(!1)}
function rj(a){var b,c,d;a.g=["bp"];if(a.L)for(b=1;b<a.L.length;b++)c=a.L[b],d=vj(c),c.Ka?(c=a.D,Td(c.b[d>>>c.g],!1)):Ke(a.f,!1);a.L=["br"];if(a.F)for(b=1;b<a.F.length;b++)c=a.F[b],d=vj(c),c.Ka?(c=a.D,Td(c.b[d>>>c.g],!0)):Ke(a.f,!0);a.F=["bw"];a.la=0}
h.sb=function(a,b,c){var d=!0;c||Zj(this,a,b,!1,!0);if(a!=this.g){var e=vj(b);if(-1===e)this.v("invalid address: "+Dj(this,b)),d=!1;else{var f=a==this.F;65535<e&&(b.Ka=!0);if(b.Ka){var g=this.D;g.b[e>>>g.g].sb(e&g.i,f)}else e=this.f,(f?e.Zb++:e.Yb++)||re(e)}}d&&(a.push(b),c?b.Qa=!0:(ak(this,a,a.length-1,"set"),sj(this)));return d};
function Zj(a,b,c,d,e){var f=!1;c=vj(c);for(var g=1;g<b.length;g++){var k=b[g];if(c==vj(k)&&(!d||k.Qa)){f=!0;k.Qa||e||ak(a,b,g,"cleared");b.splice(g,1);b!=a.g&&(b=b==a.F,k.Ka?(d=a.D,Td(d.b[c>>>d.g],b)):Ke(a.f,b));k.Qa||sj(a);break}}return f}function bk(a,b){for(var c=1;c<b.length;c++)ak(a,b,c);return b.length-1}function ak(a,b,c,d){c=b[c];a.v(b[0]+" "+Dj(a,c)+(d?" "+d:c.jc?' "'+c.jc+'"':""))}
function Xj(a,b){if(void 0!==b)Yj(a,b,1,a.g,!0),a.I=0;else for(b=1;b<a.g.length;b++){var c=a.g[b];if(c.Qa){if(!Zj(a,a.g,c,!0))break;b=0}}}
function Yj(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.Qa)for(var l=vj(k)&(d==a.g?65535:-1),m=0;m<c;m++)if(b+m==l){var n,f=!0;k.Qa&&(Zj(a,d,k,!0),e=!0);if(n=k.$c){for(var f=!1,r=0;r<n.length;r++)if(!ck(a,n[r],!0)){if(n[r].indexOf("if")){f=!0;break}for(var u=r+1;u<n.length&&n[u].indexOf("else");u++)r++;if(u==n.length){f=!0;break}}a.f.A.U||(f=!0)}if(f){e||ak(a,d,g,"hit");break}}}a.la--;return f}
function dk(a,b,c,d){var e=V(b.K),f=a.Oa(b,2),g,k;for(k in a.Ha)if(g=a.Ha[k][f&k])break;g||(g=ek);var l=g[0];0<=a.X.indexOf(l)&&(g=ek,l=g[0]);var m=k="",n=fk[l],r=g.length-1;l||r||(k=O(a,f));for(l=1;l<=r;l++){var u=g[l];if(void 0!==u){var t;t=a;var E=u,u=b,z="",D=E&gk;if(D==X)u=u.K+((f&255)<<24>>23)&65535,z=O(t,u);else if(D==hk)u=u.K-((f&63)<<1)&65535,z=O(t,u);else if(D==ik)z=O(t,f&7,1);else if(D==jk)z=O(t,f&63,1);else if(D==kk)z=O(t,f&255,1);else if(D=f&E,E&lk&&(D>>=6,E>>=6),E&Y){var E=null,F=D&
mk;switch(D&nk){case 0:z=Fj(F);break;case 8:z="@"+Fj(F);E=ok(t,t.f.g[F]);break;case 16:7>F?z="("+Fj(F)+")+":(D=t.Oa(u,2),z="#"+O(t,D,0,!0));break;case 24:7>F?z="@("+Fj(F)+")+":(D=t.Oa(u,2),z="@#"+O(t,D,0,!0),E=ok(t,D));break;case 32:z="-("+Fj(F)+")";break;case 40:z="@-("+Fj(F)+")";break;case 48:D=t.Oa(u,2);z=O(t,D,0,!0)+"("+Fj(F)+")";7==F&&(z=O(t,D=D+u.K&65535),E=ok(t,D));break;case 56:D=t.Oa(u,2),z="@"+O(t,D)+"("+Fj(F)+")",7==F&&(z="@"+O(t,D=D+u.K&65535),E=ok(t,Hc(t.f,D)))}E&&(z=[z,E])}t=z;if(!t||
!t.length){k="INVALID";break}"string"!=typeof t&&(m=t[1],t=t[0]);0<k.length&&(k+=",");k+=t||"???"}}f="";g=Dj(a,e)+":";if(-1!==e.K&&-1!==b.K){do if(f+=" "+O(a,a.Oa(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.Bb?g+("cycles="+fe(a.f).toString()+" cs="+I(a.f.Ub)):g+(null!=d?"="+d.toString():""),m&&(";"!=g.slice(-1)&&(g+=" "),g+=m);return g}
function ok(a,b){b=Ie(a.f,b)[0];b>=a.f.mb&&b<a.D.B&&(b=b-a.f.mb+a.D.B);var c=a.D;a=null;b>=c.B&&(b=c.Ma[b&fd])&&(a=b[4]);return a}function pk(a,b){switch(b){case "N":a=ye(a.f);break;case "Z":a=xe(a.f);break;case "V":a=we(a.f);break;case "C":a=ve(a.f);break;default:a=0}return b.charAt(0)+(a?"1":"0")+" "}
function Z(a,b){var c="",d=a.f;if(8>b)c=Fj(b),c+="="+O(a,d.g[b]);else if(13>b)c="A"+(b-8)+"="+O(a,d.pa[b-8]);else if(16<=b&&20>b)c="S"+(b-16)+"="+O(a,d.W[b-16]);else switch(b){case Gj:c="PS="+O(a,vd(d));break;case Hj:c="PI="+O(a,d.Xa);break;case Ij:c="ER="+O(a,d.R);break;case Jj:c="SL="+O(a,d.za&65280);break;case Kj:c="M0="+O(a,pd(d));break;case Lj:c="M1="+O(a,rd(d));break;case Mj:c="M2="+O(a,sd(d));break;case Nj:c="M3="+O(a,d.T);break;case Oj:a.b&&(c="AR="+O(a,a.b.fa,3));break;case Pj:a.b&&(c="DR="+
O(a,a.b.Sa));break;case Qj:a.b&&Jc(a.b)&&(c="SR="+O(a,a.b.Ta,3))}c&&(c+=" ");return c}function qk(a,b){var c,d="";for(c=0;6>c;c++)d+=Z(a,c);d=d+"\n"+(Z(a,6)+Z(a,7));d+=Z(a,Gj)+Z(a,Hj)+Z(a,Jj);d+=pk(a,"T")+pk(a,"N")+pk(a,"Z")+pk(a,"V")+pk(a,"C");b&&(b=d,c=""+(Z(a,Kj)+Z(a,Lj)),c+=Z(a,Mj)+Z(a,Nj)+Z(a,Ij),c=c+"\n"+(Z(a,Qj)+Z(a,Oj)+Z(a,Pj)),d=b+("\n"+c));return d}h.dd=function(a,b){return a[0]>b[0]?1:a[0]<b[0]?-1:0};
function wh(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],r=ab(n,l,a.dd);0>r&&n.splice(-(r+1),0,l)}m&&(k.a=m.replace(/''/g,'"'))}a.B.push({xh:b,K:c,Qd:d,ga:e,ad:f})}function rk(a,b,c){var d=[],e=vj(b)>>>0;for(b=0;b<a.B.length;b++){var f=a.B[b],g=f.K>>>0,k=f.Qd;if(e>=g&&e<g+k){e=ab(f.ad,[e-g],a.dd);0<=e?sk(a,b,e,d):c&&(e=~e,sk(a,b,e-1,d),sk(a,b,e,d));break}}return d}
function sk(a,b,c,d){var e={},f=a.B[b].ad,g=0,k=null;0<=c&&c<f.length&&(g=f[c][0],k=f[c][1]);k&&(e=a.B[b].ga[k],k="."==k.charAt(0)?null:e.l||k);d.push(k);d.push(g);d.push(e.a);d.push(e.c)}function tk(a,b){var c=b.match(/^\s*([A-Z_]?[A-Z0-9_]*)\s*(=?)\s*(.*)$/i);if(c){if(!c[1])return pj(a)||a.v("no variables"),!0;if(!c[2])return pj(a,c[1]);if(!c[3])return delete a.T[c[1]],!0;b=kj(a,c[3]);return void 0!==b?(a.T[c[1]]=b,!0):!1}a.v("invalid assignment:"+b);return!1}
function uk(a,b,c){var d=null;if(b=Aj(a,b,!0)){var e=rk(a,b,!0);if(e.length){var f,g;e[0]&&(g="",(f=b.K-e[1])&&(g=" + "+Pa(f)),f=e[0]+" ("+O(a,e[1])+")"+g,c&&a.v(f),d=f);4<e.length&&e[4]&&(g="",(f=e[5]-b.K)&&(g=" - "+Pa(f)),f=e[4]+" ("+O(a,e[5])+")"+g,c&&a.v(f),d||(d=f))}else c&&a.v("no symbols")}return d}
function Vj(a,b){var c;if(b&&"?"==b[1])a.v("register commands:"),a.v("\tr\tdump registers"),a.v("\trm\tdump misc registers"),a.v("\trx [#]\tset flag or register x to [#]");else{var d=!1,e=a.f;null==c&&(c=!0);if(b&&1<b.length){var f=b[1];if("m"==f)d=!0;else{var g=f.indexOf("=");if(0<g)b=f.substr(g+1),f=f.substr(0,g);else if(2<b.length)b=b[2];else{a.v("missing value for "+b[1]);return}g=kj(a,b);if(void 0===g)return;b=f.toUpperCase();switch(b){case "SP":case "R6":e.g[6]=g&65535;break;case "PC":case "R7":te(e,
g);a.H=V(e.g[7]);break;case "N":e.I=g?32768:0;break;case "Z":e.L=g?0:1;break;case "V":e.H=g?32768:0;break;case "C":e.F=g?65536:0;break;case "PS":wd(e,g);break;case "PI":ud(e,g);break;case "ER":e.R=g;d=!0;break;case "SL":e.za=g|255;break;case "M0":qd(e,g);d=!0;break;case "M3":td(e,g);d=!0;break;case "AR":a.b&&(d=a.b,dc(d,d.fa=g));d=!0;break;case "DR":a.b&&(d=a.b,Vb(d,d.Sa=g));d=!0;break;case "SR":if(a.b&&Jc(a.b)){ec(a.b,g);d=!0;break}default:if("R"==b.charAt(0)&&(b=+b.charAt(1),0<=b&&6>b)){e.g[b]=
g&65535;break}a.v("unknown register: "+f);return}L(a.J);a.v("updated registers:")}}a.v(qk(a,d));c&&(a.H=V(e.g[7]),Wj(a,Dj(a,a.H)))}}function vk(a,b){b=Za(b);var c=b.match(/^(['"])(.*?)\1$/);c?1<c[2].length?a.v(c[2]):oj(a,null,c[2].charCodeAt(0)):kj(a,b,!0)}
function wk(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=mj(a,c,null,!0)||1;var e=0;"tc"==b&&(e=c,c=1);a.pa=b;tb(c,function(){return Ma(a,!0)&&oc(a,e,d,!1)},function(){a.b&&a.b.stop();L(a.J,-1);Ma(a,!1)})}}
function Wj(a,b,c,d){if(b=Aj(a,b,!0)){void 0===d&&(d=1);var e=256;if(void 0!==c)if("l"==c.charAt(0))c=mj(a,c.substr(1)),null!=c&&(d=c);else{d=Aj(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=La(a,!1)||a.I?a.w:null;var g=null!=f?"cycles":null,k=rk(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=dk(a,b,g,f);a.v(f);a.H=b;e-=b.K-l;c++}}}
function ck(a,b,c){var d=!0;try{b.length&&"end"!=b?c||a.v(Uj+b):(a.P&&(a.v("ended assemble at "+Dj(a,a.O)),a.H=a.O,a.P=!1),b="");var e=b.charAt(0);if('"'==e||"'"==e)return!0;a.S=null;if(Ka(a)&&0<b.length){a.P&&(b="a "+Dj(a,a.O)+" "+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 r=
Aj(a,g[1],!0);if(r)if(a.O=r,void 0===g[2])a.v("begin assemble at "+Dj(a,r)),a.P=!0,L(a.J);else{var u;a.v("not supported yet");u=[];if(u.length){for(var t=0;t<u.length;t++)a.Oc(r,u[t],1);a.v(dk(a,a.O))}}break;case "b":a:{var E=g[0],z=g[1],D=b;if("?"==z)a.v("breakpoint commands:"),a.v("\tbp [#]\tset exec breakpoint at addr #"),a.v("\tbr [#]\tset read breakpoint at addr #"),a.v("\tbw [#]\tset write breakpoint at addr #"),a.v("\tbc [#]\tclear breakpoint at addr #"),a.v("\tbl\tlist all breakpoints"),a.v("\tbn [#]\tbreak after # instruction(s)");
else{var F=E.charAt(1);if("l"==F){var gb;gb=0+bk(a,a.g);gb+=bk(a,a.L);(gb+=bk(a,a.F))||a.v("no breakpoints")}else if("n"==F)a.W=mj(a,z),null!=a.W&&a.v("break after "+a.W+" instruction(s)");else if(void 0===z)a.v("missing breakpoint address");else{var W=V();if("*"!=z&&(W=Aj(a,z,!0),!W))break a;"c"==F?null==W.K?(rj(a),a.v("all breakpoints cleared")):Zj(a,a.g,W)||Zj(a,a.L,W)||Zj(a,a.F,W)||a.v("breakpoint missing: "+Dj(a,W)):null!=W.K&&(Cj(a,W,D),"p"==F?a.sb(a.g,W):"r"==F?a.sb(a.L,W):"w"==F?a.sb(a.F,
W):a.v("unknown breakpoint command: "+F))}}}break;case "c":a.Pa&&(a.Pa.value="");break;case "d":a:{var Jb,Ta=g[0],Fa=g[1],Ua=g[2],Wk=g[3];if("?"==Fa){var Kb="";for(Jb in Sb)a.ka[Jb]&&(Kb&&(Kb+=","),Kb+=Jb);Kb+=",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");Kb.length&&a.v("dump extension commands:\n\t"+Kb)}else if("state"==Fa){var Pe=xk(a.J,!0);"console"==Ua?console.log(Pe):(a.Pa&&(a.Pa.value=""),Pe&&a.v(Pe))}else if("symbols"==Fa)for(var Qe=0;Qe<a.B.length;Qe++){var Re=a.B[Qe],Lb;for(Lb in Re.ga)if("."!=Lb.charAt(0)){var mi=Re.ga[Lb].o;if(void 0!==mi){var ni=Re.ga[Lb].l;ni&&(Lb=ni);a.v(O(a,mi)+" "+Lb)}}}else{if("d"==Ta){for(Jb in Sb)if(g[1]==Jb){var oi=a.ka[Jb];oi?(g.shift(),g.shift(),
oi(g)):a.v("no dump registered for "+Fa);break a}Fa||(Ta=a.Ia||"dw")}else a.Ia=Ta;if("dh"==Ta){var pi=Fa,qi=Ua,ri="",si=0,wa=a.R,Ga=a.i;if(Ga.length){var qa=+pi||a.oa,tc=+qi||10;isNaN(qa)?qa=tc:ri="more ";qa>Ga.length&&(a.v("note: only "+Ga.length+" available"),qa=Ga.length);wa-=qa;0>wa&&(null==Ga[Ga.length-1].K?(qa=wa+qa,wa=0):wa+=Ga.length);var Se=[];"call"==qi&&(tc=1E5,Se=["CALL"]);for(void 0!==pi&&a.v(qa+" instructions earlier:");0<tc&&wa!=a.R;){var ti=Ga[wa++];if(null==ti.K)break;var uc=V(ti.K),
Xk=qa--,ui=dk(a,uc,"history",Xk);(!Se.length||0<=ui.indexOf(Se[0]))&&a.v(ui);uc.Bc&&(wa+=uc.Bc,tc-=uc.Bc,qa-=uc.Bc);wa>=Ga.length&&(wa=0);a.oa=qa;si++;tc--}}si||(a.v("no "+ri+"history available"),a.oa=void 0)}else{var ga=Aj(a,Fa);if(ga)if("da"==Ta){var Te=ga.Ka||65535<ga.K,K=Ie(a.f,ga.K||0,Te);a.v(Ya("",Te?12:19)+Na(ga.K,Te?22:17,3)+" "+H(ga.K,8));6>K.length?(2<K.length&&(a.v(" OFFSET: "+Na(K[3],13,3)+" "+H(K[3],8)),a.v("UNIMAP["+Oa(K[1])+"]: "+Na(K[2],22,3)+" "+H(K[2],8))),a.v(" PHYSICAL: "+
Na(K[0],22,3)+" "+H(K[0],8))):(a.v(" OFFSET: "+Na(K[1],13,3)+" "+H(K[1],8)),a.v("+ "+yk[K[2]]+"PAR"+K[3]+": "+Na(K[4],22,3)+" "+H(K[4],8)),a.v("& MMUMASK: "+Na(K[5],22,3)+" "+H(K[5],8)),a.v("= PHYSICAL: "+Na(K[0],22,3)+" "+H(K[0],8)))}else{var ib=0,Ue="ds"==Ta;if(Ua){if("l"==Ua.charAt(0))Ua=Ua.substr(1)||Wk,ib=mj(a,Ua);else{var vi=Aj(a,Ua);vi&&(ib=vi.K-ga.K)}0>ib&&(ib=0);65536<ib&&(ib=65536)}var Zk=a.Ca;ga.Ca&&(a.Ca=ga.Ca);for(var jb="dd"==Ta?4:"db"==Ta?1:2,xd=jb*ib||128,Ve=
Ue?16:a.Ca,$k=(xd+Ve-1)/Ve|0||1,kb="";$k--&&0<xd;){for(var lb="",We="",Fa=Dj(a,ga),yd=Ve,vc=0,wc=0;0<yd&&0<xd;){var Mb=1,zd=1==jb?a.Nc(ga,Mb):a.Oa(ga,Mb=2),vc=vc|zd<<(wc<<3),wc=wc+Mb;wc==jb&&(Ue?(lb&&(lb+=","),lb+="0x"+I(vc,2*jb)):(lb+=O(a,vc,jb),lb+=1==jb?9==yd?"-":" ":" "),vc=wc=0);yd-=Mb;for(xd-=Mb;1==jb&&Mb--;)var Xe=zd&255,We=We+(32<=Xe&&128>Xe?String.fromCharCode(Xe):"."),zd=zd>>8}kb&&(kb+="\n");kb=Ue?kb+(lb+","):kb+(Fa+": "+lb+(yd?"":" "+We))}kb&&a.v(kb);a.za=ga;a.Ca=Zk}}}}break;case "e":if("else"==
g[0])break;var Nb,Ye,Ze,$e,af=g[0],bf=g[1];"eb"==af?(Nb=1,Ye=255,Ze=a.Nc,$e=a.Oc):"e"==af||"ew"==af?(Nb=2,Ye=65535,Ze=a.Oa,$e=a.yd):bf=null;if(null==bf)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 Ad=Aj(a,bf);if(Ad)for(var Bd=2;Bd<g.length;Bd++){var xc=kj(a,g[Bd]);if(void 0===xc){a.v("unrecognized value: "+g[Bd]);break}xc&~Ye&&a.v("warning: "+I(xc)+" exceeds "+Nb+"-byte value");a.v("changing "+Dj(a,Ad)+(B(a,16)?
"":" from "+O(a,Ze.call(a,Ad),Nb))+" to "+O(a,xc,Nb));$e.call(a,Ad,xc,Nb)}}break;case "g":a:{var wi=g[1],al=b;if(void 0!==wi){var cf=Aj(a,wi,!0);if(!cf)break a;Cj(a,cf,al);a.sb(a.g,cf,!0)}Sj(a,!0,c)}break;case "h":a.A.U?(c||a.v("halting"),a.Z()):La(a,!0)||c||a.v("already halted");break;case "i":if("if"==g[0]){var df;var yc=b.substr(2),yc=Za(yc);kj(a,yc)?(c||a.v("true: "+yc),df=!0):(c||a.v("false: "+yc),df=!1);df||(d=!1);break}f=!0;break;case "k":var bl=g[0];if("?"==g[1])a.v("stack trace commands:"),
a.v("\tk\tshow frame addresses"),a.v("\tks\tshow symbol information");else{var ef=0,ff=V(),zc=V(a.f.g[6]);for(a.v("stack trace for "+Dj(a,zc));10>ef;){for(var mb=null,cl=256;65536>zc.K>>>0;){ff.K=a.Oa(zc,2);if(null==zc.K||!cl--)break;if(!(ff.K&1)){for(var dl=a,Cd=ff,xi=null,Ac=Cd.K,yi=Ac,gf=1;6>=gf&&Ac;gf++){if(2<gf){Cd.K=Ac;var Dd=dk(dl,Cd);if(0<=Dd.indexOf("JSR")){var zi=Dd.indexOf(" ");if(Ac+(Dd.indexOf(" ",zi+1)-zi-1)/2==yi){xi=Dd;break}}}Ac-=2}Cd.K=yi;if(mb=xi)break}}if(!mb||null==mb)break;var Ai=
null;if("ks"==bl){var Bi=mb.match(/[0-9A-F]+$/);Bi&&(Ai=uk(a,Bi[0]))}mb=Ya(mb,50)+" ;"+(Ai||"stack="+Dj(a,zc));a.v(mb);ef++}ef||a.v("no return addresses found")}break;case "l":if("ln"==g[0]){uk(a,g[1],!0);break}f=!0;break;case "m":a:{var Ha,Ia=null,N=g[1];"?"==N&&(N=void 0);if(void 0!==N){var Va=0;if("all"==N)Va=1879046143,N=null;else if("on"==N)Ia=!0,N=null;else if("off"==N)Ia=!1,N=null;else{"keys"==N&&(N="key");"kbd"==N&&(N="keyboard");for(Ha in Sb)if(N==Ha){Va=Sb[Ha];Ia=!!(a.ja&Va);break}if(!Va){a.v("unknown message category: "+
N);break a}}if(Va)if("on"==g[2])a.ja|=Va,Ia=!0;else if("off"==g[2]&&(a.ja&=~Va,Ia=!1,1073741824==Va)){for(var Ci=1E3<=a.M.length?a.M.length-1E3:0;Ci<a.M.length;)a.v(a.M[Ci++]);a.M=[]}}var el=0,Bc="";for(Ha in Sb)if(!N||N==Ha){var fl=!!(a.ja&Sb[Ha]);if(null===Ia||Ia==fl)Bc&&(Bc+=","),++el%10||(Bc+="\n\t"),"key"==Ha&&(Ha="keys"),Bc+=Ha}void 0===N&&a.v("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.v((null!==Ia?Ia?"messages on: ":"messages off: ":"message categories:\n\t")+
(Bc||"none"));sj(a)}break;case "p":if("print"==g[0]){vk(a,b.substr(5));break}var gl=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 Di="pr"==gl?1:0,Ei=1+Di;if(a.I)a.v("step in progress");else{var Ed=V(a.f.g[7]),Ob=a.Oa(Ed);3==Ob||4==Ob||34816==(Ob&65280)||32256==(Ob&65024)||35072==(Ob&65280)?(a.I=Ei,Bj(Ed,2)):2048==(Ob&65024)&&(dk(a,Ed),a.I=Ei);a.I?(a.sb(a.g,Ed,!0),Sj(a)||(a.J&&je(a.J),a.I=0)):wk(a,Di?"tr":
"t")}}break;case "r":if("reset"==b){a.J&&a.J.reset();break}Vj(a,g);break;case "s":a:switch(g[1]){case "base":if(g[2]){var Cc=+g[2];if(8==Cc||10==Cc||16==Cc)a.Ca=Cc;else{a.v("invalid base: "+Cc);break}}a.v("default base: "+a.Ca);break;case "cs":var Dc;void 0!==g[3]&&(Dc=+g[3]);switch(g[2]){case "int":a.f.Cb=Dc;break;case "start":a.f.Wb=Dc;break;case "stop":a.f.Eb=Dc;break;default:a.v("unknown cs option");break a}void 0!==Dc&&be(a.f);a.v("checksums "+(a.f.A.Bb?"enabled":"disabled"));break;case "sp":void 0!==
g[2]&&(ge(a.f,+g[2])||a.v("warning: using 1x multiplier, previous target not reached"));a.v("target speed: "+(a.f.qb.toFixed(2)+"Mhz")+" ("+a.f.eb+"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":wk(a,
g[0],g[1]);break;case "u":Wj(a,g[1],g[2],8);break;case "v":if("var"==g[0]){tk(a,b.substr(3))||(d=!1);break}if("ver"==g[0]){a.v((Fb||"PDP11")+" version 1.32.2 ("+a.f.ka+",RELEASE"+(Hb?",TYPEDARRAYS":Gb?",BYTEARRAYS":",LONGARRAYS")+")");a.v(window?window.navigator.userAgent:"");break}f=!0;break;case "?":if(g[1]){vk(a,b.substr(1));break}var hf="commands:",jf;for(jf in zk)hf+="\n"+Ya(jf,9)+zk[jf];qf(a)||(hf+="\nnote: history disabled if no exec breakpoints");a.v(hf);break;default:f=!0}f&&(a.v("unknown command: "+
b),d=!1)}}catch(Gi){a.v("debugger error: "+(Gi.stack||Gi.message)),d=!1}return d}function ee(a,b,c){b=ij(a,b,c);for(var d in b)if(!ck(a,b[+d]))return!1;return!0}
var zk={"?":"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"},fk=".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(" "),
Gj=20,Hj=21,Ij=22,Jj=23,Kj=24,Lj=25,Mj=26,Nj=27,Oj=28,Pj=29,Qj=30,Ej={SP:6,PC:7,PS:Gj,PI:Hj,ER:Ij,SL:Jj,M0:Kj,M1:Lj,M2:Mj,M3:Nj,AR:Oj,DR:Pj,SR:Qj},yk="KI KD SI SD ?? ?? UI UD".split(" "),mk=7,nk=56,Y=nk|mk,lk=4032,X=4096,hk=8192,ik=12288,jk=24576,kk=32768,gk=61440,uj={61440:{4096:[62,lk,Y],8192:[47,lk,Y],12288:[18,lk,Y],16384:[14,lk,Y],20480:[16,lk,Y],24576:[3,lk,Y],36864:[63,lk,Y],40960:[48,lk,Y],45056:[19,lk,Y],49152:[15,lk,Y],53248:[17,lk,Y],57344:[94,lk,Y]},65024:{2048:[57,448,Y],28672:[100,Y,
448],29184:[101,Y,448],29696:[102,Y,448],30208:[103,Y,448],30720:[104,448,Y],32256:[105,448,hk]},65280:{256:[27,X],512:[24,X],768:[10,X],1024:[11,X],1280:[22,X],1536:[12,X],1792:[20,X],32768:[25,X],33024:[23,X],33280:[13,X],33536:[21,X],33792:[28,X],34048:[29,X],34304:[8,X],34560:[9,X],34816:[106,kk],35072:[107,kk]},65472:{64:[56,Y],192:[95,Y],2560:[39,Y],2624:[49,Y],2688:[53,Y],2752:[51,Y],2816:[67,Y],2880:[1,Y],2944:[77,Y],3008:[97,Y],3072:[73,Y],3136:[71,Y],3200:[6,Y],3264:[4,Y],3328:[58,jk],3392:[60,
Y],3456:[65,Y],3520:[96,Y],35328:[40,Y],35392:[50,Y],35456:[54,Y],35520:[52,Y],35584:[68,Y],35648:[2,Y],35712:[78,Y],35776:[98,Y],35840:[74,Y],35904:[72,Y],35968:[7,Y],36032:[5,Y],36096:[66,Y],36160:[59,Y],36224:[64,Y],36288:[61,Y]},65528:{128:[76,mk],152:[108,ik]},65535:{0:[55],1:[99],2:[75],3:[26],4:[109],5:[70],6:[110],7:[111],160:[69],161:[31],162:[41],163:[33],164:[45],165:[36],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]}},ek=[0],yj=[58,60,65,96,110,100,101,102,103,104,105],zj=[108,59,64],Rj=1E3,Uj=">> ";wb(function(){for(var a=y(document,x,"debugger"),b=0;b<a.length;b++){var c=a[b],d=w(c),d=new qj(d);Da(d,c)}});
function Ak(a,b,c){q.call(this,"Computer",a,0,33554432);this.A.ha=!1;this.P=null;Bk(this,b);this.M=$d(this,"autoPower",a,6);this.j=0;this.T=+a.busWidth||+a.buswidth;this.I=this.H=this.L=null;this.F=this.S=!1;this.w=this.u=null;this.R=this.B=this.O=!1;this.V=$d(this,"url")||"";(Math.random()+.1).toString(36);this.g=Ck(this);if(this.f=Ca("CPU",this.id)){this.G=Ca("Debugger",this.id);this.D=new Mc({id:this.ob+".bus",busWidth:this.T},this.f,this.G);var d,e=Aa(this.id);if((this.i=Ca("Panel",this.id))&&
this.i.Pa)for(b=0;b<e.length;b++)d=e[b],d.N=this.i.N,d.v=this.i.v,d.Pa=this.i.Pa;this.v(Fb+" v1.32.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.wa&&d.wa(this,this.D,this.f,this.G);this.b=$d(this,"resume",a,4,Dk);var f;b=null;if(a=$d(this,"state")||(f=!0,a.state))this.L=b=a,
f||(this.F=!0,this.b=Dk),this.b&&(this.w=new J(this,"1.32.2"),Ek(this.w)?b=null:delete this.w);!b&&this.b&&(b=Fk(this))&&(this.F=!0);if(b){var g=this;cb(b,null,!0,function(a,b,c){c?(g.H=null,g.F=!1,g.N("Unable to load machine state from server (error "+c+(b?": "+Za(b):"")+")")):(g.I=b,g.S=!0);A(g)})}else A(this);this.C.power||(this.M=!0);!c&&this.M&&Gk(this,this.Vb)}else v("Unable to find CPU component")}p(Ak,q);
function Bk(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.P=b}function $d(a,b,c,d,e){var f=b.toLowerCase(),f=qb(b)||qb(f);void 0===f&&a.P&&(f=a.P[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Gk(a,b,c){for(var d=Aa(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!Ka(f)){Ka(f,function(){Gk(a,b,c)});return}}b.call(a,c)}function Hk(a,b){var c=new J(a,"1.32.2",Ik);if(Ek(c)&&Jk(c)){var d=c.get(Kk),e=b?b.get(Kk):"unknown";d!=e&&(a.N("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Ak.prototype;
h.Vb=function(a){void 0===a&&(a=this.b||(this.I?Lk:Dk));if(!this.j){this.j++;var b=!1,c=!1;this.O=!1;var d=this.w||new J(this,"1.32.2");if(a==Mk)b=!0;else if(a>Dk){if(Ek(d,this.I)){this.u=new J(this,"1.32.2",Nk);Ek(this.u)&&(Ok(this,d),a=Pk,Qk(this.u));this.u.set(Kk,bb());Rk(this.u);var e=this.b&&!this.F;if(a==Lk||za("Click OK to restore the previous "+Fb+" machine state, or CANCEL to reset the machine.")){if(c=Jk(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ek(d,g):("error"==f&&"no machine state"!=
g?(this.N("Error: "+g),"unable to verify user"==g&&(ob(Sk,""),this.g=null)):this.v(f+": "+g),Qk(d),Ek(d)?(c=Jk(d),e=!0):c=!1))}e&&Hk(this,c?d:null)}else a==Pk&&d.clear()}else Hk(this);delete this.I;delete this.w}e=Aa(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.f&&(c=Tk(this,g,d,b,c));b=[d,a,c];a!=Mk?Gk(this,this.ed,b):this.ed(b)}};
function Tk(a,b,c,d,e){if(!b.A.ha){b.A.ha=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ya(f,d)&&f&&(v("Unable to restore state for "+b.type),a.L&&!a.S?(c.clear(),a.b=Dk,window&&window.location.reload()):a.O=!0,b.ya(null),e=!1),!d&&b.Sc){var g=b.Sc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.ed=function(a){var b=a[0],c=0>a[1];a=a[2];this.R=!0;this.A.ha=!0;var d=this.C.power;d&&(d.textContent="Shutdown");this.f&&(Tk(this,this.f,b,c,a),L(this,-2),this.f.va());this.O&&(Ok(this,b),b.clear());!c&&this.u&&(this.u.clear(),delete this.u);this.j=0};
function Ok(a,b){if(za("There may be a problem with your "+Fb+" machine.\n\nTo help us diagnose it, click OK to send this "+Fb+" machine state to http://www.pcjs.org.")){var c=a.V;a=a.g||"";b=b.toString();var d={};d.app=Fb;d.ver="1.32.2";d.url=c;d.user=a;d.type="bug";d.data=b;cb("http://www.pcjs.org/api/v1/report",d,!0)}}
function xk(a,b,c){var d,e="none";if(a.j)return null;a.j--;var f=new J(a,"1.32.2"),g=new J(a,"1.32.2",Ik),k=bb();g.set(Kk,k);f.set(Kk,k);f.set(Uk,"1.32.2");f.set(Vk,window?window.location.href:null);f.set(Yk,window?window.navigator.userAgent:"");a.f&&a.f.xa&&(c&&(b&&(a.f.A.va=a.f.A.U),a.f.Z()),d=a.f.xa(b,c),"object"===typeof d&&f.set(a.f.id,d),c&&(a.f.A.ha=!1,!1===d&&(e=null)));for(var k=Aa(a.id),l=0;l<k.length;l++){var m=k[l];m.A.ha&&(m.xa&&(d=m.xa(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.A.ha=
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.g&&hl(a,a.g,f.toString()),Rk(g)&&Rk(f)||(e=null,d=k=!0)):a.b&&(d=!0,k=a.b==il),d&&f.clear(k)):e=f.toString());c&&(a.A.ha=!1,b=a.C.power)&&(b.textContent="Power");a.j=0;return e}
h.reset=function(){this.D&&this.D.reset&&(C(this,"Resetting "+this.D.type),this.D.reset());this.f&&this.f.reset&&(C(this,"Resetting "+this.f.type),this.f.reset());for(var a=Aa(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.D&&c!==this.f&&c.reset&&(C(this,"Resetting "+c.type),c.reset())}L(this,-1)};h.start=function(a,b){for(var c=Aa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}L(this,-1)};
h.stop=function(a,b){for(var c=Aa(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}L(this,-1)};
function L(a,b){if(a.f){var c=a.f,d=b||0,e=c.C.speed;e&&(0>=d||30<=(c.rc+=d))&&(e.textContent=c.A.U?c.pb.toFixed(2)+"Mhz":"Stopped",c.rc=0)}if(a.i&&(a=a.i,b=b||0,a.u)){c=a.f.A.U;d=!!(a.f.i&8);if(0>=b||60<=(a.j+=b)){for(e=0;e<a.f.g.length;e++)hc(a,"R"+e,a.f.g[e]);e=vd(a.f);hc(a,"PS",e);hc(a,"NF",e&8?1:0,1);hc(a,"ZF",e&4?1:0,1);hc(a,"VF",e&2?1:0,1);hc(a,"CF",e&1?1:0,1);a.j=0}-1>b?a.fa=a.f.g[7]:0<b&&c&&!d&&(a.fa=a.f.ab);dc(a,a.fa);Vb(a,a.Sa);b=a.f;b=b.Ia?b.T&16?1:2:4;Ic(a,"B22",b&1);Ic(a,"B18",b&2);
Ic(a,"B16",b&4)}}
h.sa=function(a,b,c){var d=this;switch(b){case "power":return this.C[b]=c,c.onclick=function(){d.j||(d.A.ha?xk(d,!1,!0):Gk(d,d.Vb))},!0;case "reset":return this.C[b]=c,c.onclick=function(){if(d.A.ha&&!d.j)if(d.b&&!d.H){var a=za("Click OK to save changes to this "+Fb+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");xk(d,a,!0);!a&&d.L?window&&window.location.reload():(a||(d.B=!0),d.Vb(Dk),d.B=!1)}else d.reset(),d.f&&d.f.va()},!0;case "save":if(Sa(eb(),"pcjs.org"))c.parentNode.removeChild(c);else return this.C[b]=
c,c.onclick=function(){var a=Ck(d,!0);if(a){var b=!!(d.b&&!d.H||d.L),c=xk(d,b);b?hl(d,a,c):d.N("Resume disabled, machine state not saved")}},!0}return!1};function Ck(a,b){var c=a.g;c||((c=nb(Sk),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=jl(a,c))||a.N("The user ID is invalid.")):b&&a.N("Browser local storage is not available"));return c}
function jl(a,b){a.g=null;b=cb(eb()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(ob(Sk,b.data),a.g=b.data)}catch(d){v(d.message+" ("+c+")")}return a.g}function Fk(a){var b=null;a.g&&(b=eb()+"/api/v1/user?req=load&user="+a.g+"&state="+kl(a,"1.32.2"));return b}
function hl(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=kl(a,"1.32.2");d.data=c;b=cb(eb()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.N("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.N(c),ob(Sk,""),a.g=null)}}
function Nh(a){var b;a=Aa(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function je(a,b){if(a.Pa){var c=0,d=0;!b&&window&&(c=window.scrollX,d=window.scrollY);a.Pa.focus();!b&&window&&window.scrollTo(c,d)}}var Nk="failsafe",Ik="validate",Kk="timestamp",Uk="version",Vk="url",Yk="browser",Sk="user",Mk=-1,Dk=0,Lk=1,Pk=2,il=3;
wb(function(){for(var a=y(document,x+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=w(c),c=y(c,x,"computer"),e=0;e<c.length;e++){var f=c[e],g=w(f),g=new Ak(g,d,!0);Da(g,f);g.M&&Gk(g,g.Vb)}});xb.show.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Ca("Computer",c.id))&&c.R&&!c.A.ha&&c.Vb(Mk)}});xb.exit.push(function(){for(var a=y(document,x,"computer"),b=0;b<a.length;b++){var c=w(a[b]);(c=Ca("Computer",c.id))&&c.A.ha&&xk(c,!(!c.b||c.H),!0)}});
function J(a,b,c){this.id=a.id;this.b="";this.f={};this.g=this.C=!1;this.key=kl(a,b,c);Qk(this,a.Fd)}h=J.prototype;h.set=function(a,b){try{this.f[a]=b}catch(c){}};h.get=function(a){return this.f[a]||null};h.data=function(){return this.f};function Ek(a,b){return b?(a.b=b,a.g=!0,a.C=!1,!0):a.g?!0:fb()&&(b=nb(a.key))?(a.b=b,a.g=!0):!1}function Jk(a){var b=!0;if(!a.C)try{a.f=JSON.parse(a.b),a.C=!0}catch(c){v(c.message||c),b=!1}return b}
function Rk(a){var b=!0;if(fb()){var c=JSON.stringify(a.f);ob(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.f?JSON.stringify(this.f):this.b};function Qk(a,b){a.b="";a.f={};a.g=a.C=!1;b&&a.set("parms",b)}
h.clear=function(a){Qk(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function kl(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var ll=0;
function ml(a,b,c,d,e,f){e("Loading "+a+"...");cb(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):nl(k,a,b,c,d,e,f)})}
function nl(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(va(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(n){f=null,a=n.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?ol(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function ol(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");cb(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);ol(a,b,c)}})}else c(a,null)}
function pl(a,b,c,d){function e(a){if(void 0===k){var b=g&&y(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=Wa(a))}function f(a){e("Error: "+a);l&&(--ll||Ab(!0));l=!1}var g,k,l=!0;ll++;xa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css";r.styleSheet?r.styleSheet.cssText=m:r.appendChild(document.createTextNode(m));n.appendChild(r)}c||
(c="/versions/pdpjs/1.32.2/components.xsl");m=function(d,k){k?ml(c,null,null,!1,e,function(d,l){l?(va(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--ll||Ab(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ll||Ab(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?ml(b,a,d,!0,e,m):nl(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(u){f(u.message)}return l}window.embedPDP11=function(a,b,c,d){Ab(!1);return pl(a,b,c,d)};window.findMachineComponent=function(a,b){return Ca(b,a+".machine")};window.enableEvents=Ab;window.sendEvent=Cb;})();//# sourceMappingURL=/tmp/pdpjs/1.32.2/pdp11-dbg.map

View file

@ -37,13 +37,13 @@ function fa(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("
function n(a,b){function c(){}c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a;for(var d in b)if(Object.defineProperties){var e=Object.getOwnPropertyDescriptor(b,d);e&&Object.defineProperty(a,d,e)}else a[d]=b[d]}for(var ja=ba,ka=["Math","log2"],la=0;la<ka.length-1;la++){var ma=ka[la];ma in ja||(ja[ma]={});ja=ja[ma]}var na=ka[ka.length-1],oa=ja[na],pa=oa?oa:function(a){return Math.log(a)/Math.LN2};pa!=oa&&null!=pa&&aa(ja,na,{configurable:!0,writable:!0,value:pa});
var qa={163840:[40,1,8,,254],184320:[40,1,9,,252],327680:[40,2,8,,255],368640:[40,2,9,,253],737280:[80,2,9,,249],1228800:[80,2,15,,249],1474560:[80,2,18,,240],2949120:[80,2,36,,240],21368320:[615,4,17],2494464:[203,2,12,512],5242880:[256,2,40,256],10485760:[512,2,40,256]},q={Hf:0,Hc:1,Jf:2,Kf:3,Lf:4,Mf:5,Nf:6,Of:7,kc:8,Pf:9,Ic:10,Qf:11,Rf:12,Jc:13,Sf:14,Tf:15,Uf:16,Vf:17,Wf:18,Xf:19,Yf:20,Zf:21,$f:22,ag:23,bg:24,cg:25,dg:26," ":32,"!":33,'"':34,"#":35,$:36,"%":37,"&":38,"'":39,"(":40,")":41,"*":42,
"+":43,",":44,"-":45,".":46,"/":47,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,":":58,";":59,"<":60,"=":61,">":62,"?":63,"@":64,jc:65,Gf:66,If:67,eg:68,E:69,fg:70,gg:71,hg:72,ig:73,jg:74,kg:75,lg:76,mg:77,ng:78,og:79,pg:80,Q:81,qg:82,rg:83,sg:84,tg:85,ug:86,vg:87,wg:88,xg:89,Uc:90,"[":91,"\\":92,"]":93,"^":94,_:95,"`":96,yg:97,zg:98,Ag:99,d:100,e:101,Bg:102,Cg:103,Dg:104,Eg:105,Hg:106,k:107,Ig:108,Jg:109,n:110,Kg:111,p:112,q:113,r:114,Lg:115,t:116,Mg:117,Ng:118,Og:119,x:120,y:121,z:122,"{":123,
"|":124,"}":125,"~":126,Kc:127};function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.oc=b.comment;this.Tc=b;this.exports={};this.j=this.bindings={};a=this.id.indexOf(".");0>a?this.Ma=this.id:(this.Na=this.id.substr(0,a),this.Ma=this.id.substr(a+1));this.l={ready:!1,Ua:!1,ac:!1,S:!1,error:!1};this.Db=null;this.l.error=!1;this.Rc=d||0;this.C=this.c=this.u=this.A=this.bb=null;u.push(this)}function ra(a,b,c){sa[a]&&b&&(sa[a][b]=c)}
"|":124,"}":125,"~":126,Kc:127};function r(a,b,c,d){this.type=a;b||(b={id:"",name:""});this.id=b.id||"";this.name=b.name;this.oc=b.comment;this.Tc=b;this.exports={};this.j=this.bindings={};a=this.id.indexOf(".");0>a?this.Ma=this.id:(this.Na=this.id.substr(0,a),this.Ma=this.id.substr(a+1));this.l={ready:!1,Ua:!1,ac:!1,T:!1,error:!1};this.Db=null;this.l.error=!1;this.Rc=d||0;this.D=this.c=this.v=this.A=this.bb=null;u.push(this)}function ra(a,b,c){sa[a]&&b&&(sa[a][b]=c)}
function ta(){return Date.now()||+new Date}function v(a){window&&window.alert(a)}function ua(a){var b=!1;window&&(b=window.confirm(a));return b}function y(a){var b,c=[];a&&(a=0<(b=a.indexOf("."))?a.substr(0,b+1):"");for(b=0;b<u.length;b++){var d=u[b];a&&d.id.indexOf(a)||c.push(d)}return c}function va(a){if(void 0!==a){var b;for(b=0;b<u.length;b++)if(u[b].id===a)return u[b]}return null}
function wa(a,b){var c;if(void 0!==a){var d;b&&(b=0<(d=b.indexOf("."))?b.substr(0,d+1):"");for(d=0;d<u.length;d++)if(c)c==u[d]&&(c=null);else if(!(a!=u[d].type||b&&u[d].id.indexOf(b)))return u[d]}return null}function z(a){var b=null;if(a=a.getAttribute("data-value"))try{b=eval("("+a+")")}catch(c){v(c.message+" ("+a+")")}return b}
function A(a,b){var c=B;b=C(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=z(g))&&k.binding&&a.ga(k.type,k.binding,g,k.value),m=l.length}}}}
function A(a,b){var c=B;b=C(b.parentNode,c+"-control");for(var d=0;d<b.length;d++)for(var e=b[d].childNodes,f=0;f<e.length;f++){var g=e[f];if(1===g.nodeType){var k=g.getAttribute("class");if(k)for(var l=k.split(" "),m=0;m<l.length;m++)switch(k=l[m],k){case c+"-binding":(k=z(g))&&k.binding&&a.ha(k.type,k.binding,g,k.value),m=l.length}}}}
function C(a,b,c){c&&(b+="-"+c+"-object");if(a.getElementsByClassName)return a.getElementsByClassName(b);var d;c=[];a=a.getElementsByTagName("*");var e=new RegExp("(^| )"+b+"( |$)");b=0;for(d=a.length;b<d;b++)e.test(a[b].className)&&c.push(a[b]);return c}h=r.prototype;h.toString=function(){return this.name?this.name:this.id||this.type};
h.ga=function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.bb=this.j[b]=c,c.value="",this.X=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.B=function(a){this.X(a,this.Ma)}),!0;default:return!1}};h.log=function(){};h.X=function(){};
h.status=function(a){this.X(this.Ma+": "+a)};h.B=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function xa(a,b){a.l.error=!0;a.B(b)}function ya(a,b){b&&(a.l.ready?b():a.Db=b);return a.l.ready}function D(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.Db,a.Db=null,b&&b()))}function za(a,b){a.l.ac?(a.l.Ua=!1,a.l.ac=!1):a.l.error?a.X(a.toString()+" error"):a.l.Ua=b}h.ea=function(){return this.l.S=!0};h.da=function(a,b){b&&(this.l.S=!1);return!0};
h.ha=function(a,b,c){switch(b){case "clear":return this.j[b]||(this.j[b]=c,c.onclick=function(a){return function(){a.j.print&&(a.j.print.value="")}}(this)),!0;case "print":return this.j[b]||(this.bb=this.j[b]=c,c.value="",this.Z=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.B=function(a){this.Z(a,this.Ma)}),!0;default:return!1}};h.log=function(){};h.Z=function(){};
h.status=function(a){this.Z(this.Ma+": "+a)};h.B=function(a,b,c){c=c||this.type;b||v((c?c+": ":"")+a)};function xa(a,b){a.l.error=!0;a.B(b)}function ya(a,b){b&&(a.l.ready?b():a.Db=b);return a.l.ready}function D(a,b){a.l.error||(a.l.ready=!1!==b,a.l.ready&&(b=a.Db,a.Db=null,b&&b()))}function za(a,b){a.l.ac?(a.l.Ua=!1,a.l.ac=!1):a.l.error?a.Z(a.toString()+" error"):a.l.Ua=b}h.ga=function(){return this.l.T=!0};h.fa=function(a,b){b&&(this.l.T=!1);return!0};
window&&(window.PCjs||(window.PCjs={}),window.PCjs.Machines||(window.PCjs.Machines={}),window.PCjs.Components||(window.PCjs.Components=[]));var sa=window?window.PCjs.Machines:{},u=window?window.PCjs.Components:[];Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){b=b||0;for(var c=this.length;b<c;b++)if(this[b]===a)return b;return-1});Array.isArray||(Array.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)});
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 E(a){var b=10,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==
@ -53,233 +53,239 @@ var Ga={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"},Ia={0:"NUL"
function Ja(){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())}
function G(a,b,c,d){c=void 0===c?!1:c;var e=0,f=null,g=null;if("object"==typeof resources&&(f=resources[a]))return d&&d(a,f,e),[f,e];if(c&&"function"==typeof resources)return resources(a,function(b,c){d&&d(a,b,c)}),g;var k=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");c&&(k.onreadystatechange=function(){4===k.readyState&&(f=k.responseText,200==k.status||!k.status&&f.length&&"file:"==(window?window.location.protocol:"file:")||(e=k.status||-1),d&&d(a,
f,e))});if(b&&"object"==typeof b){var l="",m;for(m in b)b.hasOwnProperty(m)&&(l&&(l+="&"),l+=m+"="+encodeURIComponent(b[m]));l=l.replace(/%20/g,"+");k.open("POST",a,c);k.setRequestHeader("Content-type","application/x-www-form-urlencoded");k.send(l)}else k.open("GET",a,c),"bytes"==b&&k.overrideMimeType("text/plain; charset=x-user-defined"),k.send();c||(f=k.responseText,200!=k.status&&(e=k.status||-1),d&&d(a,f,e),g=[f,e]);return g}
function Ka(a,b){var c,d={O:null,ja:null,aa:null,Z:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.aa=g.load;d.Z=g.exec;if(e=g.bytes)d.O=e;else if(e=g.words)for(d.O=Array(2*e.length),f=c=0;c<e.length;c++)d.O[f++]=e[c]&255,d.O[f++]=e[c]>>8&255;else if(e=g.data)for(d.O=Array(4*e.length),f=c=0;c<e.length;c++)d.O[f++]=e[c]&255,
d.O[f++]=e[c]>>8&255,d.O[f++]=e[c]>>16&255,d.O[f++]=e[c]>>24&255;else d.O=g;d.ja=g.symbols;d.O.length?1==d.O.length&&(v(d.O[0]),d=null):(v("Empty resource: "+a),d=null)}catch(k){v("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.O=e)}return d}
function Ka(a,b){var c,d={O:null,ka:null,ca:null,ba:null};if("["==b.charAt(0)||"{"==b.charAt(0))try{var e,f,g;if("<"==b.substr(0,1))throw Error(b);g=0>b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");d.ca=g.load;d.ba=g.exec;if(e=g.bytes)d.O=e;else if(e=g.words)for(d.O=Array(2*e.length),f=c=0;c<e.length;c++)d.O[f++]=e[c]&255,d.O[f++]=e[c]>>8&255;else if(e=g.data)for(d.O=Array(4*e.length),f=c=0;c<e.length;c++)d.O[f++]=e[c]&
255,d.O[f++]=e[c]>>8&255,d.O[f++]=e[c]>>16&255,d.O[f++]=e[c]>>24&255;else d.O=g;d.ka=g.symbols;d.O.length?1==d.O.length&&(v(d.O[0]),d=null):(v("Empty resource: "+a),d=null)}catch(k){v("Resource data error ("+a+"): "+k.message),d=null}else{e=[];b=b.replace(/\n/gm," ").replace(/ +$/,"").split(" ");for(c=0;c<b.length;c++){f=parseInt(b[c],16);if(isNaN(f)){v("Resource data error ("+a+"): invalid hex byte ("+b[c]+")");break}e.push(f&255)}c==b.length&&(d.O=e)}return d}
function La(){return"http://"+(window?window.location.host:"www.pcjs.org")}function Ma(){if(null==Na){var a=!1;if(window)try{window.localStorage.setItem("PCjs.localStorage","PCjs.localStorage"),a="PCjs.localStorage"==window.localStorage.getItem("PCjs.localStorage"),window.localStorage.removeItem("PCjs.localStorage")}catch(b){a=!1}Na=a}return Na}function Oa(a){var b;if(window)try{b=window.localStorage.getItem(a)}catch(c){}return b}
function Pa(a,b){try{return window.localStorage.setItem(a,b),!0}catch(c){}return!1}function Qa(a){if(window){var b=window?window.navigator.userAgent:"";return"iOS"==a&&!!b.match(/(iPod|iPhone|iPad)/)&&!!b.match(/AppleWebKit/)||"MSIE"==a&&!!b.match(/(MSIE|Trident)/)||0<=b.indexOf(a)}return!1}
function Ra(a){if(!Sa){var b,c={};if(window){b||(b=window.location.search.substr(1));for(var d,e=/\+/g,f=/([^&=]+)=?([^&]*)/g;d=f.exec(b);)c[decodeURIComponent(d[1].replace(e," "))]=decodeURIComponent(d[2].replace(e," "))}Sa=c}return Sa[a]}
function Ta(a,b){var c=null;a="data:application/octet-stream;base64,"+a;b&&(c=document.createElement("a"),"string"!=typeof c.download&&(c=null));c?(c.href=a,c.download=b,document.body.appendChild(c),c.click(),document.body.removeChild(c),b="Check your Downloads folder for "+b+"."):(window.open(a),b="Check your browser for a new window/tab containing the requested data"+(b?" ("+b+")":"")+".");return b}
function Ua(a,b){if(window){var c=window[a];window[a]="function"!==typeof c?b:function(){c&&c();b()}}}function Va(a){Wa.init.push(a)}function Xa(a){if(Ya)try{for(var b=0;b<a.length;b++)a[b]()}catch(c){v(""+("An unexpected exception occurred:\n\n"+c.message+"\n\nPlease send this information to support@pcjs.org. Thanks."))}}function Za(a){!Ya&&a?(Ya=!0,$a&&ab("init"),bb&&ab("show")):Ya=a}function ab(a){Wa[a]&&Xa(Wa[a])}var Sa=null,Wa={init:[],show:[],exit:[]},$a=!1,bb=!1,Ya=!0,Na=null;
Ua("onload",function(){$a=!0;Xa(Wa.init)});Ua("onpageshow",function(){bb=!0;Xa(Wa.show)});Ua(Qa("Opera")||Qa("iOS")?"onunload":"onbeforeunload",function(){Xa(Wa.exit)});var cb="undefined"!==typeof ArrayBuffer,B="pdp11",db="PDPjs",eb=!0,fb=!0,gb={48:"DL11R",52:"DL11X",56:"PC11R",60:"PC11X",64:"KW11",112:"RL11",144:"RK11"},B="pdp11",db="PDPjs",fb=eb=!0;
function hb(a,b){r.call(this,"Panel",a,0,512);this.i=this.m=0;this.D=b;this.la=this.g=this.b=this.h=0;this.s=this.v=this.o=!1;this.w=ib;this.f={};this.a={START:[1,1,!0,!1,this.md],STEP:[1,1,!1,!1,this.nd],ENABLE:[1,1,!1,!1,this.hd],CONT:[1,1,!0,!1,this.fd],DEP:[0,0,!0,!1,this.gd],EXAM:[1,1,!0,!1,this.jd],LOAD:[1,1,!0,!1,this.ld],TEST:[0,0,!0,!1,this.kd]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.od,a];this.C=this.c=this.u=this.A=null;D(this)}n(hb,r);h=hb.prototype;h.reset=function(){this.stop()};
h.ga=function(a,b,c,d){if(this.A&&this.A.ga(a,b,c,d)||this.c&&this.c.ga(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.j[b]=c,this.m++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.f[b]=d?1:0,this.m++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){jb(a,
b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){kb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){jb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){kb(a,b)}}(this,b),!0):r.prototype.ga.call(this,a,b,c,d)}};h.ca=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.C=d;lb(b,this,mb);nb(b,this.reset.bind(this));ob(this);pb(this)};h.ea=function(a,b){b||(this.D&&qb(),this.reset());return!0};h.da=function(){return!0};
function rb(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function ob(a,b){for(var c in a.f)rb(a,c,null!=b?b:a.f[c])}function sb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}function pb(a){for(var b in a.a)sb(a,b,a.a[b][1])}function tb(a,b,c,d){a.j[b]&&(void 0===c&&(xa(a,"Value for "+b+" is invalid"),H(a.c)),c=8==(a.C&&a.C.h||8)?Aa(c,d):Ba(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}
function jb(a,b){var c=a.a[b];sb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=ub&&(a.s=b==vb,a.v=b==wb)}function kb(a,b){var c=a.a[b];c[2]&&c[3]&&(sb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}h.md=function(a){a||this.c.l.N||(a=this.c,a.u.reset(),xb(a),this.a[yb]&&this.a[yb][1]&&zb(this.c))};h.nd=function(){};h.hd=function(a){a||H(this.c)};
h.fd=function(a){if(!a&&!this.c.l.N)if(this.a[yb]&&this.a[yb][1])zb(this.c);else{a=this.C;var b;if(b=a)a.l.Ua&&(a.l.ac=!0),b=!a.l.Ua;if(b)za(a,!0),a.f(0,null),za(a,!1);else try{var c=this.c.Sb(1);0<c&&(Ab(this.c,c),Bb(this.c,c,!0),Cb(this.c,c))}catch(d){"number"!=typeof d&&xa(this.c,d.stack||d.message)}this.stop();this.A&&Db(this.A)}};h.gd=function(a){if(a&&!this.c.l.N)if(this.s&&Eb(this),a=Fb(this,this.b),this.w==ib)Gb(this.u,this.la,a);else{var b=this.c,c=this.la;b.cb++;b.u.Ab(Hb(b,c,4),a);b.cb--}};
h.jd=function(a){if(!a&&!this.c.l.N){this.v&&Eb(this);if(this.w==ib)a=Ib(this.u,this.la);else{a=this.c;var b=this.la;a.cb++;b=a.u.zb(Hb(a,b,2));a.cb--;a=b}Fb(this,a)}};h.ld=function(a){a||this.c.l.N||Jb(this,this.b)};h.kd=function(a){if(a)this.o=!0,ob(this,!0);else if(this.o=!1,ob(this),void 0!==this.j[Kb]){for(a=this.b=0;22>a;a++)this.a["S"+a][1]=0&1<<a?1:0;pb(this)}};h.od=function(a,b){this.b=a?this.b|1<<b:this.b&~(1<<b)};
function Eb(a){var b=1140>=a.c.qa?8:16,c=65472<=a.la&&a.la<65472+b,b=c?1:2,c=c?15:a.u.v;a.a[ub]&&a.a[ub][1]||(b=-b);Jb(a,a.la&~c|a.la+b&c)}function Jb(a,b){a.la=b&a.u.v;b=a.la;for(var c=0;22>c;c++)Lb(a,"A"+c,b&1<<c)}function Fb(a,b){a.g=b&65535;b=a.g;for(var c=0;16>c;c++)Lb(a,"D"+c,b&1<<c);return a.g}function Lb(a,b,c){a.f[b]=c;a.o||rb(a,b,c)}h.stop=function(){Jb(this,this.c.b[7])};h.setData=function(a,b){b?this.h=a:this.g=a};h.td=function(a,b){return(b?this.h:this.b)&65535};
h.Fe=function(a){this.h=a};function qb(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=va(d.id);e||(e=new hb(d,!0));A(e,c)}}var ib=7,Kb="S0",vb="DEP",yb="ENABLE",wb="EXAM",ub="STEP",Mb={},mb=(Mb[65400]=[null,null,hb.prototype.td,hb.prototype.Fe,"CNSW"],Mb);Va(qb);
function Nb(a,b,c){r.call(this,"Bus",a,0,16);this.c=b;this.C=c;this.R=+a.busWidth||16;this.F=1<<this.R;this.v=this.F-1;this.g=Ob;this.h=Math.log2(this.g);this.K=this.g>>2;this.f=this.g-1;this.s=this.F/this.g|0;this.L=this.s-1;this.Ia=[];this.m=0;this.o=!1;this.G=[];this.Vc=[Pb,Qb,Rb,Sb];this.a=this.b=[];this.D=this.w=this.i=this.H=this.I=0;a=new I(this);Tb(a);this.a=Array(this.s);this.b=Array(this.s);for(b=0;b<this.s;b++)this.a[b]=this.b[b]=a;this.D=this.F-Ob;Ub(this,this.D,Ob,Vb,this);this.I=this.H=
(this.D&this.v)>>>this.h;this.w=0;this.i=this.v;D(this)}n(Nb,r);function Wb(a,b){if(b!=a.w){for(var c=0;c<a.s;c++)a.b[c]=a.a[c];a.w=0;a.i=a.v;b&&(a.w=b,b=1<<b,a.i=b-1,b-=Ob,a.I=(b&a.i)>>>a.h,a.b[a.I]=a.a[a.H])}}h=Nb.prototype;h.reset=function(){for(var a=0;a<this.G.length;a++)this.G[a]();Wb(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 J(this);a.set(0,Xb(this));return a.data()};
function hb(a,b){r.call(this,"Panel",a,0,512);this.i=this.m=0;this.G=b;this.U=this.g=this.b=this.f=0;this.s=this.u=-1;this.w=this.C=this.o=!1;this.F=ib;this.h={};this.a={START:[1,1,!0,!1,this.md],STEP:[1,1,!1,!1,this.nd],ENABLE:[1,1,!1,!1,this.hd],CONT:[1,1,!0,!1,this.fd],DEP:[0,0,!0,!1,this.gd],EXAM:[1,1,!0,!1,this.jd],LOAD:[1,1,!0,!1,this.ld],TEST:[0,0,!0,!1,this.kd]};for(a=0;22>a;a++)this.a["S"+a]=[0,0,!1,!1,this.od,a];this.D=this.c=this.v=this.A=null;D(this)}n(hb,r);h=hb.prototype;
h.reset=function(){this.stop();jb(this,this.f=0)};
h.ha=function(a,b,c,d){if(this.A&&this.A.ha(a,b,c,d)||this.c&&this.c.ha(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.j[b]=c,this.m++,!0;default:return"led"==a||"rled"==a?(this.j[b]=c,this.h[b]=d?1:0,this.m++,!0):"switch"==a?(void 0===this.a[b]&&(this.a[b]=[d?1:0,d?1:0]),this.j[b]=c,a=c.parentElement||c,a=a.parentElement||a,a.onmousedown=function(a,b){return function(){kb(a,
b)}}(this,b),a.onmouseup=a.onmouseout=function(a,b){return function(){lb(a,b)}}(this,b),a.ontouchstart=function(a,b){return function(c){kb(a,b);c.preventDefault()}}(this,b),a.ontouchend=function(a,b){return function(){lb(a,b)}}(this,b),!0):r.prototype.ha.call(this,a,b,c,d)}};h.ea=function(a,b,c,d){this.A=a;this.v=b;this.c=c;this.D=d;mb(b,this,nb);ob(b,this.reset.bind(this));pb(this);qb(this)};h.ga=function(a,b){if(!b)if(this.G&&rb(),!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.fa=function(a){return a?this.save():!0};h.save=function(){var a=new H(this);a.set(0,[this.U,this.f,this.b]);return a.data()};h.restore=function(a){if(a=a[0])sb(this,this.U=a[0]),jb(this,this.f=a[1]),tb(this,a[2]);return!0};function ub(a,b,c){if(a=a.j[b])a.style.backgroundColor=c?"#ff0000":"#000000"}function pb(a,b){for(var c in a.h)ub(a,c,null!=b?b:a.h[c])}function vb(a,b,c){if(a=a.j[b])a.style.marginTop=c?"0px":"20px",a.style.backgroundColor=c?"#00ff00":"#228B22"}
function qb(a){for(var b in a.a)vb(a,b,a.a[b][1])}function wb(a,b,c,d){a.j[b]&&(void 0===c&&(xa(a,"Value for "+b+" is invalid"),I(a.c)),c=8==(a.D&&a.D.h||8)?Aa(c,d):Ba(c,d),a.j[b].textContent!=c&&(a.j[b].textContent=c))}function kb(a,b){var c=a.a[b];vb(a,b,c[1]=1-c[1]);c[3]=!0;c[4]&&c[4].call(a,c[1],c[5]);b!=xb&&(a.w=b==yb,a.C=b==zb)}function lb(a,b){var c=a.a[b];c[2]&&c[3]&&(vb(a,b,c[1]=c[0]),c[4]&&c[4].call(a,c[1],c[5]));c[3]=!1}
h.md=function(a){a||this.c.l.N||(a=this.c,a.v.reset(),Ab(a),this.a[Bb]&&this.a[Bb][1]&&Cb(this.c))};h.nd=function(){};h.hd=function(a){a||I(this.c)};h.fd=function(a){if(!a&&!this.c.l.N)if(this.a[Bb]&&this.a[Bb][1])Cb(this.c);else{a=this.D;var b;if(b=a)a.l.Ua&&(a.l.ac=!0),b=!a.l.Ua;if(b)za(a,!0),a.f(0,null),za(a,!1);else try{var c=this.c.Sb(1);0<c&&(Db(this.c,c),Eb(this.c,c,!0),Fb(this.c,c))}catch(d){"number"!=typeof d&&xa(this.c,d.stack||d.message)}this.stop();this.A&&Gb(this.A)}};
h.gd=function(a){if(a&&!this.c.l.N)if(this.w&&Hb(this),a=jb(this,this.b),this.F==ib)Ib(this.v,this.U,a);else{var b=this.c,c=this.U;b.cb++;b.v.Ab(Jb(b,c,4),a);b.cb--}};h.jd=function(a){if(!a&&!this.c.l.N){this.C&&Hb(this);if(this.F==ib)a=Kb(this.v,this.U);else{a=this.c;var b=this.U;a.cb++;b=a.v.zb(Jb(a,b,2));a.cb--;a=b}jb(this,a)}};h.ld=function(a){a||this.c.l.N||sb(this,this.b)};h.kd=function(a){a?(this.o=!0,pb(this,!0)):(this.o=!1,pb(this),tb(this,0))};
h.od=function(a,b){this.b=a?this.b|1<<b:this.b&~(1<<b)};function Hb(a){var b=1140>=a.c.qa?8:16,c=65472<=a.U&&a.U<65472+b,b=c?1:2,c=c?15:a.v.u;a.a[xb]&&a.a[xb][1]||(b=-b);sb(a,a.U&~c|a.U+b&c)}function sb(a,b){a.U=b&a.v.u;if(a.s!==a.U){a.s=a.U;b=a.s;for(var c=0;22>c;c++)Lb(a,"A"+c,b&1<<c)}}function jb(a,b){a.g=b&65535;if(a.u!==a.g){a.u=a.g;b=a.u;for(var c=0;16>c;c++)Lb(a,"D"+c,b&1<<c)}return a.g}function Lb(a,b,c){a.h[b]=c;a.o||ub(a,b,c)}
function tb(a,b){if(void 0!==a.j[Mb]){a.b=b;for(var c=0;22>c;c++)a.a["S"+c][1]=b&1<<c?1:0;qb(a)}}h.stop=function(){sb(this,this.c.b[7])};h.setData=function(a,b){b?this.f=a:this.g=a};h.td=function(a,b){return(b?this.f:this.b)&65535};h.Fe=function(a){this.f=a};function rb(){for(var a=C(document,B,"panel"),b=0;b<a.length;b++){var c=a[b],d=z(c),e=va(d.id);e||(e=new hb(d,!0));A(e,c)}}
var ib=7,Mb="S0",yb="DEP",Bb="ENABLE",zb="EXAM",xb="STEP",Nb={},nb=(Nb[65400]=[null,null,hb.prototype.td,hb.prototype.Fe,"CNSW"],Nb);Va(rb);
function Ob(a,b,c){r.call(this,"Bus",a,0,16);this.c=b;this.D=c;this.S=+a.busWidth||16;this.F=1<<this.S;this.u=this.F-1;this.g=Pb;this.h=Math.log2(this.g);this.K=this.g>>2;this.f=this.g-1;this.s=this.F/this.g|0;this.L=this.s-1;this.Ia=[];this.m=0;this.o=!1;this.G=[];this.Vc=[Qb,Rb,Sb,Tb];this.a=this.b=[];this.C=this.w=this.i=this.H=this.I=0;a=new J(this);Ub(a);this.a=Array(this.s);this.b=Array(this.s);for(b=0;b<this.s;b++)this.a[b]=this.b[b]=a;this.C=this.F-Pb;Vb(this,this.C,Pb,Wb,this);this.I=this.H=
(this.C&this.u)>>>this.h;this.w=0;this.i=this.u;D(this)}n(Ob,r);function Xb(a,b){if(b!=a.w){for(var c=0;c<a.s;c++)a.b[c]=a.a[c];a.w=0;a.i=a.u;b&&(a.w=b,b=1<<b,a.i=b-1,b-=Pb,a.I=(b&a.i)>>>a.h,a.b[a.I]=a.a[a.H])}}h=Ob.prototype;h.reset=function(){for(var a=0;a<this.G.length;a++)this.G[a]();Xb(this,16)};h.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.fa=function(a){return a?this.save():!0};h.save=function(){var a=new H(this);a.set(0,Yb(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.K){for(var e=0,f=Array(this.K),g=0;g<d.length-1;)for(var k=d[g++],l=d[g++];k--;)f[e++]=l;d=f}e=this.a[c];if(!e||!e.restore(d)){v("Unable to restore memory block "+c);a=!1;break a}}a=!0}return a};
function Ub(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.h;0<g&&k<a.a.length;){var l=a.a[k],m=k*a.g,p=a.g-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ta)return l.wb+=l.Ta-f,l.Ta=f,!0;if(f>=l.Ta+l.wb){p=l.size-(f-m);p>g&&(p=g);l.wb=f-l.Ta+p;f=m+a.g;g-=p;k++;continue}}return Yb(Zb,f,g)}f=new I(a,f,p,a.g,d,e);Tb(f,l);a.a[k++]=f;f=m+a.g;g-=p}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+$b[d]+" at "+Aa(b)),!0):Yb(ac,b,c)}h.Fc=function(a){return this.b[(a&this.i)>>>this.h].hb(a&this.f,a)};
h.zb=function(a){var b=a&this.f,c=(a&this.i)>>>this.h;return fb||b!=this.f?this.b[c].V(b,a):this.b[c++].hb(b,a)|this.b[c&this.L].hb(0,a+1)<<8};h.Gc=function(a,b){this.b[(a&this.i)>>>this.h].kb(a&this.f,b,a)};h.Ab=function(a,b){var c=a&this.f,d=(a&this.i)>>>this.h;fb||c!=this.f?this.b[d].nb(c,b,a):(this.b[d++].kb(c,b&255,a),this.b[d&this.L].kb(0,b>>8&255,a+1))};function bc(a,b){return a.a[(b&a.v)>>>a.h]}
function Ib(a,b){var c;a.o=!1;a.m++;var d=b&a.f,e=bc(a,b);fb||d!=a.f?c=e.C(d,b):c=e.i(d,b)|bc(a,b+1).i(0,b+1)<<8;a.m--;return c}function cc(a,b,c){a.o=!1;a.m++;bc(a,b).j(b&a.f,c&255,b);a.m--}function Gb(a,b,c){a.o=!1;a.m++;var d=b&a.f,e=bc(a,b);fb||d!=a.f?e.m(d,c&65535,b):(e.j(d,c&255,b),bc(a,b+1).j(0,c>>8&255,b+1));a.m--}
function Xb(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.a[d];if(e.xa||e.ad){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],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function dc(a){for(var b=ec,c=0,d=0;d<a.a.length;d++){var e=a.a[d];e.type==b&&(c=e.Ta+e.wb)}return c}
function gc(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&hc;if(void 0!==a.Ia[p])return v("I/O address already registered: "+Ba(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Ia[p]=[d,e,f,g,t,k||16,!1]}return!0}
function lb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.qa)){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,p=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&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],x=g[5]||1,w=0;w<x;w++,f+=2)if(t&&1<x&&(t=g[4]+w),!gc(a,f,f,k,l,m,p,g[7]||b.Rc,t||b.Ma))return!1}}return!0}
function nb(a,b){a.G.push(b)}function K(a,b,c){a.o=!0;a.m||(c&&(a.c.G|=c),L(a.c,4,0,b))}function ic(a){var b=a.o;a.o=!1;return b}function Yb(a,b,c){v("Memory block error ("+a+": "+Ba(b)+","+Ba(c)+")");return!1}var Ob=8192,hc=Ob-1,Zb=1,ac=2;function Pb(a,b){var c=-1,d=this.controller,e=d.Ia[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.Ia[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;K(d,b,16);return 255}
function Qb(a,b,c){var d=!1,e=this.controller,f=e.Ia[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.Ia[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||K(e,c,16)}function Rb(a,b){var c=-1,d=this.controller;a=d.Ia[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 c;K(d,b,16);return 65535}
function Sb(a,b,c){var d=!1,e=this.controller;a=e.Ia[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||K(e,c,16)}function M(a){r.call(this,"Device",a,0,256);this.a={za:128,fc:-1}}n(M,r);h=M.prototype;h.ca=function(a,b,c,d){this.u=b;this.A=a;this.c=c;this.C=d;var e=this;this.a.fc=jc(c,function(){e.a.za|=128;e.a.za&64&&N(e.c,e.a.Ka);e.A&&Db(e.A,1);kc(e.c,e.a.fc,1E3/60)});this.a.Ka=lc(c,64,6,524288);lb(b,this,mc);nb(b,this.reset.bind(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.a.za=128;kc(this.c,this.a.fc,1E3/60,!0)};h.save=function(){var a=new J(this);a.set(0,[this.a.za]);return a.data()};h.restore=function(a){a=ia(a[0]);this.a.za=a.next().value;return!0};h.Ad=function(){return this.a.za};h.Me=function(a){this.a.za=a&192;this.a.za&64||(a=this.a.Ka)&&nc(this.c,a)};
h.Cd=function(){var a=this.c,b=a.H;b&57344||(b=b&-3199|a.Pa<<5|a.Qa<<1);return b};h.Oe=function(a){oc(this.c,a&-129|this.c.H&128)};h.Dd=function(){var a=this.c;a.H&57344||(a.eb=a.F>>16&65535);a=a.eb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ed=function(){var a=this.c;a.H&57344||(a.fb=a.F&65535);return a.fb};h.Fd=function(){return this.c.na};h.Pe=function(a){var b=this.c;1170>b.qa&&(a&=-49);b.na!=a&&(b.na=a,b.Ca=a&16?4194303:262143,pc(b))};
function Vb(a,b,c,d,e){for(var f=b,g=c,k=f>>>a.h;0<g&&k<a.a.length;){var l=a.a[k],m=k*a.g,p=a.g-(f-m);p>g&&(p=g);if(!e&&l&&l.size){if(l.type==d){if(f+g<=l.Ta)return l.wb+=l.Ta-f,l.Ta=f,!0;if(f>=l.Ta+l.wb){p=l.size-(f-m);p>g&&(p=g);l.wb=f-l.Ta+p;f=m+a.g;g-=p;k++;continue}}return Zb($b,f,g)}f=new J(a,f,p,a.g,d,e);Ub(f,l);a.a[k++]=f;f=m+a.g;g-=p}return 0>=g?(a.status("Added "+(c>>10)+"Kb "+ac[d]+" at "+Aa(b)),!0):Zb(bc,b,c)}h.Fc=function(a){return this.b[(a&this.i)>>>this.h].hb(a&this.f,a)};
h.zb=function(a){var b=a&this.f,c=(a&this.i)>>>this.h;return fb||b!=this.f?this.b[c].W(b,a):this.b[c++].hb(b,a)|this.b[c&this.L].hb(0,a+1)<<8};h.Gc=function(a,b){this.b[(a&this.i)>>>this.h].kb(a&this.f,b,a)};h.Ab=function(a,b){var c=a&this.f,d=(a&this.i)>>>this.h;fb||c!=this.f?this.b[d].nb(c,b,a):(this.b[d++].kb(c,b&255,a),this.b[d&this.L].kb(0,b>>8&255,a+1))};function cc(a,b){return a.a[(b&a.u)>>>a.h]}
function Kb(a,b){var c;a.o=!1;a.m++;var d=b&a.f,e=cc(a,b);fb||d!=a.f?c=e.D(d,b):c=e.i(d,b)|cc(a,b+1).i(0,b+1)<<8;a.m--;return c}function dc(a,b,c){a.o=!1;a.m++;cc(a,b).j(b&a.f,c&255,b);a.m--}function Ib(a,b,c){a.o=!1;a.m++;var d=b&a.f,e=cc(a,b);fb||d!=a.f?e.m(d,c&65535,b):(e.j(d,c&255,b),cc(a,b+1).j(0,c>>8&255,b+1));a.m--}
function Yb(a){for(var b=0,c=[],d=0;d<a.s;d++){var e=a.a[d];if(e.xa||e.ad){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],p=g+1;p<e.length&&e[p]===m;)p++;l[k++]=p-g;l[k++]=m;g=p}l.length<e.length&&(e=l)}c[f]=e}}return c}function ec(a){for(var b=fc,c=0,d=0;d<a.a.length;d++){var e=a.a[d];e.type==b&&(c=e.Ta+e.wb)}return c}
function hc(a,b,c,d,e,f,g,k,l){for(var m=b==c?-1:0;b<=c;b+=2){var p=b&ic;if(void 0!==a.Ia[p])return v("I/O address already registered: "+Ba(b,8,!0)),!1;var t=l||"unknown";t&&0<=m&&(t+=m++);a.Ia[p]=[d,e,f,g,t,k||16,!1]}return!0}
function mb(a,b,c,d){for(var e in c){var f=+e+(d||0),g=c[e];if(!(g[6]&&g[6]>a.c.qa)){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,p=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&&p&&(l=function(a){return function(b,c){return a(b,c)}.bind(b)}(p)));for(var t=g[4],x=g[5]||1,w=0;w<x;w++,f+=2)if(t&&1<x&&(t=g[4]+w),!hc(a,f,f,k,l,m,p,g[7]||b.Rc,t||b.Ma))return!1}}return!0}
function ob(a,b){a.G.push(b)}function K(a,b,c){a.o=!0;a.m||(c&&(a.c.G|=c),L(a.c,4,0,b))}function jc(a){var b=a.o;a.o=!1;return b}function Zb(a,b,c){v("Memory block error ("+a+": "+Ba(b)+","+Ba(c)+")");return!1}var Pb=8192,ic=Pb-1,$b=1,bc=2;function Qb(a,b){var c=-1,d=this.controller,e=d.Ia[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.Ia[a&-2])&&(e[2]?c=e[2](f&-2)>>8:e[0]&&(c=e[0](f)));if(0<=c)return c;K(d,b,16);return 255}
function Rb(a,b,c){var d=!1,e=this.controller,f=e.Ia[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.Ia[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||K(e,c,16)}function Sb(a,b){var c=-1,d=this.controller;a=d.Ia[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 c;K(d,b,16);return 65535}
function Tb(a,b,c){var d=!1,e=this.controller;a=e.Ia[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||K(e,c,16)}function M(a){r.call(this,"Device",a,0,256);this.a={za:128,fc:-1}}n(M,r);h=M.prototype;h.ea=function(a,b,c,d){this.v=b;this.A=a;this.c=c;this.D=d;var e=this;this.a.fc=kc(c,function(){e.a.za|=128;e.a.za&64&&N(e.c,e.a.Ka);e.A&&Gb(e.A,1);lc(e.c,e.a.fc,1E3/60)});this.a.Ka=mc(c,64,6,524288);mb(b,this,nc);ob(b,this.reset.bind(this));D(this)};
h.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.fa=function(a){return a?this.save():!0};h.reset=function(){this.a.za=128;lc(this.c,this.a.fc,1E3/60,!0)};h.save=function(){var a=new H(this);a.set(0,[this.a.za]);return a.data()};h.restore=function(a){a=ia(a[0]);this.a.za=a.next().value;return!0};h.Ad=function(){return this.a.za};h.Me=function(a){this.a.za=a&192;this.a.za&64||(a=this.a.Ka)&&oc(this.c,a)};
h.Cd=function(){var a=this.c,b=a.H;b&57344||(b=b&-3199|a.Pa<<5|a.Qa<<1);return b};h.Oe=function(a){pc(this.c,a&-129|this.c.H&128)};h.Dd=function(){var a=this.c;a.H&57344||(a.eb=a.F>>16&65535);a=a.eb;a&65280&&(a=(a<<8|a>>8)&65535);return a};h.Ed=function(){var a=this.c;a.H&57344||(a.fb=a.F&65535);return a.fb};h.Fd=function(){return this.c.na};h.Pe=function(a){var b=this.c;1170>b.qa&&(a&=-49);b.na!=a&&(b.na=a,b.Ca=a&16?4194303:262143,qc(b))};
h.me=function(a){a=a>>1&63;var b=this.c.Ha[a>>1];return a&1?b>>16:b&65535};h.yf=function(a,b){b=b>>1&63;var c=b>>1;this.c.Ha[c]=b&1?this.c.Ha[c]&65535|(a&63)<<16:this.c.Ha[c]&-65536|a&65534};h.fe=function(a){return this.c.s[1][a>>1&7]};h.rf=function(a,b){this.c.s[1][b>>1&7]=a&65295};h.de=function(a){return this.c.s[1][(a>>1&7)+8]};h.pf=function(a,b){this.c.s[1][(b>>1&7)+8]=a&65295};h.ee=function(a){return this.c.I[1][a>>1&7]};h.qf=function(a,b){b=b>>1&7;this.c.I[1][b]=a;this.c.s[1][b]&=65295};
h.ce=function(a){return this.c.I[1][(a>>1&7)+8]};h.nf=function(a,b){b=(b>>1&7)+8;this.c.I[1][b]=a;this.c.s[1][b]&=65295};h.zd=function(a){return this.c.s[0][a>>1&7]};h.Le=function(a,b){this.c.s[0][b>>1&7]=a&65295};h.xd=function(a){return this.c.s[0][(a>>1&7)+8]};h.Je=function(a,b){this.c.s[0][(b>>1&7)+8]=a&65295};h.yd=function(a){return this.c.I[0][a>>1&7]};h.Ke=function(a,b){b=b>>1&7;this.c.I[0][b]=a;this.c.s[0][b]&=65295};h.wd=function(a){return this.c.I[0][(a>>1&7)+8]};
h.Ie=function(a,b){b=(b>>1&7)+8;this.c.I[0][b]=a;this.c.s[0][b]&=65295};h.le=function(a){return this.c.s[3][a>>1&7]};h.xf=function(a,b){this.c.s[3][b>>1&7]=a&65295};h.je=function(a){return this.c.s[3][(a>>1&7)+8]};h.vf=function(a,b){this.c.s[3][(b>>1&7)+8]=a&65295};h.ke=function(a){return this.c.I[3][a>>1&7]};h.wf=function(a,b){b=b>>1&7;this.c.I[3][b]=a;this.c.s[3][b]&=65295};h.ie=function(a){return this.c.I[3][(a>>1&7)+8]};h.uf=function(a,b){b=(b>>1&7)+8;this.c.I[3][b]=a;this.c.s[3][b]&=65295};
h.ib=function(a){a&=7;return this.c.i&2048?this.c.ra[a]:this.c.b[a]};h.lb=function(a,b){b&=7;this.c.i&2048?this.c.ra[b]=a:this.c.b[b]=a};h.Kd=function(){return this.c.i&49152?this.c.ia[0]:this.c.b[6]};h.Ue=function(a){this.c.i&49152?this.c.ia[0]=a:this.c.b[6]=a};h.Nd=function(){return this.c.b[7]};h.Xe=function(a){this.c.b[7]=a};h.jb=function(a){a&=7;return this.c.i&2048?this.c.b[a]:this.c.ra[a]};h.mb=function(a,b){b&=7;this.c.i&2048?this.c.b[b]=a:this.c.ra[b]=a};
h.Ld=function(){return 1==(this.c.i&49152)>>14?this.c.b[6]:this.c.ia[1]};h.Ve=function(a){1==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.ia[1]=a};h.Md=function(){return 3==(this.c.i&49152)>>14?this.c.b[6]:this.c.ia[3]};h.We=function(a){3==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.ia[3]=a};h.vd=function(a){return this.c.ub[a-65504>>1]};h.He=function(a,b){this.c.ub[b-65504>>1]=a};h.Ac=function(a){return 65520==a?(dc(this.u)>>6)-1:0};h.Dc=function(){};h.he=function(){return 1};h.tf=function(){};h.ud=function(){return this.c.G};
h.Ge=function(){this.c.G=0};h.Bd=function(){return this.c.tb};h.Ne=function(a,b){b&1||(a&=255);this.c.tb=a};h.Gd=function(a,b){return b?0:this.c.Sa};h.Qe=function(a){var b=this.c;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.g|=1}b.Sa=a};h.ge=function(a,b){return b?0:this.c.Ga&65280};h.sf=function(a){this.c.Ga=a|255};h.Jd=function(){return qc(this.c)};h.Te=function(a){rc(this.c,a)};h.Cc=function(){};
var O={},mc=(O[61568]=[null,null,M.prototype.me,M.prototype.yf,"UNIMAP",64,1170],O[62592]=[null,null,M.prototype.fe,M.prototype.rf,"SIPDR",8,1145,64],O[62608]=[null,null,M.prototype.de,M.prototype.pf,"SDPDR",8,1145,64],O[62624]=[null,null,M.prototype.ee,M.prototype.qf,"SIPAR",8,1145,64],O[62640]=[null,null,M.prototype.ce,M.prototype.nf,"SDPAR",8,1145,64],O[62656]=[null,null,M.prototype.zd,M.prototype.Le,"KIPDR",8,1140,64],O[62672]=[null,null,M.prototype.xd,M.prototype.Je,"KDPDR",8,1145,64],O[62688]=
h.ib=function(a){a&=7;return this.c.i&2048?this.c.ra[a]:this.c.b[a]};h.lb=function(a,b){b&=7;this.c.i&2048?this.c.ra[b]=a:this.c.b[b]=a};h.Kd=function(){return this.c.i&49152?this.c.ja[0]:this.c.b[6]};h.Ue=function(a){this.c.i&49152?this.c.ja[0]=a:this.c.b[6]=a};h.Nd=function(){return this.c.b[7]};h.Xe=function(a){this.c.b[7]=a};h.jb=function(a){a&=7;return this.c.i&2048?this.c.b[a]:this.c.ra[a]};h.mb=function(a,b){b&=7;this.c.i&2048?this.c.b[b]=a:this.c.ra[b]=a};
h.Ld=function(){return 1==(this.c.i&49152)>>14?this.c.b[6]:this.c.ja[1]};h.Ve=function(a){1==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.ja[1]=a};h.Md=function(){return 3==(this.c.i&49152)>>14?this.c.b[6]:this.c.ja[3]};h.We=function(a){3==(this.c.i&49152)>>14?this.c.b[6]=a:this.c.ja[3]=a};h.vd=function(a){return this.c.ub[a-65504>>1]};h.He=function(a,b){this.c.ub[b-65504>>1]=a};h.Ac=function(a){return 65520==a?(ec(this.v)>>6)-1:0};h.Dc=function(){};h.he=function(){return 1};h.tf=function(){};h.ud=function(){return this.c.G};
h.Ge=function(){this.c.G=0};h.Bd=function(){return this.c.tb};h.Ne=function(a,b){b&1||(a&=255);this.c.tb=a};h.Gd=function(a,b){return b?0:this.c.Sa};h.Qe=function(a){var b=this.c;if(a&=65024){var c=a>>9;do a+=34;while(c>>=1);b.g|=1}b.Sa=a};h.ge=function(a,b){return b?0:this.c.Ga&65280};h.sf=function(a){this.c.Ga=a|255};h.Jd=function(){return rc(this.c)};h.Te=function(a){sc(this.c,a)};h.Cc=function(){};
var O={},nc=(O[61568]=[null,null,M.prototype.me,M.prototype.yf,"UNIMAP",64,1170],O[62592]=[null,null,M.prototype.fe,M.prototype.rf,"SIPDR",8,1145,64],O[62608]=[null,null,M.prototype.de,M.prototype.pf,"SDPDR",8,1145,64],O[62624]=[null,null,M.prototype.ee,M.prototype.qf,"SIPAR",8,1145,64],O[62640]=[null,null,M.prototype.ce,M.prototype.nf,"SDPAR",8,1145,64],O[62656]=[null,null,M.prototype.zd,M.prototype.Le,"KIPDR",8,1140,64],O[62672]=[null,null,M.prototype.xd,M.prototype.Je,"KDPDR",8,1145,64],O[62688]=
[null,null,M.prototype.yd,M.prototype.Ke,"KIPAR",8,1140,64],O[62704]=[null,null,M.prototype.wd,M.prototype.Ie,"KDPAR",8,1145,64],O[62798]=[null,null,M.prototype.Fd,M.prototype.Pe,"MMR3",1,1145,64],O[65382]=[null,null,M.prototype.Ad,M.prototype.Me,"LKS"],O[65402]=[null,null,M.prototype.Cd,M.prototype.Oe,"MMR0",1,1140,64],O[65404]=[null,null,M.prototype.Dd,M.prototype.Cc,"MMR1",1,1145,64],O[65406]=[null,null,M.prototype.Ed,M.prototype.Cc,"MMR2",1,1140,64],O[65408]=[null,null,M.prototype.le,M.prototype.xf,
"UIPDR",8,1140,64],O[65424]=[null,null,M.prototype.je,M.prototype.vf,"UDPDR",8,1145,64],O[65440]=[null,null,M.prototype.ke,M.prototype.wf,"UIPAR",8,1140,64],O[65456]=[null,null,M.prototype.ie,M.prototype.uf,"UDPAR",8,1145,64],O[65472]=[null,null,M.prototype.ib,M.prototype.lb,"R0SET0"],O[65473]=[null,null,M.prototype.ib,M.prototype.lb,"R1SET0"],O[65474]=[null,null,M.prototype.ib,M.prototype.lb,"R2SET0"],O[65475]=[null,null,M.prototype.ib,M.prototype.lb,"R3SET0"],O[65476]=[null,null,M.prototype.ib,
M.prototype.lb,"R4SET0"],O[65477]=[null,null,M.prototype.ib,M.prototype.lb,"R5SET0"],O[65478]=[null,null,M.prototype.Kd,M.prototype.Ue,"R6KERNEL"],O[65479]=[null,null,M.prototype.Nd,M.prototype.Xe,"R7KERNEL"],O[65480]=[null,null,M.prototype.jb,M.prototype.mb,"R0SET1",1,1145],O[65481]=[null,null,M.prototype.jb,M.prototype.mb,"R1SET1",1,1145],O[65482]=[null,null,M.prototype.jb,M.prototype.mb,"R2SET1",1,1145],O[65483]=[null,null,M.prototype.jb,M.prototype.mb,"R3SET1",1,1145],O[65484]=[null,null,M.prototype.jb,
M.prototype.mb,"R4SET1",1,1145],O[65485]=[null,null,M.prototype.jb,M.prototype.mb,"R5SET1",1,1145],O[65486]=[null,null,M.prototype.Ld,M.prototype.Ve,"R6SUPER",1,1145],O[65487]=[null,null,M.prototype.Md,M.prototype.We,"R6USER",1,1145],O[65504]=[null,null,M.prototype.vd,M.prototype.He,"CTRL",8,1170],O[65520]=[null,null,M.prototype.Ac,M.prototype.Dc,"LSIZE",1,1170],O[65522]=[null,null,M.prototype.Ac,M.prototype.Dc,"HSIZE",1,1170],O[65524]=[null,null,M.prototype.he,M.prototype.tf,"SYSID",1,1170],O[65526]=
[null,null,M.prototype.ud,M.prototype.Ge,"ERR",1,1170],O[65528]=[null,null,M.prototype.Bd,M.prototype.Ne,"MBR",1,1170],O[65530]=[null,null,M.prototype.Gd,M.prototype.Qe,"PIR"],O[65532]=[null,null,M.prototype.ge,M.prototype.sf,"SLR"],O[65534]=[null,null,M.prototype.Jd,M.prototype.Te,"PSW"],O);
Va(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new M(c);A(c,d);break;case "pc11":c=new sc(c);A(c,d);break;case "rl11":c=new P(c);A(c,d);break;case "rk11":c=new Q(c),A(c,d)}}});
function I(a,b,c,d,e,f){this.b=a;this.id=tc+=2;this.c=null;this.Ta=b;this.wb=c;this.size=d||0;this.type=e||uc;this.A=e==vc;this.controller=null;this.hb=this.i=this.cc;this.V=this.C=this.dc;this.kb=this.j=this.yb;this.nb=this.m=this.gc;this.g=this.h=0;Tb(this);this.xa=this.ad=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.c=a[0],wc(this,f.Vc);else if(cb)this.f=new ArrayBuffer(this.size),this.u=new DataView(this.f,0,this.size),this.a=new Uint8Array(this.f,0,this.size),this.o=new Uint16Array(this.f,
0,this.size>>1),this.c=new Int32Array(this.f,0,this.size>>2),wc(this,xc?yc:Ac);else{a=this.c=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;wc(this,Bc)}else wc(this)}h=I.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(cb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.u.getInt32(b<<2,!0);else a=this.c;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(cb)for(b=0;b<a.length;b++)this.u.setInt32(b<<2,a[b],!0);else this.c=a;return this.xa=!0}return!1};function wc(a,b){b||(b=Cc);Dc(a,b,void 0);Ec(a,b,void 0)}function Dc(a,b,c){c&&a.g||(a.hb=b[0]||a.cc,a.V=b[2]||a.dc);if(c||void 0===c)a.i=b[0]||a.cc,a.C=b[2]||a.dc}function Ec(a,b,c){c&&a.h||(a.kb=!a.A&&b[1]||a.yb,a.nb=!a.A&&b[3]||a.gc);if(c||void 0===c)a.j=b[1]||a.yb,a.m=b[3]||a.gc}
function Tb(a,b){a.g=a.h=0;b&&((a.g=b.g)&&Dc(a,Fc,!1),(a.h=b.h)&&Ec(a,Fc,!1))}h.cc=function(a,b){K(this.b,b,32);return 255};h.yb=function(a,b,c){K(this.b,c,32)};h.dc=function(a,b){return this.hb(a++,b++)|this.hb(a,b)<<8};h.gc=function(a,b,c){this.kb(a++,b&255,c++);this.kb(a,b>>8,c)};h.sd=function(a){return this.c[a>>2]>>>((a&3)<<3)&255};h.re=function(a,b){eb&&a&1&&K(this.b,b,64);b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8};
h.Ee=function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.xa=!0};h.Cf=function(a,b,c){eb&&a&1&&K(this.b,c,64);c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.xa=!0};h.qd=function(a,b){return this.i(a,b)};h.oe=function(a,b){return this.C(a,b)};h.Ce=function(a,b,c){this.A?this.yb(0,0,c):this.j(a,b,c)};h.Af=function(a,b,c){this.A?this.yb(0,0,c):this.m(a,b,c)};h.pd=function(a){return this.a[a]};
h.rd=function(a){return this.a[a]};h.ne=function(a,b){eb&&a&1&&K(this.b,b,64);return this.u.getUint16(a,!0)};h.qe=function(a,b){eb&&a&1&&K(this.b,b,64);return!fb&&a&1?this.a[a]|this.a[a+1]<<8:this.o[a>>1]};h.Be=function(a,b){this.a[a]=b;this.xa=!0};h.De=function(a,b){this.a[a]=b;this.xa=!0};h.zf=function(a,b,c){eb&&a&1&&K(this.b,c,64);this.u.setUint16(a,b,!0);this.xa=!0};h.Bf=function(a,b,c){eb&&a&1&&K(this.b,c,64);!fb&&a&1?(this.a[a]=b,this.a[a+1]=b>>8):this.o[a>>1]=b;this.xa=!0};
var uc=0,ec=1,vc=2,Vb=4,$b=["NONE","RAM","ROM","VID","H/W"],tc=0,Cc=[],Bc=[I.prototype.sd,I.prototype.Ee,I.prototype.re,I.prototype.Cf],Fc=[I.prototype.qd,I.prototype.Ce,I.prototype.oe,I.prototype.Af];if(cb)var Ac=[I.prototype.pd,I.prototype.Be,I.prototype.ne,I.prototype.zf],yc=[I.prototype.rd,I.prototype.De,I.prototype.qe,I.prototype.Bf];var Gc;if(cb){var Hc=new ArrayBuffer(2);(new DataView(Hc)).setUint16(0,256,!0);Gc=256===(new Uint16Array(Hc))[0]}else Gc=!1;var xc=Gc;
function Ic(a,b){r.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.hc=0;this.Nb=b;this.Ra=c;this.Vb=Math.round(this.Nb/1E4)/100;this.Xa=this.Vb*this.Ra;this.Wb=this.sb=this.$a=this.Ob=0;this.l.N=this.l.ec=!1;this.l.ba=a.autoStart;"string"==typeof this.l.ba&&(this.l.ba="true"==this.l.ba);this.l.Bb=!1;this.Lb=this.Za=0;this.Mb=+a.csStart;this.qb=+a.csInterval;this.rb=+a.csStop;this.W=[];this.qc=this.ve.bind(this);this.Fa=this.va=this.Ea=this.a=this.Y=this.ua=this.pb=this.Da=this.ab=
this.Xb=this.Oa=0;this.ma=null;D(this)}n(Ic,r);h=Ic.prototype;h.ca=function(a,b,c,d){this.A=a;this.u=b;this.C=d;this.ma=a.f;for(a=0;a<Jc.length;a++)(b=this.j[Jc[a]])&&this.A.ga(null,Jc[a],b);D(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ea=function(a,b){var c=Kc(this.A,"autoStart");null!=c?this.l.ba="true"==c?!0:"false"==c?!1:!!c:null==this.l.ba&&(this.l.ba=void 0===this.j.run);if(!b){if(a){Lc(this);if(!this.restore(a))return!1;Mc(this)}else this.reset();this.status("No debugger detected");this.l.ba||this.X("CPU will not be auto-started "+(this.ma?"(click Run to start)":"(type 'go' to start)"))}return!0};h.da=function(a){return a?this.save():!0};h.ba=function(){return this.l.N?!0:this.l.ba?(zb(this),!0):!1};h.xc=function(){return 0};
function Mc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.l.Bb=0<=a.Mb&&0<a.qb;a.l.Bb&&(a.Lb=0,a.Za=a.Mb-a.Fa)}function Cb(a,b){if(a.l.Bb){var c=!1;a.Lb=a.Lb+a.xc()|0;a.Za-=b;0>=a.Za&&(a.Za+=a.qb,c=!0);0<=a.rb&&a.rb<=Nc(a)&&(a.qb=a.rb=-1,Mc(a),H(a),c=!0);c&&a.X(Nc(a)+" cycles: checksum="+Ba(a.Lb))}}
h.ga=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.l.S)a=!0;else{var b=null,c,k=y(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.S);c++);c==k.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.Db?" (waiting for notification)":""))+".");a=!1}a&&(d.l.N?H(d):zb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Oc(d,d.Ra<<1,!0)},c.textContent=this.Xa.toFixed(2)+"Mhz",!0}return!1};function Bb(a,b,c){a.Fa+=b;c&&(a.Ea=a.a=a.Y=0)}function Pc(a,b){var c=1;b&&1<a.Ra&&a.Oa&&(c=a.Oa/a.Vb);a.Wb=Math.round(1E3/Qc);a.sb=Math.floor(a.Nb/Qc*c);b||(a.$a=a.sb);a.Ob=0}function Nc(a){return a.Fa+a.va+a.Ea-a.a}function Lc(a){a.Oa=0;a.Xb=0;a.Fa=a.va=a.Ea=a.a=a.Y=0;Mc(a);Oc(a,1)}
function Oc(a,b,c){if(void 0!==b){.8>a.Oa/a.Xa&&(b=1);a.Ra=b;b=a.Vb*a.Ra;if(a.Xa!=b){a.Xa=b;b=a.Xa.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.X("target speed: "+b)}c&&a.A&&Rc(a.A)}Bb(a,a.va);a.va=0;a.ua=ta();a.Da=0;Pc(a)}function jc(a,b){var c=a.W.length;a.W.push([-1,b]);return c}function kc(a,b,c,d){0<=b&&b<a.W.length&&(d||0>a.W[b][0])&&(c=a.Nb*a.Ra/1E3*c|0,a.l.N&&(c+=Sc(a)),a.W[b][0]=c)}function Tc(a){for(var b=[],c=0;c<a.W.length;c++)b.push(a.W[c][0]);return b}
function Ab(a,b){for(var c=a.W.length-1;0<=c;c--){var d=a.W[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Sc(a,b){var c=a.Ea-=a.a;a.a=a.Y=0;b&&(a.Ea=0);return c}
h.ve=function(){if(this.l.N){this.Ob>=this.Nb&&Pc(this,!0);this.ab=0;this.pb=ta();if(this.Da){var a=this.pb-this.Da;a>this.Wb&&(this.ua+=a,this.ua>this.pb&&(this.ua=this.pb))}try{do{for(var b,c=this.l.Bb?1:this.sb,d=this.W.length-1;0<=d;d--){var e=this.W[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Sb(b)}catch(f){if("number"!=typeof f)throw f;}b=Sc(this,!0);this.ab+=b;this.va+=b;Cb(this,b);Ab(this,b);this.$a-=b;if(0>=this.$a){this.$a+=this.sb;++this.Xb>=Uc&&(this.A&&Db(this.A,void 0),this.Xb=0);break}}while(this.l.N)}catch(f){H(this);
this.A&&this.A.stop(ta(),Nc(this));xa(this,f.stack||f.message);return}if(this.l.N){a=setTimeout;b=this.qc;this.Da=ta();c=this.Wb;this.ab&&(c=Math.round(c*this.ab/this.sb));c-=this.Da-this.pb;if(d=this.Da-this.ua)this.Oa=Math.round(this.va/(10*d))/100,864E5<=d&&(this.Fa=0,Oc(this));if(0>c||this.Oa<this.Xa)-1E3>c&&(this.ua-=c),c=0;this.Ob+=this.ab;this.Da+=c;a(b,c)}}};
function zb(a){var b;a.l.error?(a.X(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.N)a.X(a.toString()+" busy");else{Oc(a);a.l.N=!0;a.l.ec=!0;if(b=a.j.run)b.textContent="Halt";a.A&&a.A.start(a.ua,Nc(a));a.C||a.status("Started");setTimeout(a.qc,0)}}h.Sb=function(){return 0};function H(a){var b=!1;if(a.l.N){Sc(a);Bb(a,a.va);a.va=0;a.l.N=!1;if(b=a.j.run)b.textContent="Run";a.A&&a.A.stop(ta(),Nc(a));b=!0;a.C||a.status("Stopped")}a.l.complete=void 0;return b}var Qc=30,Uc=15,Jc=["power","reset"];
function Vc(a){var b=+a.model||1170;Ic.call(this,a,6666667);this.qa=b;this.nc=+a.addrReset||0;this.wa=this.i=this.D=this.v=this.m=this.o=this.w=0;this.b=this.ra=this.ia=[];this.I=this.s=this.Ha=this.ub=[];this.Aa=this.F=this.mc=this.Ba=this.Pa=this.Qa=this.Ca=this.G=this.tb=this.Sa=this.Ga=this.H=this.eb=this.fb=this.na=this.g=0;this.Sc=[4,2,0,1];this.Pb=0;this.pc=255;1120>=this.qa?(this.lc=Wc.bind(this),this.Ya=this.Zc,this.Pb=8,this.pc=-1,this.sc=255,this.rc=0):(this.lc=Xc.bind(this),this.Ya=this.$c,
this.sc=~(1792|(1140>=this.qa?2048:0))&65535,this.rc=1140<this.qa?2048:0);this.Zb=this.Yb=this.cb=0;this.K=null;this.ob=[];this.Fb=this.ic=this.bd;this.Gb=this.Qb=this.dd;this.Rb=this.Tb=this.ye;this.Hb=this.Ub=this.Ae;this.ta=this.Eb=0;this.pa=this.yc;this.V=this.Bc;this.nb=this.Ec;this.h=this.f=this.Kb=this.L=this.R=0;this.l.complete=!1}n(Vc,Ic);h=Vc.prototype;h.ca=function(a,b,c,d){Ic.prototype.ca.call(this,a,b,c,d);this.ic=b.Fc.bind(b);this.Qb=b.zb.bind(b);this.Tb=b.Gc.bind(b);this.Ub=b.Ab.bind(b)};
h.ea=function(a,b){for(var c=192,d=0;d<this.ob.length;d++){var e=this.ob[d];0>e.xb&&(e.xb=c,c+=4)}return Ic.prototype.ea.call(this,a,b)};
h.reset=function(){this.status("Model "+this.qa);this.l.N&&H(this);this.v=65536;this.m=32768;this.o=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.nc,-1,-2,-3,-4,-5,-6,-7,-8];this.ra=[0,0,0,0,0,0];this.ia=[0,0,0,0];this.I=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.s=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.ub=[0,0,0,0,0,0,0,0];this.D=0;this.wa=-1;this.h=this.f=this.Kb=this.L=this.R=this.g=this.tb=0;xb(this);Lc(this);this.l.error=!1;Ic.prototype.reset.call(this)};function xb(a){a.H=0;a.eb=0;a.fb=0;a.na=0;a.G=0;a.Sa=0;a.Ga=255;a.Ba=0;a.Pa=0;a.Qa=0;a.Ca=262143;a.Aa=a.b[7];a.F=0;a.K=null;a.u&&(pc(a),a.mc=dc(a.u))}
function pc(a){a.Fb=a.ic;a.Gb=a.Qb;a.Rb=a.Tb;a.Hb=a.Ub;a.Ba?(a.ta=65536,a.Eb=a.na&16?4186112:253952,a.pa=a.yc,a.V=a.Bc,a.nb=a.Ec,Wb(a.u,a.na&16?22:18)):(a.ta=0,a.Eb=57344,a.pa=a.cd,a.V=a.pe,a.nb=a.Df,Wb(a.u,16))}function oc(a,b){b&=-3073;if(a.H!=b){b&57344&&!(a.H&57344)&&(a.eb=a.F>>16&65535,a.fb=a.F&65535);a.H=b;a.Pa=(b&96)>>5;a.Qa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ba!=c&&(a.Ba=c,pc(a))}}
function Yc(a,b,c){a.nc=b;a.u.reset();xb(a);R(a,b);rc(a,0);if(c){for(b=2;5>=b;b++)a.b[b]=0;a.l.N||zb(a)}else a.C?H(a)||a.C.g():!1===c&&H(a);!a.l.N&&a.ma&&a.ma.stop()}h.xc=function(){return 0};
h.save=function(){var a=new J(this);a.set(0,[this.b,this.ra,this.ia,this.I,this.s,this.Ha,this.ub,this.G,this.tb,this.Sa,this.Ga,this.H,this.eb,this.fb,this.na,this.Ba,this.Pa,this.Qa,this.Ca,this.Aa,this.g,this.F,this.wa,this.Yb,this.Zb]);a.set(1,[qc(this)]);a.set(2,[this.Fa,this.Ra,this.l.ba]);a.set(3,Zc(this));a.set(4,Tc(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.b=b.next().value;this.ra=b.next().value;this.ia=b.next().value;this.I=b.next().value;this.s=b.next().value;this.Ha=b.next().value;this.ub=b.next().value;this.G=b.next().value;this.tb=b.next().value;this.Sa=b.next().value;this.Ga=b.next().value;this.H=b.next().value;this.eb=b.next().value;this.fb=b.next().value;this.na=b.next().value;this.Ba=b.next().value;this.Pa=b.next().value;this.Qa=b.next().value;this.Ca=b.next().value;this.Aa=b.next().value;this.g=b.next().value;
this.F=b.next().value;this.wa=b.next().value;this.Yb=b.next().value;this.Zb=b.next().value;b=a[1];rc(this,b[0]);b=a[2];this.Fa=b[0];Oc(this,b[1]);this.l.ba=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];if(e.xb===b[c]){d=e;break a}}d=null}d&&(d.next=this.K,this.K=d)}a=a[4];for(b=0;b<this.W.length&&b<a.length;b++)this.W[b][0]=a[b];return!0};function $c(a){return a.v&65536?1:0}function ad(a){return a.w&32768?8:0}
function bd(a,b){var c=a.b[7];a.b[7]=c+b&65535;return c}function S(a,b,c){c&&(R(a,a.b[7]+(b<<24>>23)),a.a-=2);a.a-=3}function R(a,b){a.b[7]=b&65535}function lc(a,b,c,d){b={xb:b,gb:c,message:d||0,name:gb[b],next:null};a.ob.push(b);return b}function nc(a,b){var c=a.K;if(c==b)a.K=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.K&&(a.g|=1)}
function N(a,b){if(b){if(b!=a.K){var c=a.K;if(!c||c.gb<=b.gb)b.next=c,a.K=b;else{do{var d=c.next;if(!d||d.gb<=b.gb){b.next=d;c.next=b;break}c=d}while(c)}}a.g|=1}}function Zc(a){var b=[];for(a=a.K;a;)b.push(a.xb),a=a.next;return b}function cd(a){return a.g&64?(L(a,168,64,-6),!0):a.g&32?(L(a,4,32,-5),!0):a.g&16?(L(a,12,16,-7),!0):!1}function qc(a){return a.i=a.i&63728|ad(a)|(a.o&65535?0:4)|(a.m&32768?2:0)|$c(a)}
function rc(a,b){b&=a.sc;a.w=b<<12;a.o=~b&4;a.m=b<<14;a.v=b<<16;if((b^a.i)&a.rc)for(var c=a.ra.length;0<=--c;){var d=a.b[c];a.b[c]=a.ra[c];a.ra[c]=d}a.D=b>>14&3;c=a.i>>14&3;a.D!=c&&(a.ia[c]=a.b[6],a.b[6]=a.ia[a.D]);a.i=b;a.g&=-3;a.g|=a.K?2:1}h.ha=function(a){this.w=this.o=a;this.m=0};h.La=function(a,b){this.w=this.o=this.v=a;this.m=b||0};function dd(a,b){a.w=a.o=a.v=b;a.m=a.w^a.v>>1}function ed(a,b,c,d){a.w=a.o=a.v=b;a.m=(c^d)&(d^b)}
function L(a,b,c,d){if(!a.cb){0>a.wa?a.wa=qc(a):a.D||(d=-4);-4==d&&(a.g&256&&(d=-1),a.g|=256,a.G|=4,a.b[6]=b=4);if(-1!=d){a.F=b|4143316992;a.D=0;var e=a.V(b|a.ta),f=a.V(b+2&65535|a.ta);rc(a,f&-12289|a.wa>>2&12288);fd(a,a.wa);fd(a,a.b[7]);R(a,e)}a.a-=5;a.g&=~(c|19);a.g|=129;a.wa=-1;a.Yb=d;a.Zb=b;-1==d&&H(a);if(-4<=d)throw b;}}function gd(a){var b=hd(a),c=hd(a);a.i&49152&&(c=c&-225|a.i&63712);R(a,b);rc(a,c);a.g&=-17}
function id(a,b){var c=b>>13&31;31>c&&(b=a.na&32?a.Ha[c]+(b&8191)&4194303:b&-3932161);return b}
function Hb(a,b,c){var d,e,f;if(!(c&a.Ba))return f=b&65535,57344<=f&&(f|=a.Eb),f;d=b>>13;a.na&a.Sc[a.D]||(d&=7);e=a.s[a.D][d];f=(a.I[a.D][d]<<6)+(b&8191)&a.Ca;3932160<=f&&(f=id(a,f));if(a.cb)return f;f>=a.mc&&f<a.Eb?(a.G|=32,L(a,4,0,f)):f&1&&!(c&1)&&(a.G|=64,L(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.s[a.D][d]=e;if(f!=(4194170&a.Ca)||a.D)a.Pa=a.D,a.Qa=d;g&&(g&57344&&(0<=a.wa&&(g|=128),a.H&57344||(g|=a.H&4096|a.Pa<<5|a.Qa<<1,oc(a,a.H&-61695|g&61694)),L(a,168,64,-2)),a.H&61440||!(f<(4191360&a.Ca)||f>(4194239&a.Ca))||(a.H|=4096,a.H&512&&(a.g|=64)));return f}function hd(a){var b=a.V(a.b[6]|a.ta);a.b[6]=a.b[6]+2&65535;return b}function fd(a,b){var c=a.b[6]-2&65535;a.b[6]=c;a.F=a.F&65535|(a.F&-65536)<<8|16121856;a.g&256||a.Ya(4,-2,c);a.nb(c,b)}
function jd(a,b,c,d){var e,f,g=d&8?0:a.ta;switch(b){case 0:return L(a,4,0,-3),0;case 1:return 6==c&&a.Ya(d,0,a.b[6]),a.a-=3,7==c?a.b[c]:a.b[c]|g;case 2:f=2;e=a.b[c];6==c&&a.Ya(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.b[c];7!=c&&(e|=g);e=a.V(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.b[c]+f&65535;6==c&&a.Ya(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.b[c]-2&65535;7!=c&&(e|=g);e=a.V(e)|g;a.a-=8;break;case 6:return e=a.V(bd(a,2)),e=e+a.b[c]&65535,6==c&&a.Ya(d,0,
e),a.a-=6,e|g;case 7:return e=a.V(bd(a,2)),e=e+a.b[c]&65535,e=a.V(e|a.ta),a.a-=10,e|g}a.b[c]=a.b[c]+f&65535;a.F=a.F&65535|(a.F&-65536)<<8|(f<<3&248|c)<<16;return e}h.Zc=function(a,b,c){!this.D&&0>=b&&c<=this.Ga&&(this.g|=32)};h.$c=function(a,b,c){this.D||(65534<=c&&(c|=-65536),a&4&&c<=this.Ga&&(c<=this.Ga-32?L(this,4,0,-4):(this.G|=8,this.g|=32)))};h.bd=function(a){return this.ic(a)};h.dd=function(a){return this.Qb(a)};h.ye=function(a,b){this.Tb(a,b)};h.Ae=function(a,b){this.Ub(a,b)};
h.cd=function(a,b,c){return jd(this,a,b,c)};h.yc=function(a,b,c){return Hb(this,jd(this,a,b,c),c)};h.pe=function(a){return this.u.zb(this.Aa=a)};h.Bc=function(a){return this.u.zb(this.Aa=Hb(this,a,2))};h.Df=function(a,b){this.u.Ab(this.Aa=a,b)};h.Ec=function(a,b){this.u.Ab(this.Aa=Hb(this,a,4),b)};
function kd(a,b,c){var d=a.f=b&7;(b=a.h=(b&56)>>3)?(d=jd(a,b,d,2),c&65536||61440!==(a.i&61440)&&(d&=65535),a.D=a.i>>12&3,c=a.V(d|c&a.ta),a.D=a.i>>14&3):c=6!=d||(a.i>>2&12288)===(a.i&12288)?a.b[d]:a.ia[a.i>>12&3];return c}function ld(a,b,c,d){a.F=a.F&65535|1441792;var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=jd(a,b,e,4),c&65536||(e&=65535),a.D=a.i>>12&3,e=Hb(a,e|c&65536,4),a.D=a.i>>14&3,a.Hb(e,d)):6!=e||(a.i>>2&12288)===(a.i&12288)?a.b[e]=d:a.ia[a.i>>12&3]=d}
function md(a,b){b>>=6;var c=a.R=b&7;return(b=a.L=(b&56)>>3)?a.Fb(a.pa(b,c,3)):a.b[c+a.Pb]&a.pc}function nd(a,b){var c;b>>=6;var d=a.R=b&7;(b=a.L=(b&56)>>3)?c=a.Gb(a.pa(b,d,2)):c=a.b[d+a.Pb];return c}function od(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return jd(a,b,c,8)}function pd(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.Fb(a.pa(b,c,3)):a.b[c]&255}function qd(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.Gb(a.pa(b,d,2)):c=a.b[d];return c}
Va(function(){for(var a=C(document,B,"device"),b=0;b<a.length;b++){var c,d=a[b];c=z(d);switch(c.type){case "default":c=new M(c);A(c,d);break;case "pc11":c=new tc(c);A(c,d);break;case "rl11":c=new P(c);A(c,d);break;case "rk11":c=new Q(c),A(c,d)}}});
function J(a,b,c,d,e,f){this.b=a;this.id=uc+=2;this.c=null;this.Ta=b;this.wb=c;this.size=d||0;this.type=e||vc;this.A=e==wc;this.controller=null;this.hb=this.i=this.cc;this.W=this.D=this.dc;this.kb=this.j=this.yb;this.nb=this.m=this.gc;this.g=this.h=0;Ub(this);this.xa=this.ad=!1;if(this.size)if(f)this.controller=f,a=[null,0],this.c=a[0],xc(this,f.Vc);else if(cb)this.f=new ArrayBuffer(this.size),this.v=new DataView(this.f,0,this.size),this.a=new Uint8Array(this.f,0,this.size),this.o=new Uint16Array(this.f,
0,this.size>>1),this.c=new Int32Array(this.f,0,this.size>>2),xc(this,yc?zc:Bc);else{a=this.c=Array(this.size>>2);for(f=0;f<a.length;f++)a[f]=0;xc(this,Cc)}else xc(this)}h=J.prototype;h.save=function(){var a,b;if(this.controller)a=null;else if(cb)for(a=Array(this.size>>2),b=0;b<a.length;b++)a[b]=this.v.getInt32(b<<2,!0);else a=this.c;return a};
h.restore=function(a){if(this.controller)return!a;if(a&&this.size==a.length<<2){var b;if(cb)for(b=0;b<a.length;b++)this.v.setInt32(b<<2,a[b],!0);else this.c=a;return this.xa=!0}return!1};function xc(a,b){b||(b=Dc);Ec(a,b,void 0);Fc(a,b,void 0)}function Ec(a,b,c){c&&a.g||(a.hb=b[0]||a.cc,a.W=b[2]||a.dc);if(c||void 0===c)a.i=b[0]||a.cc,a.D=b[2]||a.dc}function Fc(a,b,c){c&&a.h||(a.kb=!a.A&&b[1]||a.yb,a.nb=!a.A&&b[3]||a.gc);if(c||void 0===c)a.j=b[1]||a.yb,a.m=b[3]||a.gc}
function Ub(a,b){a.g=a.h=0;b&&((a.g=b.g)&&Ec(a,Gc,!1),(a.h=b.h)&&Fc(a,Gc,!1))}h.cc=function(a,b){K(this.b,b,32);return 255};h.yb=function(a,b,c){K(this.b,c,32)};h.dc=function(a,b){return this.hb(a++,b++)|this.hb(a,b)<<8};h.gc=function(a,b,c){this.kb(a++,b&255,c++);this.kb(a,b>>8,c)};h.sd=function(a){return this.c[a>>2]>>>((a&3)<<3)&255};h.re=function(a,b){eb&&a&1&&K(this.b,b,64);b=a>>2;a=(a&3)<<3;var c=this.c[b]>>a;return 24>a?c&65535:c&255|(this.c[b+1]&255)<<8};
h.Ee=function(a,b){var c=a>>2;a=(a&3)<<3;this.c[c]=this.c[c]&~(255<<a)|b<<a;this.xa=!0};h.Cf=function(a,b,c){eb&&a&1&&K(this.b,c,64);c=a>>2;a=(a&3)<<3;24>a?this.c[c]=this.c[c]&~(65535<<a)|b<<a:(this.c[c]=this.c[c]&16777215|b<<24,c++,this.c[c]=this.c[c]&-256|b>>8);this.xa=!0};h.qd=function(a,b){return this.i(a,b)};h.oe=function(a,b){return this.D(a,b)};h.Ce=function(a,b,c){this.A?this.yb(0,0,c):this.j(a,b,c)};h.Af=function(a,b,c){this.A?this.yb(0,0,c):this.m(a,b,c)};h.pd=function(a){return this.a[a]};
h.rd=function(a){return this.a[a]};h.ne=function(a,b){eb&&a&1&&K(this.b,b,64);return this.v.getUint16(a,!0)};h.qe=function(a,b){eb&&a&1&&K(this.b,b,64);return!fb&&a&1?this.a[a]|this.a[a+1]<<8:this.o[a>>1]};h.Be=function(a,b){this.a[a]=b;this.xa=!0};h.De=function(a,b){this.a[a]=b;this.xa=!0};h.zf=function(a,b,c){eb&&a&1&&K(this.b,c,64);this.v.setUint16(a,b,!0);this.xa=!0};h.Bf=function(a,b,c){eb&&a&1&&K(this.b,c,64);!fb&&a&1?(this.a[a]=b,this.a[a+1]=b>>8):this.o[a>>1]=b;this.xa=!0};
var vc=0,fc=1,wc=2,Wb=4,ac=["NONE","RAM","ROM","VID","H/W"],uc=0,Dc=[],Cc=[J.prototype.sd,J.prototype.Ee,J.prototype.re,J.prototype.Cf],Gc=[J.prototype.qd,J.prototype.Ce,J.prototype.oe,J.prototype.Af];if(cb)var Bc=[J.prototype.pd,J.prototype.Be,J.prototype.ne,J.prototype.zf],zc=[J.prototype.rd,J.prototype.De,J.prototype.qe,J.prototype.Bf];var Hc;if(cb){var Ic=new ArrayBuffer(2);(new DataView(Ic)).setUint16(0,256,!0);Hc=256===(new Uint16Array(Ic))[0]}else Hc=!1;var yc=Hc;
function Jc(a,b){r.call(this,"CPU",a,0,1);b=+a.cycles||b;var c=+a.multiplier||1;this.hc=0;this.Nb=b;this.Ra=c;this.Vb=Math.round(this.Nb/1E4)/100;this.Xa=this.Vb*this.Ra;this.Wb=this.sb=this.$a=this.Ob=0;this.l.N=this.l.ec=!1;this.l.da=a.autoStart;"string"==typeof this.l.da&&(this.l.da="true"==this.l.da);this.l.Bb=!1;this.Lb=this.Za=0;this.Mb=+a.csStart;this.qb=+a.csInterval;this.rb=+a.csStop;this.Y=[];this.qc=this.ve.bind(this);this.Fa=this.va=this.Ea=this.a=this.aa=this.ua=this.pb=this.Da=this.ab=
this.Xb=this.Oa=0;this.ma=null;D(this)}n(Jc,r);h=Jc.prototype;h.ea=function(a,b,c,d){this.A=a;this.v=b;this.D=d;this.ma=a.f;for(a=0;a<Kc.length;a++)(b=this.j[Kc[a]])&&this.A.ha(null,Kc[a],b);D(this)};h.reset=function(){};h.save=function(){return null};h.restore=function(){return!1};
h.ga=function(a,b){var c=Lc(this.A,"autoStart");null!=c?this.l.da="true"==c?!0:"false"==c?!1:!!c:null==this.l.da&&(this.l.da=void 0===this.j.run);if(!b){if(a){Mc(this);if(!this.restore(a))return!1;Nc(this)}else this.reset();this.status("No debugger detected");this.l.da||this.Z("CPU will not be auto-started "+(this.ma?"(click Run to start)":"(type 'go' to start)"))}return!0};h.fa=function(a){return a?this.save():!0};h.da=function(){return this.l.N?!0:this.l.da?(Cb(this),!0):!1};h.xc=function(){return 0};
function Nc(a){void 0===a.Mb&&(a.Mb=0);void 0===a.qb&&(a.qb=-1);void 0===a.rb&&(a.rb=-1);a.l.Bb=0<=a.Mb&&0<a.qb;a.l.Bb&&(a.Lb=0,a.Za=a.Mb-a.Fa)}function Fb(a,b){if(a.l.Bb){var c=!1;a.Lb=a.Lb+a.xc()|0;a.Za-=b;0>=a.Za&&(a.Za+=a.qb,c=!0);0<=a.rb&&a.rb<=Oc(a)&&(a.qb=a.rb=-1,Nc(a),I(a),c=!0);c&&a.Z(Oc(a)+" cycles: checksum="+Ba(a.Lb))}}
h.ha=function(a,b,c){var d=this;switch(b){case "power":case "reset":return this.j[b]=c,!0;case "run":return this.j[b]=c,c.onclick=function(){var a;if(a=d.A)if(a=d.A,a.l.T)a=!0;else{var b=null,c,k=y(a.id);for(c=0;c<k.length&&(b=k[c],b===a||b.l.ready);c++);if(c==k.length)for(c=0;c<k.length&&(b=k[c],b===a||b.l.T);c++);c==k.length&&(b=a);v("The "+b.type+" component ("+b.id+") is not "+(b.l.ready?"powered yet":"ready yet"+(b.Db?" (waiting for notification)":""))+".");a=!1}a&&(d.l.N?I(d):Cb(d))},!0;case "speed":return this.j[b]=
c,!0;case "setSpeed":return this.j[b]=c,c.onclick=function(){Pc(d,d.Ra<<1,!0)},c.textContent=this.Xa.toFixed(2)+"Mhz",!0}return!1};function Eb(a,b,c){a.Fa+=b;c&&(a.Ea=a.a=a.aa=0)}function Qc(a,b){var c=1;b&&1<a.Ra&&a.Oa&&(c=a.Oa/a.Vb);a.Wb=Math.round(1E3/Rc);a.sb=Math.floor(a.Nb/Rc*c);b||(a.$a=a.sb);a.Ob=0}function Oc(a){return a.Fa+a.va+a.Ea-a.a}function Mc(a){a.Oa=0;a.Xb=0;a.Fa=a.va=a.Ea=a.a=a.aa=0;Nc(a);Pc(a,1)}
function Pc(a,b,c){if(void 0!==b){.8>a.Oa/a.Xa&&(b=1);a.Ra=b;b=a.Vb*a.Ra;if(a.Xa!=b){a.Xa=b;b=a.Xa.toFixed(2)+"Mhz";var d=a.j.setSpeed;d&&(d.textContent=b);a.Z("target speed: "+b)}c&&a.A&&Sc(a.A)}Eb(a,a.va);a.va=0;a.ua=ta();a.Da=0;Qc(a)}function kc(a,b){var c=a.Y.length;a.Y.push([-1,b]);return c}function lc(a,b,c,d){0<=b&&b<a.Y.length&&(d||0>a.Y[b][0])&&(c=a.Nb*a.Ra/1E3*c|0,a.l.N&&(c+=Tc(a)),a.Y[b][0]=c)}function Uc(a){for(var b=[],c=0;c<a.Y.length;c++)b.push(a.Y[c][0]);return b}
function Db(a,b){for(var c=a.Y.length-1;0<=c;c--){var d=a.Y[c];0>d[0]||(d[0]-=b,0>=d[0]&&(d[0]=-1,d[1]()))}}function Tc(a,b){var c=a.Ea-=a.a;a.a=a.aa=0;b&&(a.Ea=0);return c}
h.ve=function(){if(this.l.N){this.Ob>=this.Nb&&Qc(this,!0);this.ab=0;this.pb=ta();if(this.Da){var a=this.pb-this.Da;a>this.Wb&&(this.ua+=a,this.ua>this.pb&&(this.ua=this.pb))}try{do{for(var b,c=this.l.Bb?1:this.sb,d=this.Y.length-1;0<=d;d--){var e=this.Y[d];0>e[0]||c>e[0]&&(c=e[0])}b=c;try{this.Sb(b)}catch(f){if("number"!=typeof f)throw f;}b=Tc(this,!0);this.ab+=b;this.va+=b;Fb(this,b);Db(this,b);this.$a-=b;if(0>=this.$a){this.$a+=this.sb;++this.Xb>=Vc&&(this.A&&Gb(this.A,void 0),this.Xb=0);break}}while(this.l.N)}catch(f){I(this);
this.A&&this.A.stop(ta(),Oc(this));xa(this,f.stack||f.message);return}if(this.l.N){a=setTimeout;b=this.qc;this.Da=ta();c=this.Wb;this.ab&&(c=Math.round(c*this.ab/this.sb));c-=this.Da-this.pb;if(d=this.Da-this.ua)this.Oa=Math.round(this.va/(10*d))/100,864E5<=d&&(this.Fa=0,Pc(this));if(0>c||this.Oa<this.Xa)-1E3>c&&(this.ua-=c),c=0;this.Ob+=this.ab;this.Da+=c;a(b,c)}}};
function Cb(a){var b;a.l.error?(a.Z(a.toString()+" error"),b=!0):b=!1;if(!b)if(a.l.N)a.Z(a.toString()+" busy");else{Pc(a);a.l.N=!0;a.l.ec=!0;if(b=a.j.run)b.textContent="Halt";a.A&&a.A.start(a.ua,Oc(a));a.D||a.status("Started");setTimeout(a.qc,0)}}h.Sb=function(){return 0};function I(a){var b=!1;if(a.l.N){Tc(a);Eb(a,a.va);a.va=0;a.l.N=!1;if(b=a.j.run)b.textContent="Run";a.A&&a.A.stop(ta(),Oc(a));b=!0;a.D||a.status("Stopped")}a.l.complete=void 0;return b}var Rc=30,Vc=15,Kc=["power","reset"];
function Wc(a){var b=+a.model||1170;Jc.call(this,a,6666667);this.qa=b;this.nc=+a.addrReset||0;this.wa=this.i=this.C=this.u=this.m=this.o=this.w=0;this.b=this.ra=this.ja=[];this.I=this.s=this.Ha=this.ub=[];this.Aa=this.F=this.mc=this.Ba=this.Pa=this.Qa=this.Ca=this.G=this.tb=this.Sa=this.Ga=this.H=this.eb=this.fb=this.na=this.g=0;this.Sc=[4,2,0,1];this.Pb=0;this.pc=255;1120>=this.qa?(this.lc=Xc.bind(this),this.Ya=this.Zc,this.Pb=8,this.pc=-1,this.sc=255,this.rc=0):(this.lc=Yc.bind(this),this.Ya=this.$c,
this.sc=~(1792|(1140>=this.qa?2048:0))&65535,this.rc=1140<this.qa?2048:0);this.Zb=this.Yb=this.cb=0;this.K=null;this.ob=[];this.Fb=this.ic=this.bd;this.Gb=this.Qb=this.dd;this.Rb=this.Tb=this.ye;this.Hb=this.Ub=this.Ae;this.ta=this.Eb=0;this.pa=this.yc;this.W=this.Bc;this.nb=this.Ec;this.h=this.f=this.Kb=this.L=this.S=0;this.l.complete=!1}n(Wc,Jc);h=Wc.prototype;h.ea=function(a,b,c,d){Jc.prototype.ea.call(this,a,b,c,d);this.ic=b.Fc.bind(b);this.Qb=b.zb.bind(b);this.Tb=b.Gc.bind(b);this.Ub=b.Ab.bind(b)};
h.ga=function(a,b){for(var c=192,d=0;d<this.ob.length;d++){var e=this.ob[d];0>e.xb&&(e.xb=c,c+=4)}return Jc.prototype.ga.call(this,a,b)};
h.reset=function(){this.status("Model "+this.qa);this.l.N&&I(this);this.u=65536;this.m=32768;this.o=65535;this.w=32768;this.i=15;this.b=[0,0,0,0,0,0,0,this.nc,-1,-2,-3,-4,-5,-6,-7,-8];this.ra=[0,0,0,0,0,0];this.ja=[0,0,0,0];this.I=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.s=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[65535,65535,65535,65535,65535,65535,65535,65535,65535,65535,
65535,65535,65535,65535,65535,65535],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]];this.Ha=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.ub=[0,0,0,0,0,0,0,0];this.C=0;this.wa=-1;this.h=this.f=this.Kb=this.L=this.S=this.g=this.tb=0;Ab(this);Mc(this);this.l.error=!1;Jc.prototype.reset.call(this)};function Ab(a){a.H=0;a.eb=0;a.fb=0;a.na=0;a.G=0;a.Sa=0;a.Ga=255;a.Ba=0;a.Pa=0;a.Qa=0;a.Ca=262143;a.Aa=a.b[7];a.F=0;a.K=null;a.v&&(qc(a),a.mc=ec(a.v))}
function qc(a){a.Fb=a.ic;a.Gb=a.Qb;a.Rb=a.Tb;a.Hb=a.Ub;a.Ba?(a.ta=65536,a.Eb=a.na&16?4186112:253952,a.pa=a.yc,a.W=a.Bc,a.nb=a.Ec,Xb(a.v,a.na&16?22:18)):(a.ta=0,a.Eb=57344,a.pa=a.cd,a.W=a.pe,a.nb=a.Df,Xb(a.v,16))}function pc(a,b){b&=-3073;if(a.H!=b){b&57344&&!(a.H&57344)&&(a.eb=a.F>>16&65535,a.fb=a.F&65535);a.H=b;a.Pa=(b&96)>>5;a.Qa=(b&30)>>1;var c=0;b&257&&(c=4,b&1&&(c|=2));a.Ba!=c&&(a.Ba=c,qc(a))}}
function Zc(a,b,c){a.nc=b;R(a,b);sc(a,0);a.v.reset();Ab(a);if(c){for(b=2;5>=b;b++)a.b[b]=0;a.l.N||Cb(a)}else a.D?I(a)||a.D.g():!1===c&&I(a);!a.l.N&&a.ma&&a.ma.stop()}h.xc=function(){return 0};
h.save=function(){var a=new H(this);a.set(0,[this.b,this.ra,this.ja,this.I,this.s,this.Ha,this.ub,this.G,this.tb,this.Sa,this.Ga,this.H,this.eb,this.fb,this.na,this.Ba,this.Pa,this.Qa,this.Ca,this.Aa,this.g,this.F,this.wa,this.Yb,this.Zb]);a.set(1,[rc(this)]);a.set(2,[this.Fa,this.Ra,this.l.da]);a.set(3,$c(this));a.set(4,Uc(this));return a.data()};
h.restore=function(a){var b=ia(a[0]);this.b=b.next().value;this.ra=b.next().value;this.ja=b.next().value;this.I=b.next().value;this.s=b.next().value;this.Ha=b.next().value;this.ub=b.next().value;this.G=b.next().value;this.tb=b.next().value;this.Sa=b.next().value;this.Ga=b.next().value;this.H=b.next().value;this.eb=b.next().value;this.fb=b.next().value;this.na=b.next().value;this.Ba=b.next().value;this.Pa=b.next().value;this.Qa=b.next().value;this.Ca=b.next().value;this.Aa=b.next().value;this.g=b.next().value;
this.F=b.next().value;this.wa=b.next().value;this.Yb=b.next().value;this.Zb=b.next().value;b=a[1];sc(this,b[0]);b=a[2];this.Fa=b[0];Pc(this,b[1]);this.l.da=b[2];for(var b=a[3],c=b.length-1;0<=c;c--){var d;a:{for(d=0;d<this.ob.length;d++){var e=this.ob[d];if(e.xb===b[c]){d=e;break a}}d=null}d&&(d.next=this.K,this.K=d)}a=a[4];for(b=0;b<this.Y.length&&b<a.length;b++)this.Y[b][0]=a[b];return!0};function ad(a){return a.u&65536?1:0}function bd(a){return a.w&32768?8:0}
function cd(a,b){var c=a.b[7];a.b[7]=c+b&65535;return c}function S(a,b,c){c&&(R(a,a.b[7]+(b<<24>>23)),a.a-=2);a.a-=3}function R(a,b){a.b[7]=b&65535}function mc(a,b,c,d){b={xb:b,gb:c,message:d||0,name:gb[b],next:null};a.ob.push(b);return b}function oc(a,b){var c=a.K;if(c==b)a.K=b.next;else for(;c;){var d=c.next;if(d==b){c.next=d.next;break}c=d}a.K&&(a.g|=1)}
function N(a,b){if(b){if(b!=a.K){var c=a.K;if(!c||c.gb<=b.gb)b.next=c,a.K=b;else{do{var d=c.next;if(!d||d.gb<=b.gb){b.next=d;c.next=b;break}c=d}while(c)}}a.g|=1}}function $c(a){var b=[];for(a=a.K;a;)b.push(a.xb),a=a.next;return b}function dd(a){return a.g&64?(L(a,168,64,-6),!0):a.g&32?(L(a,4,32,-5),!0):a.g&16?(L(a,12,16,-7),!0):!1}function rc(a){return a.i=a.i&63728|bd(a)|(a.o&65535?0:4)|(a.m&32768?2:0)|ad(a)}
function sc(a,b){b&=a.sc;a.w=b<<12;a.o=~b&4;a.m=b<<14;a.u=b<<16;if((b^a.i)&a.rc)for(var c=a.ra.length;0<=--c;){var d=a.b[c];a.b[c]=a.ra[c];a.ra[c]=d}a.C=b>>14&3;c=a.i>>14&3;a.C!=c&&(a.ja[c]=a.b[6],a.b[6]=a.ja[a.C]);a.i=b;a.g&=-3;a.g|=a.K?2:1}h.ia=function(a){this.w=this.o=a;this.m=0};h.La=function(a,b){this.w=this.o=this.u=a;this.m=b||0};function ed(a,b){a.w=a.o=a.u=b;a.m=a.w^a.u>>1}function fd(a,b,c,d){a.w=a.o=a.u=b;a.m=(c^d)&(d^b)}
function L(a,b,c,d){if(!a.cb){0>a.wa?a.wa=rc(a):a.C||(d=-4);-4==d&&(a.g&256&&(d=-1),a.g|=256,a.G|=4,a.b[6]=b=4);if(-1!=d){a.F=b|4143316992;a.C=0;var e=a.W(b|a.ta),f=a.W(b+2&65535|a.ta);sc(a,f&-12289|a.wa>>2&12288);gd(a,a.wa);gd(a,a.b[7]);R(a,e)}a.a-=5;a.g&=~(c|19);a.g|=129;a.wa=-1;a.Yb=d;a.Zb=b;-1==d&&I(a);if(-4<=d)throw b;}}function hd(a){var b=id(a),c=id(a);a.i&49152&&(c=c&-225|a.i&63712);R(a,b);sc(a,c);a.g&=-17}
function jd(a,b){var c=b>>13&31;31>c&&(b=a.na&32?a.Ha[c]+(b&8191)&4194303:b&-3932161);return b}
function Jb(a,b,c){var d,e,f;if(!(c&a.Ba))return f=b&65535,57344<=f&&(f|=a.Eb),f;d=b>>13;a.na&a.Sc[a.C]||(d&=7);e=a.s[a.C][d];f=(a.I[a.C][d]<<6)+(b&8191)&a.Ca;3932160<=f&&(f=jd(a,f));if(a.cb)return f;f>=a.mc&&f<a.Eb?(a.G|=32,L(a,4,0,f)):f&1&&!(c&1)&&(a.G|=64,L(a,4,0,f));var g=0;switch(e&7){case 1:g=4096;case 2:e|=128;c&4&&(g=8192);break;case 4:g=4096;case 5:c&4&&(g=4096);case 6:e|=c&4?192:128;break;default:g=32768}32512!=(e&32520)&&(e&8?e&32512&&(b&8128)<(e>>2&8128)&&(g|=16384):(b&8128)>(e>>2&8128)&&
(g|=16384));a.s[a.C][d]=e;if(f!=(4194170&a.Ca)||a.C)a.Pa=a.C,a.Qa=d;g&&(g&57344&&(0<=a.wa&&(g|=128),a.H&57344||(g|=a.H&4096|a.Pa<<5|a.Qa<<1,pc(a,a.H&-61695|g&61694)),L(a,168,64,-2)),a.H&61440||!(f<(4191360&a.Ca)||f>(4194239&a.Ca))||(a.H|=4096,a.H&512&&(a.g|=64)));return f}function id(a){var b=a.W(a.b[6]|a.ta);a.b[6]=a.b[6]+2&65535;return b}function gd(a,b){var c=a.b[6]-2&65535;a.b[6]=c;a.F=a.F&65535|(a.F&-65536)<<8|16121856;a.g&256||a.Ya(4,-2,c);a.nb(c,b)}
function kd(a,b,c,d){var e,f,g=d&8?0:a.ta;switch(b){case 0:return L(a,4,0,-3),0;case 1:return 6==c&&a.Ya(d,0,a.b[6]),a.a-=3,7==c?a.b[c]:a.b[c]|g;case 2:f=2;e=a.b[c];6==c&&a.Ya(d,f,e);7!=c&&(e|=g,6>c&&d&1&&(f=1));a.a-=3;break;case 3:f=2;e=a.b[c];7!=c&&(e|=g);e=a.W(e);e|=g;a.a-=7;break;case 4:f=-2;6>c&&d&1&&(f=-1);e=a.b[c]+f&65535;6==c&&a.Ya(d,f,e);7!=c&&(e|=g);a.a-=4;break;case 5:f=-2;e=a.b[c]-2&65535;7!=c&&(e|=g);e=a.W(e)|g;a.a-=8;break;case 6:return e=a.W(cd(a,2)),e=e+a.b[c]&65535,6==c&&a.Ya(d,0,
e),a.a-=6,e|g;case 7:return e=a.W(cd(a,2)),e=e+a.b[c]&65535,e=a.W(e|a.ta),a.a-=10,e|g}a.b[c]=a.b[c]+f&65535;a.F=a.F&65535|(a.F&-65536)<<8|(f<<3&248|c)<<16;return e}h.Zc=function(a,b,c){!this.C&&0>=b&&c<=this.Ga&&(this.g|=32)};h.$c=function(a,b,c){this.C||(65534<=c&&(c|=-65536),a&4&&c<=this.Ga&&(c<=this.Ga-32?L(this,4,0,-4):(this.G|=8,this.g|=32)))};h.bd=function(a){return this.ic(a)};h.dd=function(a){return this.Qb(a)};h.ye=function(a,b){this.Tb(a,b)};h.Ae=function(a,b){this.Ub(a,b)};
h.cd=function(a,b,c){return kd(this,a,b,c)};h.yc=function(a,b,c){return Jb(this,kd(this,a,b,c),c)};h.pe=function(a){return this.v.zb(this.Aa=a)};h.Bc=function(a){return this.v.zb(this.Aa=Jb(this,a,2))};h.Df=function(a,b){this.v.Ab(this.Aa=a,b)};h.Ec=function(a,b){this.v.Ab(this.Aa=Jb(this,a,4),b)};
function ld(a,b,c){var d=a.f=b&7;(b=a.h=(b&56)>>3)?(d=kd(a,b,d,2),c&65536||61440!==(a.i&61440)&&(d&=65535),a.C=a.i>>12&3,c=a.W(d|c&a.ta),a.C=a.i>>14&3):c=6!=d||(a.i>>2&12288)===(a.i&12288)?a.b[d]:a.ja[a.i>>12&3];return c}function md(a,b,c,d){a.F=a.F&65535|1441792;var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=kd(a,b,e,4),c&65536||(e&=65535),a.C=a.i>>12&3,e=Jb(a,e|c&65536,4),a.C=a.i>>14&3,a.Hb(e,d)):6!=e||(a.i>>2&12288)===(a.i&12288)?a.b[e]=d:a.ja[a.i>>12&3]=d}
function nd(a,b){b>>=6;var c=a.S=b&7;return(b=a.L=(b&56)>>3)?a.Fb(a.pa(b,c,3)):a.b[c+a.Pb]&a.pc}function od(a,b){var c;b>>=6;var d=a.S=b&7;(b=a.L=(b&56)>>3)?c=a.Gb(a.pa(b,d,2)):c=a.b[d+a.Pb];return c}function pd(a,b){var c=a.f=b&7;b=a.h=(b&56)>>3;return kd(a,b,c,8)}function qd(a,b){var c=a.f=b&7;return(b=a.h=(b&56)>>3)?a.Fb(a.pa(b,c,3)):a.b[c]&255}function rd(a,b){var c,d=a.f=b&7;(b=a.h=(b&56)>>3)?c=a.Gb(a.pa(b,d,2)):c=a.b[d];return c}
function T(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.Kb=a.pa(b,e,7),c=0>c?a.b[-c-1]&255:c,a.Rb(e,d.call(a,c,a.Fb(e))),e&1&&a.a--):(b=a.b[e],c=0>c?a.b[-c-1]&255:c,a.b[e]=b&65280|d.call(a,c,b&255))}function U(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.pa(b,e,6),a.Hb(e,d.call(a,0>c?a.b[-c-1]:c,a.Gb(e)))):a.b[e]=d.call(a,0>c?a.b[-c-1]:c,a.b[e])}
function rd(a,b,c,d,e){var f=a.f=b&7;(b=a.h=(b&56)>>3)?(d=a.pa(b,f,5),e.call(a,(c=0>c?a.b[-c-1]&255:c)<<8),a.Rb(d,c),d&1&&a.a--):(c?(c=0>c?a.b[-c-1]&255:c,a.b[f]=a.b[f]&~d|c<<24>>24&d):a.b[f]&=~d,e.call(a,c<<8))}function sd(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.pa(b,e,4),d.call(a,c=0>c?a.b[-c-1]:c),a.Hb(e,c)):(a.b[e]=c=0>c?a.b[-c-1]:c,d.call(a,c))}
h.Sb=function(a){this.l.complete=!0;var b=a?this.l.ec?0:1:-1;this.l.ec=!1;this.Ea=this.a=a;this.g=this.g&-5|0;do{if(this.g){if(a=this.g&11)if(a=!1,this.g&2){var c=160,d=(this.Sa&224)>>5,e=this.K&&this.K.gb>d?this.K:null;e&&(c=e.xb,d=e.gb);d>(this.i&224)>>5?(this.g&8&&(bd(this,2),this.g&=-9),L(this,c,0,-10),d=!0):d=!1;d&&(e&&nc(this,e),a=!0);this.K||this.Sa||(this.g&=-3)}else this.g&1&&this.g++;if(a){if(this.g&4&&this.C.b(this.b[7],b)){H(this);break}if(0>b)break}if(this.g&112&&cd(this)){if(this.g&
4&&this.C.b(this.b[7],b)){H(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.F=this.b[7];e=this.V(a);this.b[7]=a+2&65535;this.lc(e)}while(0<this.a);return this.l.complete?this.Ea-this.a:!1===this.l.complete?-1:0};Va(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Vc(d);A(d,c)}});function td(a,b){var c=b+a;this.w=this.o=this.v=c;this.m=(a^c)&(b^c);return c&65535}
function ud(a,b){var c=b+a,d=c<<8;this.w=this.o=this.v=d;this.m=(a<<8^d)&(b<<8^d);return c&255}function vd(a,b){a=b<<1;dd(this,a);return a&65535}function wd(a,b){a=b<<1;dd(this,a<<8);return a&255}function xd(a,b){a=b&32768|b>>1|b<<16;dd(this,a);return a&65535}function yd(a,b){a=b&128|b>>1|b<<8;dd(this,a<<8);return a&255}function zd(a,b){a=b&~a;this.ha(a);return a}function Ad(a,b){a=b&~a;this.ha(a<<8);return a}function Bd(a,b){a|=b;this.ha(a);return a}function Cd(a,b){a|=b;this.ha(a<<8);return a}
function Dd(a,b){a=~b|65536;this.La(a);return a&65535}function Ed(a,b){a=~b|256;this.La(a<<8);return a&255}function Fd(a,b){this.w=this.o=a=b-a;this.m=b&(b^a);return a&65535}function Gd(a,b){a=b-a;var c=a<<8;b<<=8;this.w=this.o=c;this.m=b&(b^c);return a&255}function Hd(a,b){this.w=this.o=a=b+a;this.m=a&(b^a);return a&65535}function Id(a,b){a=b+a;var c=a<<8;this.w=this.o=c;this.m=c&(b<<8^c);return a&255}function Jd(a,b){a=-b;this.La(a,a&b&32768);return a&65535}
function Kd(a,b){a=-b;this.La(a<<8,(a&b&128)<<8);return a&255}function Ld(a,b){a=b<<1|this.v>>16&1;dd(this,a);return a&65535}function Md(a,b){a=b<<1|this.v>>16&1;dd(this,a<<8);return a&255}function Nd(a,b){a=(this.v&65536|b)>>1|b<<16;dd(this,a);return a&65535}function Od(a,b){a=((this.v&65536)>>8|b)>>1|b<<8;dd(this,a<<8);return a&255}function Pd(a,b){var c=b-a;ed(this,c,a,b);return c&65535}function Qd(a,b){var c=b-a;ed(this,c<<8,a<<8,b<<8);return c&255}
function Rd(a,b){this.w=this.o=b&65280;this.m=this.v=0;return(b<<8|b>>8)&65535}function Sd(a,b){a^=b;this.ha(a);return a&65535}function Td(a){U(this,a,nd(this,a),td);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}
function Ud(a){var b=qd(this,a);a=a>>6&7;var c=this.b[a];c&32768&&(c|=4294901760);this.v=this.m=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.v=c<<17-b,c>>=b;else if(b)if(16<b)this.m=c,c=0;else{this.v=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.m=32768)}this.b[a]=c&65535;this.w=this.o=c;this.a-=(this.h?6:7)+b}
function Vd(a){var b=qd(this,a);a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.v=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.v=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.m=32768)):d=c;this.b[a]=d>>16&65535;this.b[a|1]=d&65535;this.w=d>>16;this.o=d>>16|d;this.a-=(this.h?6:7)+b}function Wd(a){S(this,a,!$c(this))}function Xd(a){S(this,a,$c(this))}
function Yd(a){U(this,a,nd(this,a),zd);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function Zd(a){T(this,a,md(this,a),Ad);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function $d(a){U(this,a,nd(this,a),Bd);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function ae(a){T(this,a,md(this,a),Cd);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}
function be(a){var b=nd(this,a);a=qd(this,a);this.ha((0>b?this.b[-b-1]:b)&a);this.a-=this.h?4+(this.R&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}function ce(a){var b=md(this,a);a=pd(this,a);this.ha(((0>b?this.b[-b-1]&255:b)&a)<<8);this.a-=this.h?4+(this.R&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}function de(a){S(this,a,this.o&65535?0:4)}function ee(a){S(this,a,!ad(this)==!(this.m&32768))}function fe(a){S(this,a,!!(this.o&65535)&&!ad(this)==!(this.m&32768))}
function ge(a){S(this,a,!$c(this)&&!!(this.o&65535))}function he(a){S(this,a,(this.o&65535?0:4)||!ad(this)!=!(this.m&32768))}function ie(a){S(this,a,$c(this)||(this.o&65535?0:4))}function je(a){S(this,a,!ad(this)!=!(this.m&32768))}function ke(a){S(this,a,ad(this))}function le(a){S(this,a,!!(this.o&65535))}function me(a){S(this,a,!ad(this))}function ne(){L(this,12,0,-9)}function oe(a){S(this,a,!0)}function pe(a){S(this,a,!(this.m&32768))}function qe(a){S(this,a,this.m&32768?2:0)}
function V(a){a&1&&(this.v=0);a&2&&(this.m=0);a&4&&(this.o=1);a&8&&(this.w=0);this.a-=5}function re(a){var b=nd(this,a);a=qd(this,a);var c=(b=0>b?this.b[-b-1]:b)-a;ed(this,c,a,b);this.a-=this.h?4+(this.R&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}function se(a){var b=md(this,a);a=pd(this,a);var c=(b=(0>b?this.b[-b-1]&255:b)<<8)-(a<<=8);ed(this,c,a,b);this.a-=this.h?4+(this.R&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}
function te(a){var b=qd(this,a);if(b){a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.v=this.m=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.b[a]=d&65535,this.b[a|1]=c-d*b&65535,this.o=d>>16|d,this.w=d>>16):(this.m=32768,this.o=d>>15|d,this.w=c>>16,-1===b&&65534===this.b[a]&&(this.b[a]=this.b[a|1]=1));this.a-=53}else this.o=this.w=0,this.m=32768,this.v=65536,this.a-=7}function ue(){L(this,24,0,-9);this.a-=20}
function ve(){this.i&49152?(this.G|=128,L(this,4,0,-8)):(this.ma&&1120==this.qa&&this.ma.setData(this.b[0],!0),this.C?this.C.i():H(this));this.a-=7}function we(){L(this,16,0,-9);this.a-=20}var xe=[0,7,7,10,7,11,9,13];function ye(a){this.Y=this.a;R(this,od(this,a));this.a=this.Y-xe[this.h]}var ze=[0,14,14,17,14,18,16,20];function Ae(a){this.Y=this.a;var b=od(this,a);a=a>>6&7;fd(this,this.b[a]);this.b[a]=this.b[7];R(this,b);this.a=this.Y-ze[this.h]}var Be=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];
function Ce(a){var b=nd(this,a);this.Y=this.a;sd(this,a,b,this.ha);this.a=this.Y-Be[(this.L?8:0)+this.h]+(7!=this.f||this.h?0:2)}function De(a){var b=md(this,a);rd(this,a,b,65535,this.ha);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}var Ee=[7,13,13,17,14,18,17,21];function Fe(a){var b=qd(this,a);a=a>>6&7;b=(b<<16>>16)*(this.b[a]<<16>>16);this.b[a]=b>>16&65535;this.b[a|1]=b&65535;b|=0;this.w=b>>16;this.o=this.w|b;this.m=0;this.v=-32768>b||32767<b?65536:0;this.a-=23}
function Ge(){this.a-=5}function He(){this.i&49152||(this.u.reset(),xb(this),this.ma&&this.ma.setData(this.b[0],!0));this.a-=667}function Ie(a){if(a&8)L(this,8,0,-9);else{var b=hd(this);a&=7;7==a?R(this,b):(R(this,this.b[a]),this.b[a]=b);this.a-=9}}function Je(){gd(this);this.a-=13}function W(a){a&1&&(this.v=65536);a&2&&(this.m=32768);a&4&&(this.o=0);a&8&&(this.w=32768);this.a-=5}function Ke(a){var b=(a&448)>>6;if(this.b[b]=this.b[b]-1&65535)R(this,this.b[7]-((a&63)<<1)),this.a+=1;this.a-=6}
function Le(a){U(this,a,nd(this,a),Pd);this.a-=this.h?9+(this.R&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function Me(a){U(this,a,0,Rd);this.a-=this.h?9:3+(7==this.f?2:0)}function Ne(){L(this,28,0,-9)}function Oe(){this.ma&&(this.ma.la=this.b[7],this.ma.setData(this.b[0],!0));this.g|=8;bd(this,-2);this.a-=3}function Pe(a){U(this,a,this.b[(a>>6&7)+this.Pb],Sd);this.a-=this.h?9:3+(7==this.f?2:0)}function X(){L(this,8,0,-9)}function Wc(a){Qe[a>>12].call(this,a)}
function Re(a){Se[a>>6&3].call(this,a)}function Te(a){Ue[a>>6&3].call(this,a)}function Ve(a){We[a>>6&3].call(this,a)}function Xe(a){Ye[a&15].call(this,a)}function Ze(a){$e[a&15].call(this,a)}function af(a){bf[a>>6&3].call(this,a)}function cf(a){df[a>>6&3].call(this,a)}function ef(a){ff[a>>6&3].call(this,a)}
var Qe=[function(a){gf[a>>8&15].call(this,a)},Ce,re,be,Yd,$d,Td,X,function(a){hf[a>>8&15].call(this,a)},De,se,ce,Zd,ae,Le,X],gf=[function(a){jf[a>>4&15].call(this,a)},oe,le,de,ee,je,fe,he,Ae,Ae,Re,Te,Ve,X,X,X],Se=[function(a){sd(this,a,0,this.La);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Dd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Hd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Fd);this.a-=this.h?9:3+(7==this.f?2:0)}],Ue=[function(a){U(this,a,0,Jd);
this.a-=this.h?11:6},function(a){U(this,a,$c(this)?1:0,td);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,$c(this)?1:0,Pd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=qd(this,a);this.La(a);this.a-=this.h?4:3+(7==this.f?2:0)}],We=[function(a){U(this,a,0,Nd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Ld);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,xd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,vd);this.a-=this.h?9:3+(7==this.f?2:0)}],jf=
[function(a){kf[a&15].call(this,a)},X,X,X,ye,ye,ye,ye,Ie,X,Xe,Ze,Me,Me,Me,Me],kf=[ve,Oe,Je,ne,we,He,X,X,X,X,X,X,X,X,X,X],Ye=[Ge,function(){this.v=0;this.a-=5},function(){this.m=0;this.a-=5},V,function(){this.o=1;this.a-=5},V,V,V,function(){this.w=0;this.a-=5},V,V,V,V,V,V,V],$e=[Ge,function(){this.v=65536;this.a-=5},function(){this.m=32768;this.a-=5},W,function(){this.o=0;this.a-=5},W,W,W,function(){this.w=32768;this.a-=5},W,W,W,W,W,W,W],hf=[me,ke,ge,ie,pe,qe,Wd,Xd,ue,Ne,af,cf,ef,X,X,X],bf=[function(a){rd(this,
a,0,255,this.La);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,Ed);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Id);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Gd);this.a-=this.h?9:3+(7==this.f?2:0)}],df=[function(a){T(this,a,0,Kd);this.a-=this.h?11:6},function(a){T(this,a,$c(this)?1:0,ud);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,$c(this)?1:0,Qd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=pd(this,a);this.La(a<<8);this.a-=this.h?4:3+
(7==this.f?2:0)}],ff=[function(a){T(this,a,0,Od);this.a-=this.h?9+(this.Kb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,Md);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,yd);this.a-=this.h?9+(this.Kb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,wd);this.a-=this.h?9:3+(7==this.f?2:0)}];function Xc(a){lf[a>>12].call(this,a)}
var lf=[function(a){mf[a>>8&15].call(this,a)},Ce,re,be,Yd,$d,Td,function(a){nf[a>>8&15].call(this,a)},function(a){of[a>>8&15].call(this,a)},De,se,ce,Zd,ae,Le,X],mf=[function(a){pf[a>>4&15].call(this,a)},oe,le,de,ee,je,fe,he,Ae,Ae,Re,Te,Ve,function(a){qf[a>>6&3].call(this,a)},X,X],qf=[function(a){a=this.b[7]+((a&63)<<1)&65535;var b=this.V(a|this.ta);R(this,this.b[5]);this.b[6]=a+2&65535;this.b[5]=b;this.a-=8},function(a){a=kd(this,a,0);this.ha(a);fd(this,a);this.a-=11},function(a){var b=hd(this);this.Y=
this.a;this.ha(b);ld(this,a,0,b);this.a=this.Y-Ee[this.h]},function(a){sd(this,a,ad(this)?65535:0,this.ha);this.a-=this.h?9:3+(7==this.f?2:0)}],pf=[function(a){rf[a&15].call(this,a)},X,X,X,ye,ye,ye,ye,Ie,function(a){!(a&8)||1145>this.qa?L(this,8,0,-9):(this.i&49152||(this.i=this.i&-225|(a&7)<<5,this.g|=1,this.g&=-3),this.a-=5)},Xe,Ze,Me,Me,Me,Me],rf=[ve,Oe,function(){gd(this);this.g|=this.i&16;this.a-=13},ne,we,He,Je,function(){L(this,8,0,-9)},X,X,X,X,X,X,X,X],nf=[Fe,Fe,te,te,Ud,Ud,Vd,Vd,Pe,Pe,X,
X,X,X,Ke,Ke],of=[me,ke,ge,ie,pe,qe,Wd,Xd,ue,Ne,af,cf,ef,function(a){1145>this.qa?L(this,8,0,-9):sf[a>>6&3].call(this,a)},X,X],sf=[function(){L(this,8,0,-9)},function(a){a=kd(this,a,65536);this.ha(a);fd(this,a);this.a-=11},function(a){var b=hd(this);this.Y=this.a;this.ha(b);ld(this,a,65536,b);this.a=this.Y-Ee[this.h]},function(){L(this,8,0,-9)}];
function tf(a){r.call(this,"ROM",a,0,128);this.ja=this.b=null;this.h=+a.addr;this.a=+a.size;this.i=!1;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.g=a.file;this.m=F(this.g);if(this.g){a=this.g;var b=Ca(this.m);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;G(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(ra(c.Na,a,b),(a=Ka(a,b))?(c.b=a.O,c.ja=a.ja):c.g=null);uf(c)})}}n(tf,r);
h=tf.prototype;h.ca=function(a,b,c,d){this.u=b;this.c=c;this.C=d;uf(this)};h.ea=function(){this.ja&&(this.C&&this.C.a(this.id,this.h,this.a,this.ja),delete this.ja);return!0};h.da=function(){return!0};
function uf(a){if(!ya(a)){if(a.g){if(!a.b||!a.u)return;a.a||(a.a=a.b.length);if(a.b.length!=a.a)xa(a,"ROM size ("+Ba(a.b.length,8,!0)+") does not match specified size ("+Ba(a.a,8,!0)+")");else{var b;a:{b=a.h;if(57344<=b&&b<57344+Ob){var c={},c=(c[b]=[tf.prototype.be,tf.prototype.mf,null,null,null,a.a>>1],c);if(lb(a.u,a,c)){a.status("Added "+a.a+"-byte ROM at "+Aa(b));b=a.i=!0;break a}}else if(Ub(a.u,b,a.a,vc)){for(c=0;c<a.b.length;c++)cc(a.u,b+c,a.b[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?
b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.u,g=d.a,k=[],l=d.h>>>f.h;0<g&&l<f.a.length;)k.push(f.a[l++]),g-=f.g;f=d.u;d=d.a;g=0;for(e>>>=f.h;0<d&&e<f.a.length;){l=k[g++];if(!l)break;f.a[e++]=l;d-=f.g}}a.i||delete a.b}}}D(a)}}h.be=function(a){return this.b[a-this.h]};h.mf=function(){};Va(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new tf(d);A(d,c)}});
function vf(a){r.call(this,"RAM",a);this.ja=this.b=null;this.f=+a.addr;this.g=+a.size;this.aa=a.load;this.Z=a.exec;null!=this.aa&&(this.aa=+this.aa);null!=this.Z&&(this.Z=+this.Z);this.h=!1;this.a=a.file;this.i=F(this.a);if(this.a){a=this.a;var b=Ca(this.i);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;G(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(ra(c.Na,a,b),(a=Ka(a,b))?(c.b=a.O,c.ja=a.ja,null==
c.aa&&(c.aa=a.aa),null==c.Z&&(c.Z=a.Z)):c.a=null);wf(c)})}}n(vf,r);vf.prototype.ca=function(a,b,c,d){this.u=b;this.c=c;this.C=d;wf(this)};vf.prototype.ea=function(){this.ja&&(this.C&&this.C.a(this.id,this.f,this.g,this.ja),delete this.ja);return!0};vf.prototype.da=function(){return!0};
function wf(a){if(a.u&&(!a.h&&a.g&&(Ub(a.u,a.f,a.g,ec)?a.h=!0:a.g=0),!ya(a))){if(!a.h)v("No RAM allocated");else if(a.a){if(!a.b||!a.u)return;xf(a,a.b,a.aa,a.Z,a.f)?a.status('Loaded image "'+a.i+'"'):a.B('Error loading image "'+a.i+'"')}D(a)}}
vf.prototype.reset=function(){if(this.h){for(var a=this.u,b=this.f,c=this.g,d=b&a.f,b=b>>>a.h;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(cb&&e.a)for(k=d;f--&&k<e.a.length;k++)e.a[k]=g;else for(k=d;f--&&k<e.size;k++)e.j(d,g,e.Ta+d);c-=a.g;b++;d=0}this.b&&xf(this,this.b,this.aa,this.Z,this.f,!0)}};
function xf(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){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),x=l,w=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(w)for(;w--;)cc(a.u,t++,b[x++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)cc(a.u,c+e,b[e]);k=!0}if(k){if(null==d||g)H(a.c),f=!1;null!=d&&Yc(a.c,d,f)}return k}Va(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new vf(d);A(d,c)}});function yf(a){r.call(this,"Keyboard",a,0,1024);D(this)}n(yf,r);yf.prototype.ga=function(){return!1};yf.prototype.ca=function(a,b,c,d){this.A=a;this.c=c;this.C=d};Va(function(){for(var a=C(document,B,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new yf(d);A(d,c)}});
function Z(a){r.call(this,"SerialPort",a,0,262144);this.D=+a.adapter;this.K=+a.baudReceive||9600;this.Y=+a.baudTransmit||9600;this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.g=this.i=null;this.R=+a.tabSize;this.L=+a.charBOL;this.m=0;this.v=!0;this.H=this.F=null;this.I=this.W=-1;this.o=this.a=this.b=0;this.h=[];var b=a.binding;if("console"==b)this.i="";else{var c;a=zf;b&&(void 0===c&&(c="Panel"),(c=wa(c,this.id))&&(b=c.j[b])&&this.ga(null,a,b))}this.f=this.s=this.G=null;this.exports=
function sd(a,b,c,d,e){var f=a.f=b&7;(b=a.h=(b&56)>>3)?(d=a.pa(b,f,5),e.call(a,(c=0>c?a.b[-c-1]&255:c)<<8),a.Rb(d,c),d&1&&a.a--):(c?(c=0>c?a.b[-c-1]&255:c,a.b[f]=a.b[f]&~d|c<<24>>24&d):a.b[f]&=~d,e.call(a,c<<8))}function td(a,b,c,d){var e=a.f=b&7;(b=a.h=(b&56)>>3)?(e=a.pa(b,e,4),d.call(a,c=0>c?a.b[-c-1]:c),a.Hb(e,c)):(a.b[e]=c=0>c?a.b[-c-1]:c,d.call(a,c))}
h.Sb=function(a){this.l.complete=!0;var b=a?this.l.ec?0:1:-1;this.l.ec=!1;this.Ea=this.a=a;this.g=this.g&-5|0;do{if(this.g){if(a=this.g&11)if(a=!1,this.g&2){var c=160,d=(this.Sa&224)>>5,e=this.K&&this.K.gb>d?this.K:null;e&&(c=e.xb,d=e.gb);d>(this.i&224)>>5?(this.g&8&&(cd(this,2),this.g&=-9),L(this,c,0,-10),d=!0):d=!1;d&&(e&&oc(this,e),a=!0);this.K||this.Sa||(this.g&=-3)}else this.g&1&&this.g++;if(a){if(this.g&4&&this.D.b(this.b[7],b)){I(this);break}if(0>b)break}if(this.g&112&&dd(this)){if(this.g&
4&&this.D.b(this.b[7],b)){I(this);break}if(0>b)break}}this.g=this.g&15|this.i&16;a=this.F=this.b[7];e=this.W(a);this.b[7]=a+2&65535;this.lc(e)}while(0<this.a);return this.l.complete?this.Ea-this.a:!1===this.l.complete?-1:0};Va(function(){for(var a=C(document,B,"cpu"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Wc(d);A(d,c)}});function ud(a,b){var c=b+a;this.w=this.o=this.u=c;this.m=(a^c)&(b^c);return c&65535}
function vd(a,b){var c=b+a,d=c<<8;this.w=this.o=this.u=d;this.m=(a<<8^d)&(b<<8^d);return c&255}function wd(a,b){a=b<<1;ed(this,a);return a&65535}function xd(a,b){a=b<<1;ed(this,a<<8);return a&255}function yd(a,b){a=b&32768|b>>1|b<<16;ed(this,a);return a&65535}function zd(a,b){a=b&128|b>>1|b<<8;ed(this,a<<8);return a&255}function Ad(a,b){a=b&~a;this.ia(a);return a}function Bd(a,b){a=b&~a;this.ia(a<<8);return a}function Cd(a,b){a|=b;this.ia(a);return a}function Dd(a,b){a|=b;this.ia(a<<8);return a}
function Ed(a,b){a=~b|65536;this.La(a);return a&65535}function Fd(a,b){a=~b|256;this.La(a<<8);return a&255}function Gd(a,b){this.w=this.o=a=b-a;this.m=b&(b^a);return a&65535}function Hd(a,b){a=b-a;var c=a<<8;b<<=8;this.w=this.o=c;this.m=b&(b^c);return a&255}function Id(a,b){this.w=this.o=a=b+a;this.m=a&(b^a);return a&65535}function Jd(a,b){a=b+a;var c=a<<8;this.w=this.o=c;this.m=c&(b<<8^c);return a&255}function Kd(a,b){a=-b;this.La(a,a&b&32768);return a&65535}
function Ld(a,b){a=-b;this.La(a<<8,(a&b&128)<<8);return a&255}function Md(a,b){a=b<<1|this.u>>16&1;ed(this,a);return a&65535}function Nd(a,b){a=b<<1|this.u>>16&1;ed(this,a<<8);return a&255}function Od(a,b){a=(this.u&65536|b)>>1|b<<16;ed(this,a);return a&65535}function Pd(a,b){a=((this.u&65536)>>8|b)>>1|b<<8;ed(this,a<<8);return a&255}function Qd(a,b){var c=b-a;fd(this,c,a,b);return c&65535}function Rd(a,b){var c=b-a;fd(this,c<<8,a<<8,b<<8);return c&255}
function Sd(a,b){this.w=this.o=b&65280;this.m=this.u=0;return(b<<8|b>>8)&65535}function Td(a,b){a^=b;this.ia(a);return a&65535}function Ud(a){U(this,a,od(this,a),ud);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}
function Vd(a){var b=rd(this,a);a=a>>6&7;var c=this.b[a];c&32768&&(c|=4294901760);this.u=this.m=0;b&=63;if(b&32)b=64-b,16<b&&(b=16),this.u=c<<17-b,c>>=b;else if(b)if(16<b)this.m=c,c=0;else{this.u=c<<=b;var d=c>>15&65535;d&&65535!==d&&(this.m=32768)}this.b[a]=c&65535;this.w=this.o=c;this.a-=(this.h?6:7)+b}
function Wd(a){var b=rd(this,a);a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.u=this.m=0;b&=63;if(b&32){b=64-b;32<b&&(b=32);var d=c>>b-1;this.u=d<<16;d>>=1;c&2147483648&&(d|=4294967295<<32-b)}else b?(d=c<<b-1,this.u=d>>15,d<<=1,32<b&&(b=32),(c>>=32-b)&&4294967295!==(c|4294967295<<b&4294967295)&&(this.m=32768)):d=c;this.b[a]=d>>16&65535;this.b[a|1]=d&65535;this.w=d>>16;this.o=d>>16|d;this.a-=(this.h?6:7)+b}function Xd(a){S(this,a,!ad(this))}function Yd(a){S(this,a,ad(this))}
function Zd(a){U(this,a,od(this,a),Ad);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function $d(a){T(this,a,nd(this,a),Bd);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function ae(a){U(this,a,od(this,a),Cd);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function be(a){T(this,a,nd(this,a),Dd);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}
function ce(a){var b=od(this,a);a=rd(this,a);this.ia((0>b?this.b[-b-1]:b)&a);this.a-=this.h?4+(this.S&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}function de(a){var b=nd(this,a);a=qd(this,a);this.ia(((0>b?this.b[-b-1]&255:b)&a)<<8);this.a-=this.h?4+(this.S&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}function ee(a){S(this,a,this.o&65535?0:4)}function fe(a){S(this,a,!bd(this)==!(this.m&32768))}function ge(a){S(this,a,!!(this.o&65535)&&!bd(this)==!(this.m&32768))}
function he(a){S(this,a,!ad(this)&&!!(this.o&65535))}function ie(a){S(this,a,(this.o&65535?0:4)||!bd(this)!=!(this.m&32768))}function je(a){S(this,a,ad(this)||(this.o&65535?0:4))}function ke(a){S(this,a,!bd(this)!=!(this.m&32768))}function le(a){S(this,a,bd(this))}function me(a){S(this,a,!!(this.o&65535))}function ne(a){S(this,a,!bd(this))}function oe(){L(this,12,0,-9)}function pe(a){S(this,a,!0)}function qe(a){S(this,a,!(this.m&32768))}function re(a){S(this,a,this.m&32768?2:0)}
function V(a){a&1&&(this.u=0);a&2&&(this.m=0);a&4&&(this.o=1);a&8&&(this.w=0);this.a-=5}function se(a){var b=od(this,a);a=rd(this,a);var c=(b=0>b?this.b[-b-1]:b)-a;fd(this,c,a,b);this.a-=this.h?4+(this.S&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}function te(a){var b=nd(this,a);a=qd(this,a);var c=(b=(0>b?this.b[-b-1]&255:b)<<8)-(a<<=8);fd(this,c,a,b);this.a-=this.h?4+(this.S&&6<=this.f?1:0):(this.L?4:3)+(7==this.f?2:0)}
function ue(a){var b=rd(this,a);if(b){a=a>>6&7;var c=this.b[a]<<16|this.b[a|1];this.u=this.m=0;b&32768&&(b|=-65536);var d=~~(c/b);-32768<=d&&32767>=d?(this.b[a]=d&65535,this.b[a|1]=c-d*b&65535,this.o=d>>16|d,this.w=d>>16):(this.m=32768,this.o=d>>15|d,this.w=c>>16,-1===b&&65534===this.b[a]&&(this.b[a]=this.b[a|1]=1));this.a-=53}else this.o=this.w=0,this.m=32768,this.u=65536,this.a-=7}function ve(){L(this,24,0,-9);this.a-=20}
function we(){this.i&49152?(this.G|=128,L(this,4,0,-8)):(this.ma&&1120==this.qa&&this.ma.setData(this.b[0],!0),this.D?this.D.i():I(this));this.a-=7}function xe(){L(this,16,0,-9);this.a-=20}var ye=[0,7,7,10,7,11,9,13];function ze(a){this.aa=this.a;R(this,pd(this,a));this.a=this.aa-ye[this.h]}var Ae=[0,14,14,17,14,18,16,20];function Be(a){this.aa=this.a;var b=pd(this,a);a=a>>6&7;gd(this,this.b[a]);this.b[a]=this.b[7];R(this,b);this.a=this.aa-Ae[this.h]}
var Ce=[3,9,9,13,10,14,12,16,4,9,9,13,10,14,13,17];function De(a){var b=od(this,a);this.aa=this.a;td(this,a,b,this.ia);this.a=this.aa-Ce[(this.L?8:0)+this.h]+(7!=this.f||this.h?0:2)}function Ee(a){var b=nd(this,a);sd(this,a,b,65535,this.ia);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}var Fe=[7,13,13,17,14,18,17,21];
function Ge(a){var b=rd(this,a);a=a>>6&7;b=(b<<16>>16)*(this.b[a]<<16>>16);this.b[a]=b>>16&65535;this.b[a|1]=b&65535;b|=0;this.w=b>>16;this.o=this.w|b;this.m=0;this.u=-32768>b||32767<b?65536:0;this.a-=23}function He(){this.a-=5}function Ie(){this.i&49152||(this.v.reset(),Ab(this),this.ma&&this.ma.setData(this.b[0],!0));this.a-=667}function Je(a){if(a&8)L(this,8,0,-9);else{var b=id(this);a&=7;7==a?R(this,b):(R(this,this.b[a]),this.b[a]=b);this.a-=9}}function Ke(){hd(this);this.a-=13}
function W(a){a&1&&(this.u=65536);a&2&&(this.m=32768);a&4&&(this.o=0);a&8&&(this.w=32768);this.a-=5}function Le(a){var b=(a&448)>>6;if(this.b[b]=this.b[b]-1&65535)R(this,this.b[7]-((a&63)<<1)),this.a+=1;this.a-=6}function Me(a){U(this,a,od(this,a),Qd);this.a-=this.h?9+(this.S&&6<=this.f?1:0):(this.L?5:3)+(7==this.f?2:0)}function Ne(a){U(this,a,0,Sd);this.a-=this.h?9:3+(7==this.f?2:0)}function Oe(){L(this,28,0,-9)}
function Pe(){this.ma&&(this.ma.U=this.b[7],this.ma.setData(this.b[0],!0));this.g|=8;cd(this,-2);this.a-=3}function Qe(a){U(this,a,this.b[(a>>6&7)+this.Pb],Td);this.a-=this.h?9:3+(7==this.f?2:0)}function X(){L(this,8,0,-9)}function Xc(a){Re[a>>12].call(this,a)}function Se(a){Te[a>>6&3].call(this,a)}function Ue(a){Ve[a>>6&3].call(this,a)}function We(a){Xe[a>>6&3].call(this,a)}function Ye(a){Ze[a&15].call(this,a)}function $e(a){af[a&15].call(this,a)}function bf(a){cf[a>>6&3].call(this,a)}
function df(a){ef[a>>6&3].call(this,a)}function ff(a){gf[a>>6&3].call(this,a)}
var Re=[function(a){hf[a>>8&15].call(this,a)},De,se,ce,Zd,ae,Ud,X,function(a){jf[a>>8&15].call(this,a)},Ee,te,de,$d,be,Me,X],hf=[function(a){kf[a>>4&15].call(this,a)},pe,me,ee,fe,ke,ge,ie,Be,Be,Se,Ue,We,X,X,X],Te=[function(a){td(this,a,0,this.La);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Ed);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Id);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,1,Gd);this.a-=this.h?9:3+(7==this.f?2:0)}],Ve=[function(a){U(this,a,0,Kd);
this.a-=this.h?11:6},function(a){U(this,a,ad(this)?1:0,ud);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,ad(this)?1:0,Qd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=rd(this,a);this.La(a);this.a-=this.h?4:3+(7==this.f?2:0)}],Xe=[function(a){U(this,a,0,Od);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,Md);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,yd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){U(this,a,0,wd);this.a-=this.h?9:3+(7==this.f?2:0)}],kf=
[function(a){lf[a&15].call(this,a)},X,X,X,ze,ze,ze,ze,Je,X,Ye,$e,Ne,Ne,Ne,Ne],lf=[we,Pe,Ke,oe,xe,Ie,X,X,X,X,X,X,X,X,X,X],Ze=[He,function(){this.u=0;this.a-=5},function(){this.m=0;this.a-=5},V,function(){this.o=1;this.a-=5},V,V,V,function(){this.w=0;this.a-=5},V,V,V,V,V,V,V],af=[He,function(){this.u=65536;this.a-=5},function(){this.m=32768;this.a-=5},W,function(){this.o=0;this.a-=5},W,W,W,function(){this.w=32768;this.a-=5},W,W,W,W,W,W,W],jf=[ne,le,he,je,qe,re,Xd,Yd,ve,Oe,bf,df,ff,X,X,X],cf=[function(a){sd(this,
a,0,255,this.La);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,Fd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Jd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,1,Hd);this.a-=this.h?9:3+(7==this.f?2:0)}],ef=[function(a){T(this,a,0,Ld);this.a-=this.h?11:6},function(a){T(this,a,ad(this)?1:0,vd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,ad(this)?1:0,Rd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){a=qd(this,a);this.La(a<<8);this.a-=this.h?4:3+
(7==this.f?2:0)}],gf=[function(a){T(this,a,0,Pd);this.a-=this.h?9+(this.Kb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,Nd);this.a-=this.h?9:3+(7==this.f?2:0)},function(a){T(this,a,0,zd);this.a-=this.h?9+(this.Kb&1):3+(7==this.f?2:0)},function(a){T(this,a,0,xd);this.a-=this.h?9:3+(7==this.f?2:0)}];function Yc(a){mf[a>>12].call(this,a)}
var mf=[function(a){nf[a>>8&15].call(this,a)},De,se,ce,Zd,ae,Ud,function(a){of[a>>8&15].call(this,a)},function(a){pf[a>>8&15].call(this,a)},Ee,te,de,$d,be,Me,X],nf=[function(a){qf[a>>4&15].call(this,a)},pe,me,ee,fe,ke,ge,ie,Be,Be,Se,Ue,We,function(a){rf[a>>6&3].call(this,a)},X,X],rf=[function(a){a=this.b[7]+((a&63)<<1)&65535;var b=this.W(a|this.ta);R(this,this.b[5]);this.b[6]=a+2&65535;this.b[5]=b;this.a-=8},function(a){a=ld(this,a,0);this.ia(a);gd(this,a);this.a-=11},function(a){var b=id(this);this.aa=
this.a;this.ia(b);md(this,a,0,b);this.a=this.aa-Fe[this.h]},function(a){td(this,a,bd(this)?65535:0,this.ia);this.a-=this.h?9:3+(7==this.f?2:0)}],qf=[function(a){sf[a&15].call(this,a)},X,X,X,ze,ze,ze,ze,Je,function(a){!(a&8)||1145>this.qa?L(this,8,0,-9):(this.i&49152||(this.i=this.i&-225|(a&7)<<5,this.g|=1,this.g&=-3),this.a-=5)},Ye,$e,Ne,Ne,Ne,Ne],sf=[we,Pe,function(){hd(this);this.g|=this.i&16;this.a-=13},oe,xe,Ie,Ke,function(){L(this,8,0,-9)},X,X,X,X,X,X,X,X],of=[Ge,Ge,ue,ue,Vd,Vd,Wd,Wd,Qe,Qe,X,
X,X,X,Le,Le],pf=[ne,le,he,je,qe,re,Xd,Yd,ve,Oe,bf,df,ff,function(a){1145>this.qa?L(this,8,0,-9):tf[a>>6&3].call(this,a)},X,X],tf=[function(){L(this,8,0,-9)},function(a){a=ld(this,a,65536);this.ia(a);gd(this,a);this.a-=11},function(a){var b=id(this);this.aa=this.a;this.ia(b);md(this,a,65536,b);this.a=this.aa-Fe[this.h]},function(){L(this,8,0,-9)}];
function uf(a){r.call(this,"ROM",a,0,128);this.ka=this.b=null;this.h=+a.addr;this.a=+a.size;this.i=!1;this.f=a.alias;"string"==typeof this.f&&(this.f=eval(this.f));this.g=a.file;this.m=F(this.g);if(this.g){a=this.g;var b=Ca(this.m);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.g+"&format=bytes&decimal=true");var c=this;G(a,null,!0,function(a,b,f){f?(c.B("Unable to load ROM resource (error "+f+": "+a+")"),c.g=null):(ra(c.Na,a,b),(a=Ka(a,b))?(c.b=a.O,c.ka=a.ka):c.g=null);vf(c)})}}n(uf,r);
h=uf.prototype;h.ea=function(a,b,c,d){this.v=b;this.c=c;this.D=d;vf(this)};h.ga=function(){this.ka&&(this.D&&this.D.a(this.id,this.h,this.a,this.ka),delete this.ka);return!0};h.fa=function(){return!0};
function vf(a){if(!ya(a)){if(a.g){if(!a.b||!a.v)return;a.a||(a.a=a.b.length);if(a.b.length!=a.a)xa(a,"ROM size ("+Ba(a.b.length,8,!0)+") does not match specified size ("+Ba(a.a,8,!0)+")");else{var b;a:{b=a.h;if(57344<=b&&b<57344+Pb){var c={},c=(c[b]=[uf.prototype.be,uf.prototype.mf,null,null,null,a.a>>1],c);if(mb(a.v,a,c)){a.status("Added "+a.a+"-byte ROM at "+Aa(b));b=a.i=!0;break a}}else if(Vb(a.v,b,a.a,wc)){for(c=0;c<a.b.length;c++)dc(a.v,b+c,a.b[c]);b=!0;break a}b=!1}if(b){b=[];"number"==typeof a.f?
b.push(a.f):null!=a.f&&a.f.length&&(b=a.f);for(c=0;c<b.length;c++){for(var d=a,e=b[c],f=d.v,g=d.a,k=[],l=d.h>>>f.h;0<g&&l<f.a.length;)k.push(f.a[l++]),g-=f.g;f=d.v;d=d.a;g=0;for(e>>>=f.h;0<d&&e<f.a.length;){l=k[g++];if(!l)break;f.a[e++]=l;d-=f.g}}a.i||delete a.b}}}D(a)}}h.be=function(a){return this.b[a-this.h]};h.mf=function(){};Va(function(){for(var a=C(document,B,"rom"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new uf(d);A(d,c)}});
function wf(a){r.call(this,"RAM",a);this.ka=this.b=null;this.f=+a.addr;this.g=+a.size;this.ca=a.load;this.ba=a.exec;null!=this.ca&&(this.ca=+this.ca);null!=this.ba&&(this.ba=+this.ba);this.h=!1;this.a=a.file;this.i=F(this.a);if(this.a){a=this.a;var b=Ca(this.i);"json"!=b&&"hex"!=b&&(a=La()+"/api/v1/dump?file="+this.a+"&format=bytes&decimal=true");var c=this;G(a,null,!0,function(a,b,f){f?(c.B("Unable to load RAM resource (error "+f+": "+a+")"),c.a=null):(ra(c.Na,a,b),(a=Ka(a,b))?(c.b=a.O,c.ka=a.ka,
null==c.ca&&(c.ca=a.ca),null==c.ba&&(c.ba=a.ba)):c.a=null);xf(c)})}}n(wf,r);wf.prototype.ea=function(a,b,c,d){this.v=b;this.c=c;this.D=d;xf(this)};wf.prototype.ga=function(){this.ka&&(this.D&&this.D.a(this.id,this.f,this.g,this.ka),delete this.ka);return!0};wf.prototype.fa=function(){return!0};
function xf(a){if(a.v&&(!a.h&&a.g&&(Vb(a.v,a.f,a.g,fc)?a.h=!0:a.g=0),!ya(a))){if(!a.h)v("No RAM allocated");else if(a.a){if(!a.b||!a.v)return;yf(a,a.b,a.ca,a.ba,a.f)?a.status('Loaded image "'+a.i+'"'):a.B('Error loading image "'+a.i+'"')}D(a)}}
wf.prototype.reset=function(){if(this.h){for(var a=this.v,b=this.f,c=this.g,d=b&a.f,b=b>>>a.h;0<c&&b<a.a.length;){var e=a.a[b],f=c,g=0,k,d=d||0,g=(g||0)&255;void 0===f&&(f=e.size);if(cb&&e.a)for(k=d;f--&&k<e.a.length;k++)e.a[k]=g;else for(k=d;f--&&k<e.size;k++)e.j(d,g,e.Ta+d);c-=a.g;b++;d=0}this.b&&yf(this,this.b,this.ca,this.ba,this.f,!0)}};
function yf(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){if(1!=m)break;if(l+6>=b.length)break;for(var l=l+2,p=b[l++]&255|(b[l++]&255)<<8,t=b[l++]&255|(b[l++]&255)<<8,m=m+((p&255)+(p>>8)+(t&255)+(t>>8)),x=l,w=p-=6;0<p&&l<b.length;)m+=b[l++]&255,p--;if(p||l>=b.length)break;m+=b[l++]&255;if(m&255)break;if(w)for(;w--;)dc(a.v,t++,b[x++]&255);else t&1?g=!0:null==d&&(d=t);k=!0}else l++;else l+=2}if(!k&&(null==c&&(c=e),null!=c)){for(e=0;e<
b.length;e++)dc(a.v,c+e,b[e]);k=!0}if(k){if(null==d||g)I(a.c),f=!1;null!=d&&Zc(a.c,d,f)}return k}Va(function(){for(var a=C(document,B,"ram"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new wf(d);A(d,c)}});function zf(a){r.call(this,"Keyboard",a,0,1024);D(this)}n(zf,r);zf.prototype.ha=function(){return!1};zf.prototype.ea=function(a,b,c,d){this.A=a;this.c=c;this.D=d};Va(function(){for(var a=C(document,B,"keyboard"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new zf(d);A(d,c)}});
function Z(a){r.call(this,"SerialPort",a,0,262144);this.C=+a.adapter;this.K=+a.baudReceive||9600;this.aa=+a.baudTransmit||9600;this.w=a.upperCase;"string"==typeof this.w&&(this.w="true"==this.w);this.h=this.i=null;this.S=+a.tabSize;this.L=+a.charBOL;this.m=0;this.u=!0;this.H=this.F=null;this.I=this.Y=-1;this.o=this.a=this.b=0;this.f=[];var b=a.binding;if("console"==b)this.i="";else{var c;a=Af;b&&(void 0===c&&(c="Panel"),(c=wa(c,this.id))&&(b=c.j[b])&&this.ha(null,a,b))}this.g=this.s=this.G=null;this.exports=
{connect:this.zc,receiveData:this.Ib,receiveStatus:this.ue,setConnection:this.ze}}n(Z,r);h=Z.prototype;
h.ga=function(a,b,c){var d=this;switch(b){case zf:return this.j[b]=this.g=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.kc:q.Kc:46==c?b=q.kc:a.ctrlKey&&c>=q.jc&&c<=q.Uc&&(b=c-(q.jc-q.Hc));b&&(a.preventDefault&&a.preventDefault(),d.Ib(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Jc&&(b=q.Ic);d.Ib(b);a.preventDefault&&a.preventDefault()}return!0},c.onpaste=function(a){a.stopPropagation&&a.stopPropagation();
h.ha=function(a,b,c){var d=this;switch(b){case Af:return this.j[b]=this.h=c,c.onkeydown=function(a){a=a||window.event;var b=0,c=a.keyCode;8==c?b=a.altKey?q.kc:q.Kc:46==c?b=q.kc:a.ctrlKey&&c>=q.jc&&c<=q.Uc&&(b=c-(q.jc-q.Hc));b&&(a.preventDefault&&a.preventDefault(),d.Ib(b));return!0},c.onkeypress=function(a){a=a||window.event;if(!a.metaKey){var b=a.which||a.keyCode;a.altKey&&b==q.Jc&&(b=q.Ic);d.Ib(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.Ib(a.getData("Text"))},c.removeAttribute("readonly"),!0}return!1};
h.ca=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.C=d;var e=this;this.H=lc(this.c,this.D?-1:48,4,262144);this.I=jc(this.c,function(){var a;a=-1;e.h.length&&(a=e.h.shift()&255,e.w&&97<=a&&122>a&&(a-=32),kc(e.c,e.I,1E3/Math.round(e.K/10)));0<=a&&(e.o=a,e.a&128?e.o|=49152:e.a|=128,e.a&64&&N(c,e.H))});this.F=lc(this.c,this.D?-1:52,4,262144);this.W=jc(this.c,function(){e.b|=128;e.b&64&&N(c,e.F)});lb(b,this,Af,this.D?64832+8*(this.D-1)-65392:0);nb(b,this.reset.bind(this));D(this)};
h.zc=function(a){if(!this.f){var b=Kc(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ha(c[0]);if(d!=this.Ma)return;c=Ha(c[1]);if(this.f=va(c)){var e=this.f.exports;if(e){var f=e.connect;f&&f.call(this.f,this.v);if(this.s=e.receiveData){this.v=a;this.G=e.receiveStatus;this.status("Connected "+this.Na+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};h.ea=function(a,b){if(!b)if(this.zc(this.v),!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.da=function(a){return a?this.save():!0};h.reset=function(){Bf(this)};h.save=function(){var a=new J(this);a.set(0,[]);return a.data()};h.restore=function(){return Bf(this)};function Bf(a){a.o=0;a.a=8192;a.b=128;a.h=[];return!0}h.Ib=function(a){if("number"==typeof a)this.h.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.h.push(b)}else this.h=this.h.concat(a);kc(this.c,this.I,1E3/Math.round(this.K/10));return!0};
h.ue=function(a){var b=this.a;this.a&=-12289;a&32&&(this.a|=8192);a&256&&(this.a|=4096);b!=this.a&&(this.a|=32768,this.a&32&&N(this.c,this.H))};h.ze=function(a,b){return this.f?!1:(this.f=a,this.s=b,!0)};h.Pd=function(){var a=this.a&65534;this.a&=-32769;return a};h.Ze=function(a){var b=a^this.a;this.a=this.a&-112|a&111;this.G&&b&6&&(b=0,b=this.v?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.G.call(this.f,b))};h.Od=function(){this.a&=-129;return this.o};h.Ye=function(){};h.te=function(){return this.b};
h.Ff=function(a){if(this.b&128)if(a&64)N(this.c,this.F);else{var b=this.F;b&&nc(this.c,b)}this.b=this.b&-70|a&69};h.se=function(){return 0};
h.Ef=function(a){a&=255;this.s&&this.s.call(this.f,a);a&=127;if(this.g)if(13==a)this.m=0;else if(8==a)this.g.value=this.g.value.slice(0,-1),0<this.m&&this.m--;else{if(a){var b;13!=a&&10!=a&&(b=Ia[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.R||8,c=a-this.m%a,this.R&&(b=" ".slice(0,c)));this.L&&!this.m&&c&&(b=String.fromCharCode(this.L)+b);this.g.value+=b;this.g.scrollTop=this.g.scrollHeight;this.m+=c}}else if(null!=
this.i){if(10==a||1024<=this.i.length)this.X(this.i),this.i="";10!=a&&(this.i+=String.fromCharCode(a))}kc(this.c,this.W,1E3/Math.round(this.Y/10));this.b&=-129};var zf="buffer",Cf={},Af=(Cf[65392]=[null,null,Z.prototype.Pd,Z.prototype.Ze,"RCSR"],Cf[65394]=[null,null,Z.prototype.Od,Z.prototype.Ye,"RBUF"],Cf[65396]=[null,null,Z.prototype.te,Z.prototype.Ff,"XCSR"],Cf[65398]=[null,null,Z.prototype.se,Z.prototype.Ef,"XBUF"],Cf);
Va(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Z(d);A(d,c)}});function sc(a){r.call(this,"PC11",a);this.D=Df(this,a.autoMount);this.b=0;this.I=+a.baudReceive||3600;this.m=this.o=this.a=0;this.i=[];this.h=Ef;this.f=Ff;this.w=this.g="";this.O=this.aa=this.Z=null;this.G=-1;this.F=!Qa("Mobi")&&window&&"FileReader"in window;this.s=null;this.H=-1;this.v=null}n(sc,r);
function Df(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=sc.prototype;
h.ga=function(a,b,c){var d=this,e=Ff;switch(b){case "listTapes":return this.j[b]=c,c.onchange=function(){var a=d.j.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("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.j[b]=c,!0;case "readTape":e=Gf;case "loadTape":return e||(e=Hf),this.j[b]=c,c.onclick=
function(){var a=d.j.listTapes;a&&If(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.F){c.parentNode.removeChild(c);break}this.j[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;If(d,F(b,!0),b,Hf,a)}return!1};return!0;case Jf:return this.j[b]=c,!0}return!1};
h.ca=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.C=d;this.v=Kf(a);var e=this;if(a=Df(this,Kc(this.A,"autoMount")))for(var f in a)"PTR"==f&&(this.D[f]=a[f]);this.s=lc(this.c,56,4,4096);this.H=jc(this.c,function(){1==(e.a&32769)&&!(e.a&128)&&e.m<e.i.length&&(e.o=e.i[e.m++]&255,Lf(e,e.m/e.i.length*100),e.a|=128,e.a&=-2049,e.a&64&&N(e.c,e.s))});lb(b,this,Mf);nb(b,this.reset.bind(this));Nf(this,"None",Ef,!0);this.F&&Nf(this,"Local Tape",Of);Nf(this,"Remote Tape",Pf);Qf(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.a&=-2241;this.o=0};function Qf(a){a.b=0;var b=a.D.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.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=F(c,!0)}c&&b?Rf(a,b,c,Hf,!0):Sf(a)}return!!a.b}
function If(a,b,c,d,e){if(c)if(c==Of)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Pf){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"');a.h=Pf}else a.h=c;Rf(a,b,c,d,!1,e)}else Tf(a,!1)}function Rf(a,b,c,d,e,f){var g=-1;if(a.g.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,Tf(a,!0),a.l.Ua?a.B("PC11 busy"):(e&&a.b++,Uf(a,b,c,d,f)?g++:a.l.Ua=!0);g&&Vf(a,a.w,a.g,a.f,a.O,a.aa,a.Z)}
function Uf(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),Vf(a,b,c,d,e),a.h=Of);Sf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=Ca(c),f="json"==e||"gz"==e?encodeURI(c):La()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!G(f,null,!0,function(e,f,g){var k=0>g&&!!a.A&&!a.A.l.S;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(ra(a.Na,e,f),(e=Ka(e,f))&&Vf(a,b,c,d,e.O,e.aa,e.Z));
a.l.Ua=!1;a.b&&(a.b--,a.b||D(a));Sf(a)})}function Nf(a,b,c,d){if((a=a.j.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 Sf(a){var b=a.j.listTapes;if(b&&b.options){a=a.h||a.g;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 Lf(a,b){b|=0;if(b!==a.G){var c=a.j[Jf];c&&(c=(c=C(c,Wf))&&c[0])&&c.style&&(c.style.width=b+"%");a.G=b}}function Vf(a,b,c,d,e,f,g){a.w=b;a.g=c;a.f=d;a.O=e;a.aa=f;a.Z=g;d==Gf?a.v&&xf(a.v,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.m=0,a.i=e,a.status('Loaded tape "'+b+'"'),Lf(a,0))}function Tf(a,b){if(a.g||!1===b)a.w="",a.g="",b||(a.f&&a.status(a.f==Hf?"tape detached":"tape unloaded"),a.h=Ef,a.f=Ff,Sf(a))}h.save=function(){return(new J(this)).data()};
h.restore=function(){return!0};h.Id=function(){return this.a&65534};h.Se=function(a){a&1&&(this.a&32768?(a&=-2,this.a&64&&N(this.c,this.s)):(this.a&=-129,this.a|=2048,this.o=0,kc(this.c,this.H,1E3/Math.round(this.I/10))));this.a=this.a&-66|a&65};h.Hd=function(){this.a&=-129;this.a|=2048;return this.o};h.Re=function(){};
var Ef="",Of="?",Pf="??",Ff=0,Hf=1,Gf=2,Jf="readProgress",Wf="pcjs-progress-bar",Xf={},Mf=(Xf[65384]=[null,null,sc.prototype.Id,sc.prototype.Se,"PRS"],Xf[65386]=[null,null,sc.prototype.Hd,sc.prototype.Re,"PRB"],Xf);
function Yf(a,b,c){r.call(this,"Disk",{id:a.Na+".disk"+Ba(++Zf,4)},0,8192);this.controller=a;this.A=a.A;this.C=a.C;this.h=b;this.oa=b.name;this.fa=this.Jb="";this.Cb=b.Cb;this.J=this.P=this.M=this.U=this.mode=0;this.a=[];this.f=null;this.g=!1;$f(this,c,b.J,b.P,b.M,b.U);this.b=this.i=null;D(this)}n(Yf,r);h=Yf.prototype;h.ca=function(a,b,c,d){this.C=d};
function $f(a,b,c,d,e,f){a.mode=b;a.J=c;a.P=d;a.M=e;a.U=f;a.a=[];if("preload"!=a.mode){b=Array(a.J);for(c=0;c<b.length;c++){d=Array(a.P);for(e=0;e<d.length;e++){f=Array(a.M);for(var g=1;g<=f.length;g++)f[g-1]=ag(null,c,e,g,a.U,0);d[e]=f}b[c]=d}a.a=b}a.f=null}
function bg(a,b,c,d,e){var f=c;if(a.b)return!0;a.oa=b;a.fa=c;a.Jb=F(c);a.b=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=qa[d];if(e){a.J=e[0];a.P=e[1];a.M=e[2];a.U=e[3]||512;c=a.U>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.J);for(d=0;d<a.a.length;d++)for(var x=a.a[d]=Array(a.P),w=0;w<x.length;w++)for(var Y=x[w]=Array(a.M),Da=0;Da<Y.length;Da++){for(var fc=ag(null,d,w,Da+1,a.U,0),Zg=fc.data,zc=0;zc<c;zc++,f+=4)var $g=Zg[zc]=b.getInt32(f,
!0),e=e+$g&-1;fc.ka=c;Y[Da]=fc}a.f=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.h,c,a.oa,a.fa),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=Ca(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"):Ea(c,"/")&&(d="dir"),f=La()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Cb?"":e)+"&format=json"));return!!G(f,
null,!0,function(b,c,d){cg(a,b,c,d)})}
function cg(a,b,c,d){var e=null,f=0>d&&!!a.A&&!a.A.l.S;a.g=!1;if(d)a.controller.B('Unable to load disk "'+a.oa+'" (error '+d+": "+b+")",f);else{ra(a.controller.Na,b,c);try{if(0<F(a.Jb,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.oa]: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)v(k[0]);else{a.J=k.length;a.P=k[0].length;a.M=k[0][0].length;var l=k[0][0][0];a.U=l&&l.length||512;for(d=c=0;d<a.J;d++)for(f=0;f<a.P;f++)for(g=0;g<a.M;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var x=l.bytes;if(void 0!==x&&x.length){for(var w=m<<2,Y=x.length;Y<w;Y++)x[Y]=p;dg(l,x)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}ag(l,d,f);for(w=0;w<
t.length;w++)c=c+t[w]&-1}a.a=k;a.f=c;e=a}else v("Empty disk image: "+a.oa)}catch(Da){v("Disk image error ("+b+"): "+Da.message)}}a.b&&(a.b.call(a.i,a.h,e,a.oa,a.fa),a.b=null)}function ag(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Fg=b;a.Gg=c;a.sa=a.ka=0;a.xa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.h,g=this.a[a];if(g){var k=g[b];if(!k&&f.Xc&&b<f.P)for(k=g[b]=Array(f.vc),g=0;g<k.length;g++)k[g]=ag(null,a,b,g+1,f.bc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Xc&&9==f.$b&&(d=k[g]=ag(null,a,b,f.$b,f.bc,0))}}e&&e(d,!1);return d};function dg(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.g)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.ka?f<a.sa?(a.ka+=a.sa-f,a.sa=f):f>=a.sa+a.ka&&(a.ka+=f-(a.sa+a.ka)+1):(a.sa=f,a.ka=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function eg(a,b){var c=a.P*a.M,d=b/c|0;return d<a.J?(b%=c,a.seek(d,b/a.M|0,b%a.M+1)):null}function fg(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}function gg(a){for(var b="",c=0,d;d=eg(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(fg(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.fa,this.f,this.J,this.P,this.M,this.U];if(!this.g)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.ka){for(var k=[],l=0,m=g.sa,p=g.sa+g.ka;m<p;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.sa,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?$f(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.a.length||l>=this.a[k].length||m>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.sa=e;for(k.ka=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.B("Unable to restore disk '"+this.oa+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=eg(this,a++);)hg(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function hg(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var Zf=0;function Q(a){r.call(this,"RK11",a,0,65536);this.o=ig(this,a.autoMount);this.m=0;this.f=Array(8);this.s=!Qa("Mobi")&&window&&"FileReader"in window;this.Ka=null;this.w=this.b=this.a=this.i=this.h=this.g=this.v=0}n(Q,r);
function ig(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Q.prototype;
h.ga=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=E(c.value);null!=a&&jg(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&kg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&E(b.value);null==b||0>b||b>=d.f.length||!(a=d.f[b])?d.B("Unable to boot the selected drive"):a.T?(Yc(d.c,0,!0),(a=d.tc(a,0,0,0,512,0,2))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.s){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.f&&((a=d.f[E(a.value)||0])?(a=a.T)?(a=Ta(gg(a),a.Jb.replace(".json",".img")),v(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.s)return this.j[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;kg(d,F(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ca=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.C=d;if(a=ig(this,Kc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.o[e]=a[e]);lg(this);this.Ka=lc(this.c,144,5,65536);lb(b,this,mg);nb(b,this.reset.bind(this));ng(this,"None",og,!0);this.s&&ng(this,"Local Disk",pg);ng(this,"Remote Disk",qg);rg(this)||D(this)};
h.ea=function(a,b){if(!b){if(!a){if(this.reset(),this.A.m){for(a=0;a<this.f.length;a++)sg(this,a,!0);rg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";jg(this,0)}}return!0};h.da=function(a){return a?this.save():!0};h.reset=function(){lg(this)};h.save=function(){return(new J(this)).data()};
h.restore=function(a){return lg(this,a[0])};function rg(a,b){b||(a.m=0);for(var c in a.o){var d=a.o[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.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=F(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.f.length)){!tg(a,g,f,e,!0)&&b&&D(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.m}
function kg(a,b,c,d){var e=a.j.listDrives,e=e&&E(e.value);if(void 0===e||0>e||e>=a.f.length)a.B("Unable to load the selected drive");else if(c)if(c==pg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==qg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"')}tg(a,e,b,c,!1,d)}else sg(a,e)}
function tg(a,b,c,d,e,f){var g=-1,k=a.f[b];k.fa.toLowerCase()!=d.toLowerCase()&&(g++,sg(a,b,!0),k.Wa?a.B("RK11 busy"):(k.Wa=!0,e&&(k.Va=!0,a.m++),k.ya=!!f,bg(new Yf(a,k,"preload"),c,d,f,a.Mc)&&g++));return g}h.Mc=function(a,b,c,d,e){a.Wa=!1;b&&(b.J>a.J||b.P>a.P)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Ja)),b=null);b?(a.T=b,a.oa=c,a.fa=d,this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Ja),a.Va||e),this.A&&Rc(this.A)):a.ya=!1;a.Va&&(a.Va=!1,--this.m||D(this));jg(this,a.Ja)};
function ng(a,b,c,d){if((a=a.j.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 jg(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=E(a.value),c=c.ya?pg:c.fa,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function sg(a,b,c){var d=a.f[b];if(d.T||!1===c)d.oa="",d.fa="",d.T=null,d.ya=!1,c||(a.B("Drive RK"+b+" unloaded",c),jg(a,b))}
function lg(a,b){var c=0;b||(b=[]);a.w=b[c++]||2368;a.b=b[c++]||0;a.a=b[c++]||128;a.i=b[c++]||0;a.h=b[c++]||0;a.g=b[c++]||0;a.v=b[c]||0;for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.Ja=b;d.name=c.Ma;d.Wa=d.ya=!1;d.J=203;d.P=2;d.M=12;d.U=512;d.Cb=!0;d.Yc=0;d.Wc=0;d.$b=1;d.vc=d.M;d.bc=d.U;d.ed=0;d.we=null;d.T||(d.fa="");d.status=2368}return!0}
h.tc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.P&&(c=0,++b))}var x,w;if(0>(x=a.read(p,t++))||0>(w=a.read(p,t++))){m=32;break}if(!k&&(Gb(this.u,id(this.c,f),x|w<<8),ic(this.u))){m=1024;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Nc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.T;var p=null,t;a||(m=128,e=0);for(;e;){var x=Ib(this.u,id(this.c,f));if(ic(this.u)){m=1024;break}if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1,!0);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.P&&(c=0,++b))}if(k){var w,Y;if(0>(w=a.read(p,t++))||0>(Y=a.read(p,t++))){m=32;break}if(x!=(w|Y<<8)){m=1;break}}else if(!a.write(p,t++,x&255)||!a.write(p,t++,x>>8)){m=32;break}t>=a.U&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Lc=function(a,b,c,d,e,f){this.h=f&65535;this.a=this.a&-49|f>>12&48;this.i=65536-e&65535;this.g=this.g&-16|d&15;this.b|=a;ug(this);return!0};function ug(a){a.a&=-32769;a.b&&(a.b|=32768,a.a|=32768,a.b&32736&&(a.a|=16384))}h.Ud=function(){return this.w};h.df=function(){};h.Vd=function(){return this.b};h.ef=function(){};h.Rd=function(){return this.a&61438};
h.af=function(a){this.a=this.a&-3968|a&3967;if(this.a&1){a=!0;var b,c,d=(this.g&57344)>>13,e=this.f[d],f,g,k,l,m,p;this.a&=-8321;this.b&=-4;switch(c=this.a&14){case 0:this.b=this.g=0;this.a=128;break;case 10:case 4:b=this.tc;case 6:case 2:b||(b=this.Nc);f=(this.g&8160)>>5;g=(this.g&16)>>4;k=this.g&15;l=65536-this.i&65535;m=(this.a&48)<<12|this.h;p=this.a&2048?0:2;if(f>=e.J){this.b|=64;break}if(k>=e.M){this.b|=32;break}a=b.call(this,e,f,g,k,l,m,p,6<=c,this.Lc.bind(this));break;case 8:f=(this.g&8160)>>
5;f<e.J?this.a|=8192:this.b|=64;break;case 12:this.b=this.g=0,this.a=8320}this.w=e.status|(e.T?128:0)|d<<13|this.g&15;ug(this);a&&(this.a&=-2,this.a|=128,this.a&64&&N(this.c,this.Ka))}};h.Wd=function(){return this.i};h.ff=function(a){this.i=a};h.Qd=function(){return this.h};h.$e=function(a){this.h=a};h.Sd=function(){return this.g};h.bf=function(a){this.g=a};h.Td=function(){return this.v};h.cf=function(a){this.v=a};
var og="",pg="?",qg="??",vg={},mg=(vg[65280]=[null,null,Q.prototype.Ud,Q.prototype.df,"RKDS"],vg[65282]=[null,null,Q.prototype.Vd,Q.prototype.ef,"RKER"],vg[65284]=[null,null,Q.prototype.Rd,Q.prototype.af,"RKCS"],vg[65286]=[null,null,Q.prototype.Wd,Q.prototype.ff,"RKWC"],vg[65288]=[null,null,Q.prototype.Qd,Q.prototype.$e,"RKBA"],vg[65290]=[null,null,Q.prototype.Sd,Q.prototype.bf,"RKDA"],vg[65294]=[null,null,Q.prototype.Td,Q.prototype.cf,"RKDB"],vg);
function P(a){r.call(this,"RL11",a,0,131072);this.s=wg(this,a.autoMount);this.o=0;this.b=Array(4);this.v=!Qa("Mobi")&&window&&"FileReader"in window;this.Ka=null;this.a=this.m=this.f=this.g=this.i=this.h=0;this.exports={selectDrive:this.xe}}n(P,r);function wg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=P.prototype;
h.ga=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=E(c.value);null!=a&&xg(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&yg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&E(b.value);null==b||0>b||b>=d.b.length||!(a=d.b[b])?d.B("Unable to boot the selected drive"):a.T?(Yc(d.c,0,!0),(a=d.uc(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.v){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.b&&((a=d.b[E(a.value)||0])?(a=a.T)?(a=Ta(gg(a),a.Jb.replace(".json",".img")),v(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.v)return this.j[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;yg(d,F(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ca=function(a,b,c,d){this.A=a;this.u=b;this.c=c;this.C=d;if(a=wg(this,Kc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.s[e]=a[e]);zg(this);this.Ka=lc(this.c,112,5,131072);lb(b,this,Ag);nb(b,this.reset.bind(this));Bg(this,"None",Cg,!0);this.v&&Bg(this,"Local Disk",Dg);Bg(this,"Remote Disk",Eg);Fg(this)||D(this)};
h.ea=function(a,b){if(!b){if(!a){if(this.reset(),this.A.m){for(a=0;a<this.b.length;a++)Gg(this,a,!0);Fg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";xg(this,0)}}return!0};h.da=function(a){return a?this.save():!0};h.reset=function(){zg(this)};h.save=function(){return(new J(this)).data()};
h.restore=function(a){return zg(this,a[0])};function Fg(a,b){b||(a.o=0);for(var c in a.s){var d=a.s[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.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=F(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.b.length)){!Hg(a,g,f,e,!0)&&b&&D(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function yg(a,b,c,d){var e=a.j.listDrives,e=e&&E(e.value);if(void 0===e||0>e||e>=a.b.length)a.B("Unable to load the selected drive");else if(c)if(c==Dg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Eg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"')}Hg(a,e,b,c,!1,d)}else Gg(a,e)}
function Hg(a,b,c,d,e,f){var g=-1,k=a.b[b];k.fa.toLowerCase()!=d.toLowerCase()&&(g++,Gg(a,b,!0),k.Wa?a.B("RL11 busy"):(k.Wa=!0,e&&(k.Va=!0,a.o++),k.ya=!!f,bg(new Yf(a,k,"preload"),c,d,f,a.Pc)&&g++));return g}h.Pc=function(a,b,c,d,e){a.Wa=!1;b&&(b.J>a.J||b.P>a.P)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Ja)),b=null);b?(a.T=b,a.oa=c,a.fa=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Ja),a.Va||e),this.A&&Rc(this.A)):a.ya=!1;a.Va&&(a.Va=!1,--this.o||D(this));xg(this,a.Ja)};
function Bg(a,b,c,d){if((a=a.j.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 xg(a,b,c){var d=!1;if(0<=b&&b<a.b.length){var e=a.b[b],f=a.j.listDisks;a=a.j.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(E(a.options[c].value)==e.Ja){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=E(a.value);e=e.ya?Dg:e.fa;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.xe=function(a){var b=this.j.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].innerHTML==a){var e=E(b.options[d].value);if(0<=e)return xg(this,e,!0)}return!1};function Gg(a,b,c){var d=a.b[b];if(d.T||!1===c)d.oa="",d.fa="",d.T=null,d.ya=!1,c||(a.B("Drive RL"+b+" unloaded",c),xg(a,b))}
function zg(a,b){var c=0;b||(b=[]);a.a=b[c++]||129;a.m=b[c++]||0;a.f=b[c++]||0;a.g=b[c++]||0;a.i=b[c++]||0;a.h=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.Ja=b;d.name=c.Ma;d.Wa=d.ya=!1;d.J=512;d.P=2;d.M=40;d.U=256;d.Cb=!0;d.Yc=0;d.Wc=0;d.$b=1;d.vc=d.M;d.bc=d.U;d.ed=0;d.we=null;d.T||(d.fa="");d.status=29}return!0}
h.uc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}Gb(this.u,id(this.c,f),p|t<<8);if(ic(this.u)){k=8192;break}f+=2;e--;if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.P&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Qc=function(a,b,c,d,e,f,g){var k=0;a=a.T;var l=null,m;a||(k=5120,e=0);for(;e;){var p=Ib(this.u,id(this.c,f));if(ic(this.u)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.U&&(l=null,++d>=a.M&&(d=0,++c>=a.P&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.ea=function(a,b,c,d){this.A=a;this.v=b;this.c=c;this.D=d;var e=this;this.H=mc(this.c,this.C?-1:48,4,262144);this.I=kc(this.c,function(){var a;a=-1;e.f.length&&(a=e.f.shift()&255,e.w&&97<=a&&122>a&&(a-=32),lc(e.c,e.I,1E3/Math.round(e.K/10)));0<=a&&(e.o=a,e.a&128?e.o|=49152:e.a|=128,e.a&64&&N(c,e.H))});this.F=mc(this.c,this.C?-1:52,4,262144);this.Y=kc(this.c,function(){e.b|=128;e.b&64&&N(c,e.F)});mb(b,this,Bf,this.C?64832+8*(this.C-1)-65392:0);ob(b,this.reset.bind(this));D(this)};
h.zc=function(a){if(!this.g){var b=Lc(this.A,"connection");if(b){var c=b.split("->");if(2==c.length){var d=Ha(c[0]);if(d!=this.Ma)return;c=Ha(c[1]);if(this.g=va(c)){var e=this.g.exports;if(e){var f=e.connect;f&&f.call(this.g,this.u);if(this.s=e.receiveData){this.u=a;this.G=e.receiveStatus;this.status("Connected "+this.Na+"."+d+" to "+c);return}}}}this.status("Unable to establish connection: "+b)}}};h.ga=function(a,b){if(!b)if(this.zc(this.u),!a)this.reset();else if(!this.restore(a))return!1;return!0};
h.fa=function(a){return a?this.save():!0};h.reset=function(){Cf(this)};h.save=function(){var a=new H(this);a.set(0,[this.o,this.a,this.b,this.f]);return a.data()};h.restore=function(a){return Cf(this,a[0])};function Cf(a,b){b||(b=[0,8192,128,a.f]);b=ia(b);a.o=b.next().value;a.a=b.next().value;a.b=b.next().value;a.f=b.next().value;return!0}
h.Ib=function(a){if("number"==typeof a)this.f.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.f.push(b)}else this.f=this.f.concat(a);lc(this.c,this.I,1E3/Math.round(this.K/10));return!0};h.ue=function(a){var b=this.a;this.a&=-12289;a&32&&(this.a|=8192);a&256&&(this.a|=4096);b!=this.a&&(this.a|=32768,this.a&32&&N(this.c,this.H))};h.ze=function(a,b){return this.g?!1:(this.g=a,this.s=b,!0)};
h.Pd=function(){var a=this.a&65534;this.a&=-32769;return a};h.Ze=function(a){var b=a^this.a;this.a=this.a&-112|a&111;this.G&&b&6&&(b=0,b=this.u?b|(a&4?32:0)|(a&2?320:0):b|(a&4?16:0)|(a&2?1048576:0),this.G.call(this.g,b))};h.Od=function(){this.a&=-129;return this.o};h.Ye=function(){};h.te=function(){return this.b};h.Ff=function(a){if(this.b&128)if(a&64)N(this.c,this.F);else{var b=this.F;b&&oc(this.c,b)}this.b=this.b&-70|a&69};h.se=function(){return 0};
h.Ef=function(a){a&=255;this.s&&this.s.call(this.g,a);a&=127;if(this.h)if(13==a)this.m=0;else if(8==a)this.h.value=this.h.value.slice(0,-1),0<this.m&&this.m--;else{if(a){var b;13!=a&&10!=a&&(b=Ia[a]);b=b?"<"+b+">":String.fromCharCode(a);var c=b.length;32>a&&1==c&&(c=0);9==a&&(a=this.S||8,c=a-this.m%a,this.S&&(b=" ".slice(0,c)));this.L&&!this.m&&c&&(b=String.fromCharCode(this.L)+b);this.h.value+=b;this.h.scrollTop=this.h.scrollHeight;this.m+=c}}else if(null!=
this.i){if(10==a||1024<=this.i.length)this.Z(this.i),this.i="";10!=a&&(this.i+=String.fromCharCode(a))}lc(this.c,this.Y,1E3/Math.round(this.aa/10));this.b&=-129};var Af="buffer",Df={},Bf=(Df[65392]=[null,null,Z.prototype.Pd,Z.prototype.Ze,"RCSR"],Df[65394]=[null,null,Z.prototype.Od,Z.prototype.Ye,"RBUF"],Df[65396]=[null,null,Z.prototype.te,Z.prototype.Ff,"XCSR"],Df[65398]=[null,null,Z.prototype.se,Z.prototype.Ef,"XBUF"],Df);
Va(function(){for(var a=C(document,B,"serial"),b=0;b<a.length;b++){var c=a[b],d=z(c),d=new Z(d);A(d,c)}});function tc(a){r.call(this,"PC11",a);this.C=Ef(this,a.autoMount);this.b=0;this.I=+a.baudReceive||3600;this.m=this.o=this.a=0;this.i=[];this.h=Ff;this.f=Gf;this.w=this.g="";this.O=this.ca=this.ba=null;this.G=-1;this.F=!Qa("Mobi")&&window&&"FileReader"in window;this.s=null;this.H=-1;this.u=null}n(tc,r);
function Ef(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=tc.prototype;
h.ha=function(a,b,c){var d=this,e=Gf;switch(b){case "listTapes":return this.j[b]=c,c.onchange=function(){var a=d.j.descTape,b=c.options[c.selectedIndex];if(a&&b){var e={};if(b=b.getAttribute("data-value"))try{e=eval("("+b+")")}catch(l){v("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.j[b]=c,!0;case "readTape":e=Hf;case "loadTape":return e||(e=If),this.j[b]=c,c.onclick=
function(){var a=d.j.listTapes;a&&Jf(d,a.options[a.selectedIndex].text,a.value,e)},!0;case "mountTape":if(!this.F){c.parentNode.removeChild(c);break}this.j[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;Jf(d,F(b,!0),b,If,a)}return!1};return!0;case Kf:return this.j[b]=c,!0}return!1};
h.ea=function(a,b,c,d){this.A=a;this.v=b;this.c=c;this.D=d;this.u=Lf(a);var e=this;if(a=Ef(this,Lc(this.A,"autoMount")))for(var f in a)"PTR"==f&&(this.C[f]=a[f]);this.s=mc(this.c,56,4,4096);this.H=kc(this.c,function(){1==(e.a&32769)&&!(e.a&128)&&e.m<e.i.length&&(e.o=e.i[e.m++]&255,Mf(e,e.m/e.i.length*100),e.a|=128,e.a&=-2049,e.a&64&&N(e.c,e.s))});mb(b,this,Nf);ob(b,this.reset.bind(this));Of(this,"None",Ff,!0);this.F&&Of(this,"Local Tape",Pf);Of(this,"Remote Tape",Qf);Rf(this)||D(this)};
h.ga=function(a,b){if(!b)if(!a)this.reset();else if(!this.restore(a))return!1;return!0};h.fa=function(a){return a?this.save():!0};h.reset=function(){this.a&=-2241;this.o=0};function Rf(a){a.b=0;var b=a.C.PTR;if(b){var c=b.path||"";if(!(b=b.name))a:{if((b=a.j.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=F(c,!0)}c&&b?Sf(a,b,c,If,!0):Tf(a)}return!!a.b}
function Jf(a,b,c,d,e){if(c)if(c==Pf)a.B('Use "Choose File" and "Mount" to select and load a local tape.');else{if(c==Qf){c=window.prompt("Enter the URL of a remote tape image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"');a.h=Qf}else a.h=c;Sf(a,b,c,d,!1,e)}else Uf(a,!1)}function Sf(a,b,c,d,e,f){var g=-1;if(a.g.toLowerCase()!=c.toLowerCase()||a.f!=d)g++,Uf(a,!0),a.l.Ua?a.B("PC11 busy"):(e&&a.b++,Vf(a,b,c,d,f)?g++:a.l.Ua=!0);g&&Wf(a,a.w,a.g,a.f,a.O,a.ca,a.ba)}
function Vf(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),Wf(a,b,c,d,e),a.h=Pf);Tf(a)};g.readAsArrayBuffer(e);return!0}0>c.indexOf("/api/v1/dump")&&(e=Ca(c),f="json"==e||"gz"==e?encodeURI(c):La()+"/api/v1/dump?path="+encodeURIComponent(c)+"&format=json");return!!G(f,null,!0,function(e,f,g){var k=0>g&&!!a.A&&!a.A.l.T;g?a.B('Unable to load tape "'+b+'" (error '+g+": "+e+")",k):(ra(a.Na,e,f),(e=Ka(e,f))&&Wf(a,b,c,d,e.O,e.ca,e.ba));
a.l.Ua=!1;a.b&&(a.b--,a.b||D(a));Tf(a)})}function Of(a,b,c,d){if((a=a.j.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 Tf(a){var b=a.j.listTapes;if(b&&b.options){a=a.h||a.g;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 Mf(a,b){b|=0;if(b!==a.G){var c=a.j[Kf];c&&(c=(c=C(c,Xf))&&c[0])&&c.style&&(c.style.width=b+"%");a.G=b}}function Wf(a,b,c,d,e,f,g){a.w=b;a.g=c;a.f=d;a.O=e;a.ca=f;a.ba=g;d==Hf?a.u&&yf(a.u,e,f,g,null,!1)?a.status('Read tape "'+b+'"'):a.B('No valid memory address for tape "'+b+'"'):(a.m=0,a.i=e,a.status('Loaded tape "'+b+'"'),Mf(a,0))}function Uf(a,b){if(a.g||!1===b)a.w="",a.g="",b||(a.f&&a.status(a.f==If?"tape detached":"tape unloaded"),a.h=Ff,a.f=Gf,Tf(a))}h.save=function(){return(new H(this)).data()};
h.restore=function(){return!0};h.Id=function(){return this.a&65534};h.Se=function(a){a&1&&(this.a&32768?(a&=-2,this.a&64&&N(this.c,this.s)):(this.a&=-129,this.a|=2048,this.o=0,lc(this.c,this.H,1E3/Math.round(this.I/10))));this.a=this.a&-66|a&65};h.Hd=function(){this.a&=-129;this.a|=2048;return this.o};h.Re=function(){};
var Ff="",Pf="?",Qf="??",Gf=0,If=1,Hf=2,Kf="readProgress",Xf="pcjs-progress-bar",Yf={},Nf=(Yf[65384]=[null,null,tc.prototype.Id,tc.prototype.Se,"PRS"],Yf[65386]=[null,null,tc.prototype.Hd,tc.prototype.Re,"PRB"],Yf);
function Zf(a,b,c){r.call(this,"Disk",{id:a.Na+".disk"+Ba(++$f,4)},0,8192);this.controller=a;this.A=a.A;this.D=a.D;this.h=b;this.oa=b.name;this.X=this.Jb="";this.Cb=b.Cb;this.J=this.R=this.M=this.V=this.mode=0;this.a=[];this.f=null;this.g=!1;ag(this,c,b.J,b.R,b.M,b.V);this.b=this.i=null;D(this)}n(Zf,r);h=Zf.prototype;h.ea=function(a,b,c,d){this.D=d};
function ag(a,b,c,d,e,f){a.mode=b;a.J=c;a.R=d;a.M=e;a.V=f;a.a=[];if("preload"!=a.mode){b=Array(a.J);for(c=0;c<b.length;c++){d=Array(a.R);for(e=0;e<d.length;e++){f=Array(a.M);for(var g=1;g<=f.length;g++)f[g-1]=bg(null,c,e,g,a.V,0);d[e]=f}b[c]=d}a.a=b}a.f=null}
function cg(a,b,c,d,e){var f=c;if(a.b)return!0;a.oa=b;a.X=c;a.Jb=F(c);a.b=e;a.i=a.controller;if(d){var g=new FileReader;g.onload=function(){var b=g.result,c,d=b?b.byteLength:0,e=qa[d];if(e){a.J=e[0];a.R=e[1];a.M=e[2];a.V=e[3]||512;c=a.V>>2;var f=e=0,b=new DataView(b,0,d);a.a=Array(a.J);for(d=0;d<a.a.length;d++)for(var x=a.a[d]=Array(a.R),w=0;w<x.length;w++)for(var Y=x[w]=Array(a.M),Da=0;Da<Y.length;Da++){for(var gc=bg(null,d,w,Da+1,a.V,0),ah=gc.data,Ac=0;Ac<c;Ac++,f+=4)var bh=ah[Ac]=b.getInt32(f,
!0),e=e+bh&-1;gc.la=c;Y[Da]=gc}a.f=e;c=a}else a.B("Unrecognized disk format ("+d+" bytes)");a.b&&(a.b.call(a.controller,a.h,c,a.oa,a.X),a.b=null)};g.readAsArrayBuffer(d);return!0}0>c.indexOf("/api/v1/dump")&&(b=Ca(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"):Ea(c,"/")&&(d="dir"),f=La()+"/api/v1/dump?"+d+"="+encodeURIComponent(c)+(a.Cb?"":e)+"&format=json"));return!!G(f,
null,!0,function(b,c,d){dg(a,b,c,d)})}
function dg(a,b,c,d){var e=null,f=0>d&&!!a.A&&!a.A.l.T;a.g=!1;if(d)a.controller.B('Unable to load disk "'+a.oa+'" (error '+d+": "+b+")",f);else{ra(a.controller.Na,b,c);try{if(0<F(a.Jb,!0).toLowerCase().indexOf("-readonly"))a.g=!0;else{var g=c.indexOf("\n");0<g&&1024>g&&0<c.substring(0,g).indexOf("write-protected")&&(a.g=!0)}var k;"<"==c.substr(0,1)?k=["Missing disk image: "+a.oa]: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)v(k[0]);else{a.J=k.length;a.R=k[0].length;a.M=k[0][0].length;var l=k[0][0][0];a.V=l&&l.length||512;for(d=c=0;d<a.J;d++)for(f=0;f<a.R;f++)for(g=0;g<a.M;g++)if(l=k[d][f][g]){var m=l.length;void 0===m&&(m=l.length=512);var m=m>>2,p=l.pattern;void 0===p&&(p=l.pattern=0);var t=l.data;if(void 0===t){var x=l.bytes;if(void 0!==x&&x.length){for(var w=m<<2,Y=x.length;Y<w;Y++)x[Y]=p;eg(l,x)}else t=[],p=l.pattern=p|p<<8|p<<16|p<<24,l.data=t;delete l.bytes}bg(l,d,f);for(w=0;w<
t.length;w++)c=c+t[w]&-1}a.a=k;a.f=c;e=a}else v("Empty disk image: "+a.oa)}catch(Da){v("Disk image error ("+b+"): "+Da.message)}}a.b&&(a.b.call(a.i,a.h,e,a.oa,a.X),a.b=null)}function bg(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.Fg=b;a.Gg=c;a.sa=a.la=0;a.xa=!1;return a}
h.seek=function(a,b,c,d,e){d=null;var f=this.h,g=this.a[a];if(g){var k=g[b];if(!k&&f.Xc&&b<f.R)for(k=g[b]=Array(f.vc),g=0;g<k.length;g++)k[g]=bg(null,a,b,g+1,f.bc,0);if(k){for(g=0;g<k.length;g++)if(k[g]&&k[g].sector==c){d=k[g];break}!d&&f.Xc&&9==f.$b&&(d=k[g]=bg(null,a,b,f.$b,f.bc,0))}}e&&e(d,!1);return d};function eg(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.g)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.la?f<a.sa?(a.la+=a.sa-f,a.sa=f):f>=a.sa+a.la&&(a.la+=f-(a.sa+a.la)+1):(a.sa=f,a.la=1);d[f]=d[f]&~(255<<b)|c<<b}return!0}return null};
function fg(a,b){var c=a.R*a.M,d=b/c|0;return d<a.J?(b%=c,a.seek(d,b/a.M|0,b%a.M+1)):null}function gg(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}function hg(a){for(var b="",c=0,d;d=fg(a,c++);)for(var e=0,f=d.length;e<f;e++)b+=String.fromCharCode(gg(a,d,e));return btoa(b)}
h.save=function(){var a=0,b=[];b[a++]=[this.X,this.f,this.J,this.R,this.M,this.V];if(!this.g)for(var c=this.a,d=0;d<c.length;d++)for(var e=0;e<c[d].length;e++)for(var f=0;f<c[d][e].length;f++){var g=c[d][e][f];if(g&&g.la){for(var k=[],l=0,m=g.sa,p=g.sa+g.la;m<p;)k[l++]=g.data[m++];b[a++]=[d,e,f,g.sa,k]}}return b};
h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0<a.length){var d=0,e=a[d++];e&&2<=e.length&&(!this.a.length&&6<=e.length?ag(this,"local",e[2],e[3],e[4],e[5]):null!=e[1]&&null!=this.f&&e[1]!=this.f&&(c="original checksum ("+e[1]+") differs from current checksum ("+this.f+")",b=-2));for(this.a.length||(b=-1);d<a.length&&0<=b;){var f=0,g=a[d++],k=g[f++],l=g[f++],m=g[f++];if(k>=this.a.length||l>=this.a[k].length||m>=this.a[k][l].length){c="sector (CHS="+k+":"+l+":"+m+") out of range ("+
b+" changes applied)";b=-1;break}if(this.g){c="unable to modify write-protected disk";b=-1;break}e=g[f++];f=g[f++];g=e+f.length;if(k=this.a[k][l][m]){for(l=k.data.length;l<e;)k.data[l++]=k.pattern;l=0;k.sa=e;for(k.la=f.length;e<g;)k.data[e++]=f[l++];b++}}}0>b&&-2!=b&&this.controller.B("Unable to restore disk '"+this.oa+": "+c);return b};
h.toJSON=function(){var a;a=0;for(var b;b=fg(this,a++);)ig(b);a=JSON.stringify(this.a,function(a,b){if("file"!=a)return b});a=a.replace(/,"length":512/gm,"").replace(/,"pattern":0/gm,"");a=a.replace(/"(sector|length|data|pattern)":/gm,"$1:");a=a.replace(/,"[^"]*":([0-9]+|true|false)/gm,"");a=a.replace(/(sector|length|data|pattern):/gm,'"$1":');return a=a.replace(/([\]}]),/gm,"$1,\n")};
function ig(a){var b=a.data,c=b.length;if(c<<2==a.length){for(var d=c-1,e=b[d],f=0;d--&&b[d]===e;)f++;f++&&(b.length=c-f,a.pattern=e)}}var $f=0;function Q(a){r.call(this,"RK11",a,0,65536);this.w=jg(this,a.autoMount);this.o=0;this.f=Array(8);this.C=!Qa("Mobi")&&window&&"FileReader"in window;this.h=[];this.Ka=null;this.u=this.b=this.a=this.m=this.i=this.g=this.s=0}n(Q,r);
function jg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=Q.prototype;
h.ha=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RK11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=E(c.value);null!=a&&kg(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&lg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&E(b.value);null==b||0>b||b>=d.f.length||!(a=d.f[b])?d.B("Unable to boot the selected drive"):a.P?(Zc(d.c,0,!0),(a=d.tc(a,0,0,0,512,0,2))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.C){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.f&&((a=d.f[E(a.value)||0])?(a=a.P)?(a=Ta(hg(a),a.Jb.replace(".json",".img")),v(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.C)return this.j[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;lg(d,F(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ea=function(a,b,c,d){this.A=a;this.v=b;this.c=c;this.D=d;if(a=jg(this,Lc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.w[e]=a[e]);mg(this);this.Ka=mc(this.c,144,5,65536);mb(b,this,ng);ob(b,this.reset.bind(this));og(this,"None",pg,!0);this.C&&og(this,"Local Disk",qg);og(this,"Remote Disk",rg);sg(this)||D(this)};
h.ga=function(a,b){if(!b){if(!a){if(this.reset(),this.A.m){this.h=[];for(a=0;a<this.f.length;a++)tg(this,a,!0);sg(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;8>b;b++){var c=document.createElement("option");c.value=b;c.text="RK"+b;a.appendChild(c)}a.value="0";kg(this,0)}}return!0};h.fa=function(a){return a?this.save():!0};h.reset=function(){mg(this)};
h.save=function(){var a=new H(this);a.set(0,[this.u,this.b,this.a,this.m,this.i,this.g,this.s,ug(this)]);return a.data()};h.restore=function(a){return mg(this,a[0])};
function mg(a,b){b||(b=[2368,0,128,0,0,0,0]);var c=ia(b);a.u=c.next().value;a.b=c.next().value;a.a=c.next().value;a.m=c.next().value;a.i=c.next().value;a.g=c.next().value;a.s=c.next().value;b[7]&&(a.h=b[7]);for(b=0;b<a.f.length;b++){var d=a.f[b];void 0===d&&(d=a.f[b]={});c=a;d.Ja=b;d.name=c.Ma;d.Wa=d.ya=!1;d.J=203;d.R=2;d.M=12;d.V=512;d.Cb=!0;d.Yc=0;d.Wc=0;d.$b=1;d.vc=d.M;d.bc=d.V;d.ed=0;d.we=null;d.P||(d.X="");d.status=2368}return!0}
function ug(a){for(var b=0;b<a.f.length;b++){var c=a.f[b];c.P&&vg(a,c.X,c.P)}return a.h}
function sg(a,b){b||(a.o=0);for(var c in a.w){var d=a.w[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.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=F(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.f.length)){!wg(a,g,f,e,!0)&&b&&D(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function lg(a,b,c,d){var e=a.j.listDrives,e=e&&E(e.value);if(void 0===e||0>e||e>=a.f.length)a.B("Unable to load the selected drive");else if(c)if(c==qg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==rg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"')}wg(a,e,b,c,!1,d)}else tg(a,e)}
function wg(a,b,c,d,e,f){var g=-1,k=a.f[b];k.X.toLowerCase()!=d.toLowerCase()&&(g++,tg(a,b,!0),k.Wa?a.B("RK11 busy"):(k.Wa=!0,e&&(k.Va=!0,a.o++),k.ya=!!f,cg(new Zf(a,k,"preload"),c,d,f,a.Mc)&&g++));return g}
h.Mc=function(a,b,c,d,e){a.Wa=!1;b&&(b.J>a.J||b.R>a.R)&&(this.B('Disk "'+c+'" too large for drive '+("RK"+a.Ja)),b=null);if(b){a.P=b;a.oa=c;a.X=d;a:{var f;for(f=0;f<this.h.length;f++)if(this.h[f][1]==d){b.restore(this.h[f][2]);break a}this.h[f]=[c,d,[]]}this.B('Loaded disk "'+c+'" in drive '+("RK"+a.Ja),a.Va||e);this.A&&Sc(this.A)}else a.ya=!1;a.Va&&(a.Va=!1,--this.o||D(this));kg(this,a.Ja)};
function og(a,b,c,d){if((a=a.j.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 kg(a,b){if(0<=b&&b<a.f.length){var c=a.f[b],d=a.j.listDisks;a=a.j.listDrives;if(d&&a&&d.options&&a.options&&(a=E(a.value),c=c.ya?qg:c.X,!isNaN(a)&&a==b)){for(b=0;b<d.options.length;b++)if(d.options[b].value==c){d.selectedIndex!=b&&(d.selectedIndex=b);break}b==d.options.length&&(d.selectedIndex=0)}}}function tg(a,b,c){var d=a.f[b];if(d.P||!1===c)vg(a,d.X,d.P),d.oa="",d.X="",d.P=null,d.ya=!1,c||(a.B("Drive RK"+b+" unloaded",c),kg(a,b))}
function vg(a,b,c){var d;for(d=0;d<a.h.length;d++)if(a.h[d][1]==b){a.h[d][2]=c.save();break}}h.tc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.P;var p=null,t;a||(m=128,e=0);for(;e;){if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.R&&(c=0,++b))}var x,w;if(0>(x=a.read(p,t++))||0>(w=a.read(p,t++))){m=32;break}if(!k&&(Ib(this.v,jd(this.c,f),x|w<<8),jc(this.v))){m=1024;break}t>=a.V&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Nc=function(a,b,c,d,e,f,g,k,l){var m=0;a=a.P;var p=null,t;a||(m=128,e=0);for(;e;){var x=Kb(this.v,jd(this.c,f));if(jc(this.v)){m=1024;break}if(!p){if(b>=a.J){m=64;break}p=a.seek(b,c,d+1,!0);if(!p){m=4096;break}t=0;++d>=a.M&&(d=0,++c>=a.R&&(c=0,++b))}if(k){var w,Y;if(0>(w=a.read(p,t++))||0>(Y=a.read(p,t++))){m=32;break}if(x!=(w|Y<<8)){m=1;break}}else if(!a.write(p,t++,x&255)||!a.write(p,t++,x>>8)){m=32;break}t>=a.V&&(p=null);f+=g;e--}return l?l(m,b,c,d,e,f):m};
h.Lc=function(a,b,c,d,e,f){this.i=f&65535;this.a=this.a&-49|f>>12&48;this.m=65536-e&65535;this.g=this.g&-16|d&15;this.b|=a;xg(this);return!0};function xg(a){a.a&=-32769;a.b&&(a.b|=32768,a.a|=32768,a.b&32736&&(a.a|=16384))}h.Ud=function(){return this.u};h.df=function(){};h.Vd=function(){return this.b};h.ef=function(){};h.Rd=function(){return this.a&61438};
h.af=function(a){this.a=this.a&-3968|a&3967;if(this.a&1){a=!0;var b,c,d=(this.g&57344)>>13,e=this.f[d],f,g,k,l,m,p;this.a&=-8321;this.b&=-4;switch(c=this.a&14){case 0:this.b=this.g=0;this.a=128;break;case 10:case 4:b=this.tc;case 6:case 2:b||(b=this.Nc);f=(this.g&8160)>>5;g=(this.g&16)>>4;k=this.g&15;l=65536-this.m&65535;m=(this.a&48)<<12|this.i;p=this.a&2048?0:2;if(f>=e.J){this.b|=64;break}if(k>=e.M){this.b|=32;break}a=b.call(this,e,f,g,k,l,m,p,6<=c,this.Lc.bind(this));break;case 8:f=(this.g&8160)>>
5;f<e.J?this.a|=8192:this.b|=64;break;case 12:this.b=this.g=0,this.a=8320}this.u=e.status|(e.P?128:0)|d<<13|this.g&15;xg(this);a&&(this.a&=-2,this.a|=128,this.a&64&&N(this.c,this.Ka))}};h.Wd=function(){return this.m};h.ff=function(a){this.m=a};h.Qd=function(){return this.i};h.$e=function(a){this.i=a};h.Sd=function(){return this.g};h.bf=function(a){this.g=a};h.Td=function(){return this.s};h.cf=function(a){this.s=a};
var pg="",qg="?",rg="??",yg={},ng=(yg[65280]=[null,null,Q.prototype.Ud,Q.prototype.df,"RKDS"],yg[65282]=[null,null,Q.prototype.Vd,Q.prototype.ef,"RKER"],yg[65284]=[null,null,Q.prototype.Rd,Q.prototype.af,"RKCS"],yg[65286]=[null,null,Q.prototype.Wd,Q.prototype.ff,"RKWC"],yg[65288]=[null,null,Q.prototype.Qd,Q.prototype.$e,"RKBA"],yg[65290]=[null,null,Q.prototype.Sd,Q.prototype.bf,"RKDA"],yg[65294]=[null,null,Q.prototype.Td,Q.prototype.cf,"RKDB"],yg);
function P(a){r.call(this,"RL11",a,0,131072);this.s=zg(this,a.autoMount);this.o=0;this.b=Array(4);this.u=!Qa("Mobi")&&window&&"FileReader"in window;this.Ka=null;this.a=this.m=this.f=this.g=this.i=this.h=0;this.exports={selectDrive:this.xe}}n(P,r);function zg(a,b){if(b&&"string"==typeof b)try{b=eval("("+b+")")}catch(c){v(a.type+" auto-mount error: "+c.message+" ("+b+")"),b=null}return b||{}}h=P.prototype;
h.ha=function(a,b,c){var d=this;switch(b){case "listDisks":return this.j[b]=c,c.onchange=function(){var a=d.j.descDisk,b=c.options&&c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){v("RL11 option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b='<a href="'+g+'" target="_blank">'+b+"</a>");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.j[b]=c,c.onchange=function(){var a=E(c.value);null!=a&&Ag(d,a)},
!0;case "loadDisk":return this.j[b]=c,c.onclick=function(){var a=d.j.listDisks;a&&a.options&&Bg(d,a.options[a.selectedIndex].text,a.value)},!0;case "bootDisk":return this.j[b]=c,c.onclick=function(){var a,b=d.j.listDrives,b=b&&E(b.value);null==b||0>b||b>=d.b.length||!(a=d.b[b])?d.B("Unable to boot the selected drive"):a.P?(Zc(d.c,0,!0),(a=d.uc(a,0,0,0,512,0))&&d.B("Unable to read the boot sector ("+a+")")):d.B("Load a disk into the drive first")},!0;case "saveDisk":if(!this.u){c.parentNode.removeChild(c);
break}this.j[b]=c;c.onclick=function(){var a=d.j.listDrives;a&&a.options&&d.b&&((a=d.b[E(a.value)||0])?(a=a.P)?(a=Ta(hg(a),a.Jb.replace(".json",".img")),v(a)):d.B("No disk loaded in drive."):d.B("No disk drive selected."))};return!0;case "mountDisk":if(this.u)return this.j[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;Bg(d,F(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
h.ea=function(a,b,c,d){this.A=a;this.v=b;this.c=c;this.D=d;if(a=zg(this,Lc(this.A,"autoMount")))for(var e in a)e.substr(0,2)==this.type.substr(0,2)&&(this.s[e]=a[e]);Cg(this);this.Ka=mc(this.c,112,5,131072);mb(b,this,Dg);ob(b,this.reset.bind(this));Eg(this,"None",Fg,!0);this.u&&Eg(this,"Local Disk",Gg);Eg(this,"Remote Disk",Hg);Ig(this)||D(this)};
h.ga=function(a,b){if(!b){if(!a){if(this.reset(),this.A.m){for(a=0;a<this.b.length;a++)Jg(this,a,!0);Ig(this,!0)}}else if(!this.restore(a))return!1;if(a=this.j.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;4>b;b++){var c=document.createElement("option");c.value=b;c.text="RL"+b;a.appendChild(c)}a.value="0";Ag(this,0)}}return!0};h.fa=function(a){return a?this.save():!0};h.reset=function(){Cg(this)};h.save=function(){return(new H(this)).data()};
h.restore=function(a){return Cg(this,a[0])};function Ig(a,b){b||(a.o=0);for(var c in a.s){var d=a.s[c],e=d.path||"",f;if(!(f=d.name))a:{if((f=a.j.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=F(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.b.length)){!Kg(a,g,f,e,!0)&&b&&D(a,!1);continue}a.B("Incorrect auto-mount settings for drive "+c+" ("+JSON.stringify(d)+")")}return!!a.o}
function Bg(a,b,c,d){var e=a.j.listDrives,e=e&&E(e.value);if(void 0===e||0>e||e>=a.b.length)a.B("Unable to load the selected drive");else if(c)if(c==Gg)a.B('Use "Choose File" and "Mount" to select and load a local disk.');else{if(c==Hg){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=F(c);a.status("Attempting to load "+c+' as "'+b+'"')}Kg(a,e,b,c,!1,d)}else Jg(a,e)}
function Kg(a,b,c,d,e,f){var g=-1,k=a.b[b];k.X.toLowerCase()!=d.toLowerCase()&&(g++,Jg(a,b,!0),k.Wa?a.B("RL11 busy"):(k.Wa=!0,e&&(k.Va=!0,a.o++),k.ya=!!f,cg(new Zf(a,k,"preload"),c,d,f,a.Pc)&&g++));return g}h.Pc=function(a,b,c,d,e){a.Wa=!1;b&&(b.J>a.J||b.R>a.R)&&(this.B('Disk "'+c+'" too large for drive '+("RL"+a.Ja)),b=null);b?(a.P=b,a.oa=c,a.X=d,this.B('Loaded disk "'+c+'" in drive '+("RL"+a.Ja),a.Va||e),this.A&&Sc(this.A)):a.ya=!1;a.Va&&(a.Va=!1,--this.o||D(this));Ag(this,a.Ja)};
function Eg(a,b,c,d){if((a=a.j.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 Ag(a,b,c){var d=!1;if(0<=b&&b<a.b.length){var e=a.b[b],f=a.j.listDisks;a=a.j.listDrives;if(f&&a&&f.options&&a.options){if(c)for(c=0;c<a.options.length;c++)if(E(a.options[c].value)==e.Ja){a.selectedIndex!=c&&(a.selectedIndex=c);d=!0;break}c=E(a.value);e=e.ya?Gg:e.X;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.xe=function(a){var b=this.j.listDrives;if(b&&b.options)for(var c=b.options.length,d=0;d<c;d++)if(b.options[d].innerHTML==a){var e=E(b.options[d].value);if(0<=e)return Ag(this,e,!0)}return!1};function Jg(a,b,c){var d=a.b[b];if(d.P||!1===c)d.oa="",d.X="",d.P=null,d.ya=!1,c||(a.B("Drive RL"+b+" unloaded",c),Ag(a,b))}
function Cg(a,b){var c=0;b||(b=[]);a.a=b[c++]||129;a.m=b[c++]||0;a.f=b[c++]||0;a.g=b[c++]||0;a.i=b[c++]||0;a.h=b[c]||0;for(b=0;b<a.b.length;b++){var d=a.b[b];void 0===d&&(d=a.b[b]={});c=a;d.Ja=b;d.name=c.Ma;d.Wa=d.ya=!1;d.J=512;d.R=2;d.M=40;d.V=256;d.Cb=!0;d.Yc=0;d.Wc=0;d.$b=1;d.vc=d.M;d.bc=d.V;d.ed=0;d.we=null;d.P||(d.X="");d.status=29}return!0}
h.uc=function(a,b,c,d,e,f,g){var k=0;a=a.P;var l=null,m;a||(k=5120,e=0);for(;e;){if(!l){l=a.seek(b,c,d+1);if(!l){k=5120;break}m=0}var p,t;if(0>(p=a.read(l,m++))||0>(t=a.read(l,m++))){k=5120;break}Ib(this.v,jd(this.c,f),p|t<<8);if(jc(this.v)){k=8192;break}f+=2;e--;if(m>=a.V&&(l=null,++d>=a.M&&(d=0,++c>=a.R&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Qc=function(a,b,c,d,e,f,g){var k=0;a=a.P;var l=null,m;a||(k=5120,e=0);for(;e;){var p=Kb(this.v,jd(this.c,f));if(jc(this.v)){k=8192;break}f+=2;e--;if(!l){l=a.seek(b,c,d+1,!0);if(!l){k=5120;break}m=0}if(!a.write(l,m++,p&255)||!a.write(l,m++,p>>8)){k=5120;break}if(m>=a.V&&(l=null,++d>=a.M&&(d=0,++c>=a.R&&(c=0,++b>=a.J)))){k=5120;break}}return g?g(k,b,c,d,e,f):k};
h.Oc=function(a,b,c,d,e,f){this.m=f&65535;this.a=this.a&-49|f>>12&48;this.h=f>>16&63;this.g=this.f=b<<7|(c?64:0)|d&63;this.i=65536-e&65535;a&&(this.a=this.a|a|32768);return!0};h.Zd=function(){return this.a&65535};
h.jf=function(a){this.a=this.a&-1023|a&1022;this.h=this.h&60|(a&48)>>4;if(!(this.a&128)){a=!0;var b,c=this.b[(this.a&768)>>8],d=c.T,e,f,g;this.a&=-2;switch(this.a&14){case 4:this.i&8&&(this.a&=63);this.i=c.status|this.g&64|(d&&512==d.J?128:0);break;case 6:1==(this.f&3)&&(b=this.f&65408,c=(this.f&16)<<2,this.g=this.f&4?this.g+b:this.g-b,this.f=this.g=this.g&65408|c);break;case 8:this.i=this.g;break;case 12:b=this.uc;case 10:b||(b=this.Qc),e=this.f>>7,f=this.f&64?1:0,g=this.f&63,!d||e>=d.J||g>=d.M?
h.jf=function(a){this.a=this.a&-1023|a&1022;this.h=this.h&60|(a&48)>>4;if(!(this.a&128)){a=!0;var b,c=this.b[(this.a&768)>>8],d=c.P,e,f,g;this.a&=-2;switch(this.a&14){case 4:this.i&8&&(this.a&=63);this.i=c.status|this.g&64|(d&&512==d.J?128:0);break;case 6:1==(this.f&3)&&(b=this.f&65408,c=(this.f&16)<<2,this.g=this.f&4?this.g+b:this.g-b,this.f=this.g=this.g&65408|c);break;case 8:this.i=this.g;break;case 12:b=this.uc;case 10:b||(b=this.Qc),e=this.f>>7,f=this.f&64?1:0,g=this.f&63,!d||e>=d.J||g>=d.M?
this.a|=37888:(a=65536-this.i&65535,d=(this.h&63)<<16|this.m,a=b.call(this,c,e,f,g,a,d,this.Oc.bind(this)))}a&&(this.a|=129,this.a&64&&N(this.c,this.Ka))}};h.Xd=function(){return this.m};h.gf=function(a){this.m=a&65534};h.$d=function(){return this.f};h.kf=function(a){this.f=a};h.ae=function(){return this.i};h.lf=function(a){this.i=a};h.Yd=function(){return this.h};h.hf=function(a){this.h=a&63;this.a=this.a&-49|(this.h&3)<<4};
var Cg="",Dg="?",Eg="??",Ig={},Ag=(Ig[63744]=[null,null,P.prototype.Zd,P.prototype.jf,"RLCS"],Ig[63746]=[null,null,P.prototype.Xd,P.prototype.gf,"RLBA"],Ig[63748]=[null,null,P.prototype.$d,P.prototype.kf,"RLDA"],Ig[63750]=[null,null,P.prototype.ae,P.prototype.lf,"RLMP"],Ig[63752]=[null,null,P.prototype.Yd,P.prototype.hf,"RLBE"],Ig);
function Jg(a,b,c){r.call(this,"Computer",a,0,33554432);this.l.S=!1;this.G=null;Kg(this,b);this.D=Kc(this,"autoPower",a,6);this.g=0;this.K=+a.busWidth||+a.buswidth;this.v=this.s=this.w=null;this.o=this.I=!1;this.i=this.h=null;this.H=this.m=this.F=!1;this.L=Kc(this,"url")||"";(Math.random()+.1).toString(36);this.b=Lg(this);if(this.c=wa("CPU",this.id)){this.C=wa("Debugger",this.id);this.u=new Nb({id:this.Na+".bus",busWidth:this.K},this.c,this.C);var d,e=y(this.id);if((this.f=wa("Panel",this.id))&&this.f.bb)for(b=
0;b<e.length;b++)d=e[b],d.B=this.f.B,d.X=this.f.X,d.bb=this.f.bb;this.X(db+" v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.X("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.ca&&d.ca(this,this.u,this.c,this.C);this.a=Kc(this,"resume",a,4,Mg);var f;b=null;if(a=Kc(this,"state")||(f=!0,a.state))this.w=b=a,f||(this.o=!0,this.a=
Mg),this.a&&(this.i=new J(this,"1.32.2"),Ng(this.i)?b=null:delete this.i);!b&&this.a&&(b=Og(this))&&(this.o=!0);if(b){var g=this;G(b,null,!0,function(a,b,c){c?(g.s=null,g.o=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+Ha(b):"")+")")):(g.v=b,g.I=!0);D(g)})}else D(this);this.j.power||(this.D=!0);!c&&this.D&&Pg(this,this.vb)}else v("Unable to find CPU component")}n(Jg,r);
function Kg(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.G=b}function Kc(a,b,c,d,e){var f=b.toLowerCase(),f=Ra(b)||Ra(f);void 0===f&&a.G&&(f=a.G[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Pg(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ya(f)){ya(f,function(){Pg(a,b,c)});return}}b.call(a,c)}function Qg(a,b){var c=new J(a,"1.32.2",Rg);if(Ng(c)&&Sg(c)){var d=c.get(Tg),e=b?b.get(Tg):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Jg.prototype;
h.vb=function(a){void 0===a&&(a=this.a||(this.v?Ug:Mg));if(!this.g){this.g++;var b=!1,c=!1;this.F=!1;var d=this.i||new J(this,"1.32.2");if(a==Vg)b=!0;else if(a>Mg){if(Ng(d,this.v)){this.h=new J(this,"1.32.2",Wg);Ng(this.h)&&(Xg(this,d),a=Yg,ah(this.h));this.h.set(Tg,Ja());bh(this.h);var e=this.a&&!this.o;if(a==Ug||ua("Click OK to restore the previous "+db+" machine state, or CANCEL to reset the machine.")){if(c=Sg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Ng(d,g):("error"==f&&"no machine state"!=
g?(this.B("Error: "+g),"unable to verify user"==g&&(Pa(ch,""),this.b=null)):this.X(f+": "+g),ah(d),Ng(d)?(c=Sg(d),e=!0):c=!1))}e&&Qg(this,c?d:null)}else a==Yg&&d.clear()}else Qg(this);delete this.v;delete this.i}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=dh(this,g,d,b,c));b=[d,a,c];a!=Vg?Pg(this,this.wc,b):this.wc(b)}};
function dh(a,b,c,d,e){if(!b.l.S){b.l.S=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ea(f,d)&&f&&(v("Unable to restore state for "+b.type),a.w&&!a.I?(c.clear(),a.a=Mg,window&&window.location.reload()):a.F=!0,b.ea(null),e=!1),!d&&b.oc){var g=b.oc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.wc=function(a){var b=a[0],c=0>a[1];a=a[2];this.H=!0;this.l.S=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.c&&(dh(this,this.c,b,c,a),Db(this),this.c.ba());this.F&&(Xg(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.g=0};
function Xg(a,b){if(ua("There may be a problem with your "+db+" machine.\n\nTo help us diagnose it, click OK to send this "+db+" machine state to http://www.pcjs.org.")){var c=a.L;a=a.b||"";b=b.toString();var d={};d.app=db;d.ver="1.32.2";d.url=c;d.user=a;d.type="bug";d.data=b;G("http://www.pcjs.org/api/v1/report",d,!0)}}
function eh(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new J(a,"1.32.2"),g=new J(a,"1.32.2",Rg),k=Ja();g.set(Tg,k);f.set(Tg,k);f.set(fh,"1.32.2");f.set(gh,window?window.location.href:null);f.set(hh,window?window.navigator.userAgent:"");a.c&&a.c.da&&(c&&(b&&(a.c.l.ba=a.c.l.N),H(a.c)),d=a.c.da(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.l.S=!1,!1===d&&(e=null)));for(var k=y(a.id),l=0;l<k.length;l++){var m=k[l];m.l.S&&(m.da&&(d=m.da(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.l.S=
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.b&&ih(a,a.b,f.toString()),bh(g)&&bh(f)||(e=null,d=k=!0)):a.a&&(d=!0,k=a.a==jh),d&&f.clear(k)):e=f.toString());c&&(a.l.S=!1,b=a.j.power)&&(b.textContent="Power");a.g=0;return e}h.reset=function(){this.u&&this.u.reset&&this.u.reset();this.c&&this.c.reset&&this.c.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.u&&c!==this.c&&c.reset&&c.reset()}Db(this,-1)};
h.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Db(this,-1)};h.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Db(this,-1)};
function Db(a,b){if(a.c){var c=a.c,d=b||0,e=c.j.speed;e&&(0>=d||30<=(c.hc+=d))&&(e.textContent=c.l.N?c.Oa.toFixed(2)+"Mhz":"Stopped",c.hc=0)}if(a.f&&(a=a.f,b=b||0,a.m)){c=a.c.l.N;d=!!(a.c.g&8);if(0>=b||60<=(a.i+=b)){for(e=0;e<a.c.b.length;e++)tb(a,"R"+e,a.c.b[e]);e=qc(a.c);tb(a,"PS",e);tb(a,"NF",e&8?1:0,1);tb(a,"ZF",e&4?1:0,1);tb(a,"VF",e&2?1:0,1);tb(a,"CF",e&1?1:0,1);a.i=0}Jb(a,0<b&&c&&!d?a.c.Aa:a.la);Fb(a,a.h);b=a.c;b=b.Ba?b.na&16?1:2:4;Lb(a,"B22",b&1);Lb(a,"B18",b&2);Lb(a,"B16",b&4)}}
h.ga=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.g||(d.l.S?eh(d,!1,!0):Pg(d,d.vb))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.l.S&&!d.g)if(d.a&&!d.s){var a=ua("Click OK to save changes to this "+db+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");eh(d,a,!0);!a&&d.w?window&&window.location.reload():(a||(d.m=!0),d.vb(Mg),d.m=!1)}else d.reset(),d.c&&d.c.ba()},!0;case "save":if(Ea(La(),"pcjs.org"))c.parentNode.removeChild(c);
else return this.j[b]=c,c.onclick=function(){var a=Lg(d,!0);if(a){var b=!!(d.a&&!d.s||d.w),c=eh(d,b);b?ih(d,a,c):d.B("Resume disabled, machine state not saved")}},!0}return!1};
function Lg(a,b){var c=a.b;c||((c=Oa(ch),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=kh(a,c))||a.B("The user ID is invalid.")):b&&a.B("Browser local storage is not available"));return c}
function kh(a,b){a.b=null;b=G(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Pa(ch,b.data),a.b=b.data)}catch(d){v(d.message+" ("+c+")")}return a.b}function Og(a){var b=null;a.b&&(b=La()+"/api/v1/user?req=load&user="+a.b+"&state="+lh(a,"1.32.2"));return b}
function ih(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=lh(a,"1.32.2");d.data=c;b=G(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.B(c),Pa(ch,""),a.b=null)}}
function Kf(a){var b;a=y(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function Rc(a){if(a.bb){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.bb.focus();window&&window.scrollTo(b,c)}}var Wg="failsafe",Rg="validate",Tg="timestamp",fh="version",gh="url",hh="browser",ch="user",Vg=-1,Mg=0,Ug=1,Yg=2,jh=3;
Va(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Jg(g,d,!0);A(g,f);g.D&&Pg(g,g.vb)}});Wa.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=wa("Computer",c.id))&&c.H&&!c.l.S&&c.vb(Vg)}});Wa.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=wa("Computer",c.id))&&c.l.S&&eh(c,!(!c.a||c.s),!0)}});
function J(a,b,c){this.id=a.id;this.a="";this.c={};this.b=this.j=!1;this.key=lh(a,b,c);ah(this,a.Tc)}h=J.prototype;h.set=function(a,b){try{this.c[a]=b}catch(c){}};h.get=function(a){return this.c[a]||null};h.data=function(){return this.c};function Ng(a,b){return b?(a.a=b,a.b=!0,a.j=!1,!0):a.b?!0:Ma()&&(b=Oa(a.key))?(a.a=b,a.b=!0):!1}function Sg(a){var b=!0;if(!a.j)try{a.c=JSON.parse(a.a),a.j=!0}catch(c){v(c.message||c),b=!1}return b}
function bh(a){var b=!0;if(Ma()){var c=JSON.stringify(a.c);Pa(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.c?JSON.stringify(this.c):this.a};function ah(a,b){a.a="";a.c={};a.b=a.j=!1;b&&a.set("parms",b)}
h.clear=function(a){ah(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function lh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var mh=0;
function nh(a,b,c,d,e,f){e("Loading "+a+"...");G(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):oh(k,a,b,c,d,e,f)})}
function oh(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(ra(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?ph(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function ph(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");G(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,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.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);ph(a,b,c)}})}else c(a,null)}
function qh(a,b,c,d){function e(a){if(void 0===k){var b=g&&C(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=Fa(a))}function f(a){e("Error: "+a);l&&(--mh||Za(!0));l=!1}var g,k,l=!0;mh++;sa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
(c="/versions/pdpjs/1.32.2/components.xsl");m=function(d,k){k?nh(c,null,null,!1,e,function(d,l){l?(ra(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--mh||Za(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--mh||Za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?nh(b,a,d,!0,e,m):oh(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return l}window.embedPDP11=function(a,b,c,d){Za(!1);return qh(a,b,c,d)};window.findMachineComponent=function(a,b){return wa(b,a+".machine")};window.enableEvents=Za;window.sendEvent=ab;})();//# sourceMappingURL=/tmp/pdpjs/1.32.2/pdp11.map
var Fg="",Gg="?",Hg="??",Lg={},Dg=(Lg[63744]=[null,null,P.prototype.Zd,P.prototype.jf,"RLCS"],Lg[63746]=[null,null,P.prototype.Xd,P.prototype.gf,"RLBA"],Lg[63748]=[null,null,P.prototype.$d,P.prototype.kf,"RLDA"],Lg[63750]=[null,null,P.prototype.ae,P.prototype.lf,"RLMP"],Lg[63752]=[null,null,P.prototype.Yd,P.prototype.hf,"RLBE"],Lg);
function Mg(a,b,c){r.call(this,"Computer",a,0,33554432);this.l.T=!1;this.G=null;Ng(this,b);this.C=Lc(this,"autoPower",a,6);this.g=0;this.K=+a.busWidth||+a.buswidth;this.u=this.s=this.w=null;this.o=this.I=!1;this.i=this.h=null;this.H=this.m=this.F=!1;this.L=Lc(this,"url")||"";(Math.random()+.1).toString(36);this.b=Og(this);if(this.c=wa("CPU",this.id)){this.D=wa("Debugger",this.id);this.v=new Ob({id:this.Na+".bus",busWidth:this.K},this.c,this.D);var d,e=y(this.id);if((this.f=wa("Panel",this.id))&&this.f.bb)for(b=
0;b<e.length;b++)d=e[b],d.B=this.f.B,d.Z=this.f.Z,d.bb=this.f.bb;this.Z(db+" v1.32.2\nCopyright \u00a9 2012-2017 Jeff Parsons <Jeff@pcjs.org>\nLicense: GPL version 3 or later <http://gnu.org/licenses/gpl.html>");this.Z("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.ea&&d.ea(this,this.v,this.c,this.D);this.a=Lc(this,"resume",a,4,Pg);var f;b=null;if(a=Lc(this,"state")||(f=!0,a.state))this.w=b=a,f||(this.o=!0,this.a=
Pg),this.a&&(this.i=new H(this,"1.32.2"),Qg(this.i)?b=null:delete this.i);!b&&this.a&&(b=Rg(this))&&(this.o=!0);if(b){var g=this;G(b,null,!0,function(a,b,c){c?(g.s=null,g.o=!1,g.B("Unable to load machine state from server (error "+c+(b?": "+Ha(b):"")+")")):(g.u=b,g.I=!0);D(g)})}else D(this);this.j.power||(this.C=!0);!c&&this.C&&Sg(this,this.vb)}else v("Unable to find CPU component")}n(Mg,r);
function Ng(a,b){if(!b){var c;if("object"==typeof resources&&(c=resources.parms))try{b=eval("("+c+")")}catch(d){v(d.message+" ("+c+")")}}a.G=b}function Lc(a,b,c,d,e){var f=b.toLowerCase(),f=Ra(b)||Ra(f);void 0===f&&a.G&&(f=a.G[b]);void 0===f&&c&&(f=c[b]);void 0===f&&"object"==typeof resources&&resources[b]&&(f=b);void 0===f&&(f=e);if("string"==typeof f&&d)switch(d){case 4:f=+f;isNaN(f)&&(f=e||0);break;case 6:f="true"==f}return f}
function Sg(a,b,c){for(var d=y(a.id),e=0;e<=d.length;e++){var f=e<d.length?d[e]:a;if(!ya(f)){ya(f,function(){Sg(a,b,c)});return}}b.call(a,c)}function Tg(a,b){var c=new H(a,"1.32.2",Ug);if(Qg(c)&&Vg(c)){var d=c.get(Wg),e=b?b.get(Wg):"unknown";d!=e&&(a.B("Machine state may be out-of-date\n("+d+" vs. "+e+")\nCheck your browser's local storage limits"),b||c.clear())}}h=Mg.prototype;
h.vb=function(a){void 0===a&&(a=this.a||(this.u?Xg:Pg));if(!this.g){this.g++;var b=!1,c=!1;this.F=!1;var d=this.i||new H(this,"1.32.2");if(a==Yg)b=!0;else if(a>Pg){if(Qg(d,this.u)){this.h=new H(this,"1.32.2",Zg);Qg(this.h)&&($g(this,d),a=ch,dh(this.h));this.h.set(Wg,Ja());eh(this.h);var e=this.a&&!this.o;if(a==Xg||ua("Click OK to restore the previous "+db+" machine state, or CANCEL to reset the machine.")){if(c=Vg(d)){var f=d.get("code"),g=d.get("data");f&&("ok"==f?Qg(d,g):("error"==f&&"no machine state"!=
g?(this.B("Error: "+g),"unable to verify user"==g&&(Pa(fh,""),this.b=null)):this.Z(f+": "+g),dh(d),Qg(d)?(c=Vg(d),e=!0):c=!1))}e&&Tg(this,c?d:null)}else a==ch&&d.clear()}else Tg(this);delete this.u;delete this.i}e=y(this.id);for(f=0;f<e.length;f++)g=e[f],g!==this&&g!=this.c&&(c=gh(this,g,d,b,c));b=[d,a,c];a!=Yg?Sg(this,this.wc,b):this.wc(b)}};
function gh(a,b,c,d,e){if(!b.l.T){b.l.T=!0;var f=null;try{if(e&&((f=c.get(b.id))||(f=c.get(b.id.replace(/[a-z0-9]\./i,".")))),"string"===typeof f&&(f=null),!b.ga(f,d)&&f&&(v("Unable to restore state for "+b.type),a.w&&!a.I?(c.clear(),a.a=Pg,window&&window.location.reload()):a.F=!0,b.ga(null),e=!1),!d&&b.oc){var g=b.oc.split("|");for(a=0;a<g.length;a++)b.status(g[a])}}catch(k){v("Error restoring state for "+b.type+" ("+k.message+")")}}return e}
h.wc=function(a){var b=a[0],c=0>a[1];a=a[2];this.H=!0;this.l.T=!0;var d=this.j.power;d&&(d.textContent="Shutdown");this.c&&(gh(this,this.c,b,c,a),Gb(this,-2),this.c.da());this.F&&($g(this,b),b.clear());!c&&this.h&&(this.h.clear(),delete this.h);this.g=0};
function $g(a,b){if(ua("There may be a problem with your "+db+" machine.\n\nTo help us diagnose it, click OK to send this "+db+" machine state to http://www.pcjs.org.")){var c=a.L;a=a.b||"";b=b.toString();var d={};d.app=db;d.ver="1.32.2";d.url=c;d.user=a;d.type="bug";d.data=b;G("http://www.pcjs.org/api/v1/report",d,!0)}}
function hh(a,b,c){var d,e="none";if(a.g)return null;a.g--;var f=new H(a,"1.32.2"),g=new H(a,"1.32.2",Ug),k=Ja();g.set(Wg,k);f.set(Wg,k);f.set(ih,"1.32.2");f.set(jh,window?window.location.href:null);f.set(kh,window?window.navigator.userAgent:"");a.c&&a.c.fa&&(c&&(b&&(a.c.l.da=a.c.l.N),I(a.c)),d=a.c.fa(b,c),"object"===typeof d&&f.set(a.c.id,d),c&&(a.c.l.T=!1,!1===d&&(e=null)));for(var k=y(a.id),l=0;l<k.length;l++){var m=k[l];m.l.T&&(m.fa&&(d=m.fa(b,c),"object"===typeof d&&f.set(m.id,d)),c&&(m.l.T=
!1,!1===d&&(e=null)))}e&&(c?(k=d=!1,b?(a.b&&lh(a,a.b,f.toString()),eh(g)&&eh(f)||(e=null,d=k=!0)):a.a&&(d=!0,k=a.a==mh),d&&f.clear(k)):e=f.toString());c&&(a.l.T=!1,b=a.j.power)&&(b.textContent="Power");a.g=0;return e}h.reset=function(){this.v&&this.v.reset&&this.v.reset();this.c&&this.c.reset&&this.c.reset();for(var a=y(this.id),b=0;b<a.length;b++){var c=a[b];c!==this&&c!==this.v&&c!==this.c&&c.reset&&c.reset()}Gb(this,-1)};
h.start=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.start&&e.start(a,b)}Gb(this,-1)};h.stop=function(a,b){for(var c=y(this.id),d=0;d<c.length;d++){var e=c[d];"CPU"!=e.type&&e!==this&&e.stop&&e.stop(a,b)}Gb(this,-1)};
function Gb(a,b){if(a.c){var c=a.c,d=b||0,e=c.j.speed;e&&(0>=d||30<=(c.hc+=d))&&(e.textContent=c.l.N?c.Oa.toFixed(2)+"Mhz":"Stopped",c.hc=0)}if(a.f&&(a=a.f,b=b||0,a.m)){c=a.c.l.N;d=!!(a.c.g&8);if(0>=b||60<=(a.i+=b)){for(e=0;e<a.c.b.length;e++)wb(a,"R"+e,a.c.b[e]);e=rc(a.c);wb(a,"PS",e);wb(a,"NF",e&8?1:0,1);wb(a,"ZF",e&4?1:0,1);wb(a,"VF",e&2?1:0,1);wb(a,"CF",e&1?1:0,1);a.i=0}-1>b?a.U=a.c.b[7]:0<b&&c&&!d&&(a.U=a.c.Aa);sb(a,a.U);jb(a,a.f);b=a.c;b=b.Ba?b.na&16?1:2:4;Lb(a,"B22",b&1);Lb(a,"B18",b&2);Lb(a,
"B16",b&4)}}
h.ha=function(a,b,c){var d=this;switch(b){case "power":return this.j[b]=c,c.onclick=function(){d.g||(d.l.T?hh(d,!1,!0):Sg(d,d.vb))},!0;case "reset":return this.j[b]=c,c.onclick=function(){if(d.l.T&&!d.g)if(d.a&&!d.s){var a=ua("Click OK to save changes to this "+db+" machine.\n\nWARNING: If you CANCEL, all disk changes will be discarded.");hh(d,a,!0);!a&&d.w?window&&window.location.reload():(a||(d.m=!0),d.vb(Pg),d.m=!1)}else d.reset(),d.c&&d.c.da()},!0;case "save":if(Ea(La(),"pcjs.org"))c.parentNode.removeChild(c);else return this.j[b]=
c,c.onclick=function(){var a=Og(d,!0);if(a){var b=!!(d.a&&!d.s||d.w),c=hh(d,b);b?lh(d,a,c):d.B("Resume disabled, machine state not saved")}},!0}return!1};function Og(a,b){var c=a.b;c||((c=Oa(fh),void 0!==c)?!c&&b&&(b=null,window&&(b=window.prompt("Saving machine states on the pcjs.org server is currently unsupported.\n\nIf you're running your own server, enter your user ID below.","")),c=b)&&((c=nh(a,c))||a.B("The user ID is invalid.")):b&&a.B("Browser local storage is not available"));return c}
function nh(a,b){a.b=null;b=G(La()+"/api/v1/user?req=verify&user="+b);var c=b[1];if(!b[0]&&c)try{b=eval("("+c+")"),b.code&&"ok"==b.code&&(Pa(fh,b.data),a.b=b.data)}catch(d){v(d.message+" ("+c+")")}return a.b}function Rg(a){var b=null;a.b&&(b=La()+"/api/v1/user?req=load&user="+a.b+"&state="+oh(a,"1.32.2"));return b}
function lh(a,b,c){if(c){var d={req:"store"};d.user=b;d.state=oh(a,"1.32.2");d.data=c;b=G(La()+"/api/v1/user",d);d=b[0];if(b[1]){if(d){var e=d.indexOf("\n");0<e&&(d=d.substr(0,e));d.indexOf("Error: ")||(d=d.substr(7))}d='{"code":'+b[1]+',"data":"'+d+'"}'}b=JSON.parse(d);b&&"ok"==b.code?a.B("Machine state saved to server"):c&&(c=b&&b.data||"unable to save machine state",c="error"==b.code?"Error: "+c:"Error "+b.code+": "+c,a.B(c),Pa(fh,""),a.b=null)}}
function Lf(a){var b;a=y(a.id);for(var c=0;c<a.length;c++){var d=a[c];if(b)b==d&&(b=null);else if("RAM"==d.type)return d}return null}function Sc(a){if(a.bb){var b=0,c=0;window&&(b=window.scrollX,c=window.scrollY);a.bb.focus();window&&window.scrollTo(b,c)}}var Zg="failsafe",Ug="validate",Wg="timestamp",ih="version",jh="url",kh="browser",fh="user",Yg=-1,Pg=0,Xg=1,ch=2,mh=3;
Va(function(){for(var a=C(document,B+"-machine"),b=0;b<a.length;b++)for(var c=a[b],d=z(c),c=C(c,B,"computer"),e=0;e<c.length;e++){var f=c[e],g=z(f),g=new Mg(g,d,!0);A(g,f);g.C&&Sg(g,g.vb)}});Wa.show.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=wa("Computer",c.id))&&c.H&&!c.l.T&&c.vb(Yg)}});Wa.exit.push(function(){for(var a=C(document,B,"computer"),b=0;b<a.length;b++){var c=z(a[b]);(c=wa("Computer",c.id))&&c.l.T&&hh(c,!(!c.a||c.s),!0)}});
function H(a,b,c){this.id=a.id;this.a="";this.c={};this.b=this.j=!1;this.key=oh(a,b,c);dh(this,a.Tc)}h=H.prototype;h.set=function(a,b){try{this.c[a]=b}catch(c){}};h.get=function(a){return this.c[a]||null};h.data=function(){return this.c};function Qg(a,b){return b?(a.a=b,a.b=!0,a.j=!1,!0):a.b?!0:Ma()&&(b=Oa(a.key))?(a.a=b,a.b=!0):!1}function Vg(a){var b=!0;if(!a.j)try{a.c=JSON.parse(a.a),a.j=!0}catch(c){v(c.message||c),b=!1}return b}
function eh(a){var b=!0;if(Ma()){var c=JSON.stringify(a.c);Pa(a.key,c)||(v("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}h.toString=function(){return this.c?JSON.stringify(this.c):this.a};function dh(a,b){a.a="";a.c={};a.b=a.j=!1;b&&a.set("parms",b)}
h.clear=function(a){dh(this);var b=[];try{for(var c=0,d=window.localStorage.length;c<d;c++)b.push(window.localStorage.key(c))}catch(e){}for(c=0;c<b.length;c++)if((d=b[c])&&(a||d.substr(0,this.key.length)==this.key)){try{window.localStorage.removeItem(d)}catch(e){}b.splice(c,1);c=0}};function oh(a,b,c){a=a.id;if(b){var d=b.indexOf(".");0<d&&(a+=".v"+b.substr(0,d))}c&&(a+="."+c);return a}var ph=0;
function qh(a,b,c,d,e,f){e("Loading "+a+"...");G(a,null,!0,function(g,k,l){l?(k||(k="unable to load "+a+" ("+l+")"),f(k,null)):rh(k,a,b,c,d,e,f)})}
function rh(a,b,c,d,e,f,g){function k(a,f){if(f)g(f,null);else{c&&(ra(c,b,a),(f=b)&&0>f.indexOf("/")&&"/"==window.location.pathname.slice(-1)&&(f=window.location.pathname+f),d?"}"==d.slice(-1)?(d=d.slice(0,-1),1<d.length&&(d+=",")):d='{state:"'+d+'",':d="{",d+='url:"'+f+'"}',"object"==typeof resources&&(f=null),a=a.replace(/(<machine[^>]*\sid=)(['"]).*?\2/,"$1$2"+c+"$2"+(d?" parms='"+d+"'":"")+(f?' url="'+f+'"':"")));e||(a=a.replace(/(<xsl:variable name="APPNAME">).*?(<\/xsl:variable>)/,"$1PDPjs$2"),
a=a.replace(/(<xsl:variable name="APPCLASS">).*?(<\/xsl:variable>)/,"$1pdp11$2"));f=null;if("<"==a.charAt(0))try{e||(a=a.replace(/<!DOCTYPE(.|[\r\n])*]>\s*/g,"")),window.ActiveXObject||"ActiveXObject"in window?(f=new window.ActiveXObject("Microsoft.XMLDOM"),f.async=!1,f.loadXML(a)):f=(new window.DOMParser).parseFromString(a,"text/xml")}catch(p){f=null,a=p.message}else a="unrecognized XML: "+(255<a.length?a.substr(0,255)+"...":a);g(a,f)}}a?e?sh(a,f,k):k(a,null):g("no data"+(b?" for file: "+b:""),null)}
function sh(a,b,c){var d;if(d=/<([a-z]+)\s+ref="(.*?)"(.*?)\/>/g.exec(a)){var e=d[2];b("Loading "+e+"...");G(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,p=/( [a-z]+=)(['"])(.*?)\2/g;m=p.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);sh(a,b,c)}})}else c(a,null)}
function th(a,b,c,d){function e(a){if(void 0===k){var b=g&&C(g,"machine-warning");k=b&&b[0]||g}k&&(k.innerHTML=Fa(a))}function f(a){e("Error: "+a);l&&(--ph||Za(!0));l=!1}var g,k,l=!0;ph++;sa[a]={};try{if(g=document.getElementById(a)){var m;if("object"==typeof resources&&(m=resources.css)){var p=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.type="text/css";t.styleSheet?t.styleSheet.cssText=m:t.appendChild(document.createTextNode(m));p.appendChild(t)}c||
(c="/versions/pdpjs/1.32.2/components.xsl");m=function(d,k){k?qh(c,null,null,!1,e,function(d,l){l?(ra(a,c,d),e("Processing "+b+"..."),window.ActiveXObject||"ActiveXObject"in window?(l=k.transformNode(l))?(g.outerHTML=l,--ph||Za(!0)):f("transformNodeToObject failed"):document.implementation&&document.implementation.createDocument?(d=new XSLTProcessor,d.importStylesheet(l),(l=d.transformToFragment(k,document))?g.parentNode?(g.parentNode.replaceChild(l,g),--ph||Za(!0)):f("invalid machine element: "+
a):f("transformToFragment failed")):f("unable to transform XML: unsupported browser")):f(d)}):f(d)};"<"!=b.charAt(0)?qh(b,a,d,!0,e,m):rh(b,null,a,d,!1,e,m)}else f("missing machine element: "+a)}catch(x){f(x.message)}return l}window.embedPDP11=function(a,b,c,d){Za(!1);return th(a,b,c,d)};window.findMachineComponent=function(a,b){return wa(b,a+".machine")};window.enableEvents=Za;window.sendEvent=ab;})();//# sourceMappingURL=/tmp/pdpjs/1.32.2/pdp11.map