Source Code
These source-code files are part of a reconstructed copy of Luminary 173, the
second (unflown) release of the Apollo 14 Lunar Module (LM) Apollo Guidance
Computer (AGC) software.
The reconstruction began with reconstructed source code for Luminary 178. Changes between revision 173 and 178 were backed out, as described by Luminary memo 167 (revision 1). The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152N. Note that page numbers in the reconstructed code match those for the baseline log section mentioned in each file's changelog; the page numbers for a real Luminary 173 listing would be different. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
055565,000002: ## Copyright: Public domain.
055566,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
055567,000004: ## Purpose: A section of Luminary revision 173.
055568,000005: ## It is part of the reconstructed source code for the second
055569,000006: ## (unflown) release of the flight software for the Lunar
055570,000007: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
055571,000008: ## The code has been recreated from a reconstructed copy of
055572,000009: ## Luminary 178, as well as Luminary memo 167 (revision 1).
055573,000010: ## It has been adapted such that the resulting bugger words
055574,000011: ## exactly match those specified for Luminary 173 in NASA
055575,000012: ## drawing 2021152N, which gives relatively high confidence
055576,000013: ## that the reconstruction is correct.
055577,000014: ## Reference: pp. 1298-1326
055578,000015: ## Assembler: yaYUL
055579,000016: ## Contact: Ron Burkey <info@sandroid.org>.
055580,000017: ## Website: www.ibiblio.org/apollo/index.html
055581,000018: ## Mod history: 2019-09-18 MAS Created from Luminary 178.
055582,000019:
Page 1298 |
055584,000021: 5470 BLOCK 02
055585,000022: 4000 SETLOC FFTAG3
055586,000023: 4000 BANK
055587,000024:
055588,000025: 5470 E3,1471 EBANK= COMMAND
055589,000026:
055590,000027: # FIXED-FIXED ROUTINES.
055591,000028:
055592,000029: 5470 COUNT* $$/IMODE
055593,000030: 5470 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
055594,000031: 5471 54032 TS CDUX
055595,000032: 5472 54033 TS CDUY
055596,000033: 5473 54034 TS CDUZ
055597,000034: 5474 00002 TC Q
055598,000035:
055599,000036: 5475 4743 SPSCODE = BIT9
055600,000037:
Page 1299 |
055602,000039: # IMU ZEROING ROUTINE.
055603,000040:
055604,000041: 11,3774 BANK 11
055605,000042: 07,2000 SETLOC MODESW
055606,000043: 07,2000 BANK
055607,000044:
055608,000045: 07,2700 COUNT* $$/IMODE
055609,000046: 07,2700 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
055610,000047: 07,2701 41035 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
055611,000048: 07,2702 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
055612,000049: 07,2703 10000 CCS A
055613,000050: 07,2704 12710 TCF IMUZEROA
055614,000051:
055615,000052: 07,2705 05600 TC ALARM # IF SO.
055616,000053: 07,2706 00206 OCT 00206
055617,000054:
055618,000055: 07,2707 13663 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
055619,000056:
055620,000057: 07,2710 03657 IMUZEROA TC CAGETSTJ
055621,000058: # DELETE
055622,000059: 07,2711 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
055623,000060: 07,2712 74773 MASK SUPER011 # BIT5 FOR GROUND
055624,000061: 07,2713 27300 ADS IMODES33
055625,000062:
055626,000063: 07,2714 41277 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
055627,000064: 07,2715 75752 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
055628,000065: 07,2716 27277 ADS IMODES30
055629,000066:
055630,000067: 07,2717 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
055631,000068: 07,2720 00006 EXTEND # COUNTER DISABLED.
055632,000069: 07,2721 03012 WAND CHAN12
055633,000070:
055634,000071: 07,2722 03252 TC NOATTOFF # TURN OFF NO ATT LAMP.
055635,000072:
055636,000073: 07,2723 34747 CAF BIT5
055637,000074: 07,2724 00006 EXTEND
055638,000075: 07,2725 05012 WOR CHAN12
055639,000076:
055640,000077: 07,2726 05470 TC ZEROICDU
055641,000078: 07,2727 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
055642,000079: 07,2730 05214 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
055643,000080: 07,2731 E3,1474 EBANK= CDUIND
055644,000081: 07,2731 02743 16103 2CADR IMUZERO2
055645,000082:
055646,000083:
055647,000084: 07,2733 41277 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
055648,000085: 07,2734 74743 MASK BIT9
055649,000086: 07,2735 10000 CCS A
055650,000087: 07,2736 12741 TCF MODEEXIT
Page 1300 |
055652,000089: 07,2737 05600 TC ALARM
055653,000090: 07,2740 00210 OCT 210
055654,000091:
055655,000092: 07,2741 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
055656,000093: 07,2742 14631 TCF SWRETURN
055657,000094:
055658,000095:
055659,000096: 07,2743 03645 IMUZERO2 TC CAGETEST
055660,000097: 07,2744 05470 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
055661,000098:
055662,000099: 07,2745 44747 CS BIT5 # REMOVE ZERO DISCRETE.
055663,000100: 07,2746 00006 EXTEND
055664,000101: 07,2747 03012 WAND CHAN12
055665,000102:
055666,000103: 07,2750 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
055667,000104: 07,2751 05235 TC VARDELAY
055668,000105:
055669,000106: 07,2752 03645 IMUZERO3 TC CAGETEST
055670,000107: 07,2753 45752 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
055671,000108: 07,2754 71277 MASK IMODES30
055672,000109: 07,2755 55277 TS IMODES30
055673,000110:
055674,000111: 07,2756 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
055675,000112: 07,2757 71300 MASK IMODES33 # BIT5 FOR GROUND
055676,000113: 07,2760 55300 TS IMODES33
055677,000114:
055678,000115: 07,2761 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
055679,000116: 07,2762 14703 CADR SETISSW # PRESENT.
055680,000117:
055681,000118: 07,2763 13635 TCF ENDIMU
055682,000119:
Page 1301 |
055684,000121: # IMU COARSE ALIGN MODE.
055685,000122:
055686,000123: 07,2764 00004 IMUCOARS INHINT
055687,000124: 07,2765 03657 TC CAGETSTJ
055688,000125: 07,2766 03130 TC SETCOARS
055689,000126:
055690,000127: 07,2767 36245 CAF SIX
055691,000128: 07,2770 05214 TC WAITLIST
055692,000129: 07,2771 E3,1474 EBANK= CDUIND
055693,000130: 07,2771 02774 16103 2CADR COARS
055694,000131:
055695,000132:
055696,000133: 07,2773 12741 TCF MODEEXIT
055697,000134:
055698,000135: 07,2774 03645 COARS TC CAGETEST
055699,000136: 07,2775 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
055700,000137: 07,2776 00006 EXTEND
055701,000138: 07,2777 05012 WOR CHAN12
055702,000139:
055703,000140: 07,3000 34752 CAF TWO # SET CDU INDICATOR
055704,000141: 07,3001 55474 COARS1 TS CDUIND
055705,000142:
055706,000143: 07,3002 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
055707,000144: 07,3003 30321 CA THETAD # COMPLEMENT FORM
055708,000145: 07,3004 00006 EXTEND
055709,000146: 07,3005 51474 INDEX CDUIND
055710,000147: 07,3006 20032 MSU CDUX
055711,000148: 07,3007 00006 EXTEND
055712,000149: 07,3010 74737 MP BIT13 # SHIFT RIGHT 2
055713,000150: 07,3011 56001 XCH L # ROUND
055714,000151: 07,3012 60000 DOUBLE
055715,000152: 07,3013 54061 TS ITEMP1
055716,000153: 07,3014 13016 TCF +2
055717,000154: 07,3015 26001 ADS L
055718,000155:
055719,000156: 07,3016 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
055720,000157: 07,3017 23471 LXCH COMMAND
055721,000158: 07,3020 11474 CCS CDUIND
055722,000159: 07,3021 03001 TC COARS1
055723,000160:
055724,000161: 07,3022 34752 CAF TWO # MINIMUM OF 4 MS WAIT
055725,000162: 07,3023 05235 TC VARDELAY
055726,000163:
Page 1302 |
055728,000165: 07,3024 03645 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
055729,000166: 07,3025 54061 TS ITEMP1 # SETS TO +0.
055730,000167: 07,3026 34752 CAF TWO # SET CDU INDICATOR
055731,000168: 07,3027 55474 +3 TS CDUIND
055732,000169:
055733,000170: 07,3030 51474 INDEX CDUIND
055734,000171: 07,3031 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
055735,000172: 07,3032 03036 TC COMPOS # GREATER THAN MAX ALLOWED
055736,000173: 07,3033 03045 TC NEXTCDU +1
055737,000174: 07,3034 03103 TC COMNEG
055738,000175: 07,3035 03045 TC NEXTCDU +1
055739,000176:
055740,000177: 07,3036 63751 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
055741,000178: 07,3037 00006 EXTEND # MINUS ONE
055742,000179: 07,3040 63113 BZMF COMZERO
055743,000180: 07,3041 51474 INDEX CDUIND
055744,000181: 07,3042 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
055745,000182: 07,3043 43752 CS -COMMAX- # ALLOWED
055746,000183:
055747,000184: 07,3044 24061 NEXTCDU INCR ITEMP1
055748,000185: 07,3045 64754 AD NEG0
055749,000186: 07,3046 51474 INDEX CDUIND
055750,000187: 07,3047 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
055751,000188:
055752,000189: 07,3050 11474 CCS CDUIND
055753,000190: 07,3051 03027 TC COARS2 +3
055754,000191:
055755,000192: 07,3052 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
055756,000193: 07,3053 13117 TCF SENDPULS
055757,000194:
055758,000195: 07,3054 05232 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
055759,000196: 07,3055 00226 DEC 150 B-14
055760,000197:
055761,000198:
055762,000199: 07,3056 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
055763,000200: 07,3057 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
055764,000201: 07,3060 50000 INDEX A
055765,000202: 07,3061 30032 CA CDUX
055766,000203: 07,3062 00006 EXTEND
055767,000204: 07,3063 50061 INDEX ITEMP1
055768,000205: 07,3064 20321 MSU THETAD
055769,000206: 07,3065 10000 CCS A
055770,000207: 07,3066 13074 TCF COARSERR
055771,000208: 07,3067 13071 TCF CORSCHK2
055772,000209: 07,3070 13074 TCF COARSERR
055773,000210:
Page 1303 |
055775,000212: 07,3071 10061 CORSCHK2 CCS ITEMP1
055776,000213: 07,3072 13057 TCF CHKCORS
055777,000214: 07,3073 13635 TCF ENDIMU # END OF COARSE ALIGNMENT.
055778,000215:
055779,000216: 07,3074 63102 COARSERR AD COARSTOL # 2 DEGREES.
055780,000217: 07,3075 00006 EXTEND
055781,000218: 07,3076 63071 BZMF CORSCHK2
055782,000219:
055783,000220: 07,3077 05600 TC ALARM # COARSE ALIGN ERROR.
055784,000221: 07,3100 00211 OCT 211
055785,000222:
055786,000223: 07,3101 13643 TCF IMUBAD
055787,000224:
055788,000225: 07,3102 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
055789,000226:
055790,000227:
055791,000228: 07,3103 63751 COMNEG AD -COMMAX
055792,000229: 07,3104 00006 EXTEND
055793,000230: 07,3105 63113 BZMF COMZERO
055794,000231: 07,3106 40000 COM
055795,000232: 07,3107 51474 INDEX CDUIND
055796,000233: 07,3110 55471 TS COMMAND
055797,000234: 07,3111 33752 CA -COMMAX-
055798,000235: 07,3112 03044 TC NEXTCDU
055799,000236:
055800,000237: 07,3113 34755 COMZERO CAF ZERO
055801,000238: 07,3114 51474 INDEX CDUIND
055802,000239: 07,3115 57471 XCH COMMAND
055803,000240: 07,3116 03044 TC NEXTCDU
055804,000241:
055805,000242:
055806,000243: 07,3117 37743 SENDPULS CAF 13,14,15
055807,000244: 07,3120 00006 EXTEND
055808,000245: 07,3121 05014 WOR CHAN14
055809,000246: 07,3122 33753 CAF 600MS
055810,000247: 07,3123 13023 TCF COARS2 -1 # THEN TO VARDELAY
055811,000248:
055812,000249:
055813,000250: 07,3124 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
055814,000251: 07,3125 00006 EXTEND
055815,000252: 07,3126 05012 WOR CHAN12
055816,000253: 07,3127 05272 TC TASKOVER
055817,000254:
Page 1304 |
055819,000256: 07,3130 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
055820,000257: 07,3131 00006 EXTEND
055821,000258: 07,3132 02012 RAND CHAN12
055822,000259: 07,3133 10000 CCS A
055823,000260: 07,3134 00002 TC Q
055824,000261:
055825,000262: 07,3135 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS
055826,000263: 07,3136 00006 EXTEND
055827,000264: 07,3137 03012 WAND CHAN12
055828,000265:
055829,000266: 07,3140 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
055830,000267: 07,3141 00006 EXTEND
055831,000268: 07,3142 03014 WAND CHAN14
055832,000269: 07,3143 44755 CS ZERO
055833,000270: 07,3144 54047 TS GYROCMD
055834,000271:
055835,000272: 07,3145 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN
055836,000273: 07,3146 00006 EXTEND
055837,000274: 07,3147 05012 WOR CHAN12
055838,000275:
055839,000276: 07,3150 41035 CS DSPTAB +11D # TURN ON NO ATT LAMP
055840,000277: 07,3151 73173 MASK OCT40010
055841,000278: 07,3152 27035 ADS DSPTAB +11D
055842,000279:
055843,000280: 07,3153 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
055844,000281: 07,3154 74746 MASK BIT6
055845,000282: 07,3155 27300 ADS IMODES33
055846,000283:
055847,000284: 07,3156 41277 CS IMODES30 # DISABLE IMUFAIL
055848,000285: 07,3157 74750 MASK BIT4
055849,000286: 07,3160 27277 ADS IMODES30
055850,000287:
055851,000288: 07,3161 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG
055852,000289: 07,3162 70075 MASK FLAGWRD1
055853,000290: 07,3163 54075 TS FLAGWRD1
055854,000291:
055855,000292: 07,3164 44735 CS DRFTBIT # CLEAR DRIFT FLAG
055856,000293: 07,3165 70076 MASK FLAGWRD2
055857,000294: 07,3166 54076 TS FLAGWRD2
055858,000295:
055859,000296: 07,3167 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG
055860,000297: 07,3170 70077 MASK FLAGWRD3
055861,000298: 07,3171 54077 TS FLAGWRD3
055862,000299:
055863,000300: 07,3172 00002 TC Q
055864,000301:
055865,000302: 07,3173 40010 OCT40010 OCT 40010
055866,000303:
Page 1305 |
055868,000305: # IMU FINE ALIGN MODE SWITCH.
055869,000306:
055870,000307: 07,3174 00004 IMUFINE INHINT
055871,000308: 07,3175 03657 TC CAGETSTJ # SEE IF IMU BEING CAGED.
055872,000309:
055873,000310: 07,3176 43750 CS BITS4-5 # RESET ZERO AND COARSE
055874,000311: 07,3177 00006 EXTEND
055875,000312: 07,3200 03012 WAND CHAN12
055876,000313:
055877,000314: 07,3201 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
055878,000315: 07,3202 71300 MASK IMODES33
055879,000316: 07,3203 55300 TS IMODES33
055880,000317:
055881,000318: 07,3204 03252 TC NOATTOFF
055882,000319:
055883,000320: 07,3205 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
055884,000321: 07,3206 05214 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
055885,000322: 07,3207 E3,1474 EBANK= CDUIND
055886,000323: 07,3207 03220 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
055887,000324:
055888,000325:
055889,000326: 07,3211 35000 CAF 2SECS
055890,000327: 07,3212 05214 TC WAITLIST
055891,000328: 07,3213 E3,1474 EBANK= CDUIND
055892,000329: 07,3213 03216 16103 2CADR IMUFINED
055893,000330:
055894,000331:
055895,000332: 07,3215 12741 TCF MODEEXIT
055896,000333:
055897,000334: 07,3216 03645 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
055898,000335: 07,3217 13635 TCF ENDIMU
055899,000336:
Page 1306 |
055901,000338: 07,3220 03652 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
055902,000339: 07,3221 15272 TCF TASKOVER # IT IS.
055903,000340:
055904,000341: 07,3222 34750 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
055905,000342: 07,3223 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
055906,000343: 07,3224 02012 RAND CHAN12
055907,000344: 07,3225 10000 CCS A
055908,000345: 07,3226 15272 TCF TASKOVER
055909,000346:
055910,000347: 07,3227 41277 CS IMODES30 # RESET IMUFAIL.
055911,000348: 07,3230 74737 MASK BIT13
055912,000349: 07,3231 27277 ADS IMODES30
055913,000350: 07,3232 44750 CS BIT4
055914,000351: 07,3233 71277 PFAILOK2 MASK IMODES30
055915,000352: 07,3234 55277 TS IMODES30
055916,000353: 07,3235 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
055917,000354: 07,3236 14703 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
055918,000355: 07,3237 15272 TCF TASKOVER
055919,000356:
055920,000357: 07,3240 03652 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
055921,000358: 07,3241 15272 TCF TASKOVER
055922,000359:
055923,000360: 07,3242 41277 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
055924,000361: 07,3243 74742 MASK BIT10
055925,000362: 07,3244 27277 ADS IMODES30
055926,000363:
055927,000364: 07,3245 41300 CS IMODES33
055928,000365: 07,3246 74737 MASK BIT13
055929,000366: 07,3247 27300 ADS IMODES33
055930,000367:
055931,000368: 07,3250 44747 CS BIT5
055932,000369: 07,3251 13233 TCF PFAILOK2
055933,000370:
055934,000371: 07,3252 43173 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
055935,000372: 07,3253 71035 MASK DSPTAB +11D
055936,000373: 07,3254 64735 AD BIT15
055937,000374: 07,3255 55035 TS DSPTAB +11D
055938,000375: 07,3256 00002 TC Q
055939,000376:
Page 1307 |
055941,000378: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
055942,000379:
055943,000380: 07,3257 44755 PIPUSE CS ZERO
055944,000381: 07,3260 54037 TS PIPAX
055945,000382: 07,3261 54040 TS PIPAY
055946,000383: 07,3262 54041 TS PIPAZ
055947,000384:
055948,000385: 07,3263 03652 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
055949,000386: 07,3264 14631 TCF SWRETURN
055950,000387:
055951,000388: 07,3265 00004 INHINT
055952,000389: 07,3266 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
055953,000390: 07,3267 71277 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
055954,000391: 07,3270 55277 TS IMODES30
055955,000392:
055956,000393: 07,3271 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
055957,000394: 07,3272 14703 CADR SETISSW # (OR GO OFF ON PIPFREE).
055958,000395:
055959,000396: 07,3273 12741 TCF MODEEXIT
055960,000397:
055961,000398: 07,3274 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
055962,000399: 07,3275 41277 CS IMODES30 # ISS WARNING.
055963,000400: 07,3276 74753 MASK BIT1
055964,000401: 07,3277 27277 ADS IMODES30
055965,000402:
055966,000403: 07,3300 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
055967,000404: 07,3301 10000 CCS A # ISS WARNING.
055968,000405: 07,3302 12741 TCF MODEEXIT
055969,000406:
055970,000407: 07,3303 05600 TC ALARM
055971,000408: 07,3304 00212 OCT 212
055972,000409:
055973,000410: 07,3305 00004 INHINT
055974,000411:
055975,000412: 07,3306 13271 TCF PIPFREE2
055976,000413:
Page 1308 |
055978,000415: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
055979,000416: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
055980,000417: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
055981,000418:
055982,000419: 07,3307 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
055983,000420:
055984,000421: 07,3307 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
055985,000422: 07,3310 03657 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
055986,000423:
055987,000424: 07,3311 11311 CCS LGYRO # SEE IF GYROS BUSY.
055988,000425: 07,3312 03353 TC GYROBUSY # SLEEP.
055989,000426:
055990,000427: 07,3313 54156 TS MPAC +2
055991,000428: 07,3314 34746 CAF BIT6 # ENABLE THE POWER SUPPLY.
055992,000429: 07,3315 00006 EXTEND
055993,000430: 07,3316 05014 WOR CHAN14
055994,000431:
055995,000432: 07,3317 34751 CAF FOUR
055996,000433: 07,3320 05214 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
055997,000434: 07,3321 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
055998,000435: 07,3321 03371 16103 2CADR STRTGYRO
055999,000436:
056000,000437:
056001,000438: 07,3323 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
056002,000439: 07,3324 56003 XCH EBANK # RESTORATION ON RETURN.
056003,000440: 07,3325 56161 XCH MPAC +5
056004,000441: 07,3326 55311 TS LGYRO # RESERVES GYROS.
056005,000442: 07,3327 74357 MASK LOW8
056006,000443: 07,3330 54061 TS ITEMP1
056007,000444:
056008,000445: 07,3331 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
056009,000446: 07,3332 54157 GYROAGRE TS MPAC +3
056010,000447: 07,3333 60000 DOUBLE
056011,000448: 07,3334 60061 AD ITEMP1
056012,000449: 07,3335 54160 TS MPAC +4
056013,000450: 07,3336 00006 EXTEND
056014,000451: 07,3337 50000 INDEX A
056015,000452: 07,3340 31401 DCA 1400
056016,000453: 07,3341 52155 DXCH MPAC
056017,000454: 07,3342 07262 TC TPAGREE
056018,000455: 07,3343 52155 DXCH MPAC
056019,000456: 07,3344 50160 INDEX MPAC +4
056020,000457: 07,3345 53401 DXCH 1400
056021,000458:
056022,000459: 07,3346 10157 CCS MPAC +3
056023,000460: 07,3347 13332 TCF GYROAGRE
056024,000461:
056025,000462: 07,3350 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
056026,000463: 07,3351 54003 TS EBANK
056027,000464: 07,3352 12741 TCF MODEEXIT
056028,000465:
Page 1309 |
056030,000467: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
056031,000468:
056032,000469: 07,3353 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
056033,000470: 07,3354 30134 DCA BUF2
056034,000471: 07,3355 52155 DXCH MPAC
056035,000472: 07,3356 33370 REGSLEEP CAF LGWAKE
056036,000473: 07,3357 15133 TCF JOBSLEEP
056037,000474:
056038,000475: 07,3360 11311 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
056039,000476: 07,3361 13356 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
056040,000477:
056041,000478: 07,3362 54156 TS MPAC +2
056042,000479: 07,3363 00006 EXTEND
056043,000480: 07,3364 30155 DCA MPAC
056044,000481: 07,3365 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
056045,000482: 07,3366 34753 CAF ONE
056046,000483: 07,3367 13320 TCF GWAKE2
056047,000484:
056048,000485: 07,3370 17360 LGWAKE CADR GWAKE
056049,000486:
Page 1310 |
056051,000488: # GYRO-TORQUING WAITLIST TASKS.
056052,000489:
056053,000490: 07,3371 43632 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
056054,000491: 07,3372 00006 EXTEND
056055,000492: 07,3373 03014 WAND CHAN14
056056,000493:
056057,000494: 07,3374 03645 TC CAGETEST
056058,000495:
056059,000496: 07,3375 31311 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
056060,000497: 07,3376 00006 EXTEND
056061,000498: 07,3377 74750 MP BIT4
056062,000499: 07,3400 50000 INDEX A
056063,000500: 07,3401 13402 TCF +1
056064,000501: 07,3402 03417 TC GSELECT # =0. DO Y GYRO.
056065,000502: 07,3403 00202 OCT 00202
056066,000503:
056067,000504: 07,3404 03417 TC GSELECT # =1. DO Z GYRO.
056068,000505: 07,3405 00302 OCT 00302
056069,000506:
056070,000507: 07,3406 03415 TC GSELECT -2 # =2. DO X GYRO.
056071,000508: 07,3407 00100 OCT 00100
056072,000509:
056073,000510: 07,3410 34755 CAF ZERO # =3. DONE
056074,000511: 07,3411 55311 TS LGYRO
056075,000512: 07,3412 33370 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
056076,000513: 07,3413 05137 TC JOBWAKE
056077,000514:
056078,000515: 07,3414 13216 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
056079,000516:
Page 1311 |
056081,000518: 07,3415 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
056082,000519: 07,3416 27311 ADS LGYRO
056083,000520:
056084,000521: 07,3417 50002 GSELECT INDEX Q # SELECT GYRO.
056085,000522: 07,3420 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
056086,000523: 07,3421 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
056087,000524: 07,3422 74757 MASK SEVEN
056088,000525: 07,3423 64737 AD BIT13
056089,000526: 07,3424 27311 ADS LGYRO
056090,000527: 07,3425 54003 TS EBANK
056091,000528: 07,3426 74357 MASK LOW8
056092,000529: 07,3427 54061 TS ITEMP1
056093,000530:
056094,000531: 07,3430 44757 CS SEVEN
056095,000532: 07,3431 70064 MASK ITEMP4
056096,000533: 07,3432 54064 TS ITEMP4
056097,000534:
056098,000535: 07,3433 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
056099,000536: 07,3434 50061 INDEX ITEMP1
056100,000537: 07,3435 31401 DCA 1400
056101,000538: 07,3436 52071 DXCH RUPTREG1
056102,000539:
056103,000540: 07,3437 10070 CCS RUPTREG1
056104,000541: 07,3440 13453 TCF MAJ+
056105,000542: 07,3441 13443 TCF +2
056106,000543: 07,3442 13613 TCF MAJ-
056107,000544:
056108,000545: 07,3443 10071 CCS RUPTREG2
056109,000546: 07,3444 13450 TCF MIN+
056110,000547: 07,3445 13375 TCF STRTGYR2
056111,000548: 07,3446 13610 TCF MIN-
056112,000549: 07,3447 13375 TCF STRTGYR2
056113,000550:
Page 1312 |
056115,000552: 07,3450 63504 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
056116,000553: 07,3451 00006 EXTEND # 16 GYRO PULSES.
056117,000554: 07,3452 63375 BZMF STRTGYR2
056118,000555:
056119,000556: 07,3453 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
056120,000557: 07,3454 33634 DCA GYROFRAC
056121,000558: 07,3455 20071 DAS RUPTREG1
056122,000559:
056123,000560: 07,3456 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
056124,000561: 07,3457 00006 EXTEND
056125,000562: 07,3460 05014 WOR CHAN14
056126,000563:
056127,000564: 07,3461 36077 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
056128,000565: 07,3462 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
056129,000566: 07,3463 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
056130,000567: 07,3464 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
056131,000568: 07,3465 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
056132,000569: 07,3466 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
056133,000570: 07,3467 30070 CA RUPTREG1
056134,000571: 07,3470 00006 EXTEND
056135,000572: 07,3471 74743 MP BIT9
056136,000573: 07,3472 54070 TS RUPTREG1
056137,000574: 07,3473 30001 CA L
056138,000575: 07,3474 00006 EXTEND
056139,000576: 07,3475 74736 MP BIT14
056140,000577: 07,3476 26062 ADS ITEMP2 # INITIAL COMMAND.
056141,000578:
056142,000579: 07,3477 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
056143,000580: 07,3500 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
056144,000581: 07,3501 67752 AD MINUS1
056145,000582: 07,3502 10000 CCS A
056146,000583: 07,3503 13547 TCF LONGGYRO
056147,000584: 07,3504 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
056148,000585: 07,3505 13511 TCF +4
056149,000586:
056150,000587: 07,3506 34736 CAF BIT14
056151,000588: 07,3507 26062 ADS ITEMP2
056152,000589: 07,3510 34755 CAF ZERO
056153,000590:
056154,000591: 07,3511 50061 +4 INDEX ITEMP1
056155,000592: 07,3512 53401 DXCH 1400
Page 1313 |
056157,000594: 07,3513 30062 CA ITEMP2 # ENTIRE COMMAND.
056158,000595: 07,3514 54047 LASTSEG TS GYROCMD
056159,000596: 07,3515 00006 EXTEND
056160,000597: 07,3516 74742 MP BIT10 # WAITLIST DT
056161,000598: 07,3517 66250 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
056162,000599: 07,3520 05214 TC WAITLIST
056163,000600: 07,3521 E3,1474 EBANK= CDUIND
056164,000601: 07,3521 03533 16103 2CADR TWOPULSE
056165,000602:
056166,000603: 07,3523 03527 EXITGYRO TC GYROEXIT
056167,000604: 07,3524 15272 TCF TASKOVER
056168,000605: 07,3525 34752 OUTPULSE CA BIT2
056169,000606: 07,3526 54047 TS GYROCMD
056170,000607: 07,3527 34742 GYROEXIT CAF BIT10
056171,000608: 07,3530 00006 EXTEND
056172,000609: 07,3531 05014 WOR CHAN14
056173,000610: 07,3532 00002 TC Q
056174,000611: 07,3533 44743 TWOPULSE CS BIT9
056175,000612: 07,3534 00006 EXTEND
056176,000613: 07,3535 03014 WAND CHAN14
056177,000614: 07,3536 03525 TC OUTPULSE
056178,000615: 07,3537 34753 CA BIT1
056179,000616: 07,3540 05204 TC TWIDDLE
056180,000617: 07,3541 03371 ADRES STRTGYRO
056181,000618: 07,3542 34743 CA BIT9
056182,000619: 07,3543 00006 EXTEND
056183,000620: 07,3544 05014 WOR CHAN14
056184,000621: 07,3545 03525 TC OUTPULSE
056185,000622: 07,3546 15272 TCF TASKOVER
056186,000623: 07,3547 50061 LONGGYRO INDEX ITEMP1
056187,000624: 07,3550 53401 DXCH 1400
056188,000625: 07,3551 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
056189,000626: 07,3552 60062 AD ITEMP2
056190,000627: 07,3553 54047 TS GYROCMD
056191,000628:
056192,000629: 07,3554 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
056193,000630: 07,3555 74742 MP BIT10 # ALMOST OUT.
056194,000631: 07,3556 67750 AD NEG3
056195,000632: 07,3557 05214 TC WAITLIST
056196,000633: 07,3560 E3,1474 EBANK= CDUIND
056197,000634: 07,3560 03563 16103 2CADR 8192AUG
056198,000635:
056199,000636: 07,3562 13523 TCF EXITGYRO
056200,000637:
056201,000638: 07,3563 03645 8192AUG TC CAGETEST
056202,000639:
056203,000640: 07,3564 34750 CAF BIT4
056204,000641: 07,3565 00006 EXTEND
056205,000642: 07,3566 02012 RAND CHAN12
056206,000643: 07,3567 10000 CCS A
056207,000644: 07,3570 13643 TCF IMUBAD
056208,000645: 07,3571 31311 CA LGYRO # ADD 8192 PULSES TO GYROCMD
056209,000646: 07,3572 54003 TS EBANK
Page 1314 |
056211,000648: 07,3573 74357 MASK LOW8
056212,000649: 07,3574 54061 TS ITEMP1
056213,000650:
056214,000651: 07,3575 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
056215,000652: 07,3576 11400 CCS 1400
056216,000653: 07,3577 13603 TCF AUG2 # MORE TO COME.
056217,000654:
056218,000655: 07,3600 34736 CAF BIT14
056219,000656: 07,3601 26047 ADS GYROCMD
056220,000657: 07,3602 13515 TCF LASTSEG +1
056221,000658:
056222,000659: 07,3603 50061 AUG2 INDEX ITEMP1
056223,000660: 07,3604 55400 TS 1400
056224,000661: 07,3605 34736 CAF BIT14
056225,000662: 07,3606 26047 ADS GYROCMD
056226,000663: 07,3607 13554 TCF AUG3 # COMPUTE DT.
056227,000664:
Page 1315 |
056229,000666: 07,3610 63504 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
056230,000667: 07,3611 00006 EXTEND
056231,000668: 07,3612 63375 BZMF STRTGYR2
056232,000669:
056233,000670: 07,3613 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
056234,000671: 07,3614 43634 DCS GYROFRAC
056235,000672: 07,3615 20071 DAS RUPTREG1
056236,000673:
056237,000674: 07,3616 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
056238,000675: 07,3617 64743 AD BIT9
056239,000676: 07,3620 00006 EXTEND
056240,000677: 07,3621 05014 WOR CHAN14
056241,000678:
056242,000679: 07,3622 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
056243,000680: 07,3623 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
056244,000681: 07,3624 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
056245,000682: 07,3625 76077 MASK LOW7 # THE SIGN OF THE COMMAND.
056246,000683: 07,3626 40000 COM
056247,000684: 07,3627 56071 XCH RUPTREG2
056248,000685: 07,3630 40000 COM
056249,000686: 07,3631 13464 TCF GMERGE
056250,000687:
056251,000688: 07,3632 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
056252,000689:
056253,000690: 07,3633 00000 00034 GYROFRAC 2DEC .215 B-21
056254,000691:
Page 1316 |
056256,000693: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
056257,000694:
056258,000695: 07,3635 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
056259,000696: 07,3636 00011 READ DSALMOUT # ISS WARNING IS ON.
056260,000697: 07,3637 74753 MASK BIT1
056261,000698: 07,3640 10000 CCS A
056262,000699: 07,3641 13643 TCF IMUBAD
056263,000700:
056264,000701: 07,3642 13671 IMUGOOD TCF GOODEND # WITH C(A) = 0.
056265,000702:
056266,000703: 07,3643 34755 IMUBAD CAF ZERO
056267,000704: 07,3644 13666 TCF BADEND
056268,000705:
056269,000706: 07,3645 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
056270,000707: 07,3646 71277 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
056271,000708: 07,3647 10000 CCS A
056272,000709: 07,3650 13643 TCF IMUBAD # DIRECTLY.
056273,000710: 07,3651 00002 TC Q # WITH C(A) = +0.
056274,000711:
056275,000712: 07,3652 41277 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
056276,000713: 07,3653 74746 MASK BIT6
056277,000714: 07,3654 10000 CCS A
056278,000715: 07,3655 24002 INCR Q
056279,000716: 07,3656 00002 TC Q
056280,000717:
056281,000718: 07,3657 41277 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
056282,000719: 07,3660 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
056283,000720: 07,3661 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
056284,000721: 07,3662 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
056285,000722:
056286,000723: 07,3663 44755 CS ZERO # TO SWRETURN.
056287,000724: 07,3664 55301 TS IMUCADR
056288,000725: 07,3665 12741 TCF MODEEXIT
056289,000726:
Page 1317 |
056291,000728: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
056292,000729: # OR AT BADEND FOR A N UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
056293,000730:
056294,000731: 07,3666 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
056295,000732: 07,3667 44755 CS ZERO # FOR FAILURE.
056296,000733: 07,3670 13673 TCF GOODEND +2
056297,000734:
056298,000735: 07,3671 54071 GOODEND TS RUPTREG2
056299,000736: 07,3672 44753 CS ONE # FOR SUCCESS.
056300,000737:
056301,000738: 07,3673 54072 TS RUPTREG3
056302,000739: 07,3674 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
056303,000740: 07,3675 11301 CCS MODECADR
056304,000741: 07,3676 13702 TCF +4 # YES - WAKE IT UP.
056305,000742: 07,3677 13712 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
056306,000743:
056307,000744: 07,3700 00006 EXTEND
056308,000745: 07,3701 13713 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0.
056309,000746:
056310,000747: 07,3702 34755 CAF ZERO # WAKE SLEEPING PROGRAM.
056311,000748: 07,3703 50071 INDEX RUPTREG2
056312,000749: 07,3704 57301 XCH MODECADR
056313,000750: 07,3705 05137 TC JOBWAKE
056314,000751:
056315,000752: 07,3706 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
056316,000753: 07,3707 50064 INDEX LOCCTR
056317,000754: 07,3710 26164 ADS LOC
056318,000755:
056319,000756: 07,3711 15272 TCF TASKOVER
056320,000757:
056321,000758: 07,3712 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
056322,000759: 07,3713 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
056323,000760: 07,3714 55301 TS MODECADR # SUCCESSFUL.
056324,000761: 07,3715 15272 TCF TASKOVER
056325,000762:
Page 1318 |
056327,000764: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
056328,000765:
056329,000766: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
056330,000767: # LOG SECTION IMU MODE SWITCHING
056331,000768: # MOD BY- R.MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
056332,000769:
056333,000770: # FUNCTIONAL DESCRIPTION-
056334,000771: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
056335,000772: # I/O FUNCTION IS COMPLETE.THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
056336,000773: # MODECADR ARE MADE AND ACTED UPON.
056337,000774: # 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO
056338,000775: # SLEEP.
056339,000776: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
056340,000777: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
056341,000778: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
056342,000779: # AND RETURNS TO CALLING ROUTINE AT L+2.
056343,000780: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
056344,000781: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
056345,000782: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
056346,000783:
056347,000784: # CALLING SEQUENCE-
056348,000785: # L TC BANKCALL
056349,000786: # L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL,OPTSTALL,RADSTALL,
056350,000787: # AOTSTALL,OR ATTSTALL)
056351,000788:
056352,000789: # NORMAL-EXIT MODE-
056353,000790: # TCF JOBSLEEP OR TCF MODEXIT
056354,000791:
056355,000792: # ALARM OR ABORT EXIT MODE-
056356,000793: # TC ABORT
056357,000794:
056358,000795: # OUTPUT-
056359,000796: # MODECADR= CADR IF JOBSLEEP
056360,000797: # MODECADR=+0 IF I/O COMPLETE
056361,000798: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
056362,000799: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
056363,000800:
056364,000801: # ERASABLE INITIALIZATION-
056365,000802: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
056366,000803: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
056367,000804: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
056368,000805:
056369,000806: # DEBRIS-
056370,000807: # RUPTREG2 AND CALLING ROUTINE MODECADR.
056371,000808:
056372,000809: 07,3716 34753 AOTSTALL CAF ONE # AOT.
056373,000810: 07,3717 03723 TC STALL
056374,000811:
056375,000812: 07,3720 34752 RADSTALL CAF TWO
056376,000813: 07,3721 13723 TCF STALL
056377,000814:
Page 1319 |
056379,000816: 07,3722 07,3716 OPTSTALL EQUALS AOTSTALL
056380,000817:
056381,000818: 07,3722 34755 IMUSTALL CAF ZERO # IMU.
056382,000819:
056383,000820: 07,3723 00004 STALL INHINT
056384,000821: 07,3724 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
056385,000822: 07,3725 50000 INDEX A # SEE IF OPERATION COMPLETE.
056386,000823: 07,3726 11301 CCS MODECADR
056387,000824: 07,3727 13745 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
056388,000825: 07,3730 13741 TCF MODESLP # OPERATION INCOMPLETE.
056389,000826: 07,3731 13735 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
056390,000827:
056391,000828: 07,3732 50071 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
056392,000829: 07,3733 55301 TS MODECADR # RETURN TO CALLER.
056393,000830: 07,3734 12741 TCF MODEEXIT
056394,000831:
056395,000832: 07,3735 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
056396,000833: 07,3736 13745 TCF MODABORT
056397,000834:
056398,000835: 07,3737 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
056399,000836: 07,3740 13732 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
056400,000837:
056401,000838: 07,3741 04645 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
056402,000839: 07,3742 50071 INDEX RUPTREG2
056403,000840: 07,3743 55301 TS MODECADR
056404,000841: 07,3744 15133 TCF JOBSLEEP
056405,000842:
056406,000843: 07,3745 52134 MODABORT DXCH BUF2
056407,000844: 07,3746 05717 TC BAILOUT1 # TWO PROGRAMS USING THE SAME DEVICE.
056408,000845: 07,3747 31210 OCT 31210
056409,000846:
Page 1320 |
056411,000848: # CONSTANTS FOR MODE SWITCHING ROUTINES
056412,000849:
056413,000850: 07,3750 5752 BITS3&4 = OCT14
056414,000851: 07,3750 4771 BITS4&6 = OCT50
056415,000852: 07,3750 00030 BITS4-5 OCT 00030
056416,000853: 07,3751 4744 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
056417,000854: 07,3751 77500 -COMMAX DEC -191 B-14
056418,000855: 07,3752 77477 -COMMAX- DEC -192 B-14
056419,000856: 07,3753 00074 600MS DEC 60 B-14
056420,000857: 07,3754 07,3174 IMUFIN20 = IMUFINE
056421,000858: 07,3754 31304 GOMANUR CA ATTCADR # IS KALCMANU FREE
056422,000859: 07,3755 00006 EXTEND
056423,000860: 07,3756 13760 BZF +2
056424,000861: 07,3757 03745 TC MODABORT # BAILOUT
056425,000862: 07,3760 00006 +2 EXTEND
056426,000863: 07,3761 30134 DCA BUF2
056427,000864: 07,3762 53305 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
056428,000865:
056429,000866: 07,3763 30006 CA BBANK
056430,000867: 07,3764 74757 MASK SEVEN
056431,000868: 07,3765 27305 ADS ATTCADR +1
056432,000869:
056433,000870: 07,3766 30167 CA PRIORITY
056434,000871: 07,3767 77730 MASK PRIO37
056435,000872: 07,3770 55306 TS ATTPRIO # SAVE USERS PRIO
056436,000873:
056437,000874: 07,3771 33775 CAF KALEBCON # SET EBANK FOR KALCMAN3
056438,000875: 07,3772 54003 TS EBANK
056439,000876: 07,3773 04635 TC POSTJUMP
056440,000877: 07,3774 44004 CADR KALCMAN3
056441,000878: 07,3775 03275 KALEBCON ECADR BCDU
056442,000879:
Page 1321 |
056444,000881: # PROGRAM DESCRIPTION
056445,000882: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
056446,000883: # MOD NO - 1
056447,000884: # MOD BY - N.BRODEUR
056448,000885: # FUNCTIONAL DESCRIPTION
056449,000886:
056450,000887: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
056451,000888: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
056452,000889: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
056453,000890: # CMC. CALLED THROUGH BANKCALL
056454,000891: # CALLING SEQUENCE-
056455,000892:
056456,000893: # L TC BANKCALL
056457,000894: # L+1 CADR R02BOTH
056458,000895: # SUBROUTINES CALLED
056459,000896:
056460,000897: # VARALARM
056461,000898: # FLAGUP
056462,000899: # NORMAL EXIT MODES
056463,000900:
056464,000901: # AT L+2 OF CALLING SEQUENCE
056465,000902: # ALARM OR ABORT EXIT MODES
056466,000903: # GOTOPOOH, WITH ALARM
056467,000904: # ERASABLE INITIALIZATION REQUIRED
056468,000905:
056469,000906: # NONE
056470,000907: # DEBRIS
056471,000908:
056472,000909: # CENTRALS-A,Q,L
056473,000910: 34,3574 BANK 34
056474,000911: 04,2000 SETLOC R02
056475,000912: 04,2000 BANK
056476,000913: 04,3240 COUNT* $$/R02
056477,000914: 04,3240 00063 DEC51 DEC 51 B-14
056478,000915: 04,3241 34737 R02BOTH CAF REFSMBIT
056479,000916: 04,3242 70077 MASK FLAGWRD3
056480,000917: 04,3243 10000 CCS A
056481,000918: 04,3244 03255 TC R02ZERO # ZERO IMUS
056482,000919:
056483,000920: 04,3245 31277 CA IMODES30
056484,000921: 04,3246 74743 MASK BIT9 # IS ISS INITIALIZED
056485,000922: 04,3247 00006 EXTEND
056486,000923: 04,3250 13252 BZF +2
056487,000924: 04,3251 44750 CS BIT4 # SEND IMU ALARM CODE 210
056488,000925: 04,3252 63260 AD OCT220 # SEND REFSMM ALARM
056489,000926: 04,3253 05745 TC VARALARM
056490,000927:
056491,000928: 04,3254 06001 TC GOTOPOOH
056492,000929:
056493,000930: 04,3255 05515 R02ZERO TC UPFLAG
Page 1322 |
056495,000932: 04,3256 00007 ADRES IMUSE
056496,000933: 04,3257 14631 TCF SWRETURN
056497,000934: 04,3260 00220 OCT220 OCT 220
056498,000935:
Page 1323 |
056500,000937: # PROGRAM DESCRIPTION P06 10FEB67
056501,000938:
056502,000939: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
056503,000940:
056504,000941: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
056505,000942: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
056506,000943: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
056507,000944:
056508,000945: # CALLING SEQUENCE:
056509,000946: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
056510,000947:
056511,000948: # SUBROUTINES CALLED:
056512,000949: # GOPERF1
056513,000950: # BANKCALL
056514,000951: # FLAGDOWN
056515,000952:
Page 1324 |
056517,000954: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
056518,000955: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
056519,000956: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
056520,000957:
056521,000958: 37,2000 SETLOC P05P06
056522,000959: 37,2000 BANK
056523,000960:
056524,000961: 37,3654 0314 EBANK= TIME2SAV
056525,000962: 37,3654 COUNT* $$/P06
056526,000963:
056527,000964: 37,3654 05515 P06 TC UPFLAG # SET NODOV37 BIT
056528,000965: 37,3655 00054 ADRES NODOFLAG
056529,000966:
056530,000967: 37,3656 00004 PRESTAND INHINT
056531,000968: 37,3657 00006 EXTEND
056532,000969: 37,3660 30025 DCA TIME2 # SNAPSHOT TIME1TIME2
056533,000970: 37,3661 52315 DXCH TIME2SAV
056534,000971: 37,3662 03713 TC SCALPREP
056535,000972: 37,3663 03656 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
056536,000973: 37,3664 52155 DXCH MPAC # T1,T2 AND SCALER OK
056537,000974: 37,3665 52317 DXCH SCALSAVE # STORE SCALER
056538,000975: 37,3666 00004 INHINT
056539,000976: 37,3667 04616 TC BANKCALL
056540,000977: 37,3670 17161 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
056541,000978:
056542,000979: 37,3671 05527 TC DOWNFLAG
056543,000980: 37,3672 00007 ADRES IMUSE # IMUSE DOWN
056544,000981: 37,3673 05527 TC DOWNFLAG
056545,000982: 37,3674 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
056546,000983:
056547,000984: 37,3675 34741 CAF BIT11
056548,000985: 37,3676 00006 EXTEND
056549,000986: 37,3677 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
056550,000987:
056551,000988: 37,3700 05364 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
056552,000989: 37,3701 07024 OCT 07024 # RECOVERS
056553,000990: 37,3702 20000 OCT 20000
056554,000991: 37,3703 0316 EBANK= SCALSAVE
056555,000992: 37,3703 03733 76060 2CADR POSTAND
056556,000993:
056557,000994: 37,3705 34774 CAF OCT62
056558,000995: 37,3706 04616 TC BANKCALL
056559,000996: 37,3707 20624 CADR GOPERF1
056560,000997: 37,3710 13705 TCF -3
056561,000998: 37,3711 13705 TCF -4
056562,000999: 37,3712 13705 TCF -5
056563,001000:
056564,001001: 37,3713 4774 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
056565,001002:
056566,001003: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
Page 1325 |
056568,001005: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
056569,001006: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
056570,001007: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
056571,001008: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
056572,001009: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
056573,001010: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
056574,001011: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
056575,001012: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
056576,001013: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
056577,001014:
056578,001015: 37,3713 00006 SCALPREP EXTEND
056579,001016: 37,3714 22156 QXCH MPAC +2
056580,001017: 37,3715 04103 TC FINETIME +1
056581,001018: 37,3716 00003 RELINT
056582,001019: 37,3717 52155 DXCH MPAC
056583,001020: 37,3720 34747 CA BIT5 # ADD 5 MS TO THE SCALER READING.
056584,001021: 37,3721 54001 TS L
056585,001022: 37,3722 34755 CA ZERO
056586,001023: 37,3723 20155 DAS MPAC
056587,001024: 37,3724 44346 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
056588,001025: 37,3725 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
056589,001026: 37,3726 56155 XCH MPAC +1
056590,001027: 37,3727 74346 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
056591,001028: # INTERVAL AFTER THE T1 INCREMENT
056592,001029: # (NOW = 00000, SINCE BIT 5 ADDED).
056593,001030: 37,3730 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
056594,001031: 37,3731 24156 INCR MPAC +2 # NO
056595,001032: 37,3732 00156 TC MPAC +2 # YES
056596,001033:
056597,001034: # POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE
056598,001035: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
056599,001036: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
056600,001037: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
056601,001038: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
056602,001039: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
056603,001040:
056604,001041: 37,3733 COUNT* $$/P05
056605,001042:
056606,001043: 37,3733 44741 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
056607,001044: 37,3734 00006 EXTEND
056608,001045: 37,3735 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
056609,001046: 37,3736 00004 INHINT
056610,001047: 37,3737 34755 CA ZERO
056611,001048: 37,3740 54001 TS L
056612,001049: 37,3741 52025 DXCH TIME2 # CLEAR TIME1TIME2
056613,001050: 37,3742 03713 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
056614,001051: 37,3743 03736 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
056615,001052: 37,3744 00006 EXTEND # T1,T2 AND SCALER OK
056616,001053: 37,3745 40317 DCS SCALSAVE
056617,001054: 37,3746 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
Page 1326 |
056619,001056: 37,3747 34742 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
056620,001057: 37,3750 07312 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1TIME2.
056621,001058: 37,3751 34755 CAF ZERO
056622,001059: 37,3752 54156 TS MPAC +2 # NEEDED FOR TP AGREE
056623,001060: 37,3753 07262 TC TPAGREE # MAKE DP DIFF AGREE
056624,001061: 37,3754 10154 CCS MPAC
056625,001062: 37,3755 03762 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
056626,001063: 37,3756 03762 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
056627,001064: 37,3757 03760 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
056628,001065: 37,3760 34742 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
056629,001066: 37,3761 26154 ADS MPAC
056630,001067: 37,3762 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
056631,001068: 37,3763 30315 DCA TIME2SAV # PRESTANDBY TIME1TIME2
056632,001069: 37,3764 20155 DAS MPAC
056633,001070: 37,3765 07262 TC TPAGREE # FORCE SIGN AGREEMENT
056634,001071: 37,3766 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
056635,001072: 37,3767 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
056636,001073: 37,3770 05527 TC DOWNFLAG # CLEAR NODOFLAG
056637,001074: 37,3771 00054 ADRES NODOFLAG
056638,001075:
056639,001076: 37,3772 06001 TC GOTOPOOH
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc