Apollo 14 Lunar Surface Journal Banner


Masking the Abort Discrete

Copyright © 2009 by Paul Fjeld.
All rights reserved.
Last revised 12 February 2009.

Devising the Fix

The intermittent short circuit of the ABORT button represented the most dramatic moment for the MIT computer folks in the entire Apollo program. They had between three and four hours to find a way for the computer to ignore it, test the fix at Grumman, then test it in Houston before sending it to the crew in time for PDI .
In the LM Guidance Computer (LGC) a "discrete" was set when either the ABORT or ABORT STAGE button was pushed. Every 1/4 of a second an Abort Monitor Routine would first verify that the LETABORT flag was set, indicating that aborts were allowed, and then, at the first sign of one of these discretes, automatically select an abort program: either P70, a main engine abort, or P71, a staged abort with the ascent engine. 
Don Eyles at MIT first thought that simply disallowing aborts by resetting LETABORT through the bit manipulation noun, NOUN 7, would do the trick. Unfortunately, 0.2 seconds after engine start, the Ignition Routine automatically set the LETABORT flag!  In the middle of all the excitement of engine start, the crew would have to quickly enter the reset sequence and, for those few seconds, would still be vulnerable to the ABORT button signal.
Fortunately, another path in the Abort Monitor Routine to close this window of vulnerability was found  -- MODEREG: the Mode Register memory location that held the number of the program or "major mode" that was currently running.  That register was accessed mainly for the PROG display on the DSKY, but was also checked by the Abort Monitor Routine in case P70 or P71 was already running. If an abort was the current major mode, there was no need to start a new one.

So the plan was: fake out the Abort Monitor Routine with P71 in MODEREG immediately after manuevering to the burn attitude, wait for ignition to automatically set LETABORT, reset LETABORT (disabling aborts), and then restore MODEREG.  However, two further complications had to be added to this simple plan.  The Ignition Routine also checked MODEREG, and if it didn't find P63 there, it didn't "zoom" the engine to full throttle after 26 seconds of thrust vector trimming, nor did it set ZOOMFLAG which permitted the descent guidance to take over. So now the final plan was: Ed would put P71 in MODEREG before ignition, they'd do everything normally through ignition and the 26 second trim, then Al would push his thottle control up to full, then Ed would set ZOOMFLAG, then reset LETABORT to disable any abort signal, then restore P63 in MODEREG, and, finally, Al would put his thrust controller to minimum to let the Guidance routine take over the engine.

The reason P63 had to be in MODEREG even after the ignition sequence didn't need it was that the State Vector update routine also checked this register to see what weighting to give the Landing Radar data.  The routine corrected their calculated height with only a portion of the difference between the radar measured height and that measured by the accelerometers (delta H).  At 50,000 feet it would add 0% of the delta H then increase that to 35% as they got down to 10,000 feet.  If MODEREG didn't have the number for P63, the update routine would think they were in P66 and incorporate a full 35% of the delta H, which, at high altitude, would make for a bumpy ride.  Grumman's Performance Evaluation Report claimed that the entire procedure did not affect the radar in any way.  The later Landing Radar problem was caused by a scale bit which had switched 38 seconds before any of these abort masking procedures where entered.

Finally, if an abort was required, Ed would have to set LETABORT by punching all of this into the DSKY: Verb 25, Noun 7 Enter, 105 Enter, 400 Enter, 1 Enter.  Then they could get out of Dodge!

Real-Time Implementation


108:02:45 Shepard: Okay. (Pause) We'll take the Throttle up at 26. (Pause)

108:02:54 Mitchell: Throttle up.

[Al was late by 2 seconds.]

108:02:56 Shepard: Okay. We're at full throttle, Houston.

108:02:58 Mitchell: Command is Down. Verb (garbled) 5, ...

[Ed is starting to punch the sequence: Verb 25 Noun 7 Enter, 101 Enter, 200 Enter, 1 Enter  which sets ZOOMFLAG to permit Guidance Steering.]

108:03:01 Haise: (Responding to Ed's report of 'full throttle') Roger, Antares.

108:03:03 Mitchell: ... Noun 7, Enter 101.

108:03:09 Shepard: 1.7.

108:03:12 Mitchell: (200 Enter), 001 Enter. Should have guidance. And you have Command
and Throttle.

[ZOOMFLAG is set.]

108:03:19 Shepard: Okay. We have guidance.

[Mitchell - "I think that all of this is change procedure, instead of automatic. I think that the computer would not automatically start guidance until I gave it control. And I think that's what these two or three lines is all about here."]

108:03:23 Mitchell: All right. I'm Disabling (aborts). Verb 25 Noun 7 Enter; 105
Enter, ...

[Ed is punching the sequence for resetting LETABORT, disabling aborts.]

108:03:31 Haise: You're Go at one (minute) Antares.

108:03:32 Mitchell: 400 Enter, 0 Enter. Okay. Landing radar enable:

[Ed is now restoring P63 in MODEREG so the State Vector routine will use the correct weighting function to apply to the radar delta H.]

08:03:xx Mitchell: Verb 21 Noun 1 (does he say Noun 7, which is what it should be?), Enter; 1010, Enter; 77, Enter. The landing radar is there. Al, you can reduce your Throttle to Minimum.

[77 is the number for P63 in MODEREG.]


Journal Home Page Apollo 14 Journal