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