File:  [RetroPC.NET] / np2 / io / gdc.h
Revision 1.1: download - view: text, annotated - select for diffs
Fri Oct 17 02:57:52 2003 JST (22 years ago) by yui
Branches: MAIN
CVS tags: HEAD
Initial revision


#define	GDCCMD_MAX	32

typedef struct {
	BYTE	para[256];
	UINT16	fifo[GDCCMD_MAX];
	UINT16	cnt;
	BYTE	ptr;
	BYTE	rcv;
	BYTE	snd;
	BYTE	cmd;				// ver0.29
	BYTE	paracb;				// ver0.29
	BYTE	reserved[3];
} _GDCDATA, *GDCDATA;

typedef struct {
	_GDCDATA	m;
	_GDCDATA	s;
	BYTE		mode1;
	BYTE		mode2;
	BYTE		vsync;
	BYTE		vsyncint;
	int			analog;
	int			palnum;
	BYTE		degpal[4];
	RGB32		anapal[16];
	BYTE		clock;
	BYTE		display;
	BYTE		bitac;
	BYTE		m_drawing;
	BYTE		s_drawing;
	BYTE		reserved[3];
} _GDC, *GDC;

typedef struct {
	BYTE	access;
	BYTE	disp;
	BYTE	textdisp;
	BYTE	msw_accessable;
	BYTE	grphdisp;
	BYTE	palchange;
	BYTE	mode2;
} _GDCS, *GDCS;

enum {
	GDC_DEGBBIT			= 0x01,
	GDC_DEGRBIT			= 0x02,
	GDC_DEGGBIT			= 0x04,

	GDCSCRN_ENABLE		= 0x80,
	GDCSCRN_EXT			= 0x40,
	GDCSCRN_ATR			= 0x10,
	GDCSCRN_ALLDRAW		= 0x04,
	GDCSCRN_REDRAW		= 0x01,
	GDCSCRN_ALLDRAW2	= 0x0c,
	GDCSCRN_REDRAW2		= 0x03,
	GDCSCRN_MAKE		= (GDCSCRN_ALLDRAW | GDCSCRN_REDRAW),

	GDCWORK_MASTER		= 0,
	GDCWORK_SLAVE		= 1
};


#ifdef __cplusplus
extern "C" {
#endif

void gdc_reset(void);
void gdc_bind(void);

void gdc_work(int id);
void gdc_forceready(GDCDATA item);
void gdc_paletteinit(void);

void gdc_setdegitalpal(int color, BYTE value);
void gdc_setanalogpal(int color, int rgb, BYTE value);
void gdc_setdegpalpack(int color, BYTE value);

void gdc_restorekacmode(void);

#ifdef __cplusplus
}
#endif


RetroPC.NET-CVS <cvs@retropc.net>