This is the code in the Apollo Guidance Computer for Apollo 11.

It’s part of the LUMINARY sofware, which ran on the AGC on the Lunar Module. It’s meant to check if the landing radar is pointed toward the lunar surface - because the LM went through several orientations, the landing radar could be pointed to the front or the side or down. You’re landing on the Moon. Point it down.

Point is, you have to verify user input. Even if your users are the most meticulous and highly trained individuals in history. You have to see if they’re lying. So you get to the BURNBABY.

Browse the code in GitHub - this code is in THE_LUNAR_LANDING.agc

      • RamenJunkie@midwest.social
        link
        fedilink
        English
        arrow-up
        6
        ·
        1 hour ago

        I know people hate AI, but I fed the OP pic to Claude and asked it to explain the code and maybe gice modern comparisons to something like Python.


        This is AGC (Apollo Guidance Computer) assembly code from the lunar module’s landing radar routines. Let me walk through it:


        P63SPOT3 — “Is the antenna in position yet?”

        CA   BIT6
        EXTEND
        RAND CHAN33
        EXTEND
        BZF  P63SPOT4
        

        Reads a hardware channel (CHAN33) to check the state of the landing radar antenna. BZF means “Branch if Zero” — if the antenna bit is already set, skip ahead.

        if radar_channel_33 & BIT6 == 0:
            goto("P63SPOT4")
        

        “Nope, not there yet — bug the astronaut”

        CAF  CODE500
        TC   BANKCALL
        CADR GOPERF1
        

        Loads error code 500 and calls GOPERF1 — this triggers a crew alert, literally asking the astronaut to manually crank the antenna into position. The comment says it all: “PLEASE CRANK THE SILLY THING AROUND”

        display_alert(code=500, message="Antenna not in position, please fix manually")
        await_crew_response()
        

        “Did they fix it or bail?”

        TCF  GOTOPOOH  # TERMINATE
        TCF  P63SPOT3  # PROCEED — SEE IF HE'S LYING
        

        Two possible outcomes: crew hits terminate (GOTOPOOH — yes, really), or hits proceed and the code loops back to P63SPOT3 to check again. “See if he’s lying” is the actual comment, meaning: verify they actually moved it.

        if crew_pressed == "terminate":
            goto("GOTOPOOH")
        else:
            goto("P63SPOT3")  # trust but verify
        

        P63SPOT4 — “Okay, antenna’s good, initialize radar”

        TC   BANKCALL
        CADR SETPOS1
        

        Calls SETPOS1 to initialize the landing radar into position 1.

        bankcall(SETPOS1)  # configure radar for landing approach
        

        “And we’re off”

        TC   POSTJUMP
        CADR BURNBABY
        

        BURNBABY. That’s the actual name of the burn routine. Jumps to the powered descent initiation — the engine ignition sequence for landing.

        goto("BURNBABY")  # 🔥 start the descent burn
        

        The whole thing is basically: check hardware → nag human if needed → loop until fixed → initialize systems → light the engine. Written by people with a great sense of humor under enormous pressure, in 4KB of RAM.