Source Code

008231,000001: # Copyright: Public domain. 008232,000002: # Filename: AGS_INITIALIZATION.agc 008233,000003: # Purpose: A section of Luminary 1C, revision 131. 008234,000004: # It is part of the source code for the Lunar Module's (LM) 008235,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 008236,000006: # This file is intended to be a faithful transcription, except 008237,000007: # that the code format has been changed to conform to the 008238,000008: # requirements of the yaYUL assembler rather than the 008239,000009: # original YUL assembler. 008240,000010: # Reference: pp. 213-217 of 1729.pdf. 008241,000011: # Contact: Ron Burkey <info@sandroid.org>. 008242,000012: # Website: www.ibiblio.org/apollo/index.html 008243,000013: # Mod history: 05/05/03 RSB. Began transcribing. 008244,000014: # 05/14/05 RSB Corrected website reference above. 008245,000015: 008246,000016: # Page 213 008247,000017: 008248,000018: # PROGRAM NAME: AGS INITIALIZIZATION (R47) 008249,000019: 008250,000020: # WRITTEN BY: RHODE/KILROY/FOLLETT 008251,000021: 008252,000022: # MOD NO.: 0 008253,000023: # DATE: 23 MARCH 1967 008254,000024: # MOD BY: KILROY 008255,000025: 008256,000026: # MOD NO.: 1 008257,000027: # DATE: 28 OCTOBER 1967 008258,000028: # MOD BY: FOLLETT 008259,000029: 008260,000030: # FUNCT. DESC.: (1) TO PROVIDE THE AGS ABORT ELECTRONICS ASSEMBLY (AEA) WITH THE LEM AND CSM STATE VECTORS 008261,000031: # (POSITION,VELOCITY,TIME) IN LEM IMU COORDINATES BY MEANS OF THE LGC DIGITAL DOWNLINK. 008262,000032: 008263,000033: # (2) TO ZERO THE ICDU, LGC, AND AEA GIMBAL ANGLE COUNTER SIMULTANEOUSLY IN ORDER TO ESTABLISH A 008264,000034: # COMMON ZERO REFERENCE FOR THE MEASUREMENT OF GIMBAL (EULER) ANGLES WHICH DEFINE LEM ATTITUDE 008265,000035: 008266,000036: # (3) TO ESTABLISH THE GROUND ELAPSED TIME OF AEA CLOCK ZERO. (IF AN AEA CLOCK ZERO IS 008267,000037: # REQUESTED DURING THIS PROGRAM 008268,000038: 008269,000039: # LOG SECTION: AGS INITIALIZATION 008270,000040: 008271,000041: # CALLING SEQ: PROGRAM IS ENTERED WHEN ASTRONAUT KEYS V47E ON DSKY. 008272,000042: # R47 MAY BE CALLED AT ANY TIME EXCEPT WHEN ANOTHER EXTENDED VERB IS IN PROGRESS 008273,000043: 008274,000044: # SUBROUTINES 008275,000045: # CALLED: 008276,000046: 008277,000047: # NORMAL EXIT: ENDEXT 008278,000048: 008279,000049: # ALARM/ABORT: ALARM -- BAD REFSMMAT -- CODE:220 008280,000050: # OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB. 008281,000051: 008282,000052: # ERASABLES 008283,000053: # USED: SAMPTIME (2) TIME OF :ENTER: KEYSTROKE 008284,000054: # AGSK (2) GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO: 008285,000055: # AGSBUFF (140) CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW) 008286,000056: # AGSWORD (1) PREVIOUS DOWNLIST SAVED HERE 008287,000057: 008288,000058: 05,2447 E4,1600 EBANK= AGSBUFF 008289,000059: 008290,000060: 40,2000 BANK 40 008291,000061: 32,2000 SETLOC R47 008292,000062: 32,2000 BANK 008293,000063: 008294,000064: 32,2005 COUNT* $$/R47 008295,000065: 008296,000066: 32,2005 34737 AGSINIT CAF REFSMBIT 008297,000067: 32,2006 70077 MASK FLAGWRD3 # CHECK REFSMFLG. 008298,000068: 32,2007 10000 CCS A 008299,000069: # Page 214 008300,000070: 32,2010 02017 TC REDSPTEM # REFSMMAT IS OK 008301,000071: 32,2011 05567 TC ALARM # REFSMMAT IS BAD 008302,000072: 32,2012 00220 OCT 220 008303,000073: 32,2013 05472 TC ENDEXT 008304,000074: 008305,000075: 32,2014 00006 NEWAGS EXTEND 008306,000076: 32,2015 30014 DCA SAMPTIME # TIME OF THE :ENTER: KEYSTROKE 008307,000077: 32,2016 53421 DXCH AGSK # BECOMES NEW AEA CLOCK :ZERO: 008308,000078: 008309,000079: 32,2017 00006 REDSPTEM EXTEND 008310,000080: 32,2020 31421 DCA AGSK 008311,000081: 32,2021 53051 DXCH DSPTEMX 008312,000082: 32,2022 32172 AGSDISPK CAF V06N16 008313,000083: 32,2023 04616 TC BANKCALL # R1 = 00XXX. HRS., R2 = 000XX MIN., 008314,000084: 32,2024 20334 CADR GOMARKF # R3 = 0XX.XX SEC. 008315,000085: 32,2025 05472 TC ENDEXT # TERMINATE RETURN 008316,000086: 32,2026 02036 TC AGSVCALC # PROCEED RETURN 008317,000087: 32,2027 44746 CS BIT6 # IS ENTER VIA A V32 008318,000088: 32,2030 60154 AD MPAC 008319,000089: 32,2031 00006 EXTEND 008320,000090: 32,2032 12014 BZF NEWAGS # YES, USE KEYSTROKE TIME FOR NEW AGSK 008321,000091: 008322,000092: 32,2033 00006 EXTEND # NO, NEW AGSK LOADED VIA V25 008323,000093: 32,2034 31051 DCA DSPTEMX # LOADED INTO DSPTEMX BY KEYING 008324,000094: 32,2035 02016 TC REDSPTEM -1 # V25E FOLLOWED BY HRS.,MINS.,SECS. 008325,000095: # DISPLAY THE NEW K. 008326,000096: 008327,000097: 32,2036 06042 AGSVCALC TC INTPRET 008328,000098: 32,2037 77614 SET 008329,000099: 32,2040 01076 NODOFLAG # DON'T ALLOW V37 008330,000100: 32,2041 77414 SET EXIT 008331,000101: 32,2042 02076 XDSPFLAG 008332,000102: 008333,000103: 32,2043 32172 CAF V06N16 008334,000104: 32,2044 04616 TC BANKCALL 008335,000105: 32,2045 20621 CADR EXDSPRET 008336,000106: 008337,000107: 32,2046 06042 TC INTPRET # EXTRAPOLATE LEM AND CSM STATE VECTORS 008338,000108: 32,2047 77634 RTB # TO THE PRESENT TIME 008339,000109: 32,2050 21574 LOADTIME # LOAD MPAC WITH TIME2,TIME1 008340,000110: 32,2051 34041 STCALL TDEC1 # CALCULATE LEM STATE VECTOR 008341,000111: 32,2052 27056 LEMPREC 008342,000112: 32,2053 77624 CALL # CALL ROUTINE TO CONVERT TO SM COORDS AND 008343,000113: 32,2054 64132 SCALEVEC # PROVIDE PROPER SCALING 008344,000114: 32,2055 16201 STODL AGSBUFF # (LEMPREC AND CSMPREC LEAVE TDEC1 IN TAT) 008345,000115: 32,2056 00015 TAT # TAT = TIME TO WHICH RATT1 AND VATT1 ARE 008346,000116: 32,2057 34041 STCALL TDEC1 # COMPUTED (CSEC SINCE CLOCK START B-28). 008347,000117: 32,2060 27042 CSMPREC # CALCULATE CSM STATE VECTOR FOR SAME TIME 008348,000118: 32,2061 77624 CALL 008349,000119: 32,2062 64132 SCALEVEC 008350,000120: # Page 215 008351,000121: 32,2063 16207 STODL AGSBUFF +6 008352,000122: 32,2064 00015 TAT 008353,000123: 32,2065 56225 DSU DDV # CALCULATE AND STORE THE TIME 008354,000124: 32,2066 02021 AGSK 008355,000125: 32,2067 24175 TSCALE 008356,000126: 32,2070 02215 STORE AGSBUFF +12D 008357,000127: 32,2071 77776 EXIT 008358,000128: 008359,000129: 32,2072 34753 CAF LAGSLIST 008360,000130: 32,2073 54333 TS DNLSTCOD 008361,000131: 008362,000132: 32,2074 32176 CAF 20SEC # DELAY FOR 20 SEC WHILE THE AGS 008363,000133: 32,2075 04616 TC BANKCALL # DOWNLIST IS TRANSMITTED 008364,000134: 32,2076 01736 CADR DELAYJOB 008365,000135: 008366,000136: 32,2077 31321 CA AGSWORD 008367,000137: 32,2100 54333 TS DNLSTCOD # RETURN TO THE OLD DOWNLIST 008368,000138: 32,2101 34744 CAF IMUSEBIT 008369,000139: 32,2102 70074 MASK FLAGWRD0 # CHECK IMUSE FLAG. 008370,000140: 32,2103 10000 CCS A 008371,000141: 32,2104 02122 TC AGSEND # IMU IS BEING USED -- DO NOT ZERO 008372,000142: 32,2105 11301 CKSTALL CCS IMUCADR # CHECK FOR IMU USAGE WHICH AVOIDS THE 008373,000143: 32,2106 12111 TCF +3 # IMUSE BIT: I.E., IMU COMPENSATION. 008374,000144: 32,2107 12115 TCF +6 # FREE. GO AHEAD WITH THE IMU ZERO. 008375,000145: 32,2110 12111 TCF +1 008376,000146: 32,2111 34363 +3 CAF TEN # WAIT .1 SEC AND TRY AGAIN. 008377,000147: 32,2112 04616 TC BANKCALL 008378,000148: 32,2113 01736 CADR DELAYJOB 008379,000149: 32,2114 12105 TCF CKSTALL 008380,000150: 008381,000151: 32,2115 04616 +6 TC BANKCALL # IMU IS NOT IN USE 008382,000152: 32,2116 16705 CADR IMUZERO # SET IMU ZERO DISCRETE FOR 320 MSECS. 008383,000153: 32,2117 04616 TC BANKCALL # WAIT 3 SEC FOR COUNTERS TO INCREMENT 008384,000154: 32,2120 17707 CADR IMUSTALL 008385,000155: 32,2121 02122 TC AGSEND 008386,000156: 32,2122 05516 AGSEND TC DOWNFLAG # ALLOW V37 008387,000157: 32,2123 00054 ADRES NODOFLAG 008388,000158: 008389,000159: 32,2124 32173 CAF V50N16 008390,000160: 32,2125 04616 TC BANKCALL 008391,000161: 32,2126 20342 CADR GOMARK3 008392,000162: 32,2127 15472 TCF ENDEXT 008393,000163: 32,2130 15472 TCF ENDEXT 008394,000164: 32,2131 05472 TC ENDEXT 008395,000165: 008396,000166: 32,2132 64375 SCALEVEC VLOAD MXV 008397,000167: 32,2133 00025 VATT1 008398,000168: 32,2134 01734 REFSMMAT 008399,000169: 32,2135 72561 VXSC VSL2 008400,000170: 32,2136 24202 VSCALE 008401,000171: # Page 216 008402,000172: 32,2137 53255 VAD VAD # THIS SECTION ROUNDS THE VECTOR, AND 008403,000173: 32,2140 24204 AGSRND1 # CORRECTS FOR THE FACT THAT THE AGS 008404,000174: 32,2141 24212 AGSRND2 # IS A 2'S COMPLEMENT MACHINE WHILE THE 008405,000175: 32,2142 77634 RTB # LGC IS A 1'S COMPLEMENT MACHINE. 008406,000176: 32,2143 21773 VECSGNAG 008407,000177: 32,2144 24025 STOVL VATT1 008408,000178: 32,2145 00017 RATT1 008409,000179: 32,2146 74321 MXV VXSC 008410,000180: 32,2147 01734 REFSMMAT 008411,000181: 32,2150 24200 RSCALE 008412,000182: 32,2151 53212 VSL8 VAD # AGAIN THIS SECTION ROUNDS. TWO VECTORS 008413,000183: 32,2152 24204 AGSRND1 # ARE ADDED TO DEFEAT ALSIGNAG IN THE 008414,000184: 32,2153 47055 VAD RTB # CASE OF A HIGH-ORDER ZERO COUPLED WITH 008415,000185: 32,2154 24212 AGSRND2 # A LOW ORDER NEGATIVE PART. 008416,000186: 32,2155 21773 VECSGNAG 008417,000187: 32,2156 77750 LXA,1 008418,000188: 32,2157 00024 VATT1 008419,000189: 32,2160 72130 SXA,1 LXA,1 008420,000190: 32,2161 00155 MPAC +1 008421,000191: 32,2162 00026 VATT1 +2 008422,000192: 32,2163 72130 SXA,1 LXA,1 008423,000193: 32,2164 00160 MPAC +4 008424,000194: 32,2165 00030 VATT1 +4 008425,000195: 32,2166 43530 SXA,1 RVQ 008426,000196: 32,2167 00162 MPAC +6 008427,000197: 008428,000198: 32,2170 4753 LAGSLIST = ONE 008429,000199: 32,2170 00216 V01N14 VN 0114 008430,000200: 32,2171 14400 V50N00A VN 5000 008431,000201: 32,2172 6010 V00N25 EQUALS OCT31 008432,000202: 32,2172 01420 V06N16 VN 0616 008433,000203: 32,2173 4242 V00N34 EQUALS 34DEC 008434,000204: 32,2173 14420 V50N16 VN 5016 008435,000205: 32,2174 03100 00000 TSCALE 2DEC 100 B-10 # CSEC TO SEC SCALE FACTOR 008436,000206: 32,2176 03720 20SEC DEC 2000 B-14 008437,000207: 32,2177 15077 05041 RSCALE 2DEC 3.280839 B-3 # METERS TO FEET SCALE FACTOR 008438,000208: 32,2201 24402 25724 VSCALE 2DEC 3.280839 E2 B-9 # METERS/CS TO FEET/SEC SCALE FACTOR 008439,000209: 32,2203 00000 60000 AGSRND1 2OCT 0000060000 008440,000210: 32,2205 00000 60000 2OCT 0000060000 008441,000211: 32,2207 00000 60000 2OCT 0000060000 008442,000212: 32,2211 00000 37777 AGSRND2 2OCT 0000037777 008443,000213: 32,2213 00000 37777 2OCT 0000037777 008444,000214: # Page 217 008445,000215: 32,2215 00000 37777 2OCT 0000037777 008446,000216: 008447,000217: 32,2217 30,2000 SBANK= LOWSUPER # FOR SUBSEQUENT LOW 2CADRS. 008448,000218: End of include-file AGS_INITIALIZATION.agc. Parent file is MAIN.agc