Our programs were assembled out of simple processes that shared synchronous access to an I/O space. Jeff Bradford built a LED display that could capture one byte of that space for debugging purposes.
Dozens of I/O address were statically allocated to standard processes that were frequently reused components of our programs.
Processes would write to their allocated I/O port on every significant state change. Typical states were: waiting for input, computing, waiting to write output, and allocating memory.
Processes would encode their state using a 1-of-8 code so that only one LED would be on at any given time.
LED brightness would indicate the degree to which any particular state was rate-limiting.
Square pins adjacent to LEDs provide performance measures that could be observed with an oscilloscope.
Square pins adjacent to LEDs provide stable sync for debugging attached hardware.
Thumbwheels select I/O address to be decoded and latched into LEDs.
See also Test Point for a web equivalent.