xref: /haiku/src/add-ons/accelerants/s3/trio64.h (revision 35db13ea5a14c9f6fee81f3de4d54a2fe42502b8)
1 /*
2 	Haiku S3 Trio64 driver adapted from the X.org S3 driver.
3 
4 	Copyright 2001  Ani Joshi <ajoshi@unixbox.com>
5 
6 	Copyright 2008 Haiku, Inc.  All rights reserved.
7 	Distributed under the terms of the MIT license.
8 
9 	Authors:
10 	Gerald Zajac 2008
11 */
12 
13 
14 #ifndef __TRIO64_H__
15 #define __TRIO64_H__
16 
17 
18 // Note that the cursor normally needs only 1024 bytes; however, if 1024 bytes
19 // are used, some of the Trio64 chips draw a short white horizontal line below
20 // and to the right of the cursor.  Setting the number of bytes to 2048 solves
21 // the problem.
22 
23 #define CURSOR_BYTES	2048		// see comment above
24 
25 
26 // Command Registers.
27 #define ADVFUNC_CNTL	0x4ae8
28 #define SUBSYS_STAT		0x42e8
29 #define SUBSYS_CNTL		0x42e8
30 #define CUR_Y			0x82e8
31 #define CUR_X			0x86e8
32 #define DESTY_AXSTP		0x8ae8
33 #define DESTX_DIASTP	0x8ee8
34 #define CUR_WIDTH		0x96e8
35 #define CMD				0x9ae8
36 #define GP_STAT			0x9ae8
37 #define FRGD_COLOR		0xa6e8
38 #define WRT_MASK		0xaae8
39 #define FRGD_MIX		0xbae8
40 #define MULTIFUNC_CNTL	0xbee8
41 
42 // Command register bits.
43 #define CMD_RECT		0x4000
44 #define CMD_BITBLT		0xc000
45 #define INC_Y			0x0080
46 #define INC_X			0x0020
47 #define DRAW			0x0010
48 #define WRTDATA			0x0001
49 
50 // Foreground mix register.
51 #define FSS_FRGDCOL		0x0020
52 #define FSS_BITBLT		0x0060
53 
54 #define GP_BUSY			0x0200
55 
56 #define SCISSORS_T		0x1000
57 #define SCISSORS_L		0x2000
58 #define SCISSORS_B		0x3000
59 #define SCISSORS_R		0x4000
60 
61 
62 #endif // __TRIO64_H__
63