📄 mqconfig.h
字号:
#ifndef _MQCONFIG_H
#define _MQCONFIG_H
// Notes on Programming convention:
// gc1REG(register) to access graphics controller 1 register
// gc2REG(register) to access graphics controller 2 register
// gcREG(register) to access graphics controller 1/2 register
// geREG(register) to access graphics engine register
// fpREG(register) to access flat panel controller register
// g1pREG(register) to access palette entry in GC1
// pmuREG(register) to access power management unit
// cpuREG(register) to access CPU interface register
/********************** Local Constant Defines - Begin **********************/
#define AT_GC1 0
#define AT_GC2 1
#define USE_OneGC 1
#define USE_OneGC_PP 2 // for PowerPoint driver
#define USE_TwoGCs 4
// For DDI/DDIDUMP interface
#define DRV_MQ_EXTENSION 0x3000
// Start from 0x8000 for internal usage
#define ENTER_GHOST_MODE 0x8000
#define LEAVE_GHOST_MODE 0x8001
#define REGISTRY_VALID 0
#define REGISTRY_INVALID 1
//Default register data if not in Registry
#define DEF_GPO 0x00 //D-STN 6x4,16bit
#define DEF_GPIO 0x00 //RevA=0x2A
#define DEF_D1_GC1 (DxOSC_ENABLE \
| DxMIU_ENABLE \
| DxMEM_REFRESH \
| DxGE_ENABLE \
| DxFP_ENABLE \
| DxGC1_ENABLE \
| DxAW1_ENABLE)
#define DEF_D1_2GCs (DxOSC_ENABLE \
| DxMIU_ENABLE \
| DxMEM_REFRESH \
| DxGE_ENABLE \
| DxFP_ENABLE \
| DxGC2_ENABLE \
| DxAW2_ENABLE)
#define DEF_D2_GC1 (DxOSC_ENABLE \
| DxMIU_ENABLE \
| DxMEM_REFRESH \
| DxGE_ENABLE)
#define DEF_D2_2GCs (DxOSC_ENABLE \
| DxMIU_ENABLE \
| DxMEM_REFRESH \
| DxGE_ENABLE)
#define DEF_DC0 (0x00a30930UL \
| FAST_POWER_DISABLE\
| OSC_ENABLE \
| PLL1_ENABLE) //0x02a3093aUL
//25.175MHz PLL1 for MIU and GE
#define DEF_PLL2 0UL //No PLL2 pre-set by default
#define DEF_PLL3 0UL //No PLL3 pre-set by default
#define DEF_MIU1 (MIU_ENABLE \
| MIU_RESET_DISABLE \
| DRAM_RESET_DISABLE) //0x00000007UL
#define DEF_MIU2 (0x00615000UL \
| CPU_PB_ENABLE \
| GE_PB_ENABLE) //0x00615084UL
//25MHz MCLK, 64ms ref period
#define DEF_MIU3 (DISPLAY_BURST8 \
| STN_R_BURST8 \
| STN_W_BURST8 \
| GE_RW_BURST8 \
| CPU_RW_BURST6 \
| 0x6d155400UL) //0x6d1556ffUL
//0x6d155400UL=various FIFO thrs
#define DEF_MIU4 0x00000000UL //No read latency request
#define DEF_MIU5 (ACT_TO_CLOSE_5 \
| ACT_TO_COMMAND_3 \
| CLOSE_TO_ACT_3 \
| LATENCY_2 \
| DUMMY_IN_COMMANDS) //0x00000f0dUL
#define DEF_AWX 336
#define DEF_AWY 147
#define DEF_AWBPP 8
#define DEF_PWM 0x000000a1
// #define DEF_CONTRAST 0x35
#define DEF_CONTRAST 0x09
#define DEF_BRIGHT 16
#define DEF_PMMISC 0x008c0980UL //div by 4
// Hoang - Begin
// For OEM panel information
#define DEF_FPCtrl 0x6321
#define DEF_FPPinCtrl 0x20
#define DEF_FPSTNCtrl 0xBD0001
#define DEF_HD 0x320041C
#define DEF_VD 0x2570273
#define DEF_HS 0x3C70347
#define DEF_VS 0x25D0259
#define DEF_PLLFreq 00280000
#define DEF_PLLData 0xF50A30
// Hoang - End
//Flags for SetupLCDTiming()
#define RELOAD_TIMING 0x0001
#define LCD_BY_GC2 0x0002
#define NO_SETUP_GC1 0x0004
#ifdef SUPPORT_ROTATE
#define PoolSize 80*1024
#endif //SUPPORT_ROTATE
#if 1 //TWTEST
#define DumpREGValue(rvar, var) \
DEBUGMSG(GPE_ZONE_INIT,(TEXT("%s = %x\r\n"),rvar, var));
#else
#define DumpREGValue(rvar, var)
#endif
//Helper macros to be used locally
#define IS_REG_OK( rvar ) \
ERROR_SUCCESS == RegQueryValueEx (hRegKey, rvar, NULL, \
&ulValType, (PBYTE)&ulData, &ulValLen)
#define REG_ASSIGN( var, rvar, val1, val2 ) \
var = (IS_REG_OK(rvar)) ? val1: val2; \
DumpREGValue(rvar, var);
#ifdef SUPPORT_ROTATE
#define SWAP_WIDTH_HEIGHT( w, h ) \
switch( m_nRotate ) \
{ \
default: \
case R_0: \
case R_180: \
break; \
case R_90: \
case R_270: \
{ \
ULONG _ulTmp; \
_ulTmp = w; \
w = h; \
h = _ulTmp; \
} \
break; \
}
#define ROTATE_VRAMSURF( Surf, SurfSave, p2, p3 ) \
RotateVramSurf(Surf , &SurfSave, p2, p3);
#else //SUPPORT_ROTATE
#define SWAP_WIDTH_HEIGHT( w, h )
#define ROTATE_VRAMSURF( Surf, SurfSave, p2, p3 )
#endif //SUPPORT_ROTATE
#ifdef DEBUG
#define PRINT_SETMODE PrintSetModeMsg()
#else
#define PRINT_SETMODE
#endif //DEBUG
#define COMPUTE_REFRESH_PERIOD( freq ) \
((DWORD)((((MEM_REFRESH_PERIOD / (1000.0 * 1024.0 / freq)) \
* (1000000.0)) - 5.0 + 0.5)))
/********************** Local Constant Defines - End *********************/
/****************** Function References - Begin ***************************/
/////External global references
extern void HW_Enable_LCD( USHORT );
extern void HW_Enable_CRT( USHORT );
extern BOOL APIENTRY GPEEnableDriver( ULONG iEngineVersion, ULONG cj,
DRVENABLEDATA *pded, PENGCALLBACKS pEngCallbacks);
//This gets around problems exporting from .lib
/////Local global references
BOOL HookMQDrv(DRVENABLEDATA *pded,DRVENABLEDATA *pOldded);
ULONG DrvEnableDriverOpen(HKEY *hRegKey );
BOOL DrvEnableDriverDone(ULONG iEngineVersion, ULONG cj,
DRVENABLEDATA *pded, PENGCALLBACKS pEngCallbacks);
void MQDrvDisablePDEV(DHPDEV dhpdev);
ULONG GetStride(ULONG ulDeskTopX, ULONG ulBpp);
ULONG GetDSTNMemorySize(ULONG ulLCDx, ULONG ulLCDy, BOOL bIsColor);
ULONG GetEstMem(ULONG ulDeskTopX, ULONG ulDeskTopY, ULONG ulBPP,
USHORT usLCDx, USHORT usLCDy,BOOL bIsColor, BOOL bIsDSTN);
ULONG GetDDIDumpMem(ULONG ulDeskTopX, ULONG ulDeskTopY, ULONG ulBPP,
USHORT usLCDx, USHORT usLCDy, BOOL bIsColor, BOOL bIsDSTN);
ULONG GetMinDDIDumpMem(ULONG ulDDIDumpSize);
/****************** Function References - End ***************************/
#include "emulinit.cpp" //no op for normal case
#endif //_MQCONFIG_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -