Source Code
These source-code files are part of a reconstructed copy of Comanche 45/2 (AKA Manche45 revision 2),
the final, flown mission release of the Apollo 10 Command Module (CM) Apollo Guidance
Computer (AGC) software. Comanche 45/2 was preceded by Comanche 44 and Comanche 45. The
reconstruction is believed to be exactly accurate, but in the absence of an actual Apollo-era
listing of Comanche 45/2, some explanation of the reconstruction process is needed
to insure confidence in that accuracy.
The starting point was the source code of Comanche 45 (itself previously accurately reconstructed). Comanche 45 source code was then modified by incorporating changes known from contemporary documentation to have been made between revisions 45 and 45/2. The now-reconstructed Comanche 45/2 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 tend to match those in the Comanche 55, the most-similar revision of Comanche for which we have access to an actual non-reconstructed hardcopy; the source code would likely have different page numbers in a contemporary Comanche 45 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 44. Here's a guide to the Apollo documentation referenced in those annotations:
|
040672,000002: ## Copyright: Public domain.
040673,000003: ## Filename: S-BAND_ANTENNA_FOR_CM.agc
040674,000004: ## Purpose: A section of Manche45 revision 2.
040675,000005: ## It is part of the reconstructed source code for the
040676,000006: ## final, flown release of the flight software for the Command
040677,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 10.
040678,000008: ## The code has been recreated from a copy of Comanche 055. It
040679,000009: ## has been adapted such that the resulting bugger words
040680,000010: ## exactly match those specified for Manche 45/2 in NASA drawing
040681,000011: ## 2021153D, which gives relatively high confidence that the
040682,000012: ## reconstruction is correct.
040683,000013: ## Assembler: yaYUL
040684,000014: ## Contact: Ron Burkey <info@sandroid.org>.
040685,000015: ## Website: www.ibiblio.org/apollo/index.html
040686,000016: ## Mod history: 2020-12-24 MAS Created from Comanche 45.
040687,000017:
Page 934 |
040689,000019: 23,3205 BANK 23
040690,000020: 42,2000 SETLOC SBAND
040691,000021: 42,2000 BANK
040692,000022:
040693,000023: 42,3652 COUNT* $$/R05
040694,000024: 42,3652 E4,1417 EBANK= EMSALT
040695,000025:
040696,000026: 42,3652 04662 SBANDANT TC BANKCALL # V 64 E GETS US HERE
040697,000027: 42,3653 17653 CADR R02BOTH # CHECK IF IMU IS ON AND ALIGNED
040698,000028: 42,3654 06006 TC INTPRET
040699,000029: 42,3655 45034 RTB CALL
040700,000030: 42,3656 45510 LOADTIME # PICKUP CURRENT TIME SCALED B-28
040701,000031: 42,3657 47477 CDUTRIG # COMPUTE SINES AND COSINES OF CDU ANGLES
040702,000032: 42,3660 34041 STCALL TDEC1 # ADVANCE INTEGRATION TO TIME IN TDEC1
040703,000033: 42,3661 27114 CSMCONIC # USING CONIC INTEGRATION
040704,000034: 42,3662 46135 SLOAD BHIZ # ORIGIN OF REFERENCE INERTIAL SYSTEM IS
040705,000035: 42,3663 00050 X2 # EARTH = 0, MOON = 2
040706,000036: 42,3664 65677 EISOI
040707,000037: 42,3665 77775 VLOAD
040708,000038: 42,3666 00001 RATT
040709,000039: 42,3667 00003 STORE RCM # MOVE RATT TO PREVENT WIPEOUT
040710,000040: 42,3670 45145 DLOAD CALL # MOON, PUSH ON
040711,000041: 42,3671 00015 TAT # GET ORIGINAL TIME
040712,000042: 42,3672 54115 LUNPOS # COMPUTE POSITION VECTOR OF MOON
040713,000043: 42,3673 57455 VAD VCOMP # R= -(REM+RCM) = NEG. OF S/C POS. VEC
040714,000044: 42,3674 00003 RCM
040715,000045: 42,3675 77650 GOTO
040716,000046: 42,3676 65701 EISOI +2
040717,000047: 42,3677 57575 EISOI VLOAD VCOMP # EARTH, R= -RCM
040718,000048: 42,3700 00001 RATT
040719,000049: 42,3701 64201 SETPD MXV # RCS TO STABLE MEMBER- B-1X B-29X B+1
040720,000050: 42,3702 00003 2D # 2D
040721,000051: 42,3703 01736 REFSMMAT # STABLE MEMBER. B-1X B-29X B+1= B-29
040722,000052: 42,3704 65372 VSL1 PDDL # 8D
040723,000053: 42,3705 15335 HI6ZEROS
040724,000054: 42,3706 24025 STOVL YAWANG # ZERO OUT YAWANG, SET UP FOR SMNB
040725,000055: 42,3707 00003 RCM # TRANSFORMATION. SM COORD. SCALED B-29
040726,000056: 42,3710 77624 CALL
040727,000057: 42,3711 47644 *SMNB*
040728,000058: 42,3712 00003 STORE R # SAVE NAV. BASE COORDINATES
040729,000059: 42,3713 63256 UNIT PDVL # 14D
040730,000060: 42,3714 00003 R
040731,000061: 42,3715 72431 VPROJ VSL2 # COMPUTE PROJECTION OF VECTOR INTO CM
040732,000062: 42,3716 15327 HIUNITZ # XY-PLANE, R-(R.UZ)UZ
040733,000063: 42,3717 40045 BVSU BOV # CLEAR OVERFLOW INDICATOR IF SET
040734,000064: 42,3720 00003 R
040735,000065: 42,3721 65722 COVCNV
040736,000066: 42,3722 40056 COVCNV UNIT BOV # TEST OVERFLOW FOR INDICATION OF NULL
040737,000067: 42,3723 65737 NOADJUST # VECTOR
040738,000068: 42,3724 50206 PUSH DOT # 20D
Page 935 |
040740,000070: 42,3725 15333 HIUNITX # COMPUTE YAW ANGLE = ACOS (URP.UX)
040741,000071: 42,3726 65552 SL1 ACOS # REVOLUTIONS SCALED B0
040742,000072: 42,3727 50315 PDVL DOT # 22D YAWANG
040743,000073: 42,3730 00017 URP
040744,000074: 42,3731 15331 HIUNITY # COMPUTE FOLLOWING- URP.UY
040745,000075: 42,3732 51152 SL1 BPL # POSITIVE
040746,000076: 42,3733 65737 NOADJUST # YES, 0-180 DEGREES
040747,000077: 42,3734 45345 DLOAD DSU # NO, 181-360 DEGREES 20D
040748,000078: 42,3735 15343 DPPOSMAX # COMPUTE 2 PI MINUS YAW ANGLE
040749,000079: 42,3736 77606 PUSH # 22D YAWANG
040750,000080: 42,3737 50375 NOADJUST VLOAD DOT # COMPUTE PITCH ANGLE
040751,000081: 42,3740 00011 UR # ACOS (UR.UZ) - PI/2
040752,000082: 42,3741 15327 HIUNITZ
040753,000083: 42,3742 65552 SL1 ACOS # REVOLUTIONS B0
040754,000084: 42,3743 77625 DSU
040755,000085: 42,3744 15325 HIDP1/4
040756,000086: 42,3745 16321 STODL RHOSB
040757,000087: 42,3746 00025 YAWANG
040758,000088: 42,3747 02323 STORE GAMMASB # PATCH FOR CHECKOUT
040759,000089: 42,3750 77776 EXIT
040760,000090: 42,3751 31044 CA EXTVBACT # IS BIT 5 STILL ON
040761,000091: 42,3752 75013 MASK BIT5
040762,000092: 42,3753 00006 EXTEND
040763,000093: 42,3754 15534 BZF ENDEXT # NO, WE HAVE BEEN ANSWERED
040764,000094: 42,3755 33771 CAF V06N51 # DISPLAY ANGLES
040765,000095: 42,3756 04662 TC BANKCALL
040766,000096: 42,3757 20600 CADR GOMARKFR
040767,000097: 42,3760 05625 TC B5OFF # TERMINATE
040768,000098: 42,3761 05625 TC B5OFF
040769,000099: 42,3762 05217 TC ENDOFJOB # RECYCLE
040770,000100: 42,3763 35015 CAF BIT3 # IMMEDIATE RETURN
040771,000101: 42,3764 05526 TC BLANKET # BLANK R3
040772,000102: 42,3765 35017 CAF BIT1 # DELAY MINIMUM TIME TO ALLOW DISPLAY IN
040773,000103: 42,3766 04662 TC BANKCALL
040774,000104: 42,3767 01732 CADR DELAYJOB
040775,000105: 42,3770 13654 TCF SBANDANT +2
040776,000106: 42,3771 01463 V06N51 VN 0651
040777,000107: 42,3772 RCM EQUALS 2D
040778,000108: 42,3772 UR EQUALS 8D
040779,000109: 42,3772 URP EQUALS 14D
040780,000110: 42,3772 YAWANG EQUALS 20D
040781,000111: 42,3772 PITCHANG EQUALS 22D
040782,000112: 42,3772 0000002 R EQUALS RCM
040783,000113: 42,3772 30,2000 SBANK= LOWSUPER
040784,000114:
End of include-file S-BAND_ANTENNA_FOR_CM.agc. Parent file is MAIN.agc