Source Code
008297,000001: # Copyright: Public domain.
008298,000002: # Filename: AGS_INITIALIZATION.agc
008299,000003: # Purpose: Part of the source code for Luminary 1A build 099.
008300,000004: # It is part of the source code for the Lunar Module's (LM)
008301,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
008302,000006: # Assembler: yaYUL
008303,000007: # Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
008304,000008: # Website: www.ibiblio.org/apollo.
008305,000009: # Pages: 206-210
008306,000010: # Mod history: 2009-05-19 HG Transcribed from page images.
008307,000011:
008308,000012: # This source code has been transcribed or otherwise adapted from
008309,000013: # digitized images of a hardcopy from the MIT Museum. The digitization
008310,000014: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of
008311,000015: # the Museum. Many thanks to both. The images (with suitable reduction
008312,000016: # in storage size and consequent reduction in image quality as well) are
008313,000017: # available online at www.ibiblio.org/apollo. If for some reason you
008314,000018: # find that the images are illegible, contact me at info@sandroid.org
008315,000019: # about getting access to the (much) higher-quality images which Paul
008316,000020: # actually created.
008317,000021:
008318,000022: # Notations on the hardcopy document read, in part:
008319,000023:
008320,000024: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
008321,000025: # 16:27 JULY 14, 1969
008322,000026:
008323,000027: # Page 206
008324,000028:
008325,000029: # PROGRAM NAME: AGS INITIALIZIZATION (R47)
008326,000030:
008327,000031: # WRITTEN BY: RHODE/KILROY/FOLLETT
008328,000032:
008329,000033: # MOD NO.: 0
008330,000034: # DATE: 23 MARCH 1967
008331,000035: # MOD BY: KILROY
008332,000036:
008333,000037: # MOD NO.: 1
008334,000038: # DATE: 28 OCTOBER 1967
008335,000039: # MOD BY: FOLLETT
008336,000040:
008337,000041: # FUNCT. DESC.: (1) TO PROVIDE THE AGS ABORT ELECTRONICS ASSEMBLY (AEA) WITH THE LEM AND CSM STATE VECTORS
008338,000042: # (POSITION,VELOCITY,TIME) IN LEM IMU COORDINATES BY MEANS OF THE LGC DIGITAL DOWNLINK.
008339,000043:
008340,000044: # (2) TO ZERO THE ICDU, LGC, AND AEA GIMBAL ANGLE COUNTER SIMULTANEOUSLY IN ORDER TO ESTABLISH A
008341,000045: # COMMON ZERO REFERENCE FOR THE MEASUREMENT OF GIMBAL (EULER) ANGLES WHICH DEFINE LEM ATTITUDE
008342,000046:
008343,000047: # (3) TO ESTABLISH THE GROUND ELAPSED TIME OF AEA CLOCK ZERO. (IF AN AEA CLOCK ZERO IS
008344,000048: # REQUESTED DURING THIS PROGRAM
008345,000049:
008346,000050: # LOG SECTION: AGS INITIALIZATION
008347,000051:
008348,000052: # CALLING SEQ: PROGRAM IS ENTERED WHEN ASTRONAUT KEYS V47E ON DSKY.
008349,000053: # R47 MAY BE CALLED AT ANY TIME EXCEPT WHEN ANOTHER EXTENDED VERB IS IN PROGRESS
008350,000054:
008351,000055: # SUBROUTINES
008352,000056: # CALLED:
008353,000057:
008354,000058: # NORMAL EXIT: ENDEXT
008355,000059:
008356,000060: # ALARM/ABORT: ALARM -- BAD REFSMMAT -- CODE:220
008357,000061: # OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB.
008358,000062:
008359,000063: # ERASABLES
008360,000064: # USED: SAMPTIME (2) TIME OF :ENTER: KEYSTROKE
008361,000065: # AGSK (2) GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO:
008362,000066: # AGSBUFF (140) CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW)
008363,000067: # AGSWORD (1) PREVIOUS DOWNLIST SAVED HERE
008364,000068:
008365,000069: 05,2447 E4,1600 EBANK= AGSBUFF
008366,000070:
008367,000071: 40,2000 BANK 40
008368,000072: 32,2000 SETLOC R47
008369,000073: 32,2000 BANK
008370,000074:
008371,000075: 32,2005 COUNT* $$/R47
008372,000076:
008373,000077: 32,2005 34737 AGSINIT CAF REFSMBIT
008374,000078: 32,2006 70077 MASK FLAGWRD3 # CHECK REFSMFLG.
008375,000079: 32,2007 10000 CCS A
008376,000080: # Page 207
008377,000081: 32,2010 02017 TC REDSPTEM # REFSMMAT IS OK
008378,000082: 32,2011 05567 TC ALARM # REFSMMAT IS BAD
008379,000083: 32,2012 00220 OCT 220
008380,000084: 32,2013 05472 TC ENDEXT
008381,000085:
008382,000086: 32,2014 00006 NEWAGS EXTEND
008383,000087: 32,2015 30014 DCA SAMPTIME # TIME OF THE :ENTER: KEYSTROKE
008384,000088: 32,2016 53421 DXCH AGSK # BECOMES NEW AEA CLOCK :ZERO:
008385,000089:
008386,000090: 32,2017 00006 REDSPTEM EXTEND
008387,000091: 32,2020 31421 DCA AGSK
008388,000092: 32,2021 53052 DXCH DSPTEMX
008389,000093: 32,2022 32172 AGSDISPK CAF V06N16
008390,000094: 32,2023 04616 TC BANKCALL # R1 = 00XXX. HRS., R2 = 000XX MIN.,
008391,000095: 32,2024 20334 CADR GOMARKF # R3 = 0XX.XX SEC.
008392,000096: 32,2025 05472 TC ENDEXT # TERMINATE RETURN
008393,000097: 32,2026 02036 TC AGSVCALC # PROCEED RETURN
008394,000098: 32,2027 44746 CS BIT6 # IS ENTER VIA A V32
008395,000099: 32,2030 60154 AD MPAC
008396,000100: 32,2031 00006 EXTEND
008397,000101: 32,2032 12014 BZF NEWAGS # YES, USE KEYSTROKE TIME FOR NEW AGSK
008398,000102:
008399,000103: 32,2033 00006 EXTEND # NO, NEW AGSK LOADED VIA V25
008400,000104: 32,2034 31052 DCA DSPTEMX # LOADED INTO DSPTEMX BY KEYING
008401,000105: 32,2035 02016 TC REDSPTEM -1 # V25E FOLLOWED BY HRS.,MINS.,SECS.
008402,000106: # DISPLAY THE NEW K.
008403,000107:
008404,000108: 32,2036 06037 AGSVCALC TC INTPRET
008405,000109: 32,2037 77614 SET
008406,000110: 32,2040 01076 NODOFLAG # DON'T ALLOW V37
008407,000111: 32,2041 77414 SET EXIT
008408,000112: 32,2042 02076 XDSPFLAG
008409,000113:
008410,000114: 32,2043 32172 CAF V06N16
008411,000115: 32,2044 04616 TC BANKCALL
008412,000116: 32,2045 20620 CADR EXDSPRET
008413,000117:
008414,000118: 32,2046 06037 TC INTPRET # EXTRAPOLATE LEM AND CSM STATE VECTORS
008415,000119: 32,2047 77634 RTB # TO THE PRESENT TIME
008416,000120: 32,2050 21573 LOADTIME # LOAD MPAC WITH TIME2,TIME1
008417,000121: 32,2051 34041 STCALL TDEC1 # CALCULATE LEM STATE VECTOR
008418,000122: 32,2052 27057 LEMPREC
008419,000123: 32,2053 77624 CALL # CALL ROUTINE TO CONVERT TO SM COORDS AND
008420,000124: 32,2054 64132 SCALEVEC # PROVIDE PROPER SCALING
008421,000125: 32,2055 16201 STODL AGSBUFF # (LEMPREC AND CSMPREC LEAVE TDEC1 IN TAT)
008422,000126: 32,2056 00015 TAT # TAT = TIME TO WHICH RATT1 AND VATT1 ARE
008423,000127: 32,2057 34041 STCALL TDEC1 # COMPUTED (CSEC SINCE CLOCK START B-28).
008424,000128: 32,2060 27043 CSMPREC # CALCULATE CSM STATE VECTOR FOR SAME TIME
008425,000129: 32,2061 77624 CALL
008426,000130: 32,2062 64132 SCALEVEC
008427,000131: # Page 208
008428,000132: 32,2063 16207 STODL AGSBUFF +6
008429,000133: 32,2064 00015 TAT
008430,000134: 32,2065 56225 DSU DDV # CALCULATE AND STORE THE TIME
008431,000135: 32,2066 02021 AGSK
008432,000136: 32,2067 24175 TSCALE
008433,000137: 32,2070 02215 STORE AGSBUFF +12D
008434,000138: 32,2071 77776 EXIT
008435,000139:
008436,000140: 32,2072 34753 CAF LAGSLIST
008437,000141: 32,2073 54332 TS DNLSTCOD
008438,000142:
008439,000143: 32,2074 32176 CAF 20SEC # DELAY FOR 20 SEC WHILE THE AGS
008440,000144: 32,2075 04616 TC BANKCALL # DOWNLIST IS TRANSMITTED
008441,000145: 32,2076 01735 CADR DELAYJOB
008442,000146:
008443,000147: 32,2077 31324 CA AGSWORD
008444,000148: 32,2100 54332 TS DNLSTCOD # RETURN TO THE OLD DOWNLIST
008445,000149: 32,2101 34744 CAF IMUSEBIT
008446,000150: 32,2102 70074 MASK FLAGWRD0 # CHECK IMUSE FLAG.
008447,000151: 32,2103 10000 CCS A
008448,000152: 32,2104 02122 TC AGSEND # IMU IS BEING USED -- DO NOT ZERO
008449,000153: 32,2105 11304 CKSTALL CCS IMUCADR # CHECK FOR IMU USAGE WHICH AVOIDS THE
008450,000154: 32,2106 12111 TCF +3 # IMUSE BIT: I.E., IMU COMPENSATION.
008451,000155: 32,2107 12115 TCF +6 # FREE. GO AHEAD WITH THE IMU ZERO.
008452,000156: 32,2110 12111 TCF +1
008453,000157: 32,2111 34363 +3 CAF TEN # WAIT .1 SEC AND TRY AGAIN.
008454,000158: 32,2112 04616 TC BANKCALL
008455,000159: 32,2113 01735 CADR DELAYJOB
008456,000160: 32,2114 12105 TCF CKSTALL
008457,000161:
008458,000162: 32,2115 04616 +6 TC BANKCALL # IMU IS NOT IN USE
008459,000163: 32,2116 16714 CADR IMUZERO # SET IMU ZERO DISCRETE FOR 320 MSECS.
008460,000164: 32,2117 04616 TC BANKCALL # WAIT 3 SEC FOR COUNTERS TO INCREMENT
008461,000165: 32,2120 17716 CADR IMUSTALL
008462,000166: 32,2121 02122 TC AGSEND
008463,000167: 32,2122 05516 AGSEND TC DOWNFLAG # ALLOW V37
008464,000168: 32,2123 00054 ADRES NODOFLAG
008465,000169:
008466,000170: 32,2124 32173 CAF V50N16
008467,000171: 32,2125 04616 TC BANKCALL
008468,000172: 32,2126 20342 CADR GOMARK3
008469,000173: 32,2127 15472 TCF ENDEXT
008470,000174: 32,2130 15472 TCF ENDEXT
008471,000175: 32,2131 05472 TC ENDEXT
008472,000176:
008473,000177: 32,2132 64375 SCALEVEC VLOAD MXV
008474,000178: 32,2133 00025 VATT1
008475,000179: 32,2134 01734 REFSMMAT
008476,000180: 32,2135 72561 VXSC VSL2
008477,000181: 32,2136 24202 VSCALE
008478,000182: # Page 209
008479,000183: 32,2137 53255 VAD VAD # THIS SECTION ROUNDS THE VECTOR, AND
008480,000184: 32,2140 24204 AGSRND1 # CORRECTS FOR THE FACT THAT THE AGS
008481,000185: 32,2141 24212 AGSRND2 # IS A 2'S COMPLEMENT MACHINE WHILE THE
008482,000186: 32,2142 77634 RTB # LGC IS A 1'S COMPLEMENT MACHINE.
008483,000187: 32,2143 21772 VECSGNAG
008484,000188: 32,2144 24025 STOVL VATT1
008485,000189: 32,2145 00017 RATT1
008486,000190: 32,2146 74321 MXV VXSC
008487,000191: 32,2147 01734 REFSMMAT
008488,000192: 32,2150 24200 RSCALE
008489,000193: 32,2151 53212 VSL8 VAD # AGAIN THIS SECTION ROUNDS. TWO VECTORS
008490,000194: 32,2152 24204 AGSRND1 # ARE ADDED TO DEFEAT ALSIGNAG IN THE
008491,000195: 32,2153 47055 VAD RTB # CASE OF A HIGH-ORDER ZERO COUPLED WITH
008492,000196: 32,2154 24212 AGSRND2 # A LOW ORDER NEGATIVE PART.
008493,000197: 32,2155 21772 VECSGNAG
008494,000198: 32,2156 77750 LXA,1
008495,000199: 32,2157 00024 VATT1
008496,000200: 32,2160 72130 SXA,1 LXA,1
008497,000201: 32,2161 00155 MPAC +1
008498,000202: 32,2162 00026 VATT1 +2
008499,000203: 32,2163 72130 SXA,1 LXA,1
008500,000204: 32,2164 00160 MPAC +4
008501,000205: 32,2165 00030 VATT1 +4
008502,000206: 32,2166 43530 SXA,1 RVQ
008503,000207: 32,2167 00162 MPAC +6
008504,000208:
008505,000209: 32,2170 4753 LAGSLIST = ONE
008506,000210: 32,2170 00216 V01N14 VN 0114
008507,000211: 32,2171 14400 V50N00A VN 5000
008508,000212: 32,2172 6010 V00N25 EQUALS OCT31
008509,000213: 32,2172 01420 V06N16 VN 0616
008510,000214: 32,2173 4242 V00N34 EQUALS 34DEC
008511,000215: 32,2173 14420 V50N16 VN 5016
008512,000216: 32,2174 03100 00000 TSCALE 2DEC 100 B-10 # CSEC TO SEC SCALE FACTOR
008513,000217: 32,2176 03720 20SEC DEC 2000 B-14
008514,000218: 32,2177 15077 05041 RSCALE 2DEC 3.280839 B-3 # METERS TO FEET SCALE FACTOR
008515,000219: 32,2201 24402 25724 VSCALE 2DEC 3.280839 E2 B-9 # METERS/CS TO FEET/SEC SCALE FACTOR
008516,000220: 32,2203 00000 60000 AGSRND1 2OCT 0000060000
008517,000221: 32,2205 00000 60000 2OCT 0000060000
008518,000222: 32,2207 00000 60000 2OCT 0000060000
008519,000223: 32,2211 00000 37777 AGSRND2 2OCT 0000037777
008520,000224: 32,2213 00000 37777 2OCT 0000037777
008521,000225: 32,2215 S # Page 210
008522,000226: 32,2215 00000 37777 2OCT 0000037777
008523,000227:
008524,000228: 32,2217 30,2000 SBANK= LOWSUPER # FOR SUBSEQUENT LOW 2CADRS.
008525,000229:
End of include-file AGS_INITIALIZATION.agc. Parent file is MAIN.agc