Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

stable release ready BUT... (Announce)

posted by Ninho E-mail, 03.12.2009, 16:39

>>> P.S. Interestingly, it seems that WRAPPER cannot be used to load a driver
>>> if the system needs the LASTDRIVE command to be used.

>> Hmmm... in general, for real /block devices/ I don't think there is a
>> problem. UIAM, the LASTDRIVE command is processed by MS-DOS to build the
>> System File Tables

> DEVICE= lines are processed in the last or second-to-last pass; the FILES=
> and LASTDRIVE= lines have been recorded then. However, LASTDRIVE= doesn't
> affect System File Tables (SFTs). As their name implies SFTs are allocated
> for opened files, therefore the FILES= line is responsible for the (total)
> number of (regular) SFTs in the system. LASTDRIVE= instead sets the number
> of Current Directory Structure (CDS) entries. The CDS therefore is an array
> of LASTDRIVE entries.

Right CM, I stand corrected. I really meant CDS entries, not SFTs :(
As we (should) know, and you correctly recall :

> A DOS drive letter (or the DOS drive number) is an
> index into the CDS array. All drives such as "local" (FAT) drives, SUBST
> links, JOINed "local" drives and "network redirector" drives require CDS
> entries.

Now I'll also trust you about the ff. observations

> The recorded LASTDRIVE= value seems to be used only between processing
> DEVICE= and INSTALL= lines (i.e. after drivers are loaded). Before that,
> DOS probably creates a CDS just large enough to hold entries for all
> "local" drives installed yet. Previously I thought DOS would create a CDS
> with 32 entries (the maximum) initially and would cut that down later;
> however it could've assumed all drives to be "local" during DEVICE=
> processing. So the actual behaviour is better than I thought, because
> SHSUCDX already aborts before installing its drives.

As far as that

>> But the CD (and DVD) drivers are special devices which don't fit well in
>> the old DOS driver model, being treated as network drives, hence each of
>> these devices need both a /character/ mode driver specific to the device
>> model and the MSCDEX or compatible redirector.

> No they don't. The requirement of character devices is imposed by MSCDEX's
> design.

Rather, by the fact that using a classical DOS block device driver requires rather rigid structures, including a DPB which in turn assumes the existence of a FAT, all of which can't be applied to CD volumes.

> Redirected drives don't need DOS devices.

I didn't say they did!

>> The latter, not the CD/DVD
>> driver proper, is what creates/rearranges/messes with SFTs & drive
>> letters as needed to provide the illusion of a block mode device.

> There's no such illusion. The drive appears to the user the same, but
> below the DOS API (Int21) "network" and "local" drives are handled
> completely differently. They both use SFTs and CDS entries but the content
> of a "network" and "local" SFT/CDS is mostly different. ...

So, the MS network redirector dressing of network drives, or CD-ROMS etc, as if they were local FAT units, is the <<illusion>>.

>> A question of mere academic interest anyway, I can't see whatsoever could
>> be gained by loading the MSCDEX with WRAPPER.

> What about loading device drivers from the CD? This would be especially
> useful for a boot CD.

Yes, good point. Unfortunately then, it seems it won't work.

> Of course most device drivers can now be loaded
> either by DEVLOAD or by updating them to load as executable too

But probably not the CD-ROM drivers :( Have you ever heard of one that could be devloaded ? A possibly interesting research subject.

> but these
> related to low memory management can't without dropping DOS's UMA/HMA
> initialization. (Linking UMBs to DOS's chain (DOS=UMB) yourself isn't
> difficult, but relocating the DOS code segment to the HMA (DOS=HIGH)
> requires knowledge of DOS's exact behaviour and code, which probably
> changed with every version.)

Internal MS-DOS UMA and HMA management did not change from DOS 5 until DOS 8 AFAIK.

---
Ninho

 

Complete thread:

Back to the forum
Board view  Mix view
22762 Postings in 2122 Threads, 402 registered users (1 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum