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