1706f2543Smrg 2706f2543Smrg#include <xf86RamDac.h> 3706f2543Smrg 4706f2543Smrgextern _X_EXPORT RamDacHelperRecPtr IBMramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs); 5706f2543Smrgextern _X_EXPORT void IBMramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec); 6706f2543Smrgextern _X_EXPORT void IBMramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec); 7706f2543Smrgextern _X_EXPORT void IBMramdac526SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec); 8706f2543Smrgextern _X_EXPORT void IBMramdac640SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec); 9706f2543Smrgextern _X_EXPORT unsigned long IBMramdac526CalculateMNPCForClock(unsigned long RefClock, 10706f2543Smrg unsigned long ReqClock, char IsPixClock, unsigned long MinClock, 11706f2543Smrg unsigned long MaxClock, unsigned long *rM, unsigned long *rN, 12706f2543Smrg unsigned long *rP, unsigned long *rC); 13706f2543Smrgextern _X_EXPORT unsigned long IBMramdac640CalculateMNPCForClock(unsigned long RefClock, 14706f2543Smrg unsigned long ReqClock, char IsPixClock, unsigned long MinClock, 15706f2543Smrg unsigned long MaxClock, unsigned long *rM, unsigned long *rN, 16706f2543Smrg unsigned long *rP, unsigned long *rC); 17706f2543Smrgextern _X_EXPORT void IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr); 18706f2543Smrgextern _X_EXPORT void IBMramdac640HWCursorInit(xf86CursorInfoPtr infoPtr); 19706f2543Smrg 20706f2543Smrgtypedef void IBMramdac526SetBppProc(ScrnInfoPtr, RamDacRegRecPtr); 21706f2543Smrgextern _X_EXPORT IBMramdac526SetBppProc *IBMramdac526SetBppWeak(void); 22706f2543Smrg 23706f2543Smrg#define IBM524_RAMDAC ((VENDOR_IBM << 16) | 0x00) 24706f2543Smrg#define IBM524A_RAMDAC ((VENDOR_IBM << 16) | 0x01) 25706f2543Smrg#define IBM525_RAMDAC ((VENDOR_IBM << 16) | 0x02) 26706f2543Smrg#define IBM526_RAMDAC ((VENDOR_IBM << 16) | 0x03) 27706f2543Smrg#define IBM526DB_RAMDAC ((VENDOR_IBM << 16) | 0x04) 28706f2543Smrg#define IBM528_RAMDAC ((VENDOR_IBM << 16) | 0x05) 29706f2543Smrg#define IBM528A_RAMDAC ((VENDOR_IBM << 16) | 0x06) 30706f2543Smrg#define IBM624_RAMDAC ((VENDOR_IBM << 16) | 0x07) 31706f2543Smrg#define IBM624DB_RAMDAC ((VENDOR_IBM << 16) | 0x08) 32706f2543Smrg#define IBM640_RAMDAC ((VENDOR_IBM << 16) | 0x09) 33706f2543Smrg 34706f2543Smrg/* 35706f2543Smrg * IBM Ramdac registers 36706f2543Smrg */ 37706f2543Smrg 38706f2543Smrg#define IBMRGB_REF_FREQ_1 14.31818 39706f2543Smrg#define IBMRGB_REF_FREQ_2 50.00000 40706f2543Smrg 41706f2543Smrg#define IBMRGB_rev 0x00 42706f2543Smrg#define IBMRGB_id 0x01 43706f2543Smrg#define IBMRGB_misc_clock 0x02 44706f2543Smrg#define IBMRGB_sync 0x03 45706f2543Smrg#define IBMRGB_hsync_pos 0x04 46706f2543Smrg#define IBMRGB_pwr_mgmt 0x05 47706f2543Smrg#define IBMRGB_dac_op 0x06 48706f2543Smrg#define IBMRGB_pal_ctrl 0x07 49706f2543Smrg#define IBMRGB_sysclk 0x08 /* not RGB525 */ 50706f2543Smrg#define IBMRGB_pix_fmt 0x0a 51706f2543Smrg#define IBMRGB_8bpp 0x0b 52706f2543Smrg#define IBMRGB_16bpp 0x0c 53706f2543Smrg#define IBMRGB_24bpp 0x0d 54706f2543Smrg#define IBMRGB_32bpp 0x0e 55706f2543Smrg#define IBMRGB_pll_ctrl1 0x10 56706f2543Smrg#define IBMRGB_pll_ctrl2 0x11 57706f2543Smrg#define IBMRGB_pll_ref_div_fix 0x14 58706f2543Smrg#define IBMRGB_sysclk_ref_div 0x15 /* not RGB525 */ 59706f2543Smrg#define IBMRGB_sysclk_vco_div 0x16 /* not RGB525 */ 60706f2543Smrg/* #define IBMRGB_f0 0x20 */ 61706f2543Smrg 62706f2543Smrg#define IBMRGB_sysclk_n 0x15 63706f2543Smrg#define IBMRGB_sysclk_m 0x16 64706f2543Smrg#define IBMRGB_sysclk_p 0x17 65706f2543Smrg#define IBMRGB_sysclk_c 0x18 66706f2543Smrg 67706f2543Smrg#define IBMRGB_m0 0x20 68706f2543Smrg#define IBMRGB_n0 0x21 69706f2543Smrg#define IBMRGB_p0 0x22 70706f2543Smrg#define IBMRGB_c0 0x23 71706f2543Smrg#define IBMRGB_m1 0x24 72706f2543Smrg#define IBMRGB_n1 0x25 73706f2543Smrg#define IBMRGB_p1 0x26 74706f2543Smrg#define IBMRGB_c1 0x27 75706f2543Smrg#define IBMRGB_m2 0x28 76706f2543Smrg#define IBMRGB_n2 0x29 77706f2543Smrg#define IBMRGB_p2 0x2a 78706f2543Smrg#define IBMRGB_c2 0x2b 79706f2543Smrg#define IBMRGB_m3 0x2c 80706f2543Smrg#define IBMRGB_n3 0x2d 81706f2543Smrg#define IBMRGB_p3 0x2e 82706f2543Smrg#define IBMRGB_c3 0x2f 83706f2543Smrg 84706f2543Smrg#define IBMRGB_curs 0x30 85706f2543Smrg#define IBMRGB_curs_xl 0x31 86706f2543Smrg#define IBMRGB_curs_xh 0x32 87706f2543Smrg#define IBMRGB_curs_yl 0x33 88706f2543Smrg#define IBMRGB_curs_yh 0x34 89706f2543Smrg#define IBMRGB_curs_hot_x 0x35 90706f2543Smrg#define IBMRGB_curs_hot_y 0x36 91706f2543Smrg#define IBMRGB_curs_col1_r 0x40 92706f2543Smrg#define IBMRGB_curs_col1_g 0x41 93706f2543Smrg#define IBMRGB_curs_col1_b 0x42 94706f2543Smrg#define IBMRGB_curs_col2_r 0x43 95706f2543Smrg#define IBMRGB_curs_col2_g 0x44 96706f2543Smrg#define IBMRGB_curs_col2_b 0x45 97706f2543Smrg#define IBMRGB_curs_col3_r 0x46 98706f2543Smrg#define IBMRGB_curs_col3_g 0x47 99706f2543Smrg#define IBMRGB_curs_col3_b 0x48 100706f2543Smrg#define IBMRGB_border_col_r 0x60 101706f2543Smrg#define IBMRGB_border_col_g 0x61 102706f2543Smrg#define IBMRGB_botder_col_b 0x62 103706f2543Smrg#define IBMRGB_key 0x68 104706f2543Smrg#define IBMRGB_key_mask 0x6C 105706f2543Smrg#define IBMRGB_misc1 0x70 106706f2543Smrg#define IBMRGB_misc2 0x71 107706f2543Smrg#define IBMRGB_misc3 0x72 108706f2543Smrg#define IBMRGB_misc4 0x73 /* not RGB525 */ 109706f2543Smrg#define IBMRGB_key_control 0x78 110706f2543Smrg#define IBMRGB_dac_sense 0x82 111706f2543Smrg#define IBMRGB_misr_r 0x84 112706f2543Smrg#define IBMRGB_misr_g 0x86 113706f2543Smrg#define IBMRGB_misr_b 0x88 114706f2543Smrg#define IBMRGB_pll_vco_div_in 0x8e 115706f2543Smrg#define IBMRGB_pll_ref_div_in 0x8f 116706f2543Smrg#define IBMRGB_vram_mask_0 0x90 117706f2543Smrg#define IBMRGB_vram_mask_1 0x91 118706f2543Smrg#define IBMRGB_vram_mask_2 0x92 119706f2543Smrg#define IBMRGB_vram_mask_3 0x93 120706f2543Smrg#define IBMRGB_curs_array 0x100 121706f2543Smrg 122706f2543Smrg 123706f2543Smrg 124706f2543Smrg/* Constants rgb525.h */ 125706f2543Smrg 126706f2543Smrg/* RGB525_REVISION_LEVEL */ 127706f2543Smrg#define RGB525_PRODUCT_REV_LEVEL 0xf0 128706f2543Smrg 129706f2543Smrg/* RGB525_ID */ 130706f2543Smrg#define RGB525_PRODUCT_ID 0x01 131706f2543Smrg 132706f2543Smrg/* RGB525_MISC_CTRL_1 */ 133706f2543Smrg#define MISR_CNTL_ENABLE 0x80 134706f2543Smrg#define VMSK_CNTL_ENABLE 0x40 135706f2543Smrg#define PADR_RDMT_RDADDR 0x0 136706f2543Smrg#define PADR_RDMT_PAL_STATE 0x20 137706f2543Smrg#define SENS_DSAB_DISABLE 0x10 138706f2543Smrg#define SENS_SEL_BIT3 0x0 139706f2543Smrg#define SENS_SEL_BIT7 0x08 140706f2543Smrg#define VRAM_SIZE_32 0x0 141706f2543Smrg#define VRAM_SIZE_64 0x01 142706f2543Smrg 143706f2543Smrg/* RGB525_MISC_CTRL_2 */ 144706f2543Smrg#define PCLK_SEL_LCLK 0x0 145706f2543Smrg#define PCLK_SEL_PLL 0x40 146706f2543Smrg#define PCLK_SEL_EXT 0x80 147706f2543Smrg#define INTL_MODE_ENABLE 0x20 148706f2543Smrg#define BLANK_CNTL_ENABLE 0x10 149706f2543Smrg#define COL_RES_6BIT 0x0 150706f2543Smrg#define COL_RES_8BIT 0x04 151706f2543Smrg#define PORT_SEL_VGA 0x0 152706f2543Smrg#define PORT_SEL_VRAM 0x01 153706f2543Smrg 154706f2543Smrg/* RGB525_MISC_CTRL_3 */ 155706f2543Smrg#define SWAP_RB 0x80 156706f2543Smrg#define SWAP_WORD_LOHI 0x0 157706f2543Smrg#define SWAP_WORD_HILO 0x10 158706f2543Smrg#define SWAP_NIB_HILO 0x0 159706f2543Smrg#define SWAP_NIB_LOHI 0x02 160706f2543Smrg 161706f2543Smrg/* RGB525_MISC_CLK_CTRL */ 162706f2543Smrg#define DDOT_CLK_ENABLE 0x0 163706f2543Smrg#define DDOT_CLK_DISABLE 0x80 164706f2543Smrg#define SCLK_ENABLE 0x0 165706f2543Smrg#define SCLK_DISABLE 0x40 166706f2543Smrg#define B24P_DDOT_PLL 0x0 167706f2543Smrg#define B24P_DDOT_SCLK 0x20 168706f2543Smrg#define DDOT_DIV_PLL_1 0x0 169706f2543Smrg#define DDOT_DIV_PLL_2 0x02 170706f2543Smrg#define DDOT_DIV_PLL_4 0x04 171706f2543Smrg#define DDOT_DIV_PLL_8 0x06 172706f2543Smrg#define DDOT_DIV_PLL_16 0x08 173706f2543Smrg#define PLL_DISABLE 0x0 174706f2543Smrg#define PLL_ENABLE 0x01 175706f2543Smrg 176706f2543Smrg/* RGB525_SYNC_CTRL */ 177706f2543Smrg#define DLY_CNTL_ADD 0x0 178706f2543Smrg#define DLY_SYNC_NOADD 0x80 179706f2543Smrg#define CSYN_INVT_DISABLE 0x0 180706f2543Smrg#define CSYN_INVT_ENABLE 0x40 181706f2543Smrg#define VSYN_INVT_DISABLE 0x0 182706f2543Smrg#define VSYN_INVT_ENABLE 0x20 183706f2543Smrg#define HSYN_INVT_DISABLE 0x0 184706f2543Smrg#define HSYN_INVT_ENABLE 0x10 185706f2543Smrg#define VSYN_CNTL_NORMAL 0x0 186706f2543Smrg#define VSYN_CNTL_HIGH 0x04 187706f2543Smrg#define VSYN_CNTL_LOW 0x08 188706f2543Smrg#define VSYN_CNTL_DISABLE 0x0C 189706f2543Smrg#define HSYN_CNTL_NORMAL 0x0 190706f2543Smrg#define HSYN_CNTL_HIGH 0x01 191706f2543Smrg#define HSYN_CNTL_LOW 0x02 192706f2543Smrg#define HSYN_CNTL_DISABLE 0x03 193706f2543Smrg 194706f2543Smrg/* RGB525_HSYNC_CTRL */ 195706f2543Smrg#define HSYN_POS(n) (n) 196706f2543Smrg 197706f2543Smrg/* RGB525_POWER_MANAGEMENT */ 198706f2543Smrg#define SCLK_PWR_NORMAL 0x0 199706f2543Smrg#define SCLK_PWR_DISABLE 0x10 200706f2543Smrg#define DDOT_PWR_NORMAL 0x0 201706f2543Smrg#define DDOT_PWR_DISABLE 0x08 202706f2543Smrg#define SYNC_PWR_NORMAL 0x0 203706f2543Smrg#define SYNC_PWR_DISABLE 0x04 204706f2543Smrg#define ICLK_PWR_NORMAL 0x0 205706f2543Smrg#define ICLK_PWR_DISABLE 0x02 206706f2543Smrg#define DAC_PWR_NORMAL 0x0 207706f2543Smrg#define DAC_PWR_DISABLE 0x01 208706f2543Smrg 209706f2543Smrg/* RGB525_DAC_OPERATION */ 210706f2543Smrg#define SOG_DISABLE 0x0 211706f2543Smrg#define SOG_ENABLE 0x08 212706f2543Smrg#define BRB_NORMAL 0x0 213706f2543Smrg#define BRB_ALWAYS 0x04 214706f2543Smrg#define DSR_DAC_SLOW 0x02 215706f2543Smrg#define DSR_DAC_FAST 0x0 216706f2543Smrg#define DPE_DISABLE 0x0 217706f2543Smrg#define DPE_ENABLE 0x01 218706f2543Smrg 219706f2543Smrg/* RGB525_PALETTE_CTRL */ 220706f2543Smrg#define SIXBIT_LINEAR_ENABLE 0x0 221706f2543Smrg#define SIXBIT_LINEAR_DISABLE 0x80 222706f2543Smrg#define PALETTE_PARITION(n) (n) 223706f2543Smrg 224706f2543Smrg/* RGB525_PIXEL_FORMAT */ 225706f2543Smrg#define PIXEL_FORMAT_4BPP 0x02 226706f2543Smrg#define PIXEL_FORMAT_8BPP 0x03 227706f2543Smrg#define PIXEL_FORMAT_16BPP 0x04 228706f2543Smrg#define PIXEL_FORMAT_24BPP 0x05 229706f2543Smrg#define PIXEL_FORMAT_32BPP 0x06 230706f2543Smrg 231706f2543Smrg/* RGB525_8BPP_CTRL */ 232706f2543Smrg#define B8_DCOL_INDIRECT 0x0 233706f2543Smrg#define B8_DCOL_DIRECT 0x01 234706f2543Smrg 235706f2543Smrg/* RGB525_16BPP_CTRL */ 236706f2543Smrg#define B16_DCOL_INDIRECT 0x0 237706f2543Smrg#define B16_DCOL_DYNAMIC 0x40 238706f2543Smrg#define B16_DCOL_DIRECT 0xC0 239706f2543Smrg#define B16_POL_FORCE_BYPASS 0x0 240706f2543Smrg#define B16_POL_FORCE_LOOKUP 0x20 241706f2543Smrg#define B16_ZIB 0x0 242706f2543Smrg#define B16_LINEAR 0x04 243706f2543Smrg#define B16_555 0x0 244706f2543Smrg#define B16_565 0x02 245706f2543Smrg#define B16_SPARSE 0x0 246706f2543Smrg#define B16_CONTIGUOUS 0x01 247706f2543Smrg 248706f2543Smrg/* RGB525_24BPP_CTRL */ 249706f2543Smrg#define B24_DCOL_INDIRECT 0x0 250706f2543Smrg#define B24_DCOL_DIRECT 0x01 251706f2543Smrg 252706f2543Smrg/* RGB525_32BPP_CTRL */ 253706f2543Smrg#define B32_POL_FORCE_BYPASS 0x0 254706f2543Smrg#define B32_POL_FORCE_LOOKUP 0x04 255706f2543Smrg#define B32_DCOL_INDIRECT 0x0 256706f2543Smrg#define B32_DCOL_DYNAMIC 0x01 257706f2543Smrg#define B32_DCOL_DIRECT 0x03 258706f2543Smrg 259706f2543Smrg/* RGB525_PLL_CTRL_1 */ 260706f2543Smrg#define REF_SRC_REFCLK 0x0 261706f2543Smrg#define REF_SRC_EXTCLK 0x10 262706f2543Smrg#define PLL_EXT_FS_3_0 0x0 263706f2543Smrg#define PLL_EXT_FS_2_0 0x01 264706f2543Smrg#define PLL_CNTL2_3_0 0x02 265706f2543Smrg#define PLL_CNTL2_2_0 0x03 266706f2543Smrg 267706f2543Smrg/* RGB525_PLL_CTRL_2 */ 268706f2543Smrg#define PLL_INT_FS_3_0(n) (n) 269706f2543Smrg#define PLL_INT_FS_2_0(n) (n) 270706f2543Smrg 271706f2543Smrg/* RGB525_PLL_REF_DIV_COUNT */ 272706f2543Smrg#define REF_DIV_COUNT(n) (n) 273706f2543Smrg 274706f2543Smrg/* RGB525_F0 - RGB525_F15 */ 275706f2543Smrg#define VCO_DIV_COUNT(n) (n) 276706f2543Smrg 277706f2543Smrg/* RGB525_PLL_REFCLK values */ 278706f2543Smrg#define RGB525_PLL_REFCLK_MHz(n) ((n)/2) 279706f2543Smrg 280706f2543Smrg/* RGB525_CURSOR_CONTROL */ 281706f2543Smrg#define SMLC_PART_0 0x0 282706f2543Smrg#define SMLC_PART_1 0x40 283706f2543Smrg#define SMLC_PART_2 0x80 284706f2543Smrg#define SMLC_PART_3 0xC0 285706f2543Smrg#define PIX_ORDER_RL 0x0 286706f2543Smrg#define PIX_ORDER_LR 0x20 287706f2543Smrg#define LOC_READ_LAST 0x0 288706f2543Smrg#define LOC_READ_ACTUAL 0x10 289706f2543Smrg#define UPDT_CNTL_DELAYED 0x0 290706f2543Smrg#define UPDT_CNTL_IMMEDIATE 0x08 291706f2543Smrg#define CURSOR_SIZE_32 0x0 292706f2543Smrg#define CURSOR_SIZE_64 0x40 293706f2543Smrg#define CURSOR_MODE_OFF 0x0 294706f2543Smrg#define CURSOR_MODE_3_COLOR 0x01 295706f2543Smrg#define CURSOR_MODE_2_COLOR_HL 0x02 296706f2543Smrg#define CURSOR_MODE_2_COLOR 0x03 297706f2543Smrg 298706f2543Smrg/* RGB525_REVISION_LEVEL */ 299706f2543Smrg#define REVISION_LEVEL 0xF0 /* predefined */ 300706f2543Smrg 301706f2543Smrg/* RGB525_ID */ 302706f2543Smrg#define ID_CODE 0x01 /* predefined */ 303706f2543Smrg 304706f2543Smrg/* MISR status */ 305706f2543Smrg#define RGB525_MISR_DONE 0x01 306706f2543Smrg 307706f2543Smrg/* the IBMRGB640 is rather different from the rest of the RAMDACs, 308706f2543Smrg so we define a completely new set of register names for it */ 309706f2543Smrg#define RGB640_SER_07_00 0x02 310706f2543Smrg#define RGB640_SER_15_08 0x03 311706f2543Smrg#define RGB640_SER_23_16 0x04 312706f2543Smrg#define RGB640_SER_31_24 0x05 313706f2543Smrg#define RGB640_SER_WID_03_00 0x06 314706f2543Smrg#define RGB640_SER_WID_07_04 0x07 315706f2543Smrg#define RGB640_SER_MODE 0x08 316706f2543Smrg#define IBM640_SER_2_1 0x00 317706f2543Smrg#define IBM640_SER_4_1 0x01 318706f2543Smrg#define IBM640_SER_8_1 0x02 319706f2543Smrg#define IBM640_SER_16_1 0x03 320706f2543Smrg#define IBM640_SER_16_3 0x05 321706f2543Smrg#define IBM640_SER_5_1 0x06 322706f2543Smrg#define RGB640_PIXEL_INTERLEAVE 0x09 323706f2543Smrg#define RGB640_MISC_CONF 0x0a 324706f2543Smrg#define IBM640_PCLK 0x00 325706f2543Smrg#define IBM640_PCLK_2 0x40 326706f2543Smrg#define IBM640_PCLK_4 0x80 327706f2543Smrg#define IBM640_PCLK_8 0xc0 328706f2543Smrg#define IBM640_PSIZE10 0x10 329706f2543Smrg#define IBM640_LCI 0x08 330706f2543Smrg#define IBM640_WIDCTL_MASK 0x07 331706f2543Smrg#define RGB640_VGA_CONTROL 0x0b 332706f2543Smrg#define IBM640_RDBK 0x04 333706f2543Smrg#define IBM640_PSIZE8 0x02 334706f2543Smrg#define IBM640_VRAM 0x01 335706f2543Smrg#define RGB640_DAC_CONTROL 0x0d 336706f2543Smrg#define IBM640_MONO 0x08 337706f2543Smrg#define IBM640_DACENBL 0x04 338706f2543Smrg#define IBM640_SHUNT 0x02 339706f2543Smrg#define IBM640_SLOWSLEW 0x01 340706f2543Smrg#define RGB640_OUTPUT_CONTROL 0x0e 341706f2543Smrg#define IBM640_RDAI 0x04 342706f2543Smrg#define IBM640_WDAI 0x02 343706f2543Smrg#define IBM640_WATCTL 0x01 344706f2543Smrg#define RGB640_SYNC_CONTROL 0x0f 345706f2543Smrg#define IBM640_PWR 0x20 346706f2543Smrg#define IBM640_VSP 0x10 347706f2543Smrg#define IBM640_HSP 0x08 348706f2543Smrg#define IBM640_CSE 0x04 349706f2543Smrg#define IBM640_CSG 0x02 350706f2543Smrg#define IBM640_BPE 0x01 351706f2543Smrg#define RGB640_PLL_N 0x10 352706f2543Smrg#define RGB640_PLL_M 0x11 353706f2543Smrg#define RGB640_PLL_P 0x12 354706f2543Smrg#define RGB640_PLL_CTL 0x13 355706f2543Smrg#define IBM640_PLL_EN 0x04 356706f2543Smrg#define IBM640_PLL_HIGH 0x10 357706f2543Smrg#define IBM640_PLL_LOW 0x01 358706f2543Smrg#define RGB640_AUX_PLL_CTL 0x17 359706f2543Smrg#define IBM640_AUXPLL 0x04 360706f2543Smrg#define IBM640_AUX_HI 0x02 361706f2543Smrg#define IBM640_AUX_LO 0x01 362706f2543Smrg#define RGB640_CHROMA_KEY0 0x20 363706f2543Smrg#define RGB640_CHROMA_MASK0 0x21 364706f2543Smrg#define RGB640_CURS_X_LOW 0x40 365706f2543Smrg#define RGB640_CURS_X_HIGH 0x41 366706f2543Smrg#define RGB640_CURS_Y_LOW 0x42 367706f2543Smrg#define RGB640_CURS_Y_HIGH 0x43 368706f2543Smrg#define RGB640_CURS_OFFSETX 0x44 369706f2543Smrg#define RGB640_CURS_OFFSETY 0x45 370706f2543Smrg#define RGB640_CURSOR_CONTROL 0x4B 371706f2543Smrg#define IBM640_CURS_OFF 0x00 372706f2543Smrg#define IBM640_CURS_MODE0 0x01 373706f2543Smrg#define IBM640_CURS_MODE1 0x02 374706f2543Smrg#define IBM640_CURS_MODE2 0x03 375706f2543Smrg#define IBM640_CURS_ADV 0x04 376706f2543Smrg#define RGB640_CROSSHAIR_CONTROL 0x57 377706f2543Smrg#define RGB640_VRAM_MASK0 0xf0 378706f2543Smrg#define RGB640_VRAM_MASK1 0xf1 379706f2543Smrg#define RGB640_VRAM_MASK2 0xf2 380706f2543Smrg#define RGB640_DIAGS 0xfa 381706f2543Smrg#define RGB640_CURS_WRITE 0x1000 382706f2543Smrg#define RGB640_CURS_COL0 0x4800 383706f2543Smrg#define RGB640_CURS_COL1 0x4801 384706f2543Smrg#define RGB640_CURS_COL2 0x4802 385706f2543Smrg#define RGB640_CURS_COL3 0x4803 386