--- np2/io/gdc_sub.h 2004/02/11 17:39:59 1.3 +++ np2/io/gdc_sub.h 2004/02/21 00:25:33 1.10 @@ -15,22 +15,35 @@ typedef struct { BYTE DM[2]; } GDCVECT; +extern const UINT32 gdcplaneseg[4]; + typedef void (*GDCSUBFN)(UINT32 csrw, const GDCVECT *vect, - UINT16 pat, BYTE ope); + 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_init(void); -void gdcsub_null(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope); -void gdcsub_line(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope); -void gdcsub_box(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope); -void gdcsub_circle(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope); -void gdcsub_txt(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope); +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);