Source Code
These source-code files are part of a reconstructed copy of Luminary 69/2,
the flown, final release of the Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction is based on the source code of Luminary 69 — i.e., the initial, unflown version, "revision 0" — of which a contemporary listing was available. The code was then updated by incorporating the differences between Luminary 69 and Luminary 69/2, known from other contemporary documentation. The only such difference is the implementation in Luminary 69/2 of the "R-2 Lunar Potential Model", the source code for which was taken from program Luminary 99/1 (Apollo 11 LM), of which a contemporary listing was also available. Finally, the now-reconstructed Luminary 69/2 was then validated by assembling it to executable form and verifying that its memory banks had the correct checksums, known from still other contemporary documentation. Note that page numbers in the reconstructed code match those in the original Luminary 69 program listing, or in the ORBITAL INTEGRATION log section, in Luminary 99/1. Page numbers would certainly differ somewhat in a contemporary Luminary 69/2 listing. Moreover, annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change in Luminary 69/2 relative to Luminary 69. Here's a guide to the Apollo documentation referenced in those annotations:
|
056342,000002: ## Copyright: Public domain.
056343,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
056344,000004: ## Purpose: A section of LUM69 revision 2.
056345,000005: ## It is part of the reconstructed source code for the flown
056346,000006: ## version of the flight software for the Lunar Module's (LM)
056347,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
056348,000008: ## been recreated from a copy of Luminary revsion 069, using
056349,000009: ## changes present in Luminary 099 which were described in
056350,000010: ## Luminary memos 75 and 78. The code has been adapted such
056351,000011: ## that the resulting bugger words exactly match those specified
056352,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
056353,000013: ## relatively high confidence that the reconstruction is correct.
056354,000014: ## Reference: pp. 1303-1331
056355,000015: ## Assembler: yaYUL
056356,000016: ## Contact: Ron Burkey <info@sandroid.org>.
056357,000017: ## Website: www.ibiblio.org/apollo/index.html
056358,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
056359,000019:
Page 1303 |
056361,000021: 5457 BLOCK 02
056362,000022: 4000 SETLOC FFTAG3
056363,000023: 4000 BANK
056364,000024:
056365,000025: 5457 E3,1471 EBANK= COMMAND
056366,000026:
056367,000027: # FIXED-FIXED ROUTINES.
056368,000028:
056369,000029: 5457 COUNT* $$/IMODE
056370,000030: 5457 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
056371,000031: 5460 54032 TS CDUX
056372,000032: 5461 54033 TS CDUY
056373,000033: 5462 54034 TS CDUZ
056374,000034: 5463 00002 TC Q
056375,000035:
056376,000036: 5464 4743 SPSCODE = BIT9
056377,000037:
Page 1304 |
056379,000039: # IMU ZEROING ROUTINE.
056380,000040:
056381,000041: 11,3752 BANK 11
056382,000042: 07,2000 SETLOC MODESW
056383,000043: 07,2000 BANK
056384,000044:
056385,000045: 07,2667 COUNT* $$/IMODE
056386,000046: 07,2667 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
056387,000047: 07,2670 41036 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
056388,000048: 07,2671 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
056389,000049: 07,2672 10000 CCS A
056390,000050: 07,2673 12677 TCF IMUZEROA
056391,000051:
056392,000052: 07,2674 05567 TC ALARM # IF SO.
056393,000053: 07,2675 00206 OCT 00206
056394,000054:
056395,000055: 07,2676 13632 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
056396,000056:
056397,000057: 07,2677 03626 IMUZEROA TC CAGETSTJ
056398,000058: # DELETE
056399,000059: 07,2700 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056400,000060: 07,2701 74773 MASK SUPER011 # BIT5 FOR GROUND
056401,000061: 07,2702 27303 ADS IMODES33
056402,000062:
056403,000063: 07,2703 41302 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
056404,000064: 07,2704 75742 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
056405,000065: 07,2705 27302 ADS IMODES30
056406,000066:
056407,000067: 07,2706 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
056408,000068: 07,2707 00006 EXTEND # COUNTER DISABLED.
056409,000069: 07,2710 03012 WAND CHAN12
056410,000070:
056411,000071: 07,2711 03241 TC NOATTOFF # TURN OFF NO ATT LAMP.
056412,000072:
056413,000073: 07,2712 34747 CAF BIT5
056414,000074: 07,2713 00006 EXTEND
056415,000075: 07,2714 05012 WOR CHAN12
056416,000076:
056417,000077: 07,2715 05457 TC ZEROICDU
056418,000078: 07,2716 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
056419,000079: 07,2717 05203 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
056420,000080: 07,2720 E3,1474 EBANK= CDUIND
056421,000081: 07,2720 02732 16103 2CADR IMUZERO2
056422,000082:
056423,000083: 07,2722 41302 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
056424,000084: 07,2723 74743 MASK BIT9
056425,000085: 07,2724 10000 CCS A
056426,000086: 07,2725 12730 TCF MODEEXIT
Page 1305 |
056428,000088: 07,2726 05567 TC ALARM
056429,000089: 07,2727 00210 OCT 210
056430,000090:
056431,000091: 07,2730 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
056432,000092: 07,2731 14631 TCF SWRETURN
056433,000093:
056434,000094: 07,2732 03614 IMUZERO2 TC CAGETEST
056435,000095: 07,2733 05457 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
056436,000096:
056437,000097: 07,2734 44747 CS BIT5 # REMOVE ZERO DISCRETE.
056438,000098: 07,2735 00006 EXTEND
056439,000099: 07,2736 03012 WAND CHAN12
056440,000100:
056441,000101: 07,2737 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
056442,000102: 07,2740 05224 TC VARDELAY
056443,000103:
056444,000104: 07,2741 03614 IMUZERO3 TC CAGETEST
056445,000105: 07,2742 45742 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
056446,000106: 07,2743 71302 MASK IMODES30
056447,000107: 07,2744 55302 TS IMODES30
056448,000108:
056449,000109: 07,2745 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
056450,000110: 07,2746 71303 MASK IMODES33 # BIT5 FOR GROUND
056451,000111: 07,2747 55303 TS IMODES33
056452,000112:
056453,000113: 07,2750 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
056454,000114: 07,2751 14703 CADR SETISSW # PRESENT.
056455,000115:
056456,000116: 07,2752 13604 TCF ENDIMU
056457,000117:
Page 1306 |
056459,000119: # IMU COARSE ALIGN MODE.
056460,000120:
056461,000121: 07,2753 00004 IMUCOARS INHINT
056462,000122: 07,2754 03626 TC CAGETSTJ
056463,000123: 07,2755 03117 TC SETCOARS
056464,000124:
056465,000125: 07,2756 36241 CAF SIX
056466,000126: 07,2757 05203 TC WAITLIST
056467,000127: 07,2760 E3,1474 EBANK= CDUIND
056468,000128: 07,2760 02763 16103 2CADR COARS
056469,000129:
056470,000130: 07,2762 12730 TCF MODEEXIT
056471,000131:
056472,000132: 07,2763 03614 COARS TC CAGETEST
056473,000133: 07,2764 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
056474,000134: 07,2765 00006 EXTEND
056475,000135: 07,2766 05012 WOR CHAN12
056476,000136:
056477,000137: 07,2767 34752 CAF TWO # SET CDU INDICATOR
056478,000138: 07,2770 55474 COARS1 TS CDUIND
056479,000139:
056480,000140: 07,2771 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
056481,000141: 07,2772 30321 CA THETAD # COMPLEMENT FORM
056482,000142: 07,2773 00006 EXTEND
056483,000143: 07,2774 51474 INDEX CDUIND
056484,000144: 07,2775 20032 MSU CDUX
056485,000145: 07,2776 00006 EXTEND
056486,000146: 07,2777 74737 MP BIT13 # SHIFT RIGHT 2
056487,000147: 07,3000 56001 XCH L # ROUND
056488,000148: 07,3001 60000 DOUBLE
056489,000149: 07,3002 54061 TS ITEMP1
056490,000150: 07,3003 13005 TCF +2
056491,000151: 07,3004 26001 ADS L
056492,000152:
056493,000153: 07,3005 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
056494,000154: 07,3006 23471 LXCH COMMAND
056495,000155: 07,3007 11474 CCS CDUIND
056496,000156: 07,3010 02770 TC COARS1
056497,000157:
056498,000158: 07,3011 34752 CAF TWO # MINIMUM OF 4 MS WAIT
056499,000159: 07,3012 05224 TC VARDELAY
056500,000160:
Page 1307 |
056502,000162: 07,3013 03614 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
056503,000163: 07,3014 54061 TS ITEMP1 # SETS TO +0.
056504,000164: 07,3015 34752 CAF TWO # SET CDU INDICATOR
056505,000165: 07,3016 55474 +3 TS CDUIND
056506,000166:
056507,000167: 07,3017 51474 INDEX CDUIND
056508,000168: 07,3020 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
056509,000169: 07,3021 03025 TC COMPOS # GREATER THAN MAX ALLOWED
056510,000170: 07,3022 03034 TC NEXTCDU +1
056511,000171: 07,3023 03072 TC COMNEG
056512,000172: 07,3024 03034 TC NEXTCDU +1
056513,000173:
056514,000174: 07,3025 63720 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
056515,000175: 07,3026 00006 EXTEND # MINUS ONE
056516,000176: 07,3027 63102 BZMF COMZERO
056517,000177: 07,3030 51474 INDEX CDUIND
056518,000178: 07,3031 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
056519,000179: 07,3032 43721 CS -COMMAX- # ALLOWED
056520,000180:
056521,000181: 07,3033 24061 NEXTCDU INCR ITEMP1
056522,000182: 07,3034 64754 AD NEG0
056523,000183: 07,3035 51474 INDEX CDUIND
056524,000184: 07,3036 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
056525,000185:
056526,000186: 07,3037 11474 CCS CDUIND
056527,000187: 07,3040 03016 TC COARS2 +3
056528,000188:
056529,000189: 07,3041 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
056530,000190: 07,3042 13106 TCF SENDPULS
056531,000191:
056532,000192: 07,3043 05221 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
056533,000193: 07,3044 00226 DEC 150 B-14
056534,000194:
056535,000195: 07,3045 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
056536,000196: 07,3046 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
056537,000197: 07,3047 50000 INDEX A
056538,000198: 07,3050 30032 CA CDUX
056539,000199: 07,3051 00006 EXTEND
056540,000200: 07,3052 50061 INDEX ITEMP1
056541,000201: 07,3053 20321 MSU THETAD
056542,000202: 07,3054 10000 CCS A
056543,000203: 07,3055 13063 TCF COARSERR
056544,000204: 07,3056 13060 TCF CORSCHK2
056545,000205: 07,3057 13063 TCF COARSERR
056546,000206:
Page 1308 |
056548,000208: 07,3060 10061 CORSCHK2 CCS ITEMP1
056549,000209: 07,3061 13046 TCF CHKCORS
056550,000210: 07,3062 13604 TCF ENDIMU # END OF COARSE ALIGNMENT.
056551,000211:
056552,000212: 07,3063 63071 COARSERR AD COARSTOL # 2 DEGREES.
056553,000213: 07,3064 00006 EXTEND
056554,000214: 07,3065 63060 BZMF CORSCHK2
056555,000215:
056556,000216: 07,3066 05567 TC ALARM # COARSE ALIGN ERROR.
056557,000217: 07,3067 00211 OCT 211
056558,000218:
056559,000219: 07,3070 13612 TCF IMUBAD
056560,000220:
056561,000221: 07,3071 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
056562,000222:
056563,000223: 07,3072 63720 COMNEG AD -COMMAX
056564,000224: 07,3073 00006 EXTEND
056565,000225: 07,3074 63102 BZMF COMZERO
056566,000226: 07,3075 40000 COM
056567,000227: 07,3076 51474 INDEX CDUIND
056568,000228: 07,3077 55471 TS COMMAND
056569,000229: 07,3100 33721 CA -COMMAX-
056570,000230: 07,3101 03033 TC NEXTCDU
056571,000231:
056572,000232: 07,3102 34755 COMZERO CAF ZERO
056573,000233: 07,3103 51474 INDEX CDUIND
056574,000234: 07,3104 57471 XCH COMMAND
056575,000235: 07,3105 03033 TC NEXTCDU
056576,000236:
056577,000237: 07,3106 37737 SENDPULS CAF 13,14,15
056578,000238: 07,3107 00006 EXTEND
056579,000239: 07,3110 05014 WOR CHAN14
056580,000240: 07,3111 33722 CAF 600MS
056581,000241: 07,3112 13012 TCF COARS2 -1 # THEN TO VARDELAY
056582,000242:
056583,000243: 07,3113 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
056584,000244: 07,3114 00006 EXTEND
056585,000245: 07,3115 05012 WOR CHAN12
056586,000246: 07,3116 05261 TC TASKOVER
056587,000247:
Page 1309 |
056589,000249: 07,3117 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
056590,000250: 07,3120 00006 EXTEND
056591,000251: 07,3121 02012 RAND CHAN12
056592,000252: 07,3122 10000 CCS A
056593,000253: 07,3123 00002 TC Q
056594,000254:
056595,000255: 07,3124 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS
056596,000256: 07,3125 00006 EXTEND
056597,000257: 07,3126 03012 WAND CHAN12
056598,000258:
056599,000259: 07,3127 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
056600,000260: 07,3130 00006 EXTEND
056601,000261: 07,3131 03014 WAND CHAN14
056602,000262: 07,3132 44755 CS ZERO
056603,000263: 07,3133 54047 TS GYROCMD
056604,000264:
056605,000265: 07,3134 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN
056606,000266: 07,3135 00006 EXTEND
056607,000267: 07,3136 05012 WOR CHAN12
056608,000268:
056609,000269: 07,3137 41036 CS DSPTAB +11D # TURN ON NO ATT LAMP
056610,000270: 07,3140 73162 MASK OCT40010
056611,000271: 07,3141 27036 ADS DSPTAB +11D
056612,000272:
056613,000273: 07,3142 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056614,000274: 07,3143 74746 MASK BIT6
056615,000275: 07,3144 27303 ADS IMODES33
056616,000276:
056617,000277: 07,3145 41302 CS IMODES30 # DISABLE IMUFAIL
056618,000278: 07,3146 74750 MASK BIT4
056619,000279: 07,3147 27302 ADS IMODES30
056620,000280:
056621,000281: 07,3150 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG
056622,000282: 07,3151 70075 MASK FLAGWRD1
056623,000283: 07,3152 54075 TS FLAGWRD1
056624,000284:
056625,000285: 07,3153 44735 CS DRFTBIT # CLEAR DRIFT FLAG
056626,000286: 07,3154 70076 MASK FLAGWRD2
056627,000287: 07,3155 54076 TS FLAGWRD2
056628,000288:
056629,000289: 07,3156 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG
056630,000290: 07,3157 70077 MASK FLAGWRD3
056631,000291: 07,3160 54077 TS FLAGWRD3
056632,000292:
056633,000293: 07,3161 00002 TC Q
056634,000294:
056635,000295: 07,3162 40010 OCT40010 OCT 40010
056636,000296:
Page 1310 |
056638,000298: # IMU FINE ALIGN MODE SWITCH.
056639,000299:
056640,000300: 07,3163 00004 IMUFINE INHINT
056641,000301: 07,3164 03626 TC CAGETSTJ # SEE IF IMU BEING CAGED.
056642,000302:
056643,000303: 07,3165 43717 CS BITS4-5 # RESET ZERO AND COARSE
056644,000304: 07,3166 00006 EXTEND
056645,000305: 07,3167 03012 WAND CHAN12
056646,000306:
056647,000307: 07,3170 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
056648,000308: 07,3171 71303 MASK IMODES33
056649,000309: 07,3172 55303 TS IMODES33
056650,000310:
056651,000311: 07,3173 03241 TC NOATTOFF
056652,000312:
056653,000313: 07,3174 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
056654,000314: 07,3175 05203 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
056655,000315: 07,3176 E3,1474 EBANK= CDUIND
056656,000316: 07,3176 03207 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
056657,000317:
056658,000318: 07,3200 35000 CAF 2SECS
056659,000319: 07,3201 05203 TC WAITLIST
056660,000320: 07,3202 E3,1474 EBANK= CDUIND
056661,000321: 07,3202 03205 16103 2CADR IMUFINED
056662,000322:
056663,000323: 07,3204 12730 TCF MODEEXIT
056664,000324:
056665,000325: 07,3205 03614 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
056666,000326: 07,3206 13604 TCF ENDIMU
056667,000327:
Page 1311 |
056669,000329: 07,3207 03621 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
056670,000330: 07,3210 15261 TCF TASKOVER # IT IS.
056671,000331:
056672,000332: 07,3211 34750 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
056673,000333: 07,3212 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
056674,000334: 07,3213 02012 RAND CHAN12
056675,000335: 07,3214 10000 CCS A
056676,000336: 07,3215 15261 TCF TASKOVER
056677,000337:
056678,000338: 07,3216 41302 CS IMODES30 # RESET IMUFAIL.
056679,000339: 07,3217 74737 MASK BIT13
056680,000340: 07,3220 27302 ADS IMODES30
056681,000341: 07,3221 44750 CS BIT4
056682,000342: 07,3222 71302 PFAILOK2 MASK IMODES30
056683,000343: 07,3223 55302 TS IMODES30
056684,000344: 07,3224 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
056685,000345: 07,3225 14703 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
056686,000346: 07,3226 15261 TCF TASKOVER
056687,000347:
056688,000348: 07,3227 03621 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
056689,000349: 07,3230 15261 TCF TASKOVER
056690,000350:
056691,000351: 07,3231 41302 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
056692,000352: 07,3232 74742 MASK BIT10
056693,000353: 07,3233 27302 ADS IMODES30
056694,000354:
056695,000355: 07,3234 41303 CS IMODES33
056696,000356: 07,3235 74737 MASK BIT13
056697,000357: 07,3236 27303 ADS IMODES33
056698,000358:
056699,000359: 07,3237 44747 CS BIT5
056700,000360: 07,3240 13222 TCF PFAILOK2
056701,000361:
056702,000362: 07,3241 43162 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
056703,000363: 07,3242 71036 MASK DSPTAB +11D
056704,000364: 07,3243 64735 AD BIT15
056705,000365: 07,3244 55036 TS DSPTAB +11D
056706,000366: 07,3245 00002 TC Q
056707,000367:
Page 1312 |
056709,000369: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
056710,000370:
056711,000371: 07,3246 44755 PIPUSE CS ZERO
056712,000372: 07,3247 54037 TS PIPAX
056713,000373: 07,3250 54040 TS PIPAY
056714,000374: 07,3251 54041 TS PIPAZ
056715,000375:
056716,000376: 07,3252 03621 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
056717,000377: 07,3253 14631 TCF SWRETURN
056718,000378:
056719,000379: 07,3254 00004 INHINT
056720,000380: 07,3255 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
056721,000381: 07,3256 71302 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
056722,000382: 07,3257 55302 TS IMODES30
056723,000383:
056724,000384: 07,3260 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
056725,000385: 07,3261 14703 CADR SETISSW # (OR GO OFF ON PIPFREE).
056726,000386:
056727,000387: 07,3262 12730 TCF MODEEXIT
056728,000388:
056729,000389: 07,3263 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
056730,000390: 07,3264 41302 CS IMODES30 # ISS WARNING.
056731,000391: 07,3265 74753 MASK BIT1
056732,000392: 07,3266 27302 ADS IMODES30
056733,000393:
056734,000394: 07,3267 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
056735,000395: 07,3270 10000 CCS A # ISS WARNING.
056736,000396: 07,3271 12730 TCF MODEEXIT
056737,000397:
056738,000398: 07,3272 05567 TC ALARM
056739,000399: 07,3273 00212 OCT 212
056740,000400:
056741,000401: 07,3274 00004 INHINT
056742,000402:
056743,000403: 07,3275 13260 TCF PIPFREE2
056744,000404:
Page 1313 |
056746,000406: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
056747,000407: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
056748,000408: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
056749,000409:
056750,000410: 07,3276 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
056751,000411:
056752,000412: 07,3276 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
056753,000413: 07,3277 03626 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
056754,000414:
056755,000415: 07,3300 11314 CCS LGYRO # SEE IF GYROS BUSY.
056756,000416: 07,3301 03342 TC GYROBUSY # SLEEP.
056757,000417:
056758,000418: 07,3302 54156 TS MPAC +2
056759,000419: 07,3303 34746 CAF BIT6 # ENABLE THE POWER SUPPLY.
056760,000420: 07,3304 00006 EXTEND
056761,000421: 07,3305 05014 WOR CHAN14
056762,000422:
056763,000423: 07,3306 34751 CAF FOUR
056764,000424: 07,3307 05203 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
056765,000425: 07,3310 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
056766,000426: 07,3310 03360 16103 2CADR STRTGYRO
056767,000427:
056768,000428: 07,3312 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
056769,000429: 07,3313 56003 XCH EBANK # RESTORATION ON RETURN.
056770,000430: 07,3314 56161 XCH MPAC +5
056771,000431: 07,3315 55314 TS LGYRO # RESERVES GYROS.
056772,000432: 07,3316 74357 MASK LOW8
056773,000433: 07,3317 54061 TS ITEMP1
056774,000434:
056775,000435: 07,3320 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
056776,000436: 07,3321 54157 GYROAGRE TS MPAC +3
056777,000437: 07,3322 60000 DOUBLE
056778,000438: 07,3323 60061 AD ITEMP1
056779,000439: 07,3324 54160 TS MPAC +4
056780,000440: 07,3325 00006 EXTEND
056781,000441: 07,3326 50000 INDEX A
056782,000442: 07,3327 31401 DCA 1400
056783,000443: 07,3330 52155 DXCH MPAC
056784,000444: 07,3331 07256 TC TPAGREE
056785,000445: 07,3332 52155 DXCH MPAC
056786,000446: 07,3333 50160 INDEX MPAC +4
056787,000447: 07,3334 53401 DXCH 1400
056788,000448:
056789,000449: 07,3335 10157 CCS MPAC +3
056790,000450: 07,3336 13321 TCF GYROAGRE
056791,000451:
056792,000452: 07,3337 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
056793,000453: 07,3340 54003 TS EBANK
056794,000454: 07,3341 12730 TCF MODEEXIT
056795,000455:
Page 1314 |
056797,000457: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
056798,000458:
056799,000459: 07,3342 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
056800,000460: 07,3343 30134 DCA BUF2
056801,000461: 07,3344 52155 DXCH MPAC
056802,000462: 07,3345 33357 REGSLEEP CAF LGWAKE
056803,000463: 07,3346 15133 TCF JOBSLEEP
056804,000464:
056805,000465: 07,3347 11314 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
056806,000466: 07,3350 13345 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
056807,000467:
056808,000468: 07,3351 54156 TS MPAC +2
056809,000469: 07,3352 00006 EXTEND
056810,000470: 07,3353 30155 DCA MPAC
056811,000471: 07,3354 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
056812,000472: 07,3355 34753 CAF ONE
056813,000473: 07,3356 13307 TCF GWAKE2
056814,000474:
056815,000475: 07,3357 17347 LGWAKE CADR GWAKE
056816,000476:
Page 1315 |
056818,000478: # GYRO-TORQUING WAITLIST TASKS.
056819,000479:
056820,000480: 07,3360 43601 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
056821,000481: 07,3361 00006 EXTEND
056822,000482: 07,3362 03014 WAND CHAN14
056823,000483:
056824,000484: 07,3363 03614 TC CAGETEST
056825,000485:
056826,000486: 07,3364 31314 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
056827,000487: 07,3365 00006 EXTEND
056828,000488: 07,3366 74750 MP BIT4
056829,000489: 07,3367 50000 INDEX A
056830,000490: 07,3370 13371 TCF +1
056831,000491: 07,3371 03406 TC GSELECT # =0. DO Y GYRO.
056832,000492: 07,3372 00202 OCT 00202
056833,000493:
056834,000494: 07,3373 03406 TC GSELECT # =1. DO Z GYRO.
056835,000495: 07,3374 00302 OCT 00302
056836,000496:
056837,000497: 07,3375 03404 TC GSELECT -2 # =2. DO X GYRO.
056838,000498: 07,3376 00100 OCT 00100
056839,000499:
056840,000500: 07,3377 34755 CAF ZERO # =3. DONE
056841,000501: 07,3400 55314 TS LGYRO
056842,000502: 07,3401 33357 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
056843,000503: 07,3402 05137 TC JOBWAKE
056844,000504:
056845,000505: 07,3403 13205 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
Page 1316 |
056847,000507: 07,3404 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
056848,000508: 07,3405 27314 ADS LGYRO
056849,000509:
056850,000510: 07,3406 50002 GSELECT INDEX Q # SELECT GYRO.
056851,000511: 07,3407 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
056852,000512: 07,3410 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
056853,000513: 07,3411 74757 MASK SEVEN
056854,000514: 07,3412 64737 AD BIT13
056855,000515: 07,3413 27314 ADS LGYRO
056856,000516: 07,3414 54003 TS EBANK
056857,000517: 07,3415 74357 MASK LOW8
056858,000518: 07,3416 54061 TS ITEMP1
056859,000519:
056860,000520: 07,3417 44757 CS SEVEN
056861,000521: 07,3420 70064 MASK ITEMP4
056862,000522: 07,3421 54064 TS ITEMP4
056863,000523:
056864,000524: 07,3422 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
056865,000525: 07,3423 50061 INDEX ITEMP1
056866,000526: 07,3424 31401 DCA 1400
056867,000527: 07,3425 52071 DXCH RUPTREG1
056868,000528:
056869,000529: 07,3426 10070 CCS RUPTREG1
056870,000530: 07,3427 13442 TCF MAJ+
056871,000531: 07,3430 13432 TCF +2
056872,000532: 07,3431 13562 TCF MAJ-
056873,000533:
056874,000534: 07,3432 10071 CCS RUPTREG2
056875,000535: 07,3433 13437 TCF MIN+
056876,000536: 07,3434 13364 TCF STRTGYR2
056877,000537: 07,3435 13557 TCF MIN-
056878,000538: 07,3436 13364 TCF STRTGYR2
056879,000539:
Page 1317 |
056881,000541: 07,3437 63473 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
056882,000542: 07,3440 00006 EXTEND # 16 GYRO PULSES.
056883,000543: 07,3441 63364 BZMF STRTGYR2
056884,000544:
056885,000545: 07,3442 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
056886,000546: 07,3443 33603 DCA GYROFRAC
056887,000547: 07,3444 20071 DAS RUPTREG1
056888,000548:
056889,000549: 07,3445 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
056890,000550: 07,3446 00006 EXTEND
056891,000551: 07,3447 05014 WOR CHAN14
056892,000552:
056893,000553: 07,3450 36073 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
056894,000554: 07,3451 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
056895,000555: 07,3452 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
056896,000556: 07,3453 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
056897,000557: 07,3454 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
056898,000558: 07,3455 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
056899,000559: 07,3456 30070 CA RUPTREG1
056900,000560: 07,3457 00006 EXTEND
056901,000561: 07,3460 74743 MP BIT9
056902,000562: 07,3461 54070 TS RUPTREG1
056903,000563: 07,3462 30001 CA L
056904,000564: 07,3463 00006 EXTEND
056905,000565: 07,3464 74736 MP BIT14
056906,000566: 07,3465 26062 ADS ITEMP2 # INITIAL COMMAND.
056907,000567:
056908,000568: 07,3466 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
056909,000569: 07,3467 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
056910,000570: 07,3470 67746 AD MINUS1
056911,000571: 07,3471 10000 CCS A
056912,000572: 07,3472 13516 TCF LONGGYRO
056913,000573: 07,3473 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
056914,000574: 07,3474 13500 TCF +4
056915,000575:
056916,000576: 07,3475 34736 CAF BIT14
056917,000577: 07,3476 26062 ADS ITEMP2
056918,000578: 07,3477 34755 CAF ZERO
056919,000579:
056920,000580: 07,3500 50061 +4 INDEX ITEMP1
056921,000581: 07,3501 53401 DXCH 1400
Page 1318 |
056923,000583: 07,3502 30062 CA ITEMP2 # ENTIRE COMMAND.
056924,000584: 07,3503 54047 LASTSEG TS GYROCMD
056925,000585: 07,3504 00006 EXTEND
056926,000586: 07,3505 74742 MP BIT10 # WAITLIST DT
056927,000587: 07,3506 66244 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
056928,000588: 07,3507 05203 TC WAITLIST
056929,000589: 07,3510 E3,1474 EBANK= CDUIND
056930,000590: 07,3510 03360 16103 2CADR STRTGYRO
056931,000591:
056932,000592: 07,3512 34742 GYROEXIT CAF BIT10
056933,000593: 07,3513 00006 EXTEND
056934,000594: 07,3514 05014 WOR CHAN14
056935,000595: 07,3515 15261 TCF TASKOVER
056936,000596:
056937,000597: 07,3516 50061 LONGGYRO INDEX ITEMP1
056938,000598: 07,3517 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
056939,000599: 07,3520 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
056940,000600: 07,3521 60062 AD ITEMP2
056941,000601: 07,3522 54047 TS GYROCMD
056942,000602:
056943,000603: 07,3523 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
056944,000604: 07,3524 74742 MP BIT10 # ALMOST OUT.
056945,000605: 07,3525 67744 AD NEG3
056946,000606: 07,3526 05203 TC WAITLIST
056947,000607: 07,3527 E3,1474 EBANK= CDUIND
056948,000608: 07,3527 03532 16103 2CADR 8192AUG
056949,000609:
056950,000610: 07,3531 13512 TCF GYROEXIT
056951,000611:
056952,000612: 07,3532 03614 8192AUG TC CAGETEST
056953,000613:
056954,000614: 07,3533 34750 CAF BIT4
056955,000615: 07,3534 00006 EXTEND
056956,000616: 07,3535 02012 RAND CHAN12
056957,000617: 07,3536 10000 CCS A
056958,000618: 07,3537 13612 TCF IMUBAD
056959,000619: 07,3540 31314 CA LGYRO # ADD 8192 PULSES TO GYROCMD
056960,000620: 07,3541 54003 TS EBANK
056961,000621: 07,3542 74357 MASK LOW8
056962,000622: 07,3543 54061 TS ITEMP1
056963,000623:
056964,000624: 07,3544 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
056965,000625: 07,3545 11400 CCS 1400
056966,000626: 07,3546 13552 TCF AUG2 # MORE TO COME.
056967,000627:
056968,000628: 07,3547 34736 CAF BIT14
056969,000629: 07,3550 26047 ADS GYROCMD
056970,000630: 07,3551 13504 TCF LASTSEG +1
056971,000631:
Page 1319 |
056973,000633: 07,3552 50061 AUG2 INDEX ITEMP1
056974,000634: 07,3553 55400 TS 1400
056975,000635: 07,3554 34736 CAF BIT14
056976,000636: 07,3555 26047 ADS GYROCMD
056977,000637: 07,3556 13523 TCF AUG3 # COMPUTE DT.
056978,000638:
Page 1320 |
056980,000640: 07,3557 63473 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
056981,000641: 07,3560 00006 EXTEND
056982,000642: 07,3561 63364 BZMF STRTGYR2
056983,000643:
056984,000644: 07,3562 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
056985,000645: 07,3563 43603 DCS GYROFRAC
056986,000646: 07,3564 20071 DAS RUPTREG1
056987,000647:
056988,000648: 07,3565 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
056989,000649: 07,3566 64743 AD BIT9
056990,000650: 07,3567 00006 EXTEND
056991,000651: 07,3570 05014 WOR CHAN14
056992,000652:
056993,000653: 07,3571 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
056994,000654: 07,3572 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
056995,000655: 07,3573 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
056996,000656: 07,3574 76073 MASK LOW7 # THE SIGN OF THE COMMAND.
056997,000657: 07,3575 40000 COM
056998,000658: 07,3576 56071 XCH RUPTREG2
056999,000659: 07,3577 40000 COM
057000,000660: 07,3600 13453 TCF GMERGE
057001,000661:
057002,000662: 07,3601 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
057003,000663:
057004,000664: 07,3602 00000 00034 GYROFRAC 2DEC .215 B-21
057005,000665:
Page 1321 |
057007,000667: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
057008,000668:
057009,000669: 07,3604 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
057010,000670: 07,3605 00011 READ DSALMOUT # ISS WARNING IS ON.
057011,000671: 07,3606 74753 MASK BIT1
057012,000672: 07,3607 10000 CCS A
057013,000673: 07,3610 13612 TCF IMUBAD
057014,000674:
057015,000675: 07,3611 13640 IMUGOOD TCF GOODEND # WITH C(A) = 0.
057016,000676:
057017,000677: 07,3612 34755 IMUBAD CAF ZERO
057018,000678: 07,3613 13635 TCF BADEND
057019,000679:
057020,000680: 07,3614 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
057021,000681: 07,3615 71302 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
057022,000682: 07,3616 10000 CCS A
057023,000683: 07,3617 13612 TCF IMUBAD # DIRECTLY.
057024,000684: 07,3620 00002 TC Q # WITH C(A) = +0.
057025,000685:
057026,000686: 07,3621 41302 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
057027,000687: 07,3622 74746 MASK BIT6
057028,000688: 07,3623 10000 CCS A
057029,000689: 07,3624 24002 INCR Q
057030,000690: 07,3625 00002 TC Q
057031,000691:
057032,000692: 07,3626 41302 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
057033,000693: 07,3627 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
057034,000694: 07,3630 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
057035,000695: 07,3631 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
057036,000696:
057037,000697: 07,3632 44755 CS ZERO # TO SWRETURN.
057038,000698: 07,3633 55304 TS IMUCADR
057039,000699: 07,3634 12730 TCF MODEEXIT
057040,000700:
Page 1322 |
057042,000702: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
057043,000703: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
057044,000704:
057045,000705: 07,3635 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
057046,000706: 07,3636 44755 CS ZERO # FOR FAILURE.
057047,000707: 07,3637 13642 TCF GOODEND +2
057048,000708:
057049,000709: 07,3640 54071 GOODEND TS RUPTREG2
057050,000710: 07,3641 44753 CS ONE # FOR SUCCESS.
057051,000711:
057052,000712: 07,3642 54072 TS RUPTREG3
057053,000713: 07,3643 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
057054,000714: 07,3644 11304 CCS MODECADR
057055,000715: 07,3645 13651 TCF +4 # YES - WAKE IT UP.
057056,000716: 07,3646 13661 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
057057,000717:
057058,000718: 07,3647 00006 EXTEND
057059,000719: 07,3650 13662 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0.
057060,000720:
057061,000721: 07,3651 34755 CAF ZERO # WAKE SLEEPING PROGRAM.
057062,000722: 07,3652 50071 INDEX RUPTREG2
057063,000723: 07,3653 57304 XCH MODECADR
057064,000724: 07,3654 05137 TC JOBWAKE
057065,000725:
057066,000726: 07,3655 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
057067,000727: 07,3656 50064 INDEX LOCCTR
057068,000728: 07,3657 26164 ADS LOC
057069,000729:
057070,000730: 07,3660 15261 TCF TASKOVER
057071,000731:
057072,000732: 07,3661 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
057073,000733: 07,3662 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
057074,000734: 07,3663 55304 TS MODECADR # SUCCESSFUL.
057075,000735: 07,3664 15261 TCF TASKOVER
057076,000736:
Page 1323 |
057078,000738: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
057079,000739:
057080,000740: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
057081,000741: # LOG SECTION IMU MODE SWITCHING
057082,000742: # MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
057083,000743:
057084,000744: # FUNCTIONAL DESCRIPTION-
057085,000745: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
057086,000746: # I/O FUNCTION IS COMPLETE.THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
057087,000747: # MODECADR ARE MADE AND ACTED UPON.
057088,000748: # 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO
057089,000749: # SLEEP.
057090,000750: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
057091,000751: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
057092,000752: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
057093,000753: # AND RETURNS TO CALLING ROUTINE AT L+2.
057094,000754: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
057095,000755: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
057096,000756: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
057097,000757:
057098,000758: # CALLING SEQUENCE-
057099,000759: # L TC BANKCALL
057100,000760: # L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL, OPTSTALL, RADSTALL,
057101,000761: # AOTSTALL, OR ATTSTALL)
057102,000762:
057103,000763: # NORMAL-EXIT MODE-
057104,000764: # TCF JOBSLEEP OR TCF MODEXIT
057105,000765:
057106,000766: # ALARM OR ABORT EXIT MODE-
057107,000767: # TC ABORT
057108,000768:
057109,000769: # OUTPUT-
057110,000770: # MODECADR=CADR IF JOBSLEEP
057111,000771: # MODECADR=+0 IF I/O COMPLETE
057112,000772: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
057113,000773: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
057114,000774:
057115,000775: # ERASABLE INITIALIZATION-
057116,000776: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
057117,000777: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
057118,000778: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
057119,000779:
057120,000780: # DEBRIS-
057121,000781: # RUPTREG2 AND CALLING ROUTINE MODECADR.
057122,000782:
057123,000783: 07,3665 34753 AOTSTALL CAF ONE # AOT.
057124,000784: 07,3666 03672 TC STALL
057125,000785:
057126,000786: 07,3667 34752 RADSTALL CAF TWO
057127,000787: 07,3670 13672 TCF STALL
057128,000788:
Page 1324 |
057130,000790: 07,3671 07,3665 OPTSTALL EQUALS AOTSTALL
057131,000791:
057132,000792: 07,3671 34755 IMUSTALL CAF ZERO # IMU.
057133,000793:
057134,000794: 07,3672 00004 STALL INHINT
057135,000795: 07,3673 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
057136,000796: 07,3674 50000 INDEX A # SEE IF OPERATION COMPLETE.
057137,000797: 07,3675 11304 CCS MODECADR
057138,000798: 07,3676 13714 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
057139,000799: 07,3677 13710 TCF MODESLP # OPERATION INCOMPLETE.
057140,000800: 07,3700 13704 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
057141,000801:
057142,000802: 07,3701 50071 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
057143,000803: 07,3702 55304 TS MODECADR # RETURN TO CALLER.
057144,000804: 07,3703 12730 TCF MODEEXIT
057145,000805:
057146,000806: 07,3704 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
057147,000807: 07,3705 13714 TCF MODABORT
057148,000808:
057149,000809: 07,3706 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
057150,000810: 07,3707 13701 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
057151,000811:
057152,000812: 07,3710 04645 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
057153,000813: 07,3711 50071 INDEX RUPTREG2
057154,000814: 07,3712 55304 TS MODECADR
057155,000815: 07,3713 15133 TCF JOBSLEEP
057156,000816:
057157,000817: 07,3714 52134 MODABORT DXCH BUF2
057158,000818: 07,3715 05710 TC BAILOUT1 # TWO PROGRAMS USING THE SAME DEVICE.
057159,000819: 07,3716 01210 OCT 1210
057160,000820:
Page 1325 |
057162,000822: # CONSTANTS FOR MODE SWITCHING ROUTINES
057163,000823:
057164,000824: 07,3717 5742 BITS3&4 = OCT14
057165,000825: 07,3717 4771 BITS4&6 = OCT50
057166,000826: 07,3717 00030 BITS4-5 OCT 00030
057167,000827: 07,3720 4744 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
057168,000828: 07,3720 77500 -COMMAX DEC -191 B-14
057169,000829: 07,3721 77477 -COMMAX- DEC -192 B-14
057170,000830: 07,3722 00074 600MS DEC 60 B-14
057171,000831: 07,3723 07,3163 IMUFIN20 = IMUFINE
057172,000832: 07,3723 31307 GOMANUR CA ATTCADR # IS KALCMANU FREE
057173,000833: 07,3724 00006 EXTEND
057174,000834: 07,3725 13730 BZF +3
057175,000835:
057176,000836: 07,3726 05652 TC POODOO # NO
057177,000837: 07,3727 01210 OCT 1210 # 2 TRYING TO USE SAME DEVICE
057178,000838:
057179,000839: 07,3730 00006 +3 EXTEND
057180,000840: 07,3731 30134 DCA BUF2
057181,000841: 07,3732 53310 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
057182,000842:
057183,000843: 07,3733 30006 CA BBANK
057184,000844: 07,3734 74757 MASK SEVEN
057185,000845: 07,3735 27310 ADS ATTCADR +1
057186,000846:
057187,000847: 07,3736 30167 CA PRIORITY
057188,000848: 07,3737 77724 MASK PRIO37
057189,000849: 07,3740 55311 TS ATTPRIO # SAVE USERS PRIO
057190,000850:
057191,000851: 07,3741 33745 CAF KALEBCON # SET EBANK FOR KALCMAN3
057192,000852: 07,3742 54003 TS EBANK
057193,000853: 07,3743 04635 TC POSTJUMP
057194,000854: 07,3744 44004 CADR KALCMAN3
057195,000855: 07,3745 03274 KALEBCON ECADR BCDU
057196,000856:
Page 1326 |
057198,000858: # PROGRAM DESCRIPTION
057199,000859: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
057200,000860: # MOD NO - 1
057201,000861: # MOD BY - N.BRODEUR
057202,000862:
057203,000863: # FUNCTIONAL DESCRIPTION
057204,000864: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
057205,000865: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
057206,000866: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
057207,000867: # CMC. CALLED THROUGH BANKCALL
057208,000868: # CALLING SEQUENCE-
057209,000869:
057210,000870: # L TC BANKCALL
057211,000871: # L+1 CADR R02BOTH
057212,000872: # SUBROUTINES CALLED
057213,000873:
057214,000874: # VARALARM
057215,000875: # FLAGUP
057216,000876:
057217,000877: # NORMAL EXIT MODES
057218,000878:
057219,000879: # AT L+2 OF CALLING SEQUENCE
057220,000880: # ALARM OR ABORT EXIT MODES
057221,000881: # GOTOPOOH, WITH ALARM
057222,000882: # ERASABLE INITIALIZATION REQUIRED
057223,000883:
057224,000884: # NONE
057225,000885: # DEBRIS
057226,000886:
057227,000887: # CENTRALS - A,Q,L
057228,000888:
057229,000889: 34,3760 BANK 34
057230,000890: 04,2000 SETLOC R02
057231,000891: 04,2000 BANK
057232,000892: 04,3174 COUNT* $$/R02
057233,000893: 04,3174 00063 DEC51 DEC 51 B-14
057234,000894: 04,3175 34737 R02BOTH CAF REFSMBIT
057235,000895: 04,3176 70077 MASK FLAGWRD3
057236,000896: 04,3177 10000 CCS A
057237,000897: 04,3200 03211 TC R02ZERO # ZERO IMUS
057238,000898:
057239,000899: 04,3201 31302 CA IMODES30
057240,000900: 04,3202 74743 MASK BIT9 # IS ISS INITIALIZED
057241,000901: 04,3203 00006 EXTEND
057242,000902: 04,3204 13206 BZF +2
057243,000903: 04,3205 44750 CS BIT4 # SEND IMU ALARM CODE 210
057244,000904: 04,3206 63214 AD OCT220 # SEND REFSMM ALARM
057245,000905: 04,3207 05735 TC VARALARM
057246,000906:
057247,000907: 04,3210 06001 TC GOTOPOOH
057248,000908:
057249,000909: 04,3211 05504 R02ZERO TC UPFLAG
Page 1327 |
057251,000911: 04,3212 00007 ADRES IMUSE
057252,000912: 04,3213 14631 TCF SWRETURN
057253,000913: 04,3214 00220 OCT220 OCT 220
057254,000914:
Page 1328 |
057256,000916: # PROGRAM DESCRIPTION P06 10 FEB 67
057257,000917:
057258,000918: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
057259,000919:
057260,000920: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
057261,000921: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
057262,000922: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
057263,000923:
057264,000924: # CALLING SEQUENCE:
057265,000925: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
057266,000926:
057267,000927: # SUBROUTINES CALLED:
057268,000928: # GOPERF1
057269,000929: # BANKCALL
057270,000930: # FLAGDOWN
057271,000931:
Page 1329 |
057273,000933: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
057274,000934: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
057275,000935: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
057276,000936:
057277,000937: 37,2000 SETLOC P05P06
057278,000938: 37,2000 BANK
057279,000939:
057280,000940: 37,3641 0314 EBANK= TIME2SAV
057281,000941: 37,3641 COUNT* $$/P06
057282,000942:
057283,000943: 37,3641 05504 P06 TC UPFLAG # SET NODOV37 BIT
057284,000944: 37,3642 00054 ADRES NODOFLAG
057285,000945:
057286,000946: 37,3643 00004 PRESTAND INHINT
057287,000947: 37,3644 00006 EXTEND
057288,000948: 37,3645 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
057289,000949: 37,3646 52315 DXCH TIME2SAV
057290,000950: 37,3647 03700 TC SCALPREP
057291,000951: 37,3650 03643 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
057292,000952: 37,3651 52155 DXCH MPAC # T1,T2 AND SCALER OK
057293,000953: 37,3652 52317 DXCH SCALSAVE # STORE SCALER
057294,000954: 37,3653 00004 INHINT
057295,000955: 37,3654 04616 TC BANKCALL
057296,000956: 37,3655 17150 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
057297,000957:
057298,000958: 37,3656 05516 TC DOWNFLAG
057299,000959: 37,3657 00007 ADRES IMUSE # IMUSE DOWN
057300,000960: 37,3660 05516 TC DOWNFLAG
057301,000961: 37,3661 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
057302,000962:
057303,000963: 37,3662 34741 CAF BIT11
057304,000964: 37,3663 00006 EXTEND
057305,000965: 37,3664 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
057306,000966:
057307,000967: 37,3665 05353 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
057308,000968: 37,3666 07024 OCT 07024 # RECOVERS
057309,000969: 37,3667 20000 OCT 20000
057310,000970: 37,3670 0316 EBANK= SCALSAVE
057311,000971: 37,3670 03720 76060 2CADR POSTAND
057312,000972:
057313,000973: 37,3672 34774 CAF OCT62
057314,000974: 37,3673 04616 TC BANKCALL
057315,000975: 37,3674 20476 CADR GOPERF1
057316,000976: 37,3675 13672 TCF -3
057317,000977: 37,3676 13672 TCF -4
057318,000978: 37,3677 13672 TCF -5
057319,000979:
057320,000980: 37,3700 4774 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
057321,000981:
057322,000982: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
Page 1330 |
057324,000984: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
057325,000985: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
057326,000986: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
057327,000987: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
057328,000988: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
057329,000989: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
057330,000990: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
057331,000991: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
057332,000992: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
057333,000993:
057334,000994: 37,3700 00006 SCALPREP EXTEND
057335,000995: 37,3701 22156 QXCH MPAC +2
057336,000996: 37,3702 04103 TC FINETIME +1
057337,000997: 37,3703 00003 RELINT
057338,000998: 37,3704 52155 DXCH MPAC
057339,000999: 37,3705 34747 CA BIT5 # ADD 5 MS TO THE SCALER READING.
057340,001000: 37,3706 54001 TS L
057341,001001: 37,3707 34755 CA ZERO
057342,001002: 37,3710 20155 DAS MPAC
057343,001003: 37,3711 44346 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
057344,001004: 37,3712 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
057345,001005: 37,3713 56155 XCH MPAC +1
057346,001006: 37,3714 74346 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
057347,001007: # INTERVAL AFTER THE T1 INCREMENT
057348,001008: # (NOW = 00000, SINCE BIT 5 ADDED).
057349,001009: 37,3715 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
057350,001010: 37,3716 24156 INCR MPAC +2 # NO
057351,001011: 37,3717 00156 TC MPAC +2 # YES
057352,001012:
057353,001013: # POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE
057354,001014: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
057355,001015: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
057356,001016: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
057357,001017: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
057358,001018: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
057359,001019:
057360,001020: 37,3720 COUNT* $$/P05
057361,001021:
057362,001022: 37,3720 44741 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
057363,001023: 37,3721 00006 EXTEND
057364,001024: 37,3722 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
057365,001025: 37,3723 00004 INHINT
057366,001026: 37,3724 34755 CA ZERO
057367,001027: 37,3725 54001 TS L
057368,001028: 37,3726 52025 DXCH TIME2 # CLEAR TIME1TIME2
057369,001029: 37,3727 03700 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
057370,001030: 37,3730 03723 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
057371,001031: 37,3731 00006 EXTEND # T1,T2 AND SCALER OK
057372,001032: 37,3732 40317 DCS SCALSAVE
057373,001033: 37,3733 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
Page 1331 |
057375,001035: 37,3734 34742 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
057376,001036: 37,3735 07306 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
057377,001037: 37,3736 34755 CAF ZERO
057378,001038: 37,3737 54156 TS MPAC +2 # NEEDED FOR TP AGREE
057379,001039: 37,3740 07256 TC TPAGREE # MAKE DP DIFF AGREE
057380,001040: 37,3741 10154 CCS MPAC
057381,001041: 37,3742 03747 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
057382,001042: 37,3743 03747 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
057383,001043: 37,3744 03745 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
057384,001044: 37,3745 34742 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
057385,001045: 37,3746 26154 ADS MPAC
057386,001046: 37,3747 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
057387,001047: 37,3750 30315 DCA TIME2SAV # PRESTANDBY TIME1TIME2
057388,001048: 37,3751 20155 DAS MPAC
057389,001049: 37,3752 07256 TC TPAGREE # FORCE SIGN AGREEMENT
057390,001050: 37,3753 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
057391,001051: 37,3754 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
057392,001052: 37,3755 05516 TC DOWNFLAG # CLEAR NODOFLAG
057393,001053: 37,3756 00054 ADRES NODOFLAG
057394,001054:
057395,001055: 37,3757 06001 TC GOTOPOOH
057396,001056:
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc