Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 09 Aug 1997 16:06:47 +0200
From:      "Helmut F. Wirth" <hfwirth@ping.at>
To:        Richard Foulk <richard@pegasus.com>
Cc:        emulation@freebsd.org
Subject:   Re: Fun with DOSCMD (was Re: modifying boot mgrs FROM FREEBSD)
Message-ID:  <33EC7977.167EB0E7@ping.at>
References:  <199708090129.PAA08057@pegasus.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Richard Foulk wrote:
> I wouldn't have to be slow.  You have more horsepower on the X side
> than on the DOS side.  It has the potential of being faster I think.
> 
The implementation idea I have is this:
While under X11 supply a minimal VGA BIOS with callbacks to
the emulator. Keep track of the mode changes from the DOS programs.
Supply a video memory and a palette for the DOS program to change.
That is, if a call is made to Int10/Change palette, the emulator
would update its ides of the palette. The DOS program would write
directly into the supplied video memory, thinking it real. (There
are some details with bank switching). This would emulate an unique 
VGA mode, for example 640x480 with 256 colors. But the Xserver could
use (and in fact will) an entirley other mode. I use 1152x864 with
65536 colors (=16 bit). Therefore: As long as the application runs
in a *window* the graphics would have to be changed for the real
vodeo mode the system is using. This could be done by copying the
fake video buffer and remapping the pixels using the palette copy
supplied from the DOS program. And this would be slow. I think fast
enough to be usable, but not faster than DOS.

Using the XFree86 DGA extension and the ability to switch modes
via software maybe it would be possible to act like the DOS box
under MSWindows. This woulde be faster, but it would not be inside 
a window. The application would takeover the XServer and the entire
screen, until ASCII mode is restored.
 
Any better ideas ?
-- 
Helmut F. Wirth
Email: hfwirth@ping.at



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?33EC7977.167EB0E7>