www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/10/24/08:30:35

Date: Thu, 24 Oct 1996 14:04:44 +0200 (IST)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
To: "Ilya P. Ryzhenkov" <ILYA AT spy DOT isp DOT nsc DOT ru>
Cc: djgpp AT delorie DOT com
Subject: Re: Drive Help
In-Reply-To: <E2E5A7196@spy.isp.nsc.ru>
Message-Id: <Pine.SUN.3.91.961024135228.9865E-100000@is>
Mime-Version: 1.0

On Thu, 24 Oct 1996, Ilya P. Ryzhenkov wrote:

>  IMHO that's not always as you've written. Consider using SUBST and
>  network drive mapping. If I boot from a floppy (on a diskless 
>  station) and connect to a network file server (like Novell) and
>  issue MAP ROOT C:=SERVER\SYS:\SOMEDIR  then I'll not have B:, however
>  A: & C: will be present.

That is incorrect AFAIK: a PC, even with a single floppy, always thinks 
there are both A: and B:, as far as DOS is concerned.  Didn't you ever 
have to say "copy a: b:" on a single-floppy PC?

The real problem here is in the interpretation of the word ``present''. 
The way DOS works, if it knows about, say, drive F:, then all the drive
letters between A: and F: (at least) *must* be also ``present'', i.e. DOS
has allocated all its internal structures to handle all these drives, and
when you call some file-oriented function which references, say, drive E:,
DOS will try to access that drive.  If the drive happens to be physically
absent, the attempt to access it will of course fail, but DOS has no way
to know if it failed because the drive is absent or just ``not ready''. 
You must go to lower levels (IOCTL, BIOS, network interrupts etc.) to know
better than DOS.  Unfortunately, there is no single set of standard calls
to do this for all kinds of drives. 

> There is also other soft which creates it's
> own drives regardles of what is actually present on a machine and in
> DOS mind ;-) (Examples : mscdex, norton utilities diskreet, 
> ramdisk...)

As long as that software abides by the rules of DOS block devices, they 
will all present the above behavior.  For example recall that if Novell 
Netware wants to create drive R:, you are told to put LASTDRIVE = R into 
CONFIG.SYS.  That command tells DOS to allocate all the drives from A: to 
R:.  As another example, recall that MSCDEX always defines the first 
drive letter beyond all the real disk drives, it never leaves a drive 
letter in between.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019