On Fri, 20 Oct 2000, Kevin Lawton wrote:
> Likely one of the areas that will initially give us problems
> is with DOS (real mode) apps that use memory management routines
> and other code that transitions in/out of protected mode,
> especially when the expect that descriptor caches are still
> loaded with PM values. Or paged-real-mode etc.
>
> Using v86 mode to run RM code doesn't lend itself to emulating
> this kind of code, because when you switch from the PM monitor
> back to the v86 code, the segment regs are reloaded, and the
> 'transitionary' values in the segment regs are lost.
>
Hmmm.. interesting tricks they are doing switching PM/RM/PM without
reloading segment regs, can't imagine why could it be useful :-) (knowing
that value of segment reg is interpreted in entirely different ways in PM
and RM). But that's problem with segment regs, aren't descriptor caches
automatically reloaded when it switches to PM (if not, that's very
strange) and simply bypassed when the CPU is in RM?
> As per some text I posted recently, we can fix this by running
> RM code in PM-16 segments, and using SBE to virtualize segment
> loads, at least until there is no inconsitency in the descriptor
> caches. This should help out running more DOS apps.
>
Good idea, there will be a good usage for PM16 segs which are vastly
forgotten and abandoned nowadays! Better compatibility and performance of
DOS apps are necessary to become a truly full virtualization and could be
considered as major advantage over competition.
> Also, some mods to the BIOS may be necessary. Not sure I
> support everything necessary.
>
BIOS compability probably should be easy to check when running RM
apps.
Uhus