Message Integrity Checking
[uccvend-snackrom.git] / ROM2 / chime.c
index 57c4630..37ec78a 100644 (file)
@@ -1,16 +1,18 @@
 #include "vend.h"
 #include "chime.h"
 
-u8 chime_count;
+volatile u8 chime_count;
+volatile u8 unchime_count; /* silence counter */
 
 void chime() {
        /* called from the RTI interrupt, sees if we need to turn the chime on or
-        * off (chime would be on for N RTI cycles
+        * off (chime would be on for N RTI cycles)
         */
        if (chime_count) {
-               bset((void*)&_io_ports[M6811_PORTA], PORTA_CHIME);
-               --chime_count;
+               chime_on();
+               --chime_count; /* interrupts masked here, so this won't result in badness */
        } else
-               bclr((void*)&_io_ports[M6811_PORTA], PORTA_CHIME);
+               chime_off();
+       if (unchime_count) --unchime_count;
 }
 

UCC git Repository :: git.ucc.asn.au