mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.2 KiB
88 lines
2.2 KiB
/*++
|
|
|
|
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... */
|