         if(select_trigger.triggered()) {
             address_bus += 1;
             data_bus += 7;
-            select_trigger.clear();
         }
     } else {
         // Show running dots

        for(int digit=0; digit<6; ++digit) {
            setMX7219Reg(MX7219_DIGIT_0 + digit, (point == (5-digit)) ? 0x80 : 0x00);
        }
    }

    if(next_demo_loop_at < millis()) {
        status_bits += 1;


// HACK: demo
unsigned long next_demo_loop_at;
const long DEMO_LOOP_PERIOD = 50; // milliseconds
unsigned long demo_loop_count;

DebouncedSwitch mode_switch(BTN_MODE);
