Fixed autoMount overrides (formerly, machines that wanted to override the diskette autoMount settings for a machine would set "autoMount: ''", but that was a sledgehammer solution, especially when the goal was merely to prevent a diskette from being loaded in drive A; the preferred solution now is to set "autoMount: A: None", allowing the rest of the machine's autoMount settings, if any, to remain intact)

This commit is contained in:
Jeff Parsons 2017-06-17 21:30:03 -07:00 • committed by Jeff Parsons
commit 6d019e7d9d
10 changed files with 28 additions and 20 deletions

View file

@ -8,7 +8,9 @@ machines:
state: deskpro386.json
config: /devices/pcx86/machine/compaq/deskpro386/vga/2048kb/machine.xml
drives: '[{name:"20Mb Hard Disk",type:2,path:"http://archive.pcjs.org/disks/pcx86/fixed/20mb/COMPAQ310-WIN386201-VGA.json"}]'
autoMount: ''
autoMount:
A:
name: None
---
Microsoft Windows/386 2.0 existed as the following "point releases":

View file

@ -7,7 +7,9 @@ machines:
id: ibm5170-win300
config: /devices/pcx86/machine/5170/ega/1152kb/rev3/machine.xml
drives: '[{name:"20Mb Hard Disk",type:2,path:"http://archive.pcjs.org/disks/pcx86/fixed/20mb/PCDOS320-WIN300-EGA.json"}]'
autoMount: ''
autoMount:
A:
name: None
---
Microsoft Windows 3.00

View file

@ -9,7 +9,9 @@ machines:
id: ibm5170-win310
config: /devices/pcx86/machine/5170/vga/2048kb/machine.xml
drives: '[{name:"20Mb Hard Disk",type:2,path:"http://archive.pcjs.org/disks/pcx86/fixed/20mb/PCDOS330-WIN310-VGA.json"}]'
autoMount: ''
autoMount:
A:
name: None
---
Microsoft Windows 3.10

View file

@ -8,7 +8,9 @@ machines:
state: deskpro386.json
config: /devices/pcx86/machine/compaq/deskpro386/vga/4096kb/machine.xml
drives: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pcx86/fixed/68mb/win95.json"}]'
autoMount: ''
autoMount:
A:
name: None
---
Microsoft Windows 95 (First Retail Release)

View file

@ -9,7 +9,9 @@ machines:
state: /disks/pcx86/windows/win95/4.00.950/deskpro386.json
config: /devices/pcx86/machine/compaq/deskpro386/vga/4096kb/debugger/machine.xml
drives: '[{name:"68Mb Hard Disk",type:4,path:"http://archive.pcjs.org/disks/pcx86/fixed/68mb/win95.json"}]'
autoMount: ''
autoMount:
A:
name: None
---
Microsoft Windows 95 (First Retail Release) with Debugger

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -465,10 +465,8 @@ class FDC extends Component {
} else {
config = {};
}
if (configMerge) {
for (var drive in config) {
configMerge[drive] = config[drive];
}
for (var sDrive in config) {
if (configMerge) configMerge[sDrive] = config[sDrive];
}
return config;
}
@ -1087,22 +1085,22 @@ class FDC extends Component {
for (var sDrive in this.configMount) {
var configDrive = this.configMount[sDrive];
var sDiskettePath = configDrive['path'] || "";
var sDisketteName = configDrive['name'] || this.findDiskette(sDiskettePath);
if (sDiskettePath && sDisketteName) {
if (sDiskettePath) {
/*
* WARNING: This conversion of drive letter to drive number, starting with A:, is very simplistic
* and is not guaranteed to match the drive mapping that DOS ultimately uses.
*/
var iDrive = sDrive.charCodeAt(0) - 0x41;
if (iDrive >= 0 && iDrive < this.aDrives.length) {
var sDisketteName = configDrive['name'] || this.findDiskette(sDiskettePath) || "Unknown";
if (!this.loadDrive(iDrive, sDisketteName, sDiskettePath, true) && fRemount) {
this.setReady(false);
}
continue;
}
}
this.notice("Incorrect auto-mount settings for drive " + sDrive + " (" + JSON.stringify(configDrive) + ")");
}
}
return !!this.cAutoMount;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long