Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 program listing from a private collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Note that the page images
presented online are of reduced quality, and that additional images
may be available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971 THIS AGC PROGRAM SHALL ALSO BE REFERRED TO AS COLOSSUS 3 THIS PROGRAM IS INTENDED FOR USE IN THE CM AS SPECIFIED IN REPORT R-577. THIS PROGRAM WAS PREPARED UNDER OSR PROJECT 55-23890, SPONSORED BY THE MANNED SPACECRAFT CENTER OF THE NATIONAL AERONAUTICS AND SPACE ADMINISTRATION THROUGH CONTRACT NAS 9-4065 WITH THE CHARLES STARK DRAPER LABORATORY, MASSACHUSETTS INSTITUTE OF TECHNOLOGY, CAMBRIDGE, MASS. |
018501,000002: # Copyright: Public domain.
018502,000003: # Filename: KALCMANU_STEERING.agc
018503,000004: # Purpose: Part of the source code for Artemis (i.e., Colossus 3),
018504,000005: # build 072. This is for the Command Module's (CM)
018505,000006: # Apollo Guidance Computer (AGC), we believe for
018506,000007: # Apollo 15-17.
018507,000008: # Assembler: yaYUL
018508,000009: # Contact: Sergio Navarro <sergionavarrog@gmail.com>
018509,000010: # Website: www.ibiblio.org/apollo/index.html
018510,000011: # Page scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
018511,000012: # Mod history: 2009-08-19 SN Adapted from corresponding Comanche 055 file.
018512,000013: # 2009-09-04 JL Fix typos.
018513,000014: # 2010-01-31 JL Fixed build errors.
018514,000015: # 2010-02-20 RSB Un-##'d this header.
018515,000016:
![]() |
Page 418 |
018517,000018:
018518,000019: # GENERATION OF STEERING COMMANDS FOR DIGITAL AUTOPILOT FREE FALL MANEUVERS
018519,000020:
018520,000021: # NEW COMMANDS WILL BE GENERATED EVERY ONE SECOND DURING THE MANEUVER
018521,000022:
018522,000023: 22,2000 SETLOC KALCMON1
018523,000024: 22,2000 BANK
018524,000025:
018525,000026: 22,3037 E6,1661 EBANK= BCDU
018526,000027:
018527,000028: 22,3037 COUNT* $$/KALC
018528,000029: 22,3037 34767 NEWDELHI CAF R67BIT
018529,000030: 22,3040 70104 MASK FLAGWRD8
018530,000031: 22,3041 00006 EXTEND
018531,000032: 22,3042 13047 BZF NEWANGL -3 # NON-R67 SEQUENCE
018532,000033:
018533,000034: 22,3043 34764 CAF TRACKBIT
018534,000035: 22,3044 70075 MASK FLAGWRD1
018535,000036: 22,3045 00006 EXTEND # CHECK TRACKFLAG
018536,000037: 22,3046 13161 BZF MYSTEND # IF OFF DO MYSTEND
018537,000038:
018538,000039: 22,3047 41340 -3 CS HOLDFLAG
018539,000040: 22,3050 00006 EXTEND # CHECK HOLDFLAG
018540,000041: 22,3051 62720 BZMF NOGOM2 # IF POS, DO STOPRATE
018541,000042:
018542,000043: 22,3052 06006 NEWANGL TC INTPRET
018543,000044: 22,3053 75160 +1 AXC,1 AXC,2
018544,000045: 22,3054 03320 MIS # COMPUTE THE NEW MATRIX FROM S/C TO
018545,000046: 22,3055 03425 DEL # STABLE MEMBER AXES
018546,000047: 22,3056 77624 CALL
018547,000048: 22,3057 44304 MXM3
018548,000049: 22,3060 45575 VLOAD STADR
018549,000050: 22,3061 50442 STOVL MIS +12D # CALCULATE NEW DESIRED CDU ANGLES
018550,000051: 22,3062 77626 STADR
018551,000052: 22,3063 50450 STOVL MIS +6D
018552,000053: 22,3064 77626 STADR
018553,000054: 22,3065 74456 STORE MIS
018554,000055: 22,3066 45160 AXC,1 CALL
018555,000056: 22,3067 03320 MIS
018556,000057: 22,3070 44647 DCMTOCDU # PICK UP THE NEW CDU ANGLES FROM MATRIX
018557,000058: 22,3071 77634 RTB
018558,000059: 22,3072 45644 V1STO2S
018559,000060: 22,3073 03267 NWNGL17D STORE NCDU # NEW CDU ANGLES (TAG IS USED BY EDIT)
018560,000061: 22,3074 77414 BONCLR EXIT
018561,000062: 22,3075 01215 CALCMAN2
018562,000063: 22,3076 40064 MANUSTAT # TO START MANEUVER
018563,000064: 22,3077 34767 -1 CAF TWO # +0 OTHERWISE
018564,000065: 22,3100 55664 INCRDCDU TS KSPNDX
018565,000066: 22,3101 60000 DOUBLE
018566,000067: 22,3102 55665 TS KDPNDX
018567,000068: 22,3103 51664 INDEX KSPNDX
![]() |
Page 419 |
018569,000070: 22,3104 31666 CA NCDU # NEW DESIRED CDU ANGLES
018570,000071: 22,3105 00006 EXTEND
018571,000072: 22,3106 51664 INDEX KSPNDX
018572,000073: 22,3107 21661 MSU BCDU # INITIAL S/C ANGLE OR PREVIOUS DESIRED
018573,000074: 22,3110 00006 EXTEND # CDU ANGLES
018574,000075: 22,3111 73013 MP QUADROT
018575,000076: 22,3112 51665 INDEX KDPNDX
018576,000077: 22,3113 53576 DXCH DELCDUX # ANGEL INCREMENTS TO BE ADDED TO
018577,000078: 22,3114 51664 INDEX KSPNDX # DCDU EVERY TENTH SEC
018578,000079: 22,3115 31666 CA NCDU # BY LEM DAP
018579,000080: 22,3116 51664 INDEX KSPNDX
018580,000081: 22,3117 57661 XCH BCDU
018581,000082: 22,3120 51665 INDEX KDPNDX
018582,000083: 22,3121 55646 TS CDUXD
018583,000084: 22,3122 11664 CCS KSPNDX
018584,000085: 22,3123 13100 TCF INCRDCDU # LOOP FOR THREE AXES
018585,000086:
018586,000087: 22,3124 00003 RELINT
018587,000088:
018588,000089: # COMPARE PRESENT TIME WITH TIME TO TERMINATE MANEUVER
018589,000090:
018590,000091: 22,3125 03135 TMANUCHK TC TIMECHK
018591,000092: 22,3126 04655 TC POSTJUMP
018592,000093: 22,3127 40143 CADR CONTMANU
018593,000094:
018594,000095: 22,3130 34770 CAF ONE
018595,000096: 22,3131 05233 MANUSTAL TC WAITLIST
018596,000097: 22,3132 E6,1661 EBANK= BCDU
018597,000098: 22,3132 02303 20066 2CADR MANUSTOP
018598,000099:
018599,000100: 22,3134 15205 TCF ENDOFJOB
018600,000101:
018601,000102:
018602,000103: 22,3135 00006 TIMECHK EXTEND
018603,000104: 22,3136 40025 DCS TIME2
018604,000105: 22,3137 53673 DXCH TTEMP
018605,000106: 22,3140 00006 EXTEND
018606,000107: 22,3141 31717 DCA TM
018607,000108: 22,3142 21673 DAS TTEMP
018608,000109: 22,3143 11672 CCS TTEMP
018609,000110: 22,3144 00002 TC Q
018610,000111: 22,3145 13147 TCF +2
018611,000112: 22,3146 13157 TCF 2NDRETRN
018612,000113: 22,3147 11673 CCS TTEMP +1
018613,000114: 22,3150 00002 TC Q
018614,000115: 22,3151 13153 TCF MANUOFF
018615,000116: 22,3152 40000 COM
018616,000117: 22,3153 65016 MANUOFF AD 1SEC
018617,000118: 22,3154 00006 EXTEND
018618,000119: 22,3155 63157 BZMF 2NDRETRN
018619,000120: 22,3156 24002 INCR Q
![]() |
Page 420 |
018621,000122: 22,3157 24002 2NDRETRN INCR Q
018622,000123: 22,3160 16706 TCF Q+1
018623,000124: 22,3161 04655 MYSTEND TC POSTJUMP
018624,000125: 22,3162 74416 CADR FIXDB
018625,000126:
018626,000127: 20,2000 SETLOC MANUSTUF
018627,000128: 20,2000 BANK
018628,000129:
018629,000130: 20,2064 COUNT* $$/KALC
018630,000131: 20,2064 77776 MANUSTAT EXIT # INITIALIZATION ROUTINE FOR AUTO
018631,000132: 20,2065 34767 CAF R67BIT # MANEUVERS
018632,000133: 20,2066 70104 MASK FLAGWRD8
018633,000134: 20,2067 00006 EXTEND
018634,000135: 20,2070 12075 BZF +5
018635,000136: 20,2071 00006 EXTEND # R67 RUNNING
018636,000137: 20,2072 34750 DCA DPOSMAX
018637,000138: 20,2073 53717 DXCH TM
018638,000139: 20,2074 12104 TCF TMDON
018639,000140: 20,2075 00006 EXTEND # NON-R67 PROGRAM
018640,000141: 20,2076 30025 DCA TIME2
018641,000142: 20,2077 21717 DAS TM # TM+T0 MANEUVER COMPLETION TIME
018642,000143: 20,2100 45016 CS 1SEC
018643,000144: 20,2101 54001 TS L
018644,000145: 20,2102 44772 CS ZERO
018645,000146: 20,2103 21717 DAS TM # (TM+T0)-1
018646,000147: 20,2104 00004 TMDON INHINT
018647,000148: 20,2105 44770 CS ONE # ENABLE AUTOPILOT TO PERFORM
018648,000149: 20,2106 55340 TS HOLDFLAG # AUTOMATIC MANEUVERS
018649,000150: 20,2107 40774 CS RATEINDX # SEE IF MANEUVERING AT HIGH RATE
018650,000151: 20,2110 66211 AD SIX
018651,000152: 20,2111 00006 EXTEND
018652,000153: 20,2112 62114 BZMF HIGHGAIN
018653,000154: 20,2113 12117 TCF +4
018654,000155: 20,2114 41501 HIGHGAIN CS RCSFLAGS # IF SO, SET HIGH RATE FLAG (BIT 15 OF
018655,000156: 20,2115 74752 MASK BIT15 # RCSFLAGS)
018656,000157: 20,2116 27501 ADS RCSFLAGS
018657,000158: 20,2117 00006 EXTEND
018658,000159: 20,2120 31711 DCA BRATE # X-AXIS MANEUVER RATE
018659,000160: 20,2121 53526 DXCH WBODY
018660,000161: 20,2122 00006 EXTEND
018661,000162: 20,2123 31713 DCA BRATE +2 # Y-AXIS MANEUVER RATE
018662,000163: 20,2124 53530 DXCH WBODY1
018663,000164: 20,2125 00006 EXTEND
018664,000165: 20,2126 31715 DCA BRATE +4 # Z-AXIS MANEUVER RATE
018665,000166: 20,2127 53532 DXCH WBODY2
018666,000167: 20,2130 31675 CA BIASTEMP +1 # INSERT ATTITUDE ERROR BIASES
018667,000168: 20,2131 55564 TS BIAS # INTO AUTOPILOT
018668,000169: 20,2132 31677 CA BIASTEMP +3
018669,000170: 20,2133 55565 TS BIAS1
018670,000171: 20,2134 31701 CA BIASTEMP +5
![]() |
Page 421 |
018672,000173: 20,2135 55566 TS BIAS2
018673,000174: 20,2136 30025 CA TIME1
018674,000175: 20,2137 65016 AD 1SEC
018675,000176: 20,2140 57671 XCH NEXTIME
018676,000177: 20,2141 04655 TC POSTJUMP
018677,000178: 20,2142 45077 CADR INCRDCDU -1
018678,000179:
018679,000180: 20,2143 00004 CONTMANU INHINT # CONTINUE WITH UPDATE PROCESS
018680,000181: 20,2144 40025 CS TIME1
018681,000182: 20,2145 61671 AD NEXTIME
018682,000183: 20,2146 10000 CCS A
018683,000184: 20,2147 64770 AD ONE
018684,000185: 20,2150 12153 TCF MANUCALL
018685,000186: 20,2151 64752 AD NEGMAX
018686,000187: 20,2152 40000 COM
018687,000188: 20,2153 05223 MANUCALL TC TWIDDLE
018688,000189: 20,2154 02161 ADRES UPDTCALL
018689,000190: 20,2155 00003 RELINT
018690,000191: 20,2156 35016 CAF 1SEC # INCREMENT TIME FOR NEXT UPDATE
018691,000192: 20,2157 27671 ADS NEXTIME
018692,000193: 20,2160 15205 TCF ENDOFJOB
018693,000194:
018694,000195: 20,2161 34767 UPDTCALL CAF R67BIT
018695,000196: 20,2162 70104 MASK FLAGWRD8
018696,000197: 20,2163 00006 EXTEND
018697,000198: 20,2164 12171 BZF +5
018698,000199:
018699,000200: 20,2165 11774 CCS R61CNTR
018700,000201: 20,2166 12170 TCF +2
018701,000202: 20,2167 12176 TCF DOREMIS
018702,000203: 20,2170 55774 TS R61CNTR
018703,000204:
018704,000205: 20,2171 37650 CAF PRIO26
018705,000206: 20,2172 05135 TC FINDVAC # OF STEERING COMMANDS
018706,000207: 20,2173 E6,1661 EBANK= BCDU
018707,000208: 20,2173 03037 44066 2CADR NEWDELHI
018708,000209:
018709,000210: 20,2175 05314 TC TASKOVER
018710,000211:
018711,000212: 20,2176 37650 DOREMIS CAF PRIO26
018712,000213: 20,2177 05135 TC FINDVAC
018713,000214: 20,2200 E6,1661 EBANK= BCDU
018714,000215: 20,2200 02374 74066 2CADR R67RSTRT # MAKE SURE MIS DOES DEGRADE
018715,000216:
018716,000217: 20,2202 05314 TC TASKOVER
018717,000218:
![]() |
Page 422 |
018719,000220: # ROUTINE FOR TERMINATING AUTOMATIC MANEUVERS
018720,000221:
018721,000222: 10,2000 SETLOC KALCMON3
018722,000223: 10,2000 BANK
018723,000224:
018724,000225: 10,2303 COUNT* $$/KALC
018725,000226: 10,2303 04474 MANUSTOP TC STOPYZ
018726,000227: 10,2304 04714 TC IBNKCALL
018727,000228: 10,2305 45165 CADR LOADYZ
018728,000229:
018729,000230: 10,2306 31307 ENDROLL CA CPHI
018730,000231: 10,2307 55646 TS CDUXD # SET CDUXD TO THE COMMANDED OUTER GIMBAL
018731,000232: 10,2310 04463 TC STOPRATE
018732,000233: 10,2311 35053 ENDMANU CAF PRIO14
018733,000234: 10,2312 05135 TC FINDVAC
018734,000235: 10,2313 E6,1774 EBANK= R61CNTR
018735,000236: 10,2313 02141 56066 2CADR ENDMANUV
018736,000237:
018737,000238: 10,2315 05314 TC TASKOVER
018738,000239:
018739,000240: 4000 SETLOC STOPRAT
018740,000241: 4000 BANK
018741,000242: 4463 COUNT* $$/KALC
018742,000243: 4463 34772 STOPRATE CAF ZERO
018743,000244: 4464 55575 TS DELCDUX
018744,000245: 4465 55576 TS DELCDUX +1 # ZERO ROLL INCREMENTAL ANGLES
018745,000246: 4466 55525 TS WBODY # RATE
018746,000247: 4467 55526 TS WBODY +1
018747,000248: 4470 55564 TS BIAS # BIAS
018748,000249:
018749,000250: 4471 44752 CS BIT15 # MAKE SURE HIGH RATE FLAG (BIT 15 OF
018750,000251: 4472 71501 MASK RCSFLAGS # RCSFLAGS) IS RESET.
018751,000252: 4473 55501 TS RCSFLAGS
018752,000253:
018753,000254: 4474 34772 STOPYZ CAF ZERO
018754,000255: 4475 55577 TS DELCDUY # ZERO PITCH, YAW
018755,000256: 4476 55600 TS DELCDUY +1 # INCREMENTAL ANGLES
018756,000257: 4477 55601 TS DELCDUZ
018757,000258: 4500 55602 TS DELCDUZ +1
018758,000259: 4501 55527 TS WBODY1 # RATES
018759,000260: 4502 55530 TS WBODY1 +1
018760,000261: 4503 55531 TS WBODY2
018761,000262: 4504 55532 TS WBODY2 +1
018762,000263: 4505 55565 TS BIAS1 # BIASES
018763,000264: 4506 55566 TS BIAS2
018764,000265: 4507 00002 TC Q
018765,000266:
018766,000267: 20,2000 SETLOC MANUSTUF
018767,000268: 20,2000 BANK
018768,000269:
![]() |
Page 423 |
018770,000271: 20,2203 COUNT* $$/KALC
018771,000272: 20,2203 30032 ZEROEROR CA CDUX # PICK UP CDU ANGLES AND STORE IN
018772,000273: 20,2204 55646 TS CDUXD # CDU DESIRED
018773,000274: 20,2205 30033 CA CDUY
018774,000275: 20,2206 55650 TS CDUYD
018775,000276: 20,2207 30034 CA CDUZ
018776,000277: 20,2210 55652 TS CDUZD
018777,000278: 20,2211 00002 TC Q
018778,000279:
018779,000280: 22,2000 SETLOC KALCMON1
018780,000281: 22,2000 BANK
018781,000282:
018782,000283: 22,3163 COUNT* $$/KALC
018783,000284: 22,3163 31307 LOADCDUD CA CPHI # STORE TERMINAL ANGLES INTO
018784,000285: 22,3164 55646 TS CDUXD # COMMAND ANGLES
018785,000286: 22,3165 31310 LOADYZ CA CTHETA
018786,000287: 22,3166 55650 TS CDUYD
018787,000288: 22,3167 31311 CA CPSI
018788,000289: 22,3170 55652 TS CDUZD
018789,000290: 22,3171 00002 TC Q
End of include-file KALCMANU_STEERING.agc. Parent file is MAIN.agc