Source Code
These source-code files are part of a reconstructed copy of Comanche 72/3 (AKA Manche72 revision 3),
the final, flown mission release of the Apollo Guidance Computer (AGC) Command Module (CM) software
for Apollo 13.
The starting point was the source code of Comanche 72 (itself previously reconstructed). Comanche 72 source code was then modified by incorporating changes known from contemporary documentation to have been made between revisions 72 and 72/3. The resulting code assembles to have identical memory-bank checksums as those specified in NASA drawing 2021153G; this gives reasonably high confidence that the changes that have been made are correct. In places where ambiguity exists, this ambiguity is discussed in "## Reconstruction:" comments. Since no contemporary listings of Comanche 72/3 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
019238,000002: ## Copyright: Public domain.
019239,000003: ## Filename: GROUND_TRACKING_DETERMINATION_PROGRAM_-_P21.agc
019240,000004: ## Purpose: A section of Manche72 revision 3.
019241,000005: ## It is part of the reconstructed source code for the final, flown
019242,000006: ## release of the software for the Command Module's (CM) Apollo
019243,000007: ## Guidance Computer (AGC) for Apollo 13. No original listings
019244,000008: ## of this program are available; instead, this file was recreated
019245,000009: ## from a reconstructed copy of Comanche 072. It has been adapted
019246,000010: ## such that the resulting bugger words exactly match those
019247,000011: ## specified for Manche72 revision 3 in NASA drawing 2021153G,
019248,000012: ## which gives relatively high confidence that the reconstruction
019249,000013: ## is correct.
019250,000014: ## Assembler: yaYUL
019251,000015: ## Contact: Ron Burkey <info@sandroid.org>.
019252,000016: ## Website: www.ibiblio.org/apollo/index.html
019253,000017: ## Mod history: 2024-05-19 MAS Created from Comanche 072.
019254,000018:
019255,000019: # GROUND TRACKING DETERMINATION PROGRAM P21
019256,000020:
019257,000021: # PROGRAM DESCRIPTION
019258,000022: # MOD NO - 1
019259,000023: # MOD BY - N. M. NEVILLE
019260,000024: # FUNCTIONAL DECRIPTION-
019261,000025:
019262,000026: # TO PROVIDE THE ASTRONAUT DETAILS OF THE LM OR CSM GROUND TRACK WITHOUT
019263,000027: # THE NEED FOR GROUND COMMUNICATION (REQUESTED BY DSKY).
019264,000028: # CALLING SEQUENCE-
019265,000029:
019266,000030: # ASTRONAUT REQUEST THROUGH DSKY V37E21E
019267,000031: # SUBROUTINES CALLED-
019268,000032:
019269,000033: # GOPERF4
019270,000034: # GOFLASH
019271,000035: # THISPREC
019272,000036: # OTHPREC
019273,000037: # LAT-LONG
019274,000038: # NORMAL EXIT MODES-
019275,000039:
019276,000040: # ASTRONAUT REQUEST TROUGH DSKY TO TERMINATE PROGRAM V34E
019277,000041: # ALARM OR ABORT EXIT MODES-
019278,000042:
019279,000043: # NONE
019280,000044: # OUTPUT-
019281,000045:
019282,000046: # OCTAL DISPLAY OF OPTION CODE AND VEHICLE WHOSE GROUND TRACK IS TO BE
019283,000047: # COMPUTED
019284,000048: # OPTION CODE 00002
019285,000049: # THIS 00001
019286,000050: # OTHER 00002
019287,000051: # DECIMAL DISPLAY OF TIME TO BE INTEGRATED TO HOURS , MINUTES , SECONDS
019288,000052: # DECIMAL DISPLAY OF LAT,LONG,ALT
019289,000053: # ERASABLE INITIALIZATION REQUIRED
019290,000054:
019291,000055: # AX0 2DEC 4.652459653 E-5 RADIANS %68-69 CONSTANTS"
019292,000056:
019293,000057: # -AY0 2DEC 2.147535898 E-5 RADIANS
019294,000058:
019295,000059: # AZ0 2DEC .7753206164 REVOLUTIONS
019296,000060: # FOR LUNAR ORBITS 504LM VECTOR IS NEEDED
019297,000061:
019298,000062: # 504LM 2DEC -2.700340600 E-5 RADIANS
019299,000063:
019300,000064: # 504LM _2 2DEC -7.514128400 E-4 RADIANS
019301,000065:
019302,000066: # 504LM _4 2DEC _2.553198641 E-4 RADIANS
019303,000067:
019304,000068: # NONE
019305,000069: # DEBRIS
019306,000070:
019307,000071: # CENTRALS-A,Q,L
019308,000072: # OTHER-THOSE USED BY THE ABOVE LISTED SUBROUTINES
019309,000073: # SEE LEMPREC, LAT-LONG
019310,000074:
019311,000075: 33,3776 30,2000 SBANK= LOWSUPER # FOR LOW 2CADR'S.
019312,000076:
019313,000077: 33,3776 BANK 33
019314,000078: 37,2000 SETLOC P20S
019315,000079: 37,2000 BANK
019316,000080:
019317,000081: 37,2001 E4,1715 EBANK= P21TIME
019318,000082: 37,2001 COUNT 24/P21
019319,000083:
019320,000084: 37,2001 35033 PROG21 CAF ONE
019321,000085: 37,2002 55132 TS OPTION2 # ASSUMED VEHICLE IS LM, R2 = 00001
019322,000086: 37,2003 35032 CAF BIT2 # OPTION 2
019323,000087: 37,2004 04676 TC BANKCALL
019324,000088: 37,2005 21055 CADR GOPERF4
019325,000089: 37,2006 04106 TC GOTOPOOH # TERMINATE
019326,000090: 37,2007 02011 TC +2 # PROCEED VALUE OF ASSUMED VEHICLE OK
019327,000091: 37,2010 02003 TC -5 # R2 LOADED THROUGH DSKY
019328,000092: 37,2011 32157 CAF P21ONENN +1 # ZERO DSPTEM
019329,000093: 37,2012 55045 TS DSPTEM1
019330,000094: 37,2013 55046 TS DSPTEM1 +1
019331,000095: 37,2014 32161 P21PROG1 CAF V6N34 # LOAD DESIRED TIME OF LAT-LONG.
019332,000096: 37,2015 04676 TC BANKCALL
019333,000097: 37,2016 20720 CADR GOFLASH
019334,000098: 37,2017 04106 TC GOTOPOOH # TERM
019335,000099: 37,2020 02022 TC +2 # PROCEED VALUES OK
019336,000100: 37,2021 02014 TC -5 # TIME LOADED THROUGH DSKY
019337,000101: 37,2022 06006 TC INTPRET
019338,000102: 37,2023 53145 DLOAD BZE
019339,000103: 37,2024 01046 DSPTEM1
019340,000104: 37,2025 76151 P21PRTM # SET TO INTEG TO PRES TIME
019341,000105: 37,2026 34041 P21PROG2 STCALL TDEC1 # INTEG TO TIME SPECIFIED IN TDEC
019342,000106: 37,2027 27446 INTSTALL
019343,000107: 37,2030 43014 BON SET
019344,000108: 37,2031 01303 P21FLAG
019345,000109: 37,2032 76050 P21CONT # ON...RECYCLE USING BASE VECTOR
019346,000110: 37,2033 01474 VINTFLAG # OFF..1ST PASS CALC BASE VECTOR
019347,000111: 37,2034 70535 SLOAD SR1
019348,000112: 37,2035 01133 OPTION2
019349,000113: 37,2036 43030 BHIZ CLEAR
019350,000114: 37,2037 76041 +2 # ZERO..THIS VEHICLE (CM)
019351,000115: 37,2040 01674 VINTFLAG # ONE...OTHER VEHICLE(LM)
019352,000116: 37,2041 43014 CLEAR CLEAR
019353,000117: 37,2042 01676 DIM0FLAG
019354,000118: 37,2043 01673 INTYPFLG # PRECISION
019355,000119: 37,2044 77624 CALL
019356,000120: 37,2045 27171 INTEGRV # CALCULATE
019357,000121: 37,2046 77650 GOTO # .AND
019358,000122: 37,2047 76071 P21VSAVE # ..SAVE BASE VECTOR
019359,000123: 37,2050 77775 P21CONT VLOAD # RECYCLE..INTEG FROM BASE VECTOR
019360,000124: 37,2051 03605 P21BASER
019361,000125: 37,2052 25535 STOVL RCV # ..POS
019362,000126: 37,2053 03613 P21BASEV
019363,000127: 37,2054 15543 STODL VCV # ..VEL
019364,000128: 37,2055 02316 P21TIME
019365,000129: 37,2056 01517 STORE TET # ..TIME
019366,000130: 37,2057 43014 CLEAR CLEAR
019367,000131: 37,2060 01676 DIM0FLAG
019368,000132: 37,2061 00263 MOONFLAG
019369,000133: 37,2062 53135 SLOAD BZE
019370,000134: 37,2063 03604 P21ORIG
019371,000135: 37,2064 76067 +3 # ZERO = EARTH
019372,000136: 37,2065 77614 SET # ...2 = MOON
019373,000137: 37,2066 00063 MOONFLAG
019374,000138: 37,2067 77624 CALL
019375,000139: 37,2070 27144 INTEGRVS
019376,000140: 37,2071 77745 P21VSAVE DLOAD # SAVE CURRENT BASE VECTOR
019377,000141: 37,2072 00015 TAT
019378,000142: 37,2073 26316 STOVL P21TIME # ..TIME
019379,000143: 37,2074 00017 RATT1
019380,000144: 37,2075 27605 STOVL P21BASER # ..POS B-29 OR B-27
019381,000145: 37,2076 00025 VATT1
019382,000146: 37,2077 03613 STORE P21BASEV # ..VEL B-7 OR B-5
019383,000147: 37,2100 53646 ABVAL SL*
019384,000148: 37,2101 57576 0,2
019385,000149: 37,2102 27623 STOVL P21VEL # /VEL/ FOR N73 DSP
019386,000150: 37,2103 00001 RATT
019387,000151: 37,2104 50256 UNIT DOT
019388,000152: 37,2105 00007 VATT # U(R).(V)
019389,000153: 37,2106 67471 DDV ASIN # U(R).U(V)
019390,000154: 37,2107 03623 P21VEL
019391,000155: 37,2110 03625 STORE P21GAM # SIN-1 U(R).U(V), -90 TO +90
019392,000156: 37,2111 43134 SXA,2 SET
019393,000157: 37,2112 03603 P21ORIG # 0 = EARTH 2 = MOON
019394,000158: 37,2113 01063 P21FLAG
019395,000159: 37,2114 67214 P21DSP CLEAR SLOAD # GENERATE DISPLAY DATA
019396,000160: 37,2115 01663 LUNAFLAG
019397,000161: 37,2116 00050 X2
019398,000162: 37,2117 43054 BZE SET
019399,000163: 37,2120 76122 +2 # 0 = EARTH
019400,000164: 37,2121 01463 LUNAFLAG
019401,000165: 37,2122 77775 VLOAD
019402,000166: 37,2123 00001 RATT
019403,000167: 37,2124 16152 STODL ALPHAV
019404,000168: 37,2125 00015 TAT
019405,000169: 37,2126 45014 CLEAR CALL
019406,000170: 37,2127 00662 ERADFLAG
019407,000171: 37,2130 26376 LAT-LONG
019408,000172: 37,2131 77605 DMP # MPAC = ALT, METERS B-29
019409,000173: 37,2132 36163 K.01
019410,000174: 37,2133 03621 STORE P21ALT # ALT/100 FOR N73 DSP
019411,000175: 37,2134 77776 EXIT
019412,000176: 37,2135 32160 CAF V06N43 # DISPLAY LAT,LONG,ALT
019413,000177: 37,2136 04676 TC BANKCALL # LAT,LONG = REVS B0 BOTH EARTH/MOON
019414,000178: 37,2137 20720 CADR GOFLASH # ALT = METERS B-29 BOTH EARTH/MOON
019415,000179: 37,2140 04106 TC GOTOPOOH # TERM
019416,000180: 37,2141 04106 TC GOTOPOOH
019417,000181: 37,2142 06006 TC INTPRET # V32E RECYCLE
019418,000182: 37,2143 43345 DLOAD DAD
019419,000183: 37,2144 02316 P21TIME
019420,000184: 37,2145 36155 600SEC # 600 SECONDS OR 10 MIN
019421,000185: 37,2146 01046 STORE DSPTEM1
019422,000186: 37,2147 77634 RTB
019423,000187: 37,2150 76014 P21PROG1
019424,000188: 37,2151 52034 P21PRTM RTB GOTO
019425,000189: 37,2152 45510 LOADTIME
019426,000190: 37,2153 76026 P21PROG2
019427,000191: 37,2154 00003 25140 600SEC 2DEC 60000 B-28 # 10 MIN
019428,000192:
019429,000193: 37,2156 00001 P21ONENN OCT 00001 # NEEDED TO DETERMINE VEHICLE
019430,000194: 37,2157 00000 OCT 00000 # TO BE INTEGRATED
019431,000195: 37,2160 01453 V06N43 VN 00643
019432,000196: 37,2161 01442 V6N34 VN 00634
019433,000197: 37,2162 00243 32703 K.01 2DEC .01
019434,000198:
End of include-file GROUND_TRACKING_DETERMINATION_PROGRAM_-_P21.agc. Parent file is MAIN.agc