Page 2 of 2

Re: DOS memory managers?

Posted: Wed Sep 03, 2014 1:17 am
by linguofreak
alexfru wrote:
linguofreak wrote: As to your question "Are you sure, that in v86 mode you can access 00000h - 10FFEFh?", the answer is, "if you are on a 286 or later with A20 enabled, you absolutely can".
You mean 80386, of course, as 80286 had no v86 mode.
I meant 286. Yes, he asked about v86 mode, but the as far as the linear address generated by a given segment:offset, real mode and v86 mode are identical.

Re: DOS memory managers?

Posted: Wed Sep 03, 2014 9:24 pm
by mattrix
Try proofreading Intel manuals .... You'll see a lot of inconsistency, typos and omissions. :)
Speak of the devil, I'm back to looking at the 386 manual.

The only PM prog I've written was a simple goto PM, display "hello world", and back to RM.

V86 is way more complicated.

Not sure, but I think all the interupts in V86 generate GPF, and I'm not sure how the interupt handler needs to be set up. I think the interupt handler will need to run in PM, so V86 will have to have a TSS?

All these things seemed OK in in theory, but practice is a whole new kettle of fish.
as far as the linear address generated by a given segment:offset, real mode and v86 mode are identical.
I think switching to V86 is a bit more restrictive than real, no limits > 64k etc, or is it the descriptor table entries?

Re: DOS memory managers?

Posted: Wed Sep 03, 2014 11:28 pm
by alexfru
mattrix wrote:
Try proofreading Intel manuals .... You'll see a lot of inconsistency, typos and omissions. :)
Speak of the devil, I'm back to looking at the 386 manual.
That's probably the best manual to date. :)
V86 is way more complicated.

Not sure, but I think all the interupts in V86 generate GPF, and I'm not sure how the interupt handler needs to be set up. I think the interupt handler will need to run in PM, so V86 will have to have a TSS?
You've got the manual(s) and my code. Discover the details yourself.
as far as the linear address generated by a given segment:offset, real mode and v86 mode are identical.
I think switching to V86 is a bit more restrictive than real, no limits > 64k etc, or is it the descriptor table entries?
Officially, the limits are exactly 65535 in real mode. :)
Simulating "big real mode" in v86 is indeed a lot of fun. :)