delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/1998/09/25/13:43:47

Date: Fri, 25 Sep 1998 11:43:15 -0600 (MDT)
Message-Id: <199809251743.LAA29513@kewlaid.highfiber.com>
Mime-Version: 1.0
To: opendos AT delorie DOT com
From: raster AT highfiber DOT com (Charles Dye)
Subject: Memory managers, was: Suggestions for DR-DOS

Matthias DOT Paul AT post DOT rwth-aachen DOT de writes:

>On Wed, 23 Sep 1998 Guti wrote:
>>               HIMEM.SYS ocuppies a lot of memory compared with the
>>               version shiped int MS DOS 6.22 and in PC DOS 7.0 (about 4
>>               times more). Try to reduce its size in memory. The easy way 
>>               is reducing and removing the innecessary text messages
>>               (the startup message: 'HIMEM.SYS 2.32' should be removed,
>>               so some bytes will be saved, and a prettiest look will be
>>               obtained).

>Yes, I have seen this too. But after further investigating this on a 
>bunch of 286 machines I also found machines, where DR-DOS  HIMEM.SYS 
>took much lesser memory (about 1/4 ;-) than MS-DOS  driver, so this 
>actually depends on the chipset. However, there might still be room 
>for improvements for those cases, where DR-DOS HIMEM overlays consum 
>more. 

It's also worth pointing out the the DR DOS HIMEM.SYS and EMM386.EXE do
*not* correspond to the MS-DOS programs of the same name.  Each does
far more than the Microsoft equivalent.

Microsoft's HIMEM.SYS is an extended memory manager.  That's all it
does -- manage extended memory.

Microsoft's EMM386.EXE does not itself manage extended memory.  It
depends on HIMEM.SYS for that, so you can't load EMM386.EXE by itself.
Its functions are, 1: a 386 memory manager (i.e., it catches protection
violations and other flagrant program errors); 2: a UMB provider (it
permits loading programs into the upper memory area) and 3. it
emulates expanded memory.

DR DOS HIMEM.SYS, by contrast, is an extended memory manager which
can also function as a UMB provider on some 286 motherboards.  You
can use it by itself to load device drivers and TSRs, etc. high on
certain 286 systems.  To do the equivalent in MS-DOS, you'd need
HIMEM.SYS plus a third-party program such as UMB_DRVR.SYS.

DR DOS EMM386.EXE is a real piece of work.  It's an extended memory
manager and a 386 memory manager, all in one -- combining the
functions of Microsoft's HIMEM.SYS and EMM386.EXE into one package.
It provides UMBs and expanded memory, like Microsoft EMM386.  It
also handles task-switching, and optionally preemptive multitasking:
a fast, simple Windows replacement in a single file!  It is also a
DPMI provider (a buggy one!  Turn this feature off if you want to
play DOOM.)  It also provides ROM shadowing for machines which
can't do that in CMOS.  EMM386.EXE does suffer from compatibility
woes, true.  But it's a far more ambitious program than Microsoft's.
Don't begrudge it the extra space it consumes.

raster AT highfiber DOT com

- Raw text -


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