X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=ROM2%2Fmain_basic.c;h=36ace960d39b8f43f8086570568b357c8aa9fee2;hb=35d3d7f73fa94eb2418a8be2995252e1f3b8441a;hp=e4594717e5a4f7858e7ebe333ad5067e9d88ab71;hpb=293827a53b325c2faffddcba380b6f0c19da802a;p=uccvend-snackrom.git diff --git a/ROM2/main_basic.c b/ROM2/main_basic.c index e459471..36ace96 100644 --- a/ROM2/main_basic.c +++ b/ROM2/main_basic.c @@ -89,7 +89,7 @@ void give_change() { coin_cost(cost); send_ack(); -} +} void send_keypress(u8 key) { /* send a packet of the form KX with X being the key, or R for reset */ @@ -104,18 +104,44 @@ void send_keypress(u8 key) { send_packet(); } +void send_door_msg(bool open) { + wait_for_tx_free(); + tx_buffer[0] = 'D'; + tx_buffer[1] = open?'1':'0'; + tx_buffer[2] = '\n'; + tx_buffer[3] = 0; + send_packet(); +} + void do_chime() { chime_start(); send_ack(); } int main() { - u16 last_coin_value = coin_value; + u16 last_coin_value; + bool last_door_open; + + chime_start(); + + misc_output = 0; + changer_output = 0x7f; + _io_ports[M6811_PORTA] = 0xc8; + _io_ports[M6811_DDRD] = 0x3e; + _io_ports[M6811_SPCR] = 0x12; - /* init coin mech */ - comm_init(); display_init(); + comm_init(); + coinmech_init(); + + last_coin_value = 0; + last_door_open = 0; while(1) { + if (door_open() != last_door_open) { + last_door_open = door_open(); + send_door_msg(last_door_open); + } + if (rx_queue_state) { switch (msg_buf[0]) { case 'V': @@ -135,6 +161,7 @@ int main() { break; default: /* shrug */ + send_nack(); break; } msg_clr(); @@ -143,7 +170,6 @@ int main() { keypad_read(); if (keypad_pressed()) { send_keypress(last_key); - /* beep? */ } if (coin_value != last_coin_value) {