xserver on OpenGL

Kendall Bennett KendallB@scitechsoft.com
Mon, 08 Dec 2003 13:50:21 -0800


Keith Packard <keithp@keithp.com> wrote:

> Around 18 o'clock on Dec 5, "Kendall Bennett" wrote:
> 
> > What do you mean by "real" real-mode? The only options you have are
> > virtual 86 mode or an x86 emulator. You cannot put the CPU into real
> > mode unless you want the entire kernel to come to a screeching halt.
> 
> Yes, precisely.  Flip the CPU to real mode, run the BIOS and flip
> back to protected mode. It's been done (in Windows), and modern
> CPUs even help make it a bit easier (you used to have to reset the
> CPU to get to real mode). 

Done in Windows? Who and where has done this in Windows? 

Sure switching to and from 'real' real mode is possible, but you would 
need to ensure that *all* hardware interrupts are disabled for the 
duration of the call unless you plan to install interrupt handler in real 
mode to do something useful. Disabling interrupts for the duration of a 
BIOS call is a *long* time! That is the reason that QNX for instance uses 
a BIOS emulator as well, rather than using 'real' real mode. They added 
the ability to do it, but the results were terrible so they never 
actually shipped it (AFAIK).

> Anything else requires lots of code to virtualize a DOS capable
> machine, as we've all seen in the x86emu and vm86 code that runs
> video bioses in the xfree86 and kdrive DDXs. 

You don't need to virtualise an entire DOS capable machine in order to 
use vitual 86 mode. You just need to be prepared to deal with any 
hardware interrupts that might occur when in v86 mode, and make sure they 
are routed to the appropriate places.

Regards,

---
Kendall Bennett
Chief Executive Officer
SciTech Software, Inc.
Phone: (530) 894 8400
http://www.scitechsoft.com

~ SciTech SNAP - The future of device driver technology! ~