Nate Edel said:
"32-bit Real" (aka "unreal mode") was never formally supported, was it?
It was one of those things that were never really mentioned except as a loud
whisper. Intel programming docs had a specific procedure that you had to
follow in order to switch back into Real Mode from Protected Mode, which
included setting the segment descriptor size limit back down to 16-bit,
prior to switching to Real Mode -- the RM segments would inherit the
previous PM segment size limits. However, people discovered that if you
ignored that procedure, you could still switch back into Real Mode, and your
RM segments would have a greater than 16-bit size limit.
Also, 16-bit protected and 32-bit protected mode are not really two separate
modes. A IA32 processor in protected mode can have a mix of 32-bit and
16-bit segments.
No, they weren't really separate modes. I was just calling them that for
illustrative purposes. 32-bit PM was a superset of 16-bit PM, or 16-bit PM
was a subset of 32-bit PM, however you want to look at it.
You might make a case for V86 being separate from real mode, however.
V86 was a very wierd little animal, sort of a bastard child of RM and PM. It
acted like RM for DOS programs running under it, but it followed all of the
rules of PM, since it was running as a special kind of segment within PM.
It was a kludge, no doubt about it, but an especially important kludge,
which I think did more to drive the initial acceptance of 32-bit processors
than 32-bit operating systems did.
I don't think most people were even aware that when they bought their 386
computers and ran DOS on it, that they were actually running it under a
Protected Mode OS. Most people's first experience with a PM OS was not
through Windows or OS/2 or Unix, but it was simply DOS running under an
Extended Memory Manager. The EMM, like Qemm386, was a supervisor OS which
ran DOS underneath it as a client OS inside a V86 shell, and provided DOS
with extended memory management services, while letting DOS handle disk i/o
and file system management, etc. But the V86 shell was the all important
bridge between Real Mode and Protected Mode that drove acceptance of the
32-bit OSes.
AMD64 removes support for the V86 mode while under Long Mode, because
there's very few DOS applications left nowadays.
Yousuf Khan