nuclear@6: #ifndef MEGADRIVE_IO_H_ nuclear@6: #define MEGADRIVE_IO_H_ nuclear@6: nuclear@7: #include nuclear@7: nuclear@7: #define IO_REG_VER *((volatile uint8_t*)0xa10001) nuclear@7: #define IO_REG_DATA1 *((volatile uint8_t*)0xa10003) nuclear@7: #define IO_REG_DATA2 *((volatile uint8_t*)0xa10005) nuclear@7: #define IO_REG_DATA3 *((volatile uint8_t*)0xa10007) nuclear@7: #define IO_REG_CTRL1 *((volatile uint8_t*)0xa10009) nuclear@7: #define IO_REG_CTRL2 *((volatile uint8_t*)0xa1000b) nuclear@7: #define IO_REG_CTRL3 *((volatile uint8_t*)0xa1000d) nuclear@7: #define IO_REG_TXDATA1 *((volatile uint8_t*)0xa1000f) nuclear@7: #define IO_REG_RXDATA1 *((volatile uint8_t*)0xa10011) nuclear@7: #define IO_REG_S_CTRL1 *((volatile uint8_t*)0xa10013) nuclear@7: #define IO_REG_TXDATA2 *((volatile uint8_t*)0xa10015) nuclear@7: #define IO_REG_RXDATA2 *((volatile uint8_t*)0xa10017) nuclear@7: #define IO_REG_S_CTRL2 *((volatile uint8_t*)0xa10013) nuclear@7: #define IO_REG_TXDATA3 *((volatile uint8_t*)0xa1001b) nuclear@7: #define IO_REG_RXDATA3 *((volatile uint8_t*)0xa1001d) nuclear@7: #define IO_REG_S_CTRL3 *((volatile uint8_t*)0xa1001f) nuclear@7: #define IO_REG_LOCK *((volatile uint8_t*)0xa14000) nuclear@7: #define IO_REG_TMSS *((volatile uint8_t*)0xa14101) nuclear@7: nuclear@6: nuclear@6: enum { nuclear@6: IO_VER_VERSION_MASK = 0x0f, nuclear@6: IO_VER_EXP = 0x20, nuclear@6: IO_VER_PAL = 0x40, nuclear@6: IO_VER_NONJP = 0x80 nuclear@6: }; nuclear@6: nuclear@6: #endif /* MEGADRIVE_IO_H_ */