X-Git-Url: https://git.ucc.asn.au/?p=uccvend-snackrom.git;a=blobdiff_plain;f=ROM2%2Fsci.c;h=2346b28569b60332f84f04c28feb2feda1a9cb04;hp=4ce0d36ce1d3c8120990c3350c7cf509328fcae4;hb=c1fd53d73bce8779c822e3ed74de94f40714f9ca;hpb=47ccc4dcb3e35d80f402793e3715e4a6166b3629 diff --git a/ROM2/sci.c b/ROM2/sci.c index 4ce0d36..2346b28 100644 --- a/ROM2/sci.c +++ b/ROM2/sci.c @@ -1,4 +1,5 @@ #include "vend.h" +#include "chime.h" #include "sci.h" char sci_tx_buf[BUFFER_LEN]; @@ -32,6 +33,7 @@ void send_packet() { } void sci_rx_int() { + /* XXX FIXME we should do something about errors. nack? */ if (sci_have_packet) { /* overrun :( */ _io_ports[M6811_SCDR]; /* read it anyway */ @@ -52,7 +54,12 @@ void sci_rx_int() { } void sci_interrupt_serial() { + chime_start(); + if (_io_ports[M6811_SCSR] & M6811_RDRF) sci_rx_int(); + + if (_io_ports[M6811_SCSR] & M6811_OR) + _io_ports[M6811_SCDR]; /* declare it a lost cause */ } void msg_clr() {