Use smaller mallocs to support dos
The DOS version has trouble with the large malloc in the undo
system that mallocs 2.5 times the dynamic memory. This is used
as 1.5 times the dynamic memory for the diff part, and space to
save the dynamic memory. When memory beyond the 64k barrier was
accessed, there was a crash (at least that seems like what was
happening). Instead of mallocing all the memory at once and and
setting the pointer to the diff part to after the dynamic memory
part, I changed it to seperately malloc both parts.
It still may be that at 1.5 the dynamic memory size, that the diff
could go past 64k. Might want to check for that and handle it.