------------------------------------------------------------------------
r3882 | ripsaw8080 | 2015-01-06 09:48:07 -0800 (Tue, 06 Jan 2015) | 1
line
Coalesce free memory blocks after resizing a block rather than before.
Fixes some MicroProse games on the Tandy machine type. Also add error
exits in case of a corrupt MCB chain instead of hanging in an infinite
loop.
------------------------------------------------------------------------
returned by INT 21h prior to returning the block to the application.
This option is intended for DOS games or demos that may have problems
with uninitialized variables in the DATA or STACK segments. At the very
least, it helps prevent the vectorball part of Second Reality from
crashing.
value rather than assume 0xFFFE. The choice is based on the size of the
memory block allocated for the image, which means that if there's plenty
of RAM, then SP=0xFFFE anyway, BUT, if the memory block is smaller, the
stack pointer is assigned the largest value (minus 2) that fits within
the memory block. Doing this resolves the random crashes that occured
with most DOS programs, including DOSBox's builtin commands, when less
than 72KB of RAM was assigned. Because of this fix, it is now possible
to assign as little as 16KB of RAM and run without crashing. Programs
that still fit work fine. Programs that are too large silently fail.
Programs that can load, but cannot allocate the memory they need, error
out fine without crashing.
Because of this fix, the check in the DOS memory setup code has been
modified to set the minimum to 16KB instead of 72KB.
DOSBox was doing at 0xD000 was emulating Upper Memory Blocks. Added code
to memory handler to default map out those pages, then allow the XMS
driver to map them back to RAM. Added options so that you can control
the UMB region and size from dosbox.conf.