hi,
here is some information about MS-DOS in its various brain deadness.
i'm not sure how much this applies to freedos, i haven't tried that
yet.
i found this out one day while trying to load my cdrom driver as
"cdrom" ie
DEVICE=C:\<vendor>.sys /d:CDROM
this caused a problem when i then tried to create a directory of the
name "CDROM" in which to store said driver.
what happened was that the cdrom driver created a device file (we like
device files) named CDROM. MS-DOS makes all the device files
available from every directory! thus you can somewhat check to see if
a directory exists by checking if <dir>\NUL or which ever you choose.
the reasoning (if any) behind this probably stems from a non-rooted
drive system (C:, D:, etc ad nausium) and the need to get at device
files. somewhere i read that at one point you had to specify
\dev\<device> or some such. as of MS-DOS 6.xx all you have to specify
is <device>.
so when i went to create the directory, the device file already
existed! taking up that name. MORAL, give devices weird names like
MSCD000x or SCSIMGR$, *nobody* would want to create a file named that!
another neat trick that MS-DOS does is that you can actually see what
that mysterious device name that our "cdrom.sys" by typing "mem /d/p"
(/d does a lot of diagnostics and /p (like dir) causes the screen to
"page"). doing this while cdrom.sys is loaded shows "mscd0001".
(note: since these device nodes are using the same namespace as the
directory structure, mscdex might be expecting 8.3 file names...)
if you have multiple cdrom devices, the README-tech.txt advises to add
a line that says
cdrom { /dev/<CDROMx> }
(this can be done in dosemu.conf, global.conf doesn't appear to make
*any* mention of 'cdrom', and it will get set correctly)
for *each* cdrom you wish to use, where <CDROMx> is cdrom, cdrom1,
(cdroms/cdrom0, cdroms/cdrom1 for us sneaky bastards using devfsd).
then just add
DEVICE=C:\CDROM.SYS
DEVICE=C:\CDROM.SYS x
for each cdrom, with the second and following lines used for every
cdrom past the first. (note: i have two cdroms, one a IDE DVD-ROM and
the other a SCSI Ricoh CDRW, both work in this fashion)
another note: devfs really stomps on some assumptions which dosemu
makes regarding device files!!!!! is there any plan to rectify this
in the future? (personal prejudice, i find having *maybe* forty
device files in a directory sexy, ie non of the pty* vcs* nightmare of
redundancy) of note is the handling of forms of
"/dev/ide/host0/bus0/target0/lun0/partX" not working at all, thus a
symlink and the resulting confusion that produces (does not correctly
check for mounted filesystems!).
a quick look at the strings dump of ASPI.SYS shows that it defines
SCSIMGR$, but no mention of anything relating to CD. note: CDROM.SYS
defines both MSCD0001 and MSCD00z. i have Adaptec EZ-SCSI. the
ASPIxDOS.SYS drivers all define SCSIMGR$, like ASPI.SYS. do we need
another device driver to load in the glue between the SCSIMGR$ and the
MSCD0001? i'm guessing that if you had a SCSI device with DOS drivers
you might also have a device driver that plugs in to the SCSIMGR$...
HTH,
johnny