|
| 1 | +# Copyright: Public domain. |
| 2 | +# Filename: AGS_INITIALIZATION.agc |
| 3 | +# Purpose: Part of the source code for Luminary 1A build 099. |
| 4 | +# It is part of the source code for the Lunar Module's (LM) |
| 5 | +# Apollo Guidance Computer (AGC), for Apollo 11. |
| 6 | +# Assembler: yaYUL |
| 7 | +# Contact: Hartmuth Gutsche <[email protected]>. |
| 8 | +# Website: www.ibiblio.org/apollo. |
| 9 | +# Pages: 206-210 |
| 10 | +# Mod history: 2009-05-19 HG Transcribed from page images. |
| 11 | +# |
| 12 | +# This source code has been transcribed or otherwise adapted from |
| 13 | +# digitized images of a hardcopy from the MIT Museum. The digitization |
| 14 | +# was performed by Paul Fjeld, and arranged for by Deborah Douglas of |
| 15 | +# the Museum. Many thanks to both. The images (with suitable reduction |
| 16 | +# in storage size and consequent reduction in image quality as well) are |
| 17 | +# available online at www.ibiblio.org/apollo. If for some reason you |
| 18 | +# find that the images are illegible, contact me at [email protected] |
| 19 | +# about getting access to the (much) higher-quality images which Paul |
| 20 | +# actually created. |
| 21 | +# |
| 22 | +# Notations on the hardcopy document read, in part: |
| 23 | +# |
| 24 | +# Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 |
| 25 | +# 16:27 JULY 14, 1969 |
| 26 | + |
| 27 | +# Page 206 |
| 28 | + |
| 29 | +# PROGRAM NAME: AGS INITIALIZIZATION (R47) |
| 30 | +# |
| 31 | +# WRITTEN BY: RHODE/KILROY/FOLLETT |
| 32 | +# |
| 33 | +# MOD NO.: 0 |
| 34 | +# DATE: 23 MARCH 1967 |
| 35 | +# MOD BY: KILROY |
| 36 | +# |
| 37 | +# MOD NO.: 1 |
| 38 | +# DATE: 28 OCTOBER 1967 |
| 39 | +# MOD BY: FOLLETT |
| 40 | +# |
| 41 | +# FUNCT. DESC.: (1) TO PROVIDE THE AGS ABORT ELECTRONICS ASSEMBLY (AEA) WITH THE LEM AND CSM STATE VECTORS |
| 42 | +# (POSITION,VELOCITY,TIME) IN LEM IMU COORDINATES BY MEANS OF THE LGC DIGITAL DOWNLINK. |
| 43 | +# |
| 44 | +# (2) TO ZERO THE ICDU, LGC, AND AEA GIMBAL ANGLE COUNTER SIMULTANEOUSLY IN ORDER TO ESTABLISH A |
| 45 | +# COMMON ZERO REFERENCE FOR THE MEASUREMENT OF GIMBAL (EULER) ANGLES WHICH DEFINE LEM ATTITUDE |
| 46 | +# |
| 47 | +# (3) TO ESTABLISH THE GROUND ELAPSED TIME OF AEA CLOCK ZERO. (IF AN AEA CLOCK ZERO IS |
| 48 | +# REQUESTED DURING THIS PROGRAM |
| 49 | +# |
| 50 | +# LOG SECTION: AGS INITIALIZATION |
| 51 | +# |
| 52 | +# CALLING SEQ: PROGRAM IS ENTERED WHEN ASTRONAUT KEYS V47E ON DSKY. |
| 53 | +# R47 MAY BE CALLED AT ANY TIME EXCEPT WHEN ANOTHER EXTENDED VERB IS IN PROGRESS |
| 54 | +# |
| 55 | +# SUBROUTINES |
| 56 | +# CALLED: |
| 57 | +# |
| 58 | +# NORMAL EXIT: ENDEXT |
| 59 | +# |
| 60 | +# ALARM/ABORT: ALARM -- BAD REFSMMAT -- CODE:220 |
| 61 | +# OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB. |
| 62 | +# |
| 63 | +# ERASABLES |
| 64 | +# USED: SAMPTIME (2) TIME OF :ENTER: KEYSTROKE |
| 65 | +# AGSK (2) GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO: |
| 66 | +# AGSBUFF (140) CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW) |
| 67 | +# AGSWORD (1) PREVIOUS DOWNLIST SAVED HERE |
| 68 | + |
| 69 | + EBANK= AGSBUFF |
| 70 | + |
| 71 | + BANK 40 |
| 72 | + SETLOC R47 |
| 73 | + BANK |
| 74 | + |
| 75 | + COUNT* $$/R47 |
| 76 | + |
| 77 | +AGSINIT CAF REFSMBIT |
| 78 | + MASK FLAGWRD3 # CHECK REFSMFLG. |
| 79 | + CCS A |
| 80 | +# Page 207 |
| 81 | + TC REDSPTEM # REFSMMAT IS OK |
| 82 | + TC ALARM # REFSMMAT IS BAD |
| 83 | + OCT 220 |
| 84 | + TC ENDEXT |
| 85 | + |
| 86 | +NEWAGS EXTEND |
| 87 | + DCA SAMPTIME # TIME OF THE :ENTER: KEYSTROKE |
| 88 | + DXCH AGSK # BECOMES NEW AEA CLOCK :ZERO: |
| 89 | + |
| 90 | +REDSPTEM EXTEND |
| 91 | + DCA AGSK |
| 92 | + DXCH DSPTEMX |
| 93 | +AGSDISPK CAF V06N16 |
| 94 | + TC BANKCALL # R1 = 00XXX. HRS., R2 = 000XX MIN., |
| 95 | + CADR GOMARKF # R3 = 0XX.XX SEC. |
| 96 | + TC ENDEXT # TERMINATE RETURN |
| 97 | + TC AGSVCALC # PROCEED RETURN |
| 98 | + CS BIT6 # IS ENTER VIA A V32 |
| 99 | + AD MPAC |
| 100 | + EXTEND |
| 101 | + BZF NEWAGS # YES, USE KEYSTROKE TIME FOR NEW AGSK |
| 102 | + |
| 103 | + EXTEND # NO, NEW AGSK LOADED VIA V25 |
| 104 | + DCA DSPTEMX # LOADED INTO DSPTEMX BY KEYING |
| 105 | + TC REDSPTEM -1 # V25E FOLLOWED BY HRS.,MINS.,SECS. |
| 106 | + # DISPLAY THE NEW K. |
| 107 | + |
| 108 | +AGSVCALC TC INTPRET |
| 109 | + SET |
| 110 | + NODOFLAG # DON'T ALLOW V37 |
| 111 | + SET EXIT |
| 112 | + XDSPFLAG |
| 113 | + |
| 114 | + CAF V06N16 |
| 115 | + TC BANKCALL |
| 116 | + CADR EXDSPRET |
| 117 | + |
| 118 | + TC INTPRET # EXTRAPOLATE LEM AND CSM STATE VECTORS |
| 119 | + RTB # TO THE PRESENT TIME |
| 120 | + LOADTIME # LOAD MPAC WITH TIME2,TIME1 |
| 121 | + STCALL TDEC1 # CALCULATE LEM STATE VECTOR |
| 122 | + LEMPREC |
| 123 | + CALL # CALL ROUTINE TO CONVERT TO SM COORDS AND |
| 124 | + SCALEVEC # PROVIDE PROPER SCALING |
| 125 | + STODL AGSBUFF # (LEMPREC AND CSMPREC LEAVE TDEC1 IN TAT) |
| 126 | + TAT # TAT = TIME TO WHICH RATT1 AND VATT1 ARE |
| 127 | + STCALL TDEC1 # COMPUTED (CSEC SINCE CLOCK START B-28). |
| 128 | + CSMPREC # CALCULATE CSM STATE VECTOR FOR SAME TIME |
| 129 | + CALL |
| 130 | + SCALEVEC |
| 131 | +# Page 208 |
| 132 | + STODL AGSBUFF +6 |
| 133 | + TAT |
| 134 | + DSU DDV # CALCULATE AND STORE THE TIME |
| 135 | + AGSK |
| 136 | + TSCALE |
| 137 | + STORE AGSBUFF +12D |
| 138 | + EXIT |
| 139 | + |
| 140 | + CAF LAGSLIST |
| 141 | + TS DNLSTCOD |
| 142 | + |
| 143 | + CAF 20SEC # DELAY FOR 20 SEC WHILE THE AGS |
| 144 | + TC BANKCALL # DOWNLIST IS TRANSMITTED |
| 145 | + CADR DELAYJOB |
| 146 | + |
| 147 | + CA AGSWORD |
| 148 | + TS DNLSTCOD # RETURN TO THE OLD DOWNLIST |
| 149 | + CAF IMUSEBIT |
| 150 | + MASK FLAGWRD0 # CHECK IMUSE FLAG. |
| 151 | + CCS A |
| 152 | + TC AGSEND # IMU IS BEING USED -- DO NOT ZERO |
| 153 | +CKSTALL CCS IMUCADR # CHECK FOR IMU USAGE WHICH AVOIDS THE |
| 154 | + TCF +3 # IMUSE BIT: I.E., IMU COMPENSATION. |
| 155 | + TCF +6 # FREE. GO AHEAD WITH THE IMU ZERO. |
| 156 | + TCF +1 |
| 157 | + +3 CAF TEN # WAIT .1 SEC AND TRY AGAIN. |
| 158 | + TC BANKCALL |
| 159 | + CADR DELAYJOB |
| 160 | + TCF CKSTALL |
| 161 | + |
| 162 | + +6 TC BANKCALL # IMU IS NOT IN USE |
| 163 | + CADR IMUZERO # SET IMU ZERO DISCRETE FOR 320 MSECS. |
| 164 | + TC BANKCALL # WAIT 3 SEC FOR COUNTERS TO INCREMENT |
| 165 | + CADR IMUSTALL |
| 166 | + TC AGSEND |
| 167 | +AGSEND TC DOWNFLAG # ALLOW V37 |
| 168 | + ADRES NODOFLAG |
| 169 | + |
| 170 | + CAF V50N16 |
| 171 | + TC BANKCALL |
| 172 | + CADR GOMARK3 |
| 173 | + TCF ENDEXT |
| 174 | + TCF ENDEXT |
| 175 | + TC ENDEXT |
| 176 | + |
| 177 | +SCALEVEC VLOAD MXV |
| 178 | + VATT1 |
| 179 | + REFSMMAT |
| 180 | + VXSC VSL2 |
| 181 | + VSCALE |
| 182 | +# Page 209 |
| 183 | + VAD VAD # THIS SECTION ROUNDS THE VECTOR, AND |
| 184 | + AGSRND1 # CORRECTS FOR THE FACT THAT THE AGS |
| 185 | + AGSRND2 # IS A 2'S COMPLEMENT MACHINE WHILE THE |
| 186 | + RTB # LGC IS A 1'S COMPLEMENT MACHINE. |
| 187 | + VECSGNAG |
| 188 | + STOVL VATT1 |
| 189 | + RATT1 |
| 190 | + MXV VXSC |
| 191 | + REFSMMAT |
| 192 | + RSCALE |
| 193 | + VSL8 VAD # AGAIN THIS SECTION ROUNDS. TWO VECTORS |
| 194 | + AGSRND1 # ARE ADDED TO DEFEAT ALSIGNAG IN THE |
| 195 | + VAD RTB # CASE OF A HIGH-ORDER ZERO COUPLED WITH |
| 196 | + AGSRND2 # A LOW ORDER NEGATIVE PART. |
| 197 | + VECSGNAG |
| 198 | + LXA,1 |
| 199 | + VATT1 |
| 200 | + SXA,1 LXA,1 |
| 201 | + MPAC +1 |
| 202 | + VATT1 +2 |
| 203 | + SXA,1 LXA,1 |
| 204 | + MPAC +4 |
| 205 | + VATT1 +4 |
| 206 | + SXA,1 RVQ |
| 207 | + MPAC +6 |
| 208 | + |
| 209 | +LAGSLIST = ONE |
| 210 | +V01N14 VN 0114 |
| 211 | +V50N00A VN 5000 |
| 212 | +V00N25 EQUALS OCT31 |
| 213 | +V06N16 VN 0616 |
| 214 | +V00N34 EQUALS 34DEC |
| 215 | +V50N16 VN 5016 |
| 216 | +TSCALE 2DEC 100 B-10 # CSEC TO SEC SCALE FACTOR |
| 217 | +20SEC DEC 2000 |
| 218 | +RSCALE 2DEC 3.280839 B-3 # METERS TO FEET SCALE FACTOR |
| 219 | +VSCALE 2DEC 3.280839 E2 B-9 # METERS/CS TO FEET/SEC SCALE FACTOR |
| 220 | +AGSRND1 2OCT 0000060000 |
| 221 | + 2OCT 0000060000 |
| 222 | + 2OCT 0000060000 |
| 223 | +AGSRND2 2OCT 0000037777 |
| 224 | + 2OCT 0000037777 |
| 225 | +S# Page 210 |
| 226 | + 2OCT 0000037777 |
| 227 | + |
| 228 | + SBANK= LOWSUPER # FOR SUBSEQUENT LOW 2CADRS. |
| 229 | + |
0 commit comments