Computer output can start as a row of LEDs showing a register in binary, then move to 7-segment displays driven by a BCD decoder, then to a character-cell video display built from a character generator ROM and video RAM. The easiest useful display for a hand-built computer is a serial ASCII terminal over just 3 wires (TX, RX, GND) using a UART, because it needs no display hardware and stays useful later for debugging and logging.

Display output connects a computer to human perception — translating internal binary states into visible symbols, numbers, or images that operators can read and act on.

Display Output Evolves From Indicator Lamps to Text Terminals

A computer without output is invisible. Early computers output results by operating physical switches, printing on paper tape, or lighting indicator lamps. These were adequate for the first generation of machines but cumbersome for interactive use. The evolution from toggle switches to LED displays to character terminals to graphical screens is the evolution of human-computer interaction.

Understanding display technology from fundamentals allows a rebuilder to implement output capability at whatever technology level is available — from individual indicator LEDs showing register contents, to 7-segment numeric displays, to full character-cell video output. Each level requires more hardware and software sophistication but provides proportionally more usable information.

Display output is also where much of the complexity of an operating system lives: managing what is shown on screen, scrolling text, handling cursor position. Understanding the display hardware makes the software requirements concrete.

LED and Lamp Indicators

The simplest computer output is a row of LEDs showing the binary state of a register or bus. An 8-bit register displayed this way shows 8 LEDs, each on or off, readable as a binary or hex value by anyone familiar with the representation.

Wiring: each LED connects through a current-limiting resistor (330Ω for 5V supply, giving approximately 10mA) to the register output bit. Logic high (5V) lights the LED; logic low (0V) extinguishes it. If the register output cannot source sufficient current, add a transistor buffer (NPN transistor with base through 1kΩ to the output, collector driving the LED, emitter to ground).

For hexadecimal display, group bits into nibbles: top 4 LEDs = high nibble, bottom 4 = low nibble. With practice, reading 8 binary LEDs as two hex digits becomes fast. Label each LED’s position value (128, 64, 32, 16, 8, 4, 2, 1) on the panel.

A front panel with 16 address LEDs, 8 data LEDs, and 8 status LEDs provides a complete register view. This was the standard interface on minicomputers of the 1960s (PDP-8) and early microcomputers of the 1970s (Altair 8800). It is tedious but fully functional.

Seven-Segment Displays

A 7-segment display contains seven LED segments (labeled a–g) arranged to show decimal digits 0–9 and some letters. An additional decimal point segment (dp) shows fractions.

Segment mapping for digit 0: segments a, b, c, d, e, f lit (all except g). For digit 1: only b, c. The full mapping:

  • 0: abcdef (g off)
  • 1: bc
  • 2: abdeg
  • 3: abcdg
  • 4: bcfg
  • 5: acdfg
  • 6: acdefg
  • 7: abc
  • 8: abcdefg
  • 9: abcdfg

A BCD to 7-segment decoder IC (74HC47 for common-anode, 74HC48 for common-cathode) converts a 4-bit BCD digit directly to the 7 segment drive signals, eliminating the need for custom decoding logic. Connect the 4 BCD input pins to the lower nibble of the data register; the 7 segment outputs drive the display segments through 330Ω resistors.

For multi-digit display, multiplex: cycle through digits rapidly (50–100 Hz per digit), displaying each for only a few milliseconds. Persistence of vision makes all digits appear simultaneously. A 4-digit display requires only one decoder IC and a 2-bit counter to select the active digit.

Character Generator and Text Display

For displaying text (letters, numbers, symbols), a character generator ROM stores the pixel patterns for each character. Each character cell is typically 5×7 or 8×8 pixels. A character code (0–127 for ASCII, or 0–255 for extended sets) indexes into the ROM to retrieve the pixel pattern for that character.

Video timing for a simple character terminal:

  • Raster scan: the display is drawn line by line, left to right, top to bottom
  • For 40 columns × 24 rows of 8×8 characters: 320 pixels wide × 192 pixels tall
  • Add horizontal blanking: 320 + 80 = 400 pixels per line at the pixel clock rate
  • Add vertical blanking: 192 + 38 = 230 lines per frame
  • At 60 Hz: 230 × 60 = 13,800 lines/second; each line = 400 pixels; pixel clock = 5.52 MHz

Video RAM: stores the character codes for all 40×24 = 960 character positions. On each video line, the display controller reads the character code for each column, looks up the row’s pixels in the character ROM, and shifts them out to the video output at the pixel clock rate.

This requires a video shift register, character ROM address calculation logic, and a sync pulse generator for horizontal and vertical sync. Complexity is moderate: approximately 10–15 standard ICs.

Practical First Display: Serial Terminal

The easiest useful display for a hand-built computer is a serial ASCII terminal — either a surplus terminal (VT100, VT220) connected via RS-232 serial, or a modern microcontroller programmed to receive ASCII and display it.

Serial terminal connection requires only 3 wires (TX, RX, GND) and implementation of the UART protocol (Universal Asynchronous Receiver/Transmitter). A UART transmits ASCII bytes as serial bit streams at standard baud rates (9600, 115200 baud).

A 16550 UART IC handles all serial protocol implementation in hardware. The CPU writes an ASCII byte to the UART’s transmit register; the UART serializes it and sends it. The terminal receives and displays the character. For simple output, only the transmit direction is needed — much simpler than bidirectional communication.

This approach allows the hand-built CPU to display human-readable text immediately without building any display hardware — just interface to existing equipment. As new display hardware is built, the UART interface remains useful for debugging and logging.