diff --git a/docs/pcjs/demos/components.xsl b/docs/pcjs/demos/components.xsl
index e0924b3ea..11089277e 100644
--- a/docs/pcjs/demos/components.xsl
+++ b/docs/pcjs/demos/components.xsl
@@ -228,7 +228,7 @@
>8|(y&255)<<8;var V=k,Y=16;x>=d))>>(Y-=d);Xm(a.Ib,x++,B,r[da])}x>U&&(U=x);B =O&&(O=B+1)}q+=2;f++;if(x>=a.O){x=0;B+=2;if(B>a.X)break;B==a.X&&(B=1,q=c+a.ud)}}a.Oa=!0;J a.O?a.Jb-a.O-y>>3:0;c >=8;r>J&&(J=r);x=F&&(F=x+1)}c+=O;if(r>=a.O){r=0;if(++x>a.X)break;c+=V}}y||(a.Oa=!0);Ba.O?a.Jb-a.O-F>>3:0;c V&&(Y=V)):(y<<=F,Y-=F,a.Oa=!1):(a.Oa&&y===a.ka[f]?(d+=Y,Y=0):a.ka[f]=y,f++);if(Y){dB&&(B=d);r =U&&(U=r+1)}if(d>=a.O){d=0;if(++r>a.X)break;c+=O}}F||(a.Oa=!0);x d&&(b.zh=d,d=-d|0);d%b.uh>b.om&&(c|=1);d%b.xh>b.qm&&(c|=9);b.ii=d/b.xh|0;return c}h.Kl=function(a,b){return Bn(this,this.za,a,b)};h.dn=function(a,b,c){var d=this.za;d.Kg=d.Ac;d.Ac=b&31;m(this,a,b,c,"CRTC.INDX")};h.Jl=function(a,b){return Cn(this,this.za,a,b)};h.cn=function(a,b,c){Dn(this,this.za,a,b,c)};h.Ll=function(a,b){return En(this,this.za,b)};h.en=function(a,b,c){a=this.za;m(this,a.port+4,b,c,"MODE");a.fd=b;Sm(this,!1)}; -h.Ml=function(a,b){return Fn(this,this.za,b)};h.hk=function(a,b,c){this.A.ag=this.A.ag&-4|b&3;m(this,a,b,c,"FEAT")};h.jl=function(a,b){var c=this.A.Kd;b&&!n(this)||m(this,960,null,b,"ATC.INDX",c);return c};h.Ik=function(a,b){var c=this.A.Uc[this.A.Kd&31];b&&!n(this)||m(this,960,null,b,"ATC."+this.A.Wg[this.A.Kd&31],c);return c}; -h.gk=function(a,b,c){var d=this.A,e=d.Kd&32;if(d.We){d.We=!1;var f=d.Kd&31;if(16<=f||!e)c&&!n(this)||m(this,a,b,c,"ATC."+d.Wg[f]),d.Uc[f]=b,yn(this,!1)}else d.Kd=b,m(this,a,b,c,"ATC.INDX"),d.We=!0,b&32&&!e&&Qm(this,!0)&&cd(this,!0),d.Vf=(d.zb[12]<<8)+d.zb[13]|0,d.nf=0};h.Xl=function(a,b){var c=0;if(5==this.nb)c=3-((this.A.sf&12)>>2),c=(this.Wc&1< q&&(r=q-c, +0>r&&(r=0));q=c+r;if(d=!b&&a.Oa){for(var d=a.ja,x=!0,B=c>>>d.Pa;0 a.ua)return;f=a.ua;g=f+1}}if(a.W){if(a.Va[a.W]){e=0;k=a.cb=0;d=1048575;r=a.C.fd&32;5<=a.nb&&(r=a.C.Uc[16]&8);r&&(k=32768,d&=~k,a.Yb&2||(d&=-65537));for(c+=f<<1;c >8|(y&255)<<8;var V=k,Y=16;x>=d))>>(Y-=d);an(a.Ib,x++,B,r[da])}x>U&&(U=x);B =O&&(O=B+1)}q+=2;f++;if(x>=a.O){x=0;B+=2;if(B>a.X)break;B==a.X&&(B=1,q=c+a.ud)}}a.Oa=!0;J a.O?a.Jb-a.O-y>>3:0;c >=8;r>J&&(J=r);x=F&&(F=x+1)}c+=O;if(r>=a.O){r=0;if(++x>a.X)break;c+=V}}y||(a.Oa=!0);Ba.O?a.Jb-a.O-F>>3:0;c V&&(Y=V)):(y<<=F,Y-=F,a.Oa=!1):(a.Oa&&y===a.ka[f]?(d+=Y,Y=0):a.ka[f]=y,f++);if(Y){dB&&(B=d);r =U&&(U=r+1)}if(d>=a.O){d=0;if(++r>a.X)break;c+=O}}F||(a.Oa=!0);x d&&(b.zh=d,d=-d|0);d%b.uh>b.om&&(c|=1);d%b.xh>b.qm&&(c|=9);b.ii=d/b.xh|0;return c}h.Kl=function(a,b){return Fn(this,this.za,a,b)};h.dn=function(a,b,c){var d=this.za;d.Kg=d.Ac;d.Ac=b&31;m(this,a,b,c,"CRTC.INDX")};h.Jl=function(a,b){return Gn(this,this.za,a,b)};h.cn=function(a,b,c){Hn(this,this.za,a,b,c)};h.Ll=function(a,b){return In(this,this.za,b)};h.en=function(a,b,c){a=this.za;m(this,a.port+4,b,c,"MODE");a.fd=b;Wm(this,!1)}; +h.Ml=function(a,b){return Jn(this,this.za,b)};h.hk=function(a,b,c){this.A.ag=this.A.ag&-4|b&3;m(this,a,b,c,"FEAT")};h.jl=function(a,b){var c=this.A.Kd;b&&!n(this)||m(this,960,null,b,"ATC.INDX",c);return c};h.Ik=function(a,b){var c=this.A.Uc[this.A.Kd&31];b&&!n(this)||m(this,960,null,b,"ATC."+this.A.Wg[this.A.Kd&31],c);return c}; +h.gk=function(a,b,c){var d=this.A,e=d.Kd&32;if(d.We){d.We=!1;var f=d.Kd&31;if(16<=f||!e)c&&!n(this)||m(this,a,b,c,"ATC."+d.Wg[f]),d.Uc[f]=b,Cn(this,!1)}else d.Kd=b,m(this,a,b,c,"ATC.INDX"),d.We=!0,b&32&&!e&&Um(this,!0)&&cd(this,!0),d.Vf=(d.zb[12]<<8)+d.zb[13]|0,d.nf=0};h.Xl=function(a,b){var c=0;if(5==this.nb)c=3-((this.A.sf&12)>>2),c=(this.Wc&1< >this.A.Kc&63;b&&!n(this)||m(this,969,null,b,"DAC.DATA["+ga(this.A.od)+"]["+ga(this.A.Kc)+"]",c);this.A.Kc+=6;12 Missing <canvas> support. Please try a newer web browser.";break}e.setAttribute("class","pcjs-canvas");e.setAttribute("width",d.screenWidth);e.setAttribute("height",d.screenHeight);e.style.backgroundColor=d.screenColor;e.style.height="auto";0<=(window?window.navigator.userAgent:"").indexOf("MSIE")&&(c.onresize=function(a, -b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());c.appendChild(e);var f=document.createElement("textarea");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new am(d,e,g,f,c);pb(d,c)}}); -function Gn(a){this.Y=a.adapter;switch(this.Y){case 1:this.O=956;this.P=7;break;case 2:this.O=888;this.P=7;break;case 3:this.O=632;this.P=5;break;default:Ba("Unrecognized parallel adapter #"+this.Y);return}this.A=this.C=null;Xa.call(this,"ParallelPort",a,Gn,4194304);a=a.binding;"console"==a?this.C="":ob(this,a,Hn)}gb(Gn);var Hn="buffer";h=Gn.prototype;h.Ub=function(a,b,c){switch(b){case Hn:return this.xa[b]=this.A=c,!0}return!1}; -h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Jb(a,"ChipSet");nc(b,this,In,this.O);rc(b,this,Jn,this.O);xb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.reset=function(){Kn(this)};h.save=function(){var a=new df(this),b=0,c=[];c[b++]=this.ia;c[b++]=this.ec;c[b]=this.zf;ef(a,0,c);return a.data()};h.restore=function(a){return Kn(this,a[0])}; -function Kn(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.ia=b[c++];a.ec=b[c++];a.zf=b[c];return!0}h.yl=function(a,b){var c=this.ia;m(this,a,null,b,"DATA",c);return c};h.Wl=function(a,b){var c=this.ec;m(this,a,null,b,"STAT",c);return c};h.ul=function(a,b){var c=this.zf;m(this,a,null,b,"CTRL",c);return c}; -h.Qm=function(a,b,c){m(this,a,b,c,"DATA");this.ia=b;this.ec|=64;if(this.A)8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0;else if(null!=this.C){if(10==b||1024<=this.C.length)this.U(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));a=!0}else a=!1;a&&(this.ec&=-65);Ln(this)};h.Lm=function(a,b,c){m(this,a,b,c,"CTRL");this.zf=b;Ln(this)};function Ln(a){a.R&&a.P&&(a.zf&16&&!(a.ec&64)?$f(a.R,a.P):Zf(a.R,a.P))} -var In={0:Gn.prototype.yl,1:Gn.prototype.Wl,2:Gn.prototype.ul},Jn={0:Gn.prototype.Qm,2:Gn.prototype.Lm};Sa(function(){for(var a=qb(document,"pcjs","parallel"),b=0;b =b)a.preventDefault&&a.preventDefault(),64>8:this.qa;m(this,a,null,b,this.C&128?"DLM":"IER",c);return c};h.Fl=function(a,b){var c=this.ia;m(this,a,null,b,"IIR",c);return c}; +b,c,d){return function(){b.style.height=(a.clientWidth*d/c|0)+"px"}}(c,e,d.screenWidth,d.screenHeight),c.onresize());c.appendChild(e);var f=document.createElement("textarea");Ia("iOS")&&(f.setAttribute("autocapitalize","off"),f.setAttribute("autocorrect","off"));c.appendChild(f);var g=e.getContext("2d"),d=new em(d,e,g,f,c);pb(d,c)}}); +function Kn(a){this.Y=a.adapter;switch(this.Y){case 1:this.O=956;this.P=7;break;case 2:this.O=888;this.P=7;break;case 3:this.O=632;this.P=5;break;default:Ba("Unrecognized parallel adapter #"+this.Y);return}this.A=this.C=null;Xa.call(this,"ParallelPort",a,Kn,4194304);a=a.binding;"console"==a?this.C="":ob(this,a,Ln)}gb(Kn);var Ln="buffer";h=Kn.prototype;h.Ub=function(a,b,c){switch(b){case Ln:return this.xa[b]=this.A=c,!0}return!1}; +h.Jc=function(a,b,c,d){this.ja=b;this.M=c;this.ma=d;this.R=Jb(a,"ChipSet");nc(b,this,Mn,this.O);rc(b,this,Nn,this.O);xb(this)};h.lc=function(a,b){if(!b)if(!a||!this.restore)this.reset();else if(!this.restore(a))return!1;return!0};h.kc=function(a){return a?this.save():!0};h.reset=function(){On(this)};h.save=function(){var a=new df(this),b=0,c=[];c[b++]=this.ia;c[b++]=this.ec;c[b]=this.zf;ef(a,0,c);return a.data()};h.restore=function(a){return On(this,a[0])}; +function On(a,b){var c=0;void 0===b&&(b=[0,0,0]);a.ia=b[c++];a.ec=b[c++];a.zf=b[c];return!0}h.yl=function(a,b){var c=this.ia;m(this,a,null,b,"DATA",c);return c};h.Wl=function(a,b){var c=this.ec;m(this,a,null,b,"STAT",c);return c};h.ul=function(a,b){var c=this.zf;m(this,a,null,b,"CTRL",c);return c}; +h.Qm=function(a,b,c){m(this,a,b,c,"DATA");this.ia=b;this.ec|=64;if(this.A)8==b?this.A.value=this.A.value.slice(0,-1):(this.A.value+=String.fromCharCode(b),this.A.scrollTop=this.A.scrollHeight),a=!0;else if(null!=this.C){if(10==b||1024<=this.C.length)this.U(this.C),this.C="";10!=b&&(this.C+=String.fromCharCode(b));a=!0}else a=!1;a&&(this.ec&=-65);Pn(this)};h.Lm=function(a,b,c){m(this,a,b,c,"CTRL");this.zf=b;Pn(this)};function Pn(a){a.R&&a.P&&(a.zf&16&&!(a.ec&64)?$f(a.R,a.P):Zf(a.R,a.P))} +var Mn={0:Kn.prototype.yl,1:Kn.prototype.Wl,2:Kn.prototype.ul},Nn={0:Kn.prototype.Qm,2:Kn.prototype.Lm};Sa(function(){for(var a=qb(document,"pcjs","parallel"),b=0;b =b)a.preventDefault&&a.preventDefault(),64>8:this.qa;m(this,a,null,b,this.C&128?"DLM":"IER",c);return c};h.Fl=function(a,b){var c=this.ia;m(this,a,null,b,"IIR",c);return c}; h.Gl=function(a,b){var c=this.C;m(this,a,null,b,"LCR",c);return c};h.Il=function(a,b){var c=this.P;m(this,a,null,b,"MCR",c);return c};h.Hl=function(a,b){var c=this.A;m(this,a,null,b,"LSR",c);return c};h.Nl=function(a,b){var c=this.Ba;m(this,a,null,b,"MSR",c);return c}; -h.qn=function(a,b,c){m(this,a,b,c,this.C&128?"DLL":"THR");if(this.C&128)this.da=this.da&-256|b;else{this.Ea=b;this.A&=-97;if(this.O)13==b?this.X=0:8==b?(this.O.value=this.O.value.slice(0,-1),0 a.O||0>a.Y)a.O=b.clientX,a.Y=b.clientY;a.la?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.O,d=b.clientY-a.Y);a.O=b.clientX;a.Y=b.clientY;a.Ff(c,d,a.O,a.Y)}} -h.ge=function(a,b){if(this.Ic&&this.M&&this.M.ra.Ob){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case Om:this.da!=b&&(this.da=b,Zn(this,c));break;case 2:this.ka!=b&&(this.ka=b,Zn(this,c))}}};h.Ff=function(a,b,c,d){this.Ic&&this.M&&this.M.ra.Ob&&(a||b)&&(this.W=a,this.X=b,Zn(this,null,c,d))}; -function Zn(a,b,c,d){var e=64|(a.da?32:0)|(a.ka?16:0)|(a.X&192)>>4|(a.W&192)>>6,f=a.W&63,g=a.X&63;n(a,8388608)&&sb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+ga(e)+","+ga(f)+","+ga(g)+"]",0,!0);On(a.R,[e,f,g]);a.W=a.X=0}Sa(function(){for(var a=qb(document,"pcjs","mouse"),b=0;b >9]);if(f){if(e+c<=f.length)return so(a.Da,f,e,c);for(e=d=0;c--;)d|=qo(a,b++,1)< =e.ji&&a<=e.dk){d=a-=e.ji;var f,g;for(g in e.te){var k=e.te[g],q=a-k[0];if(!q){c=this.cg+"!"+k[1];break}b&&0 >2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.Gb);for(c=0;cb.indexOf("/api/v1/dump")&&(a=ka(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=xo(this,b),this.rg=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):la(b,"/")&&(c="dir"), +h.bn=function(a,b,c){var d=this.P;m(this,a,b,c,"MCR");this.P=b;this.Y&&(d^b)&3&&(a=this.Y,b=this.P,(c=3==(b&3))?a.Ic||(d=!1,a.P&2||(a.reset(),sb(a,"serial mouse reset"),d=!0),a.P&1||(sb(a,"serial mouse ID requested"),d=!0),d&&(Sn(a.R,[77,77]),sb(a,"serial mouse ID sent")),Xn(a),a.Ic=c):a.Ic&&(sb(a,"serial mouse inactive"),Yn(a),a.Ic=c),a.P=b)}; +var Tn={0:Qn.prototype.Tl,1:Qn.prototype.El,2:Qn.prototype.Fl,3:Qn.prototype.Gl,4:Qn.prototype.Il,5:Qn.prototype.Hl,6:Qn.prototype.Nl},Un={0:Qn.prototype.qn,1:Qn.prototype.$m,3:Qn.prototype.an,4:Qn.prototype.bn};Sa(function(){for(var a=qb(document,"pcjs","serial"),b=0;b a.O||0>a.Y)a.O=b.clientX,a.Y=b.clientY;a.la?(c=b.movementX||b.mozMovementX||b.webkitMovementX||0,d=b.movementY||b.mozMovementY||b.webkitMovementY||0):(c=b.clientX-a.O,d=b.clientY-a.Y);a.O=b.clientX;a.Y=b.clientY;a.Ff(c,d,a.O,a.Y)}} +h.ge=function(a,b){if(this.Ic&&this.M&&this.M.ra.Ob){var c="mouse button"+a+" "+(b?"dn":"up");switch(a){case Sm:this.da!=b&&(this.da=b,co(this,c));break;case 2:this.ka!=b&&(this.ka=b,co(this,c))}}};h.Ff=function(a,b,c,d){this.Ic&&this.M&&this.M.ra.Ob&&(a||b)&&(this.W=a,this.X=b,co(this,null,c,d))}; +function co(a,b,c,d){var e=64|(a.da?32:0)|(a.ka?16:0)|(a.X&192)>>4|(a.W&192)>>6,f=a.W&63,g=a.X&63;n(a,8388608)&&sb(a,(b?b+": ":"")+(void 0!==d?"mouse ("+c+","+d+"): ":"")+"serial packet ["+ga(e)+","+ga(f)+","+ga(g)+"]",0,!0);Sn(a.R,[e,f,g]);a.W=a.X=0}Sa(function(){for(var a=qb(document,"pcjs","mouse"),b=0;b >9]);if(f){if(e+c<=f.length)return wo(a.Da,f,e,c);for(e=d=0;c--;)d|=uo(a,b++,1)< =e.ji&&a<=e.dk){d=a-=e.ji;var f,g;for(g in e.te){var k=e.te[g],q=a-k[0];if(!q){c=this.cg+"!"+k[1];break}b&&0 >2;var e=d=0,a=new DataView(a,0,c);g.A=Array(g.Gb);for(c=0;cb.indexOf("/api/v1/dump")&&(a=ka(b),"json"==a||"gz"==a?f=encodeURI(b):"demandrw"==this.mode||"demandro"==this.mode?(f=Bo(this,b),this.rg=!0):(c="path",d="&mbhd=10",!b.indexOf("http:")||!b.indexOf("ftp:")||0<="dsk ima img 360 720 12 144".split(" ").indexOf(a)?(c="disk",d="&mbhd=0"):la(b,"/")&&(c="dir"), f=Aa()+"/api/v1/dump?"+c+"="+encodeURIComponent(b)+(this.af?"":d)+"&format=json")),za(f,!0,null,this,this.yk)}; -h.yk=function(a,b,c){var d=null;this.df=!1;var e=0>c&&this.ia&&!this.ia.ra.hc;if(this.rg)c?this.controller.Ua('Unable to connect to disk "'+this.Y+'" (error '+c+": "+b+")",e):(this.P=!0,yo(this),d=this);else if(c)this.controller.Ua('Unable to load disk "'+this.O+'" (error '+c+": "+a+")",e);else{ib(this.controller.se,a,b);try{if(0 f&&0 c&&this.ia&&!this.ia.ra.hc;if(this.rg)c?this.controller.Ua('Unable to connect to disk "'+this.Y+'" (error '+c+": "+b+")",e):(this.P=!0,Co(this),d=this);else if(c)this.controller.Ua('Unable to load disk "'+this.O+'" (error '+c+": "+a+")",e);else{ib(this.controller.se,a,b);try{if(0 f&&0 b.indexOf("0x")&&'["'!=b.substr(0,2)?JSON.parse(b.replace(/([a-z]+):/gm,'"$1":').replace(/\/\/[^\n]*/gm,"")):eval("("+b+")");if(g.length)if(1==g.length)Ba(g[0]);else{this.Gb=g.length;this.yb=g[0].length;this.ob=g[0][0].length;var k=g[0][0][0];this.$a=k&&k.length||512;for(c=b=0;c >2,r=k.pattern;void 0===r&&(r=k.pattern=0);var x= -k.data;if(void 0===x){var B=k.bytes;if(void 0!==B&&B.length){for(var y=q<<2,J=B.length;J b;b++){if(128==so(a,e,c+0,1)){d.Wf=so(a,e,c+8,4);(e=ro(a,d.Wf))&&(f=!0);break}c+=16}if(!f)return}d.Ef||(d.Ef=so(a,e,19,2)||so(a,e,32,4),d.Df=so(a,e,14,2),d.oh=d.Df+so(a,e,22,2)*so(a,e,16,1),d.yh=so(a,e,17,2),d.yg=so(a,e,13,1));d.mh=d.oh+((32*d.yh+(d.$a-1))/d.$a|0);d.nm=(d.Ef-d.mh)/d.yg|0;d.Ag=4084>=d.nm?12:16;d.$k=12==d.Ag?4086:65526;b=[];for(e=d.oh;e >8;f+=2;if(q)for(;r--;)qo(d,f,1),254>=q?(x=q,B=qo(d,f+1),f+=3):(x=qo(d,f+3,1),B=qo(d,f+4),f+=6),d.Ad[x]&&(d.Ad[x].te[k]=[B]),d.A[k]=[x,B],k++;else k+=r}(g=to(e,no,c))&&uo(e,g+c);g=to(e,oo,c);k=to(e,lo,c);g&&k&&uo(e,g,g+k)}}}} -function Bo(a,b,c,d,e){var f,g=a.R.length,k=b.$a/32|0;b.Co=d+"\\";for(var q=0;q U)break;for(var F=y.mh+(U-2)*y.yg,O=0;O >3,1),d?e=16==b.Ag?e<<8:c&7?e<<4:(e&15)<<8:c&7&&(e>>=4));return e} -function ro(a,b){var c=a.yb*a.ob,d=b/c|0;return d g)break;e|=g< =f)break;e+=String.fromCharCode(f)}return e}function wo(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.al=b;a.bl=c;a.yd=a.$c=0;a.ab=!1;return a} -function xo(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.Gb+":"+a.yb+":"+a.ob+":"+a.$a;c+="&machine="+a.controller.ef();c+="&user="+a.controller.he();return Aa()+"/api/v1/disk?"+c}function Do(a,b,c,d,e,f,g){if(a.P){var k;k="action=read&volume="+a.Y;k+="&chs="+a.Gb+":"+a.yb+":"+a.ob+":"+a.$a;k=k+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.ef());k+="&user="+a.controller.he();za(Aa()+"/api/v1/disk?"+k,f,null,a,a.Wk,[b,c,d,e,f,g])}else g&&g(-1,!1)} -h.Wk=function(a,b,c,d){var e=!1;a=d[0];var f=d[1],g=d[2],k=d[3];if(!c){b=JSON.parse(b);for(e=0;k--;){var q=this.seek(a,f,g,!0);if(!q)break;zo(q,b,e);e+=q.length;g++}e=d[4]}(d=d[5])&&d(c,e)};h.Xk=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.la=!1;if(0<=a&&a b&&(b=0);2E3b;b++){if(128==wo(a,e,c+0,1)){d.Wf=wo(a,e,c+8,4);(e=vo(a,d.Wf))&&(f=!0);break}c+=16}if(!f)return}d.Ef||(d.Ef=wo(a,e,19,2)||wo(a,e,32,4),d.Df=wo(a,e,14,2),d.oh=d.Df+wo(a,e,22,2)*wo(a,e,16,1),d.yh=wo(a,e,17,2),d.yg=wo(a,e,13,1));d.mh=d.oh+((32*d.yh+(d.$a-1))/d.$a|0);d.nm=(d.Ef-d.mh)/d.yg|0;d.Ag=4084>=d.nm?12:16;d.$k=12==d.Ag?4086:65526;b=[];for(e=d.oh;e >8;f+=2;if(q)for(;r--;)uo(d,f,1),254>=q?(x=q,B=uo(d,f+1),f+=3):(x=uo(d,f+3,1),B=uo(d,f+4),f+=6),d.Ad[x]&&(d.Ad[x].te[k]=[B]),d.A[k]=[x,B],k++;else k+=r}(g=xo(e,ro,c))&&yo(e,g+c);g=xo(e,so,c);k=xo(e,po,c);g&&k&&yo(e,g,g+k)}}}} +function Fo(a,b,c,d,e){var f,g=a.R.length,k=b.$a/32|0;b.Co=d+"\\";for(var q=0;q U)break;for(var F=y.mh+(U-2)*y.yg,O=0;O >3,1),d?e=16==b.Ag?e<<8:c&7?e<<4:(e&15)<<8:c&7&&(e>>=4));return e} +function vo(a,b){var c=a.yb*a.ob,d=b/c|0;return d g)break;e|=g< =f)break;e+=String.fromCharCode(f)}return e}function Ao(a,b,c,d,e,f){a||(a={sector:d,length:e,data:[],pattern:f});a.al=b;a.bl=c;a.yd=a.$c=0;a.ab=!1;return a} +function Bo(a,b){var c;c="action=open&volume="+b+("&mode="+a.mode);c+="&chs="+a.Gb+":"+a.yb+":"+a.ob+":"+a.$a;c+="&machine="+a.controller.ef();c+="&user="+a.controller.he();return Aa()+"/api/v1/disk?"+c}function Ho(a,b,c,d,e,f,g){if(a.P){var k;k="action=read&volume="+a.Y;k+="&chs="+a.Gb+":"+a.yb+":"+a.ob+":"+a.$a;k=k+("&addr="+b+":"+c+":"+d+":"+e)+("&machine="+a.controller.ef());k+="&user="+a.controller.he();za(Aa()+"/api/v1/disk?"+k,f,null,a,a.Wk,[b,c,d,e,f,g])}else g&&g(-1,!1)} +h.Wk=function(a,b,c,d){var e=!1;a=d[0];var f=d[1],g=d[2],k=d[3];if(!c){b=JSON.parse(b);for(e=0;k--;){var q=this.seek(a,f,g,!0);if(!q)break;Do(q,b,e);e+=q.length;g++}e=d[4]}(d=d[5])&&d(c,e)};h.Xk=function(a,b,c,d){a=d[0];b=d[1];var e=d[2],f=d[3];d=d[4];this.la=!1;if(0<=a&&a b&&(b=0);2E3>2,e=Array(d),f=0;f >2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}h.read=function(a,b){var c=-1;if(a&&b >2,c=(d >((b&3)<<3)&255;return c}; -h.write=function(a,b,c){if(this.df)return!1;if(b >2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.$c?f =a.yd+a.$c&&(a.$c+=f-(a.yd+a.$c)+1):(a.yd=f,a.$c=1);d[f]=d[f]&~(255<>2,e=Array(d),f=0;f >2,e=a.data;a=a.pattern;for(var f=0;f>8&255;c[d++]=g>>16&255;c[d++]=g>>24&255}return c}h.read=function(a,b){var c=-1;if(a&&b >2,c=(d >((b&3)<<3)&255;return c}; +h.write=function(a,b,c){if(this.df)return!1;if(b >2;b=(b&3)<<3;for(var g=d.length;g<=f;g++)d[g]=e;a.$c?f =a.yd+a.$c&&(a.$c+=f-(a.yd+a.$c)+1):(a.yd=f,a.$c=1);d[f]=d[f]&~(255<=this.A.length||q>=this.A[k].length||r>=this.A[k][q].length){c="sector (CHS="+k+":"+q+":"+r+") out of range ("+ -b+" changes applied)";b=-1;break}if(this.df){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][q][r]){for(q=k.data.length;q b?-2!=b&&this.controller.Ua("Unable to restore disk '"+this.O+": "+c):yo(this);return b}; +h.restore=function(a){var b=0,c="unsupported restore format";if(a&&0 =this.A.length||q>=this.A[k].length||r>=this.A[k][q].length){c="sector (CHS="+k+":"+q+":"+r+") out of range ("+ +b+" changes applied)";b=-1;break}if(this.df){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][q][r]){for(q=k.data.length;q b?-2!=b&&this.controller.Ua("Unable to restore disk '"+this.O+": "+c):Co(this);return b}; h.toJSON=function(){var a=JSON.stringify(this.A,function(a,c){return"file"==a?void 0:c}),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 Ho(a){Xa.call(this,"FDC",a,Ho,524288);this.dmaRead=this.Ak;this.dmaWrite=this.Bk;this.dmaFormat=this.Rk;this.W=a.autoMount||null;this.C=[];this.qa=!Ia("Mobi")&&window&&"FileReader"in window}gb(Ho);aa={};var Io={3:{Qd:3,fe:0,name:aa.ao},4:{Qd:2,fe:1,name:aa.Zn},5:{Qd:9,fe:7,name:aa.ko},6:{Qd:9,fe:7,name:aa.Un},7:{Qd:2,fe:0,name:aa.Wn},8:{Qd:1,fe:2,name:aa.$n},10:{Qd:2,fe:7,name:aa.Vn},13:{Qd:6,fe:7,name:aa.Hn},15:{Qd:3,fe:0,name:aa.Yn}};h=Ho.prototype; -h.Ub=function(a,b,c){var d=this;switch(b){case "listDisks":return this.xa[b]=c,c.onchange=function(){var a=d.xa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(k){Ba("FDC option error: "+k.message)}b=g.desc;void 0===b&&(b="");g=g.href;void 0!==g&&(b=''+b+"");a.innerHTML=b}},!0;case "descDisk":case "listDrives":return this.xa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&Jo(d,a)},!0; -case "loadDrive":return this.xa[b]=c,c.onclick=function(){var a=d.xa.listDisks;a&&Ko(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":return this.xa[b]=c,c.onclick=function(){var a=d.xa.listDrives;if(a&&a.options&&d.A)if(a=ca(a.value,10),a=d.A[a])if(a.Da){for(var b=a.Da,c="",k=0,q;q=ro(b,k++);)for(var r=0,x=q.length;r '+b+"
>>0)+1,a.rb=l,a.type=p,a.ext=w,a.fc=b,zc(a,!0,!0,!1));return q}
function Ec(a,b,c){var d=a.A,e=a.Cb,k=d.la.ra,l=d.la.Ea;if(!c){if(!(d.la.type&512))return h.call(d,13,b&65532),!1;d.gb(d.la.fc+4,d.la.rb&=-513)}if(-1===d.la.load(b))return!1;var p=d.la.Ea;if(!1!==c){if(d.la.type&512)return h.call(d,13,b&65532),!1;d.gb(d.la.fc+4,d.la.rb|=512)}d.la.type=d.la.type&-513|d.la.rb&512;256==d.la.type||768==d.la.type?(d.gb(l+14,u(d)),d.gb(l+16,Lc(d)),d.gb(l+18,d.G),d.gb(l+20,d.F),d.gb(l+22,d.I),d.gb(l+24,d.B),d.gb(l+26,r(d)),d.gb(l+28,d.K),d.gb(l+30,d.J),d.gb(l+32,d.H),d.gb(l+
34,d.va.ra),d.gb(l+36,d.Ia.ra),d.gb(l+38,d.Z.ra),d.gb(l+40,d.Ca.ra),d.Pb.load(d.ma(p+42)),Mc(d,d.ma(p+16)|(c?16384:0)),d.G=d.ma(p+18),d.F=d.ma(p+20),d.I=d.ma(p+22),d.B=d.ma(p+24),d.K=d.ma(p+28),d.J=d.ma(p+30),d.H=d.ma(p+32),d.va.load(d.ma(p+34)),d.Ca.load(d.ma(p+40)),Nc(d,d.ma(p+14),d.ma(p+36)),b=38,l=26,a.Cb