Source Code
These source-code files are part of a reconstructed copy of Comanche 51, the
initial release (though not the final mission release) of the Apollo 11
Command Module (CM) Apollo Guidance Computer (AGC) software. The flown, final
release was Comanche 55. The reconstruction is believed to be exactly accurate,
but in the absence of an actual Apollo-era listing of Comanche 51, some
explanation of the reconstruction process is needed to insure confidence in
that accuracy.
The starting point was the source code of Comanche 55, whose original source code is available. Comanche 55 source code was then modified by undoing changes known to have been made between revisions 51 and 55. The most-significant steps involved reverting changes related to the R-2 lunar potential model, the details of which were known from the previous, separate, independent reconstruction of the Apollo 10 Lunar Module software Luminary 69/2. The now-reconstructed Comanche 51 source code was verified by assembling it and checking that the assembled code had the expected known-correct memory-bank checksums. Note that page numbers in the reconstructed code match those on the Comanche 55 or Luminary 69 printouts, although the source code would likely have different page numbers in a contemporary Comanche 51 listing. Annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change relative to Comanche 55. Here's a guide to some of the Apollo documentation relevant to those annotations:
Comments expected to have been present in the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC Project's GitHub repository. |
040719,000002: ## Copyright: Public domain.
040720,000003: ## Filename: S-BAND_ANTENNA_FOR_CM.agc
040721,000004: ## Purpose: A section of Comanche revision 051.
040722,000005: ## It is part of the reconstructed source code for the
040723,000006: ## original release of the flight software for the Command
040724,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 11.
040725,000008: ## The code has been recreated from a copy of Comanche 055. It
040726,000009: ## has been adapted such that the resulting bugger words
040727,000010: ## exactly match those specified for Comanche 51 in NASA drawing
040728,000011: ## 2021153D, which gives relatively high confidence that the
040729,000012: ## reconstruction is correct.
040730,000013: ## Reference: pp. 934-935
040731,000014: ## Assembler: yaYUL
040732,000015: ## Contact: Ron Burkey <info@sandroid.org>.
040733,000016: ## Website: www.ibiblio.org/apollo/index.html
040734,000017: ## Mod history: 2019-07-30 MAS Created from Comanche 55.
040735,000018:
Page 934 |
040737,000020: 23,3205 BANK 23
040738,000021: 42,2000 SETLOC SBAND
040739,000022: 42,2000 BANK
040740,000023:
040741,000024: 42,3652 COUNT* $$/R05
040742,000025: 42,3652 E4,1417 EBANK= EMSALT
040743,000026:
040744,000027: 42,3652 04662 SBANDANT TC BANKCALL # V 64 E GETS US HERE
040745,000028: 42,3653 17653 CADR R02BOTH # CHECK IF IMU IS ON AND ALIGNED
040746,000029: 42,3654 06006 TC INTPRET
040747,000030: 42,3655 45034 RTB CALL
040748,000031: 42,3656 45510 LOADTIME # PICKUP CURRENT TIME SCALED B-28
040749,000032: 42,3657 47477 CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
040750,000033: 42,3660 34041 STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
040751,000034: 42,3661 27114 CSMCONIC # USING CONIC INTEGRATION
040752,000035: 42,3662 46135 SLOAD BHIZ # ORIGIN OF REFERENCE INERTIAL SYSTEM IS
040753,000036: 42,3663 00050 X2 # EARTH = 0, MOON = 2
040754,000037: 42,3664 65677 EISOI
040755,000038: 42,3665 77775 VLOAD
040756,000039: 42,3666 00001 RATT
040757,000040: 42,3667 00003 STORE RCM # MOVE RATT TO PREVENT WIPEOUT
040758,000041: 42,3670 45145 DLOAD CALL # MOON, PUSH ON
040759,000042: 42,3671 00015 TAT # GET ORIGINAL TIME
040760,000043: 42,3672 54115 LUNPOS # COMPUTE POSITION VECTOR OF MOON
040761,000044: 42,3673 57455 VAD VCOMP # R= -(REM+RCM) = NEG. OF S/C POS. VEC
040762,000045: 42,3674 00003 RCM
040763,000046: 42,3675 77650 GOTO
040764,000047: 42,3676 65701 EISOI +2
040765,000048: 42,3677 57575 EISOI VLOAD VCOMP # EARTH, R= -RCM
040766,000049: 42,3700 00001 RATT
040767,000050: 42,3701 64201 SETPD MXV # RCS TO STABLE MEMBER- B-1X B-29X B+1
040768,000051: 42,3702 00003 2D # 2D
040769,000052: 42,3703 01736 REFSMMAT # STABLE MEMBER. B-1X B-29X B+1= B-29
040770,000053: 42,3704 65372 VSL1 PDDL # 8D
040771,000054: 42,3705 15335 HI6ZEROS
040772,000055: 42,3706 24025 STOVL YAWANG # ZERO OUT YAWANG, SET UP FOR SMNB
040773,000056: 42,3707 00003 RCM # TRANSFORMATION. SM COORD. SCALED B-29
040774,000057: 42,3710 77624 CALL
040775,000058: 42,3711 47644 *SMNB*
040776,000059: 42,3712 00003 STORE R # SAVE NAV. BASE COORDINATES
040777,000060: 42,3713 63256 UNIT PDVL # 14D
040778,000061: 42,3714 00003 R
040779,000062: 42,3715 72431 VPROJ VSL2 # COMPUTE PROJECTION OF VECTOR INTO CM
040780,000063: 42,3716 15327 HIUNITZ # XY-PLANE, R-(R.UZ)UZ
040781,000064: 42,3717 40045 BVSU BOV # CLEAR OVERFLOW INDICATOR IF SET
040782,000065: 42,3720 00003 R
040783,000066: 42,3721 65722 COVCNV
040784,000067: 42,3722 40056 COVCNV UNIT BOV # TEST OVERFLOW FOR INDICATION OF NULL
040785,000068: 42,3723 65737 NOADJUST # VECTOR
040786,000069: 42,3724 50206 PUSH DOT # 20D
Page 935 |
040788,000071: 42,3725 15333 HIUNITX # COMPUTE YAW ANGLE = ACOS (URP.UX)
040789,000072: 42,3726 65552 SL1 ACOS # REVOLUTIONS SCALED B0
040790,000073: 42,3727 50315 PDVL DOT # 22D YAWANG
040791,000074: 42,3730 00017 URP
040792,000075: 42,3731 15331 HIUNITY # COMPUTE FOLLOWING- URP.UY
040793,000076: 42,3732 51152 SL1 BPL # POSITIVE
040794,000077: 42,3733 65737 NOADJUST # YES, 0-180 DEGREES
040795,000078: 42,3734 45345 DLOAD DSU # NO, 181-360 DEGREES 20D
040796,000079: 42,3735 15343 DPPOSMAX # COMPUTE 2 PI MINUS YAW ANGLE
040797,000080: 42,3736 77606 PUSH # 22D YAWANG
040798,000081: 42,3737 50375 NOADJUST VLOAD DOT # COMPUTE PITCH ANGLE
040799,000082: 42,3740 00011 UR # ACOS (UR.UZ) - PI/2
040800,000083: 42,3741 15327 HIUNITZ
040801,000084: 42,3742 65552 SL1 ACOS # REVOLUTIONS B0
040802,000085: 42,3743 77625 DSU
040803,000086: 42,3744 15325 HIDP1/4
040804,000087: 42,3745 16321 STODL RHOSB
040805,000088: 42,3746 00025 YAWANG
040806,000089: 42,3747 02323 STORE GAMMASB # PATCH FOR CHECKOUT
040807,000090: 42,3750 77776 EXIT
040808,000091: 42,3751 31044 CA EXTVBACT # IS BIT 5 STILL ON
040809,000092: 42,3752 75013 MASK BIT5
040810,000093: 42,3753 00006 EXTEND
040811,000094: 42,3754 15534 BZF ENDEXT # NO, WE HAVE BEEN ANSWERED
040812,000095: 42,3755 33771 CAF V06N51 # DISPLAY ANGLES
040813,000096: 42,3756 04662 TC BANKCALL
040814,000097: 42,3757 20600 CADR GOMARKFR
040815,000098: 42,3760 05625 TC B5OFF # TERMINATE
040816,000099: 42,3761 05625 TC B5OFF
040817,000100: 42,3762 05217 TC ENDOFJOB # RECYCLE
040818,000101: 42,3763 35015 CAF BIT3 # IMMEDIATE RETURN
040819,000102: 42,3764 05526 TC BLANKET # BLANK R3
040820,000103: 42,3765 35017 CAF BIT1 # DELAY MINIMUM TIME TO ALLOW DISPLAY IN
040821,000104: 42,3766 04662 TC BANKCALL
040822,000105: 42,3767 01732 CADR DELAYJOB
040823,000106: 42,3770 13654 TCF SBANDANT +2
040824,000107: 42,3771 01463 V06N51 VN 0651
040825,000108: 42,3772 RCM EQUALS 2D
040826,000109: 42,3772 UR EQUALS 8D
040827,000110: 42,3772 URP EQUALS 14D
040828,000111: 42,3772 YAWANG EQUALS 20D
040829,000112: 42,3772 PITCHANG EQUALS 22D
040830,000113: 42,3772 0000002 R EQUALS RCM
040831,000114: 42,3772 30,2000 SBANK= LOWSUPER
040832,000115:
End of include-file S-BAND_ANTENNA_FOR_CM.agc. Parent file is MAIN.agc