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