// ------------------------------------------------------ // Defines // ------------------------------------------------------ #define PADL2 1 #define PADR2 2 #define PADL1 4 #define PADR1 8 #define PADTRIANGLE 1 << 4 #define PADCIRCLE 2 << 4 #define PADX 4 << 4 #define PADSQUARE 8 << 4 #define PADSELECT 1 << 8 #define PADSTART 8 << 8 #define PADUP 1 << 12 #define PADRIGHT 2 << 12 #define PADDOWN 4 << 12 #define PADLEFT 8 << 12 // ------------------------------------------------------ // Variables // ------------------------------------------------------ volatile u_char *PadBuffer1, *PadBuffer2; short Pad1, Pad2; // ------------------------------------------------------ // Function Prototypes // ------------------------------------------------------ void PadInit(void); short PadRead(char Pad); // ------------------------------------------------------ // Functions // ------------------------------------------------------ void PadInit(void) { GetPadBuf(&PadBuffer1, &PadBuffer2); } short PadRead(char Pad) { if(Pad == 2) return ~( *(PadBuffer2 + 2) << 8 | *(PadBuffer2 + 3) ); else return ~( *(PadBuffer1 + 2) << 8 | *(PadBuffer1 + 3) ); }