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 #ifndef _DEV_SBUS_ZXREG_H_
63 #define _DEV_SBUS_ZXREG_H_
64
65
66 #define ZX_OFF_UNK2 0x00000000
67 #define ZX_OFF_LC_SS0_KRN 0x00200000
68 #define ZX_OFF_LC_SS0_USR 0x00201000
69 #define ZX_OFF_LD_SS0 0x00400000
70 #define ZX_OFF_LD_GBL 0x00401000
71 #define ZX_OFF_LX_CROSS 0x00600000
72 #define ZX_OFF_LX_CURSOR 0x00601000
73 #define ZX_OFF_UNK 0x00602000
74 #define ZX_OFF_SS0 0x00800000
75 #define ZX_OFF_LC_SS1_KRN 0x01200000
76 #define ZX_OFF_LC_SS1_USR 0x01201000
77 #define ZX_OFF_LD_SS1 0x01400000
78 #define ZX_OFF_SS1 0x01800000
79
80
81 #define ZX_ATTR_PICK_DISABLE 0x00000000
82 #define ZX_ATTR_PICK_2D 0x80000000
83 #define ZX_ATTR_PICK_3D 0xa0000000
84 #define ZX_ATTR_PICK_2D_REND 0xc0000000
85 #define ZX_ATTR_PICK_3D_REND 0xe0000000
86
87 #define ZX_ATTR_DCE_DISABLE 0x00000000
88 #define ZX_ATTR_DCE_ENABLE 0x10000000
89
90 #define ZX_ATTR_APE_DISABLE 0x00000000
91 #define ZX_ATTR_APE_ENABLE 0x08000000
92
93 #define ZX_ATTR_COLOR_VAR 0x00000000
94 #define ZX_ATTR_COLOR_CONST 0x04000000
95
96 #define ZX_ATTR_AA_DISABLE 0x02000000
97 #define ZX_ATTR_AA_ENABLE 0x01000000
98
99 #define ZX_ATTR_ABE_BG 0x00000000
100 #define ZX_ATTR_ABE_FB 0x00800000
101
102 #define ZX_ATTR_ABE_DISABLE 0x00000000
103 #define ZX_ATTR_ABE_ENABLE 0x00400000
104
105 #define ZX_ATTR_BLTSRC_A 0x00000000
106 #define ZX_ATTR_BLTSRC_B 0x00200000
107
108 #define ZX_ROP_ZERO (0x0 << 18)
109 #define ZX_ROP_NEW_AND_OLD (0x8 << 18)
110 #define ZX_ROP_NEW_AND_NOLD (0x4 << 18)
111 #define ZX_ROP_NEW (0xc << 18)
112 #define ZX_ROP_NNEW_AND_OLD (0x2 << 18)
113 #define ZX_ROP_OLD (0xa << 18)
114 #define ZX_ROP_NEW_XOR_OLD (0x6 << 18)
115 #define ZX_ROP_NEW_OR_OLD (0xe << 18)
116 #define ZX_ROP_NNEW_AND_NOLD (0x1 << 18)
117 #define ZX_ROP_NNEW_XOR_NOLD (0x9 << 18)
118 #define ZX_ROP_NOLD (0x5 << 18)
119 #define ZX_ROP_NEW_OR_NOLD (0xd << 18)
120 #define ZX_ROP_NNEW (0x3 << 18)
121 #define ZX_ROP_NNEW_OR_OLD (0xb << 18)
122 #define ZX_ROP_NNEW_OR_NOLD (0x7 << 18)
123 #define ZX_ROP_ONES (0xf << 18)
124
125 #define ZX_ATTR_HSR_DISABLE 0x00000000
126 #define ZX_ATTR_HSR_ENABLE 0x00020000
127
128 #define ZX_ATTR_WRITEZ_DISABLE 0x00000000
129 #define ZX_ATTR_WRITEZ_ENABLE 0x00010000
130
131 #define ZX_ATTR_Z_VAR 0x00000000
132 #define ZX_ATTR_Z_CONST 0x00008000
133
134 #define ZX_ATTR_WCLIP_DISABLE 0x00000000
135 #define ZX_ATTR_WCLIP_ENABLE 0x00004000
136
137 #define ZX_ATTR_MONO 0x00000000
138 #define ZX_ATTR_STEREO_LEFT 0x00001000
139 #define ZX_ATTR_STEREO_RIGHT 0x00003000
140
141 #define ZX_ATTR_WE_DISABLE 0x00000000
142 #define ZX_ATTR_WE_ENABLE 0x00000800
143
144 #define ZX_ATTR_FCE_DISABLE 0x00000000
145 #define ZX_ATTR_FCE_ENABLE 0x00000400
146
147 #define ZX_ATTR_RE_DISABLE 0x00000000
148 #define ZX_ATTR_RE_ENABLE 0x00000200
149
150 #define ZX_ATTR_GE_DISABLE 0x00000000
151 #define ZX_ATTR_GE_ENABLE 0x00000100
152
153 #define ZX_ATTR_BE_DISABLE 0x00000000
154 #define ZX_ATTR_BE_ENABLE 0x00000080
155
156 #define ZX_ATTR_RGBE_DISABLE 0x00000000
157 #define ZX_ATTR_RGBE_ENABLE 0x00000380
158
159 #define ZX_ATTR_OE_DISABLE 0x00000000
160 #define ZX_ATTR_OE_ENABLE 0x00000040
161
162 #define ZX_ATTR_ZE_DISABLE 0x00000000
163 #define ZX_ATTR_ZE_ENABLE 0x00000020
164
165 #define ZX_ATTR_FORCE_WID 0x00000010
166
167 #define ZX_ATTR_FC_PLANE_MASK 0x0000000e
168
169 #define ZX_ATTR_BUFFER_A 0x00000000
170 #define ZX_ATTR_BUFFER_B 0x00000001
171
172
173 #define ZX_CSR_BLT_BUSY 0x20000000
174
175 struct zx_draw {
176 u_int32_t zd_pad0[896];
177 u_int32_t zd_csr;
178 u_int32_t zd_wid;
179 u_int32_t zd_wmask;
180 u_int32_t zd_widclip;
181 u_int32_t zd_vclipmin;
182 u_int32_t zd_vclipmax;
183 u_int32_t zd_pickmin;
184 u_int32_t zd_pickmax;
185 u_int32_t zd_fg;
186 u_int32_t zd_bg;
187 u_int32_t zd_src;
188 u_int32_t zd_dst;
189 u_int32_t zd_extent;
190 u_int32_t zd_pad1[3];
191 u_int32_t zd_setsem;
192 u_int32_t zd_clrsem;
193 u_int32_t zd_clrpick;
194 u_int32_t zd_clrdat;
195 u_int32_t zd_alpha;
196 u_int32_t zd_pad2[11];
197 u_int32_t zd_winbg;
198 u_int32_t zd_planemask;
199 u_int32_t zd_rop;
200 u_int32_t zd_z;
201 u_int32_t zd_dczf;
202 u_int32_t zd_dczb;
203 u_int32_t zd_dcs;
204 u_int32_t zd_dczs;
205 u_int32_t zd_pickfb;
206 u_int32_t zd_pickbb;
207 u_int32_t zd_dcfc;
208 u_int32_t zd_forcecol;
209 u_int32_t zd_door[8];
210 u_int32_t zd_pick[5];
211 };
212
213
214 #define ZX_EXTENT_DIR_FORWARDS 0x00000000
215 #define ZX_EXTENT_DIR_BACKWARDS 0x80000000
216
217 struct zx_draw_ss1 {
218 u_int32_t zd_pad0[957];
219 u_int32_t zd_misc;
220 };
221 #define ZX_SS1_MISC_ENABLE 0x00000001
222 #define ZX_SS1_MISC_STEREO 0x00000002
223
224 #define ZX_ADDRSPC_OBGR 0x00
225 #define ZX_ADDRSPC_Z 0x01
226 #define ZX_ADDRSPC_W 0x02
227 #define ZX_ADDRSPC_FONT_OBGR 0x04
228 #define ZX_ADDRSPC_FONT_Z 0x05
229 #define ZX_ADDRSPC_FONT_W 0x06
230 #define ZX_ADDRSPC_O 0x08
231 #define ZX_ADDRSPC_B 0x09
232 #define ZX_ADDRSPC_G 0x0a
233 #define ZX_ADDRSPC_R 0x0b
234
235 struct zx_command {
236 u_int32_t zc_csr;
237 u_int32_t zc_addrspace;
238 u_int32_t zc_fontmsk;
239 u_int32_t zc_fontt;
240 u_int32_t zc_extent;
241 u_int32_t zc_src;
242 u_int32_t zc_dst;
243 u_int32_t zc_copy;
244 u_int32_t zc_fill;
245 };
246
247 #define ZX_CROSS_TYPE_CLUT0 0x00001000
248 #define ZX_CROSS_TYPE_CLUT1 0x00001001
249 #define ZX_CROSS_TYPE_CLUT2 0x00001002
250 #define ZX_CROSS_TYPE_WID 0x00001003
251 #define ZX_CROSS_TYPE_UNK 0x00001006
252 #define ZX_CROSS_TYPE_VIDEO 0x00002003
253 #define ZX_CROSS_TYPE_CLUTDATA 0x00004000
254
255 #define ZX_CROSS_CSR_ENABLE 0x00000008
256 #define ZX_CROSS_CSR_PROGRESS 0x00000004
257 #define ZX_CROSS_CSR_UNK 0x00000002
258 #define ZX_CROSS_CSR_UNK2 0x00000001
259
260 struct zx_cross {
261 u_int32_t zx_type;
262 u_int32_t zx_csr;
263 u_int32_t zx_value;
264 };
265
266 struct zx_cursor {
267 u_int32_t zcu_pad0[4];
268 u_int32_t zcu_type;
269 u_int32_t zcu_misc;
270 u_int32_t zcu_sxy;
271 u_int32_t zcu_data;
272 };
273
274 #endif