Skip to content
Back to Essays

The DSKY and PINBALL: How Astronauts Talked to a 1960s Computer

The electroluminescent display, the Verb-Noun grammar, and the 4,000 lines of I/O code that gave Apollo crews a conversation with their guidance computer

Matt Dennis

The Apollo Guidance Computer had no screen, no cursor, no mouse, no keyboard in any modern sense. What it had was the DSKY—Display and Keyboard unit, pronounced “dis-key”—a metal-faced panel with 19 pushbuttons and a cluster of green electroluminescent numeric displays. It weighed about 17.5 pounds. It was the size of a thick hardcover book. And it was the only way the crew could communicate with the computer that was keeping them alive.


The DSKY’s interface was managed by a software module called PINBALL—roughly 4,000 words of rope memory dedicated to processing keystrokes, formatting data for display, managing the flashing-display protocol, and handling the status indicator lights. PINBALL was not a program in the P-program sense. It was infrastructure. It ran continuously in the background, servicing every human interaction with the AGC from the moment of power-up to the moment of shutdown. Every number an astronaut read, every command an astronaut entered, passed through PINBALL.


The Hardware: Green Light on Black Steel

The DSKY’s display section was divided into two areas. The upper section contained status indicator lights—rectangular labels backlit by electroluminescent panels that illuminated to signal specific conditions. The lower section contained the numeric data displays.


The status lights included:


  • COMP ACTY (Computer Activity) — a white light that flickered when the AGC was processing, giving the crew a visual heartbeat
  • UPLINK ACTY — illuminated when the AGC was receiving data from Mission Control
  • TEMP — caution light for the AGC’s temperature
  • KEY REL (Key Release) — requested the crew to release the keyboard so a background program could display data
  • OPR ERR (Operator Error) — the astronaut had entered an invalid command
  • RESTART — the AGC had executed a software restart
  • TRACKER — optics tracking was active
  • PROG — a program alarm had occurred
  • NO ATT — the IMU platform had lost its reference
  • STBY — the computer was in standby mode
  • GIMBAL LOCK — the IMU gimbals were approaching a gimbal-lock condition

Below the status lights were the numeric displays, arranged in three rows:


  • PROG (2 digits) — displayed the currently running program number
  • VERB (2 digits) — displayed the verb code of the current or most recent command
  • NOUN (2 digits) — displayed the noun code of the current or most recent command
  • Three data registers (R1, R2, R3), each displaying a signed 5-digit decimal number with a +/- sign indicator

Each digit was formed by a seven-segment electroluminescent display—the same technology used in early digital clocks, but selected for Apollo because it consumed less power than LEDs (which barely existed at the time) and could operate across the temperature range the spacecraft interior would experience.


The keyboard was a 19-key array:


  • Digits 0 through 9
  • VERB — begin entering a verb code
  • NOUN — begin entering a noun code
  • + and — sign keys for data entry
  • ENTER — execute the command
  • CLR — clear the current entry
  • PRO (Proceed) — acknowledge a flashing display and proceed
  • KEY REL (Key Release) — release the keyboard for other programs
  • RSET (Reset) — clear alarm indicators

There were no letter keys. No shift key. No function keys. Every interaction with the computer was numerical.


The Verb-Noun Grammar

The DSKY’s interface paradigm was a two-word command language: Verb-Noun. The astronaut told the computer what to do (the Verb) and what to do it to (the Noun). It was the simplest possible command grammar that could express the full range of operations the crew needed.


To issue a command, the astronaut pressed the VERB key, entered a two-digit verb code, pressed the NOUN key, entered a two-digit noun code, and pressed ENTER. The AGC executed the command, displayed any results in the three data registers, and updated the VERB and NOUN displays to reflect the active command.


Verbs fell into several categories:


  • Display verbs (VERB 01-05): Show data on the registers. VERB 01 displayed a single component in R1. VERB 02 displayed two components in R1 and R2. VERB 03 displayed three components across all three registers. VERB 04 displayed octal (base-8) data. VERB 05 displayed a value in R1 and R2 as a double-precision number.

  • Monitor verbs (VERB 11-15): Same as the display verbs, but the display refreshed automatically every half-second. VERB 16 NOUN 65, for instance, continuously monitored and displayed the current time—a digital clock on the DSKY.

  • Command verbs (VERB 21-25): Load data from the keyboard into the AGC’s memory. VERB 21 loaded a single component, VERB 22 loaded two, VERB 23 loaded three. The AGC displayed the current values, flashed the VERB-NOUN display to indicate it was waiting for input, and the astronaut keyed in new values followed by ENTER for each register.

  • Action verbs (VERB 32-99): Performed specific operations. VERB 33 was “Proceed”—confirm and continue. VERB 34 was “Terminate”—cancel the current display or operation. VERB 37 was “Change Program”—the most frequently used action verb, which switched the AGC to a different P-program. VERB 46 set up the DAP configuration. VERB 82 requested an orbit parameter display.

Nouns identified the data being operated on:


  • NOUN 14: Desired gimbal angles
  • NOUN 17: Astronaut’s ID (crew code)
  • NOUN 20: ICDU angles (IMU gimbal angles)
  • NOUN 43: Geographic position (latitude, longitude, altitude)
  • NOUN 54: Range, range rate, theta
  • NOUN 62: Velocity components for the current burn
  • NOUN 65: Sampled time (hours, minutes, seconds)
  • NOUN 68: Landing radar slant range and velocity
  • NOUN 93: Gyro torquing angles (from P52 alignment)

The full set of valid Verb-Noun combinations was defined in tables woven into rope memory. Not every verb worked with every noun—PINBALL validated each combination and flashed OPR ERR if the astronaut entered an invalid pair.


PINBALL: The Software Behind the Glass

The PINBALL module—named with the dry humor typical of the MIT programmers—was the AGC’s I/O subsystem for human interaction. Its responsibilities were:


Keystroke processing: When an astronaut pressed a DSKY key, the hardware generated an interrupt. The interrupt service routine read the key code from an input channel and passed it to PINBALL for processing. PINBALL maintained a state machine that tracked where the astronaut was in the Verb-Noun entry sequence: waiting for a verb, waiting for a noun, waiting for data, waiting for ENTER. Each keystroke advanced the state machine and updated the DSKY display to show the digits as they were entered.


Display formatting: Raw data in the AGC’s memory was stored as binary fixed-point numbers in machine units—scaled fractions of revolutions for angles, scaled fractions of Earth radii for distances, signed integers for counts. PINBALL converted these internal representations into the decimal digits displayed on the DSKY. This conversion included scaling (multiplying by the appropriate conversion factor), sign determination, and decimal-to-BCD conversion for the display hardware. The format depended on the noun: some nouns displayed values in hours-minutes-seconds, some in degrees, some in feet per second, some in raw octal.


Flashing display management: The DSKY used a flashing display to signal that the computer was waiting for astronaut input. When a program needed data from the crew, it called a PINBALL routine that set the VERB and NOUN displays to flash. The flashing continued until the astronaut responded with data entry (ENTER), acknowledgment (PRO), or rejection (VERB 34 to terminate). PINBALL managed the flash timing, the data buffers, and the handshake between the requesting program and the crew’s response.


Multi-program arbitration: Multiple programs might want to display data simultaneously. The guidance program might be showing descent parameters while the DAP configuration routine wanted to display thruster status. PINBALL arbitrated these competing requests using a priority system. Higher-priority displays preempted lower-priority ones. The KEY REL light illuminated when a lower-priority program was waiting for the display, signaling the crew to press KEY REL to let the pending display through.


Alarm and status light management: PINBALL controlled the PROG, OPR ERR, RESTART, and other indicator lights. When a program alarm occurred, PINBALL illuminated the PROG light, stored the alarm code, and displayed it on the DSKY. The crew could read the alarm code using VERB 05 NOUN 09 (display alarm data). The RSET key cleared the alarm indicators without affecting the underlying condition.


The Flashing Display: A Conversation Protocol

The flashing display was the DSKY’s only mechanism for initiating a dialogue with the crew. When the AGC needed information or a decision, PINBALL set the VERB-NOUN digits to flash at approximately 1.5 Hz. The three data registers displayed either the current values (for the crew to verify or override) or blank fields (for fresh data entry).


The astronaut had four options:


  • Enter data: Key in values for R1, R2, and/or R3, pressing ENTER after each. When all requested data was entered, the flashing stopped and the program continued with the new values.

  • PRO (Proceed): Accept the displayed values without change. This was used when the computer was showing a proposed maneuver or alignment result and asking “is this okay?” PRO meant yes.

  • VERB 33 ENTER (Proceed): Functionally equivalent to PRO in most contexts. Crews often used VERB 33 instead of the PRO key out of habit or preference.

  • VERB 34 ENTER (Terminate): Reject the request and cancel the operation. The requesting program received a termination signal and could take appropriate action—typically reverting to a safe state or requesting different input.

This protocol was simple enough that astronauts could operate it under high stress and high G-loads. The flashing display was visible and unambiguous. The response options were limited and clear. The protocol required no reading of text, no parsing of sentences, no interpretation of ambiguous prompts. Flash means “your turn.” PRO means “go.” VERB 34 means “stop.” That was the entire user experience.


Extended Verbs and the Machine Gun Keying Problem

Some operations required extended verb sequences that went beyond the basic Verb-Noun-Enter pattern. VERB 37 (Change Program) required the program number to be entered in R1 after the ENTER key. VERB 25 (Load Component Sets with Checklist) had a specialized entry sequence. These extended verbs had their own state machines within PINBALL, each handling the multi-step interaction differently.


A practical problem the PINBALL designers solved was what the programmers called “machine gun keying”—the tendency of astronauts, particularly during high-workload phases, to press keys faster than the AGC could process them. Each keystroke generated a hardware interrupt, and each interrupt required PINBALL to update its state machine and refresh the display. If keystrokes arrived faster than PINBALL could service them, keys could be lost or misinterpreted.


PINBALL handled this with a keystroke buffer. Incoming key codes were queued and processed sequentially, with the display updating after each keystroke was fully processed. The buffer was small—only five keystrokes—but sufficient for the typical entry cadence. If the buffer overflowed (an astronaut entered more than five keys before the processor could catch up), the excess keystrokes were lost and the crew would notice that the display didn’t match their input. This was rare in practice because the AGC processed keystrokes within a few milliseconds, and even the fastest typist couldn’t sustain a rate that would overflow the buffer under normal conditions.


DSKY Geography: Two Panels, Same Code

The Command Module had two DSKY units—one on the Main Display Console directly in front of the crew couches (Panel 1, accessible to the Commander and Command Module Pilot), and one at the navigation station in the Lower Equipment Bay (accessible to the CMP during optical sighting). Both DSKYs were connected to the same AGC. A keystroke on either DSKY was processed identically by PINBALL. The displays on both units showed the same data simultaneously.


The Lunar Module had a single DSKY mounted on the front panel between the Commander and LM Pilot. The LM DSKY was physically identical to the CM DSKY but connected to the LM’s separate AGC running Luminary instead of Colossus. The PINBALL code was shared between both programs, so the interface behavior was identical in both vehicles.


During dual-DSKY operations in the CM, there was no conflict resolution between the two units. If one crew member was entering data on the Main Display Console DSKY while another pressed a key on the Lower Equipment Bay DSKY, both keystrokes entered the same PINBALL queue. The crew coordinated verbally: “I’m on the DSKY” was sufficient to prevent interference. In practice, dual-DSKY conflicts were rare because the two stations had distinct roles—the main panel for command and the LEB for navigation—and were rarely used simultaneously for data entry.


The Language of the Moon Landing

The Verb-Noun interface was criticized by some early Apollo engineers as primitive and unintuitive. Why not use alphanumeric commands? Why not a more descriptive syntax? The answer was weight, power, reliability, and display technology. An alphanumeric display in the mid-1960s would have required either a CRT (too heavy, too fragile, too power-hungry) or a far larger array of display segments (consuming panel space that didn’t exist). The numeric-only DSKY was the lightest, simplest, most reliable display unit that could convey the necessary information.


The crews adapted. The Apollo astronauts were all accomplished pilots accustomed to memorizing cockpit procedures, and the Verb-Noun codes became as natural to them as airspeed and altitude callouts. Buzz Aldrin, who had a doctorate in orbital mechanics from MIT, was particularly fluent with the DSKY. Jim Lovell, who flew both Gemini and Apollo missions, described the Verb-Noun interface as “simple and direct—you always knew what the computer was doing because the program number, the verb, and the noun were right there in front of you.”


The most famous Verb-Noun combination in history is VERB 16 NOUN 68—the monitor display for landing radar data that Aldrin watched during the Apollo 11 descent. He read the altitude and velocity values from R1, R2, and R3, calling them out to Armstrong as the LM descended toward Tranquility Base. The numbers on the DSKY, formatted by PINBALL, converted from internal machine units to feet and feet-per-second, updated every half-second, were the last digital readout before contact.


PINBALL parsed the keystrokes. PINBALL formatted the data. PINBALL managed the display, the alarms, the flashing prompts, and the status lights. Four thousand words of code, running in the background of every computation, connecting the human to the machine through 19 keys and a grid of green numbers. It was not elegant by any modern standard. It did not need to be. It needed to work in a vacuum, at four G’s, in a spacecraft with no screen, no font, no pixel, no cursor—and it did, on every mission, for every crew, from Earth to the Moon and back.