1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
/*
* Mesa 3-D graphics library
* Version: 5.0
*
* Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* DOS/DJGPP device driver v1.3 for Mesa 5.0 -- MGA2064W register mnemonics
*
* Copyright (c) 2003 - Borca Daniel
* Email : dborca@yahoo.com
* Web : http://www.geocities.com/dborca
*/
#ifndef MGA_REG_H_included
#define MGA_REG_H_included
/* Matrox hardware registers: */
#define M_AR0 0x1C60
#define M_AR1 0x1C64
#define M_AR2 0x1C68
#define M_AR3 0x1C6C
#define M_AR4 0x1C70
#define M_AR5 0x1C74
#define M_AR6 0x1C78
#define M_BCOL 0x1C20
#define M_CXBNDRY 0x1C80
#define M_CXLEFT 0x1CA0
#define M_CXRIGHT 0x1CA4
#define M_DR0 0x1CC0
#define M_DR2 0x1CC8
#define M_DR3 0x1CCC
#define M_DR4 0x1CD0
#define M_DR6 0x1CD8
#define M_DR7 0x1CDC
#define M_DR8 0x1CE0
#define M_DR10 0x1CE8
#define M_DR11 0x1CEC
#define M_DR12 0x1CF0
#define M_DR14 0x1CF8
#define M_DR15 0x1CFC
#define M_DWGCTL 0x1C00
#define M_FCOL 0x1C24
#define M_FIFOSTATUS 0x1E10
#define M_FXBNDRY 0x1C84
#define M_FXLEFT 0x1CA8
#define M_FXRIGHT 0x1CAC
#define M_ICLEAR 0x1E18
#define M_IEN 0x1E1C
#define M_LEN 0x1C5C
#define M_MACCESS 0x1C04
#define M_OPMODE 0x1E54
#define M_PAT0 0x1C10
#define M_PAT1 0x1C14
#define M_PITCH 0x1C8C
#define M_PLNWT 0x1C1C
#define M_RESET 0x1E40
#define M_SGN 0x1C58
#define M_SHIFT 0x1C50
#define M_SRC0 0x1C30
#define M_SRC1 0x1C34
#define M_SRC2 0x1C38
#define M_SRC3 0x1C3C
#define M_STATUS 0x1E14
#define M_VCOUNT 0x1E20
#define M_XDST 0x1CB0
#define M_XYEND 0x1C44
#define M_XYSTRT 0x1C40
#define M_YBOT 0x1C9C
#define M_YDST 0x1C90
#define M_YDSTLEN 0x1C88
#define M_YDSTORG 0x1C94
#define M_YTOP 0x1C98
#define M_ZORG 0x1C0C
#define M_EXEC 0x0100
/* DWGCTL: opcod */
#define M_DWG_LINE_OPEN 0x0
#define M_DWG_AUTOLINE_OPEN 0x1
#define M_DWG_LINE_CLOSE 0x2
#define M_DWG_AUTOLINE_CLOSE 0x3
#define M_DWG_TRAP 0x4
#define M_DWG_TEXTURE_TRAP 0x5
#define M_DWG_BITBLT 0x8
#define M_DWG_FBITBLT 0xC
#define M_DWG_ILOAD 0x9
#define M_DWG_ILOAD_SCALE 0xD
#define M_DWG_ILOAD_FILTER 0xF
#define M_DWG_IDUMP 0xA
/* DWGCTL: atype */
#define M_DWG_RPL (0x0 << 4)
#define M_DWG_RSTR (0x1 << 4)
#define M_DWG_ZI (0x3 << 4)
#define M_DWG_BLK (0x4 << 4)
#define M_DWG_I (0x7 << 4)
/* DWGCTL: linear */
#define M_DWG_LINEAR (0x1 << 7)
/* DWGCTL: zmode */
#define M_DWG_NOZCMP (0x0 << 8)
#define M_DWG_ZE (0x2 << 8)
#define M_DWG_ZNE (0x3 << 8)
#define M_DWG_ZLT (0x4 << 8)
#define M_DWG_ZLTE (0x5 << 8)
#define M_DWG_ZGT (0x6 << 8)
#define M_DWG_ZGTE (0x7 << 8)
/* DWGCTL: solid */
#define M_DWG_SOLID (0x1 << 11)
/* DWGCTL: arzero */
#define M_DWG_ARZERO (0x1 << 12)
/* DWGCTL: sgnzero */
#define M_DWG_SGNZERO (0x1 << 13)
/* DWGCTL: shiftzero */
#define M_DWG_SHFTZERO (0x1 << 14)
/* DWGCTL: bop */
#define M_DWG_BOP_XOR (0x6 << 16)
#define M_DWG_BOP_AND (0x8 << 16)
#define M_DWG_BOP_SRC (0xC << 16)
#define M_DWG_BOP_OR (0xE << 16)
/* DWGCTL: trans */
#define M_DWG_TRANS_0 (0x0 << 20)
#define M_DWG_TRANS_1 (0x1 << 20)
#define M_DWG_TRANS_2 (0x2 << 20)
#define M_DWG_TRANS_3 (0x3 << 20)
#define M_DWG_TRANS_4 (0x4 << 20)
#define M_DWG_TRANS_5 (0x5 << 20)
#define M_DWG_TRANS_6 (0x6 << 20)
#define M_DWG_TRANS_7 (0x7 << 20)
#define M_DWG_TRANS_8 (0x8 << 20)
#define M_DWG_TRANS_9 (0x9 << 20)
#define M_DWG_TRANS_A (0xA << 20)
#define M_DWG_TRANS_B (0xB << 20)
#define M_DWG_TRANS_C (0xC << 20)
#define M_DWG_TRANS_D (0xD << 20)
#define M_DWG_TRANS_E (0xE << 20)
#define M_DWG_TRANS_F (0xF << 20)
/* DWGCTL: bltmod */
#define M_DWG_BMONOLEF (0x0 << 25)
#define M_DWG_BMONOWF (0x4 << 25)
#define M_DWG_BPLAN (0x1 << 25)
#define M_DWG_BFCOL (0x2 << 25)
#define M_DWG_BUYUV (0xE << 25)
#define M_DWG_BU32BGR (0x3 << 25)
#define M_DWG_BU32RGB (0x7 << 25)
#define M_DWG_BU24BGR (0xB << 25)
#define M_DWG_BU24RGB (0xF << 25)
/* DWGCTL: pattern */
#define M_DWG_PATTERN (0x1 << 29)
/* DWGCTL: transc */
#define M_DWG_TRANSC (0x1 << 30)
/* OPMODE: */
#define M_DMA_GENERAL (0x0 << 2)
#define M_DMA_BLIT (0x1 << 2)
#define M_DMA_VECTOR (0x2 << 2)
/* SGN: */
#define M_SDXL (0x1 << 1)
#define M_SDXR (0x1 << 5)
/* VGAREG */
#define M_CRTC_INDEX 0x1FD4
#define M_CRTC_DATA 0x1FD5
#define M_CRTC_EXT_INDEX 0x1FDE
#define M_CRTC_EXT_DATA 0x1FDF
#define M_MISC_R 0x1FCC
#define M_MISC_W 0x1FC2
/* CRTCEXT3: */
#define M_MGAMODE (0x1 << 7)
#endif
|