Apollo 11 lunar spacecraft guidance computer source code (to be continued)

This year is the 50th anniversary of the moon landing. Recently, the source code of Apollo 11 appeared on github, ranking first.

These instructions can be understood as a special assembly language. We say assembly because it is not machine code, nor is it a high-level interpretive language, but somewhere in between. The reason why they are specially made is that these codes are used on specific "computers." In those days, computers were actually not suitable, more like calculators.

                                                         

  The Apollo spacecraft used for lunar missions in the late 1960s and early 1970s were actually two different spacecraft, the Command Module  (CM) and the  Lunar Module  (LM). CM was used to get three astronauts to land on the moon and then come back. LM is used for two astronauts landing on the moon, while the third astronaut stays in the CM and orbits the moon.

                                                         

                                                               Apollo 15 CSM (Command and Service Modules) command module  

                                                            

                                                                                    Apollo 16 LM Lunar Module

Program instructions are logical symbolization.

How does this symbolic logic change the world?

 

http://www.ibiblio.org/apollo/ScansForConversion/Luminary099/0026.jpg

The above is part of the original code of the command module (Comanche055) and the moon landing module (Luminary099) in the Apollo 11 guidance calculation (AGC).

The source code uses the verb-noun structure to program. Below is the assembly language code for verbs and nouns. If you are interested, you can search for the source code on github to see how they correspond.

 

http://www.ibiblio.org/apollo/A17_VN_Checklist.png

 

 

 

The biggest purpose of these instructions is to use IMU (Inertial Measurement Unit) data to solve the spacecraft attitude, and it is possible to adjust the navigation of the spacecraft based on the current attitude. This ensures that the spacecraft can complete its mission with the predetermined orbital route.

 

 

              

                                                                                   Command, navigation and control system

 


A giant leap for technology

   When in 1962 MIT's Instrumentation Laboratory began, under the direction of the legendary Dr. Charles Stark Draper (a pioneer of inertial navigation systems), the development of a computer to bring people from the Earth to the Moon, computers where in their childhood. They were giant electronic-tubes devices, big as rooms or even building floors, controlled by means of of perforated tapes or cards, with insignificant memory capacity compared to the personal computers that would be born at the end of the 1970's. With an engineering courage that has few precedents, designers (historical characters like Hal Laning Jr, Eldon Hall, Ramon Alonso, Albert Hopkins and many others) elected to use for the first time in history a newly born electronic component: the integrated circuit. Still far away from the microprocessor or microcontrollers of the 1980's, the only functions available were simple logic ones. Using thousands of these logic gates, it was possible to implement what would be called today the central processing unit of the computer and all support circuitry. For memory, since it was still impractical to build it with integrated circuits, the ferrite core technology (where small rings were used to store single bits) was adopted. being reasonable easy to miniaturize. Using the same technology, the program memory was made of tens of thousands of ferrite cores, hand woven with thin copper wire to represent the 1's and 0's of the computer software. These wire were to be woven by specialized workers at least one month before the launch of a mission.

  These critical decisions, taken in the era of the "dinosaur computers", were found to be winners in the following years, just seven, that saw men land on the Moon. The onboard computer developed for the Apollo program (and installed into both the Command Module and the Lunar Module, but with different software for each vehicle) was an outstanding technological success and established rules for the development of future computers both for aerospace and other applications. It also opened the way to new applications of integrated circuits (it has been the first big user on an industrial scale) and being at the time the smallest computer in the world, helped push computers into other sectors of technology.

Quoting from http://www.ibiblio.org/apollo/ForDummies.html


Key interpretation: designers (such as Hal Laning Jr, Eldon Hall, Ramon Alonso, Albert Hopkins and many other historical figures) chose to use a new electronic component: integrated circuit for the first time in history. It is far from the microprocessors or microcontrollers of the 1980s, and the only functions available are simple logic functions. Using thousands of these logic gates, it is possible to realize the so-called central processing unit of a computer and all supporting circuits today. For memory, it is still impractical to build it with integrated circuits, so ferrite core technology (where small rings are used to store single bits) is used. Reasonably easy to miniaturize. Using the same technology, the program memory consists of tens of thousands of ferrite cores, hand-woven with thin copper wires, representing the 1 and 0 of computer software.

It can also be seen here that there was no such thing as a single-chip microcomputer in that era, not even an integrated circuit. The designer creatively proposed putting the electronic components on the same medium. 

Guess you like

Origin blog.csdn.net/sinat_39416814/article/details/96903723