On Tue, May 08, 2012 at 09:47:56AM -0700, Alain Ribière wrote:
> Thanks for your answer.
>
> Here is the debug log in attachement.
> I disabled the debug on the screen shot I sent because I noticed I could get a bit more memory without it.
> With the debug on, I got :
> Banked Window 416K at 3800:0 segment
> and a free memory of 15680K
>
> I'll try to find what confuses C-DOS. It reacts a bit strangely...
> When I add or remove options from the SeaBIOS, the memory avalaible
> change and the size of banked window changes too. So I hoped there was a way to have enough memory to run my application...
The options don't impact SeaBIOS' memory usage, so this reafirms my
guess that what you are seeing is a secondary effect. As a guess,
this could be stack usage - some old program call the bios
with very
small stacks and if the stack overflows silent corruption can occur.
The fact that you're seeing different memory layouts with random
changes to config options could be due to different options causing
the compiler to layout the stack slightly differently and thus causing
slightly different corruption - just a guess.
The other thing I noticed with your C-DOS image is that it doesn't
know about the EBDA and uses that memory for its own purposes. Thus,
the seabios runtime usage of the ebda along with c-dos could cause
conflicts. I don't think this is the cause of your current issue
though as some moving the ebda in some quick tests I ran doesn't seem
to impact the output of "stop".
> Otherwise, I will have to stuck with Qemu 0.11 and PC-BIOS.
>
> Do you know if there is any DOS utility to get the memory map ?
I'm not familiar with DOS utilities. You could ask on
the freedos
mailing list.
-Kevin