#define ctPATCOPY 0xF0
#define ctTOP2BOTTOM 0x100
#define ctBOTTOM2TOP 0x000
#define ctLEFT2RIGHT 0x200
#define ctRIGHT2LEFT 0x000
#define ctSRCFG 0x400
#define ctSRCMONO 0x800
#define ctPATMONO 0x1000
#define ctBGTRANSPARENT 0x2000
#define ctSRCSYSTEM 0x4000
#define ctPATSOLID 0x80000L
#define ctPATSTART0 0x00000L
#define ctPATSTART1 0x10000L
#define ctPATSTART2 0x20000L
#define ctPATSTART3 0x30000L
#define ctPATSTART4 0x40000L
#define ctPATSTART5 0x50000L
#define ctPATSTART6 0x60000L
#define ctPATSTART7 0x70000L
#define ctBLTWAIT \
{HW_DEBUG(0x4+2); while(inw(cPtr->PIOBase+DR(0x4)+2)&0x10){};}
#define ctSETROP(op) \
{HW_DEBUG(0x4); outl(cPtr->PIOBase+DR(0x4),(op));}
#define ctSETSRCADDR(srcAddr) \
{HW_DEBUG(0x5); outl(cPtr->PIOBase+DR(0x5),((srcAddr)&0x1FFFFFL));}
#define ctSETDSTADDR(dstAddr) \
{HW_DEBUG(0x6); outl(cPtr->PIOBase+DR(0x6),((dstAddr)&0x1FFFFFL));}
#define ctSETPITCH(srcPitch,dstPitch) \
{HW_DEBUG(0x0); outl(cPtr->PIOBase+DR(0x0),(((dstPitch)<<16)|(srcPitch)));}
#define ctSETHEIGHTWIDTHGO(Height,Width)\
{HW_DEBUG(0x7); outl(cPtr->PIOBase+DR(0x7),(((Height)<<16)|(Width)));}
#define ctSETPATSRCADDR(srcAddr)\
{HW_DEBUG(0x1); outl(cPtr->PIOBase+DR(0x1),((srcAddr)&0x1FFFFFL));}
#define ctSETBGCOLOR8(c) {\
HW_DEBUG(0x2); \
if ((cAcl->bgColor != (c)) || (cAcl->bgColor == -1)) { \
cAcl->bgColor = (c); \
outl(cPtr->PIOBase+DR(0x2),((((((c)&0xFF)<<8)|((c)&0xFF))<<16) | \
((((c)&0xFF)<<8)|((c)&0xFF)))); \
} \
}
#define ctSETBGCOLOR16(c) {\
HW_DEBUG(0x2); \
if ((cAcl->bgColor != (c)) || (cAcl->bgColor == -1)) { \
cAcl->bgColor = (c); \
outl(cPtr->PIOBase+DR(0x2),((((c)&0xFFFF)<<16)|((c)&0xFFFF))); \
} \
}
#define ctSETBGCOLOR24(c) {\
HW_DEBUG(0x2); \
if ((cAcl->bgColor != (c)) || (cAcl->bgColor == -1)) { \
cAcl->bgColor = (c); \
outl(cPtr->PIOBase+DR(0x2),(c)&0xFFFFFF); \
} \
}
#define ctSETFGCOLOR8(c) {\
HW_DEBUG(0x3); \
if ((cAcl->fgColor != (c)) || (cAcl->fgColor == -1)) { \
cAcl->fgColor = (c); \
outl(cPtr->PIOBase+DR(0x3),((((((c)&0xFF)<<8)|((c)&0xFF))<<16) | \
((((c)&0xFF)<<8)|((c)&0xFF)))); \
} \
}
#define ctSETFGCOLOR16(c) {\
HW_DEBUG(0x3); \
if ((cAcl->fgColor != (c)) || (cAcl->fgColor == -1)) { \
cAcl->fgColor = (c); \
outl(cPtr->PIOBase+DR(0x3),((((c)&0xFFFF)<<16)|((c)&0xFFFF))); \
} \
}
#define ctSETFGCOLOR24(c) {\
HW_DEBUG(0x3); \
if ((cAcl->fgColor != (c)) || (cAcl->fgColor == -1)) { \
cAcl->fgColor = (c); \
outl(cPtr->PIOBase+DR(0x3),(c)&0xFFFFFF); \
} \
}
#define ctWRITEPLANEMASK8(mask,addr) { \
if (cAcl->planemask != (mask&0xFF)) { \
cAcl->planemask = (mask&0xFF); \
memset((unsigned char *)cPtr->FbBase + addr, (mask&0xFF), 64); \
} \
}
#define ctWRITEPLANEMASK16(mask,addr) { \
if (cAcl->planemask != (mask&0xFFFF)) { \
cAcl->planemask = (mask&0xFFFF); \
{ int i; \
for (i = 0; i < 64; i++) { \
memcpy((unsigned char *)cPtr->FbBase + addr \
+ i * 2, &mask, 2); \
} \
} \
} \
}