Make "None" a special diskette entry (no longer required to be present in any disk manifest, although if it IS present, it will get sorted along with all the other disk entries)

This commit is contained in:
Jeff Parsons 2016-04-16 16:20:26 -07:00
commit af7f618821
24 changed files with 69 additions and 72 deletions

View file

@ -17,7 +17,6 @@
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<disk path="PCDOS100.json">PC-DOS 1.00</disk>
</control>
<control type="button" binding="loadDrive">Load</control>

View file

@ -56,7 +56,6 @@
<control type="container">
<control type="list" binding="listDrives"/>
<control type="list" binding="listDisks">
<disk path="">None</disk>
<disk path="PCDOS100.json">PC-DOS 1.00</disk>
<disk path="visicalc.json" href="http://www.bricklin.com/history/vclicense.htm" desc="VisiCalc License">VisiCalc</disk>
</control>

View file

@ -175,7 +175,7 @@ function $h(a,b){this.A-=-1===this.C?-1===this.D?this.B.Lj:this.B.Kj:this.B.Ij;r
function ci(a,b){var c=this.L>>3&7;switch(c){case 0:this.aa=this.G;break;case 2:this.aa=this.M;break;case 3:this.aa=this.H;break;default:if(80286==this.ia||80386==this.ia&&4!=c&&5!=c){C.call(this,6);break}switch(c){case 1:this.aa=this.I;break;case 4:this.aa=I(this);break;case 5:this.aa=this.P;break;case 6:this.aa=this.K;break;case 7:this.aa=this.J}}return $h.call(this,0,b)}
function di(a,b){switch(this.L>>3&7){case 0:b=this.Xa.Z;break;case 1:b=this.va.Z;break;case 2:b=this.ta.Z;break;case 3:b=this.vb.Z;break;case 4:if(80386<=this.ia){b=this.Ob.Z;break}C.call(this,6);b=a;break;case 5:if(80386<=this.ia){b=this.Pb.Z;break}default:C.call(this,6),b=a}-1!==this.C&&nd(this,2);return $h.call(this,0,b)}
function Rh(a,b){if(a&-65536||b&-65536){var c=b&65535,d=b>>>16,e=a&65535,f=a>>>16,g=c*e,e=(g>>>16)+d*e,h=e>>>16,e=(e&65535)+c*f;this.ja=e<<16|g&65535;this.wa=h+((e>>>16)+d*f)|0}else this.ja=a*b|0,this.wa=0}function ei(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,128)}function fi(a,b){this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return vf(this,a|b,this.Ia)&this.R}
function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function Bi(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0}
function gi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}function hi(a,b){var c=a-b-Bf(this)|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function ii(){return uf(this)?1:0}function Ci(){return pf(this)?1:0}function Di(){return pf(this)?0:1}function Ei(){return sf(this)?1:0}function Fi(){return sf(this)?0:1}function Gi(){return pf(this)||sf(this)?1:0}
function Hi(){return pf(this)||sf(this)?0:1}function Ii(){return tf(this)?1:0}function Ji(){return tf(this)?0:1}function Ki(){return qf(this)?1:0}function Li(){return qf(this)?0:1}function Mi(){return!tf(this)!=!uf(this)?1:0}function Ni(){return!tf(this)!=!uf(this)?0:1}function Oi(){return sf(this)||!tf(this)!=!uf(this)?1:0}function Pi(){return sf(this)||!tf(this)!=!uf(this)?0:1}function Qi(a,b){return Ri.call(this,a,b,this.xa())}function Si(a,b){return Ti.call(this,a,b,this.xa())}
function Ui(a,b){return Ri.call(this,a,b,this.I&31)}function Vi(a,b){return Ti.call(this,a,b,this.I&31)}function Wi(a,b){return Xi.call(this,a,b,this.xa())}function Yi(a,b){return Zi.call(this,a,b,this.xa())}function $i(a,b){return Xi.call(this,a,b,this.I&31)}function aj(a,b){return Zi.call(this,a,b,this.I&31)}function bj(a,b){var c=a-b|0;of(this,a,b,c,191,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&255}
function cj(a,b){var c=a-b|0;of(this,a,b,c,this.Ia|63,!0);this.A-=-1===this.C?-1===this.D?this.B.yc:this.B.Vb:this.B.Nc;return c&this.R}function dj(a,b){vf(this,a&b,128);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function ej(a,b){vf(this,a&b,this.Ia);this.A-=-1===this.C?-1===this.D?this.B.ai:this.B.Tf:this.B.Tf;this.S|=2;return a}function fj(a,b){var c=this.G&this.R,d=(1<<(this.I&31))-1;return a&~(d<<c)|(b&d)<<c}
@ -348,8 +348,8 @@ M[34]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=ve(this,a&7
M[36]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6>b?he.call(this):(we(this,a&7,this.Ce[b]),this.A-=12)}};M[38]=function(){if(this.pa)C.call(this,13,0);else{var a=this.xa(),b=(a&56)>>3;6>b?he.call(this):(this.Ce[b]=ve(this,a&7),this.A-=12)}};M[128]=function(){var a=this.Ma();uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[129]=function(){var a=this.Ma();uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};
M[130]=function(){var a=this.Ma();pf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[131]=function(){var a=this.Ma();pf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[132]=function(){var a=this.Ma();sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[133]=function(){var a=this.Ma();sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[134]=function(){var a=this.Ma();pf(this)||sf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};
M[135]=function(){var a=this.Ma();pf(this)||sf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[136]=function(){var a=this.Ma();tf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[137]=function(){var a=this.Ma();tf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[138]=function(){var a=this.Ma();qf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[139]=function(){var a=this.Ma();qf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};
M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,Bi)};
M[145]=function(){qj.call(this,Bi)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)};
M[140]=function(){var a=this.Ma();!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[141]=function(){var a=this.Ma();!tf(this)==!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[142]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?(O(this,K(this)+a),this.A-=this.B.ab):this.A-=this.B.bb};M[143]=function(){var a=this.Ma();sf(this)||!tf(this)!=!uf(this)?this.A-=this.B.bb:(O(this,K(this)+a),this.A-=this.B.ab)};M[144]=function(){qj.call(this,ii)};
M[145]=function(){qj.call(this,ii)};M[146]=function(){qj.call(this,Ci)};M[147]=function(){qj.call(this,Di)};M[148]=function(){qj.call(this,Ei)};M[149]=function(){qj.call(this,Fi)};M[150]=function(){qj.call(this,Gi)};M[151]=function(){qj.call(this,Hi)};M[152]=function(){qj.call(this,Ii)};M[153]=function(){qj.call(this,Ji)};M[154]=function(){qj.call(this,Ki)};M[155]=function(){qj.call(this,Li)};M[156]=function(){qj.call(this,Mi)};M[157]=function(){qj.call(this,Ni)};M[158]=function(){qj.call(this,Oi)};
M[159]=function(){qj.call(this,Pi)};M[160]=function(){pd(this,this.Ob.Z,this.ba,2);this.A-=this.B.Ie};M[161]=function(){this.U=this.ga;var a=D(this);this.Ob.load(a);this.A-=this.B.zc;this.U=-1};M[163]=function(){this.fa.call(this,Dh);-1!==this.D&&(this.A-=6)};M[164]=function(){this.fa.call(this,2==this.ba?Qi:Si);this.A-=-1===this.D?3:7};M[165]=function(){this.fa.call(this,2==this.ba?Ui:Vi);this.A-=-1===this.D?3:7};M[168]=function(){pd(this,this.Pb.Z,this.ba,2);this.A-=this.B.Ie};
M[169]=function(){this.U=this.ga;var a=D(this);this.Pb.load(a);this.A-=this.B.zc;this.U=-1};M[171]=function(){this.fa.call(this,Gh);-1!==this.D&&(this.A-=5)};M[172]=function(){this.fa.call(this,2==this.ba?Wi:Yi);this.A-=-1===this.D?3:7};M[173]=function(){this.fa.call(this,2==this.ba?$i:aj);this.A-=-1===this.D?3:7};M[175]=function(){this.W.call(this,2==this.ba?Nh:Ph)};M[178]=function(){this.W.call(this,Zh)};M[179]=function(){this.fa.call(this,Fh);-1!==this.D&&(this.A-=5)};
M[180]=function(){this.W.call(this,Wh)};M[181]=function(){this.W.call(this,Xh)};
@ -597,7 +597,7 @@ var sp={3:{Vd:3,ie:0,name:aa.Zn},4:{Vd:2,ie:1,name:aa.Xn},5:{Vd:9,ie:7,name:aa.i
m.Qb=function(a,b,c){var d=this;switch(b){case "listDisks":this.qa[b]=c;if(this.ga){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.ga?a.text>b.text?1:a.text<b.text?-1:0:a.value>b.value?1:a.value<b.value?-1:0});for(a=0;a<b.length;a++)c.options[a]=b[a]}c.onchange=function(){var a=d.qa.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){w("FDC option error: "+h.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}};return!0;case "descDisk":case "listDrives":return this.qa[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tp(d,a)},!0;case "loadDrive":return this.qa[b]=c,c.onclick=function(){var a=d.qa.listDisks;a&&up(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.ja){c.parentNode.removeChild(c);break}this.qa[b]=c;c.onclick=function(){var a=d.qa.listDrives;a&&a.options&&d.A&&(a=ca(a.value,
10),(a=d.A[a])?(a=a.za)?(a=Ia(pp(a),"octet-stream",!0,a.Ng.replace(".json",".img")),w(a)):d.Na("No diskette loaded in drive."):d.Na("No diskette drive selected."))};return!0;case "mountDrive":if(!this.ja){c.parentNode.removeChild(c);break}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;up(d,fa(b,!0),b,a)}return!1};return!0}return!1};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"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}vp(this);hc(b,this,wp);lc(b,this,xp);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)};
m.Ic=function(a,b,c,d){this.ea=b;this.F=c;this.ha=d;this.V=a;this.N=Eb(a,"ChipSet");if((this.U=Nc(this.V,"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}vp(this);hc(b,this,wp);lc(b,this,xp);yp(this,"None","",!0);this.ja&&yp(this,"Local Disk","?");yp(this,"Remote Disk","??");zp(this)||rb(this)};
m.ic=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.V.dh){this.B=[];for(var c=0;c<this.A.length;c++)Ap(this,c,!0);zp(this,!0)}}else if(!this.restore(a))return!1;if(c=this.qa.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.value="";for(var d=0;d<this.ka;d++){var e=document.createElement("option");e.value=d;e.text=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.ka&&(c.value="0",tp(this,0))}}return!0};m.hc=function(a){return a?this.save():!0};m.reset=function(){vp(this)};
m.save=function(){var a=new hf(this),b=0,c=[];c[b++]=this.hb;c[b++]=0;c[b++]=this.ma;c[b++]=this.W;c[b++]=this.L;c[b++]=this.C;c[b++]=this.aa;for(var d=b++,e=0,f=[],g=0;g<this.A.length;g++){var h=e++,k=this.A[g],l=0,n=[];n[l++]=k.Cb;n[l++]=[k.name,k.Bb,k.ub,k.lb,k.Va,k.bf,k.zg,k.Nf,k.Of];n[l++]=k.kb;n[l++]=k.ge+100;n[l++]=k.Rb;n[l++]=k.xb;n[l++]=k.he;n[l++]=k.Hb;n[l++]=k.eb;n[l++]=k.$e;n[l++]=k.kk;n[l]=k.Le;f[h]=n}c[d]=f;d=b++;for(e=0;e<this.A.length;e++)f=this.A[e],f.za&&Bp(this,f.Le,f.za);c[d]=
this.B;c[b++]=this.X;c[b]=this.kc;N(a,0,c);return a.data()};m.restore=function(a){return vp(this,a[0])};
@ -609,7 +609,7 @@ function zp(a,b){b||(a.fa=0);if(a.U)for(var c in a.U){var d=a.U[c],e=d.path,f;if
function up(a,b,c,d){var e,f=a.qa.listDrives;if(f&&!isNaN(e=ca(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Na('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=fa(c)}for(;0>Cp(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Ap(a,
e,!1,!0)}}else Ap(a,e);else a.Na("Unable to load the selected drive")}function Cp(a,b,c,d,e,f){var g=a.A[b];if(d&&g.Le!=d){Ap(a,b,e,!0);if(g.bd)return a.Na("Drive "+b+" busy"),0;g.bd=!0;e&&(g.Ae=!0,a.fa++,A(a)&&y(a,"loading diskette '"+c+"'"));g.$e=!!f;return(new Ho(a,g,"preload")).load(c,d,f,a.Hi)?1:0}return-1}
m.Hi=function(a,b,c,d,e){var f;a.bd=!1;b&&(f=b.info(),b&&f[0]>a.Bb||f[1]>a.ub)&&(this.Na('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.hb)),b=null);b?(a.za=b,a.kk=c,a.Le=d,Dp(this,c,d,b),f=b.info(),this.X|=128,this.Na('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.hb),a.Ae||e),a.zg=f[0],a.Nf=f[1],a.Of=f[2],this.V&&this.V.yd()):a.$e=!1;a.Ae&&(a.Ae=!1,--this.fa||rb(this));tp(this,a.hb)};
function yp(a,b,c){if((a=a.qa.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.text=b;d.value=c;a.appendChild(d)}}
function yp(a,b,c,d){if((a=a.qa.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 tp(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.qa.listDisks,e=a.qa.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.$e?"?":c.Le,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function Ap(a,b,c,d){var e=a.A[b];e.za&&(Bp(a,e.Le,e.za),e.kk="",e.Le="",e.za=null,e.$e=!1,a.X|=128,d||a.Na("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||tp(a,b))}
function Dp(a,b,c,d){var e;for(e=0;e<a.B.length;e++)if(a.B[e][1]==c){d.restore(a.B[e][2]);return}a.B[e]=[b,c,[]]}function Bp(a,b,c){var d;for(d=0;d<a.B.length;d++)if(a.B[d][1]==b){a.B[d][2]=c.save();break}}m.Qm=function(a,b,c){x(this,a,b,c,"OUTPUT");b&4?this.aa&4||this.aa&8&&this.N&&eg(this.N,6):vp(this);this.aa=b};m.vl=function(a,b){x(this,a,null,b,"DIAG",80);return 80};m.xl=function(a,b){x(this,a,null,b,"STATUS",this.ma);return this.ma};
m.ul=function(a,b){var c=0;this.L<this.C&&(c=this.W[this.L]);this.aa&8&&this.N&&dg(this.N,6);A(this)&&x(this,a,null,b,"DATA["+this.L+"]",c);++this.L>=this.C&&(this.ma&=-81,this.L=this.C=0);return c};
@ -760,23 +760,23 @@ Zq(a,g[1],!0);if(q)if(a.ua=q,void 0===g[2])a.O("begin assemble at "+Sq(q)),a.Ea=
a.O("\tbc [a]\tclear breakpoint at addr [a]"),a.O("\tbl\tlist all breakpoints"),a.O("\tbn [n]\tbreak after [n] instruction(s)");else{var H=F.charAt(1);if("l"==H){var L=0,L=L+pr(a,a.A),L=L+pr(a,a.ra);(L+=pr(a,a.ga))||a.O("no breakpoints")}else if("n"==H)a.Oa=Eq(a,v),a.O("break after "+a.Oa+" instruction(s)");else if(void 0===v)a.O("missing breakpoint address");else{var V={};if("*"!=v&&(V=Zq(a,v,!0,!0),!V))break a;v=null==V.Ra?v:u(V.Ra);"c"==H?null==V.Ra?(jq(a),a.O("all breakpoints cleared")):Rq(a,
a.A,V)||Rq(a,a.ra,V)||Rq(a,a.ga,V)||a.O("breakpoint missing: "+Sq(V)):"i"==H?a.O("breakpoint "+(gc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (input)"):"o"==H?a.O("breakpoint "+(kc(a.ea,V.Ra)?"enabled":"cleared")+": port "+v+" (output)"):null!=V.Ra&&(br(a,V,E),"p"==H?a.Sd(a.A,V):"r"==H?a.Sd(a.ra,V):"w"==H?a.Sd(a.ga,V):a.O("unknown breakpoint command: "+H))}}}break;case "c":Fr(a);break;case "d":a:{var P=g,bb,ia=P[0],ja=P[1],Ha=P[2],Xa=P[3];if("?"==ja){var Ba="";for(bb in wq)a.$a[bb]&&(Ba&&(Ba+=
","),Ba+=bb);Ba+=",state,symbols";a.O("dump memory commands:");a.O("\tdb [a] [#] dump # bytes at address a");a.O("\tdw [a] [#] dump # words at address a");a.O("\tdd [a] [#] dump # dwords at address a");a.O("\tdh [#] [#] dump # instructions from history");a.O("\tdi [#] dump descriptor info for IDT #");a.O("\tds [#] dump descriptor info for selector #");Ba.length&&a.O("dump extension commands:\n\t"+Ba)}else if("state"==ja){var Vb=Nr(a.V,!0);"console"==Ha?console.log(Vb):(Fr(a),
a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa<a.B.length;wa++){var Vd=a.B[wa],Rc;for(Rc in Vd.Rd)if("."!=Rc.charAt(0)){var Wd=Vd.Rd[Rc],Ie=Wd.o;if(void 0!==Ie){var Xd=Wd.s;void 0===Xd&&(Xd=Vd.Z);var Je=Vd.Rd[Rc].l;Je&&(Rc=Je);a.O(Iq(Ie,Xd)+" "+Rc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ii=P[0];if(ii){var Te=a.dc(Zq(a,ii));if(-1===Te)a.O("invalid address: "+ii);else{var be,Da=null;if(80386<=a.F.ia){var ce=
a.O(Vb))}else if("symbols"==ja)for(var wa=0;wa<a.B.length;wa++){var Vd=a.B[wa],Rc;for(Rc in Vd.Rd)if("."!=Rc.charAt(0)){var Wd=Vd.Rd[Rc],Ie=Wd.o;if(void 0!==Ie){var Xd=Wd.s;void 0===Xd&&(Xd=Vd.Z);var Je=Vd.Rd[Rc].l;Je&&(Rc=Je);a.O(Iq(Ie,Xd)+" "+Rc)}}}else{if("ds"==ia||"dg"==ia||"dl"==ia)ia="d",P=[ia,"desc",ja];"d"==ia&&"page"==ja&&(ia="dp",P.shift());if("dp"==ia){P.shift();var ji=P[0];if(ji){var Te=a.dc(Zq(a,ji));if(-1===Te)a.O("invalid address: "+ji);else{var be,Da=null;if(80386<=a.F.ia){var ce=
a.ea,Da={};Da.bk=(Te&-4194304)>>>20;Da.ui=a.F.Pd+Da.bk;Da.yb=ce.sa[(Da.ui&ce.Gb)>>>ce.La];Da.Ui=Da.yb.Nd(Da.bk);Da.ck=(Te&4190208)>>>10;Da.vi=(Da.Ui&-4096)+Da.ck;Da.zb=ce.sa[(Da.vi&ce.Gb)>>>ce.La];Da.Vi=Da.zb.Nd(Da.ck);Da.Fk=(Da.Vi&-4096)+(Te&4095)}if(be=Da){a.O("linear PDE addr PDE PTE addr PTE physical");a.O("--------- ---------- -------- ---------- -------- ----------");var qd="%"+r(Te),qd=qd+(" %%"+dr(be.ui,be.Ui)),qd=qd+(" %%"+dr(be.vi,be.Vi,!0)),
qd=qd+(" %%"+r(be.Fk));a.O(qd)}else a.O("unsupported operation")}}else a.O("missing address")}else{if("d"==ia){if("disk"==ja){P[0]="l";P[1]="json";Jr(a,P);break a}for(bb in wq)if(P[1]==bb){var En=a.$a[bb];En?(P.shift(),P.shift(),En(P)):a.O("no dump registered for "+ja);break a}ja||(ia=a.Cc||"db")}else a.Cc=ia;if("dh"==ia){var Fn=ja,Gn=Ha,Hn="",In=0,tb=a.Fa,tc=a.ja;if(tc.length){var Db=+Fn||a.Ub,de=+Gn||10;isNaN(Db)?Db=de:Hn="more ";Db>tc.length&&(a.O("note: only "+tc.length+" available"),Db=tc.length);
tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ji=[];"call"==Gn&&(de=1E5,ji=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var Ue=iq(a,rd.Ra,rd.Z,rd.Da,rd.type,rd.Sb,rd.pc),gs=Db--,Jn=rr(a,Ue,"history",gs);(!ji.length||0<=Jn.indexOf(ji[0]))&&a.O(Jn);Ue.Se&&(tb+=Ue.Se,de-=Ue.Se,Db-=Ue.Se);tb>=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift();
var ki=P[0];if(ki){var Ve=Eq(a,ki);if(void 0===Ve||0>Ve||255<Ve)a.O("invalid vector: "+ki);else{var Kn="&",Ln=!!(a.F.Za&1),Mn=!1,pg=a.F.Mc+(Ve<<(Ln?3:2)),li=a.F.na(pg+0),hs=a.F.na(pg+2);Ln&&(Kn="#",a.F.na(pg+4)&2048&&(Mn=!0,li|=a.F.na(pg+6)<<16));a.O("dumpIDT("+u(Ve)+"): "+Kn+r(hs,4)+":"+r(li,Mn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=Zq(a,ja);if(ee&&(null!=ee.Z||null!=ee.Da)){var qg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),qg=Eq(a,Ha)>>>
0,65536<qg&&(qg=65536));for(var sd="",is=(qg||128)+15>>4||1,mi="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nn<is;Nn++){for(var rg=0,ni=0,We="",oi="",ja=Sq(ee),pi=0;16>pi;pi++){var sg=a.Qa(ee,1),rg=rg|sg<<(ni++<<3);ni==mi&&(We+=r(rg,2*mi),We+=1==mi?7==pi?"-":" ":" ",rg=ni=0);oi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+oi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1];
tb-=Db;0>tb&&(null==tc[tc.length-1].Z?(Db=tb+Db,tb=0):tb+=tc.length);var ki=[];"call"==Gn&&(de=1E5,ki=["CALL"]);for(void 0!==Fn&&a.O(Db+" instructions earlier:");0<de&&tb!=a.Fa;){var rd=tc[tb++];if(null==rd.Z)break;var Ue=iq(a,rd.Ra,rd.Z,rd.Da,rd.type,rd.Sb,rd.pc),gs=Db--,Jn=rr(a,Ue,"history",gs);(!ki.length||0<=Jn.indexOf(ki[0]))&&a.O(Jn);Ue.Se&&(tb+=Ue.Se,de-=Ue.Se,Db-=Ue.Se);tb>=tc.length&&(tb=0);a.Ub=Db;In++;de--}}In||(a.O("no "+Hn+"history available"),a.Ub=void 0)}else if("di"==ia){P.shift();
var li=P[0];if(li){var Ve=Eq(a,li);if(void 0===Ve||0>Ve||255<Ve)a.O("invalid vector: "+li);else{var Kn="&",Ln=!!(a.F.Za&1),Mn=!1,pg=a.F.Mc+(Ve<<(Ln?3:2)),mi=a.F.na(pg+0),hs=a.F.na(pg+2);Ln&&(Kn="#",a.F.na(pg+4)&2048&&(Mn=!0,mi|=a.F.na(pg+6)<<16));a.O("dumpIDT("+u(Ve)+"): "+Kn+r(hs,4)+":"+r(mi,Mn?8:4))}}else a.O("no IDT vector")}else if("dt"==ia)P.shift(),a.O("no information");else{var ee=Zq(a,ja);if(ee&&(null!=ee.Z||null!=ee.Da)){var qg=0;Ha&&("l"==Ha.charAt(0)&&(Ha=Ha.substr(1)||Xa),qg=Eq(a,Ha)>>>
0,65536<qg&&(qg=65536));for(var sd="",is=(qg||128)+15>>4||1,ni="dd"==ia?4:"dw"==ia?2:1,Nn=0;Nn<is;Nn++){for(var rg=0,oi=0,We="",pi="",ja=Sq(ee),qi=0;16>qi;qi++){var sg=a.Qa(ee,1),rg=rg|sg<<(oi++<<3);oi==ni&&(We+=r(rg,2*ni),We+=1==ni?7==qi?"-":" ":" ",rg=oi=0);pi+=32<=sg&&128>sg?String.fromCharCode(sg):"."}sd&&(sd+="\n");sd+=ja+" "+We+" "+pi}sd&&a.O(sd);a.Db=ee}}}}}break;case "e":if("else"==g[0])break;var tg=1,On=255,Pn=a.Qa,Qn=a.qc;"ew"==g[0]&&(tg=2,On=65535,Pn=a.na,Qn=a.jb);var Rn=tg<<1,Sn=g[1];
if(null==Sn)a.O("edit memory commands:"),a.O("\teb [a] [...] edit bytes at address a"),a.O("\tew [a] [...] edit words at address a");else{var ug=Zq(a,Sn);if(ug)for(var vg=2;vg<g.length;vg++){var Xe=ar(a,g[vg]);if(void 0===Xe){a.O("unrecognized value: "+g[vg]);break}Xe&~On&&a.O("warning: "+r(Xe)+" exceeds "+tg+"-byte value");var js=Pn.call(a,ug);a.O("changing "+Sq(ug)+" from 0x"+r(js,Rn)+" to 0x"+r(Xe,Rn));Qn.call(a,ug,Xe,tg)}}break;case "f":Gr(a,g[1]);break;case "g":a:{var Tn=g[1],ks=b;"gt"==g[0]&&
(a.cb=!0);if(void 0!==Tn){var qi=Zq(a,Tn,!0);if(!qi)break a;br(a,qi,ks);a.Sd(a.A,qi,!0)}a.Ke(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":var ri;a.la.Ib?(ri="halting",a.Wb()):ri="already halted";c||a.O(ri);break;case "i":if("if"==g[0]){var si;var Ye=b.substr(2),Ye=na(Ye);ar(a,Ye)?(c||a.O("true: "+Ye),si=!0):(c||a.O("false: "+Ye),si=!1);si||(d=!1);break}if("int"==g[0]){var wg;a:switch(Eq(a,g[1])){case 19:kk(a,19,a.F.Ga,!0);a.ya=a.pa;wg=!0;break a;case 33:kk(a,33,a.F.Ga,
!0);a.ya=a.pa;wg=!0;break a;default:wg=!1}wg||(d=!1);break}var ti=g[1];if(ti&&"?"!=ti){var ui=Eq(a,ti);if(void 0!==ui){var ls=ic(a.ea,ui,1);a.O(u(ui)+": "+t(ls))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ms=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var vi=0,Un=a.F.va.Z,Ze=iq(a),Tc=iq(a,I(a.F),a.F.ta.Z);for(a.O("stack trace for "+
Sq(Tc));10>vi;){for(var uc=null,ns=256;Tc.Ra>>>0<a.F.Lg>>>0;){Ze.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;Ze.Z=Un;if(uc=Lr(a,Ze))break;Ze.Z=a.tb(Tc);if(uc=Lr(a,Ze,!0)){Un=a.tb(Tc,!0);0<uc.indexOf("INT")&&a.tb(Tc,!0);break}}if(!uc||null==uc)break;var Vn=null;if("ks"==ms){var Wn=uc.match(/[0-9A-F]+$/);Wn&&(Vn=Ir(a,Wn[0]))}uc=ma(uc,50)+" ;"+(Vn||"stack="+Sq(Tc));a.O(uc);vi++}vi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Ir(a,g[1],!0);break}Jr(a,g);break;case "m":if("mouse"==g[0]){var wi=
g[1],xg=g[2];if(a.W){var Xn=1;"-"==xg.charAt(0)&&(Xn=-1,xg=xg.substr(1));var td=Eq(a,xg,wi);if(void 0!==td)switch(td=td*Xn|0,wi){case "x":a.W.Hf(td,0);break;case "y":a.W.Hf(0,td);break;case "click":a.W.je(td,!0);a.W.je(td,!1);break;default:a.O("unknown action: "+wi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&
(a.cb=!0);if(void 0!==Tn){var ri=Zq(a,Tn,!0);if(!ri)break a;br(a,ri,ks);a.Sd(a.A,ri,!0)}a.Ke(!0)||c||a.O("cpu busy or unavailable, run command ignored")}break;case "h":var si;a.la.Ib?(si="halting",a.Wb()):si="already halted";c||a.O(si);break;case "i":if("if"==g[0]){var ti;var Ye=b.substr(2),Ye=na(Ye);ar(a,Ye)?(c||a.O("true: "+Ye),ti=!0):(c||a.O("false: "+Ye),ti=!1);ti||(d=!1);break}if("int"==g[0]){var wg;a:switch(Eq(a,g[1])){case 19:kk(a,19,a.F.Ga,!0);a.ya=a.pa;wg=!0;break a;case 33:kk(a,33,a.F.Ga,
!0);a.ya=a.pa;wg=!0;break a;default:wg=!1}wg||(d=!1);break}var ui=g[1];if(ui&&"?"!=ui){var vi=Eq(a,ui);if(void 0!==vi){var ls=ic(a.ea,vi,1);a.O(u(vi)+": "+t(ls))}}else a.O("input commands:"),a.O("\ti [p]\tread port [p]"),a.O("warning: port accesses can affect hardware state");break;case "k":var ms=g[0];if("?"==g[1])a.O("stack trace commands:"),a.O("\tk\tshow frame addresses"),a.O("\tks\tshow symbol information");else{var wi=0,Un=a.F.va.Z,Ze=iq(a),Tc=iq(a,I(a.F),a.F.ta.Z);for(a.O("stack trace for "+
Sq(Tc));10>wi;){for(var uc=null,ns=256;Tc.Ra>>>0<a.F.Lg>>>0;){Ze.Ra=a.tb(Tc,!0);if(null==Tc.Da||!ns--)break;Ze.Z=Un;if(uc=Lr(a,Ze))break;Ze.Z=a.tb(Tc);if(uc=Lr(a,Ze,!0)){Un=a.tb(Tc,!0);0<uc.indexOf("INT")&&a.tb(Tc,!0);break}}if(!uc||null==uc)break;var Vn=null;if("ks"==ms){var Wn=uc.match(/[0-9A-F]+$/);Wn&&(Vn=Ir(a,Wn[0]))}uc=ma(uc,50)+" ;"+(Vn||"stack="+Sq(Tc));a.O(uc);wi++}wi||a.O("no return addresses found")}break;case "l":if("ln"==g[0]){Ir(a,g[1],!0);break}Jr(a,g);break;case "m":if("mouse"==g[0]){var xi=
g[1],xg=g[2];if(a.W){var Xn=1;"-"==xg.charAt(0)&&(Xn=-1,xg=xg.substr(1));var td=Eq(a,xg,xi);if(void 0!==td)switch(td=td*Xn|0,xi){case "x":a.W.Hf(td,0);break;case "y":a.W.Hf(0,td);break;case "click":a.W.je(td,!0);a.W.je(td,!1);break;default:a.O("unknown action: "+xi)}}else a.O("no mouse");break}a:{var vc,wc=null,Oa=g[1];"?"==Oa&&(Oa=void 0);if(void 0!==Oa){var ud=0;if("all"==Oa)ud=1610481663,Oa=null;else if("on"==Oa)wc=!0,Oa=null;else if("off"==Oa)wc=!1,Oa=null;else{"keys"==Oa&&(Oa="key");"kbd"==Oa&&
(Oa="keyboard");for(vc in wq)if(Oa==vc){ud=wq[vc];wc=!!(a.wc&ud);break}if(!ud){a.O("unknown message category: "+Oa);break a}}ud&&("on"==g[2]?(a.wc|=ud,wc=!0):"off"==g[2]&&(a.wc&=~ud,wc=!1))}var os=0,Uc="";for(vc in wq)if(!Oa||Oa==vc){var ps=!!(a.wc&wq[vc]);if(null===wc||wc==ps)Uc&&(Uc+=","),++os%10||(Uc+="\n\t"),"key"==vc&&(vc="keys"),Uc+=vc}void 0===Oa&&a.O("message commands:\n\tm [category] [on|off]\tturn categories on/off");a.O((null!==wc?wc?"messages on: ":"messages off: ":"message categories:\n\t")+
(Uc||"none"));kq(a)}break;case "o":var xi=g[1],qs=g[2];if(xi&&"?"!=xi){var yi=Eq(a,xi,"port #"),zi=Eq(a,qs);void 0!==yi&&void 0!==zi&&(mc(a.ea,yi,1,zi),a.O(u(yi)+": "+t(zi)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Kr(a,b.substr(5));break}var Yn="pr"==g[0]?1:0,fe=1+Yn;if(a.N)a.O("step in progress");else{var yg,Zn=!1,lb=iq(a,K(a.F),a.F.va.Z);do switch(yg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Uq(a,
(Uc||"none"));kq(a)}break;case "o":var yi=g[1],qs=g[2];if(yi&&"?"!=yi){var zi=Eq(a,yi,"port #"),Ai=Eq(a,qs);void 0!==zi&&void 0!==Ai&&(mc(a.ea,zi,1,Ai),a.O(u(zi)+": "+t(Ai)))}else a.O("output commands:"),a.O("\to [p] [b]\twrite byte [b] to port [p]"),a.O("warning: port accesses can affect hardware state");break;case "p":if("print"==g[0]){Kr(a,b.substr(5));break}var Yn="pr"==g[0]?1:0,fe=1+Yn;if(a.N)a.O("step in progress");else{var yg,Zn=!1,lb=iq(a,K(a.F),a.F.va.Z);do switch(yg=!1,a.Qa(lb)){case 38:case 46:case 54:case 62:case 100:case 101:case 102:case 103:case 240:Uq(a,
lb,1);yg=!0;break;case 204:case 206:a.N=fe;Uq(a,lb,1);break;case 205:case 224:case 225:case 226:a.N=fe;Uq(a,lb,lb.Sb?4:2);break;case 232:a.N=fe;Uq(a,lb,lb.Sb?5:3);break;case 154:a.N=fe;Uq(a,lb,lb.Sb?7:5);break;case 255:var $n=a.tb(lb)&14591;if(4351==$n||6399==$n)a.N=fe,rr(a,lb);break;case 243:case 242:Uq(a,lb,1);Zn=yg=!0;break;case 108:case 109:case 110:case 111:case 164:case 165:case 166:case 167:case 170:case 171:case 172:case 173:case 174:case 175:Zn&&(a.N=fe,Uq(a,lb,1))}while(yg);a.N?(a.Sd(a.A,
lb,!0),a.Ke()||(a.V&&a.V.yd(),a.N=0)):Mr(a,Yn?"tr":"t")}break;case "r":if("reset"==b){a.V&&a.V.reset();break}jr(a,g);break;case "t":Mr(a,g[0],g[1]);break;case "u":kr(a,g[1],g[2],8);break;case "v":if("var"==g[0]){Hr(a,b.substr(3))||(d=!1);break}a.O("PCjs version 1.21.7 ("+a.F.ia+",RELEASE,NOPREFETCH"+(vb?",TYPEDARRAYS":",LONGARRAYS")+",NOBACKTRACK)");a.O(ya());break;case "x":a:if(g[1]&&"?"!=g[1])switch(g[1]){case "cs":var $e;void 0!==g[3]&&($e=+g[3]);switch(g[2]){case "int":a.F.Y.jf=$e;break;case "start":a.F.Y.Jf=
$e;break;case "stop":a.F.Y.lf=$e;break;default:a.O("unknown cs option");break a}void 0!==$e&&Pc(a.F);a.O("checksums "+(a.F.la.Ye?"enabled":"disabled"));break;case "sp":void 0!==g[2]&&(Xc(a.F,+g[2])||a.O("warning: using 1x multiplier, previous target not reached"));a.O("target speed: "+(a.F.Y.Fe.toFixed(2)+"Mhz")+" ("+a.F.Y.Yd+"x)");break;default:a.O("unknown option: "+g[1])}else a.O("execution options:"),a.O("\tcs int #\tset checksum cycle interval to #"),a.O("\tcs start #\tset checksum cycle start count to #"),
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var af="commands:",Ai;for(Ai in pq)af+="\n"+ma(Ai,7)+pq[Ai];Tf(a)||(af+="\nnote: frequency/history disabled if no exec breakpoints");a.O(af);break;default:a.O("unknown command: "+b),d=!1}}}catch(ao){a.O("debugger error: "+(ao.stack||ao.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0}
a.O("\tcs stop #\tset checksum cycle stop count to #"),a.O("\tsp #\t\tset speed multiplier to #");break;case "?":if(g[1]){Kr(a,b.substr(1));break}var af="commands:",Bi;for(Bi in pq)af+="\n"+ma(Bi,7)+pq[Bi];Tf(a)||(af+="\nnote: frequency/history disabled if no exec breakpoints");a.O(af);break;default:a.O("unknown command: "+b),d=!1}}}catch(ao){a.O("debugger error: "+(ao.stack||ao.message)),d=!1}return d}function mq(a,b,c){b=cr(a,b,c);for(var d in b)if(!qr(a,b[d]))return!1;return!0}
Qa(function(){for(var a=nb(document,"pcjs","debugger"),b=0;b<a.length;b++){var c=a[b],d=jb(c),d=new hq(d);mb(d,c)}});function hf(a,b,c){this.id=a.id;this.key=Or(a,b,c);this.ha=a.ha;Pr(this,a.gk)}function Or(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}
hf.prototype={constructor:hf,value:function(){return this[this.id]},data:function(){return this[this.id]},load:function(a){return a?(this[this.id]=a,this.A=!0):this.A?!0:Ca()&&(a=Ea(this.key))?(this[this.id]=a,this.A=!0):!1},toString:function(){var a=this[this.id];return"string"==typeof a?a:JSON.stringify(a)},clear:function(a){Pr(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 Pr(a,b){a[a.id]={};b&&N(a,"parms",b);a.A=!1}function Qr(a){var b=!0;if(Ca()){var c=JSON.stringify(a[a.id]);Fa(a.key,c)||(w("Unable to store "+c.length+" bytes in browser local storage"),b=!1)}return b}function Rr(a){var b=!0;try{a[a.id]=JSON.parse(a[a.id])}catch(c){w(c.message||c),b=!1}return b}function Sr(a,b){return a[a.id][b]||null}function N(a,b,c){try{a[a.id][b]=c}catch(d){}}

View file

@ -370,7 +370,7 @@ function Bi(a,b){var c=b;if(a)for(var c=0,d=1,e=0;e<a.length;e++)"0"==a.charAt(e
function jj(a,b,c,d){if(c=a.ka[c]){d=d?a.D[b][0]:a.D[b][1]=a.D[b][0];c=Za(c,"pcjs-bitCell");for(var e=0;e<c.length;e++){var f=kj(a,b,e);c[e].setAttribute("title",f&&f.gd||"Reserved");lj(c[e],d&1<<e?!1:!0);c[e].onclick=function(a,b){return function(){var c="1"!=b.getAttribute("data-value");lj(b,c);var d=b.getAttribute("id").split("-"),e=1<<+d[1]-1;switch(d[0]){case Ci:a.D[0][0]=a.D[0][0]&~e|(c?0:e);break;case Gi:a.D[1][0]=a.D[1][0]&~e|(c?0:e)}mj(a)}}(a,c[e])}}}
function mj(a){var b=a.ka.swdesc;if(null!=b){var c;c=""+(Yi(a,!0)+"Kb");c+=", "+(+ +Zi(a,3,!0)?"":"No ")+"Coprocessor";c+=", "+{0:"Enhanced Color",1:"TV",2:"Color",3:"Monochrome"}[+Zi(a,Fi,!0)]+" Monitor";c+=", "+ +Zi(a,Ei,!0)+" Floppy Drives";if(null!=a.D[0][1]&&a.D[0][1]!=a.D[0][0]||null!=a.D[1][1]&&a.D[1][1]!=a.D[1][0])c+=" (Reset required)";b.textContent=c}}
function nj(a,b,c){a=a.G[b];var d=a.$b[c],e=d.gb[a.Ib];a.Ib^=1;b||0!=c||a.Ib||(d.gb[0]++,255<d.gb[0]&&(d.gb[0]=0,d.gb[1]++,255<d.gb[1]&&(d.gb[1]=0)));return e}function oj(a,b,c,d){a=a.G[b];c=a.$b[c];c.gb[a.Ib]=c.sf[a.Ib]=d;a.Ib^=1}function pj(a,b,c){a=a.G[b];var d=a.$b[c],e=d.hb[a.Ib];a.Ib^=1;b||0!=c||a.Ib||(d.hb[0]--,0>d.hb[0]&&(d.hb[0]=255,d.hb[1]--,0>d.hb[1]&&(d.hb[1]=255)));return e}function qj(a,b,c,d){a=a.G[b];c=a.$b[c];c.hb[a.Ib]=c.jc[a.Ib]=d;a.Ib^=1}
function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function wj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<<b)|(c&4)<<b+2;a.Gh=c}function xj(a,b,c){b=a.G[b];var d=c&3,e=b.$b[d];e.Qd=!!(c&4);e.Qd||yj(a,b.Vk+d)}function zj(a,b){for(var c=a.G[b],d=0;d<c.$b.length;d++)ej(c,d)}function Aj(a,b,c){return a.G[b].$b[c].tf}function Bj(a,b,c,d){a.G[b].$b[c].tf=d}function Cj(a,b,c,d,e){gj(a.G[b>>2].$b[b&3],c,d,e)}
function rj(a,b){var c=a.G[b],d=c.Db|1;c.Db&=-16;return d}function sj(a,b,c){a=a.G[b];b=c&3;a.Db=a.Db&~(16<<b)|(c&4)<<b+2;a.Gh=c}function xj(a,b,c){b=a.G[b];var d=c&3,e=b.$b[d];e.Qd=!!(c&4);e.Qd||yj(a,b.Vk+d)}function zj(a,b){for(var c=a.G[b],d=0;d<c.$b.length;d++)ej(c,d)}function Aj(a,b,c){return a.G[b].$b[c].tf}function Bj(a,b,c,d){a.G[b].$b[c].tf=d}function Cj(a,b,c,d,e){gj(a.G[b>>2].$b[b&3],c,d,e)}
function yj(a,b,c){b=a.G[b>>2].$b[b&3];b.yf&&b.kg&&b.Mf?(c&&(b.done=c),b.Qd||Dj(a,b,!0)):c&&c(!0)}function Dj(a,b,c){c&&(b.count=b.hb[1]<<8|b.hb[0],b.type=b.mode&12,b.Sh=b.Yc=!1);for(var d=!1;0<=b.count&&(c=b.tf<<16|b.gb[1]<<8|b.gb[0],4==b.type?(d=!0,function(c){b.kg.call(b.yf,b.Mf,-1,function(f,g){0>f&&(b.Sh||(b.Sh=!0),f=255);b.Qd||a.ha.Mc(c,f);(d=g)&&setTimeout(function(){Ej(b)||Dj(a,b)},0)})}(c)):8==b.type?(c=a.ha.Jb(c),0>b.kg.call(b.yf,b.Mf,c)&&(b.Yc=!0)):0!=b.type&&(b.Yc=!0)),!d&&!Ej(b););}
function Ej(a){if(!a.Yc&&0<=--a.count&&(a.mode&32?(a.gb[0]--,0>a.gb[0]&&(a.gb[0]=255,a.gb[1]--,0>a.gb[1]&&(a.gb[1]=255))):(a.gb[0]++,255<a.gb[0]&&(a.gb[0]=0,a.gb[1]++,255<a.gb[1]&&(a.gb[1]=0))),!a.Qd))return!1;var b=a.controller;b.Db=b.Db&~(16<<a.Vh)|1<<a.Vh;a.mode&16||(a.Qd=!0,a.yf=a.Mf=null);a.done&&(a.done(!a.Yc),a.done=null);return!0}function Fj(a,b){var c=0,d=a.gc[b];if(null!=d.Je)switch(d.Je&3){case 2:c=d.ac;break;case 3:c=d.Cc}return c}
function Gj(a,b,c){b=a.gc[b];if(c&16)b.md=0,b.Sc[b.md++]=c,b.Vc=0,b.Ld=7,b.ac=b.Cc=0,b.Je=10;else if(c&8)b.Je=c;else{var d=c&224;if(d&32){var e=0;if(96==(d&96))e=1<<(c&7);else for(c=b.Ld+1;;){c&=7;d=1<<c;if(b.Cc&d){e=d;break}if(c++==b.Ld)break}b.Cc&e&&(b.Cc&=~e,Hj(a))}else 192==d&&(b.Ld=c&7)}}function Ij(a,b,c){var d=a.gc[b];d.md<d.Sc.length?(d.Sc[d.md++]=c,2==d.md&&d.Sc[0]&2&&d.md++,3!=d.md||d.Sc[0]&1||d.md++):(d.Vc=c,d=a.A,d.L|=4,Hj(a,b||253!=c?0:6))}
@ -394,10 +394,10 @@ var Ki={0:function(){return nj(this,0,0)},1:function(){return pj(this,0,0)},2:fu
0,2)},67:function(){return this.xa},129:function(){return Aj(this,0,2)},130:function(){return Aj(this,0,3)},131:function(){return Aj(this,0,1)},135:function(){return Aj(this,0,0)}},Mi={96:S.prototype.Bk,97:S.prototype.Ck,98:S.prototype.Dk,99:S.prototype.Ek},Qi={96:S.prototype.Oj,97:S.prototype.Pj,100:S.prototype.Qj,112:S.prototype.dk,113:S.prototype.ek,128:function(){return this.I[7]},132:function(){return this.I[0]},133:function(){return this.I[1]},134:function(){return this.I[2]},136:function(){return this.I[3]},
137:function(){return Aj(this,1,2)},138:function(){return Aj(this,1,3)},139:function(){return Aj(this,1,1)},140:function(){return this.I[4]},141:function(){return this.I[5]},142:function(){return this.I[6]},143:function(){return Aj(this,1,0)},160:function(){return Fj(this,1)},161:function(){return this.gc[1].Vc},192:function(){return nj(this,1,0)},194:function(){return pj(this,1,0)},196:function(){return nj(this,1,1)},198:function(){return pj(this,1,1)},200:function(){return nj(this,1,2)},202:function(){return pj(this,
1,2)},204:function(){return nj(this,1,3)},206:function(){return pj(this,1,3)},208:function(){return rj(this,1)},218:function(){return this.G[1].dg}},Oi={96:S.prototype.Mj,97:S.prototype.Lj,100:S.prototype.Nj,102:function(){return this.D[0][1]},103:function(){return this.D[1][1]}},Si={72:function(){return Jj(this,1,0)},73:function(){return Jj(this,1,1)},74:function(){return Jj(this,1,2)},75:function(){return this.za}},Li={0:function(a,b){oj(this,0,0,b)},1:function(a,b){qj(this,0,0,b)},2:function(a,
b){oj(this,0,1,b)},3:function(a,b){qj(this,0,1,b)},4:function(a,b){oj(this,0,2,b)},5:function(a,b){qj(this,0,2,b)},6:function(a,b){oj(this,0,3,b)},7:function(a,b){qj(this,0,3,b)},8:function(a,b){this.G[0].bg=b},9:function(a,b){wj(this,0,b)},10:function(a,b){xj(this,0,b)},11:function(a,b){this.G[0].$b[b&3].mode=b},12:function(){this.G[0].Ib=0},13:function(){zj(this,0)},32:function(a,b){Gj(this,0,b)},33:function(a,b){Ij(this,0,b)},64:function(a,b){Mj(this,0,0,b)},65:function(a,b){Mj(this,0,1,b)},66:function(a,
b){oj(this,0,1,b)},3:function(a,b){qj(this,0,1,b)},4:function(a,b){oj(this,0,2,b)},5:function(a,b){qj(this,0,2,b)},6:function(a,b){oj(this,0,3,b)},7:function(a,b){qj(this,0,3,b)},8:function(a,b){this.G[0].bg=b},9:function(a,b){sj(this,0,b)},10:function(a,b){xj(this,0,b)},11:function(a,b){this.G[0].$b[b&3].mode=b},12:function(){this.G[0].Ib=0},13:function(){zj(this,0)},32:function(a,b){Gj(this,0,b)},33:function(a,b){Ij(this,0,b)},64:function(a,b){Mj(this,0,0,b)},65:function(a,b){Mj(this,0,1,b)},66:function(a,
b){Mj(this,0,2,b)},67:function(a,b){Oj(this,0,b)},129:function(a,b){Bj(this,0,2,b)},130:function(a,b){Bj(this,0,3,b)},131:function(a,b){Bj(this,0,1,b)},135:function(a,b){Bj(this,0,0,b)}},Ni={96:S.prototype.Ol,97:S.prototype.Pl,98:S.prototype.Ql,99:S.prototype.Rl,160:S.prototype.ej},Ri={96:S.prototype.bl,97:S.prototype.cl,100:S.prototype.al,112:S.prototype.ql,113:S.prototype.rl,128:function(a,b){this.I[7]=b},132:function(a,b){this.I[0]=b},133:function(a,b){this.I[1]=b},134:function(a,b){this.I[2]=
b},136:function(a,b){this.I[3]=b},137:function(a,b){Bj(this,1,2,b)},138:function(a,b){Bj(this,1,3,b)},139:function(a,b){Bj(this,1,1,b)},140:function(a,b){this.I[4]=b},141:function(a,b){this.I[5]=b},142:function(a,b){this.I[6]=b},143:function(a,b){Bj(this,1,0,b)},160:function(a,b){Gj(this,1,b)},161:function(a,b){Ij(this,1,b)},192:function(a,b){oj(this,1,0,b)},194:function(a,b){qj(this,1,0,b)},196:function(a,b){oj(this,1,1,b)},198:function(a,b){qj(this,1,1,b)},200:function(a,b){oj(this,1,2,b)},202:function(a,
b){qj(this,1,2,b)},204:function(a,b){oj(this,1,3,b)},206:function(a,b){qj(this,1,3,b)},208:function(a,b){this.G[1].bg=b},210:function(a,b){wj(this,1,b)},212:function(a,b){xj(this,1,b)},214:function(a,b){this.G[1].$b[b&3].mode=b},216:function(){this.G[1].Ib=0},218:function(){zj(this,1)},240:S.prototype.Bl,241:S.prototype.Cl},Pi={96:S.prototype.$k,97:S.prototype.Zk,160:S.prototype.ej},Ti={72:function(a,b){Mj(this,1,0,b)},73:function(a,b){Mj(this,1,1,b)},74:function(a,b){Mj(this,1,2,b)},75:function(a,
b){qj(this,1,2,b)},204:function(a,b){oj(this,1,3,b)},206:function(a,b){qj(this,1,3,b)},208:function(a,b){this.G[1].bg=b},210:function(a,b){sj(this,1,b)},212:function(a,b){xj(this,1,b)},214:function(a,b){this.G[1].$b[b&3].mode=b},216:function(){this.G[1].Ib=0},218:function(){zj(this,1)},240:S.prototype.Bl,241:S.prototype.Cl},Pi={96:S.prototype.$k,97:S.prototype.Zk,160:S.prototype.ej},Ti={72:function(a,b){Mj(this,1,0,b)},73:function(a,b){Mj(this,1,1,b)},74:function(a,b){Mj(this,1,2,b)},75:function(a,
b){Oj(this,1,b)}};Ea(function(){for(var a=Za(document,"pcjs","chipset"),b=0;b<a.length;b++){var c=a[b],d=Wa(c),d=new S(d);Ya(d,c);mj(d)}});
function ak(a){Ia.call(this,"ROM",a,ak);this.B=null;this.I=a.addr;this.D=a.size;this.G=a.alias;this.H=a.file;this.P=fa(this.H);this.C=a.notify;this.L=null;if(this.C&&(a=this.C.indexOf("["),0<a)){try{this.L=eval(this.C.substr(a))}catch(d){}this.C=this.C.substr(0,a)}if(this.H){a=this.H;var b=ga(this.P);"json"!=b&&"hex"!=b&&(a=qa()+"/api/v1/dump?file="+this.H+"&format=bytes&decimal=true");var c=this;pa(a,null,!0,function(a,b,f){bk(c,a,b,f)})}}Qa(ak);
ak.prototype.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;ck(this)};ak.prototype.Vb=function(){this.K&&(this.Ia&&this.Ia.A(this.id,0,this.I>>>4,0,this.I,this.D,this.K),delete this.K);return!0};ak.prototype.Ub=function(){return!0};
@ -472,8 +472,8 @@ function Jk(a,b,c,d){if(d)a.Ba("Unable to load font ROM (error "+d+": "+b+")");e
function sl(a,b){if(1==b)return a.oa[0]=Ok[0],a.oa[1]=Ok[7],a.oa;if(2==b){var c=a.D.ff;if(a.D===a.B){var d=a.B.Kc[0],c=d&7;d&16&&(c|=8);18!=a.B.Kc[1]&&(c|=32)}a.oa[0]=Ok[c&15];c=c&32?Qk:Pk;for(d=0;d<c.length;d++)a.oa[d+1]=Ok[c[d]];return a.oa}if(a.R===a.Cb)return Ok;a.La&&b&&!a.oa[16]&&(a.La=!1);if(!a.La){var c=a.B,d=c.ze,e,f,g,h,k;if(8==b)for(f=0;256>f;f++)g=d[f]||0,h=g<<2&252,k=g>>4&252,g=g>>10&252,a.oa[f]=[h,k,g,255];else{var m=d&&d[255];e=null!=c.Kc[15]?c.Kc:Rk;for(f=0;16>f;f++)g=e[f]&63,m?(g|=
(c.Kc[20]&12)<<4,c.Kc[16]&128&&(g&=-49,g|=(c.Kc[20]&3)<<4),g=d[g],h=g<<2&252,k=g>>4&252,g=g>>10&252):(h=(g&4?170:0)|(g&32?85:0),k=(g&2?170:0)|(g&16?85:0),g=(g&1?170:0)|(g&8?85:0)),a.oa[f]=[h,k,g,255]}a.La=!0}return a.oa}function dk(a,b,c,d){a.Ab=b;a.Xa=c;a.Ja=d}
function ol(a,b){var c=!1;if(window&&a.Ab&&(!b||a.I)){var d=0,e=a.Ja?a.Ja:8,f=sl(a);null!=a.Xa[0]&&tl(a,3,a.Xa[0],d,e,8,a.Ab,f)&&(c=!0);d=a.Ja?0:2048;e=a.Ja?a.Ja:9;null!=a.Xa[1]&&(tl(a,1,a.Xa[1],d,e,14,a.Ab,Mk,Nk)&&(c=!0),a.Ja&&tl(a,a.Ra,a.Xa[1],0,a.Ja,14,a.Ab,f)&&(c=!0))}return c}function tl(a,b,c,d,e,f,g,h,k){var m=!1;null!=c&&(ul(a,b,c,d,e,f,g,h,k)&&(m=!0),a.Zd&&ul(a,b<<1,c,d,e,f,g,h,k)&&(m=!0));return m}
function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,qd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var sj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=sj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=qd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var tj=Oc<<J,uj=(ac<<J)+If,vj=cn||dn&128>>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,tj,uj,vj);J&&vl(Hf,tj+1,uj,vj)}sj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function ul(a,b,c,d,e,f,g,h,k){var m=!1,p=b&1?0:1,x=a.xa[b],r=16>h.length?h.length:16;x||(x={tc:e<<p,uc:f<<p,be:Array(r),Ch:h.slice(0,r),Ge:k,ag:Array(r)});for(k=0;k<r;k++){var z=h[k],E=x.be[k]?x.Ch[k]:[];if(z[0]!==E[0]||z[1]!==E[1]||z[2]!==E[2]){var m=x,E=k,J=p,W=c,da=d,ua=e,va=f,qd=g,bn=[0,0,0,0],ue=document.createElement("canvas");ue.width=m.tc<<4;ue.height=m.uc<<4;for(var tj=ue.getContext("2d"),Ab=void 0,Oc=void 0,ac=void 0,ve=8>va||!da?va:8,Hf=tj.createImageData(m.tc,m.uc),Ab=0;256>Ab;Ab++){for(ac=
0;ac<va;ac++)for(var cn=m.Ge&&E&1&&ac>=va-2,dn=qd[ac<ve?W+Ab*ve+ac:da+Ab*ve+ac-ve],If=0;If<=J;If++)for(Oc=0;Oc<ua;Oc++){var uj=Oc<<J,vj=(ac<<J)+If,wj=cn||dn&128>>(8<=Oc&&192<=Ab&&223>=Ab?7:Oc)?z:bn;vl(Hf,uj,vj,wj);J&&vl(Hf,uj+1,vj,wj)}tj.putImageData(Hf,(Ab&15)*m.tc,(Ab>>4)*m.uc)}m.be[E]="#"+ea(z[0],2)+ea(z[1],2)+ea(z[2],2);m.Ch[E]=z;m.ag[E]=ue;m=!0}}a.xa[b]=x;return m}function wl(a){0<a.za||0<=a.ia?0>a.Ea&&(a.Ea=0):a.Ea=-1}
function rl(a){if(a.I){for(var b=10;15>=b;b++)if(null==a.D.ab[b])return;var c=a.D.ab[10],b=c&31,d=a.D.ab[11]&31,e=a.D.ab[9]&31,f=!1;a.D===a.B&&(f=!0,7!=e||4!=b||d||(d=7));if(c&32||b>d&&!f||b>e)xl(a);else{c=a.D.ab[15]+((a.D.ab[14]&63)<<8);a.ia!=c&&(xl(a),a.ia=c);d=d-b+1;if(a.td!=b||a.Gc!=d)a.td=b,a.Gc=d;a.Da=e+1;wl(a)}}}
function xl(a){if(0<=a.ia){if(void 0!==a.S){var b=a.S[a.ia];if(b&131072){var b=b&-131073,c=a.ia%a.H,d=a.ia/a.H|0;a.I&&a.xa[a.I]&&(a.Ga&&yl(a,c,d,b,a.Ga),yl(a,c,d,b));a.S[a.ia]=b}}a.ia=-1}}
function zl(a){var b,c=a.D;a.Zc=!1;var d=c.Hd[5];if(null!=d){b=1024;var e=0,f=c.Hd[3]&31;switch(d&3){case 0:if(f){e=32;switch(f&24){case 8:e=96;break;case 16:e=160;break;case 24:e=224}c.Hc=f&7}break;case 1:e=1;break;case 2:switch(f&24){default:e=2;break;case 8:e=98;break;case 16:e=162;break;case 24:e=226}break;case 3:a.Ra==ek&&(e=3,c.Hc=f&7)}d&8&&(b=1280);c=c.Be[4];null!=c&&(c&4||(b|=4096,e|=16),d&64&&(c&8&&(b|=16384,e|=4),a.Zc=!0));b|=e}return b}
@ -546,7 +546,7 @@ var sm={3:{jd:3,yd:0,name:aa.Fm},4:{jd:2,yd:1,name:aa.Dm},5:{jd:9,yd:7,name:aa.N
l.zb=function(a,b,c){var d=this;switch(b){case "listDisks":this.ka[b]=c;if(this.W){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.W?a.text>b.text?1:a.text<b.text?-1:0:a.value>b.value?1:a.value<b.value?-1:0});for(a=0;a<b.length;a++)c.options[a]=b[a]}c.onchange=function(){var a=d.ka.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){n("FDC option error: "+h.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}};return!0;case "descDisk":case "listDrives":return this.ka[b]=c,c.onchange=function(){var a=ca(c.value,10);null!=a&&tm(d,a)},!0;case "loadDrive":return this.ka[b]=c,c.onclick=function(){var a=d.ka.listDisks;a&&um(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[b]=c;c.onclick=function(){var a=d.ka.listDrives;a&&a.options&&d.B&&(a=ca(a.value,
10),(a=d.B[a])?(a=a.ta)?(a=za(pm(a),"octet-stream",!0,a.nh.replace(".json",".img")),n(a)):d.Ba("No diskette loaded in drive."):d.Ba("No diskette drive selected."))};return!0;case "mountDrive":if(!this.Y){c.parentNode.removeChild(c);break}this.ka[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;um(d,fa(b,!0),b,a)}return!1};return!0}return!1};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)};
l.pc=function(a,b,c,d){this.ha=b;this.A=c;this.Ia=d;this.ba=a;this.P=kb(a,"ChipSet");if((this.K=jc(this.ba,"autoMount")||this.K)&&"string"==typeof this.K)try{this.K=eval("("+this.K+")")}catch(e){n("FDC auto-mount error: "+e.message+" ("+this.K+")"),this.K=null}vm(this);Nb(b,this,wm);Pb(b,this,xm);ym(this,"None","",!0);this.Y&&ym(this,"Local Disk","?");ym(this,"Remote Disk","??");zm(this)||ab(this)};
l.Vb=function(a,b){if(!b){if(!a||!this.restore){if(this.reset(),this.ba.jg){this.C=[];for(var c=0;c<this.B.length;c++)Am(this,c,!0);zm(this,!0)}}else if(!this.restore(a))return!1;if(c=this.ka.listDrives){for(;c.firstChild;)c.removeChild(c.firstChild);c.value="";for(var d=0;d<this.Z;d++){var e=document.createElement("option");e.value=d;e.text=String.fromCharCode(65+d)+":";c.appendChild(e)}0<this.Z&&(c.value="0",tm(this,0))}}return!0};l.Ub=function(a){return a?this.save():!0};l.reset=function(){vm(this)};
l.save=function(){var a=new ce(this),b=0,c=[];c[b++]=this.Qa;c[b++]=0;c[b++]=this.aa;c[b++]=this.I;c[b++]=this.G;c[b++]=this.D;c[b++]=this.S;for(var d=b++,e=0,f=[],g=0;g<this.B.length;g++){var h=e++,k=this.B[g],m=0,p=[];p[m++]=k.kb;p[m++]=[k.name,k.ib,k.jb,k.eb,k.nb,k.oe,k.Hf,k.Ue,k.Ve];p[m++]=k.Ya;p[m++]=k.wd+100;p[m++]=k.xb;p[m++]=k.mb;p[m++]=k.xd;p[m++]=k.wb;p[m++]=k.Ua;p[m++]=k.me;p[m++]=k.ij;p[m]=k.Vd;f[h]=p}c[d]=f;d=b++;for(e=0;e<this.B.length;e++)f=this.B[e],f.ta&&Bm(this,f.Vd,f.ta);c[d]=this.C;
c[b++]=this.L;c[b]=this.H;C(a,0,c);return a.data()};l.restore=function(a){return vm(this,a[0])};
@ -557,7 +557,7 @@ function zm(a,b){b||(a.R=0);if(a.K)for(var c in a.K){var d=a.K[c],e=d.path,f;if(
function um(a,b,c,d){var e,f=a.ka.listDrives;if(f&&!isNaN(e=ca(f.value,10))&&0<=e&&e<a.B.length)if(c)if("?"==c)a.Ba('Use "Choose File" and "Mount" to select and load a local disk.');else{if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=fa(c)}for(;0>Cm(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){for(var f=a,g=c,h=void 0,h=0;h<f.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Am(a,
e,!1,!0)}}else Am(a,e);else a.Ba("Unable to load the selected drive")}function Cm(a,b,c,d,e,f){var g=a.B[b];if(d&&g.Vd!=d){Am(a,b,e,!0);if(g.Qc)return a.Ba("Drive "+b+" busy"),0;g.Qc=!0;e&&(g.Nd=!0,a.R++);g.me=!!f;return(new am(a,g,"preload")).load(c,d,f,a.Mh)?1:0}return-1}
l.Mh=function(a,b,c,d,e){var f;a.Qc=!1;b&&(f=b.info(),b&&f[0]>a.ib||f[1]>a.jb)&&(this.Ba('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Qa)),b=null);b?(a.ta=b,a.ij=c,a.Vd=d,Dm(this,c,d,b),f=b.info(),this.L|=128,this.Ba('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Qa),a.Nd||e),a.Hf=f[0],a.Ue=f[1],a.Ve=f[2],this.ba&&uc(this.ba)):a.me=!1;a.Nd&&(a.Nd=!1,--this.R||ab(this));tm(this,a.Qa)};
function ym(a,b,c){if((a=a.ka.listDisks)&&a.options){for(var d=0;d<a.options.length;d++)if(a.options[d].value==c)return;d=document.createElement("option");d.text=b;d.value=c;a.appendChild(d)}}
function ym(a,b,c,d){if((a=a.ka.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 tm(a,b){if(0<=b&&b<a.B.length){var c=a.B[b],d=a.ka.listDisks,e=a.ka.listDrives;if(d&&e&&d.options&&e.options&&(e=ca(e.value,10),c=c.me?"?":c.Vd,!isNaN(e)&&e==b)){for(e=0;e<d.options.length;e++)if(d.options[e].value==c){d.selectedIndex!=e&&(d.selectedIndex=e);break}e==d.options.length&&(d.selectedIndex=0)}}}function Am(a,b,c,d){var e=a.B[b];e.ta&&(Bm(a,e.Vd,e.ta),e.ij="",e.Vd="",e.ta=null,e.me=!1,a.L|=128,d||a.Ba("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||tm(a,b))}
function Dm(a,b,c,d){var e;for(e=0;e<a.C.length;e++)if(a.C[e][1]==c){d.restore(a.C[e][2]);return}a.C[e]=[b,c,[]]}function Bm(a,b,c){var d;for(d=0;d<a.C.length;d++)if(a.C[d][1]==b){a.C[d][2]=c.save();break}}l.Al=function(a,b){b&4?this.S&4||this.S&8&&this.P&&Te(this.P,6):vm(this);this.S=b};l.lk=function(){return 80};l.nk=function(){return this.aa};l.kk=function(){var a=0;this.G<this.D&&(a=this.I[this.G]);this.S&8&&this.P&&Se(this.P,6);++this.G>=this.D&&(this.aa&=-81,this.G=this.D=0);return a};
l.zl=function(a,b){this.D<this.I.length&&(this.I[this.D++]=b);var c=this.I[0]&31;if(void 0!==sm[c]&&this.D>=sm[c].jd){var d=!1;this.G=0;var c=Em(this),e,f,g,h,k,m=c&31;switch(m){case 3:Em(this);Em(this);Fm(this);break;case 4:f=Em(this);this.Qa=f&3;e=this.B[this.Qa];Fm(this);Gm(this,(e.kb&-16777216)>>>24);break;case 5:case 6:f=Em(this);d=f>>2&1;this.Qa=f&3;e=this.B[this.Qa];e.Ya=d;f=e.xb=Em(this);g=Em(this);h=e.mb=Em(this);k=Em(this);e.wb=128<<k;e.xd=Em(this);Em(this);Em(this);6==m?(m=e,m.kb=72,m.ta&&