FACTOID # 6: Michigan is ranked 22nd in land area, but since 41.27% of the state is composed of water, it jumps to 11th place in total area.
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 


FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:



(* = Graphable)



Encyclopedia > Apollo Guidance Computer

The Apollo Guidance Computer (AGC) was the first recognizably modern embedded system, used in real-time by astronaut pilots to collect and provide flight information, and to automatically control all of the navigational functions of the Apollo spacecraft. It was developed for the Apollo program by the MIT Instrumentation Laboratory under Charles Stark Draper, with hardware design led by Eldon C. Hall. Based upon MIT documents, early architectural work seems to have come from J.H. Laning Jr., Albert Hopkins, Ramon Alonso,[1] and Hugh Blair-Smith.[2] The actual flight hardware was fabricated by Raytheon, whose Herb Thaler[3] was also on the architectural team. A router, an example of an embedded system. ... Realtime redirects here. ... Astronaut Bruce McCandless II using a manned maneuvering unit outside the U.S. Space Shuttle Challenger in 1984. ... In human spaceflight, a pilot is someone who directly controls the operation of a spacecraft while located within the same craft. ... Apollo Spacecraft: Command Module, Service Module, Lunar Module. ... This article is about the series of human spaceflight missions. ... The Charles Stark Draper Laboratory, Inc. ... Charles Stark Draper (October 2, 1901 – July 25, 1987) is often referred to as the father of inertial navigation. ... Eldon Hall was the leader of hardware design efforts for the Apollo Guidance Computer (AGC) at MIT, and advocated the use of integrated circuits for this task. ... A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications (see also Tanenbaum 79). ... Raytheon Company (NYSE: RTN) is a major United States military contractor based in Waltham, Massachusetts. ...

Apollo Guidance Computer.
Image courtesy of Computer History Museum. (fair use)


he Apollo Guidance Computer (AGc) source: The Computer History Museum ( fair use see site) This work is copyrighted. ... he Apollo Guidance Computer (AGc) source: The Computer History Museum ( fair use see site) This work is copyrighted. ...

AGC in Apollo

Each flight to the Moon had two AGCs, one each in the command module and the lunar module. The AGC in the command module was at the center of that spacecraft's guidance & navigation system (G&C). The AGC in the Lunar Module ran its Primary Guidance, Navigation and Control System, called by the acronym PGNCS (pronounced "pings"). The Command/Service Module (CSM) was a spacecraft built for NASA by North American Aviation. ... The LEM flight instrumentation panel and front windows. ... The Apollo Primary Guidance, Navigation and Control System (PGNCS) (pronounced pings) was a self-contained inertial guidance system that allowed Apollo spacecraft to carry out their missions when communications with Earth were interrupted, either as expected, when the spacecraft were behind the moon, or in case of a communications failure. ...

Each lunar mission also had two additional computers:

  • A flight computer on the Saturn V booster instrumentation ring called the Launch Vehicle Digital Computer (LVDC) – a serial computer built by IBM Federal Systems Division.
  • A small machine in the lunar module's Abort Guidance System (AGS), built by TRW, to be used in the event of failure of the PGNCS. The AGS could be used to take off from the Moon, and to rendezvous with the command module, but not for landing.

For the moon designated Saturn V, see Rhea. ... The Saturn Launch Vehicle Digital Computer (LVDC) was one of the major components of the Instrument Unit fitted to the S-IVB stage of the Saturn V and Saturn IB rockets. ... TRW Incorporated was an American corporation involved in a number of businesses, mostly defense-related, but including automotive supply and credit reporting. ...


The Apollo flight computer was the first to use integrated circuits (ICs). The Block I version used 4,100 ICs, each containing a single 3-input NOR logic gate. The later Block II version used dual 3-input NOR gates in a flat-pack, approximately 5,600 gates in all. The gates were made by Fairchild Semiconductor using resistor-transistor logic (RTL). They were interconnected by a technique called wire wrap, in which the circuits are pushed into sockets, the sockets have square posts, and wire is wrapped around the posts. The edges of the posts bite the wire with tons of pressure per square inch, causing gas-tight connections that are more reliable than soldered PC boards. The wiring was then embedded in cast epoxy plastic. The decision to use a single IC design throughout the AGC avoided problems that plagued another early IC computer design, the Minuteman II guidance computer, which used a mix of diode-transistor logic (DTL) and diode logic (DL) gates made by Texas Instruments. Integrated circuit of Atmel Diopsis 740 System on Chip showing memory blocks, logic and input/output pads around the periphery Microchips with a transparent window, showing the integrated circuit inside. ... The NOR gate is a digital logic gate that implements logical NOR - it behaves according to the truth table to the right. ... A logic gate performs a logical operation on one or more logic inputs and produces a single logic output. ... Fairchild Semiconductor introduced the first commercially available integrated circuit (although at almost the same time as one from Texas Instruments), and would go on to become one of the major players in the evolution of Silicon Valley in the 1960s. ... Resistor-transistor logic (RTL) is a class of digital circuits built from bipolar junction transistors (BJT), and resistors; it is the earliest transistorized digital logic used. ... This article deals with electronics manufacturing and prototyping techniques, see Wire wrap jewellery for the jewellery related topic Wire wrap is a technique for constructing small numbers of complex electronics. ... Close-up photo of one side of a motherboard PCB, showing conductive traces, vias and solder points for through-hole components on the opposite side. ... In chemistry, epoxy or polyepoxide is a thermosetting epoxide polymer that cures (polymerizes and crosslinks) when mixed with a catalyzing agent or hardener. Most common epoxy resins are produced from a reaction between epichlorohydrin and bisphenol-A. The first commercial attempts to prepare resins from epichlorohydrin occurred in 1927 in... The LGM-30 Minuteman is a United States nuclear missile, a land-based intercontinental ballistic missile (ICBM). ... Minuteman II NS-17 Missile Guidance Set The D-37C is the computer component of the all-inertial NS-17 Missile Guidance Set (MGS) for accurately navigating to its target thousands of miles away. ... Diode-Transistor Logic (DTL) Diode-Transistor Logic, or DTL, refers to the technology for designing and fabricating digital circuits wherein logic gates employ both diodes and transistors. ... Diode logic is an outdated technology which makes use of diodes to contruct logic gates. ... Texas Instruments (NYSE: TXN), better known in the electronics industry (and popularly) as TI, is an American company based in Dallas, Texas, USA, renowned for developing and commercializing semiconductor and computer technology. ...

The computer's RAM was magnetic core memory (4K words) and ROM was implemented as core rope memory (32K words). Both had cycle times of 12 microseconds. The memory word length was 16 bits: 15 bits of data and 1 odd-parity bit. The CPU-internal 16-bit word format was 14 bits of data, 1 overflow bit, and 1 sign bit (one's complement representation). Different types of RAM. From top to bottom: DIP, SIPP, SIMM 30 pin, SIMM 72 pin, DIMM, RIMM RAM redirects here. ... A 16×16 cm area core memory plane of 128×128 bits, i. ... Read-only memory (usually known by its acronym, ROM) is a class of storage media used in computers and other electronic devices. ... Core rope memory is a form of read-only memory (ROM) for computers, first used by early NASA Mars probes and then in the Apollo Guidance Computer (AGC) designed by MIT and built by Raytheon. ... To help compare orders of magnitude of different times this page lists times between 10−6 seconds and 10−5 seconds (1. ... A parity bit is a binary digit that indicates whether the number of bits with value of one in a given set of bits is even or odd. ... Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ... In computer science, 16-bit is an adjective used to describe integers that are at most two bytes wide, or to describe CPU architectures based on registers, address buses, or data buses of that size. ... The term arithmetic overflow or simply overflow has the following meanings. ... The term computer numbering formats refers to the schemes implemented in digital computer and calculator hardware and software to represent numbers. ...


The AGC was controlled by a 2.048 MHz crystal clock. The clock was divided by two to produce a four-phase 1.024 MHz clock which the AGC used to perform internal operations. The 1.024 MHz clock was also divided by two to produce a 512 kHz signal called the MASTER FREQUENCY; this signal was used to synchronize external Apollo spacecraft systems. MegaHertz (MHz) is the name given to one million (106) Hertz, a measure of frequency. ... A crystal oscillator is an electronic circuit that uses the mechanical resonance of a vibrating crystal of piezoelectric material to create an electrical signal with a very precise frequency. ... It has been suggested that this article or section be merged into Clock signal. ...

The MASTER FREQUENCY was further divided through a SCALER, first by five using a ring counter to produce a 102.4 kHz signal. This was then divided by two through 17 successive stages called F1 (51.2 kHz) through F17 (0.78125 Hz). The F10 stage (100 Hz) was fed back into the AGC to increment the real-time clock and other involuntary counters using PINC (discussed below). The F17 stage was used to intermittently run the AGC when it was operating in the STANDBY mode. A real-time clock (RTC) is a computer clock (most often in the form of an integrated circuit chip) that keeps track of the current time even when the computer is turned off. ...

Central registers

The AGC had four 16-bit registers for general computational use. These were called the "central registers": In computer architecture, a processor register is a small amount of very fast computer memory used to speed the execution of computer programs by providing quick access to commonly used values—typically, the values being in the midst of a calculation at a given point in time. ...

  • A: the accumulator, used for general computation
  • Z: the program counter, which contained the address of the next instruction to be executed
  • Q: used to hold the remainder in the DV instruction, and to hold the return address after TC instructions
  • LP: used to hold the lower product after MP instructions

There were also four locations in core memory, at addresses 20-23, dubbed "editing locations" because whatever was stored there would emerge shifted or rotated by one bit position. This was common to Block I and Block II AGCs. In a computer CPU, an accumulator is a register in which intermediate arithmetic and logic results are stored. ... The program counter (also called the instruction pointer in some computers) is a register in a computer processor which indicates where the computer is in its instruction sequence. ... In both conventional and electronic messaging, a return address is an explicit inclusion of the address of the person sending the message. ...

Other registers

The AGC had additional registers that were used internally in the course of operation. These were:

  • S: the 12-bit memory address register, which held the lower portion of the memory address
  • BANK: the 4-bit memory bank register, which selected the memory bank when addressing was in the fixed-switchable mode
  • SQ: the 4-bit sequence register, which held the current instruction
  • G: the 16-bit memory buffer register, which held data words moving to and from memory
  • X: used to hold one of the two inputs to the ADDER; the ADDER was used to perform all 1's complement arithmetic, and to increment the program counter (Z register)
  • Y: used to hold the other input to the ADDER
  • U: not really a register, but the output of the ADDER (the 1's complement sum of the contents of registers X and Y
  • B: a general-purpose buffer register, also used to pre-fetch the next instruction. At the start of the next instruction sequence, the upper bits of B (containing the next op code) were copied to SQ, and the lower bits (the address) were copied to S.
  • C: not a separate register, but a different output from the B register, containing the 1's complement of the contents of B
  • IN: four 16-bit input registers
  • OUT: five 16-bit output registers

Instruction set

The instruction format was 3 bits for opcode, 12 bits for address. Block I had 11 instructions: TC, CCS, INDEX, XCH, CS, TS, AD, and MASK (basic), and SU, MP, and DV (extra). The first eight, called "basic instructions", were directly accessed by the 3-bit op code. The final three were denoted as "extracode instructions" because they were accessed by performing a special type of INDEX instruction (called EXTEND) immediately before the instruction. It has been suggested that some sections of this article be split into a new article entitled instruction set architecture. ... Microprocessors perform operations using binary bits (on/off/1or0). ...

The Block I AGC instructions consisted of the following:

TC (Transfer Control): An unconditional branch to the address specified by the instruction. The return address was automatically stored in the Q register, so the TC instruction could be used for subroutine calls.

CCS (Count, Compare, and Skip): A complex conditional branch instruction. The A register was loaded with data retrieved from the address specified by the instruction. (Because the AGC uses 1's complement notation, there are two representations of zero. When all bits are set to zero, this is called "plus zero". If all bits are set to one, this is called "minus zero".) The "Diminished Absolute Value (DABS)" of the data was then computed and stored in the A register. If the number was greater than zero, the DABS decrements the value by 1; if the number was negative, it is complemented before the decrement is applied – that's the "absolute value" part. "Diminished" means "decremented but not below zero." Therefore, when the AGC performs the DABS function, positive numbers will head toward plus zero, and so will negative numbers but first revealing their negativity via the four-way skip below. The final step in CCS is a four-way skip, depending upon the data in register A before the DABS. If register A was greater than 0, CCS skips to the first instruction immediately after CCS. If register A contained plus zero, CCS skips to the second instruction after CCS. Less than zero causes a skip to the third instruction after CCS, and minus zero skips to the fourth instruction after CCS. The primary purpose of the "count" part was to allow an ordinary loop, controlled by a positive counter, to end in a CCS and a TC to the beginning of the loop, equivalent to an IBM 360's BCT. The "absolute value" function was deemed important enough to be built into this instruction; when used for only this purpose, the sequence after the CCS was TC *+2, TC *+2, AD ONE. A curious sidelight was the creation and use of "CCS-holes" when the value being tested was known to be never positive, which occurred more often than you might suppose. That left two whole words unoccupied, and a special committee was responsible for assigning data constants to these holes. System/360 Model 65 operators console, with register value lamps and toggle switches (middle of picture) and emergency pull switch (upper right). ...

INDEX: Add the data retrieved at the address specified by the instruction to the next instruction. INDEX can be used to add or subtract an index value to the base address specified by the operand of the instruction that follows INDEX. This method is used to implement arrays and table look-ups; since the addition was done on both whole words, it was also used to modify the op code in a following (extracode) instruction, and on rare occasions both functions at once. In computing, a base address denotes a memory address serving as a reference point (base) for other addresses. ...

RESUME: A special instance of INDEX (INDEX 25). This is the instruction used to return from interrupts. It causes execution to resume at the interrupted location.

XCH (Exchange): Exchange the contents of memory with the contents of the A register. If the specified memory address is in fixed (read-only) memory, the memory contents are not affected, and this instruction simply loads register A. If it is in erasable memory, overflow "correction" is achieved by storing the leftmost of the 16 bits in A as the sign bit in memory, but there is no exceptional behavior like that of TS.

CS (Clear and Subtract): Load register A with the one's complement of the data referenced by the specified memory address.

TS (Transfer to Storage): Store register A at the specified memory address. TS also detects, and corrects for, overflows in such a way as to propagate a carry for multi-precision add/subtract. If the result has no overflow (leftmost 2 bits of A the same), nothing special happens; if there is overflow (those 2 bits differ), the leftmost one goes the memory as the sign bit, register A is changed to +1 or -1 accordingly, and control skips to the second instruction following the TS. Whenever overflow is a possible but abnormal event, the TS was followed by a TC to the no-overflow logic; when it is a normal possibility (as in multi-precision add/subtract), the TS is followed by CAF ZERO (CAF = XCH to fixed memory) to complete the formation of the carry (+1, 0, or -1) into the next higher-precision word. Angles were kept in single precision, distances and velocities in double precision, and elapsed time in triple precision. The term arithmetic overflow or simply overflow has the following meanings. ... In computing, single precision is a computer numbering format that occupies one storage locations in computer memory at address. ... In computing, double precision is a computer numbering format that occupies two storage locations in computer memory at address and address+1. ...

AD (Add): Add the contents of memory to register A and store the result in A. The 2 leftmost bits of A may be different (overflow state) before and/or after the AD. The fact that overflow is a state rather than an event forgives limited extents of overflow when adding more than two numbers, as long as none of the intermediate totals exceeds twice the capacity of a word.

MASK: Perform a bit-wise (boolean) AND of memory with register A and store the result in register A.

MP (Multiply): Multiply the contents of register A by the data at the referenced memory address and store the high-order product in register A and the low-order product in register LP. The parts of the product agree in sign.

DV (Divide): Divide the contents of register A by the data at the referenced memory address. Store the quotient in register A and the absolute value of the remainder in register Q. Unlike modern machines, fixed-point numbers were treated as fractions (notional decimal point just to right of the sign bit), so you could produce garbage if the divisor was not larger than the dividend; there was no protection against that situation. In the Block II AGC, a double-precision dividend started in A and L (the Block II LP), and the correctly signed remainder was delivered in L. That considerably simplified the subroutine for double precision division.

SU (Subtract): Subtract (one's complement) the data at the referenced memory address from the contents of register A and store the result in A.

Instructions were implemented in groups of 12 steps, called timing pulses. The timing pulses were named TP1 through TP12. Each set of 12 timing pulses was called an instruction subsequence. Simple instructions, such as TC, executed in a single subsequence of 12 pulses. More complex instructions required several subsequences. The multiply instruction (MP) used 8 subsequences: an initial one called MP0, followed by an MP1 subsequence which was repeated 6 times, and then terminated by an MP3 subsequence. This was reduced to 3 subsequences in Block II.

Each timing pulse in a subsequence could trigger up to 5 control pulses. The control pulses were the signals which did the actual work of the instruction, such as reading the contents of a register onto the bus, or writing data from the bus into a register.


Block I AGC memory was organized into 1024 word banks. The lowest bank (bank 0) was erasable memory (RAM). All banks above bank 0 were fixed memory (ROM). Each AGC instruction had a 12-bit address field. The lower bits (1-10) addressed the memory inside each bank. Bits 11 and 12 selected the bank: 00 selected the erasable memory bank; 01 selected the lowest bank (bank 1) of fixed memory; 10 selected the next one (bank 2); and 11 selected a BANK register that could be used to select any bank above 2. Banks 1 and 2 were called "fixed-fixed" memory, because they were always available, regardless of the contents of the BANK register. Banks 3 and above were called "fixed-switchable" because the selected bank was determined by the BANK register.

The Block I AGC initially had 12K words of fixed memory, but this was later increased to 24K. Block II had 32K of fixed memory and 4K of erasable memory.

The AGC transferred data to and from memory through the G register in a process called the "memory cycle." The memory cycle took 12 timing pulses (11.72 microseconds). The cycle began at timing pulse 1 (TP1) when the AGC loaded the memory address to be fetched into the S register. The memory hardware retrieved the data word from memory at the address specified by the S register. Words from erasable memory were deposited into the G register by timing pulse 6 (TP6); words from fixed memory were available by timing pulse 7. The retrieved memory word was then available in the G register for AGC access during timing pulses 7 through 10. After timing pulse 10, the data in the G register was written back to memory.

The AGC memory cycle occurred continuously during AGC operation. Instructions needing memory data had to access it during timing pulses 7-10. If the AGC changed the memory word in the G register, the changed word was written back to memory after timing pulse 10. In this way, data words cycled continuously from memory to the G register and then back again to memory.

The lower 15 bits of each memory word held AGC instructions or data. Each word protected by a 16th "odd parity" bit. This bit was set to 1 or 0 by a parity generator circuit so a count of the 1's in each memory word would always produce an odd number. A parity checking circuit tested the parity bit during each memory cycle; if the bit didn't match the expected value, the memory word was assumed to be corrupted and a PARITY ALARM panel light was illuminated.

Interrupts and involuntary counters

The AGC had five vectored interrupts. DSRUPT was triggered at regular intervals to update the user display (DSKY). ERRUPT was generated by various hardware failures or alarms. KEYRUPT signaled a key press from the user's keyboard. T3RUPT was generated at regular intervals from a hardware timer to update the AGC's real-time clock. UPRUPT was generated each time a 16-bit word of uplink data was loaded into the AGC. The AGC responded to each interrupt by temporarily suspending the current program, executing a short interrupt service routine, and then resuming the interrupted program. In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ... A real-time clock (RTC) is a computer clock (most often in the form of an integrated circuit chip) that keeps track of the current time even when the computer is turned off. ...

The AGC also had 20 involuntary counters. These were memory locations which functioned as up/down counters, or shift registers. The counters would increment, decrement, or shift in response to internal inputs. The increment (PINC), decrement (MINC), or shift (SHINC) was handled by one subsequence of microinstructions inserted between any two regular instructions. In general, a counter is a device which stores (and sometimes displays) the number of times a particular event or process has occurred, often in relationship to a clock signal. ...

Interrupts could be triggered when the counters overflowed. The T3RUPT and DSRUPT interrupts were produced when their counters, driven by a 100 Hz hardware clock, overflowed after executing many PINC subsequences. The UPRUPT interrupt was triggered after its counter, executing the SHINC subsequence, had shifted 16 bits of uplink data into the AGC.

Standby mode

The AGC had a power-saving mode controlled by a STANDBY ALLOWED switch. This mode turned off the AGC power, except for the 2.048 MHz clock and SCALER. The F17 signal from the SCALER turned the AGC power and the AGC back on at 1.28 second intervals. In this mode, the AGC performed essential functions, checked the STANDBY ALLOWED switch, and--if still enabled--turned off the power and went back to sleep until the next F17 signal.

In the standby mode, the AGC slept most of the time; therefore it was not awake to perform the PINC instruction needed to update the AGC's real time clock at 10 ms intervals. To compensate, one of the functions performed by the AGC each time it awoke in the standby mode was to update the real time clock by 1.28 seconds. One millisecond is one-thousandth of a second. ...

The standby mode was designed to reduce power by 5 to 10 W (from 70 W) during midcourse flight when the AGC was not needed. However, in practice, the AGC was left on during all phases of the mission and this feature was never used.

Data buses

The AGC had a 16-bit read bus and a 16-bit write bus. Data from central registers (A, Q, Z, or LP), or other internal registers could be gated onto the read bus with a control signal. The read bus connected to the write bus through a non-inverting buffer, so any data appearing on the read bus also appeared on the write bus. Other control signals could copy write bus data back into the registers.

Data transfers worked like this: To move the address of the next instruction from the B register to the S register, an RB (read B) control signal was issued; this caused the address to move from register B to the read bus, and then to the write bus. A WS (write S) control signal moved the address from the write bus into the S register.

Several registers could be read onto the read bus simultaneously. When this occurred, data from each register was inclusive-ORed onto the bus. This inclusive-OR feature was used to implement the MASK instruction, which was a logical AND operation. Because the AGC had no native ability to do a logical AND, but could do a logical OR through the bus and could compliment (invert) data through the C register, De Morgan's theorem was used to implement the equivalent of a logical AND. This was accomplished by inverting both operands, performing a logical OR through the bus, and then inverting the result. note that demorgans laws are also a big part in circut design. ...


AGC software was written in AGC assembly language. There was a simple real-time operating system consisting of the EXEC, a batch job-scheduling system that could run up to 8 'jobs' at a time using non-preemptive multi-tasking (each job had to periodically surrender control back to the EXEC). There was also an interrupt-driven component called the WAITLIST which could schedule multiple timer-driven 'tasks'. The tasks were short threads of execution which could reschedule themselves for reexecution on the WAITLIST, or could kick off a longer operation by starting a 'job' with the EXEC. See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ...

The EXEC jobs were priority-based. The lowest priority job, called the dummy job, was always present. It did diagnostic checks and ran a green "COMPUTER ACTIVITY" light on the DSKY display. When the dummy job was running, the computer had nothing better to do, so the light was turned off. The dummy job exited if there was some higher priority job to be done, and this was indicated by the COMPUTER ACTIVITY light being illuminated.

The AGC also had a sophisticated software interpreter that implemented a virtual machine with more complex and capable instructions than the native AGC. Interpreted code, which featured double precision scalar and vector arithmetic — even an MXV (matrix × vector) instruction — could be mixed with native AGC code. The assembler and version control system, named YUL for an early prototype "Christmas Computer," enforced proper transitions between native and interpreted code. Revision control is an aspect of documentation control wherein changes to documents are identified by incrementing an associated number or letter code, termed the revision level, or simply revision. It has been a standard practice in the maintenance of engineering drawings for as long as the generation of such drawings...

A set of interrupt-driven user interface routines called PINBALL provided keyboard and display services for the jobs and tasks running on the AGC. A rich set of user-accessible routines were provided to let the operator (astronaut) display the contents of various memory locations in octal or decimal in groups of 1, 2, or 3 registers at a time. "Monitor" routines were provided so the operator could initiate a task to periodically redisplay the contents of certain memory locations. Jobs could be initiated. The PINBALL routines performed the (very rough) equivalent of the UNIX shell. The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. ... Look up monitor in Wiktionary, the free dictionary. ...

User interface

Apollo computer interface box
Apollo computer interface box
LM DSKYs interface diagram.

The user interface unit was called the DSKY[4] (display/keyboard); an array of numerals and a calculator-style keyboard. Commands were entered numerically, as two-digit "prog", "verb", and "noun" numbers. The numerals were green high-voltage electroluminescent displays arranged in an array of seven segments per numeral to display numbers. The segments were driven by electromechanical relays, which limited the display update rate (Block II used faster SCRs – silicon controlled rectifiers). Three 5-digit numbers could also be displayed in octal or decimal. Input was by pushbuttons. This "calculator-style" interface¹ was the first of its kind, the prototype for all similar digital control panel interfaces. Image File history File links No higher resolution available. ... Image File history File links No higher resolution available. ... Image File history File links Download high resolution version (935x551, 100 KB)DSKYS Interface. ... Image File history File links Download high resolution version (935x551, 100 KB)DSKYS Interface. ... The user interface is the part of a system exposed to users. ... For other uses, see Calculator (disambiguation). ... Animation of LCD, both unlit and with electroluminiscent backlight switched on Electroluminescence (EL) is an optical phenomenon and electrical phenomenon where a material emits light in response to an electric current passed through it, or to a strong electric field. ... A seven segment display (sometimes written as 7-segment display) is a form of display that predates the now ubiquitous dot-matrix displays. ... Automotive style miniature relay A relay is an electrical switch that opens and closes under the control of another electrical circuit. ... A Silicon Controlled Rectifier (or semiconductor controlled rectifier) is a 4-layer solid state device that controls current flow. ... The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. ...

The command module (CM) had two DSKYs; one located on the main instrument panel and another located in the lower equipment bay near a sextant used for aligning the inertial guidance platform. Both DSKYs were driven by the same AGC. The lunar module (LM) had a single DSKY for its AGC. A sextant is a measuring instrument generally used to measure the angle of elevation of a celestial object above the horizon. ... An inertial navigation system measures the position and altitude of a vehicle by measuring the accelerations and rotations applied to the systems inertial frame. ...

The Block II

A Block II version of the AGC was designed in 1966. It retained the basic Block I architecture, but increased erasable memory from 1K to 2K words. Fixed memory was expanded from 24K to 36K. Instructions were expanded from 11 to 34 and I/O channels were implemented to replace the I/O registers on Block I. The Block II version is the one that actually flew to the moon. Block I was used during the unmanned Apollo 4 and 6 flights, and was onboard the ill-fated Apollo I. Apollo 4 was the first unmanned flight of the Saturn V launch vehicle. ... Apollo 6, launched in April 1968, was the Apollo programs second and last unmanned test flight of its Saturn V launch vehicle. ... Apollo One is the name given to the Apollo/Saturn 204 (AS-204) spacecraft after it was destroyed by fire during a training exercise on January 27, 1967, at Pad 34 atop a Saturn IB rocket. ...

The decision to expand the memory and instruction set for Block II, but to retain the Block I's restrictive 3-bit op code and 12-bit address had interesting design consequences. Various tricks were employed to squeeze in additional instructions, such as having special memory addresses which, when referenced, would implement a certain function. For instance, an INDEX to address 25 triggered the RESUME instruction to return from an interrupt. Likewise, INDEX 17 performed an INHINT instruction (inhibit interrupts), while INDEX 16 reenabled them (RELINT). Other instructions were implemented by preceding them with a special version of INDEX called EXTEND which arithmetically modified the 3-bit op code by employing the overflow bit to extend it. The address spaces were extended by employing BANK (fixed) and EBANK (erasable) registers, so the only memory of either type that could be addressed at any given time was the current bank, plus the small amount of fixed-fixed memory and the erasable memory. In addition, the BANK register maxed out at 32K addresses, so an SBANK (super-bank) register was required to access the last 4K. All across-bank subroutine calls had to be initiated from fixed-fixed memory through special functions to restore the original bank during the return – essentially a system of far pointers. A far pointer is, in a Segmented architecture computer, a pointer which includes a segment number, making it possible to point to addresses outside of the current segment. ...

The Block II AGC also has the mysterious and poorly documented EDRUPT instruction (the name may be a contraction of 'Ed's Interrupt', after Ed Smally, the programmer who requested it) which is used a total of once in the Apollo software: in the Digital Autopilot of the Lunar Module. At this time, while the general operation of the instruction is understood, the precise details are still hazy, and it is believed to be responsible for problems emulating the LEM AGC Luminary software. Description Role: Lunar landing Crew: 2; CDR, LM pilot Dimensions Height: 20. ...

PGNCS trouble

The PGNC System malfunctioned during the first live lunar descent, with the AGC showing a 1201 alarm ("Executive overflow - no vacant areas") and a 1202 alarm ("Executive overflow - no core sets") [1]. In both cases these errors were caused by spurious data from the rendezvous radar, which had been left on during the descent. These errors automatically aborted the computer's current task, but the frequency of radar data ensured that the abort signals were being sent at too great a rate for the CPU to cope.[5] The Apollo Primary Guidance, Navigation and Control System (PGNCS) (pronounced pings) was a self-contained inertial guidance system that allowed Apollo spacecraft to carry out their missions when communications with Earth were interrupted, either as expected, when the spacecraft were behind the moon, or in case of a communications failure. ...

Fortunately for Apollo 11, the AGC software executed a fail-safe routine, shedding low-priority tasks. The inertial guidance tasks continued to operate reliably. The degree of overload was minimal, because the software had been "scrubbed" down to leave very nearly 15% spare time, and the 6400 bit/s pulse trains from the radar induced PINCs wasted exactly 15% of the AGC's time. On the instructions of Steve Bales and Jack Garman, the errors were over-ruled, and the mission was a success. The Apollo 11 mission was the first manned mission to land on the Moon. ... The automatic protection of programs and/or processing systems when a hardware or software failure is detected in a computer system. ... Steve Bales is a former NASA engineer and flight controller. ... Jack Garman John R. Jack Garman is a computer engineer. ...

Note that this was not caused by a programming error in the AGC, or 'pilot error' by the astronauts: it was a procedural and simulation error. The procedure the astronauts had trained for in the simulator was to set the rendezvous radar switch to the AUTO position, which caused these alarms when the switch was connected to a real AGC. Unfortunately in the simulator there was no such connection, so the problem was never seen until the procedure was carried out for real on the Apollo 11 flight.[6]

Amongst the computer's other error codes was the very first '404 error'; in this case, error 00404 was shorthand for "IMU orientation unknown" - and, since the Inertial Measurement Unit is, literally, the device which tells the craft "where to go", there is at least a metaphoric similarity. Mozilla Firefox displaying an Apache HTTP Server 404 error page. ... An crap is a closed system that is used to detect altitude, location, and motion. ...


  1. The first advanced desktop calculators hit the market in roughly the same timeframe, with scientific and then programmable pocket calculators appearing during the following decade. The first programmable handheld calculator, the HP-65, was tried on backup computations aboard the Apollo Command/Service Module in the Apollo-Soyuz Test Project in 1975.

Programmable calculators are calculators capable of being programmed much like a computer. ... The HP-65 was the first programmable handheld calculator in the world. ... The Apollo-Soyuz Test Project was the first joint flight of the U.S. and Soviet space programs. ...

See also

  • AP-101 (IBM S/360-derived) computers used in the Space Shuttle
  • History of computer hardware

The IBM AP-101 is an avionics computer, used most notably in the U.S. Space Shuttle, but also in the B-52 and F-15, among others. ... NASAs Space Shuttle, officially called Space Transportation System (STS), is the United States governments current manned launch vehicle. ... The history of computing hardware starting in the 1960s begins with the development of the integrated circuit (IC), which formed the basis of the first computer kits and home computers in the 1970s, notable examples being the MITS Altair, Apple II and Commodore PET; and which eventually powered personal and...


  1. ^ http://hrst.mit.edu/hrs/apollo/public/conference1/alonso-intro.htm
  2. ^ http://hrst.mit.edu/hrs/apollo/public/people/hblairsmith.htm
  3. ^ http://hrst.mit.edu/hrs/apollo/public/conference2/thaler-intro.htm
  4. ^ http://www.abc.net.au/science/moon/img/apollocomputer2.jpg
  5. ^ http://www.hq.nasa.gov/office/pao/History/alsj/a11/a11.1201-pa.html
  6. ^ http://www.hq.nasa.gov/alsj/a11/a11.1201-fm.html
  • Hall, Eldon C. (1996). Journey to the Moon: The History of the Apollo Guidance Computer. AIAA. ISBN 1-56347-185-X.

The American Institute of Aeronautics and Astronautics (AIAA) is the scholarly society for the field of aerospace engineering. ...

External links

Documentation on the AGC and its development:

Documentation of AGC hardware design, and particularly the use of the new Integrated Circuits in place of transistors: The Portable Document Format (PDF) is the file format created by Adobe Systems in 1993 for document exchange. ... The Portable Document Format (PDF) is the file format created by Adobe Systems in 1993 for document exchange. ... The Australian Broadcasting Corporation or ABC is Australias national non-profit public broadcaster. ...

Documentation of AGC software operation:

  • Delco Electronics, Apollo 15 - Manual for CSM and LEM AGC software used on the Apollo 15 mission, including detailed user interface procedures, explanation of many underlying algorithms and limited hardware information. Note that this document has over 500 pages and is over 150 megabytes in size!

Some AGC-based technology history projects:

  • AGC Replica – John Pultorak's successful project to build a hardware replica of the Block I AGC in his basement
  • Virtual AGC Home Page – Ronald Burkey's AGC simulator, plus source and binary code recovery for the Colossus (CSM) and Luminary (LEM) SW
  • Project Apollo for Orbiter – Addon for Orbiter spaceflight simulator, working towards a full simulation of the CSM and LEM including the Virtual AGC.
    • Control panel image - Virtual AGC running the Prog 11 launch monitoring program.
    • DAP in operation - Short Windows Media video showing the Virtual AGC flying the Project Apollo simulated CSM, in this case the Digital Autopilot code rotating the CSM to 45 degrees pitch and 90 degrees roll.

Download a Shareware "Lunar Lander Simulation" with a working AGC + DSKY Orbiter is a closed source freeware space flight simulator for the Windows operating system. ...

  Results from FactBites:
Apollo guidance computer - definition of Apollo guidance computer in Encyclopedia (4012 words)
The computer's RAM was magnetic core memory (4K words) and ROM was implemented as core rope memory (32K words).
In the standby mode, the AGC slept most of the time; therefore it was not awake to perform the PINC instruction needed to update the AGC's real time clock at 10 ms intervals.
Block I was used during the unmanned Apollo 4 and 6 flights, and was slated for the ill-fated Apollo I. The decision to expand the memory and instruction set for Block II, but to retain the Block I's restrictive 3-bit op code and 12-bit address had interesting design consequences.
  More results at FactBites »



Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m