/*************************************** * HEADER FILE THAT CONTAINS CONTROLLER * * MACROS. by Scott Ward. 15/4/99 * ***************************************/ #ifndef _CONTROLS_ #define _CONTROLS_ /* MACROS FOR BIT PLACES OF STANDARD CONTROLLER */ #define PAD_LEFT (1<<15) #define PAD_RIGHT (1<<13) #define PAD_UP (1<<12) #define PAD_DOWN (1<<14) #define PAD_TRIANGLE (1<<4) #define PAD_CIRCLE (1<<5) #define PAD_CROSS (1<<6) #define PAD_SQUARE (1<<7) #define PAD_SELECT (1<<8) #define PAD_START (1<<11) #define PAD_R1 (1<<3) #define PAD_R2 (1<<1) #define PAD_L1 (1<<2) #define PAD_L2 (1<<0) //MACROS FOR BIT PATTERNS OF CONTROLLERS IN PORT 1 AND 2. #define PAD1BITS (~(*(padbuffer1+3) | *(padbuffer1+2)<<8)) #define PAD2BITS (~(*(padbuffer2+3) | *(padbuffer2+2)<<8)) //MACROS FOR CHECKING STATUS OF CONTROLLER ONE #define PAD1LEFT (PAD1BITS&PAD_LEFT) #define PAD1RIGHT (PAD1BITS&PAD_RIGHT) #define PAD1UP (PAD1BITS&PAD_UP) #define PAD1DOWN (PAD1BITS&PAD_DOWN) #define PAD1TRIANGLE (PAD1BITS&PAD_TRIANGLE) #define PAD1CIRCLE (PAD1BITS&PAD_CIRCLE) #define PAD1CROSS (PAD1BITS&PAD_CROSS) #define PAD1SQUARE (PAD1BITS&PAD_SQUARE) #define PAD1SELECT (PAD1BITS&PAD_SELECT) #define PAD1START (PAD1BITS&PAD_START) #define PAD1R1 (PAD1BITS&PAD_R1) #define PAD1R2 (PAD1BITS&PAD_R2) #define PAD1L1 (PAD1BITS&PAD_L1) #define PAD1L2 (PAD1BITS&PAD_L2) #define PAD1RESET ((PAD1BITS&PAD1SELECT) && (PAD1BITS&PAD1START)) //MACROS FOR CHECKING STATUS OF CONTROLLER TWO #define PAD2LEFT (PAD2BITS&PAD_LEFT) #define PAD2RIGHT (PAD2BITS&PAD_RIGHT) #define PAD2UP (PAD2BITS&PAD_UP) #define PAD2DOWN (PAD2BITS&PAD_DOWN) #define PAD2TRIANGLE (PAD2BITS&PAD_TRIANGLE) #define PAD2CIRCLE (PAD2BITS&PAD_CIRCLE) #define PAD2CROSS (PAD2BITS&PAD_CROSS) #define PAD2SQUARE (PAD2BITS&PAD_SQUARE) #define PAD2SELECT (PAD2BITS&PAD_SELECT) #define PAD2START (PAD2BITS&PAD_START) #define PAD2R1 (PAD2BITS&PAD_R1) #define PAD2R2 (PAD2BITS&PAD_R2) #define PAD2L1 (PAD2BITS&PAD_L1) #define PAD2L2 (PAD2BITS&PAD_L2) #define PAD2RESET ((PAD2BITS&PAD2SELECT) && (PAD2BITS&PAD2START)) //GLOBAL POINTERS THAT HOLD INPUT FROM PERIPHERALS volatile unsigned char *padbuffer1,*padbuffer2; #endif