File:  [RetroPC.NET] / np2 / io / gdc_sub.h
Revision 1.10: download - view: text, annotated - select for diffs
Sat Feb 21 09:25:33 2004 JST (21 years, 8 months ago) by yui
Branches: MAIN
CVS tags: VER_0_80, VER_0_79, VER_0_78, VER_0_77, VER_0_76, VER_0_75, HEAD
fix gdc, bios (T.Yui)


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

typedef struct {
	BYTE	ope;
	BYTE	DC[2];
	BYTE	D[2];
	BYTE	D2[2];
	BYTE	D1[2];
	BYTE	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 BYTE *pat, REG8 ope);
void gdcsub_write(void);

#ifdef __cplusplus
}
#endif


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