delorie.com/archives/browse.cgi   search  
Mail Archives: opendos/1998/05/15/04:40:01

Sender: andreas AT ri DOT dasa DOT de
Message-Id: <355BFE80.79A69372@ri.dasa.de>
Date: Fri, 15 May 1998 10:36:16 +0200
From: Andreas Schulz <Andreas DOT Schulz AT ri DOT dasa DOT de>
Reply-To: Andreas DOT Schulz AT ri DOT dasa DOT de
Organization: Daimler-Benz Aerospace, Space Infrastructure
Mime-Version: 1.0
To: OpenDos Mailing Lixt <opendos AT delorie DOT com>
Subject: Re: Memory optimization help...
References: <EE01BA609C AT reze-1 DOT rz DOT rwth-aachen DOT de> <355BD513 DOT EE271B1F AT Mindless DOT com>

Daniel de Haan wrote:
> 
> > As already said in the replies, please try to defragment your UMB area
> > to get a single continous chunk. This will reduce left-over unused
> > areas, and also will allow to loadhigh much larger drivers.
> 
> How does one go about doing this?

1. Check your system configuration. If you have just a vanilla PC with
   no special interface cards, there should be no problem. Most common
   users of UMB address ranges are SCSI controllers (BIOS ROM) and
network
   cards (BIOS ROM and buffer RAM).
2. check with mem /ap (or better msd if you have windows) what's going
   on in your UMB's (range C800-EFFF). Check documentation of your
   interface cards whether they use any UMB address range.
3. If you find your UMB area is fragmented by some BIOS ROM, check
   the boards documentation how (if possible) to change the default
   address. If not possible, you're out of luck..

Typical (bad) UMA layout :
A000-BFFF : Video RAM
C000-C7FF : Video ROM (32K, fixed)
C800-CFFF : 32 K UMB RAM for drivers
D000-D3FF : e.g. SCSI BIOS (16K)
D400-D7FF : 16 K UMB RAM
D800-DBFF : e.g. Network BIOS (16K)
DC00-DFFF : e.g. Network RAM buffer (16K)
E000-EFFF : 64 K UMB RAM
F000-FFFF : BIOS ROM (64K, fixed(*))

Such a poor user should try either to move the SCSI BIOS to C800-CBFF,
giving 48K unfragmented UMB for drivers and 64K for EMS frame, or
without EMS, the network address spaces to C800-CFFF, giving a total 
of 112K unfragmented UMB.

(*) Try EMM386 .... /USE=F000-xxxx to get up to 32K more UMB RAM,
    where xxxx is the highest possible value (usually at or slightly
    below F7FF) where your system doesn't crash.

> > SHELLHIGH= SIZE=1B00 c:\drdos\command.com c:\drdos\ /E:1024 /MH /P
> > I always forget the optimal value for SIZE. Please use the smallest
> > value, which still allows to load COMMAND.COM into the HMA.
> 
> How would I find this smallest value which still allows command.com to
> load into the HMA?

Trial and error :-) Takes some reboots, of course. Start with
SIZE=3000 (should load High) and SIZE=1000 (should not) and check
the difference with MEM /F. Then start a binary search(*) until
you think you've optimized enough.

(*) (don't think you will need this, but you never know) i.e. 
if 2000 loads high {
  if 1800 loads high {
     try 1400 ...
  } else {
     try 1C00 ...
  }
} else {
   try 2800 ...
}

Andreas

- Raw text -


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