 
 #define HALT_MASK (1<<6)
 
+uint_least32_t blinken_lights_a = 0, blinken_lights_b = 0;;
+
 void loop() {
     byte a0_7, a8_15, a16_24, ctrl;
 

    spi_communicate(MX7219_NOP, 0, 0x8);
    ctrl = spi_communicate(MX7219_NOP, 0);

    spi_communicate(MX7219_DIGIT_0 + 0, ctrl);

    if(ctrl & HALT_MASK) {
        spi_communicate(MX7219_DIGIT_0 + 1, a0_7);
        spi_communicate(MX7219_DIGIT_0 + 2, a8_15);
        spi_communicate(MX7219_DIGIT_0 + 3, a16_24);
        spi_communicate(MX7219_DIGIT_0 + 4, chase & 0xff);
        spi_communicate(MX7219_DIGIT_0 + 5, (chase>>8) & 0xff);
    }

    unsigned long now = millis();

            chase = 1;
        }

        blinken_lights_a ^= 1UL << random(32);
        blinken_lights_b ^= 1UL << random(32);
    }
}

