Fixed loading of older state files
This commit is contained in:
parent
e24ff3ae47
commit
ab5eb61b8d
11 changed files with 24 additions and 18 deletions
|
|
@ -25,8 +25,9 @@
|
|||
<manifest ref="/apps/pc/1981/visicalc/manifest.xml" disk="*"/>
|
||||
<manifest ref="/apps/pc/1982/esuite/manifest.xml" disk="*"/>
|
||||
</control>
|
||||
<control type="button" class="input" binding="loadDrive">Load</control>
|
||||
<control type="button" class="input" binding="loadDrive">Download</control>
|
||||
<control type="description" class="output" binding="descDisk" padleft="8px"/>
|
||||
<control type="file" class="input" binding="mountDrive" padtop="8px"/>
|
||||
</fdc>
|
||||
<chipset id="chipset" model="5160" sw1="01000001"/>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]'/>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<control type="button" class="input" binding="run">Run</control>
|
||||
</cpu>
|
||||
<keyboard ref="/devices/pc/keyboard/minimal.xml"/>
|
||||
<fdc id="fdcNEC" width="360px" pos="left" padleft="8px" padbottom="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"Executive Suite (1982)",path:"/apps/pc/1982/esuite/disk.json"}}'>
|
||||
<fdc id="fdcNEC" pos="right" padleft="8px" padbottom="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"Executive Suite (1982)",path:"/apps/pc/1982/esuite/disk.json"}}'>
|
||||
<control type="list" class="input" binding="listDrives"/>
|
||||
<control type="list" class="input" binding="listDisks">
|
||||
<disk path="">None</disk>
|
||||
|
|
@ -25,8 +25,9 @@
|
|||
<manifest ref="/apps/pc/1981/visicalc/manifest.xml" disk="*"/>
|
||||
<manifest ref="/apps/pc/1982/esuite/manifest.xml" disk="*"/>
|
||||
</control>
|
||||
<control type="button" class="input" binding="loadDrive">Load</control>
|
||||
<control type="description" class="output" binding="descDisk" padleft="8px"/>
|
||||
<control type="button" class="input" binding="loadDrive" padright="8px">Download</control>
|
||||
<control type="description" class="output" binding="descDisk" padright="8px"/>
|
||||
<control type="file" class="input" binding="mountDrive"/>
|
||||
</fdc>
|
||||
<chipset id="chipset" model="5160" sw1="01000001"/>
|
||||
<hdc id="hdcXT" drives='[{name:"10Mb Hard Disk",type:3}]'/>
|
||||
|
|
|
|||
|
|
@ -13,4 +13,4 @@ differentiate these disk images from those of the official MS-DOS 4.00, released
|
|||
The [IBM Model 5160](/devices/pc/machine/) machine configuration below boots MS-DOS 4.0M. To access the MS-DOS
|
||||
"Session Manager" after it's booted, tap the **Alt** key.
|
||||
|
||||
[IBM Model 5160](/devices/pc/machine/5160/cga/640kb/dos400m/ "PCjs:ibm5160:::debugger")
|
||||
[IBM Model 5160](/devices/pc/machine/5160/cga/640kb/dos400m/ "PCjs:ibm5160:::debugger")
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
<category>Operating System</category>
|
||||
<author>Microsoft</author>
|
||||
<releaseDate/>
|
||||
<machine href="/devices/pc/machine/5160/cga/640kb/dos400m/machine.xml"/>
|
||||
<disk id="disk01" size="368640" chs="40:2:9" img="private/MSDOS400M-DISK1.img" href="/disks/pc/dos/microsoft/4.0M/MSDOS400M-DISK1.json" md5="6349c61a7c74b0872a918d130c8080a4" md5json="e9db9a543fc26b5fc6c7c03586eb05b2">
|
||||
<name>MS-DOS 4.0M (Disk 1)</name>
|
||||
</disk>
|
||||
|
|
@ -18,4 +17,4 @@
|
|||
<name>Disk 2 with unpatched LINK.EXE</name>
|
||||
</other>
|
||||
<notes>The designation "4.0M" is not an official version number; we use it only to differentiate this version of MS-DOS from the "non-multitasking" version.</notes>
|
||||
</manifest>
|
||||
</manifest>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<fdc id="fdcNEC" width="340px" pos="left" padleft="8px" padbottom="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}'>
|
||||
<fdc id="fdcNEC" pos="left" padleft="8px" padbottom="8px" automount='{A:{name:"PC-DOS 2.00 (Disk 1)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK1.json"}, B:{name:"PC-DOS 2.00 (Disk 2)",path:"/disks/pc/dos/ibm/2.00/PCDOS200-DISK2.json"}}'>
|
||||
<control type="list" class="input" binding="listDrives"/>
|
||||
<control type="list" class="input" binding="listDisks">
|
||||
<disk path="">None</disk>
|
||||
|
|
|
|||
|
|
@ -604,7 +604,7 @@ k.Yb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.Hd(
|
|||
k.Hd=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.gb=a[b++];b++;this.Da=a[b++];this.cc=a[b++];this.tb=a[b++];this.eb=a[b++];this.zf=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.uc=c);void 0===this.Ea&&(this.Qi=4,this.oa&&(this.Qi=Fi(this.oa)),this.Ea=Array(4));for(c=0;c<this.Ea.length;c++){var f=this.Ea[c];if(void 0===f){var f=this.Ea[c]={},g;if(this.oa)a:{g=this.oa;if(c<Fi(g)){if(!g.Vd){g=360;break a}if(c<g.Vd.length){g=g.Vd[c];break a}}g=0}else g=0;switch(g){case 160:case 180:f.sb=
|
||||
1;default:f.rb=40;f.xb=9;break;case 720:f.rb=80;f.xb=9;break;case 1200:f.rb=80;f.xb=15;break;case 1440:f.rb=80,f.xb=18}}this.Gi(f,c,e[c])||(d=!1)}this.se=a[b++]||0;this.Ul=a[b]||0;return d};k.Nj=function(){var a=0,b=[];b[a++]=this.gb;b[a++]=0;b[a++]=this.Da;b[a++]=this.cc;b[a++]=this.tb;b[a++]=this.eb;b[a++]=this.zf;b[a++]=this.Pj();for(var c=a++,d=0;d<this.Ea.length;d++){var e=this.Ea[d];e.za&&yl(this,e.Ve,e.za)}b[c]=this.uc;b[a++]=this.se;b[a]=this.Ul;return b};
|
||||
k.Gi=function(a,b,c){var d=0,e=!0;a.gb=b;a.Cc=a.lf=!1;void 0===c&&(c=[192,!0,0,2,0]);"boolean"==typeof c[1]&&(c[1]=["Floppy Drive",a.rb||40,a.sb||c[3],a.xb||9,a.ib||512,c[1],a.Ch,a.pg,a.qg]);a.Ya=c[d++];var f=c[d++];a.name=f[0];a.rb=f[1];a.sb=f[2];a.xb=f[3];a.ib=f[4];a.mf=f[5];(a.Ch=f[6])?(a.pg=f[7],a.qg=f[8]):(a.Ch=a.rb,a.pg=a.sb,a.qg=a.xb);a.Na=c[d++];a.ae=c[d++];a.mb=c[d++];a.ae=100<=a.ae?a.ae-100:a.ae-a.mb;a.Wa=c[d++];a.ce=c[d++];a.cb=c[d++];a.ab=c[d++];a.Sa=null;a.za||(a.Ve="");var g=c[d++];
|
||||
"boolean"==typeof g?(f=c[d++],c=c[d],g?(d=this.Ea[b],xl(this,b,!0,!0),d.lf=!0,b=new el(this,d,"preload"),this.qk(d,b,f,c)):zl(this,b,f,c,!0)?a.za&&Al(this,f,c,a.za):this.Ta(!1)):void 0!==g&&a.za&&0>a.za.restore(g)&&(e=!1);e&&a.za&&void 0!==a.ab&&(a.Sa=a.za.seek(a.mb,a.Na,a.Wa));return e};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b};
|
||||
102==g&&(g=!1);"boolean"==typeof g?(f=c[d++],c=c[d],g?(d=this.Ea[b],xl(this,b,!0,!0),d.lf=!0,b=new el(this,d,"preload"),this.qk(d,b,f,c)):zl(this,b,f,c,!0)?a.za&&Al(this,f,c,a.za):this.Ta(!1)):void 0!==g&&a.za&&0>a.za.restore(g)&&(e=!1);e&&a.za&&void 0!==a.ab&&(a.Sa=a.za.seek(a.mb,a.Na,a.Wa));return e};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b};
|
||||
k.Oj=function(a){var b=0,c=[];c[b++]=a.Ya;c[b++]=[a.name,a.rb,a.sb,a.xb,a.ib,a.mf,a.Ch,a.pg,a.qg];c[b++]=a.Na;c[b++]=a.ae+100;c[b++]=a.mb;c[b++]=a.Wa;c[b++]=a.ce;c[b++]=a.cb;c[b++]=a.ab;c[b++]=a.lf;c[b++]=a.Zl;c[b]=a.Ve;return c};k.nk=function(a){var b;a=this.Ea[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};k.bm=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.mb=Math.floor(b/f),b%=f,a.Na=Math.floor(b/e),a.Wa=b%e+1,a.cb=c*d[3],a.Ya=0,!0}return!1};
|
||||
k.Pf=function(a){a||(this.Ee=0);if(this.Ie)for(var b in this.Ie){var c=this.Ie[b];if(c.name&&c.path){var d=b.charCodeAt(0)-65;if(0<=d&&d<this.Ea.length){!zl(this,d,c.name,c.path,!0)&&a&&this.Ta(!1);continue}}this.Ja("Unrecognized auto-mount specification for drive "+b)}return!!this.Ee};
|
||||
function ul(a,b,c,d){var e,f=a.ya.listDrives;if(f&&!isNaN(e=parseInt(f.value,10))&&0<=e&&e<a.Ea.length)if(c){if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=fa(c);a.da("Attempting to load "+c+' as "'+b+'"')}for(a.da("loading disk "+c+"...");zl(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.uc.length;h++)if(f.uc[h][1]==g){f.uc.splice(h,1);break}xl(a,e,
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@ k.Pb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.gd(
|
|||
k.gd=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.Wa=a[b++];b++;this.wa=a[b++];this.Sb=a[b++];this.pb=a[b++];this.$a=a[b++];this.Re=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.ic=c);void 0===this.xa&&(this.bi=4,this.ja&&(this.bi=Hh(this.ja)),this.xa=Array(4));for(c=0;c<this.xa.length;c++){var f=this.xa[c];if(void 0===f){var f=this.xa[c]={},h;if(this.ja)a:{h=this.ja;if(c<Hh(h)){if(!h.pd){h=360;break a}if(c<h.pd.length){h=h.pd[c];break a}}h=0}else h=0;switch(h){case 160:case 180:f.gb=
|
||||
1;default:f.fb=40;f.lb=9;break;case 720:f.fb=80;f.lb=9;break;case 1200:f.fb=80;f.lb=15;break;case 1440:f.fb=80,f.lb=18}}this.Rh(f,c,e[c])||(d=!1)}this.Ld=a[b++]||0;this.Zk=a[b]||0;return d};k.Yi=function(){var a=0,b=[];b[a++]=this.Wa;b[a++]=0;b[a++]=this.wa;b[a++]=this.Sb;b[a++]=this.pb;b[a++]=this.$a;b[a++]=this.Re;b[a++]=this.$i();for(var c=a++,d=0;d<this.xa.length;d++){var e=this.xa[d];e.ta&&Vj(this,e.pe,e.ta)}b[c]=this.ic;b[a++]=this.Ld;b[a]=this.Zk;return b};
|
||||
k.Rh=function(a,b,c){var d=0,e=!0;a.Wa=b;a.uc=a.Fe=!1;void 0===c&&(c=[192,!0,0,2,0]);"boolean"==typeof c[1]&&(c[1]=["Floppy Drive",a.fb||40,a.gb||c[3],a.lb||9,a.Xa||512,c[1],a.Mg,a.Bf,a.Cf]);a.Sa=c[d++];var f=c[d++];a.name=f[0];a.fb=f[1];a.gb=f[2];a.lb=f[3];a.Xa=f[4];a.Ge=f[5];(a.Mg=f[6])?(a.Bf=f[7],a.Cf=f[8]):(a.Mg=a.fb,a.Bf=a.gb,a.Cf=a.lb);a.Ja=c[d++];a.rd=c[d++];a.ib=c[d++];a.rd=100<=a.rd?a.rd-100:a.rd-a.ib;a.Va=c[d++];a.td=c[d++];a.eb=c[d++];a.Ya=c[d++];a.Ka=null;a.ta||(a.pe="");var h=c[d++];
|
||||
"boolean"==typeof h?(f=c[d++],c=c[d],h?(d=this.xa[b],Uj(this,b,!0,!0),d.Fe=!0,b=new Dj(this,d,"preload"),this.zj(d,b,f,c)):Wj(this,b,f,c,!0)?a.ta&&Xj(this,f,c,a.ta):this.Ma(!1)):void 0!==h&&a.ta&&0>a.ta.restore(h)&&(e=!1);e&&a.ta&&void 0!==a.Ya&&(a.Ka=a.ta.seek(a.ib,a.Ja,a.Va));return e};k.$i=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Zi(this.xa[c]);return b};
|
||||
102==h&&(h=!1);"boolean"==typeof h?(f=c[d++],c=c[d],h?(d=this.xa[b],Uj(this,b,!0,!0),d.Fe=!0,b=new Dj(this,d,"preload"),this.zj(d,b,f,c)):Wj(this,b,f,c,!0)?a.ta&&Xj(this,f,c,a.ta):this.Ma(!1)):void 0!==h&&a.ta&&0>a.ta.restore(h)&&(e=!1);e&&a.ta&&void 0!==a.Ya&&(a.Ka=a.ta.seek(a.ib,a.Ja,a.Va));return e};k.$i=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Zi(this.xa[c]);return b};
|
||||
k.Zi=function(a){var b=0,c=[];c[b++]=a.Sa;c[b++]=[a.name,a.fb,a.gb,a.lb,a.Xa,a.Ge,a.Mg,a.Bf,a.Cf];c[b++]=a.Ja;c[b++]=a.rd+100;c[b++]=a.ib;c[b++]=a.Va;c[b++]=a.td;c[b++]=a.eb;c[b++]=a.Ya;c[b++]=a.Fe;c[b++]=a.dl;c[b]=a.pe;return c};k.bf=function(a){a||(this.Zd=0);if(this.ce)for(var b in this.ce){var c=this.ce[b];if(c.name&&c.path){var d=b.charCodeAt(0)-65;if(0<=d&&d<this.xa.length){!Wj(this,d,c.name,c.path,!0)&&a&&this.Ma(!1);continue}}this.ya("Unrecognized auto-mount specification for drive "+b)}return!!this.Zd};
|
||||
function Rj(a,b,c,d){var e,f=a.sa.listDrives;if(f&&!isNaN(e=parseInt(f.value,10))&&0<=e&&e<a.xa.length)if(c){if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=da(c);a.Zb("Attempting to load "+c+' as "'+b+'"')}for(a.Zb("loading disk "+c+"...");Wj(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,h=c,g=void 0,g=0;g<f.ic.length;g++)if(f.ic[g][1]==h){f.ic.splice(g,1);break}Uj(a,e,
|
||||
!1,!0)}}else Uj(a,e);else a.ya("Nothing to load")}function Wj(a,b,c,d,e,f){var h=a.xa[b];if(d&&h.pe!=d){Uj(a,b,e,!0);if(h.uc)return a.ya("Drive "+b+" busy"),!0;h.uc=!0;e&&(h.ge=!0,a.Zd++);h.Fe=!!f;(new Dj(a,h,"preload")).load(c,d,f,a.zj);return!1}return!0}
|
||||
|
|
|
|||
|
|
@ -166,11 +166,15 @@ var aMachineFileTypes = {
|
|||
var asNonDirectories = [
|
||||
"COPYING",
|
||||
"LICENSE",
|
||||
"README"
|
||||
"README",
|
||||
"makefile"
|
||||
];
|
||||
|
||||
var asExtsPlainText = [
|
||||
"map"
|
||||
"65v",
|
||||
"bas",
|
||||
"map",
|
||||
"txt"
|
||||
];
|
||||
|
||||
/*
|
||||
|
|
@ -215,7 +219,6 @@ var asFilesNonServed = [
|
|||
"debug",
|
||||
"lib",
|
||||
"logs",
|
||||
"makefile",
|
||||
"my_modules",
|
||||
"node_modules",
|
||||
"node.log",
|
||||
|
|
@ -440,7 +443,7 @@ HTMLOut.filter = function(req, res, next)
|
|||
var i;
|
||||
var sPath = path.join(sServerRoot, req.path);
|
||||
var sBaseName = path.basename(req.path);
|
||||
var sBaseExt = ((i = sBaseName.lastIndexOf('.')) > 0? sBaseName.substr(i+1) : "");
|
||||
var sBaseExt = ((i = sBaseName.lastIndexOf('.')) > 0? sBaseName.substr(i+1) : "").toLowerCase();
|
||||
var sTrailingChar = req.path.slice(-1);
|
||||
|
||||
if (!fServerDebug && !net.hasParm(net.GORT_COMMAND, net.GORT_DEBUG, req)) {
|
||||
|
|
@ -531,7 +534,7 @@ HTMLOut.filter = function(req, res, next)
|
|||
* folders with trailing slashes.
|
||||
*/
|
||||
if (asNonDirectories.indexOf(sBaseName) < 0) {
|
||||
if (sTrailingChar != '/' || sBaseName.match(/\.[^0-9]+[^Ma-z]?$/)) {
|
||||
if (sTrailingChar != '/') {
|
||||
HTMLOut.logDebug('HTMLOut.filter("' + sBaseName + '"): passing static file request to next()');
|
||||
next();
|
||||
return;
|
||||
|
|
@ -1052,7 +1055,7 @@ HTMLOut.prototype.getDirList = function(sToken, sIndent, aParms)
|
|||
var fDir = false;
|
||||
if (sURL == '/' || sBaseName == "..") {
|
||||
fDir = true;
|
||||
} else if (asNonDirectories.indexOf(sBaseName) < 0 && (iExt < 0 || sBaseName.match(/\.[0-9]+[Ma-z]?$/))) {
|
||||
} else if (asNonDirectories.indexOf(sBaseName) < 0 && (iExt < 0 || sBaseName.match(/\.[0-9]+[Ma-c]?$/))) {
|
||||
fDir = true;
|
||||
sURL += '/';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -931,6 +931,8 @@ FDC.prototype.initDrive = function(drive, iDrive, data)
|
|||
}
|
||||
|
||||
var deltas = data[i++];
|
||||
if (deltas == 102) deltas = false; // v1.02 backward-compatibility
|
||||
|
||||
if (typeof deltas == "boolean") {
|
||||
var fLocal = deltas;
|
||||
var sDisketteName = data[i++];
|
||||
|
|
|
|||
|
|
@ -604,7 +604,7 @@ k.Yb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.Hd(
|
|||
k.Hd=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.gb=a[b++];b++;this.Da=a[b++];this.cc=a[b++];this.tb=a[b++];this.eb=a[b++];this.zf=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.uc=c);void 0===this.Ea&&(this.Qi=4,this.oa&&(this.Qi=Fi(this.oa)),this.Ea=Array(4));for(c=0;c<this.Ea.length;c++){var f=this.Ea[c];if(void 0===f){var f=this.Ea[c]={},g;if(this.oa)a:{g=this.oa;if(c<Fi(g)){if(!g.Vd){g=360;break a}if(c<g.Vd.length){g=g.Vd[c];break a}}g=0}else g=0;switch(g){case 160:case 180:f.sb=
|
||||
1;default:f.rb=40;f.xb=9;break;case 720:f.rb=80;f.xb=9;break;case 1200:f.rb=80;f.xb=15;break;case 1440:f.rb=80,f.xb=18}}this.Gi(f,c,e[c])||(d=!1)}this.se=a[b++]||0;this.Ul=a[b]||0;return d};k.Nj=function(){var a=0,b=[];b[a++]=this.gb;b[a++]=0;b[a++]=this.Da;b[a++]=this.cc;b[a++]=this.tb;b[a++]=this.eb;b[a++]=this.zf;b[a++]=this.Pj();for(var c=a++,d=0;d<this.Ea.length;d++){var e=this.Ea[d];e.za&&yl(this,e.Ve,e.za)}b[c]=this.uc;b[a++]=this.se;b[a]=this.Ul;return b};
|
||||
k.Gi=function(a,b,c){var d=0,e=!0;a.gb=b;a.Cc=a.lf=!1;void 0===c&&(c=[192,!0,0,2,0]);"boolean"==typeof c[1]&&(c[1]=["Floppy Drive",a.rb||40,a.sb||c[3],a.xb||9,a.ib||512,c[1],a.Ch,a.pg,a.qg]);a.Ya=c[d++];var f=c[d++];a.name=f[0];a.rb=f[1];a.sb=f[2];a.xb=f[3];a.ib=f[4];a.mf=f[5];(a.Ch=f[6])?(a.pg=f[7],a.qg=f[8]):(a.Ch=a.rb,a.pg=a.sb,a.qg=a.xb);a.Na=c[d++];a.ae=c[d++];a.mb=c[d++];a.ae=100<=a.ae?a.ae-100:a.ae-a.mb;a.Wa=c[d++];a.ce=c[d++];a.cb=c[d++];a.ab=c[d++];a.Sa=null;a.za||(a.Ve="");var g=c[d++];
|
||||
"boolean"==typeof g?(f=c[d++],c=c[d],g?(d=this.Ea[b],xl(this,b,!0,!0),d.lf=!0,b=new el(this,d,"preload"),this.qk(d,b,f,c)):zl(this,b,f,c,!0)?a.za&&Al(this,f,c,a.za):this.Ta(!1)):void 0!==g&&a.za&&0>a.za.restore(g)&&(e=!1);e&&a.za&&void 0!==a.ab&&(a.Sa=a.za.seek(a.mb,a.Na,a.Wa));return e};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b};
|
||||
102==g&&(g=!1);"boolean"==typeof g?(f=c[d++],c=c[d],g?(d=this.Ea[b],xl(this,b,!0,!0),d.lf=!0,b=new el(this,d,"preload"),this.qk(d,b,f,c)):zl(this,b,f,c,!0)?a.za&&Al(this,f,c,a.za):this.Ta(!1)):void 0!==g&&a.za&&0>a.za.restore(g)&&(e=!1);e&&a.za&&void 0!==a.ab&&(a.Sa=a.za.seek(a.mb,a.Na,a.Wa));return e};k.Pj=function(){for(var a=0,b=[],c=0;c<this.Ea.length;c++)b[a++]=this.Oj(this.Ea[c]);return b};
|
||||
k.Oj=function(a){var b=0,c=[];c[b++]=a.Ya;c[b++]=[a.name,a.rb,a.sb,a.xb,a.ib,a.mf,a.Ch,a.pg,a.qg];c[b++]=a.Na;c[b++]=a.ae+100;c[b++]=a.mb;c[b++]=a.Wa;c[b++]=a.ce;c[b++]=a.cb;c[b++]=a.ab;c[b++]=a.lf;c[b++]=a.Zl;c[b]=a.Ve;return c};k.nk=function(a){var b;a=this.Ea[a];if(void 0!==a){b={};for(var c in a)b[c]=a[c]}return b};k.bm=function(a,b,c){if(a.za){var d=a.za.info(),e=d[2],f=d[1]*e;if(b+c<=d[0]*f)return a.mb=Math.floor(b/f),b%=f,a.Na=Math.floor(b/e),a.Wa=b%e+1,a.cb=c*d[3],a.Ya=0,!0}return!1};
|
||||
k.Pf=function(a){a||(this.Ee=0);if(this.Ie)for(var b in this.Ie){var c=this.Ie[b];if(c.name&&c.path){var d=b.charCodeAt(0)-65;if(0<=d&&d<this.Ea.length){!zl(this,d,c.name,c.path,!0)&&a&&this.Ta(!1);continue}}this.Ja("Unrecognized auto-mount specification for drive "+b)}return!!this.Ee};
|
||||
function ul(a,b,c,d){var e,f=a.ya.listDrives;if(f&&!isNaN(e=parseInt(f.value,10))&&0<=e&&e<a.Ea.length)if(c){if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=fa(c);a.da("Attempting to load "+c+' as "'+b+'"')}for(a.da("loading disk "+c+"...");zl(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.uc.length;h++)if(f.uc[h][1]==g){f.uc.splice(h,1);break}xl(a,e,
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@ k.Pb=function(a){return a&&this.save?this.save():!0};k.reset=function(){this.gd(
|
|||
k.gd=function(a){var b=0,c,d=!0;void 0===a&&(a=[0,0,128,Array(9),0,0,0,[]]);this.Wa=a[b++];b++;this.wa=a[b++];this.Sb=a[b++];this.pb=a[b++];this.$a=a[b++];this.Re=a[b++];var e=a[b++];c=a[b++];null!=c&&(this.ic=c);void 0===this.xa&&(this.bi=4,this.ja&&(this.bi=Hh(this.ja)),this.xa=Array(4));for(c=0;c<this.xa.length;c++){var f=this.xa[c];if(void 0===f){var f=this.xa[c]={},h;if(this.ja)a:{h=this.ja;if(c<Hh(h)){if(!h.pd){h=360;break a}if(c<h.pd.length){h=h.pd[c];break a}}h=0}else h=0;switch(h){case 160:case 180:f.gb=
|
||||
1;default:f.fb=40;f.lb=9;break;case 720:f.fb=80;f.lb=9;break;case 1200:f.fb=80;f.lb=15;break;case 1440:f.fb=80,f.lb=18}}this.Rh(f,c,e[c])||(d=!1)}this.Ld=a[b++]||0;this.Zk=a[b]||0;return d};k.Yi=function(){var a=0,b=[];b[a++]=this.Wa;b[a++]=0;b[a++]=this.wa;b[a++]=this.Sb;b[a++]=this.pb;b[a++]=this.$a;b[a++]=this.Re;b[a++]=this.$i();for(var c=a++,d=0;d<this.xa.length;d++){var e=this.xa[d];e.ta&&Vj(this,e.pe,e.ta)}b[c]=this.ic;b[a++]=this.Ld;b[a]=this.Zk;return b};
|
||||
k.Rh=function(a,b,c){var d=0,e=!0;a.Wa=b;a.uc=a.Fe=!1;void 0===c&&(c=[192,!0,0,2,0]);"boolean"==typeof c[1]&&(c[1]=["Floppy Drive",a.fb||40,a.gb||c[3],a.lb||9,a.Xa||512,c[1],a.Mg,a.Bf,a.Cf]);a.Sa=c[d++];var f=c[d++];a.name=f[0];a.fb=f[1];a.gb=f[2];a.lb=f[3];a.Xa=f[4];a.Ge=f[5];(a.Mg=f[6])?(a.Bf=f[7],a.Cf=f[8]):(a.Mg=a.fb,a.Bf=a.gb,a.Cf=a.lb);a.Ja=c[d++];a.rd=c[d++];a.ib=c[d++];a.rd=100<=a.rd?a.rd-100:a.rd-a.ib;a.Va=c[d++];a.td=c[d++];a.eb=c[d++];a.Ya=c[d++];a.Ka=null;a.ta||(a.pe="");var h=c[d++];
|
||||
"boolean"==typeof h?(f=c[d++],c=c[d],h?(d=this.xa[b],Uj(this,b,!0,!0),d.Fe=!0,b=new Dj(this,d,"preload"),this.zj(d,b,f,c)):Wj(this,b,f,c,!0)?a.ta&&Xj(this,f,c,a.ta):this.Ma(!1)):void 0!==h&&a.ta&&0>a.ta.restore(h)&&(e=!1);e&&a.ta&&void 0!==a.Ya&&(a.Ka=a.ta.seek(a.ib,a.Ja,a.Va));return e};k.$i=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Zi(this.xa[c]);return b};
|
||||
102==h&&(h=!1);"boolean"==typeof h?(f=c[d++],c=c[d],h?(d=this.xa[b],Uj(this,b,!0,!0),d.Fe=!0,b=new Dj(this,d,"preload"),this.zj(d,b,f,c)):Wj(this,b,f,c,!0)?a.ta&&Xj(this,f,c,a.ta):this.Ma(!1)):void 0!==h&&a.ta&&0>a.ta.restore(h)&&(e=!1);e&&a.ta&&void 0!==a.Ya&&(a.Ka=a.ta.seek(a.ib,a.Ja,a.Va));return e};k.$i=function(){for(var a=0,b=[],c=0;c<this.xa.length;c++)b[a++]=this.Zi(this.xa[c]);return b};
|
||||
k.Zi=function(a){var b=0,c=[];c[b++]=a.Sa;c[b++]=[a.name,a.fb,a.gb,a.lb,a.Xa,a.Ge,a.Mg,a.Bf,a.Cf];c[b++]=a.Ja;c[b++]=a.rd+100;c[b++]=a.ib;c[b++]=a.Va;c[b++]=a.td;c[b++]=a.eb;c[b++]=a.Ya;c[b++]=a.Fe;c[b++]=a.dl;c[b]=a.pe;return c};k.bf=function(a){a||(this.Zd=0);if(this.ce)for(var b in this.ce){var c=this.ce[b];if(c.name&&c.path){var d=b.charCodeAt(0)-65;if(0<=d&&d<this.xa.length){!Wj(this,d,c.name,c.path,!0)&&a&&this.Ma(!1);continue}}this.ya("Unrecognized auto-mount specification for drive "+b)}return!!this.Zd};
|
||||
function Rj(a,b,c,d){var e,f=a.sa.listDrives;if(f&&!isNaN(e=parseInt(f.value,10))&&0<=e&&e<a.xa.length)if(c){if("??"==c){c=window.prompt("Enter the URL of a remote disk image.","")||"";if(!c)return;b=da(c);a.Zb("Attempting to load "+c+' as "'+b+'"')}for(a.Zb("loading disk "+c+"...");Wj(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,h=c,g=void 0,g=0;g<f.ic.length;g++)if(f.ic[g][1]==h){f.ic.splice(g,1);break}Uj(a,e,
|
||||
!1,!0)}}else Uj(a,e);else a.ya("Nothing to load")}function Wj(a,b,c,d,e,f){var h=a.xa[b];if(d&&h.pe!=d){Uj(a,b,e,!0);if(h.uc)return a.ya("Drive "+b+" busy"),!0;h.uc=!0;e&&(h.ge=!0,a.Zd++);h.Fe=!!f;(new Dj(a,h,"preload")).load(c,d,f,a.zj);return!1}return!0}
|
||||
|
|
|
|||
Loading…
Reference in a new issue