|Bona Fide OS Development
|Enable full-screen mode consoles in Windows 7 32-bit
|Page 1 of 1|
|Author:||~ [ Fri Oct 04, 2019 12:48 pm ]|
|Post subject:||Enable full-screen mode consoles in Windows 7 32-bit|
Look at the attached ZIP samples.
They contain .COM files capable of displaying VGA console graphics.
The procedure to enable full screen consoles in 32-bit Windows is this:
Disable your graphic card's driver in Hardware tab -- Device Manager button
Run start from this console to open more VGA-capable ones
Press Alt+Enter to make it full screen
Press Alt+Enter again to return to Windows
Re-enable your graphic card's driver in Hardware tab -- Device Manager button
Now your open consoles or new ones
will be capable of entering full-screen mode.
If your video is trashed when returning,
just run monoff.exe from the ZIPs,
or run a Windows video mode changing program
to fix it.
The key for making the program work is to
set video mode with the BIOS first, then access
ports manually. It seems that Windows 7 blocks
the effect of port writes from the BIOS, but if we
call it first and then set VGA registers manually,
it seems that Windows 7 caches the hardware
resources that were requested by privileged BIOS
code and allows us to access them manually too
from the same process.
The consoles are left enabled for native CGA/EGA/VGA,
which means that they must be configured by a
global OS process (probably the GUI/CLI subsystem),
and then the rest of programs that we open are
allowed to access those functions due to the global
hardware permisson cache.
We need to make a skeleton to easily initialize
graphics modes for MS-DOS applications compatible
with the Windows 7 graphics console.
I learned this trick thanks to ZSNES 1.36, the only
MS-DOS graphics program that works under
Windows 7 (see the README.TXT for more infomation).
It also makes me think that if we access hardware
and other resources in this way, Windows will allow us
to access hardware that otherwise wouldn't let us
reach with such ease thanks to an apparent
permission cache per process, specially MS-DOS ones.
Running programs from the current DOS executable
is also left, to display graphics programs for which we
don't have feasible source, from our wrapper.
|Page 1 of 1||All times are UTC - 6 hours [ DST ]|
|Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group