<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: thewonderidiot</title><link>https://news.ycombinator.com/user?id=thewonderidiot</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 05:15:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=thewonderidiot" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by thewonderidiot in "We found an undocumented bug in the Apollo 11 guidance computer code"]]></title><description><![CDATA[
<p>Mike Stewart here! I led the restoration of the AGC documented on CuriousMarc's channel and co-administrate VirtualAGC. There is a lot to unpack here.<p>First: this is indeed a real bug in the AGC software. However, it did not go unnoticed for the whole program. It was discovered during level 3 testing of SATANCHE, and late development branch of the Command Module software COMANCHE. It was assigned anomaly number L-1D-02, and was fixed between Apollo 14 and 15. There are two known surviving copies of the L-1D-02 anomaly report:<p>* <a href="https://www.ibiblio.org/apollo/Documents/contents_of_luminary_1d.pdf#page=51" rel="nofollow">https://www.ibiblio.org/apollo/Documents/contents_of_luminar...</a><p>* <a href="https://www.ibiblio.org/apollo/Documents/contents_of_luminary_1e.pdf#page=316" rel="nofollow">https://www.ibiblio.org/apollo/Documents/contents_of_luminar...</a><p>The fix described in the article is partially complete, but as noted in the anomaly report there's a little bit more to it. Rather than just adding the two instructions to zero LGYRO, they restructured the code a bit and also cause it to wake up pending jobs. You can compare the relevant sections of the Apollo 14 and Apollo 15 LM software here:<p>* Apollo 14: <a href="https://github.com/virtualagc/virtualagc/blob/master/Luminary178/IMU_MODE_SWITCHING_ROUTINES.agc#L703" rel="nofollow">https://github.com/virtualagc/virtualagc/blob/master/Luminar...</a><p>* Apollo 15: <a href="https://github.com/virtualagc/virtualagc/blob/master/Luminary210/IMU_MODE_SWITCHING_ROUTINES.agc#L702" rel="nofollow">https://github.com/virtualagc/virtualagc/blob/master/Luminar...</a><p>The bug would not manifest silently in the way described in the article. For starters, LGYRO is also zeroed in STARTSB2, which is executed via GOPROG2 on any major program change: <a href="https://github.com/virtualagc/virtualagc/blob/master/Luminary099/FRESH_START_AND_RESTART.agc#L570" rel="nofollow">https://github.com/virtualagc/virtualagc/blob/master/Luminar...</a><p>This means that changing from any program to any other program would immediately resolve the issue. This is almost certainly a large part of why it took them so long to notice. Hitting BADEND while actively pulse-torquing is quite rare, and avoided by normal procedure. The scenario presented in the article can't happen since the act of starting P52 will zero LGYRO.<p>Moreover, in the very specific scenarios in which the bug can be triggered and remain, it results in multiple jobs stacking up attempting to torque the gyros. Eventually the computer runs out of space for new jobs -- similar to what happened on 11 -- and a 31202 (the Apollo 12+ equivalent of 1202) is triggered.<p>Since the issue was found before the flight of Apollo 14, a further description of how it might occur and what the recovery procedure should be was added to the Apollo 14 Program Notes: <a href="https://www.ibiblio.org/apollo/Documents/LUM159_text.pdf#page=3" rel="nofollow">https://www.ibiblio.org/apollo/Documents/LUM159_text.pdf#pag...</a><p>Some other notes:<p>> Ken Shirriff has analysed it down to individual gates<p>I've done the bulk of the gate-level analysis. :)<p>> the Virtual AGC project runs the software in emulation, having confirmed the recovered source byte-for-byte against the original core rope dumps.<p>We've only been able to do that in very specific circumstances and only for subsections of assorted programs, but never for a full program. Most AGC software either comes from a program listing, from a core rope dump, or from reconstruction using changelogs and known memory bank checksums. We've disassembled all of the rope dumps into source files that assemble back into the same binary, but the comments and labels will be different from what was in the original listing. And to be extra clear: I've never had the opportunity to dump a module containing Apollo 11 software for either vehicle. Our sole source for both programs is a pair of printouts in the MIT Museum's collection.<p>> Margaret Hamilton (as “rope mother” for LUMINARY) approved the final flight programs before they were woven into core rope memory.<p>Jim Kernan was the rope mother for Luminary at least up through Apollo 11. Margaret was the rope mother for Comanche, the CM software, and was later promoted to lead the software division. Their positions at the time of 11 can be seen on this org chart: <a href="https://www.ibiblio.org/apollo/Documents/ApolloOrg-1969-02.pdf#page=3" rel="nofollow">https://www.ibiblio.org/apollo/Documents/ApolloOrg-1969-02.p...</a><p>> Their priority scheduling saved the Apollo 11 landing when the 1202 alarms fired during descent, shedding low-priority tasks under load exactly as designed.<p>This is a huge topic on its own, but the AGC software was not designed to shed low-priority jobs. Ironically, the lowest priority job during the landing was the landing guidance itself, with high-priority jobs being reserved for things that needed quick response like antenna movements or display updates. If the computer were to shed the lowest-priority jobs, it would shed the landing guidance. This memo contains a list of all jobs active during the landing and their priorities: <a href="https://www.ibiblio.org/apollo/Documents/CherryApollo11Exegesis.pdf" rel="nofollow">https://www.ibiblio.org/apollo/Documents/CherryApollo11Exege...</a><p>> For example, the ICD for the rendezvous radar specified that two 800 Hz power supplies would be frequency-locked but said nothing about phase synchronisation. The resulting phase drift made the antenna appear to dither, generating roughly 6,400 spurious interrupts per second per angle and consuming roughly 13% of the computer’s capacity during Apollo 11’s descent. This was the underlying cause of the 1202 alarms.<p>The frequency-lock prevents phase drift, so the phase is essentially fixed once the power supplies are up. Ironically, however, the bigger issue is that one reference was 28V while the other was 15V. Initial testing on actual Apollo hardware suggests that at least for Apollo 11, this voltage difference was the key contributor rather than the phase difference: <a href="https://www.youtube.com/watch?v=dT33c70EIYk" rel="nofollow">https://www.youtube.com/watch?v=dT33c70EIYk</a></p>
]]></description><pubDate>Tue, 07 Apr 2026 22:50:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47682356</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=47682356</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47682356</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Virtual Apollo Guidance Computer"]]></title><description><![CDATA[
<p>For the communications project specifically (and also a couple of other projects we have going on), I combined the FPGA AGC and the Monitor into a single design that runs on a Digilent Cmod A7-35T: <a href="https://github.com/thewonderidiot/cmod_agc">https://github.com/thewonderidiot/cmod_agc</a><p>It's a lot cheaper and more accessible in this form, and much easier to integrate into projects that need AGC stand-ins.<p>Aside from the FPGA design though, yeah, all of the AGC software and the assembler is in the VirtualAGC repository.</p>
]]></description><pubDate>Mon, 29 Jul 2024 18:21:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=41102515</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=41102515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41102515</guid></item><item><title><![CDATA[Core Rope Memory Visualizer]]></title><description><![CDATA[
<p>Article URL: <a href="https://apolloguidance.computer/rope/">https://apolloguidance.computer/rope/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=29462190">https://news.ycombinator.com/item?id=29462190</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 06 Dec 2021 16:54:03 +0000</pubDate><link>https://apolloguidance.computer/rope/</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=29462190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29462190</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo 11 implementation of Trigonometric functions (1969)"]]></title><description><![CDATA[
<p>The Command Module system test code Sundial includes a slightly earlier version of these same routines: <a href="https://github.com/thewonderidiot/sundiale/blob/master/sundiale.disagc#L2531" rel="nofollow">https://github.com/thewonderidiot/sundiale/blob/master/sundi...</a><p>This is a work-in-progress disassembly of the core rope modules we dumped at the MIT Museum, so apologies for the less friendly formatting!</p>
]]></description><pubDate>Wed, 07 Jul 2021 17:42:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=27763784</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=27763784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27763784</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo 11 Guidance Computer source code for the command and lunar modules"]]></title><description><![CDATA[
<p>No, it's not. The 1 here is using interpretive index register X1 to index onto GAINBRAK. The star on the DMP means that multiplication is indexed. GAINBRAK is one of the pad-loaded descent targeting parameters; the index selects the appropriate number based on the phase of the descent.</p>
]]></description><pubDate>Thu, 20 Feb 2020 03:21:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=22372430</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=22372430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22372430</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo 11 Guidance Computer source code for the command and lunar modules"]]></title><description><![CDATA[
<p>People frequently seem to think this is about the line number it's on (666), but that doesn't have anything to do with it. That line number is a totally modern construction; the original source code was on punch cards. That particular comment was punched onto card number 0562 in the LUNAR LANDING GUIDANCE EQUATIONS log section. The original developers only referred to code by punch card number, and page number in the listing. So it really is just a coincidence, and the "NUMERO MYSTERIOSO" is referring to whatever is in GAINBRAK,1.</p>
]]></description><pubDate>Wed, 19 Feb 2020 19:14:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=22368942</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=22368942</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22368942</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo 11 Guidance Computer source code for the command and lunar modules"]]></title><description><![CDATA[
<p>That call to STOPRATE was there to zero out attitude rate commands at the moment the astronaut switches into the semimanual final descent program P66. It was removed in the final few revisions before the first, unflown release of the Apollo 14 software (Luminary 163 [1]) because it was preventing attitude control of the spacecraft when Rate-Of-Descent commands were skipped [2]. Skipping ROD commands wasn't normal, but was something that was added as part of the effort to make the computer more cleanly handle large unexpected additional load, like happened in Apollo 11.<p>[1] <a href="https://github.com/virtualagc/virtualagc/blob/master/Luminary163/LUNAR_LANDING_GUIDANCE_EQUATIONS.agc#L209" rel="nofollow">https://github.com/virtualagc/virtualagc/blob/master/Luminar...</a><p>[2] <a href="http://www.ibiblio.org/apollo/Documents/LUM156_text.pdf" rel="nofollow">http://www.ibiblio.org/apollo/Documents/LUM156_text.pdf</a> -- look for PCN 1037</p>
]]></description><pubDate>Wed, 19 Feb 2020 18:46:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=22368642</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=22368642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22368642</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo 11 Guidance Computer source code for the command and lunar modules"]]></title><description><![CDATA[
<p>These files were originally put on GitHub in the VirtualAGC repository [1] in 2015. The code was publicly released and digitized into these source files in 2009, through cooperation with the MIT Museum.<p>[1] <a href="https://github.com/virtualagc/virtualagc" rel="nofollow">https://github.com/virtualagc/virtualagc</a></p>
]]></description><pubDate>Wed, 19 Feb 2020 18:17:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=22368314</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=22368314</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22368314</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo 11 Guidance Computer source code for the command and lunar modules"]]></title><description><![CDATA[
<p>Wherever we added modern comments, they are denoted by a double hashtag (##) at the beginning of the line. Everything else, minus formatting concerns, is directly from the original listing. You can see the scans we transcribed this from here:<p><a href="https://archive.org/details/Comanche55J2k60" rel="nofollow">https://archive.org/details/Comanche55J2k60</a><p><a href="https://archive.org/details/Luminary99001J2k60" rel="nofollow">https://archive.org/details/Luminary99001J2k60</a></p>
]]></description><pubDate>Wed, 19 Feb 2020 18:14:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=22368277</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=22368277</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22368277</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Weird-Looking Freak Saves Apollo 14 (1971)"]]></title><description><![CDATA[
<p>Don is still around, and is still awesome! His memory for events around that time is surprisingly sharp, for it being 50 years ago.<p>He's been an invaluable resource for us at the VirtualAGC project [1]. He provided over half (!) of the AGC programs we've made available, including LM software for Apollo 5, 9, 10, 11, 12, 13, and 15-17, plus several other ground development programs. He also was the source of a majority of the schematics that we used in the AGC restoration [2] -- I can say with 100% confidence that it wouldn't have been possible to get that computer working again without his help.<p>He's got a book out now, Sunburst and Luminary [3], that is very good and goes into a lot of technical detail on the LM software, without getting too much into the weeds. I highly recommend it if you're interested in that sort of thing!<p>[1] <a href="http://www.ibiblio.org/apollo/" rel="nofollow">http://www.ibiblio.org/apollo/</a><p>[2] <a href="https://www.youtube.com/watch?v=2KSahAoOLdU&list=PL-_93BVApb59FWrLZfdlisi_x7-Ut_-w7" rel="nofollow">https://www.youtube.com/watch?v=2KSahAoOLdU&list=PL-_93BVApb...</a><p>[3] <a href="https://www.sunburstandluminary.com/SLhome.html" rel="nofollow">https://www.sunburstandluminary.com/SLhome.html</a></p>
]]></description><pubDate>Tue, 18 Feb 2020 05:24:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=22353702</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=22353702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22353702</guid></item><item><title><![CDATA[New comment by thewonderidiot in "A computer built from NOR gates: inside the Apollo Guidance Computer"]]></title><description><![CDATA[
<p>The Interpreter was written by Charley Muntz, not Margaret. Margaret wrote a large chunk of the DSKY display routines and a lot of the alarm/abort logic.</p>
]]></description><pubDate>Mon, 30 Sep 2019 02:36:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=21111318</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=21111318</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21111318</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo Guidance Computer switching power supply works after 50 years"]]></title><description><![CDATA[
<p>Nah, they put a couple of precautions in to make sure you couldn't put the computer into standby accidentally. First, software has to set a bit to enable standby mode to be entered. For the astronauts, this was keying in VERB 37 ENTER 06 ENTER, which started P06, the pre-standby program. They then had to press and hold the button for a period of time between 1.28 and 2.56 seconds (exactly how long it takes depends on where the clock divider chain was at when they first press in the button). To bring it out of standby, you have to push the button in for a similar duration.</p>
]]></description><pubDate>Mon, 26 Aug 2019 20:31:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=20803458</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=20803458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20803458</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo Guidance Computer switching power supply works after 50 years"]]></title><description><![CDATA[
<p>Many years now of research and simulation of the system (I led the restoration of the computer mentioned in the article). There's not a single place where you can read everything, unfortunately, aside from the comment above. We're planning on making a video on it in the future. But I can cite sources:<p>CDU theory of operation (starting PDF page 15): <a href="http://www.ibiblio.org/apollo/Documents/HSI-208435-003.pdf" rel="nofollow">http://www.ibiblio.org/apollo/Documents/HSI-208435-003.pdf</a><p>CDU coarse module schematic: <a href="https://archive.org/stream/apertureCardBox462NARASW_images#page/n1507/mode/1up" rel="nofollow">https://archive.org/stream/apertureCardBox462NARASW_images#p...</a><p>Grumman memo (from 1968!) describing the problem, and mentioning it is due to the reference switching to a 15V 800Hz source: <a href="https://www.ibiblio.org/apollo/Documents/Memo-GAEC_LMO_541_108_text.pdf" rel="nofollow">https://www.ibiblio.org/apollo/Documents/Memo-GAEC_LMO_541_1...</a><p>Excerpt from the LM-8 Systems Handbook showing the reference voltage RR switch wiring: <a href="https://i.imgur.com/fMsQ7RI.png" rel="nofollow">https://i.imgur.com/fMsQ7RI.png</a><p>Don Eyles describes the software side best in his book Sunburst and Luminary (which I highly recommend) but he also talks about it in some detail on his website: <a href="https://doneyles.com/LM/Tales.html" rel="nofollow">https://doneyles.com/LM/Tales.html</a></p>
]]></description><pubDate>Sun, 25 Aug 2019 17:01:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=20794011</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=20794011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20794011</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo Guidance Computer switching power supply works after 50 years"]]></title><description><![CDATA[
<p>Solder is used extensively in satellites nowadays. The catch, though, is that you <i>must</i> use leaded solder, because the lead dramatically decreases the occurrence of tin whiskers. RoHS has been rather annoying in the aerospace industry, because anything RoHS compliant can't safely fly.</p>
]]></description><pubDate>Sun, 25 Aug 2019 04:31:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=20791374</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=20791374</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20791374</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo Guidance Computer switching power supply works after 50 years"]]></title><description><![CDATA[
<p>Did it use wet tantalums, though? If the alternative is "solid tantalums", then it didn't -- SCD 1006755, the only type of tantalum used in the computer, specifies them as "Capacitor Fixed, Electrolytic, Solid Tantalum". Our computer has KEMET KGxxJyyKPS parts (xx=capacitance, yy=rating), but they also at least evaluated Sprague 150D, 151D, and 350D to fill the role (and utilized at least one of them).</p>
]]></description><pubDate>Sun, 25 Aug 2019 04:28:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=20791368</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=20791368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20791368</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo Guidance Computer switching power supply works after 50 years"]]></title><description><![CDATA[
<p>Sadly most of what you read by googling these problems is misinformation. It was actually an incredibly sinister systems integration bug, that wasn't well described even at the time.<p>It wasn't a switch misconfiguration; the Apollo 11 astronauts were flying to the checklist, and did as they had simulated. The Rendezvous Radar switch has three settings -- LGC, AUTO TRACK, and SLEW. In LGC mode, the AGC controls the positioning of the antenna; in AUTO TRACK, the radar automatically tracks the CSM based on return strength; and in SLEW it is automatically positioned.<p>The trouble came from how the trunnion and shaft angles of the antenna were measured. They used "resolvers", which are sort of like variable transfomers. Resolvers look like motors, and attached to the shaft there are two windings positioned 90 degrees apart from each other. An AC "reference voltage" is applied to an outer winding in the case, and that voltage couples onto the two inner windings with a magnitude proportional to the angle on the shaft. One winding (the "sine" winding) produces an output equal to Vref<i>sin(theta) and the other ("cosine") winding produces an output equal to Vref</i>cos(theta), where Vref is the reference voltage and theta is the angle of the shaft. The voltage and phase of both windings can be used to determine exactly what the theta was that produced them.<p>The circuitry to do this is a bit involved though and lived outside the computer, in a device called the CDU, or Coupling Data Unit. The CDU constantly maintained its own idea of what the angle ("psi") in a digital register. It translated the incoming sine and cosine voltages into a digital representation by mechanizing the equation +-sin(theta-psi) = +-sin(theta)<i>cos(psi) -+ cos(theta)</i>sin(psi). It did so by using the bits of its digital register containing psi to switch on and off resistor dividers that effected cos(psi) and sin(psi) onto the incoming signals, which were then added together with a summing amplifier. The goal of the CDU is to zero this sum; to accomplish this, it "counts" the angle register up or down to reduce the magnitude of the sum. As it counts, switches are changed, which switch out resistors in the circuit, which in turn change cos(psi) and sin(psi) in the above equation. And also, with every other increment, a pulse is transmitted to the AGC to indicate that the angle has changed slightly.<p>The problem comes in because in addition to the above, the CDU also, for many angles, added to the sum some fraction of the reference voltage directly. This is fine when the switch is in the LGC position; the resolvers are supplied with the same 28V, 800Hz reference voltage that is used inside the CDU. However, when the switch is put in either of the other two positions, the reference voltage for the RR resolvers is switched to an unrelated 15V rail. Critically, this 15V reference has no defined phase relationship with the CDU's 28V 800Hz reference. The phasing is locked in by the exact millisecond at which you power up your subsystems.<p>So when the switch is changed, the sine and cosine outputs from the resolver are suddenly derived from the 15V reference -- they are much lower before and at a random phase. The CDU doesn't know that this has happened, and still tries to perform the summing as before. However, for many theta/phase relationships, it becomes impossible for the CDU to actually null the sum. In these cases, the CDU becomes "manic", and starts seeking back and forth, frantically changing switches to try to figure out what the angle is, but never succeeding.<p>This causes a huge flurry of +1 and -1 pulses to the AGC. In order to minimize circuitry, the AGC implemented what was called "unprogrammed" or "cycle-stealing" instructions. The computer only contains a single adder, and adding or subtracting 1 from the current angle requires use of that adder and a memory cycle. Rather than generating a full interrupt, which would require many memory cycles and instructions to handle, the computer simply transparently inserts a single-cycle instruction in between two "programmed" instructions that performs the addition or subtraction. This is totally transparent to software, normally. But with a manic CDU that is incessantly seeking on both RR angles, the AGC receives something close to 12,800 pulses per second, which translates into something around 15% of its total computational time. The landing software had only been designed with a margin of 10% or so.<p>The 1202s were also a lot less benign than is often reported. They occurred because of the fixed two-second guidance cycle in the landing software. That is, once every two seconds, a job called the SERVICER would start. SERVICER had many tasks during the landing. In order: navigation, guidance, commanding throttle, commanding attitude, and updating displays. With an excessive load as caused by the CDU, new SERVICERs were starting before old ones could finish. Eventually there would be two many old SERVICERs hanging around, and when the time came to start a new one, there would be no slots for new jobs available. When this happened, the EXECUTIVE (job scheduler) would issue a 1201 or 1202 alarm and cause a soft restart of the computer. Every job and task was flushed, and the computer started up fresh, resuming from its last checkpoint. It was essentially a full-on crash and restart, rather than a graceful cancellation of a few jobs. And unlike is often said, the computer wasn't dropping low-priority things; it was failing to complete the most critical job of the landing, the SERVICER.<p>Luckily, the load was light enough that of the SERVICER's duties, the old SERVICER was usually in the final display updating code when it got preempted by a new SERVICER. This caused times in the descent when the display stopped updating entirely, but the flight proceeded mostly as usual. However, with slightly more load, it was fully possible that the SERVICER could have been preempted in the attitude control portion of the code, or worse yet, the throttle control portion. Since each SERVICER shared the same memory location as the last one (since there was only ever supposed to be one running at a time), this could lead to violent attitude or throttle excursions, which would have certainly called for an abort. Luckily, this didn't happen -- and the flight controllers didn't abort the mission not because 1202s were always safe, but because they didn't understand just how bad it could be, were the load just a tiny bit higher.</p>
]]></description><pubDate>Sun, 25 Aug 2019 04:09:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=20791307</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=20791307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20791307</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Apollo Guidance Computer switching power supply works after 50 years"]]></title><description><![CDATA[
<p>To the contrary! In our AGC, all of the capacitors not tucked into cordwood holes sport a KEMET logo and part number: <a href="https://photos.app.goo.gl/oGsrgXBpNMccmkWV7" rel="nofollow">https://photos.app.goo.gl/oGsrgXBpNMccmkWV7</a><p>I think the Computer History Museum's might have Sprague caps in it, though.</p>
]]></description><pubDate>Sun, 25 Aug 2019 03:35:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=20791200</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=20791200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20791200</guid></item><item><title><![CDATA[Apollo AGC Restoration Part 1]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=2KSahAoOLdU">https://www.youtube.com/watch?v=2KSahAoOLdU</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=18447910">https://news.ycombinator.com/item?id=18447910</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 14 Nov 2018 06:19:28 +0000</pubDate><link>https://www.youtube.com/watch?v=2KSahAoOLdU</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=18447910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18447910</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Restoring an Apollo Guidance Computer, Part IV"]]></title><description><![CDATA[
<p>Yeah, it was absolutely incredible to see that clock being generated for the first time. That was the first module we powered up, since it's the easiest -- just give it 4V and 14V power inputs, and it should start clocking. But it was also a scary one, because that's one of the three potted modules in the computer, so trying to fix it would be difficult. And the design review book for the computer has nothing good to say about the durability of one of the components in it.</p>
]]></description><pubDate>Mon, 12 Nov 2018 16:43:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=18433640</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=18433640</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18433640</guid></item><item><title><![CDATA[New comment by thewonderidiot in "Restoring an Apollo Guidance Computer, Part IV"]]></title><description><![CDATA[
<p>Yes, the current plan is to do a bit of an exhibition/tour with it. Details are still murky, since we still have a good bit of work to do to get it fully working.</p>
]]></description><pubDate>Mon, 12 Nov 2018 16:35:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=18433578</link><dc:creator>thewonderidiot</dc:creator><comments>https://news.ycombinator.com/item?id=18433578</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18433578</guid></item></channel></rss>