[comp.os.msdos.programmer] Load config.sys driver as TSR ???

motti@ocsmd.ocs.com (Motti Bazar) (11/12/90)

Hi there,

I wonder if anybody as come across a utility or even real code to
load config.sys driver as a TSR ???
It will allow me to load config.sys type drivers any time I need
them (and maybe even to unload) instead of editing config.sys and
rebooting.

Any ideas ??? If I'll get enough info, I'll do it by myself and
post it.

Regards ... Motti

cgf@ednor.bbc.com (Chris Faylor) (11/18/90)

In article <1105@ocsmd.ocs.com> motti@ocsmd.ocs.com (Motti Bazar) writes:
>Hi there,
>
>I wonder if anybody as come across a utility or even real code to
>load config.sys driver as a TSR ???
>It will allow me to load config.sys type drivers any time I need
>them (and maybe even to unload) instead of editing config.sys and
>rebooting.
>
>Any ideas ??? If I'll get enough info, I'll do it by myself and
>post it.
>
>Regards ... Motti

I just downloaded a product called 'DMC' (Dynamic Memory Control) from a
local bulletin board.  It allows loading and unloading of device drivers
dynamically, as well as grouping TSR's and device drivers together.

It looks interesting, but I haven't had a chance to play with it.
-- 
Chris Faylor		Boston Business Computing, Ltd.
cgf@ednor.bbc.com	President: Anti Usenet-Obsessive-Behavior Society

The opinions expressed here just might represent the opinions of this company.

valley@uchicago (Doug Dougherty) (11/20/90)

motti@ocsmd.ocs.com (Motti Bazar) writes:

>Hi there,

>I wonder if anybody as come across a utility or even real code to
>load config.sys driver as a TSR ???
>It will allow me to load config.sys type drivers any time I need
>them (and maybe even to unload) instead of editing config.sys and
>rebooting.

>Any ideas ??? If I'll get enough info, I'll do it by myself and
>post it.

>Regards ... Motti

This is a very interesting idea.  I'm actually not sure how well it will
work out in practice, but I encourage the idea.

My question is a related one.  I am currently developing an "ASK" device
driver.  You put it in your CONFIG.SYS like this:

	device=ASK.SYS VDISK.SYS 384 /X

and it asks you whether or not you want to load VDISK.

Unfortunately, it is not working, and I think the reason is that you
cannot (so say all the manuals) do DOS function calls from within the
INIT code of a device driver.  (Currently, what the code does is crash
the system shortly after trying to open the named device driver file)

However, I know this can work.  There are commercial products that have
this calling syntax.  I have disassembled one of them, XLOAD.SYS, by
Helix Software (great bunch of guys, they are!) and it does, in fact,
contain the DOS function calls to open (3D), read (3F), and close (3E)
a file handle.  How they get away with it is a mystery to me...

Any help would be appreciated.

keck@sea.com (John Keck) (11/20/90)

In article <1105@ocsmd.ocs.com> motti@ocsmd.ocs.com (Motti Bazar) writes:
>Hi there,
>
>I wonder if anybody as come across a utility or even real code to
>load config.sys driver as a TSR ???
>It will allow me to load config.sys type drivers any time I need
>them (and maybe even to unload) instead of editing config.sys and
>rebooting.
>
>Any ideas ??? If I'll get enough info, I'll do it by myself and
>post it.
>
>Regards ... Motti
>
Device drivers are kept in a linked list.  I wrote a program to load a
given driver and insert it in the linked list, then spawn() a child 
(which can be another shell).  When the child exits, the driver gets 
removed from the list.  This is very handy for debugging device drivers!
It was pretty simple to write; it doesn't belong to me so I can't post it,
but if you want I can give you some tips.

jk
-- 
-----------------------------------------------------------------------------
John Keck INTERNET:keck@sea.com UUCP:...!ucsd!soledad!keck VOICE:619/581-6181
Systems Engineering Associates, 2204 Garnet Ave Suite 203, San Diego CA 92109

valley@uchicago (Doug Dougherty) (11/21/90)

John Keck writes:

>Device drivers are kept in a linked list.  I wrote a program to load a
>given driver and insert it in the linked list, then spawn() a child 
>(which can be another shell).  When the child exits, the driver gets 
>removed from the list.  This is very handy for debugging device drivers!
>It was pretty simple to write; it doesn't belong to me so I can't post it,
>but if you want I can give you some tips.

>jk
>-- 
>-----------------------------------------------------------------------------
>John Keck INTERNET:keck@sea.com UUCP:...!ucsd!soledad!keck VOICE:619/581-6181
>Systems Engineering Associates, 2204 Garnet Ave Suite 203, San Diego CA 92109


Does this necessarily work OK for block drivers?  My understanding is
that DOS does some things behind the scenes (e.g., assigning drive letters)
when an installed driver turns out to be a block driver.

erick@sunee.waterloo.edu (Erick Engelke) (11/21/90)

In article <1105@ocsmd.ocs.com> motti@ocsmd.ocs.com (Motti Bazar) writes:
>Hi there,
>
>I wonder if anybody as come across a utility or even real code to
>load config.sys driver as a TSR ???
>It will allow me to load config.sys type drivers any time I need
>them (and maybe even to unload) instead of editing config.sys and
>rebooting.
>
>Regards ... Motti
>

You can use DRVINST which also allows you to remove device drivers.  It
is available via anonymous FTP from  [129.97.128.196] in pub/drvinst.arc.
On the bad side, it adds a bit less than 4K to the driver, but if you are
unloading the driver later, who cares.  Oh, and it's free!

Erick

-- 
----------------------------------------------------------------------------
Erick Engelke                                       Watstar Computer Network
Watstar Network Guy                                   University of Waterloo
Erick@Development.Watstar.UWaterloo.ca              (519) 885-1211 Ext. 2965

tjr@cbnewsc.att.com (thomas.j.roberts) (11/22/90)

From article <valley.659043938@gsbsun>, by valley@uchicago (Doug Dougherty):
> motti@ocsmd.ocs.com (Motti Bazar) writes:
> 
> My question is a related one.  I am currently developing an "ASK" device
> driver.  You put it in your CONFIG.SYS like this:
> 
> 	device=ASK.SYS VDISK.SYS 384 /X
> 
> and it asks you whether or not you want to load VDISK.

During the loading of device drivers, MS-DOS loads the ENTIRE config.sys
into memory, munges it with '\0'-s following each line and each
DEVICE=NAME, and then indexes through the list, calling the INIT
function of drivers, etc...

Thus, it should be simple to implement ASK.SYS so:
	DEVICE=ASK.SYS	// asks about the NEXT driver in config.sys
	DEVICE=VDISK.SYS 384 /x
if the answer is NO, ASK.SYS would change the '\0' following its
command line, and the '\0' following VDISK.SYS to be '\n' (or
any non-zero char), thus 'eating' the next line; if the answer is YES,
ASK.SYS would do nothing, but merely exit with no memory allocated.

	[Actually, it is possible that a very long CONFIG.SYS would
	not all be loaded at once - I haven't checked; I suspect that
	the entire file is read, because of the complicated
	pre-processing performed before calling any driver's
	INIT entry.]

Tom Roberts
att!ihlpl!tjrob  TJROB@IHLPL.ATT.COM