X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=ROM2%2Fvend.h;h=bb39107bf8a3f2c1584b25755c27d0b5fb16be98;hb=7154b91d747c839ace03f0d4198fed36bf5a167b;hp=10d317152ea5e73251c79aaa7add169dfe1a5b80;hpb=9366107abfbfbe85f00b27449c79284d0e1aa59e;p=uccvend-snackrom.git diff --git a/ROM2/vend.h b/ROM2/vend.h index 10d3171..bb39107 100644 --- a/ROM2/vend.h +++ b/ROM2/vend.h @@ -16,23 +16,28 @@ extern inline void bset_##a(const u8 m) { bset(&a, m); *_##a = a; } \ extern inline void bclr_##a(const u8 m) { bclr(&a, m); *_##a = a; } -buffered_addr(switch_input); -buffered_addr(misc_input); -buffered_addr(home_sensors); buffered_addr(changer_output); buffered_addr(misc_output); -extern inline void spi_enable() { bset((void*)&_io_ports[M6811_SPCR], M6811_SPE); } -extern inline void spi_disable() { bclr((void*)&_io_ports[M6811_SPCR], M6811_SPE); } +extern volatile u8 _switch_input; +#define switch_input _switch_input +extern volatile u8 _misc_input; +#define misc_input _misc_input +extern volatile u8 _home_sensors; +#define home_sensors _home_sensors /******* from helpers.c *******/ void delay(u16 ms); +void print_amount(u16 amt); /******** Some meaningful bits ******/ #define PORTA_DISP_RESET 0x80 /* active low */ #define PORTA_CHIME 0x10 /* chime is on when set */ #define PORTD_KEYPAD_ROW 0x20 /* clear for row 0, set for row 1 */ +/* Address 1800 bits */ +#define A1800_DOOR_OPEN 0x20 + /* Address 3800 bits */ #define A3800_DISPLAY_WRITE 0x04 @@ -40,4 +45,9 @@ void delay(u16 ms); int __attribute__((noreturn)) main (void); void __attribute__((interrupt)) rti (void); +/* other one liners */ +extern inline bool door_open() { return switch_input & A1800_DOOR_OPEN; } +extern inline void spi_enable() { bset((void*)&_io_ports[M6811_SPCR], M6811_SPE); } +extern inline void spi_disable() { bclr((void*)&_io_ports[M6811_SPCR], M6811_SPE); } + #endif /* _VEND_H_ */