From: lasner@watsun.cc.columbia.edu (Charles Lasner)
Subject: Re: Unix Roots of DOS?
Reply-To: lasner@watsun.cc.columbia.edu (Charles Lasner)
Organization: Columbia University
Date: Tue, 21 Jul 1992 06:33:13 GMT

In article <1868@sdrc.COM> scjones@thor.sdrc.com (Larry Jones) writes:
>
>Like Brad said, the "MS-DOS 4.0" that did multitasking was only
>distributed in Europe and it was just distributed for a short time.  The
>"MS-DOS 4.0" designation was re-used much later world-wide for the
>MS-DOS-3.3-plus-large-partition-support-that-doesn't-quite-work-right-
>most-of-the-time that we've all come to know and love.

MS-DOS 4.01 was released several times.  The version where all files are
dated about April, 1989 is stable and functional.  I even use it today
sometimes.

The biggest gripe people have against DOS 4.01, other than association with
past crimes of unstable versions is that it uses slightly more memory in 
the 640K space than 2.x and 3.x predecessors.  For most users, this is a
non-issue, but there are memory hungry applications that barely fit in a
3.3 system's free memory space, so there are those that will fight over
2500 bytes.  Also, at about the same time, some of these applications grew
larger because people tended to add video and printer drivers thus making
memory even tighter.

A bandaid was applied in that a HIMEM.SYS driver was released that is
compatible with 3.3 or 4, that takes advantage of the 286 quirk of 
addressing the FFFF memory segment which uses real memory, yet exceeds
the 1.0 Meg limit by 64K-16 bytes.

This HIMEM.SYS could only allow cooperating TSR's to load there, and of
course some won't work this way.

The solution to this problem comes in DR-DOS which allows HIDOS.SYS to move
parts of the DOS kernel to available memory in either the 640K-1.0 Meg area
now known as Upper Memory, or to the HIMEM area.  This is a more useful
gain than some TSR's there, thus an overall improvement.  DR-DOS 5 (later
6) is somewhat smaller than DOS 4 anyway.  If a NEAT or other supported
chipset is available, the user gets back as much as 628K of 640K.  (That's
K's as in 1024, not thousands.)  If a "plain" 286, then only HIMEM can be
used.  IF a '386, then EMM386 can create both a HMA and an UMA using
virtual real mode, thus the 386 is almost as good as a 286.  (Yes, a 286
gets *more* memory than a 386 because you don't need the space taken up
by EMM386 which has to be in 640K area.  HIDOS.SYS itself can set in UMA
with the DOS kernal on a NEAT, LEAP, or SCAT 286.)

Eventually Microsoft came up with MS-DOS 5, but it is inferior in every
memory-related way to DR-DOS 6.  It gets less overall free memory on a
386 and requires HIMEM.SYS even if EMM386 is present.  Further, it doesn't
support specific-chipset 286 machines, or even the NEAT 386SX, which is
just treated generically as a 386 requiring EMM386 and HIMEM. (In DR DOS
you can have an UMA with a NEAT 386SX without using EMM386, and you can even 
have LIM memory without EMM386 if desired as well, because NEATEMM is a
loadable driver (that can be loaded into UMA) that provides LIM 4.0 on
any NEAT chipset machine, 386SX or 286-NEAT.)  MS-DOS 5 treats all 286's as
plain ones so the only benefit is HIMEM.SYS.  Even on an 8088/86 system, DOS
5 takes more from the 640K than DR-DOS.  Windows 3.1 enhanced mode gives a
larger free memory space because of the UMA usage.

Note also that there is a performance penalty for using EMM386 in either
system, so a NEAT 286 can possibly outperform a 386 if either LIM or UMA
(or both) is required since there is no overhead for the UMA and little
for the NEATEMM driver.  (And don't forget that about 1K improvement for
not loading EMM386 in real memory!)  So, unless you have/need a fast
386 to do things only a 386 can do, you may find that a NEAT 286 running
DR-DOS suitably configured is a better deal.

cjl
Newsgroups: alt.folklore.computers