#ifndef JOYSTICK_H #define JOYSTICK_H #include "../config.h" extern unsigned char waitForFire; void joy_init(); #ifdef AVR # include <avr/io.h> # ifdef NES_PAD_SUPPORT extern volatile unsigned char fakeport; # define JOYISUP (!! ((1<<4) & fakeport)) # define JOYISDOWN (!! ((1<<5) & fakeport)) # define JOYISLEFT (!! ((1<<6) & fakeport)) # define JOYISRIGHT (!! ((1<<7) & fakeport)) # define JOYISFIRE (!! ((1<<0) & fakeport)) # elif defined(RFM12_JOYSTICK_SUPPORT) extern volatile uint8_t rfm12_joystick_val; # define JOYISUP (!! ((1<<0) & rfm12_joystick_val)) # define JOYISDOWN (!! ((1<<1) & rfm12_joystick_val)) # define JOYISLEFT (!! ((1<<2) & rfm12_joystick_val)) # define JOYISRIGHT (!! ((1<<3) & rfm12_joystick_val)) # define JOYISFIRE (!! ((1<<4) & rfm12_joystick_val)) # elif defined(HC165_JOYSTICK_SUPPORT) extern volatile uint8_t hc165_joystick_val; # define JOYISUP (! ((1<<0) & hc165_joystick_val)) # define JOYISDOWN (! ((1<<1) & hc165_joystick_val)) # define JOYISLEFT (! ((1<<2) & hc165_joystick_val)) # define JOYISRIGHT (! ((1<<3) & hc165_joystick_val)) # define JOYISFIRE (! ((1<<4) & hc165_joystick_val)) # else # define JOYISUP (!(JOYSTICK_PIN_UP & (1<<JOYSTICK_BIT_UP ))) # define JOYISDOWN (!(JOYSTICK_PIN_DOWN & (1<<JOYSTICK_BIT_DOWN ))) # define JOYISLEFT (!(JOYSTICK_PIN_LEFT & (1<<JOYSTICK_BIT_LEFT ))) # define JOYISRIGHT (!(JOYSTICK_PIN_RIGHT & (1<<JOYSTICK_BIT_RIGHT))) # define JOYISFIRE (!(JOYSTICK_PIN_FIRE & (1<<JOYSTICK_BIT_FIRE ))) # endif #else extern volatile unsigned char fakeport; # define JOYISUP (0x10 & fakeport) # define JOYISDOWN (0x08 & fakeport) # define JOYISLEFT (0x02 & fakeport) # define JOYISRIGHT (0x04 & fakeport) # define JOYISFIRE (0x01 & fakeport) #endif #endif // JOYSTICK_H