#define SET_BYTE_REGISTER( ioport, value ) outb( ioport, value )
#define SET_INDEX_REGISTER( ioport, value ) SET_BYTE_REGISTER( ioport, value )
#define SET_DATA_REGISTER( ioport, value ) SET_BYTE_REGISTER( ioport, value )
#define SET_INDEXED_REGISTER(RegGroup, Index, Value) \
(SET_BYTE_REGISTER(RegGroup, Index), \
SET_BYTE_REGISTER((RegGroup) + 1, Value))
#ifdef HAVE_XORG_CONFIG_H
#include <xorg-config.h>
#endif
#if 0
#define REGBASE 0x300
#endif
#define AttributeIndexRegister REGBASE + 0xC0
#define AttributeDataWriteRegister REGBASE + 0xC0
#define AttributeDataReadRegister REGBASE + 0xC1
#define AttributeRegister AttributeIndexRegister
#define AttributeModeIndex 0x30
#define OverScanColorIndex 0x31
#define ColorPlaneEnableIndex 0x32
#define HorizPelPanIndex 0x33
#define ColorSelectIndex 0x34
#ifndef PC98_EGC
#define SetVideoAttributeIndex( index ) \
SET_INDEX_REGISTER( AttributeIndexRegister, index )
#define SetVideoAttribute( index, value ) \
SetVideoAttributeIndex( index ) ; \
SET_BYTE_REGISTER( AttributeDataWriteRegister, value )
#endif
#define GraphicsIndexRegister REGBASE + 0xCE
#define GraphicsDataRegister REGBASE + 0xCF
#define GraphicsRegister GraphicsIndexRegister
#define Set_ResetIndex 0x00
#define Enb_Set_ResetIndex 0x01
#define Color_CompareIndex 0x02
#define Data_RotateIndex 0x03
#define Read_Map_SelectIndex 0x04
#define Graphics_ModeIndex 0x05
#define MiscellaneousIndex 0x06
#define Color_Dont_CareIndex 0x07
#define Bit_MaskIndex 0x08
#ifndef PC98_EGC
#define SetVideoGraphicsIndex( index ) \
SET_INDEX_REGISTER( GraphicsIndexRegister, index )
#define SetVideoGraphicsData( value ) \
SET_INDEX_REGISTER( GraphicsDataRegister, value )
#define SetVideoGraphics( index, value ) \
SET_INDEXED_REGISTER( GraphicsRegister, index, value )
#endif
#define SequencerIndexRegister REGBASE + 0xC4
#define SequencerDataRegister REGBASE + 0xC5
#define SequencerRegister SequencerIndexRegister
#define Seq_ResetIndex 00
#define Clock_ModeIndex 01
#define Mask_MapIndex 02
#define Char_Map_SelectIndex 03
#define Memory_ModeIndex 04
#ifndef PC98_EGC
#define SetVideoSequencerIndex( index ) \
SET_INDEX_REGISTER( SequencerIndexRegister, index )
#define SetVideoSequencer( index, value ) \
SET_INDEXED_REGISTER( SequencerRegister, index, value )
#endif
#define VGA_ROTATE_FUNC_SHIFT 3
#define VGA_COPY_MODE ( 0 << VGA_ROTATE_FUNC_SHIFT )
#define VGA_AND_MODE ( 1 << VGA_ROTATE_FUNC_SHIFT )
#define VGA_OR_MODE ( 2 << VGA_ROTATE_FUNC_SHIFT )
#define VGA_XOR_MODE ( 3 << VGA_ROTATE_FUNC_SHIFT )
#define VGA_READ_MODE_SHIFT 3
#define VGA_WRITE_MODE_0 0
#define VGA_WRITE_MODE_1 1
#define VGA_WRITE_MODE_2 2
#define VGA_WRITE_MODE_3 3
#define VGA_READ_MODE_0 ( 0 << VGA_READ_MODE_SHIFT )
#define VGA_READ_MODE_1 ( 1 << VGA_READ_MODE_SHIFT )
#ifdef PC98_EGC
#define EGC_PLANE 0x4a0
#define EGC_READ 0x4a2
#define EGC_MODE 0x4a4
#define EGC_FGC 0x4a6
#define EGC_MASK 0x4a8
#define EGC_BGC 0x4aa
#define EGC_ADD 0x4ac
#define EGC_LENGTH 0x4ae
#define PALETTE_ADD 0xa8
#define PALETTE_GRE 0xaa
#define PALETTE_RED 0xac
#define PALETTE_BLU 0xae
#define EGC_AND_MODE 0x2c8c
#define EGC_AND_INV_MODE 0x2c2c
#define EGC_OR_MODE 0x2cec
#define EGC_OR_INV_MODE 0x2cbc
#define EGC_XOR_MODE 0x2c6c
#define EGC_XOR_INV_MODE 0x2c9c
#define EGC_COPY_MODE 0x2cac
#endif