Mail Archives: opendos/1998/05/15/04:40:01
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 -