From: sinster@banner.ucsc.edu (Darren Senn) Subject: Re: DOS emulation and BIOS Date: 1 May 1992 18:24:42 GMT
In article <5038@umriscc.isc.umr.edu>, dminer@mcs213a.cs.umr.edu (Dan Miner) writes:
> BIOS can't be loading into any protected mode segment
> because "most" BIOS don't run under protected mode. If
> you have a BIOS that can run in this needs to rewrite it so
> that the registers stay in their segments... :)
This is not true. BIOS for 80286 and better processors runs equally
well in protected mode, real mode, or V86 mode. If there is any part of
a PC that I know better than others, that's the BIOS. This statement is
true for all BIOS's that follow the IBM BIOS specification. I know that
Award, AMI, and Phoenix all follow this spec. I dunno about other BIOS's,
but one feels that it is safe to assume that IBM follows the spec.
You are confused on two counts here:
a) MS-DOS can't be loaded in a protected mode segment. DPMI drivers
can, but not MS-DOS. This is distinguished from the BIOS.
b) A V86 TSS is _not_ a protected mode segment. It is, to use
the phrase from the iAPX 486 Technical Ref., "... an enhanced
8086 environment." This means that the environment
appears (to software) to be an 8086 that's been enhanced
with the extra instructions that your processor supports.
All instructions accepted by your processor while running in real mode are
accepted in V86 mode... some of them cause traps, but they're all accepted.
If your emulation library decides to allow those trapped instructions to
execute, and manipulates their return value, then software is incapable of
distinguishing between v86 mode and real mode.
So nyah! :)