17 ms·
Apollo 11 Guidance Computer source code
- therobot24 10y agothis is super cool, awesome post
- uptown 10y agoLove this line: TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE TC DOWNFLAG # PERMIT X-AXIS OVERRIDE https://github.com/chrislgarry/Apollo-11/blob/master/LUNAR_LANDING_GUIDANCE_EQUATIONS.s#L179 https://github.com/chrislgarry/Apollo-11/blob/master/LUNAR_L...
- joezydeco 10y agoI wonder if the Space Shuttle has a TODO left in there somewhere.
- smpetrey 10y agoNow that's some source I'd love to take a look at
- Anchor 10y agoAnd this: GAINBRAK,1 # NUMERO MYSTERIOSO https://github.com/chrislgarry/Apollo-11/blob/master/LUNAR_LANDING_GUIDANCE_EQUATIONS.s#L666 https://github.com/chrislgarry/Apollo-11/blob/master/LUNAR_L...
- dhoe 10y agoLine 666
- laurent123456 10y agoTypical temporary code, which 46 years later is still there.
- 13of40 10y agoWhenever I put in temporary code like that, I always leave my full name, the date, and a snarky comment about "suuuuuure this is temporary". Seriously.
- strgrd 10y agoPrevious discussion: https://news.ycombinator.com/item?id=8063192 https://news.ycombinator.com/item?id=8063192
- shepardrtc 10y agoAlso, two days ago: https://news.ycombinator.com/item?id=12037546 https://news.ycombinator.com/item?id=12037546
- sjtgraham 10y agoBURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s - https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c464608d704fa183f3e3d08b013c42f/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...
- amichal 10y agoDid you notice the date: > # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 > # 16:27 JULY 14, 1969 Likely the printing date but I envisioned the last minute all-nighters right away.
- avian 10y agoConsidering that the binary was woven by hand using copper wire into the computer's core rope memory, I imagine the flight revision had to be finished months before the actual flight.
- ceocoder 10y agoI really wish we can do an AMA with these two, > # THE MASTER IGNITION ROUTINE WAS CONCEIVED AND EXECUTED, AND (NOTA BENE) IS MAINTAINED BY ADLER AND EYLES. I had to look this up, NOTA BENE is latin for, observe carefully or take special notice
- phireal 10y agoHence N.B.
- ceocoder 10y agoI never made that connection. TIL. Thank you!
- kunstmord 10y agoRandom note: When I was in the 5th grade, our math teacher taught us the meaning of Nota Bene, and used a NB sign to mark important notes when deriving formulas. Still use to this day when making notes
- stuxnet79 10y agoOther than gaining satisfaction from the historical importance of this code is there any conceivable way we can get some use of it - like try it out. Even setting that aside, what is it I'm looking at? Assembly?
- rangibaby 10y agoI'm pretty sure there is a website that simulates this computer 100% /e http://svtsim.com/moonjs/agc.html http://svtsim.com/moonjs/agc.html
- trynewideas 10y agoThe JS source is at https://github.com/siravan/moonjs https://github.com/siravan/moonjs. It's derived from Ron Burkey's unmaintained Virtual AGC at http://www.ibiblio.org/apollo/ http://www.ibiblio.org/apollo/, which also hosts many of the manuals and related documents. But if you really want to be cool, you could build a real AGC from scratch: http://klabs.org/history/build_agc/ http://klabs.org/history/build_agc/
- Someone1234 10y agoI've tried to play with that before, it is pretty incomprehensible even after reading the descriptions and Wikipedia article. I feel like the source is likely clearer than that interface...
- creshal 10y ago> is there any conceivable way we can get some use of it I wonder whether there's any way of getting it into one of the autopilots for Kerbal Space Program.
- exar0815 10y agoJeb wont need that. Jeb will fly without a puny computer. Because Jeb is a steely eyed missile man.
- trynewideas 10y ago
- throwawayReply 10y agoI find it amazing that some revisions (e.g. KALMAN FILTER) are date stamped as July 14 1969. Were critical routines being patched 2 days before launch?
- burnbabyburn 10y ago# NOLI SE TANGERE this should be noli me tangere, shouldn't it?
- FroshKiller 10y agoWhile "noli me tangere" is the Biblical phrase this alludes to, "noli se tangere" would mean in context "don't touch this." It's not that the programmer misremembered "noli me tangere" but that he played on the reference.
- ahunt09 10y agoIs it possible the author intended it to mean `don't touch this/it`, instead of `don't touch me`?
- anvandare 10y agoYes, but I think the author meant "don't touch this". 'Se' is third person, but reflexive, so it should be: "noli id tangere"
- crocal 10y agoIs this what I think it is? PINBALL_GAME_BUTTONS_AND_LIGHTS.s
- hobs 10y agoUnfortunately no. https://news.ycombinator.com/item?id=8063357 https://news.ycombinator.com/item?id=8063357 "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." - https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#Software https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#Softw...
- joezydeco 10y agoThe DSKY and PINBALL (something flashy with buttons) was a demo. And that demo got us to the moon. "Apparently, nobody had yet arrived at any kind of software requirements for the AGC's user interface when the desire arose within the Instrumentation Laboratory to set up a demo guidance-computer unit with which to impress visitors to the lab. Of course, this demo would have to do something, if it was going to be at all impressive, and to do something it would need some software. In short order, some of the coders threw together a demo program, inventing and using the verb/noun user-interface concept, but without any idea that the verb/noun concept would somehow survive into the flight software. As time passed, and more and more people became familiar with the demo, nobody got around to inventing an improvement for the user interface, so the coders simply built it into the flight software without any specific requirements to do so." http://www.ibiblio.org/apollo/ForDummies.html http://www.ibiblio.org/apollo/ForDummies.html
- _pmf_ 10y agoIf you want to be entertained really, really well, watch this: https://www.youtube.com/watch?v=4Sso4HtvJsw https://www.youtube.com/watch?v=4Sso4HtvJsw It's an incredibly well done and at times hilarious narration of the moon mission. (Spoiler: contains a part where Armstrong overrides the automatic control and lands manually) This is probably my favorite presentation ever.
- sgt 10y agoTake note of the KALMAN_FILTER.s source code file. See https://en.wikipedia.org/wiki/Kalman_filter https://en.wikipedia.org/wiki/Kalman_filter for details. The filter is named after Rudolf Kalman who recently passed away. (https://en.wikipedia.org/wiki/Rudolf_E._K%C3%A1lm%C3%A1n https://en.wikipedia.org/wiki/Rudolf_E._K%C3%A1lm%C3%A1n)
- alehander42 10y agopeople could've really used a higher-level language compiling to optimized AGC(apollo computer) assembly. Is there any reason why they didn't develop one? It seems it would've helped tremendously with the productivity and verification (and a lot of the explanations and equations would be readable as code, not as an non-executed comment)
- mbrumlow 10y agoI could be wrong. But I think part of why they did it this way was so they could edit things on the fly if a emergency dictated so. Having to ship a compiler (would have likely been an entire separate computer) would have not been feasible. With things done this way and documented this why they could (fairly sure did) have the pages printed out on paper and such. And if say there was some bug or new routine that needed to be added mid flight they could go to a key board input (no screen) and with the instructions from the ground reprogram a section or add a new jump point or change a value mid flight. Remember, computers were not what they are today. They did not have super powerful laptops and such with fancy tools.
- datenwolf 10y ago> I could be wrong. But I think part of why they did it this way was so they could edit things on the fly The AGC code was stored in ROM. Notably a specific kind of ROM called "rope memory".
- nameless912 10y agoHey, uh, Apollo <n for n > 10 and n < 18>? This is Houston. Could you pull out the ROM banks and flip a couple of bits for us? we made a mistake or two. All you need are some wire cutters and a very steady hand.
- mbrumlow 10y ago"The bulk of the software was on read-only rope memory and thus couldn't be changed in operation, but some key parts of the software were stored in standard read-write magnetic-core memory and could be overwritten by the astronauts using the DSKY interface, as was done on Apollo 14." Seams you were mostly right about not being able to change it. I was only somewhat right because I assumed it would all be editable. I over estimated the technology they had back then. I would gather from that there was for more fixed code than editable. Source: https://en.wikipedia.org/wiki/Apollo_Guidance_Computer https://en.wikipedia.org/wiki/Apollo_Guidance_Computer
- js2 10y agoWatch the landing: https://www.youtube.com/watch?v=k_OD2V6fMLQ https://www.youtube.com/watch?v=k_OD2V6fMLQ During the landing, you'll here mention of 1201 and 1202 alarms. Here's what that's about: http://www.hq.nasa.gov/office/pao/History/alsj/a11/a11.1201-pa.html http://www.hq.nasa.gov/office/pao/History/alsj/a11/a11.1201-... Here's 1201 being called: https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c464608d704fa183f3e3d08b013c42f/EXECUTIVE.s#L134 https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646... And 1202: https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c464608d704fa183f3e3d08b013c42f/EXECUTIVE.s#L200 https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...
- victorantos 10y agoThis one is better image quality https://www.youtube.com/watch?v=Jg80HZsv_js https://www.youtube.com/watch?v=Jg80HZsv_js
- waiseristy 10y agoHere's one with subtitles and interactivity http://www.firstmenonthemoon.com/ http://www.firstmenonthemoon.com/
- mind_heist 10y agoWow ! Just saw the whole landing again. I have seen the video before , but I never understood who was saying what . This is the best way all those conversations could have been visualized !
- xanadohnt 10y agoWow wow wow indeed! This is a gem of a way to experience a most heralding moment of "mankind".
- satori99 10y ago...and here's one with Neil Armstrong talking us through it... https://www.youtube.com/watch?v=jfj2jqpst_Q&feature=youtu.be&t=1784 https://www.youtube.com/watch?v=jfj2jqpst_Q&feature=youtu.be...
- sixothree 10y agoWhat was the development environment like for this code?
- sizzzzlerz 10y agoPencil, eraser, paper, Punchcards, punchcard machine, Punchcard reader, computer, papertape, papertape puncher, AGC computer, Command Module, LEM, Neil Armstrong, Buzz Aldrin, Michael Collins. These last 3 are software QA.
- kamaal 10y agoWhen I worked on my start up, We built our complete hardware and then software for it. I had to write down the drivers, and display library for the 128 x 64 lcd display with a simple scheduler, FSM and all!(Hard to mention all the work) Bulk of the work I did was using paper, eraser and pens. A lot of work in unchartered territory requires paper work. I realized the more I worked on paper the more correct the code was and overall it took faster to write(given fewer bugs).
- outworlder 10y agoNeedle and thread to weave the core memory.
- nickpsecurity 10y agoPeople, processes, and environments like this: http://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/ http://www.wired.com/2015/10/margaret-hamilton-nasa-apollo/ https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist) https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist) Also was among first to invent scheme that automated the coding and testing from specs for high-reliability. Her case is the only one I follow as I lack data on the rest.
- ianbertolacci 10y agoHave they considered rewriting it in rust?
- noonespecial 10y agoWell, considering that the program was "written" into the ROM by winding wire around ferrite cores, I'd say it was literally written in rust.
- thevibesman 10y agohehe (A friend of mine, who when in search of a new go-to-programming language instead of Python, was more interested in Swift vs Rust because of this attitude).
- pests 10y agoRemind your friend these comments are only left by a small vocal minority and is not representative of the project or its maintainers. This is akin to not liking something because you don't like the people who already like it, despite how much you'd like it otherwise.
- Bromskloss 10y agoClue me in! What kind of comments are we talking about? Anything inappropriate here must have gone over my head.
- thevibesman 10y agoThe two aspects my friend's perception of the Rust community are both a) rewriting existing projects in Rust for the sake of having a version written in Rust[1][2], and b) it seems a frequent trend on Hacker News to see comments about "why didn't you write it in Rust" or "how about porting it to Rust" on posts about projects and "should have written it in Rust" comments on posts about security bugs. As the parent to your comment points out, this is probably a small group in the community who comments often. As I could see from the way my score, on the post that started this discussion fluctuated, this is clearly a topic some are both sensitive about or like find humor in (or both!). EDIT: I didn't mean to derail the discussion of a fascinating code posting; but I assume the comment I responded to that spawned this tangent, "Have they considered rewriting it in rust?"[3], was a joke made about the other comments on HN to rewrite things in Rust. [1]: From a pedagogical standpoint, obviously this is a potentially good way of learning a language so if for learning and not pure calorie burn I personally don't see this as wasteful. [2]: <<possibly exaggeration warning>> I understand there is some motivations within (perhaps a small part) the Rust community to replace the world'S C-systems-code with more secure Rust code. [3]: https://news.ycombinator.com/item?id=12049521 https://news.ycombinator.com/item?id=12049521
- fergyfresh 10y agoAlright, who wants to make a video game using this source code with me?
- teraflop 10y agoIt's been done: http://nassp.sourceforge.net/wiki/Main_Page http://nassp.sourceforge.net/wiki/Main_Page
- akshatpradhan 10y agoIf this were to be rewritten in a high level language, I wonder what would it look like?
- clacktronics 10y agoimport apollo_eleven craft = apollo_eleven.apollo_eleven() try: craft.launch_mission(debug=False) except: print("Houston we have a problem")
- deleted 10y ago[deleted]
- nameless912 10y agoHas anyone written an AGC->Javascript transpiler?
- arc0re 10y agoProbably procedural C or C++ with some inline assembly bits
- blueintegral 10y agoSomeone opened an issue: "Check continuity on O2 cryogenic tanks before allowing stir" https://github.com/chrislgarry/Apollo-11/issues/3 https://github.com/chrislgarry/Apollo-11/issues/3
- kol 10y agoLOL
- dingo_bat 10y agoAnd it's been marked wontfix.
- Isn0gud 10y agoELI5?
- js2 10y agohttps://news.ycombinator.com/item?id=12055780 https://news.ycombinator.com/item?id=12055780
- js2 10y agoThis is a classic XY issue, suggesting a fix ("Check continuity...") instead of describing the problem ("O2 tanks exploded during Apollo 13 mission"). Further, I believe that the suggested fix is incorrect, or at least insufficient. The Apollo 13 investigation indicated that a list of factors led to the fan wires in the O2 tanks having damaged insulation. However, unless the wires were already short-circuited before stirring, checking continuity first would not have detected the short. Indeed, the tank was stirred twice earlier in the mission without incident. The investigation suggested that operating the fans itself may have eventually moved the wires into contact with each other, which combined with the damaged insulation, finally allowed an electrical arc and the resulting explosion to occur. The correct fix is to upgrade the thermostatic switches which protect the tank heaters from overheating to accommodate 65 V DC, so that the fan wiring isn't damaged in the first place. In addition, the tank acceptance procedure should be amended to require switch cycling under load. Source: http://history.nasa.gov/SP-4029/Apollo_13a_Summary.htm http://history.nasa.gov/SP-4029/Apollo_13a_Summary.htm
- wepple 10y ago2.048MHz clock 16-bit wordlength 2048 words of RAM (4k 'bytes'/octets) using magnets?! 36,864 words of ROM Ok this is a actually a really interesting read: https://en.wikipedia.org/wiki/Apollo_Guidance_Computer https://en.wikipedia.org/wiki/Apollo_Guidance_Computer
- intrasight 10y agoNo credit to Margaret Hamilton?
- trynewideas 10y agohttps://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c464608d704fa183f3e3d08b013c42f/CONTRACT_AND_APPROVALS.s#L46 https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...
- emcrazyone 10y agoI often wonder about the electronics of 1969 and what was done to mitigate radiation problems. For instance, the type of memory was called core rope memory https://en.wikipedia.org/wiki/Apollo_Guidance_Computer https://en.wikipedia.org/wiki/Apollo_Guidance_Computer For anyone interested, XPrize winner Karsten Becker talks to popular youtube blogger David Jones about radiation, extreme heat & cold in space and specifically talks about bit flip and how electronic parts are sourced for such endeavors. https://www.youtube.com/watch?v=7JwNmdV2QPs https://www.youtube.com/watch?v=7JwNmdV2QPs Interesting to me was the "paper work" cited in the interview for space harden components. In other words, people are concerned with stuff falling back to Earth (wouldn't it burn up?) or used for not so friendly purposes (war).
- datenwolf 10y ago> For instance, the type of memory was called core rope memory Rope and core memory were the standard memory technologies of the day and very likely have not been chosed for they radiation hardness. The fact is, solid state memory became reliable and available in quantities only in the second half of the 1970-ies.
- jdimov10 10y agoFrom the code comments: "This source code has been transcribed or otherwise adapted from digitized images of a hardcopy from the MIT Museum. The digitization was performed by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many thanks to both. The images (with suitable reduction in storage size and consequent reduction in image quality as well) are available online at www.ibiblio.org/apollo. " I mean, I realise that this is the least of the amazing achievements we're talking about here, but yea.. respect :)
- WhitneyLand 10y agoIn case you're wondering what hardware this source code is for: https://en.wikipedia.org/wiki/Apollo_Guidance_Computer https://en.wikipedia.org/wiki/Apollo_Guidance_Computer The Apollo Guidance Computer (AGC) was a digital computer produced for the Apollo program that was installed on board each Apollo Command Module (CM) and Lunar Module (LM). The AGC provided computation and electronic interfaces for guidance, navigation, and control of the spacecraft. The AGC had a 16-bit word length, with 15 data bits and one parity bit. Most of the software on the AGC was stored in a special read only memory known as core rope memory, fashioned by weaving wires through magnetic cores, though a small amount of read-write core memory was provided.
- Practicality 10y ago# 3. AT PRESENT, ERASABLE LOCATIONS ARE RESERVED ONLY FOR N UP TO 5. AN N IN EXCESS OF 5 WILL PRODUCE CHAOS. I want to just leave comments like this and have users be responsible for avoiding said chaos.
- nerdy 10y agoHow about the code apparently marked for deletion? https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c464608d704fa183f3e3d08b013c42f/ORBITAL_INTEGRATION.s https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646... I've often wondered many things about the cleanliness, maintainability and style of such code (this particular system, in fact). It's fun to be able to actually poke through it.
- libria 10y agoCA A # SHOULD NEVER HIT THIS LOCATION The 1969 version of "This should never happen". https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c464608d704fa183f3e3d08b013c42f/IMU_PERFORMANCE_TESTS_4.s#L105 https://github.com/chrislgarry/Apollo-11/blob/dc4ea6735c4646...
- hcrisp 10y ago"It is correct to say that we landed on the moon with 152 Kbytes of onboard computer memory." - Don Eyles Ref: http://www.doneyles.com/LM/Tales.html http://www.doneyles.com/LM/Tales.html Amazing!
- artellectual 10y agoWow this is surreal. I can't believe I'm seeing this. It's historical, thank you for sharing.
- elcapitan 10y agoThis is amazing and contains so many gems. I think this one is my favorite module: https://github.com/chrislgarry/Apollo-11/blob/master/THE_LUNAR_LANDING.s https://github.com/chrislgarry/Apollo-11/blob/master/THE_LUN... CAF CODE500 # ASTRONAUT: PLEASE CRANK THE TC BANKCALL # SILLY THING AROUND CADR GOPERF1 TCF GOTOP00H # TERMINATE TCF P63SPOT3 # PROCEED SEE IF HE'S LYING TC BANKCALL # ENTER INITIALIZE LANDING RADAR CADR SETPOS1 TC POSTJUMP # OFF TO SEE THE WIZARD ... CADR BURNBABY
- enzanki_ars 10y agohttps://github.com/chrislgarry/Apollo-11/blob/master/THE_LUNAR_LANDING.s#L245 https://github.com/chrislgarry/Apollo-11/blob/master/THE_LUN... - Link to referenced code.
- brendangregg 10y agoIt's amazing that this is all online now, and easy to browse. Lots of source here too http://www.ibiblio.org/apollo/links.html http://www.ibiblio.org/apollo/links.html FWIW, I did performance analysis of the guidance computer and the 1202 and 1201 alarms at the start of my ACM Applicative 2016 keynote: https://youtu.be/eO94l0aGLCA?t=4m38s https://youtu.be/eO94l0aGLCA?t=4m38s
- mind_heist 10y agohey there Brendan, thats a pretty awesome presentation (I m only 20 minutes into the talk as of now ).. But you mention that the Apollo Engineers expected the CPU load to be about 85% during descent. And the Guidance computer's Kernel ran "Dummy Jobs" when no real jobs were run. What are these Dummy Jobs ? And Why did they have to do this instead of just leaving the CPU idle ?
- krallja 10y ago> Why did they have to do this instead of just leaving the CPU idle ? This would require a CPU that was designed to idle.
- mind_heist 10y agowow , wow ! Looks like I don't understand the first thing about the CPU design . Do CPUs have to be designed to IDLE ? Can you throw some more light on this ?
- Gracana 10y agoNormally the CPU clock runs continuously and every cycle the program counter increments (or gets changed by a branch instruction of some kind.) If you want to stop the CPU, you have to gate the clock somehow. Maybe a timer that you could configure and enable via software. But that's extra complexity.. and if you use dynamic logic (which is smaller and faster than static logic), you lose state when you halt. Spinning in a tight loop, on the other hand, doesn't require any hardware support.
- Animats 10y agoThere's a simulator, if you want to run it.[1] But it's just a simulator for the computer; there's no spacecraft attached. There's a mod for Kerbal Space Program which gives it real solar system planets and dimensions. (KSP's world is way undersized so things happen faster.)[2] There's another mod for Kerbal Space Program to give it real dynamics.[3] (KSP doesn't really do dynamics right; the spacecraft is under the gravitational influence of only one body at a time. This is why there's that sudden trajectory change upon Mun capture.) Someone should hook all that together and do a moon landing in simulation. [1] http://svtsim.com/moonjs/agc.html http://svtsim.com/moonjs/agc.html [2] https://www.reddit.com/r/KerbalSpaceProgram/comments/1piaqi/in_realsized_earth_and_moon_mod_fullscale/ https://www.reddit.com/r/KerbalSpaceProgram/comments/1piaqi/... [3] http://forum.kerbalspaceprogram.com/index.php?/topic/62205-wip113-principia-version-%D8%A8%D9%88%DA%98%DA%AF%D8%A7%D9%86%DB%8C-released-2016-06-26-n-body-and-extended-body-gravitation/ http://forum.kerbalspaceprogram.com/index.php?/topic/62205-w...
- kyberias 10y agoI'm really surprised there isn't a moon landing simulator based on the real code yet.
- robryk 10y agoThere's an Orbiter plugin[1] that simulates the rest of the spacecraft. IIRC it can interface with this simulator to get an accurate simulation of the computer. [1] http://nassp.sourceforge.net/wiki/Main_Page http://nassp.sourceforge.net/wiki/Main_Page
- jonathankoren 10y agoI recommend reading Digital Apollo[0] about the development of the computer, and actually the entire man-machine interface of early spaceflight. The machines were made in the milieu where computer mediated control was highly controversial. (e.g. "A machine might work when everything is fine, but will never work in an emergency.") Essentially there was huge argument between pilots and engineers, about how much automation should be done. It was so bad, that pilots even tried to insist on flying the rocket into orbit. (If I recall correctly, in simulations in a centrifuge, only Armstrong was able to successfully not crash the Saturn V in a manually controlled ascent.) The other recurring theme in the book is the disturbingly short MTTF for flight computers during the mid 1960s. Statistically, NASA had to plan for a computer failure in route to the moon, and so repair-vs-replace became a serious issue. (Yeah, they seriously considered soldering in zero-g.) [0] http://web.mit.edu/digitalapollo/ http://web.mit.edu/digitalapollo/
- yeukhon 10y agoSo how did this guy get the source code and why is he the one publishing it?
- j1vms 10y agoA less important aside: what license is this available under? Or what's the history behind this source release? Edit: .s files indicate: # Copyright: Public domain.
- cyphar 10y agoSince NASA is a US government agency, they don't have any copyright over any software they write.
- vun87 10y agoit's amazing they ever got anything to fly
- userbinator 10y agoSchematics are also available for the hardware it runs on: http://klabs.org/history/ech/agc_schematics/ http://klabs.org/history/ech/agc_schematics/ The CPU is built entirely from 3-input NOR gates.
- bitfox 10y agoWhat if you'll receive a pull request?
- lukateake 10y agoI will now be adding this comment to all of my code: HONI SOIT QUI MAL Y PENSE https://github.com/chrislgarry/Apollo-11/blob/master/BURN_BABY_BURN--MASTER_IGNITION_ROUTINE.s#L66 https://github.com/chrislgarry/Apollo-11/blob/master/BURN_BA...
- CamperBob2 10y ago"Shame on him who thinks ill of it." It's almost as if the authors anticipated the need to administer percussive therapy, Buzz Aldrin style, to trolls of the far-distant future.
- EvanAnderson 10y agoIt's interesting to me that the AGC contains an implementation of a virtual machine that is used to perform the higher-level mathematical functions (called 'The Interpreter'). Some details are available in this PDF starting on page 74: http://www.ibiblio.org/apollo/NARA-SW/E-2052.pdf http://www.ibiblio.org/apollo/NARA-SW/E-2052.pdf It would be fun to do some research into the embedding of higher-level virtual machines in earlier computers. I'm thinking of 'The Interpreter' in the AGC as being an ancestor to 'SWEET16' in the Apple II (https://en.wikipedia.org/wiki/SWEET16 https://en.wikipedia.org/wiki/SWEET16), or the 'Graphic Programming Language' (http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm http://www.unige.ch/medecine/nouspikel/ti99/gpl.htm) in the TI-99/4A.
- hockeyman61 10y agoI was 14 and listened to this live. We all were turning blue when those computer alarms were called during the first landing. Turns out it was a mistake in protocol. Computer was overloaded.