 
 // Showing display test
 byte showing_dt;
-const int DPY_TST_DURATION = 500; // milliseconds
+const int DPY_TST_DURATION = 1000; // milliseconds
+
+// Is processor stopped?
+bool halted;
+
+enum Words {
+    WORD_RUN, WORD_START, WORD_HALT, WORD_STOP, WORD_STEP,
+    WORD_CYCLE, WORD_INST, WORD_BURN, WORD_READ,
+};
 
 // Display strings
-byte displayWords[][6] = {
+byte DISPLAY_WORDS[][6] = {
     { 0x15, 0x18, 0x12, 0x1A, 0x1A, 0x1A }, // "run   "
     { 0x16, 0x17, 0x0A, 0x15, 0x17, 0x1A }, // "StArt "
     { 0x10, 0x0A, 0x11, 0x17, 0x1A, 0x1A }, // "HALt  "

    mode_switch.poll();
    select_switch.poll();

    switch(demo_mode) {
    case 0:
        // Update address bus
        setMX7219Reg(MX7219_DIGIT_0 + 0, MX7219_FONT[address_bus & 0xF]);
        setMX7219Reg(MX7219_DIGIT_0 + 1, MX7219_FONT[(address_bus>>4) & 0xF]);


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

DebouncedSwitch mode_switch(BTN_MODE);
DebouncedSwitch select_switch(BTN_SELECT);
