File:  [RetroPC.NET] / np2 / io / gdc_sub.h
Revision 1.11: download - view: text, annotated - select for diffs
Mon Feb 7 23:46:11 2005 JST (20 years, 8 months ago) by yui
Branches: MAIN
CVS tags: VER_0_82_x64, VER_0_82, VER_0_81A, VER_0_81, HEAD
use UINT8 (T.Yui)


enum {
	GDCOPE_REPLACE		= 0,
	GDCOPE_COMPLEMENT	= 1,
	GDCOPE_CLEAR		= 2,
	GDCOPE_SET			= 3
};

typedef struct {
	UINT8	ope;
	UINT8	DC[2];
	UINT8	D[2];
	UINT8	D2[2];
	UINT8	D1[2];
	UINT8	DM[2];
} GDCVECT;

extern const UINT32 gdcplaneseg[4];

typedef void (*GDCSUBFN)(UINT32 csrw, const GDCVECT *vect,
														REG16 pat, REG8 ope);


#ifdef __cplusplus
extern "C" {
#endif

#if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)
extern const UINT8 gdcbitreverse[0x100];
#define	GDCPATREVERSE(d)		gdcbitreverse[(d) & 0xff]
#else
REG8 gdcbitreverse(REG8 data);
#define	GDCPATREVERSE(d)		gdcbitreverse((REG8)(d))
#endif

void gdcslavewait(NEVENTITEM item);

void gdcsub_initialize(void);
void gdcsub_setslavewait(UINT32 clock);
void gdcsub_setvectl(GDCVECT *vect, int x1, int y1, int x2, int y2);

void gdcsub_vect0(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope);
void gdcsub_vectl(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope);
void gdcsub_vectt(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope);
void gdcsub_vectc(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope);
void gdcsub_vectr(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope);

void gdcsub_text(UINT32 csrw, const GDCVECT *vect, const UINT8 *pat, REG8 ope);
void gdcsub_write(void);

#ifdef __cplusplus
}
#endif


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