On Mon, 18 Dec 2000, Kevin Lawton wrote:

> John Bdckstrand wrote:
> > 
> > > Well, can't we simply use the MMU to mark pages where MMIO can happen
> > > and then use the page fault to process them ? This way, we don't
> > > need to care about checking addresses. We only check them when a
> > > fault happens.
> > 
> > IIRC, thats very slow. an interrupt+processing per memory access
> > isnt very fast. btw, isnt it done like this today?
> > 
> > and didnt the dosemu guy talk about this? I think he said that
> > doing it by PG:ing was slow...
> 
> Though, IMO I think it's best to just get rid of MMIO stuff,
> and forget about the above. Either have special drivers, or use
> the video card directly somehow if you want performance with
> crappy 640x480x16 mode.

I can only agree with most of the above: you do want to avoid this 
640x480x16 mode altogether, and if you need to use it, you can use either
Bochs or DOSEmu. Mainly old DOS programs, up to about DOOM (1994) use
it; mode-X programs have exactly the same problems, but hardly any newer
programs.

Just get rid of MMIO is a bit harsh. But I agree it should not be the
priority and I would think most of the general speed-up would be gained by
letting ring-3 code run without prescanning. 

I believe vmware (the enemy ;-) uses the intermediate rings 1 and/or 2
somehow and win4lin uses special segments and a modified GDT/IDT which is
just enough for Win9x. At least that's third hand knowledge for me.

Bart


Reply via email to