     if(mode_trigger.triggered()) {
         halt_request = !halt_request;
     }
+
+    cycle_request = cycle_request || select_trigger.triggered();
 
     // Update control lines
     digitalWrite(HALT, halt_request ? HIGH : LOW);


    // Processor is in running state
    halt_request = false;

    // OK, all done, just wait for display test to time out
    while(millis() - dt_shown_at < DPY_TST_DURATION) {

        }
    } else {
        // step only makes sense if processor halted
        if(cycle_request) {
            // Pulse step pin
            digitalWrite(STEP, HIGH);
            digitalWrite(STEP, LOW);

            // Reset cycle request
            cycle_request = false;
        }

        // Update address bus
