hi all
i have a video display mirror driver.
i am looking to capture the full screen dos text.
how can i capture the mode change?
how can i capture the actual content changes?
assaf
hi all
i have a video display mirror driver.
i am looking to capture the full screen dos text.
how can i capture the mode change?
how can i capture the actual content changes?
assaf
I beleive full-screen DOS box is handled by a different driver than the one
that normally handles the display. At least that’s how our driver works.
So basicly, you get a DrvAssertMode(…, FALSE) called to your driver, and
then perhaps a DrvDisablePDEV(…). Once this is done, it’s out of your
hands, and the VGA Bios will handle all drawing to the screen. Of course,
there must be some sort of VGA/BIOS driver in the system, but the normal
display driver and miniport are not involved with the text-mode display.
Even worse, an applicaiton that is written for DOS may well write directly
to the video memory, so it’s not even going in as a windows call, just a
write to a memory location (0xA000:). [although Windows is
trapping these writes under the Virtual 8086 mode].
I’m not sure if there is any way to actually mirror these operations.
–
Mats
xxxxx@lists.osr.com wrote on 09/17/2004 04:38:50 PM:
> hi all
>
> i have a video display mirror driver.
> i am looking to capture the full screen dos text.
> how can i capture the mode change?
> how can i capture the actual content changes?
>
> assaf
>
>
> —
> Questions? First check the Kernel Driver FAQ at http://www.
> osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@3dlabs.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
> ForwardSourceID:NT00003B32
> I beleive full-screen DOS box is handled by a different driver than the one
that normally handles the display. At least that’s how our driver works.
Surely, by vga.sys. This is documented.
If your card is port-compatible with VGA - then you must set VGACompatible in
the registry, and the OS will switch to vga.sys when NTVDM goes full screen.
Otherwise, your miniport must support VGA IOCTLs, and they will be called when
NTVDM goes full screen.
then perhaps a DrvDisablePDEV(…). Once this is done, it’s out of your
hands, and the VGA Bios will handle all drawing to the screen.
Usually the DOS apps are drawing by direct hardware access. Some old games keep
the whole 64KB of VGA screen in usual memory, and stupidly memcpy it to 0xA0000
on each frame.
Another have lesser stupid memcpy, fine-tuned for the pilot cockpit shape for
instance (like in Wing Commander).
From what I know, NTVDM+the VGA paths in the miniport (be it vga.sys or your
miniport) provide the necessary environment for the DOS app - by emulating the
ports and video memory at 0xA0000.
When NTVDM is full screen, the the DOS app’s 0xA0000 is really physical
0xA0000. Surely the miniport must participate in establishing this mapping.
Even worse, an applicaiton that is written for DOS may well write directly
to the video memory, so it’s not even going in as a windows call, just a
write to a memory location (0xA000:). [although Windows is
> trapping these writes under the Virtual 8086 mode].
The old DOS games draw very fast while running in full-screen NTVDM. So, looks
like there is no trapping done. Just the physical 0xA0000 is mapped to DOS VM’s
0xA0000.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
(1) First VgaCompatible must be set to 1 in the registry or these calls will
not be made into you miniport driver.
(2) See the ET4000 sample miniport driver from the NT 4.0 DDK as a sample
for supporting VgaCompatible.
(3) If you have VgaCompatible set to 1 Windows will call your miniport to
save the Dos screen memory and to restore the Dos screen memory. You will
need to support IOCTL_VIDEO_ENABLE_VDM, IOCTL_VIDEO_SAVE_HARDWARE_STATE (
To save the Dos screen memory), IOCTL_VIDEO_RESTORE_HARDWARE_STATE, etc.
Note see the ET4000 sample miniport driver in the NT 4.0 DDK.
Sincerely
William Michael Jones
“assaf” wrote in message news:xxxxx@ntdev…
> hi all
>
> i have a video display mirror driver.
> i am looking to capture the full screen dos text.
> how can i capture the mode change?
> how can i capture the actual content changes?
>
> assaf
>
>