Listing 2 (mfp_macs.h) Macro Definitions

       /* cast operation for register references */
#define REGVAL(x)             (*(unsigned char *)(x))

       /* create bit mask for one bit on/off */
#define BITON_MASK(bitnum)    (1 << (bitnum))
#define BITOFF_MASK(bitnum)   (~(1 << (bitnum)))

       /* use given mask to set/clear bits in given byte */
#define SET_BITS(byte,mask)    REGVAL(byte) |= (mask)
#define CLR_BITS(byte,mask)    REGVAL(byte) &= (mask)

       /* set/clear given bit number in byte */
#define BIT_SET(byte,bitnum)   REGVAL(byte) |= (BITON_MASK(bitnum))
#define BIT_CLR(byte, bitnum)  REGVAL(byte) &= (BITOFF_MASK(bitnum))