windows-nt/Source/XPSP1/NT/drivers/video/ms/weitek/mini/p9000.h
2020-09-26 16:20:57 +08:00

89 lines
2.2 KiB
C

/*++
Copyright (c) 1993 Weitek Corporation
Module Name:
p9000.h
Abstract:
This module contains the definitions specific to the Weitek P9000.
Environment:
Kernel mode
Revision History may be found at the end of this file.
--*/
//
// Offsets of the P9000 registers from the base memory address.
//
#define SYSCONFIG 0x4 // W8720 system configuration register
#define SRCTL 0x0138L // Screen repaint timing register
#define MEMCONF 0x0184L // Memory configuration regester
#define WMIN 0x80220 // Clipping window minimum register
#define WMAX 0x80224 // Clipping window maximum register
#define FOREGROUND 0x80200 // Foreground color register
#define METACORD 0x81218 // Meta-coordinate loading register
#define RASTER 0x80218 // Raster Op register
#define VRTC 0x011CL // Vertical scan counter
//
// Defines for P9000 specific drawing operations.
//
#define REC 0x100 // Or with METACORD when entering rectangles
#define QUAD 0x80008 // Draw a quadrilateral
#define FORE 0xFF00 // Foreground color only write mode
//
// Enumerate the various P9000 memory configuration values.
//
typedef enum
{
P90_MEM_CFG_1,
P90_MEM_CFG_2,
P90_MEM_CFG_3,
P90_MEM_CFG_4,
P90_MEM_CFG_5
} P90_MEM_CFG;
//
// Define bits in the P9000 Screen Repaint Timing Control Reg (SRCTL)
//
#define VSYNC_INTERNAL 0x0100L
#define HSYNC_INTERNAL 0x0080L
#define COMPOSITE_SYNC 0x0040L
#define VIDEO_NORMAL 0x0020L
#define HBLNK_RELOAD 0x0010L
#define DISP_BUFFER_1 0x0008L
#define QSF_SELECT 0x0007L
//
// Masks for P9000 registers.
//
#define P9_COORD_MASK 0x1fff1fffL
//
// Macro used to wait for P9000 vertical retrace.
//
#if 0
#define WAIT_FOR_RETRACE() \
ulStrtScan = P9_RD_REG(P91_VRTC); \
while ((ulCurScan = P9_RD_REG(P91_VRTC)) >= ulStrtScan) \
{ \
ulStrtScan = ulCurScan; \
}
#endif
#define WAIT_FOR_RETRACE() /* The above loses sync on p9100... */