Home | History | Annotate | Line # | Download | only in dev
grf_etreg.h revision 1.1.4.2
      1  1.1.4.2  thorpej /*	$NetBSD: grf_etreg.h,v 1.1.4.2 1996/06/11 05:42:07 thorpej Exp $	*/
      2      1.1    veego 
      3      1.1    veego /*
      4      1.1    veego  * Copyright (c) 1996 Tobias Abt
      5      1.1    veego  * Copyright (c) 1995 Ezra Story
      6      1.1    veego  * Copyright (c) 1995 Kari Mettinen
      7      1.1    veego  * Copyright (c) 1994 Markus Wild
      8      1.1    veego  * Copyright (c) 1994 Lutz Vieweg
      9      1.1    veego  * All rights reserved.
     10      1.1    veego  *
     11      1.1    veego  * Redistribution and use in source and binary forms, with or without
     12      1.1    veego  * modification, are permitted provided that the following conditions
     13      1.1    veego  * are met:
     14      1.1    veego  * 1. Redistributions of source code must retain the above copyright
     15      1.1    veego  *    notice, this list of conditions and the following disclaimer.
     16      1.1    veego  * 2. Redistributions in binary form must reproduce the above copyright
     17      1.1    veego  *    notice, this list of conditions and the following disclaimer in the
     18      1.1    veego  *    documentation and/or other materials provided with the distribution.
     19      1.1    veego  * 3. All advertising materials mentioning features or use of this software
     20      1.1    veego  *    must display the following acknowledgement:
     21      1.1    veego  *      This product includes software developed by Lutz Vieweg.
     22      1.1    veego  * 4. The name of the author may not be used to endorse or promote products
     23      1.1    veego  *    derived from this software without specific prior written permission
     24      1.1    veego  *
     25      1.1    veego  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
     26      1.1    veego  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
     27      1.1    veego  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
     28      1.1    veego  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
     29      1.1    veego  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
     30      1.1    veego  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     31      1.1    veego  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     32      1.1    veego  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     33      1.1    veego  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
     34      1.1    veego  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     35      1.1    veego  */
     36      1.1    veego 
     37      1.1    veego #ifndef _GRF_ETREG_H
     38      1.1    veego #define _GRF_ETREG_H
     39      1.1    veego 
     40      1.1    veego /*
     41      1.1    veego  * Written & Copyright by Kari Mettinen, Ezra Story.
     42      1.1    veego  *
     43      1.1    veego  * This is derived from Cirrus driver source
     44      1.1    veego  */
     45      1.1    veego 
     46      1.1    veego /* Extension to grfvideo_mode to support text modes.
     47      1.1    veego  * This can be passed to both text & gfx functions
     48      1.1    veego  * without worry.  If gv.depth == 4, then the extended
     49      1.1    veego  * fields for a text mode are present.
     50      1.1    veego  */
     51      1.1    veego struct grfettext_mode {
     52  1.1.4.2  thorpej 	struct grfvideo_mode gv;
     53  1.1.4.2  thorpej 	unsigned short	fx;		/* font x dimension */
     54  1.1.4.2  thorpej 	unsigned short	fy;		/* font y dimension */
     55  1.1.4.2  thorpej 	unsigned short	cols;		/* screen dimensions */
     56  1.1.4.2  thorpej 	unsigned short	rows;
     57  1.1.4.2  thorpej 	void		*fdata;		/* font data */
     58  1.1.4.2  thorpej 	unsigned short	fdstart;
     59  1.1.4.2  thorpej 	unsigned short	fdend;
     60      1.1    veego };
     61      1.1    veego 
     62      1.1    veego 
     63      1.1    veego /* Tseng boards types, stored in ettype in grf_et.c.
     64      1.1    veego  * used to decide how to handle Pass-through, etc.
     65      1.1    veego  */
     66      1.1    veego 
     67      1.1    veego #define OMNIBUS		2181
     68      1.1    veego #define DOMINO		2167
     69      1.1    veego #define MERLIN		2117
     70      1.1    veego 
     71      1.1    veego /* VGA controller types */
     72  1.1.4.2  thorpej #define ET4000	0
     73  1.1.4.2  thorpej #define ETW32	1
     74      1.1    veego 
     75      1.1    veego /* DAC types */
     76  1.1.4.2  thorpej #define SIERRA11483	0	/* Sierra 11483 HiColor DAC */
     77  1.1.4.2  thorpej #define SIERRA15025	1	/* Sierra 15025 TrueColor DAC */
     78  1.1.4.2  thorpej #define MUSICDAC	2	/* MUSIC TrueColor DAC */
     79  1.1.4.2  thorpej #define MERLINDAC	3	/* Merlin's BrookTree TrueColor DAC */
     80      1.1    veego 
     81      1.1    veego /* read VGA register */
     82      1.1    veego #define vgar(ba, reg) (*(((volatile unsigned char *)ba)+reg))
     83      1.1    veego 
     84      1.1    veego /* write VGA register */
     85      1.1    veego #define vgaw(ba, reg, val) \
     86      1.1    veego 	*(((volatile unsigned char *)ba)+reg) = ((unsigned char)val)
     87      1.1    veego 
     88      1.1    veego /*
     89      1.1    veego  * defines for the used register addresses (mw)
     90      1.1    veego  *
     91      1.1    veego  * NOTE: there are some registers that have different addresses when
     92      1.1    veego  *       in mono or color mode. We only support color mode, and thus
     93      1.1    veego  *       some addresses won't work in mono-mode!
     94      1.1    veego  *
     95      1.1    veego  * General and VGA-registers taken from retina driver. Fixed a few
     96      1.1    veego  * bugs in it. (SR and GR read address is Port + 1, NOT Port)
     97      1.1    veego  *
     98      1.1    veego  */
     99      1.1    veego 
    100      1.1    veego /* General Registers: */
    101      1.1    veego #define GREG_STATUS0_R		0x03C2
    102      1.1    veego #define GREG_STATUS1_R		0x03DA
    103      1.1    veego #define GREG_MISC_OUTPUT_R	0x03CC
    104  1.1.4.2  thorpej #define GREG_MISC_OUTPUT_W	0x03C2
    105      1.1    veego #define GREG_FEATURE_CONTROL_R	0x03CA
    106      1.1    veego #define GREG_FEATURE_CONTROL_W	0x03DA
    107      1.1    veego #define GREG_POS		0x0102
    108      1.1    veego #define	GREG_HERCULESCOMPAT	0x03BF
    109      1.1    veego #define	GREG_VIDEOSYSENABLE	0x03C3
    110      1.1    veego #define	GREG_DISPMODECONTROL	0x03D8
    111      1.1    veego #define	GREG_COLORSELECT	0x03D9
    112      1.1    veego #define	GREG_ATNTMODECONTROL	0x03DE
    113      1.1    veego #define	GREG_SEGMENTSELECT	0x03CD
    114      1.1    veego 
    115      1.1    veego /* ETW32 special */
    116      1.1    veego #define W32mappedRegs 0xfff00
    117  1.1.4.2  thorpej 
    118      1.1    veego /* MMU */
    119      1.1    veego #define MMU_APERTURE0 0x80000
    120      1.1    veego #define MMU_APERTURE1 0xa0000
    121      1.1    veego #define MMU_APERTURE2 0xc0000
    122      1.1    veego 
    123      1.1    veego /* Accellerator */
    124      1.1    veego 
    125      1.1    veego /* Attribute Controller: */
    126      1.1    veego #define ACT_ADDRESS		0x03C0
    127      1.1    veego #define ACT_ADDRESS_R		0x03C1
    128      1.1    veego #define ACT_ADDRESS_W		0x03C0
    129      1.1    veego #define ACT_ADDRESS_RESET	0x03DA
    130      1.1    veego #define ACT_ID_PALETTE0		0x00
    131      1.1    veego #define ACT_ID_PALETTE1		0x01
    132      1.1    veego #define ACT_ID_PALETTE2		0x02
    133      1.1    veego #define ACT_ID_PALETTE3		0x03
    134      1.1    veego #define ACT_ID_PALETTE4		0x04
    135      1.1    veego #define ACT_ID_PALETTE5		0x05
    136      1.1    veego #define ACT_ID_PALETTE6		0x06
    137      1.1    veego #define ACT_ID_PALETTE7		0x07
    138      1.1    veego #define ACT_ID_PALETTE8		0x08
    139      1.1    veego #define ACT_ID_PALETTE9		0x09
    140      1.1    veego #define ACT_ID_PALETTE10	0x0A
    141      1.1    veego #define ACT_ID_PALETTE11	0x0B
    142      1.1    veego #define ACT_ID_PALETTE12	0x0C
    143      1.1    veego #define ACT_ID_PALETTE13	0x0D
    144      1.1    veego #define ACT_ID_PALETTE14	0x0E
    145      1.1    veego #define ACT_ID_PALETTE15	0x0F
    146      1.1    veego #define ACT_ID_ATTR_MODE_CNTL	0x10
    147      1.1    veego #define ACT_ID_OVERSCAN_COLOR	0x11
    148      1.1    veego #define ACT_ID_COLOR_PLANE_ENA	0x12
    149      1.1    veego #define ACT_ID_HOR_PEL_PANNING	0x13
    150      1.1    veego #define ACT_ID_COLOR_SELECT	0x14
    151      1.1    veego #define	ACT_ID_MISCELLANEOUS	0x16
    152      1.1    veego 
    153      1.1    veego /* Graphics Controller: */
    154      1.1    veego #define GCT_ADDRESS		0x03CE
    155      1.1    veego #define GCT_ADDRESS_R		0x03CF
    156      1.1    veego #define GCT_ADDRESS_W		0x03CF
    157      1.1    veego #define GCT_ID_SET_RESET	0x00
    158      1.1    veego #define GCT_ID_ENABLE_SET_RESET	0x01
    159      1.1    veego #define GCT_ID_COLOR_COMPARE	0x02
    160      1.1    veego #define GCT_ID_DATA_ROTATE	0x03
    161      1.1    veego #define GCT_ID_READ_MAP_SELECT	0x04
    162      1.1    veego #define GCT_ID_GRAPHICS_MODE	0x05
    163      1.1    veego #define GCT_ID_MISC		0x06
    164      1.1    veego #define GCT_ID_COLOR_XCARE	0x07
    165      1.1    veego #define GCT_ID_BITMASK		0x08
    166      1.1    veego 
    167      1.1    veego /* Sequencer: */
    168      1.1    veego #define SEQ_ADDRESS		0x03C4
    169      1.1    veego #define SEQ_ADDRESS_R		0x03C5
    170      1.1    veego #define SEQ_ADDRESS_W		0x03C5
    171      1.1    veego #define SEQ_ID_RESET		0x00
    172      1.1    veego #define SEQ_ID_CLOCKING_MODE	0x01
    173      1.1    veego #define SEQ_ID_MAP_MASK		0x02
    174      1.1    veego #define SEQ_ID_CHAR_MAP_SELECT	0x03
    175      1.1    veego #define SEQ_ID_MEMORY_MODE	0x04
    176      1.1    veego #define	SEQ_ID_STATE_CONTROL	0x06
    177      1.1    veego #define	SEQ_ID_AUXILIARY_MODE	0x07
    178      1.1    veego 
    179      1.1    veego /* don't know about them right now...
    180  1.1.4.2  thorpej #define TEXT_PLANE_CHAR		0x01
    181  1.1.4.2  thorpej #define TEXT_PLANE_ATTR		0x02
    182  1.1.4.2  thorpej #define TEXT_PLANE_FONT		0x04
    183      1.1    veego */
    184      1.1    veego 
    185      1.1    veego /* CRT Controller: */
    186      1.1    veego #define CRT_ADDRESS		0x03D4
    187      1.1    veego #define CRT_ADDRESS_R		0x03D5
    188      1.1    veego #define CRT_ADDRESS_W		0x03D5
    189      1.1    veego #define CRT_ID_HOR_TOTAL	0x00
    190      1.1    veego #define CRT_ID_HOR_DISP_ENA_END	0x01
    191      1.1    veego #define CRT_ID_START_HOR_BLANK	0x02
    192      1.1    veego #define CRT_ID_END_HOR_BLANK	0x03
    193      1.1    veego #define CRT_ID_START_HOR_RETR	0x04
    194      1.1    veego #define CRT_ID_END_HOR_RETR	0x05
    195      1.1    veego #define CRT_ID_VER_TOTAL	0x06
    196      1.1    veego #define CRT_ID_OVERFLOW		0x07
    197      1.1    veego #define CRT_ID_PRESET_ROW_SCAN	0x08
    198      1.1    veego #define	CRT_ID_MAX_ROW_ADDRESS	0x09
    199      1.1    veego #define CRT_ID_CURSOR_START	0x0A
    200      1.1    veego #define CRT_ID_CURSOR_END	0x0B
    201      1.1    veego #define CRT_ID_START_ADDR_HIGH	0x0C
    202      1.1    veego #define CRT_ID_START_ADDR_LOW	0x0D
    203      1.1    veego #define CRT_ID_CURSOR_LOC_HIGH	0x0E
    204      1.1    veego #define CRT_ID_CURSOR_LOC_LOW	0x0F
    205      1.1    veego #define CRT_ID_START_VER_RETR	0x10
    206      1.1    veego #define CRT_ID_END_VER_RETR	0x11
    207      1.1    veego #define CRT_ID_VER_DISP_ENA_END	0x12
    208      1.1    veego #define CRT_ID_OFFSET		0x13
    209      1.1    veego #define CRT_ID_UNDERLINE_LOC	0x14
    210      1.1    veego #define CRT_ID_START_VER_BLANK	0x15
    211      1.1    veego #define CRT_ID_END_VER_BLANK	0x16
    212      1.1    veego #define CRT_ID_MODE_CONTROL	0x17
    213      1.1    veego #define CRT_ID_LINE_COMPARE	0x18
    214      1.1    veego 
    215      1.1    veego #define	CRT_ID_SEGMENT_COMP	0x30
    216      1.1    veego #define	CRT_ID_GENERAL_PURPOSE	0x31
    217      1.1    veego #define	CRT_ID_RASCAS_CONFIG	0x32
    218      1.1    veego #define	CTR_ID_EXT_START	0x33
    219      1.1    veego #define	CRT_ID_6845_COMPAT	0x34
    220      1.1    veego #define	CRT_ID_OVERFLOW_HIGH	0x35
    221      1.1    veego #define	CRT_ID_VIDEO_CONFIG1	0x36
    222      1.1    veego #define	CRT_ID_VIDEO_CONFIG2	0x37
    223      1.1    veego #define	CRT_ID_HOR_OVERFLOW	0x3f
    224      1.1    veego 
    225      1.1    veego /* IMAGE port */
    226      1.1    veego #define IMA_ADDRESS		0x217a
    227      1.1    veego #define IMA_ADDRESS_R		0x217b
    228      1.1    veego #define IMA_ADDRESS_W		0x217b
    229  1.1.4.2  thorpej #define IMA_STARTADDRESSLOW	0xf0
    230  1.1.4.2  thorpej #define IMA_STARTADDRESSMIDDLE	0xf1
    231  1.1.4.2  thorpej #define IMA_STARTADDRESSHIGH	0xf2
    232  1.1.4.2  thorpej #define IMA_TRANSFERLENGTHLOW	0xf3
    233  1.1.4.2  thorpej #define IMA_TRANSFERLENGTHHIGH	0xf4
    234  1.1.4.2  thorpej #define IMA_ROWOFFSETLOW	0xf5
    235  1.1.4.2  thorpej #define IMA_ROWOFFSETHIGH	0xf6
    236  1.1.4.2  thorpej #define IMA_PORTCONTROL		0xf7
    237      1.1    veego 
    238      1.1    veego /* Pass-through */
    239      1.1    veego #define PASS_ADDRESS		0x8000
    240      1.1    veego #define PASS_ADDRESS_W		0x8000
    241  1.1.4.2  thorpej #define PASS_ADDRESS_DOM	0xa000
    242  1.1.4.2  thorpej #define PASS_ADDRESS_DOMW	0xb000
    243      1.1    veego 
    244      1.1    veego /* Video DAC */
    245      1.1    veego #define VDAC_ADDRESS		0x03c8
    246      1.1    veego #define VDAC_ADDRESS_W		0x03c8
    247      1.1    veego #define VDAC_ADDRESS_R		0x03c7
    248      1.1    veego #define VDAC_STATE		0x03c7
    249      1.1    veego #define VDAC_DATA		0x03c9
    250      1.1    veego #define VDAC_MASK		0x03c6
    251      1.1    veego #define HDR			0x03c6	/* Hidden DAC register, 4 reads to access */
    252      1.1    veego 
    253  1.1.4.2  thorpej #define VDAC_COMMAND		0x03c6
    254  1.1.4.2  thorpej #define VDAC_XINDEX		0x03c7
    255  1.1.4.2  thorpej #define VDAC_XDATA		0x03c8
    256  1.1.4.2  thorpej 
    257  1.1.4.2  thorpej #define MERLIN_VDAC_INDEX	0x01
    258  1.1.4.2  thorpej #define MERLIN_VDAC_COLORS	0x05
    259  1.1.4.2  thorpej #define MERLIN_VDAC_SPRITE	0x09
    260  1.1.4.2  thorpej #define MERLIN_VDAC_DATA	0x19
    261  1.1.4.2  thorpej #define MERLIN_SWITCH_REG	0x0401
    262      1.1    veego 
    263      1.1    veego #define WGfx(ba, idx, val) \
    264      1.1    veego 	do { vgaw(ba, GCT_ADDRESS, idx); vgaw(ba, GCT_ADDRESS_W , val); } while (0)
    265      1.1    veego 
    266      1.1    veego #define WSeq(ba, idx, val) \
    267      1.1    veego 	do { vgaw(ba, SEQ_ADDRESS, idx); vgaw(ba, SEQ_ADDRESS_W , val); } while (0)
    268      1.1    veego 
    269      1.1    veego #define WCrt(ba, idx, val) \
    270      1.1    veego 	do { vgaw(ba, CRT_ADDRESS, idx); vgaw(ba, CRT_ADDRESS_W , val); } while (0)
    271      1.1    veego 
    272      1.1    veego #define WIma(ba, idx, val) \
    273      1.1    veego 	do { vgaw(ba, IMA_ADDRESS, idx); vgaw(ba, IMA_ADDRESS_W , val); } while (0)
    274      1.1    veego 
    275      1.1    veego #define WAttr(ba, idx, val) \
    276      1.1    veego 	do {	\
    277      1.1    veego 		if(vgar(ba, GREG_STATUS1_R));\
    278      1.1    veego 		vgaw(ba, ACT_ADDRESS_W, idx);\
    279      1.1    veego 		vgaw(ba, ACT_ADDRESS_W, val);\
    280      1.1    veego 	} while (0)
    281      1.1    veego 
    282      1.1    veego #define SetTextPlane(ba, m) \
    283      1.1    veego 	do { \
    284      1.1    veego 		WGfx(ba, GCT_ID_READ_MAP_SELECT, m & 3 );\
    285      1.1    veego 		WSeq(ba, SEQ_ID_MAP_MASK, (1 << (m & 3)));\
    286      1.1    veego 	} while (0)
    287      1.1    veego 
    288      1.1    veego #define setMerlinDACmode(ba, mode) \
    289      1.1    veego 	do { \
    290      1.1    veego 		vgaw(ba, VDAC_MASK,  mode | (vgar(ba, VDAC_MASK) & 0x0f));\
    291      1.1    veego 	} while (0)
    292      1.1    veego 
    293      1.1    veego /* Special wakeup/passthrough registers on graphics boards
    294      1.1    veego  *
    295      1.1    veego  * The methods have diverged a bit for each board, so
    296      1.1    veego  * WPass(P) has been converted into a set of specific
    297      1.1    veego  * inline functions.
    298      1.1    veego  */
    299      1.1    veego static inline void RegWakeup(volatile void *ba) {
    300  1.1.4.2  thorpej 	extern int ettype;
    301      1.1    veego 
    302  1.1.4.2  thorpej 	switch (ettype) {
    303  1.1.4.2  thorpej 	    case OMNIBUS:
    304  1.1.4.2  thorpej 		vgaw(ba, PASS_ADDRESS_W, 0x00);
    305  1.1.4.2  thorpej 		break;
    306  1.1.4.2  thorpej 	    case DOMINO:
    307  1.1.4.2  thorpej 		vgaw(ba, PASS_ADDRESS_DOM, 0x00);
    308  1.1.4.2  thorpej 		break;
    309  1.1.4.2  thorpej 	    case MERLIN:
    310  1.1.4.2  thorpej 		break;
    311  1.1.4.2  thorpej 	}
    312  1.1.4.2  thorpej 	delay(200000);
    313      1.1    veego }
    314      1.1    veego 
    315      1.1    veego 
    316      1.1    veego static inline void RegOnpass(volatile void *ba) {
    317  1.1.4.2  thorpej 	extern int ettype;
    318      1.1    veego 	extern unsigned char pass_toggle;
    319      1.1    veego 	extern unsigned char Merlin_switch;
    320      1.1    veego 
    321  1.1.4.2  thorpej 	switch (ettype) {
    322  1.1.4.2  thorpej 	    case OMNIBUS:
    323  1.1.4.2  thorpej 		vgaw(ba, PASS_ADDRESS_W, 0x00);
    324  1.1.4.2  thorpej 		break;
    325  1.1.4.2  thorpej 	    case DOMINO:
    326  1.1.4.2  thorpej 		vgaw(ba, PASS_ADDRESS_DOMW, 0x00);
    327  1.1.4.2  thorpej 		break;
    328  1.1.4.2  thorpej 	    case MERLIN:
    329  1.1.4.2  thorpej 		Merlin_switch &= 0xfe;
    330  1.1.4.2  thorpej 		vgaw(ba, MERLIN_SWITCH_REG, Merlin_switch);
    331  1.1.4.2  thorpej 		break;
    332  1.1.4.2  thorpej 	}
    333  1.1.4.2  thorpej 	pass_toggle = 1;
    334  1.1.4.2  thorpej 	delay(200000);
    335      1.1    veego }
    336      1.1    veego 
    337      1.1    veego 
    338      1.1    veego static inline void RegOffpass(volatile void *ba) {
    339  1.1.4.2  thorpej 	extern int ettype;
    340  1.1.4.2  thorpej 	extern unsigned char pass_toggle;
    341      1.1    veego 	extern unsigned char Merlin_switch;
    342      1.1    veego 
    343  1.1.4.2  thorpej 	switch (ettype) {
    344  1.1.4.2  thorpej 	    case OMNIBUS:
    345  1.1.4.2  thorpej 		vgaw(ba, PASS_ADDRESS_W, 0x01);
    346  1.1.4.2  thorpej 		break;
    347  1.1.4.2  thorpej 	    case DOMINO:
    348  1.1.4.2  thorpej 		vgaw(ba, PASS_ADDRESS_DOM, 0x00);
    349  1.1.4.2  thorpej 		break;
    350  1.1.4.2  thorpej 	    case MERLIN:
    351  1.1.4.2  thorpej 		Merlin_switch |= 0x01;
    352  1.1.4.2  thorpej 		vgaw(ba, MERLIN_SWITCH_REG, Merlin_switch);
    353  1.1.4.2  thorpej 		break;
    354  1.1.4.2  thorpej 	}
    355  1.1.4.2  thorpej 	pass_toggle = 0;
    356  1.1.4.2  thorpej 	delay(200000);
    357      1.1    veego }
    358      1.1    veego 
    359      1.1    veego static inline unsigned char RAttr(volatile void * ba, short idx) {
    360      1.1    veego 	if(vgar(ba, GREG_STATUS1_R));
    361      1.1    veego 	vgaw(ba, ACT_ADDRESS_W, idx);
    362      1.1    veego 	return vgar (ba, ACT_ADDRESS_R);
    363      1.1    veego }
    364      1.1    veego 
    365      1.1    veego static inline unsigned char RSeq(volatile void * ba, short idx) {
    366      1.1    veego 	vgaw (ba, SEQ_ADDRESS, idx);
    367      1.1    veego 	return vgar (ba, SEQ_ADDRESS_R);
    368      1.1    veego }
    369      1.1    veego 
    370      1.1    veego static inline unsigned char RCrt(volatile void * ba, short idx) {
    371      1.1    veego 	vgaw (ba, CRT_ADDRESS, idx);
    372      1.1    veego 	return vgar (ba, CRT_ADDRESS_R);
    373      1.1    veego }
    374      1.1    veego 
    375      1.1    veego static inline unsigned char RGfx(volatile void * ba, short idx) {
    376      1.1    veego 	vgaw(ba, GCT_ADDRESS, idx);
    377      1.1    veego 	return vgar (ba, GCT_ADDRESS_R);
    378      1.1    veego }
    379      1.1    veego 
    380      1.1    veego int et_mode __P((register struct grf_softc *gp, u_long cmd, void *arg, u_long a2, int a3));
    381      1.1    veego int et_load_mon __P((struct grf_softc *gp, struct grfettext_mode *gv));
    382      1.1    veego int grfet_cnprobe __P((void));
    383      1.1    veego void grfet_iteinit __P((struct grf_softc *gp));
    384      1.1    veego 
    385      1.1    veego #endif /* _GRF_ETREG_H */
    386