Fixed recent problems introduced with my switch to addEventListener
This commit is contained in:
parent
2cb0be42f0
commit
743511d5db
14 changed files with 70 additions and 88 deletions
|
|
@ -661,7 +661,7 @@ Gv.prototype.yj=function(a,b){var c=null;if(this.pd)for(var d in this.pd){var e=
|
|||
function Ov(a){pb.call(this,"FDC",a,524288);this.dmaRead=Ov.prototype.kl;this.dmaWrite=Ov.prototype.ll;this.dmaFormat=Ov.prototype.Dl;this.L=Pv(a.autoMount);this.J=a.sortBy||"name";"none"==this.J&&(this.J=null);this.B=[];this.M=!Wa("Mobi")&&window&&"FileReader"in window}ba(Ov,pb);l=Ov.prototype;
|
||||
l.Cb=function(a,b,c){var d=this;switch(b){case "listDisks":this.na[b]=c;if(this.J){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.J?a.text.localeCompare(b.text):a.value.localeCompare(b.value)});for(a=0;a<b.length;a++)try{c.options[a]=b[a]}catch(e){break}}c.onchange=function(){var a=d.na.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){kb("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.na[b]=c,c.onchange=function(){var a=oa(c.value,10);null!=a&&Qv(d,a)},!0;case "loadDisk":return this.na[b]=c,c.onclick=function(){var a=d.na.listDisks;a&&Rv(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.M){c.parentNode.removeChild(c);break}this.na[b]=c;c.onclick=function(){var a=d.na.listDrives;a&&a.options&&d.A&&((a=d.A[oa(a.value,
|
||||
10)||0])?(a=a.sa)?(a=Za(Mv(a),"octet-stream",!0,a.Lg.replace(".json",".img")),kb(a)):d.Da("No diskette loaded in drive."):d.Da("No diskette drive selected."))};return!0;case "mountDisk":if(this.M)return this.na[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;Rv(d,ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
10)||0])?(a=a.sa)?(a=Za(Mv(a),"octet-stream",!0,a.Lg.replace(".json",".img")),kb(a)):d.Da("No diskette loaded in drive."):d.Da("No diskette drive selected."))};return!0;case "mountDisk":if(this.M)return this.na[b]=c,c.onchange=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;Rv(d,ta(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
l.uc=function(a,b,c,d){this.ka=b;this.H=c;this.ba=d;this.pa=a;this.W=Zb(a,"ChipSet");Pv(Bd(this.pa,"autoMount"),this.L);Sv(this);Qc(b,this,Tv);Uc(b,this,Uv);Vv(this,"None","",!0);this.M&&Vv(this,"Local Disk","?");Vv(this,"Remote Disk","??");Wv(this)||Lb(this)};function Pv(a,b){if(a){if("string"==typeof a)try{a=eval("("+a+")")}catch(d){kb("FDC auto-mount error: "+d.message+" ("+a+")"),a={}}}else a={};for(var c in a)b&&(b[c]=a[c]);return a}
|
||||
l.Xb=function(a,b){if(!b){if(!a){if(this.reset(),this.pa.O){this.B=[];for(a=0;a<this.A.length;a++)Xv(this,a,!0);Wv(this,!0)}}else if(!this.restore(a))return!1;if(a=this.na.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.N;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.N&&(a.value="0",Qv(this,0))}}return!0};l.Wb=function(a){return a?this.save():!0};l.reset=function(){Sv(this)};
|
||||
l.save=function(){var a=new Zf(this);a.set(0,Yv(this));return a.data()};l.restore=function(a){return Sv(this,a[0])};
|
||||
|
|
@ -672,8 +672,8 @@ function Yv(a){var b=0,c=[];c[b++]=a.Va;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a
|
|||
l.jj=function(a){var b;a=this.A[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};l.bl=function(a,b,c){if(a.sa){var d=a.sa.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.Gb=Math.floor(b/f),b%=f,a.Za=Math.floor(b/e),a.nb=b%e+1,a.vb=c*d[3],a.sb=fw,!0}return!1};
|
||||
function Wv(a,b){b||(a.K=0);for(var c in a.L){var d=a.L[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.na.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}if(e)if(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.na.listDisks)&&d.options)for(g=0;g<d.options.length;g++)if(h=d.options[g],h.value==e){d=h.text;break a}d=ta(e,!0)}!bw(a,f,d||"Unknown",e,!0)&&b&&Lb(a,!1)}else a.Da("Incorrect auto-mount settings for drive "+
|
||||
c+" ("+JSON.stringify(d)+")")}return!!a.K}
|
||||
function Rv(a,b,c,d){var e,f=a.na.listDrives;if(f&&!isNaN(e=oa(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Da('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=ta(c)}for(;0>bw(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Xv(a,e,!1,
|
||||
!0)}}else Xv(a,e);else a.Da("Unable to load the selected drive")}function bw(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.ue.toLowerCase()!=d.toLowerCase())){Xv(a,b,e,!0);if(g.Ne)return a.Da("Drive "+b+" busy"),0;g.Ne=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Pe=!!f;return(new Zu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
|
||||
function Rv(a,b,c,d){var e,f=a.na.listDrives;if(f&&!isNaN(e=oa(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.Da('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=ta(c)}for(;0>bw(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk and discard any changes.");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Xv(a,e,!1,!0)}}else Xv(a,e);else a.Da("Unable to load the selected drive")}
|
||||
function bw(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.ue.toLowerCase()!=d.toLowerCase())){Xv(a,b,e,!0);if(g.Ne)return a.Da("Drive "+b+" busy"),0;g.Ne=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Pe=!!f;return(new Zu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
|
||||
l.nj=function(a,b,c,d,e){var f;a.Ne=!1;b&&(f=b.info(),b&&f[0]>a.rb||f[1]>a.kb)&&(this.Da('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.Va)),b=null);b?(a.sa=b,a.al=c,a.ue=d,cw(this,c,d,b),f=b.info(),this.G|=gw,this.Da('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.Va),a.le||e),a.wg=f[0],a.Bf=f[1],a.Cf=f[2],this.pa&&this.pa.nd()):a.Pe=!1;a.le&&(a.le=!1,--this.K||Lb(this));Qv(this,a.Va)};
|
||||
function Vv(a,b,c,d){if((a=a.na.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 Qv(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.na.listDisks;a=a.na.listDrives;if(d&&a&&d.options&&a.options&&(a=oa(a.value,10),c=c.Pe?"?":c.ue,!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 Xv(a,b,c,d){var e=a.A[b];e.sa&&(ew(a,e.ue,e.sa),e.al="",e.ue="",e.sa=null,e.Pe=!1,a.G|=gw,d||a.Da("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Qv(a,b))}
|
||||
|
|
|
|||
|
|
@ -609,7 +609,7 @@ k.toJSON=function(){var a;a=0;for(var b;b=qs(this,a++);)ys(b);a=JSON.stringify(t
|
|||
function ys(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 hs=0;function zs(a){t.call(this,"FDC",a);this.dmaRead=zs.prototype.ak;this.dmaWrite=zs.prototype.bk;this.dmaFormat=zs.prototype.rk;this.L=As(a.autoMount);this.K=a.sortBy||"name";"none"==this.K&&(this.K=null);this.B=[];this.M=!Ka("Mobi")&&window&&"FileReader"in window}ba(zs,t);k=zs.prototype;
|
||||
k.xb=function(a,b,c){var d=this;switch(b){case "listDisks":this.ia[b]=c;if(this.K){b=[];for(a=0;a<c.options.length;a++)b.push(c.options[a]);b.sort(function(a,b){return"path"!=d.K?a.text.localeCompare(b.text):a.value.localeCompare(b.value)});for(a=0;a<b.length;a++)try{c.options[a]=b[a]}catch(e){break}}c.onchange=function(){var a=d.ia.descDisk,b=c.options[c.selectedIndex];if(a&&b){var g={};if(b=b.getAttribute("data-value"))try{g=eval("("+b+")")}catch(h){r("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.ia[b]=c,c.onchange=function(){var a=na(c.value,10);null!=a&&Bs(d,a)},!0;case "loadDisk":return this.ia[b]=c,c.onclick=function(){var a=d.ia.listDisks;a&&Cs(d,a.options[a.selectedIndex].text,a.value)},!0;case "saveDisk":if(!this.M){c.parentNode.removeChild(c);break}this.ia[b]=c;c.onclick=function(){var a=d.ia.listDrives;a&&a.options&&d.A&&((a=d.A[na(a.value,
|
||||
10)||0])?(a=a.sa)?(a=Na(xs(a),"octet-stream",!0,a.rh.replace(".json",".img")),r(a)):d.wa("No diskette loaded in drive."):d.wa("No diskette drive selected."))};return!0;case "mountDisk":if(this.M)return this.ia[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;Cs(d,pa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
10)||0])?(a=a.sa)?(a=Na(xs(a),"octet-stream",!0,a.rh.replace(".json",".img")),r(a)):d.wa("No diskette loaded in drive."):d.wa("No diskette drive selected."))};return!0;case "mountDisk":if(this.M)return this.ia[b]=c,c.onchange=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;Cs(d,pa(b,!0),b,a)}return!1},!0;c.parentNode.removeChild(c)}return!1};
|
||||
k.ic=function(a,b,c,d){this.ma=b;this.U=c;this.Ea=d;this.na=a;this.V=zb(a,"ChipSet");As(Pc(this.na,"autoMount"),this.L);Ds(this);nc(b,this,Es);qc(b,this,Fs);Gs(this,"None","",!0);this.M&&Gs(this,"Local Disk","?");Gs(this,"Remote Disk","??");Hs(this)||pb(this)};function As(a,b){if(a){if("string"==typeof a)try{a=eval("("+a+")")}catch(d){r("FDC auto-mount error: "+d.message+" ("+a+")"),a={}}}else a={};for(var c in a)b&&(b[c]=a[c]);return a}
|
||||
k.Ob=function(a,b){if(!b){if(!a){if(this.reset(),this.na.O){this.B=[];for(a=0;a<this.A.length;a++)Is(this,a,!0);Hs(this,!0)}}else if(!this.restore(a))return!1;if(a=this.ia.listDrives){for(;a.firstChild;)a.removeChild(a.firstChild);a.value="";for(b=0;b<this.O;b++){var c=document.createElement("option");c.value=b;c.text=String.fromCharCode(65+b)+":";a.appendChild(c)}0<this.O&&(a.value="0",Bs(this,0))}}return!0};k.Nb=function(a){return a?this.save():!0};k.reset=function(){Ds(this)};
|
||||
k.save=function(){var a=new Te(this);a.set(0,Js(this));return a.data()};k.restore=function(a){return Ds(this,a[0])};
|
||||
|
|
@ -619,8 +619,8 @@ q[y++];g.Ra=null;g.sa||(g.Sd="");var z=q[y++];102==z&&(z=!1);"boolean"==typeof z
|
|||
function Js(a){var b=0,c=[];c[b++]=a.La;c[b++]=0;c[b++]=a.Y;c[b++]=a.G;c[b++]=a.D;c[b++]=a.C;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,l=a.A[g],m=0,q=[];q[m++]=l.hb;q[m++]=[l.name,l.fb,l.gb,l.Za,l.lb,l.oe,l.Nf,l.Re,l.Se];q[m++]=l.Sa;q[m++]=l.sd+100;q[m++]=l.ub;q[m++]=l.kb;q[m++]=l.td;q[m++]=l.tb;q[m++]=l.Pa;q[m++]=l.ne;q[m++]=l.Sj;q[m]=l.Sd;f[h]=q}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&Qs(a,f.Sd,f.sa);c[d]=a.B;c[b++]=a.H;c[b]=a.F;return c}
|
||||
function Hs(a,b){b||(a.J=0);for(var c in a.L){var d=a.L[c],e;if(!(e=d.path))a:{if(e=d.name){var f=a.ia.listDisks;if(f&&f.options)for(var g=0;g<f.options.length;g++){var h=f.options[g];if(h.text==e){e=h.value;break a}}}e=""}if(e)if(f=c.charCodeAt(0)-65,0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.ia.listDisks)&&d.options)for(g=0;g<d.options.length;g++)if(h=d.options[g],h.value==e){d=h.text;break a}d=pa(e,!0)}!Ns(a,f,d||"Unknown",e,!0)&&b&&pb(a,!1)}else a.wa("Incorrect auto-mount settings for drive "+
|
||||
c+" ("+JSON.stringify(d)+")")}return!!a.J}
|
||||
function Cs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=na(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.wa('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=pa(c)}for(;0>Ns(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk.\n(WARNING: All disk changes will be discarded)");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Is(a,e,!1,
|
||||
!0)}}else Is(a,e);else a.wa("Unable to load the selected drive")}function Ns(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Sd.toLowerCase()!=d.toLowerCase())){Is(a,b,e,!0);if(g.le)return a.wa("Drive "+b+" busy"),0;g.le=!0;e&&(g.Gd=!0,a.J++);g.ne=!!f;return(new gs(a,g,"preload")).load(c,d,f,a.li)?1:0}return-1}
|
||||
function Cs(a,b,c,d){var e,f=a.ia.listDrives;if(f&&!isNaN(e=na(f.value,10))&&0<=e&&e<a.A.length)if(c)if("?"==c)a.wa('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=pa(c)}for(;0>Ns(a,e,b,c,!1,d)&&window.confirm("Click OK to reload the original disk and discard any changes.");){var f=a,g=c,h;for(h=0;h<f.B.length;h++)if(f.B[h][1]==g){f.B.splice(h,1);break}Is(a,e,!1,!0)}}else Is(a,e);else a.wa("Unable to load the selected drive")}
|
||||
function Ns(a,b,c,d,e,f){var g=a.A[b];if(d&&(d=d.replace("/disks/pc/","/disks/pcx86/"),g.Sd.toLowerCase()!=d.toLowerCase())){Is(a,b,e,!0);if(g.le)return a.wa("Drive "+b+" busy"),0;g.le=!0;e&&(g.Gd=!0,a.J++);g.ne=!!f;return(new gs(a,g,"preload")).load(c,d,f,a.li)?1:0}return-1}
|
||||
k.li=function(a,b,c,d,e){var f;a.le=!1;b&&(f=b.info(),b&&f[0]>a.fb||f[1]>a.gb)&&(this.wa('Diskette "'+c+'" too large for drive '+String.fromCharCode(65+a.La)),b=null);b?(a.sa=b,a.Sj=c,a.Sd=d,Os(this,c,d,b),f=b.info(),this.H|=Rs,this.wa('Mounted diskette "'+c+'" in drive '+String.fromCharCode(65+a.La),a.Gd||e),a.Nf=f[0],a.Re=f[1],a.Se=f[2],this.na&&bd(this.na)):a.ne=!1;a.Gd&&(a.Gd=!1,--this.J||pb(this));Bs(this,a.La)};
|
||||
function Gs(a,b,c,d){if((a=a.ia.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 Bs(a,b){if(0<=b&&b<a.A.length){var c=a.A[b],d=a.ia.listDisks;a=a.ia.listDrives;if(d&&a&&d.options&&a.options&&(a=na(a.value,10),c=c.ne?"?":c.Sd,!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 Is(a,b,c,d){var e=a.A[b];e.sa&&(Qs(a,e.Sd,e.sa),e.Sj="",e.Sd="",e.sa=null,e.ne=!1,a.H|=Rs,d||a.wa("Drive "+String.fromCharCode(65+b)+" unloaded",c),c||d||Bs(a,b))}
|
||||
|
|
|
|||
Loading…
Reference in a new issue