Commit Graph

74 Commits

Author SHA1 Message Date
Jonathan Campbell
a40e5b25ae show name, too 2015-02-03 13:11:54 -08:00
Jonathan Campbell
f40c136a8b improve MCB dump 2015-02-03 13:02:18 -08:00
Jonathan Campbell
3534cf0c94 On corrupt MCB chain, print it to show us where! 2015-02-03 12:21:40 -08:00
Jonathan Campbell
9b92cae895 If resizing to make the block larger, coalesce free dos blocks following
the one to resize.
2015-01-26 16:03:30 -08:00
Jonathan Campbell
7e4901bb3c add utility param to DOS_CompressMemory() so that it can be instructed
to only coalesce free blocks past a certain segment instead of all
blocks.
2015-01-26 15:08:50 -08:00
Jonathan Campbell
d1688b42eb svn mainline r3882:
------------------------------------------------------------------------
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.
------------------------------------------------------------------------
2015-01-25 21:34:27 -08:00
Jonathan Campbell
ffbad0b2b3 svn mainline r3878:
Year update.
2015-01-25 21:13:25 -08:00
Jonathan Campbell
369eea9f41 debug/helper option: add new option that, if set, zeroes memory blocks
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.
2015-01-17 03:35:57 -08:00
Jonathan Campbell
ea1a0300ba add configuration option where, if machine=cga or machine=hercules, the
640kb conventional memory area could be extended out to just below
CGA/Hercules video RAM (736KB CGA, 704KB Hercules).
2014-06-11 01:45:43 -07:00
Jonathan Campbell
82a51d1e92 Now that NMI emulation is complete, remove IRQ 6 pseudo-NMI hack for
PCjr and reimplement PCjr keyboard as actual NMI interrupt for accuracy.
2014-06-08 15:59:49 -07:00
Jonathan Campbell
7dca83f1e5 replace all fprintf(stderr,... calls with calls to LOG_MSG 2014-05-19 15:51:52 -07:00
Jonathan Campbell
e77b8abff3 DOS MCB debugging: Instead of just exiting with "MCB list corrupt", show
the MCB list on STDERR before shutdown so that I can see where it got
corrupted.
2014-04-23 16:32:27 -07:00
Jonathan Campbell
b41bc5f3f6 remove "invalid link state" call. it makes me think that the UMB chain
is invalid when all that happened is a DOS program (Open Watcom 1.9 DOS
installer) called AX=0x5803 with an invalid BX value.
2014-03-30 17:24:50 -07:00
Jonathan Campbell
4802c37c6e update code to lower minimum to 4KB. 2014-03-23 20:26:55 -07:00
Jonathan Campbell
654758ea5f allow 8KB minimum after all. 2014-03-23 19:01:05 -07:00
Jonathan Campbell
8320c36236 fix up DOS execute function to dynamically choose COM stack pointer
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.
2014-03-23 18:21:37 -07:00
Jonathan Campbell
d8476654ad add define to debug alloc/free memory allocation. also added code to
disable "minimum memory requirement" error if you do so.
2014-03-23 17:39:02 -07:00
Jonathan Campbell
99d57f1a0c note DOSBox emulator instability below 72KB 2014-03-23 16:57:07 -07:00
Jonathan Campbell
064295696e reduce minimum memory size to 72KB, the lowest we can go before the
emulator is unable to boot anything at all. IBM PC-DOS 1.0 apparently
runs in that little memory with no trouble.
2014-03-23 16:38:10 -07:00
Jonathan Campbell
f98f3c94a3 modify DOS segment allocation to start at 0x50 (if not compatible)
instead of 0x80 to open up 1KB more RAM. Modified IHSEG code in
dos_memory to choose segment from dos.cpp allocation instead of assuming
segment 0x70.
2014-01-19 15:22:14 -08:00
Jonathan Campbell
1754a6caf5 updated comments about apparently data at 0xD000. It turns out what
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.
2014-01-18 16:19:33 -08:00
Jonathan Campbell
822293dad4 remainder of save state code removed from h/w and system emulation 2013-10-20 13:27:17 -07:00
Jonathan Campbell
21614b8c3f toss out my copy, integrate tawoongs's daum branch code into mine,
remove what won't compile, begin work.
2013-10-14 05:07:26 -07:00
root
f331824031 port from svn 2013-07-07 20:39:49 -07:00