The problem with HIMEM and XMSDSK running under a 2G machine has been resolved.
XMSDSK uses 1 XMS handler per 64M memory allocated. When there are no more XMS
handles, XMSDSK seems to fail checking for a return error code, leading to a crashed
PC. This appears to be a design flaw in XMSDSK.
The problem did not occur with later versions of Microsoft HIMEM because Microsoft
silently increased the default handles from 32 to 48, while FreeDOS HIMEM continues to
use 32 handles. I find no documentation for this increase, even on the Microsoft
site. While the error may lie in XMSDSK, this is a sufficiently good reason to
increase the HIMEM default handles count and avoid the whole situation.
Even at 4G max, the number of handles XMSDSK could need is 64, plus the HIMEM overhead
for itself and EMM386 of 2 or 3. Accordingly, I am probably going to increase the
default setting of HIMEM XMS handles to 72. There is no difference in memory consumed
when changing FreeDOS number of handles, the maximum space is pre-allocated at
startup. The only reason not to default to the highest possible setting of 128 is
that someone, somewhere, doubtless has written code which depends on the default being
less than the maximum, such as allocating until failure in a 128 count loop.
Of course, other programs may have similar errors and we can't adjust for every wrong,
but this is a fairly painless solution.
.
---
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470alloc_id=3638op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel