170 likes | 368 Views
Simulation of the Apollo Guidance Computer. Julian Webb University of the West of England, Bristol, UK julian2.webb@uwe.ac.uk. Introduction. Main aim of project:
E N D
Simulation of the Apollo Guidance Computer Julian Webb University of the West of England, Bristol, UK julian2.webb@uwe.ac.uk G146/MAPLD 2004
Introduction • Main aim of project: • To produce a fully functional Block II LGC (Lunar Module version of the AGC) simulator/emulator running the original MIT-produced code and interacting with the user via reasonably accurate simulations of spacecraft controls • Though currently based on the LGC, the simulator would, with some alteration, also be able to represent the CMC • The AGC simulator is very much a “work in progress”! G146/MAPLD 2004
Motivations • Why? • To provide a working AGC based on original materials rather than a functional simulation • To provide an interesting and accessible history of computing educational resource • To honour the efforts of the programmers, engineers and managers involved at MIT/Draper Labs • To preserve some AGC materials in a machine-readable form • To facilitate statistical analysis of AGC performance • To allow better comparison with other 1960’s computers (has the AGC had a bad press?) G146/MAPLD 2004
Simulator basics • The simulator provides a real-time emulation of the LGC, DSKY and other associated LM systems in a package for use under Windows XP • Written in C++ (the AGC itself) and Visual Basic (DSKY and other systems) • these two major components communicate via DLLs • also possible to interface other programs to AGC • The AGC simulator adjusts its speed automatically to give the correct 11.7s clock rate G146/MAPLD 2004
Sources used • Available sources • Documentation • History of Recent Science and Technology project (mostly ex-MIT/Draper Labs documents) • Apollo Lunar Surface Journal (operational documentation, checklists etc.) • Source code listings (pdf files) • Luminary 1C (for LGC - two versions prior to Apollo 13 flight release) • Colossus 249 (for CMC - as flown on Apollo 9) • See References slide for more details G146/MAPLD 2004
Construction • Method • Luminary source code entry (c1500 pages) • available as MS Excel and text files • ‘YUL assembler’ written (in Perl) • Assembled machine code checked against original core listing (and later against another AGC enthusiast’s version) • AGC written and tested • Interface DLL written • DSKY and other components written • Testing against original LM checklists G146/MAPLD 2004
Difficulties encountered • Difficulties - documentation • Lack of coherent documentation - many documents available but spread over a period of 10 years • Some documentation misleading (to the historian) due to numerous version changes - care required to interpret the documents in relation to their context • Documentation mainly aimed at informing MIT staff (for obvious reasons) - hence much background research required • Little documentation for YUL assembler • Lack of machine-readable source code G146/MAPLD 2004
Technical difficulties • Difficulties - technical • Precise understanding of operation of several instructions required investigation of the microcode and... • some microcode control pulses are not well documented • A few questions remain concerning the YUL assembler output • Uplink loads not documented - necessary to simulate these to provide (e.g.) appropriate mission time, vehicle mass G146/MAPLD 2004
System boundaries • Difficulties - system boundaries • LGC linked to other LM systems and to the mission control environment • Necessary to provide at least a basic simulation of many of these external systems • Full emulation limited (at present) to LGC, DSKY and AOT • Other systems provided in simulation as required by LGC functionality • A major omission is the AGS which seems to have little internal technical documentation remaining (especially regarding the AEA) • Microcode - simulation of this is a proposed later stage of this project G146/MAPLD 2004
Educational features • One aim of this project is to provide an educational facility • Demonstration mode: • allows pre-prepared scripts to interact with the simulation whilst providing an explanatory commentary • features of the AGC can be shown either in isolation or in the context of a mission • this facility can be seen in the poster presentation • Also available is a fault-creation facility to demonstrate the effect of (e.g.) parity errors, DSKY display malfunctions etc. G146/MAPLD 2004
Progress so far • LGC • Full instruction set operational • Timers and external interrupts operational • Fully functional DSKY • Associated spacecraft systems • Major associated LM switches and circuit-breakers implemented • Mechanically functional AOT (no simulated starfield) • Limited ACA/TTCA hand-controller simulation and RCS graphic • Limited IMU functionality • External systems • Basic telemetry downlink display • Executive and Waitlist display • Basic statistical display G146/MAPLD 2004
Work to do • The following features are planned for the future (not in any particular order): • Fully implement IMU • Simulate vehicle dynamics • Finish implementation of AOT to permit star-based alignments • Emulation of microcode instructions • Improve statistical performance analysis G146/MAPLD 2004
Conclusion • The current simulator provides enough functionality to gain useful insights into the operational use of the LGC and associated environment • Future work will extend the simulation to provide for spacecraft manoeuvring • The intention is to allow a full LM descent, landing, ascent and rendezvous to be demonstrated G146/MAPLD 2004
Acknowledgments • Thanks are due to Ron Burkey (who has been working independently on an AGC simulator) for providing a series of stimulating questions during my work and for permitting the checking of the assembled Luminary code against his own machine code created in an alternative way G146/MAPLD 2004
Acronyms • ACA – Attitude Controller Assembly • AEA – Abort Electronics Assembly (the AGS digital computer system) • AGC – Apollo Guidance Computer (cf CMC and LGC) • AGS – Abort Guidance System – backup to PGNS to allow rendezvous • AOT – Alignment Optical Telescope • CMC – Command Module Computer • DSKY – DiSplay and KeYboard for AGC • IMU – Inertial Measurement Unit • ISS – Inertial SubSection • LGC – Lunar module Guidance Computer • PGNCS – Primary Guidance, Navigation and Control Section • PGNS – Primary Guidance and Navigation Section • RCS – Reaction Control System (on LM 16 jets arranged in two systems) • TTCA – Throttle/Translation Controller Assembly • YUL – AGC assembler (original written at Christmas) G146/MAPLD 2004
References • Some resources of interest to AGC historians... • History of Recent Science and Technology - 77 documents more-or-less relating to the development of the AGC http://www.hrst.mit.edu/hrs/apollo (N.B. site is not always available) (A set of convenient indices to these documents is available at my website: http://www.cems.uwe.ac.uk/~jtwebb/agc) • Apollo Lunar Surface Journal - contains several interesting LM operational documents plus complete surface transcripts http://www.hq.nasa.gov/alsj • Eldon C. Hall, Journey to the Moon: The History of the Apollo Guidance Computer, AIAA, Reston, VA, 1996 Should be read in conjunction with: Hugh Blair-Smith, Annotations to Journey to the Moon, http://www.hrst.mit.edu/hrs/apollo/ public/blairsmith.htm G146/MAPLD 2004