Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!cs.dal.ca!lane
From: lane@cs.dal.ca (John Wright/Dr. Pat Lane)
Newsgroups: comp.sys.ibm.pc
Subject: Questions about DOS 4.0
Message-ID: <1989Sep25.101739.26600@cs.dal.ca>
Date: 25 Sep 89 10:17:39 GMT
Organization: Math, Stats & CS, Dalhousie University, Halifax, NS, Canada
Lines: 127

I've been having so much trouble with DOS 4.0 on machines at work that
I'm sure I'll never use it at home (or anywhere I have any say about it).
I think its all a plot by IBM/Microsoft to get people to use OS/2!!!

Nevertheless, I'd like to ask some simple (I hope) questions.  I have here,
BTW, a 386 clone (Cache-32 motheboard, Chips & Technologies chipset, AMI
386 BIOS with RAM shadowing, 2 Megs of RAM, 130 Meg hard disk and Microsoft
MS-DOS 4.01.

1.  We have the hard disk partitioned as one big drive.  When DOS boots
it says "Warning: SHARE should be loaded for large media".  Why?  I'm
not using a network so I don't need special handling for file sharing
or locking.

In the manual under SHARE it says: "SHARE is automatically loaded if
you have a hard disk greater than 32 Megabytes in a single partition".
In fact, this only happens if SHARE.EXE is in the root directory of the
boot disk.  In my case, it is, of course, in C:\DOS and is not loaded
automatically.

2. It also says with SHARE loaded, "FCBS control is activated".  What does
that mean?  They refer you to the section of the manual for FCBS= in
CONFIG.SYS but SHARE is not mentioned at all there.  I have noticed that
with at least some programs I have that open files with FCBs, the opens fail
unless SHARE is loaded.  This happens regardless of the FCBS= settings.
What's goin' on?

3. I take it from the explanation of FCBS= that DOS (and not just DOS 4 but
earlier versions as well), if it runs out of FCBS for an open FCB request,
and assuming that the second FCBS= parameter has not been used, will simply
close the last FCB file it opened (or would it be the first FCB file opened)
in hopes that the application won't crash because of it.  Is that correct?

4. Back to SHARE, I note that it also implements checking for diskette
switches and checks for the same disk volume name.  I wonder why they
didn't put this into DOS proper and why they bundled it with a program
to be used on networked systems?

5. With FASTOPEN, the optional second parameter value is the number of
"file extent entries".  What is a file extent?

5b.  If I'm using expanded memory for the cache, it should be exactly 16K
(the size of an EMS page).  What are suitable values for the FASTOPEN
parameters in this case.

6. What are the implications of using BUFFERS=x,8?  Will it improve system
performance?  Are there any dangers?

7. I'm using EMM386.SYS to use my extended mwmory as expanded memory.  The
first odd thing I notice here is that with EMM386 loaded, whenever I do
a soft boot (Ctrl-Alt-Del or one of those REBOOT.COM pgms), it does a hard
boot, going through the memory check, etc. whereas normally it would skip
those.

I assume that my 2 Megs is mapped continously from 0 to 1FFFFF so that I 
have 640K base memory followed by 384K ROM shadow memory followed by 1024K
extended memory.  However, the most that EMM386 will allocate is 912K, 112K
less than 1024K.  EMM386 reports on loading that it has allocated 912K (or 
whatever was requested) of extended memory plus 384K of "system memory" for 
a total of 1296K (assuming the 912K or more was requested) of available 
expanded memory.

MEM reports, 1296K total EMS memory with 912K free.  It always lists one EMS 
"handle", numbered 0, with no name and 384K allocated to it.  Further, MEM 
reports 1024K total extended memory with 64K available.  This would indicate 
that 960K is used.  Since 912K is used by EMM386 there is 48K unaccounted 
for.  If I request less than 912K expanded memory, the amount of extended 
memory used is still 48K more than the amount EMM386 says it has allocated.

8a. What is the 384K of "system memory allocated" and what is EMS handle 0
and are they related?  Applications using EMS only see the 912K or whatever 
extended memory was allocated.  Why does EMM386 claim this is "available" 
expanded memory when it is in fact allocated to handle 0.  Or is this some
new meaning of the word "available" with which I was not aware of? :-)

8b. Where is allocated but unaccounted for 48K of extended memory going?

8c. Why does EMM386 refuse to allocate more than 112K less than the total
amount of extended memory, thus leaving at least 64K free.  Is this the
first 64K of extended memory, left free for HIMEM.SYS?

HIMEM.SYS (which was documented only in a README file on one of the DOS
diskettes) supposedly makes the first 64K of extended memory available to
MSDOS programs.  I understand that it does this by tweaking the hardware
in some way that may not work on all machines.  When I load HIMEM.SYS (which 
I normally do not), it reports "64K High Memory Area is available".  Thus,
I assume that it works on my machine.  I've heard somewhere that this 64K
can only be used for loading one device driver or resident program at a time.

I also understand that HIMEM.SYS implements a scheme, called XMS, for 
managing extended memory in a way similar to the LIM standard for expanded 
memory.  I've heard that there is not much software that supports this 
standard and even the other DOS programs that use extended memory (like
EMM386.SYS) ignore it.

9a. How does one make use of the 64K High Memory Area?  Just loading 
HIMEM.SYS before the other drivers and resident programs does not change 
the amount of memory any of them use.  I just lose the amount of memory
taken up by the HIMEM.SYS.

9b. Loading HIMEM.SYS does not change the amount of available extended 
memory reported by MEM.  Shouldn't it be 64K less?

9c. Is it safe to use HIMEM.SYS with EMM386.SYS (since EMM386 seems to
leave 64K of extended memory available)? 

9d. Is it safe to use HIMEM.SYS period?

10. Would the combination of HIMEM.SYS and XMS2EMS.SYS do the same as
EMM386.SYS (and work on a 286 as well)?

11. Does EMM386.SYS work OK or would I be better off with a 3rd party pgm
like QEMM.SYS from DeskView or 386-to-the-Max.

12. SELECT will not let me choose expanded memory support even if I load
EMM386.SYS before running it.  How come?

I realise I'm asking alot here - and some of it i've asked before - but,
hey, inquiring (and frustrated) minds want to know.

Muchly appreciate any help with these.

-- 
John Wright      //////////////////     Phone:  902-424-3805  or  902-424-6527
Post: c/o Dr Pat Lane, Biology Dept, Dalhousie U, Halifax N.S., CANADA B3H-4H8 
Cdn/Eannet:lane@cs.dal.cdn  Uucp:lane@dalcs.uucp or {uunet watmath}!dalcs!lane
Arpa:lane%dalcs.uucp@uunet.uu.net  Internet:lane@cs.dal.ca