Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

95 lines
3.0 KiB

/*++
Copyright (c) 1993, 1994 Weitek Corporation
Module Name:
p91dac.h
Abstract:
This module contains ramdac definitions specific to the Weitek P9100.
Environment:
Kernel mode
Revision History may be found at the end of this file.
--*/
//
// P9100 relocatable memory mapped BT485 register definitions.
//
// Note: An extra 2 byte offset is added to the register offset in order
// to align the offset on the byte of the Dword which contains the
// DAC data.
//
#define P9100_RAMWRITE 0x00000200 + 2
#define P9100_PALETDATA 0x00000204 + 2
#define P9100_PIXELMASK 0x00000208 + 2
#define P9100_RAMREAD 0x0000020C + 2
#define P9100_COLORWRITE 0x00000210 + 2
#define P9100_COLORDATA 0x00000214 + 2
#define P9100_COMREG0 0x00000218 + 2
#define P9100_COLORREAD 0x0000021C + 2
#define P9100_COMREG1 0x00000220 + 2
#define P9100_COMREG2 0x00000224 + 2
#define P9100_COMREG3 0x00000228 + 2
#define P9100_STATREG 0x00000228 + 2
#define P9100_CURSORDATA 0x0000022C + 2
#define P9100_CURSORX0 0x00000230 + 2
#define P9100_CURSORX1 0x00000234 + 2
#define P9100_CURSORY0 0x00000238 + 2
#define P9100_CURSORY1 0x0000023C + 2
//
// P9100 relocatable memory mapped IBM 525 register definitions.
//
// Note: An extra 2 byte offset is added to the register offset in order
// to align the offset on the byte of the Dword which contains the
// DAC data.
//
#define P9100_IBM525_PAL_WRITE 0x00000200 + 2
#define P9100_IBM525_PAL_DATA 0x00000204 + 2
#define P9100_IBM525_PEL_MASK 0x00000208 + 2
#define P9100_IBM525_PAL_READ 0x0000020C + 2
#define P9100_IBM525_INDEX_LOW 0x00000210 + 2
#define P9100_IBM525_INDEX_HIGH 0x00000214 + 2
#define P9100_IBM525_INDEX_DATA 0x00000218 + 2
#define P9100_IBM525_INDEX_CTL 0x0000021C + 2
typedef union {
ULONG ul;
USHORT aw[2];
UCHAR aj[4];
} UWB ;
#define IBM525_WR_DAC(index, data) \
{ \
ULONG ulIndex; \
UWB uwb; \
\
uwb.aj[0] = (UCHAR) data; \
uwb.aj[1] = uwb.aj[0]; \
uwb.aw[1] = uwb.aw[0]; \
\
ulIndex = index & ~0x3; \
\
P9_WR_REG(ulIndex, uwb.ul); \
}
#define IBM525_RD_DAC(index, val) \
{ \
ULONG ulIndex; \
UWB uwb; \
\
ulIndex = index & ~0x3; \
\
uwb.ul = P9_RD_REG(ulIndex); \
\
uwb.aj[3] = uwb.aj[2]; \
uwb.aw[0] = uwb.aw[1]; \
\
val = uwb.aj[0]; \
}