--- np2/io/gdc_sub.h 2004/02/11 17:39:59 1.3 +++ np2/io/gdc_sub.h 2005/02/07 14:46:11 1.11 @@ -7,32 +7,45 @@ enum { }; typedef struct { - BYTE ope; - BYTE DC[2]; - BYTE D[2]; - BYTE D2[2]; - BYTE D1[2]; - BYTE DM[2]; + 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, - 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_text(UINT32 csrw, const GDCVECT *vect, const UINT8 *pat, REG8 ope); void gdcsub_write(void); #ifdef __cplusplus