Subject: Re: A possible problem with a dos emulator...need help
To: Brett Lymn <blymn@awadi.com.au>
From: John Brezak <brezak@apollo.hp.com>
List: netbsd-ports
Date: 03/18/1994 11:11:40
>
>
> Hello,
> When I get the time I am hacking away at a dos emulator. It
> has come time to seriously think about implementation issues for the
> emulator itself. One thing that has me worried at the moment (not the
> only thing...;-) is the fact that the DOS land is going to occupy the
> bottom 1Meg of the emulator address space. I can see some problems
> with this:
>
> 1) The unix exit code of the process will be overwritten by the DOS
> stuff
>
> 2) I think the first couple of pages of the process are protected so
> that dereferencing a null pointer will produce a SIGSEGV.
>
> My current thinking is that I can spelunk the crt0.c to make a special
> one for the emulator so that the exit code is shifted to above the
> 1Meg+64K magic limit that DOS knows about. Linux dosemu got around
> the problem by using the shared libraries and linking their code to an
> address about the Magic Barrier (tm) - if I used 'current could I do
> the same trick? I would prefer this to hacking crt0 because it is an
> ugly hack (hey, IMHO running MS-DOS is pretty ugly :-). If I can use
> the shared libraries to fix the MB (tm) how can I do this?
>
> As for point 2, I am not sure how I can get around this. I must have
> these pages r/w as DOS will insist on it.
>
>
> Please tell me I am worrying about nothing ;-) if not any
> suggestions/pointers?
>
Try using !ZMAGIC (maybe NMAGIC) and use the "-T" flag to ld to specify
a higher (1M) text start point.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
John Brezak UUCP: uunet!apollo.hp!brezak
Hewlett Packard/Apollo Internet: brezak@ch.hp.com
300 Apollo Drive Phone: (508) 436-4915
Chelmsford, Massachusetts Fax: (508) 436-5122
------------------------------------------------------------------------------