Added more demo links on the home page, switched nearly all machines over to the complete diskette library (instead of just a few samples), added the ability to autoMount disketttes by name OR by path, and updated the Dual Display IBM PC with a newer version of DOS along with details on toggling the active display

This commit is contained in:
Jeff Parsons 2017-06-24 10:39:26 -07:00 committed by Jeff Parsons
commit a9b6feb377
28 changed files with 125 additions and 45 deletions

View file

@ -670,7 +670,8 @@ function Rv(a,b){var c=0,d,e=!0;b||(b=[0,0,Yv,Array(9),0,0,0,[]]);a.Va=b[c++];c+
p[v++];g.cb=null;g.sa||(g.ue="");var E=p[v++];102==E&&(E=!1);"boolean"==typeof E?(u=p[v++],p=p[v],E?(v=k.A[m],Wv(k,m,!0,!0),v.Oe=!0,m=new Yu(k,v,"preload"),k.nj(v,m,u,p,!0)):aw(k,m,u,p,!0)?g.sa&&p&&bw(k,u,p,g.sa):Lb(k,!1)):void 0!==E&&g.sa&&0>g.sa.restore(E)&&(h=!1);h&&g.sa&&void 0!==g.Ta&&(g.cb=g.sa.seek(g.Gb,g.Za,g.mb));h||(e=!1)}a.G=b[c++]||0;a.Zb=b[c]||cw;return e}
function Xv(a){var b=0,c=[];c[b++]=a.Va;c[b++]=0;c[b++]=a.fa;c[b++]=a.F;c[b++]=a.D;c[b++]=a.B;c[b++]=a.I;for(var d=b++,e=0,f=[],g=0;g<a.A.length;g++){var h=e++,k=a.A[g],m=0,p=[];p[m++]=k.rb;p[m++]=[k.name,k.qb,k.kb,k.$a,k.Na,k.Pe,k.wg,k.Bf,k.Cf];p[m++]=k.Za;p[m++]=k.Td+100;p[m++]=k.Gb;p[m++]=k.mb;p[m++]=k.Ud;p[m++]=k.ub;p[m++]=k.Ta;p[m++]=k.Oe;p[m++]=k.al;p[m]=k.ue;f[h]=p}c[d]=f;d=b++;for(e=0;e<a.A.length;e++)f=a.A[e],f.sa&&dw(a,f.ue,f.sa);c[d]=a.C;c[b++]=a.G;c[b]=a.Zb;return c}
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.mb=b%e+1,a.ub=c*d[3],a.rb=ew,!0}return!1};
function Vv(a,b){b||(a.K=0);for(var c in a.L){var d=a.L[c],e=d.path||"";if(e){var f=c.charCodeAt(0)-65;if(0<=f&&f<a.A.length){if(!(d=d.name))a:{if((d=a.na.listDisks)&&d.options)for(var g=0;g<d.options.length;g++){var h=d.options[g];if(h.value==e){d=h.text;break a}}d=ta(e,!0)}!aw(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 Vv(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)}!aw(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 Qv(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>aw(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.C.length;h++)if(f.C[h][1]==g){f.C.splice(h,1);break}Wv(a,e,!1,
!0)}}else Wv(a,e);else a.Da("Unable to load the selected drive")}function aw(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())){Wv(a,b,e,!0);if(g.Me)return a.Da("Drive "+b+" busy"),0;g.Me=!0;e&&(g.le=!0,a.K++,t(a)&&Ob(a,"loading diskette '"+c+"'"));g.Oe=!!f;return(new Yu(a,g,"preload")).load(c,d,f,a.nj)?1:0}return-1}
l.nj=function(a,b,c,d,e){var f;a.Me=!1;b&&(f=b.info(),b&&f[0]>a.qb||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,bw(this,c,d,b),f=b.info(),this.G|=fw,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.Oe=!1;a.le&&(a.le=!1,--this.K||Lb(this));Pv(this,a.Va)};