|
|
1.1 root 1: /******************************Module*Header*******************************\
2: * Module Name: xga.h
3: *
4: * All the XGA specific driver h file stuff
5: *
6: * Copyright (c) 1992 Microsoft Corporation
7: *
8: \**************************************************************************/
9:
10:
11: //
12: // XGA I/O register definitions
13: //
14:
15: #define OP_MODE_REG 0x0
16: #define APP_CTL_REG 0x1
17: #define INT_ENABLE_REG 0x4
18: #define INT_STATUS_REG 0x5
19: #define VMEM_CONTROL_REG 0x6
20: #define APP_INDEX_REG 0x8
21: #define MEMACC_MODE_REG 0x9
22: #define INDEX_REG 0xA
23: #define DATA_IN_REG 0xB
24: #define DATA_OUT_REG 0xC
25:
26: //
27: // XGA Pointer (cursor) specific registers
28: //
29:
30: #define SPRITE_HORZ_START_LOW 0x30
31: #define SPRITE_HORZ_START_HIGH 0x31
32: #define SPRITE_HORZ_PRESET 0x32
33:
34: #define SPRITE_VERT_START_LOW 0x33
35: #define SPRITE_VERT_START_HIGH 0x34
36: #define SPRITE_VERT_PRESET 0x35
37:
38: #define SPRITE_CONTROL 0x36
39: #define SC 0x01
40:
41: #define SPRITE_COLOR_REG0_RED 0x38
42: #define SPRITE_COLOR_REG0_GREEN 0x39
43: #define SPRITE_COLOR_REG0_BLUE 0x3a
44:
45: #define SPRITE_COLOR_REG1_RED 0x3b
46: #define SPRITE_COLOR_REG1_GREEN 0x3c
47: #define SPRITE_COLOR_REG1_BLUE 0x3d
48:
49: #define SPRITE_INDEX_LOW 0x60
50: #define SPRITE_INDEX_HIGH 0x61
51: #define SPRITE_DATA 0x6a
52:
53: // XGA Chip Stuff
54:
55: // Start of Pel Operation Register defines
56:
57: #define BS_BACK_COLOR 0x00000000 // Background source
58: #define BS_SRC_PEL_MAP 0x80000000
59:
60: #define FS_FORE_COLOR 0x00000000 // Foreground source
61: #define FS_SRC_PEL_MAP 0x20000000
62:
63: #define STEP_DRAW_AND_STEP_READ 0x02000000 // Step Control
64: #define STEP_LINE_DRAW_READ 0x03000000
65: #define STEP_DRAW_AND_STEP_WRITE 0x04000000
66: #define STEP_LINE_DRAW_WRITE 0x05000000
67: #define STEP_PX_BLT 0x08000000
68: #define STEP_INVERTING_PX_BLT 0x09000000
69: #define STEP_AREA_FILL_PX_BLT 0x0A000000
70:
71: #define SRC_PEL_MAP_A 0x00100000 // Source Bitmap
72: #define SRC_PEL_MAP_B 0x00200000
73: #define SRC_PEL_MAP_C 0x00300000
74:
75: #define DST_PEL_MAP_A 0x00010000 // Dest Bitmap
76: #define DST_PEL_MAP_B 0x00020000
77: #define DST_PEL_MAP_C 0x00030000
78:
79: #define PATT_PEL_MAP_A 0x00001000 // Pattern Bitmap
80: #define PATT_PEL_MAP_B 0x00002000
81: #define PATT_PEL_MAP_C 0x00003000
82: #define PATT_FOREGROUND 0x00008000
83: #define PATT_GEN_FROM_SRC 0x00009000
84:
85: #define MSK_DISABLE 0x00000000 // Mask (clipping)
86: #define MSK_BOUNDARY_ENABLE 0x00000040
87: #define MSK_MAP_ENABLE 0x00000080
88:
89: #define DM_ALL_PELS 0x00000000 // Display modes
90: #define DM_FIRST_PEL_NULL 0x00000010
91: #define DM_LAST_PEL_NULL 0x00000020
92: #define DM_AREA_BOUNDARY 0x00000030
93:
94: #define OCT_DX 0x00000004 // Octants
95: #define OCT_DY 0x00000002
96: #define OCT_DZ 0x00000001
97:
98: // End of Pel Operation Register defines
99:
100: #define MASK_MAP 0x00 // Pel Map Index (PMI) values
101: #define PEL_MAP_A 0x01
102: #define PEL_MAP_B 0x02
103: #define PEL_MAP_C 0x03
104:
105: #define PO_INTEL 0x00 // Pel Order (PO) values
106: #define PO_MOTOROLA 0x08
107:
108: #define PS_1_BIT 0x00 // Pel Size (PS) values
109: #define PS_2_BIT 0x01
110: #define PS_4_BIT 0x02
111: #define PS_8_BIT 0x03
112:
113: #define PEL_MAP_FORMAT (PO_INTEL | PS_8_BIT)
114: #define PATT_MAP_FORMAT (PO_MOTOROLA | PS_1_BIT)
115:
116: #define XGA_0 0x00 // XGA Mix functions
117: #define XGA_S_AND_D 0x01
118: #define XGA_S_AND_NOT_D 0x02
119: #define XGA_S 0x03
120: #define XGA_NOT_S_AND_D 0x04
121: #define XGA_D 0x05
122: #define XGA_S_XOR_D 0x06
123: #define XGA_S_OR_D 0x07
124: #define XGA_NOT_S_AND_NOT_D 0x08
125: #define XGA_S_XOR_NOT_D 0x09
126: #define XGA_NOT_D 0x0A
127: #define XGA_S_OR_NOT_D 0x0B
128: #define XGA_NOT_S 0x0C
129: #define XGA_NOT_S_OR_D 0x0D
130: #define XGA_NOT_S_OR_NOT_D 0x0E
131: #define XGA_1 0x0F
132: #define XGA_MAX 0x10
133: #define XGA_MIN 0x11
134: #define XGA_ADD_WITH_SATURATE 0x12
135: #define XGA_SUBTRACT_D_MINUS_S_WITH_SATURATE 0x13
136: #define XGA_SUBTRACT_S_MINUS_D_WITH_SATURATE 0x14
137: #define XGA_AVERAGE 0x15
138:
139: #define CCCC_TRUE 0x0 // Color Compare Condition codes
140: #define CCCC_DD_GT_CCV 0x1
141: #define CCCC_DD_EQ_CCV 0x2
142: #define CCCC_DD_LT_CCV 0x3
143: #define CCCC_FALSE 0x4
144: #define CCCC_DD_GT_EQ_CCV 0x5
145: #define CCCC_DD_NOT_EQ_CCV 0x6
146: #define CCCC_DD_LT_EQ_CCV 0x7
147:
148:
149: extern VOID vWaitForCoProcessor(PPDEV ppdev, ULONG ulDelay) ;
150:
151: extern BOOL bSetXgaClipping(PPDEV ppdev, CLIPOBJ *pco, PULONG pulXgaMask) ;
152:
153: // Acceleration Control.
154:
155: #define CACHED_FONTS 0x1
156:
157: #define SCRN_TO_SCRN_CPY 0x01
158: #define SOLID_PATTERN 0x02
159:
160: #define XGA_ZERO_INIT 0x1
161: #define XGA_LOCK_MEM 0x2
162:
163: extern HANDLE hCpAlloc(PPDEV ppdev, ULONG nSize, ULONG ulFlags) ;
164: extern HANDLE hCpFree(PPDEV ppdev, HANDLE hXgaMem) ;
165: extern PVOID pCpMemLock(PPDEV ppdev, HANDLE hXgaMem, ULONG ulFlags) ;
166: extern BOOL bCpMemUnLock(PPDEV ppdev, HANDLE hXgaMem) ;
167: extern BOOL bCpMmInitHeap(PPDEV ppdev) ;
168: extern BOOL bCpMmDestroyHeap(PPDEV ppdev) ;
169:
170:
171: // BitBlt stuff
172:
173: // Define the A vector polynomial bits
174: //
175: // Each bit corresponds to one of the terms in the polynomial
176: //
177: // Rop(D,S,P) = a + a D + a S + a P + a DS + a DP + a SP + a DSP
178: // 0 d s p ds dp sp dsp
179:
180: #define AVEC_NOT 0x01
181: #define AVEC_D 0x02
182: #define AVEC_S 0x04
183: #define AVEC_P 0x08
184: #define AVEC_DS 0x10
185: #define AVEC_DP 0x20
186: #define AVEC_SP 0x40
187: #define AVEC_DSP 0x80
188:
189: #define AVEC_NEED_SOURCE (AVEC_S | AVEC_DS | AVEC_SP | AVEC_DSP)
190: #define AVEC_NEED_PATTERN (AVEC_P | AVEC_DP | AVEC_SP | AVEC_DSP)
191:
192:
193: // Hooks and Driver function table.
194:
195: #define HOOKS_BMF8BPP (HOOK_BITBLT | HOOK_TEXTOUT | \
196: HOOK_COPYBITS | HOOK_STROKEPATH | HOOK_PAINT)
197: #define HOOKS_BMF16BPP 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.