NameLast commit messageLast commit date
..
AGC_BLOCK_TWO_SELF-CHECK.agc
ALARM_AND_ABORT.agc
ANGLFIND.agc
ASSEMBLY_AND_OPERATION_INFORMATION.agc
AUTOMATIC_MANEUVERS.agc
CM_BODY_ATTITUDE.agc
CM_ENTRY_DIGITAL_AUTOPILOT.agc
CONIC_SUBROUTINES.agc
CONTRACT_AND_APPROVALS.agc
CSM_GEOMETRY.agc
DISPLAY_INTERFACE_ROUTINES.agc
DOWN-TELEMETRY_PROGRAM.agc
DOWNLINK_LISTS.agc
ENTRY_LEXICON.agc
ERASABLE_ASSIGNMENTS.agc
EXECUTIVE.agc
EXTENDED_VERBS.agc
FIXED_FIXED_CONSTANT_POOL.agc
FRESH_START_AND_RESTART.agc
GIMBAL_LOCK_AVOIDANCE.agc
GROUND_TRACKING_DETERMINATION_PROGRAM.agc
IMU_CALIBRATION_AND_ALIGNMENT.agc
IMU_COMPENSATION_PACKAGE.agc
IMU_MODE_SWITCHING_ROUTINES.agc
INFLIGHT_ALIGNMENT_ROUTINES.agc
INTEGRATION_INITIALIZATION.agc
INTER-BANK_COMMUNICATION.agc
INTERPRETER.agc
INTERPRETIVE_CONSTANTS.agc
INTERRUPT_LEAD_INS.agc
JET_SELECTION_LOGIC.agc
KALCMANU_STEERING.agc
KEYRUPT_UPRUPT.agc
LATITUDE_LONGITUDE_SUBROUTINES.agc
LUNAR_AND_SOLAR_EPHEMERIDES_SUBROUTINES.agc
LUNAR_LANDMARK_SELECTION_FOR_CM.agc
MAIN.agc
MEASUREMENT_INCORPORATION.agc
MYSUBS.agc
ORBITAL_INTEGRATION.agc
P11.agc
P20-P25.agc
P30-P37.agc
P32-P33_P72-P73.agc
P34-35_P74-75.agc
P37_P70.agc
P40-P47.agc
P51-P53.agc
P61-P67.agc
P76.agc
PHASE_TABLE_MAINTENANCE.agc
PINBALL_GAME_BUTTONS_AND_LIGHTS.agc
PINBALL_NOUN_TABLES.agc
PLANETARY_INERTIAL_ORIENTATION.agc
POWERED_FLIGHT_SUBROUTINES.agc
R30.agc
R31.agc
R60_62.agc
RCS-CSM_DAP_EXECUTIVE_PROGRAMS.agc
RCS-CSM_DIGITAL_AUTOPILOT.agc
README.md
REENTRY_CONTROL.agc
RESTART_TABLES.agc
RESTARTS_ROUTINE.agc
RT8_OP_CODES.agc
S-BAND_ANTENNA_FOR_CM.agc
SERVICE_ROUTINES.agc
SERVICER207.agc
SINGLE_PRECISION_SUBROUTINES.agc
STABLE_ORBIT.agc
STAR_TABLES.agc
SXTMARK.agc
SYSTEM_TEST_STANDARD_LEAD_INS.agc
T4RUPT_PROGRAM.agc
TAGS_FOR_RELATIVE_SETLOC.agc
TIME_OF_FREE_FALL.agc
TPI_SEARCH.agc
TVCDAPS.agc
TVCEXECUTIVE.agc
TVCINITIALIZE.agc
TVCMASSPROP.agc
TVCRESTARTS.agc
TVCROLLDAP.agc
TVCSTROKETEST.agc
UPDATE_PROGRAM.agc
WAITLIST.agc
README.md

Comanche055

The images (with suitable reduction in storage size and consequent reduction in image quality as well) are available online at www.ibiblio.org/apollo. If for some reason you find that the images are illegible, contact me at info@sandroid.org about getting access to the (much) higher-quality images which Paul actually created.

Background

For organizatinal purposes RSB split the huge monolithic source code into smaller, more manageable chunks--i.e., into individual source files. Those files are rejoined as "includes". The code chunks correspond to natural divisions into sub-programs. In fact, these divisions are more-or-less specified by the source code itself. Refer to the "SUBROUTINE CALLS" at the very beginning of ASSEMBLY_AND_OPERATION_INFORMATION.agc.

It may be reasonably asked why tens of thousands of lines of source are joined by means of inclusion, rather than simply assembling the source files individually and then linking them to form the executable. The answer is that the original development team had no linker. The builds were monolithic just like this.

There was a big emphasis on reusability of the code in the original project, apparently, but this reusability took the form of inserting your deck of punch-cards at the appropriate position in somebody else's deck of punch-cards. (Actually, I think the card-decks were turned into tape libraries, and the modules were mixed-and-matched from the tape libraries, but the principle is the same.) So, indeed, the method of file-inclusion is a very fair representation of the methods used in the original development...with the improvement, of course, that you no longer have to worry about dropping the card deck. On the other hand, I (RSB) wasn't there at the time, so I may have no idea what I'm talking about.

Finally, note that the original Apollo AGC assembler (called YUL) is no longer available (as far as I can tell). Actually, it had already been replaced by another assembler (called GAP) by the time of Apollo 11, but GAP isn't available either. The replacement assembler yaYUL accepts a slightly different format for the source code from what YUL or GAP accepted, so the source code has been targeted for assembly with yaYUL.

What follows is simply a bunch of file-includes for the individual code chunks. The page numbers have been marked to make proof-reading easier. The page images also contain a lot of interesting tables (cross-referenced to page numbers) created by GAP, but not duplicated by yaYUL, so it's still valuable even if the source-files listed below are in hand.

Source Code Index

INFORMATION

COMERASE

Source File Page Number
ERASABLE_ASSIGNMENTS.agc 37-130

COMAID

COMEKISS

Source File Page Number
GROUND_TRACKING_DETERMINATION_PROGRAM.agc 456-459
P34-35_P74-75.agc 460-504
R31.agc 505-510
P76.agc 511-513
R30.agc 514-524
STABLE_ORBIT.agc 525-532

TROUBLE

TVCDAPS

CHIEFTAN

MISCELLANEOUS

Source File Page Number
GAP-generated tables 1517-1751