re: Re: Memory management FAQ

Eric Auer <[email protected]>
Newsgroups gmane.os.freedos.devel
Message-ID <[email protected]>
Hi, thanks for fixing the acronyms and explaining 1000/1024 stuff.
However, about 32bit addressing: Yes, you can use 32bit calculations
for pointers in v86 mode (as in real mode). BUT only in protected
mode you will be able to make use of offsets > 64k. In v86 mode,
the segment size is limited to 64k. This means if your program tries
to use > 1 MB (64k segments of 64k size, overlapping, starts are from
byte 0, 16, 32, 48, ... you know the story) without using the APIs
meant for doing so, but directly, it will cause a GPF (general
protection fault, exception 0x0d) which gets trapped by emm386 which
will probably in turn kill the badly behaved DOS application.

So in short: You will not get the complete fun of 32bit addressing when
you are locked in a v86 task. You have to ask your memory manager to
do access beyond the 1M+64k boundary in that case, or ask it via VCPI
to give you protected mode status (or ask via DPMI, if available).

Eric
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.