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:

Run sysdm.cpl
Disable your graphic card's driver in Hardware tab -- Device Manager button
Run cmd
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.

File comment: Main BIOS INT 10h patch to run before graphics programs. [59.85 KiB]
Downloaded 274 times
File comment: Basic demo code for being able to enable VGA graphics under Windows 7. [57.98 KiB]
Downloaded 290 times
File comment: Sphere points 3D-rotation demo in mode 13h that works under Windows 7. [60.27 KiB]
Downloaded 286 times

Page 1 of 1 All times are UTC - 6 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group