573 lines
16 KiB
C
573 lines
16 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1992 Microsoft Corporation
|
|||
|
Copyright (c) 1993 Compaq Computer Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
Modeset.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module contains all the global data used by the Compaq QVision
|
|||
|
miniport driver.
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
Kernel mode
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
--*/
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
//
|
|||
|
// only one banking variable must be defined
|
|||
|
//
|
|||
|
#if TWO_32K_BANKS
|
|||
|
#if ONE_64K_BANK
|
|||
|
#error !!ERROR: two types of banking defined!
|
|||
|
#endif
|
|||
|
#elif ONE_64K_BANK
|
|||
|
#else
|
|||
|
#error !!ERROR: banking type must be defined!
|
|||
|
#endif
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
|
|||
|
#include "cmdcnst.h"
|
|||
|
#include "modeqv.h"
|
|||
|
|
|||
|
//---------------------------------------------------------------------------
|
|||
|
//
|
|||
|
// Memory map table -
|
|||
|
//
|
|||
|
// These memory maps are used to save and restore the physical video buffer.
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// Memory map table definition
|
|||
|
//
|
|||
|
|
|||
|
typedef struct {
|
|||
|
ULONG MaxSize; // Maximum addressable size of memory
|
|||
|
ULONG Start; // Start address of display memory
|
|||
|
} MEMORYMAPS;
|
|||
|
|
|||
|
MEMORYMAPS MemoryMaps[] = {
|
|||
|
|
|||
|
// length start
|
|||
|
// ------ -----
|
|||
|
{ 0x08000, 0xB0000}, // all mono text modes (7)
|
|||
|
{ 0x08000, 0xB8000}, // all color text modes (0, 1, 2, 3,
|
|||
|
{ 0x20000, 0xA0000}, // all VGA graphics modes
|
|||
|
{ 0x100000, 0xE00000}, // QVision linear frame buffer
|
|||
|
// (not yet implemented)
|
|||
|
};
|
|||
|
|
|||
|
//
|
|||
|
// Video mode table - contains information and commands for initializing each
|
|||
|
// mode. These entries must correspond with those in VIDEO_MODE_VGA. The first
|
|||
|
// entry is commented; the rest follow the same format, but are not so
|
|||
|
// heavily commented.
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// The currently supported QVISION modes are only supported for
|
|||
|
// for non-interlaced monitors.
|
|||
|
//
|
|||
|
|
|||
|
VIDEOMODE ModesVGA[] = {
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 0
|
|||
|
// Color test mode 3, 720x400, 9x16 char cell (VGA)
|
|||
|
// BIOS mode: 0x03
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{
|
|||
|
VIDEO_MODE_COLOR, // flags that this mode is a color mode, but not graphics
|
|||
|
4, // four planes
|
|||
|
1, // one bit of colour per plane
|
|||
|
80, 25, // 80x25 text resolution
|
|||
|
720, 400, // 720x400 pixels on screen
|
|||
|
160, 0x10000, // 160 bytes per scan line, 64K of CPU-addressable bitmap
|
|||
|
NoBanking, // no banking supported or needed in this mode
|
|||
|
MemMap_CGA, // the memory mapping is the standard CGA memory mapping
|
|||
|
// of 32K at B8000
|
|||
|
vmem256k, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x03},
|
|||
|
#else
|
|||
|
{QV_TEXT_720x400x4},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_TEXT_720x400x4_INDEX
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 1
|
|||
|
// Color text mode 3, 640x350, 8x14 char cell (EGA)
|
|||
|
// BIOS mode:0x10
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR, // flags that this mode is a color mode, but not graphics
|
|||
|
4, // four planes
|
|||
|
1, // one bit of colour per plane
|
|||
|
80, 25, // 80x25 text resolution
|
|||
|
640, 350, // 640x350 pixels on screen
|
|||
|
160, 0x10000, // 160 bytes per scan line, 64K of CPU-addressable bitmap
|
|||
|
NoBanking, // no banking supported or needed in this mode
|
|||
|
MemMap_CGA, // the memory mapping is the standard CGA memory mapping
|
|||
|
// of 32K at B8000
|
|||
|
vmem256k, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x10},
|
|||
|
#else
|
|||
|
{QV_TEXT_640x350x4},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_TEXT_640x350x4_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 2
|
|||
|
// Standard VGA Color graphics, 640x480x4 - 16 colors
|
|||
|
// BIOS mode: 0x12
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 80, 30,
|
|||
|
640, 480, 80, 0x10000, NoBanking, MemMap_VGA,
|
|||
|
vmem256k, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x12},
|
|||
|
#else
|
|||
|
{QV_TEXT_640x480x4},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_TEXT_640x480x4_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 3
|
|||
|
// Standard VGA Color graphics, 640x480x4 - 16 colors
|
|||
|
// BIOS mode: 0x12
|
|||
|
// Refresh rate: 60Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 4, 1, 80, 30,
|
|||
|
640, 480, 80, 0x10000, NoBanking, MemMap_VGA,
|
|||
|
vmem256k, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x12},
|
|||
|
#else
|
|||
|
{QV_TEXT_640x480x4},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
60, // refresh rate
|
|||
|
QV_TEXT_640x480x4_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 4
|
|||
|
// VGA Color graphics, 640x480x8 - 256 colors
|
|||
|
// BIOS mode: 0x32
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30,
|
|||
|
640, 480, 1024, 0x80000, NormalBanking, MemMap_VGA,
|
|||
|
vmem512k, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x32},
|
|||
|
#else
|
|||
|
{QV_640x480x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_640x480x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 5
|
|||
|
// VGA Color graphics, 640x480x8 - 256 colors
|
|||
|
// BIOS mode: 0x32
|
|||
|
// Refresh rate: 60Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 80, 30,
|
|||
|
640, 480, 1024, 0x80000, NormalBanking, MemMap_VGA,
|
|||
|
vmem512k, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x32},
|
|||
|
#else
|
|||
|
{QV_640x480x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
60, // refresh rate
|
|||
|
QV_640x480x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 6
|
|||
|
// SVGA color graphics, 800x600x8 - 256 colors
|
|||
|
// BIOS Mode: 0x34.
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 100, 37,
|
|||
|
800, 600, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x34}, // mode is not supported by BIOS
|
|||
|
#else
|
|||
|
{QV_800x600x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_800x600x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 7
|
|||
|
// SVGA color graphics, 800x600x8 - 256 colors
|
|||
|
// BIOS Mode: 0x34.
|
|||
|
// Refresh rate: 60Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 100, 37,
|
|||
|
800, 600, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x34}, // mode is not supported by BIOS
|
|||
|
#else
|
|||
|
{QV_800x600x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
60, // refresh rate
|
|||
|
QV_800x600x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 8
|
|||
|
// SVGA color graphics, 800x600x8 - 256 colors
|
|||
|
// BIOS Mode: 0x34.
|
|||
|
// Refresh rate: 72Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 100, 37,
|
|||
|
800, 600, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x34}, // mode is not supported by BIOS
|
|||
|
#else
|
|||
|
{QV_800x600x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
72, // refresh rate
|
|||
|
QV_800x600x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 9
|
|||
|
// SVGA color graphics, 1024x768x8 - 256 colors
|
|||
|
// BIOS mode:0x38
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1024, 768, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x38},
|
|||
|
#else
|
|||
|
{QV_1024x768x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_1024x768x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 10
|
|||
|
// SVGA color graphics, 1024x768x8 - 256 colors
|
|||
|
// BIOS mode:0x38
|
|||
|
// Refresh rate: 60Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1024, 768, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x38},
|
|||
|
#else
|
|||
|
{QV_1024x768x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
60, // refresh rate
|
|||
|
QV_1024x768x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 11
|
|||
|
// SVGA color graphics, 1024x768x8 - 256 colors
|
|||
|
// BIOS mode:0x38
|
|||
|
// Refresh rate: 66Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1024, 768, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x38},
|
|||
|
#else
|
|||
|
{QV_1024x768x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
66, // refresh rate
|
|||
|
QV_1024x768x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 12
|
|||
|
// SVGA color graphics, 1024x768x8 - 256 colors
|
|||
|
// BIOS mode:0x38
|
|||
|
// Refresh rate: 72Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1024, 768, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x38},
|
|||
|
#else
|
|||
|
{QV_1024x768x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
72, // refresh rate
|
|||
|
QV_1024x768x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 13
|
|||
|
// SVGA color graphics, 1024x768x8 - 256 colors
|
|||
|
// BIOS mode:0x38
|
|||
|
// Refresh rate: 75Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1024, 768, 1024, 0x100000, NormalBanking, MemMap_VGA,
|
|||
|
vmem1Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x38},
|
|||
|
#else
|
|||
|
{QV_1024x768x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
75, // refresh rate
|
|||
|
QV_1024x768x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 14
|
|||
|
// SVGA color graphics, 1280x1024x8 - 256 colors
|
|||
|
// BIOS mode: 3A
|
|||
|
// Refresh rate: Hardware default
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1280, 1024, 2048, 0x200000, NormalBanking, MemMap_VGA,
|
|||
|
vmem2Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x3A},
|
|||
|
#else
|
|||
|
{QV_1280x1024x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
USE_HARDWARE_DEFAULT, // refresh rate
|
|||
|
QV_1280x1024x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 15
|
|||
|
// SVGA color graphics, 1280x1024x8 - 256 colors
|
|||
|
// BIOS mode: 3A
|
|||
|
// Refresh rate: 60Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1280, 1024, 2048, 0x200000, NormalBanking, MemMap_VGA,
|
|||
|
vmem2Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x3A},
|
|||
|
#else
|
|||
|
{QV_1280x1024x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
60, // refresh rate
|
|||
|
QV_1280x1024x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 16
|
|||
|
// SVGA color graphics, 1280x1024x8 - 256 colors
|
|||
|
// BIOS mode: 3A
|
|||
|
// Refresh rate: 68Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1280, 1024, 2048, 0x200000, NormalBanking, MemMap_VGA,
|
|||
|
vmem2Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x3A},
|
|||
|
#else
|
|||
|
{QV_1280x1024x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
68, // refresh rate
|
|||
|
QV_1280x1024x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
// Mode index 17
|
|||
|
// SVGA color graphics, 1280x1024x8 - 256 colors
|
|||
|
// BIOS mode: 3A
|
|||
|
// Refresh rate: 75Hz
|
|||
|
//////////////////////////////////////////////////////////////
|
|||
|
{ VIDEO_MODE_COLOR+VIDEO_MODE_GRAPHICS, 1, 8, 128, 48,
|
|||
|
1280, 1024, 2048, 0x200000, NormalBanking, MemMap_VGA,
|
|||
|
vmem2Meg, // video memory required to run mode
|
|||
|
FALSE, // ModeValid default is always ok
|
|||
|
#ifdef INIT_INT10
|
|||
|
{0x3A},
|
|||
|
#else
|
|||
|
{QV_1280x1024x8},
|
|||
|
#endif
|
|||
|
//
|
|||
|
// $0005 - MikeD - 02/08/94
|
|||
|
// Daytona support added value for ulRefreshRate and index for QVCMDS
|
|||
|
//
|
|||
|
76, // refresh rate
|
|||
|
QV_1280x1024x8_INDEX
|
|||
|
},
|
|||
|
|
|||
|
}; // ModesVGA
|
|||
|
|
|||
|
|
|||
|
ULONG NumVideoModes = sizeof(ModesVGA) / sizeof(VIDEOMODE);
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
//
|
|||
|
// Data used to set the Graphics and Sequence Controllers to put the
|
|||
|
// VGA into a planar state at A0000 for 64K, with plane 2 enabled for
|
|||
|
// reads and writes, so that a font can be loaded, and to disable that mode.
|
|||
|
//
|
|||
|
|
|||
|
// Settings to enable planar mode with plane 2 enabled.
|
|||
|
//
|
|||
|
|
|||
|
USHORT EnableA000Data[] = {
|
|||
|
OWM,
|
|||
|
SEQ_ADDRESS_PORT,
|
|||
|
1,
|
|||
|
0x0100,
|
|||
|
|
|||
|
OWM,
|
|||
|
GRAPH_ADDRESS_PORT,
|
|||
|
3,
|
|||
|
0x0204, // Read Map = plane 2
|
|||
|
0x0005, // Graphics Mode = read mode 0, write mode 0
|
|||
|
0x0406, // Graphics Miscellaneous register = A0000 for 64K, not odd/even,
|
|||
|
// graphics mode
|
|||
|
OWM,
|
|||
|
SEQ_ADDRESS_PORT,
|
|||
|
3,
|
|||
|
0x0402, // Map Mask = write to plane 2 only
|
|||
|
0x0404, // Memory Mode = not odd/even, not full memory, graphics mode
|
|||
|
0x0300, // end sync reset
|
|||
|
EOD
|
|||
|
};
|
|||
|
|
|||
|
//
|
|||
|
// Settings to disable the font-loading planar mode.
|
|||
|
//
|
|||
|
|
|||
|
USHORT DisableA000Color[] = {
|
|||
|
OWM,
|
|||
|
SEQ_ADDRESS_PORT,
|
|||
|
1,
|
|||
|
0x0100,
|
|||
|
|
|||
|
OWM,
|
|||
|
GRAPH_ADDRESS_PORT,
|
|||
|
3,
|
|||
|
0x0004, 0x1005, 0x0E06,
|
|||
|
|
|||
|
OWM,
|
|||
|
SEQ_ADDRESS_PORT,
|
|||
|
3,
|
|||
|
0x0302, 0x0204, 0x0300, // end sync reset
|
|||
|
EOD
|
|||
|
|
|||
|
};
|
|||
|
|