Source Code
These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9
LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of
original core rope program modules, as follows:
|
051528,000002: ## Copyright: Public domain.
051529,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
051530,000004: ## Purpose: A section of an attempt to reconstruct Sundance revision 306
051531,000005: ## as closely as possible with available information. Sundance
051532,000006: ## 306 is the source code for the Lunar Module's (LM) Apollo
051533,000007: ## Guidance Computer (AGC) for Apollo 9. This program was created
051534,000008: ## using the mixed-revision SundanceXXX as a starting point, and
051535,000009: ## pulling back features from Luminary 69 believed to have been
051536,000010: ## added based on memos, checklists, observed address changes,
051537,000011: ## or the Sundance GSOPs.
051538,000012: ## Assembler: yaYUL
051539,000013: ## Contact: Ron Burkey <info@sandroid.org>.
051540,000014: ## Website: www.ibiblio.org/apollo/index.html
051541,000015: ## Mod history: 2020-07-24 MAS Created from SundanceXXX.
051542,000016: ## 2020-07-29 MAS Moved ZEROICDU to bank 3.
051543,000017:
051544,000018:
051545,000019: ## The following routine is located in bank 2 in Sundance 292.
051546,000020: 7722 BLOCK 03
051547,000021: 6000 SETLOC FFTAG5
051548,000022: 6000 BANK
051549,000023:
051550,000024: 7722 E3,1471 EBANK= COMMAND
051551,000025:
051552,000026: # FIXED-FIXED ROUTINES.
051553,000027:
051554,000028: 7722 COUNT* $$/IMODE
051555,000029: 7722 35030 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
051556,000030: 7723 54032 TS CDUX
051557,000031: 7724 54033 TS CDUY
051558,000032: 7725 54034 TS CDUZ
051559,000033: 7726 00002 TC Q
051560,000034:
051561,000035: 7727 5016 SPSCODE = BIT9
051562,000036:
051563,000037:
051564,000038: # IMU ZEROING ROUTINE.
051565,000039:
051566,000040: 11,3772 BANK 11
051567,000041: 07,2000 SETLOC MODESW
051568,000042: 07,2000 BANK
051569,000043:
051570,000044: 07,2622 COUNT* $$/IMODE
051571,000045: 07,2622 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
051572,000046: 07,2623 41037 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
051573,000047: 07,2624 75041 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
051574,000048: 07,2625 10000 CCS A
051575,000049: 07,2626 12632 TCF IMUZEROA
051576,000050:
051577,000051: 07,2627 05651 TC ALARM # IF SO.
051578,000052: 07,2630 00206 OCT 00206
051579,000053:
051580,000054: 07,2631 13570 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
051581,000055:
051582,000056: 07,2632 03557 IMUZEROA TC CAGETSTQ # IF IMU COMING UP, TURN-ON PROGRAM WILL
051583,000057: 07,2633 12664 TCF MODEEXIT # DO ALL THE WORK.
051584,000058:
051585,000059: 07,2634 41305 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
051586,000060: 07,2635 75043 MASK SUPER011 # BIT5 FOR GROUND
051587,000061: 07,2636 27305 ADS IMODES33
051588,000062:
051589,000063: 07,2637 41304 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
051590,000064: 07,2640 75746 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
051591,000065: 07,2641 27304 ADS IMODES30
051592,000066:
051593,000067: 07,2642 45041 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
051594,000068: 07,2643 00006 EXTEND # COUNTER DISABLED.
051595,000069: 07,2644 03012 WAND CHAN12
051596,000070:
051597,000071: 07,2645 03177 TC NOATTOFF # TURN OFF NO ATT LAMP.
051598,000072:
051599,000073: 07,2646 35022 CAF BIT5
051600,000074: 07,2647 00006 EXTEND
051601,000075: 07,2650 05012 WOR CHAN12
051602,000076:
051603,000077: 07,2651 07722 TC ZEROICDU
051604,000078: 07,2652 35021 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
051605,000079: 07,2653 05252 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
051606,000080: 07,2654 E3,1474 EBANK= CDUIND
051607,000081: 07,2654 02666 16103 2CADR IMUZERO2
051608,000082:
051609,000083: 07,2656 41304 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
051610,000084: 07,2657 75016 MASK BIT9
051611,000085: 07,2660 10000 CCS A
051612,000086: 07,2661 12664 TCF MODEEXIT
051613,000087: 07,2662 05651 TC ALARM
051614,000088: 07,2663 00210 OCT 210
051615,000089:
051616,000090: 07,2664 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
051617,000091: 07,2665 14670 TCF SWRETURN
051618,000092:
051619,000093: 07,2666 03557 IMUZERO2 TC CAGETSTQ # POSSIBLY SWITCH TO TURN-ON PROGRAM.
051620,000094: 07,2667 15331 TCF TASKOVER
051621,000095: 07,2670 07722 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
051622,000096:
051623,000097: 07,2671 45022 CS BIT5 # REMOVE ZERO DISCRETE.
051624,000098: 07,2672 00006 EXTEND
051625,000099: 07,2673 03012 WAND CHAN12
051626,000100:
051627,000101: 07,2674 35014 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
051628,000102: 07,2675 05274 TC VARDELAY
051629,000103:
051630,000104: 07,2676 03557 IMUZERO3 TC CAGETSTQ
051631,000105: 07,2677 15331 TCF TASKOVER
051632,000106:
051633,000107: 07,2700 45746 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
051634,000108: 07,2701 71304 MASK IMODES30
051635,000109: 07,2702 55304 TS IMODES30
051636,000110:
051637,000111: 07,2703 45043 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
051638,000112: 07,2704 71305 MASK IMODES33 # BIT5 FOR GROUND
051639,000113: 07,2705 55305 TS IMODES33
051640,000114:
051641,000115: 07,2706 04737 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
051642,000116: 07,2707 14705 CADR SETISSW # PRESENT.
051643,000117:
051644,000118: 07,2710 13542 TCF ENDIMU
051645,000119:
051646,000120: # IMU COARSE ALIGN MODE.
051647,000121:
051648,000122: 07,2711 00004 IMUCOARS INHINT
051649,000123: 07,2712 03564 TC CAGETSTJ
051650,000124: 07,2713 03055 TC SETCOARS
051651,000125:
051652,000126: 07,2714 36216 CAF SIX
051653,000127: 07,2715 05252 TC WAITLIST
051654,000128: 07,2716 E3,1474 EBANK= CDUIND
051655,000129: 07,2716 02721 16103 2CADR COARS
051656,000130:
051657,000131: 07,2720 12664 TCF MODEEXIT
051658,000132:
051659,000133: 07,2721 03552 COARS TC CAGETEST
051660,000134: 07,2722 35021 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
051661,000135: 07,2723 00006 EXTEND
051662,000136: 07,2724 05012 WOR CHAN12
051663,000137:
051664,000138: 07,2725 35025 CAF TWO # SET CDU INDICATOR
051665,000139: 07,2726 55474 COARS1 TS CDUIND
051666,000140:
051667,000141: 07,2727 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
051668,000142: 07,2730 31206 CA THETAD # COMPLEMENT FORM
051669,000143: 07,2731 00006 EXTEND
051670,000144: 07,2732 51474 INDEX CDUIND
051671,000145: 07,2733 20032 MSU CDUX
051672,000146: 07,2734 00006 EXTEND
051673,000147: 07,2735 75012 MP BIT13 # SHIFT RIGHT 2
051674,000148: 07,2736 56001 XCH L # ROUND
051675,000149: 07,2737 60000 DOUBLE
051676,000150: 07,2740 54061 TS ITEMP1
051677,000151: 07,2741 12743 TCF +2
051678,000152: 07,2742 26001 ADS L
051679,000153:
051680,000154: 07,2743 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
051681,000155: 07,2744 23471 LXCH COMMAND
051682,000156: 07,2745 11474 CCS CDUIND
051683,000157: 07,2746 02726 TC COARS1
051684,000158:
051685,000159: 07,2747 35025 CAF TWO # MINIMUM OF 4 MS WAIT
051686,000160: 07,2750 05274 TC VARDELAY
051687,000161:
051688,000162: 07,2751 03552 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
051689,000163: 07,2752 54061 TS ITEMP1 # SETS TO +0.
051690,000164: 07,2753 35025 CAF TWO # SET CDU INDICATOR
051691,000165: 07,2754 55474 +3 TS CDUIND
051692,000166:
051693,000167: 07,2755 51474 INDEX CDUIND
051694,000168: 07,2756 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
051695,000169: 07,2757 02763 TC COMPOS # GREATER THAN MAX ALLOWED
051696,000170: 07,2760 02772 TC NEXTCDU +1
051697,000171: 07,2761 03030 TC COMNEG
051698,000172: 07,2762 02772 TC NEXTCDU +1
051699,000173:
051700,000174: 07,2763 63653 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
051701,000175: 07,2764 00006 EXTEND # MINUS ONE
051702,000176: 07,2765 63040 BZMF COMZERO
051703,000177: 07,2766 51474 INDEX CDUIND
051704,000178: 07,2767 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
051705,000179: 07,2770 43654 CS -COMMAX- # ALLOWED
051706,000180:
051707,000181: 07,2771 24061 NEXTCDU INCR ITEMP1
051708,000182: 07,2772 65027 AD NEG0
051709,000183: 07,2773 51474 INDEX CDUIND
051710,000184: 07,2774 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
051711,000185:
051712,000186: 07,2775 11474 CCS CDUIND
051713,000187: 07,2776 02754 TC COARS2 +3
051714,000188:
051715,000189: 07,2777 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
051716,000190: 07,3000 13044 TCF SENDPULS
051717,000191:
051718,000192: 07,3001 05271 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
051719,000193: 07,3002 00226 DEC 150 B-14
051720,000194:
051721,000195: 07,3003 35025 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
051722,000196: 07,3004 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
051723,000197: 07,3005 50000 INDEX A
051724,000198: 07,3006 30032 CA CDUX
051725,000199: 07,3007 00006 EXTEND
051726,000200: 07,3010 50061 INDEX ITEMP1
051727,000201: 07,3011 21206 MSU THETAD
051728,000202: 07,3012 10000 CCS A
051729,000203: 07,3013 13021 TCF COARSERR
051730,000204: 07,3014 13016 TCF CORSCHK2
051731,000205: 07,3015 13021 TCF COARSERR
051732,000206:
051733,000207: 07,3016 10061 CORSCHK2 CCS ITEMP1
051734,000208: 07,3017 13004 TCF CHKCORS
051735,000209: 07,3020 13542 TCF ENDIMU # END OF COARSE ALIGNMENT.
051736,000210:
051737,000211: 07,3021 63027 COARSERR AD COARSTOL # 2 DEGREES.
051738,000212: 07,3022 00006 EXTEND
051739,000213: 07,3023 63016 BZMF CORSCHK2
051740,000214:
051741,000215: 07,3024 05651 TC ALARM # COARSE ALIGN ERROR.
051742,000216: 07,3025 00211 OCT 211
051743,000217:
051744,000218: 07,3026 13550 TCF IMUBAD
051745,000219:
051746,000220: 07,3027 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
051747,000221:
051748,000222: 07,3030 63653 COMNEG AD -COMMAX
051749,000223: 07,3031 00006 EXTEND
051750,000224: 07,3032 63040 BZMF COMZERO
051751,000225: 07,3033 40000 COM
051752,000226: 07,3034 51474 INDEX CDUIND
051753,000227: 07,3035 55471 TS COMMAND
051754,000228: 07,3036 33654 CA -COMMAX-
051755,000229: 07,3037 02771 TC NEXTCDU
051756,000230:
051757,000231: 07,3040 35030 COMZERO CAF ZERO
051758,000232: 07,3041 51474 INDEX CDUIND
051759,000233: 07,3042 57471 XCH COMMAND
051760,000234: 07,3043 02771 TC NEXTCDU
051761,000235:
051762,000236: 07,3044 37711 SENDPULS CAF 13,14,15
051763,000237: 07,3045 00006 EXTEND
051764,000238: 07,3046 05014 WOR CHAN14
051765,000239: 07,3047 33655 CAF 600MS
051766,000240: 07,3050 12750 TCF COARS2 -1 # THEN TO VARDELAY
051767,000241:
051768,000242: 07,3051 35021 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
051769,000243: 07,3052 00006 EXTEND
051770,000244: 07,3053 05012 WOR CHAN12
051771,000245: 07,3054 05331 TC TASKOVER
051772,000246:
051773,000247: 07,3055 35023 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
051774,000248: 07,3056 00006 EXTEND
051775,000249: 07,3057 02012 RAND CHAN12
051776,000250: 07,3060 10000 CCS A
051777,000251: 07,3061 00002 TC Q
051778,000252:
051779,000253: 07,3062 45021 CS BIT6 # CLEAR ISS ERROR COUNTERS
051780,000254: 07,3063 00006 EXTEND
051781,000255: 07,3064 03012 WAND CHAN12
051782,000256:
051783,000257: 07,3065 45015 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
051784,000258: 07,3066 00006 EXTEND
051785,000259: 07,3067 03014 WAND CHAN14
051786,000260: 07,3070 45030 CS ZERO
051787,000261: 07,3071 54047 TS GYROCMD
051788,000262:
051789,000263: 07,3072 35023 CAF BIT4 # PUT ISS IN COARSE ALIGN
051790,000264: 07,3073 00006 EXTEND
051791,000265: 07,3074 05012 WOR CHAN12
051792,000266:
051793,000267: 07,3075 41037 CS DSPTAB +11D # TURN ON NO ATT LAMP
051794,000268: 07,3076 73120 MASK OCT40010
051795,000269: 07,3077 27037 ADS DSPTAB +11D
051796,000270:
051797,000271: 07,3100 41305 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
051798,000272: 07,3101 75021 MASK BIT6
051799,000273: 07,3102 27305 ADS IMODES33
051800,000274:
051801,000275: 07,3103 41304 CS IMODES30 # DISABLE IMUFAIL
051802,000276: 07,3104 75023 MASK BIT4
051803,000277: 07,3105 27304 ADS IMODES30
051804,000278:
051805,000279: 07,3106 45022 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG
051806,000280: 07,3107 70075 MASK FLAGWRD1
051807,000281: 07,3110 54075 TS FLAGWRD1
051808,000282:
051809,000283: 07,3111 45010 CS DRFTBIT # CLEAR DRIFT FLAG
051810,000284: 07,3112 70076 MASK FLAGWRD2
051811,000285: 07,3113 54076 TS FLAGWRD2
051812,000286:
051813,000287: 07,3114 45012 CS REFSMBIT # CLEAR REFSMMAT FLAG
051814,000288: 07,3115 70077 MASK FLAGWRD3
051815,000289: 07,3116 54077 TS FLAGWRD3
051816,000290:
051817,000291: 07,3117 00002 TC Q
051818,000292:
051819,000293: 07,3120 40010 OCT40010 OCT 40010
051820,000294:
051821,000295: # IMU FINE ALIGN MODE SWITCH.
051822,000296:
051823,000297: 07,3121 00004 IMUFINE INHINT
051824,000298: 07,3122 03564 TC CAGETSTJ # SEE IF IMU BEING CAGED.
051825,000299:
051826,000300: 07,3123 43652 CS BITS4-5 # RESET ZERO AND COARSE
051827,000301: 07,3124 00006 EXTEND
051828,000302: 07,3125 03012 WAND CHAN12
051829,000303:
051830,000304: 07,3126 45021 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
051831,000305: 07,3127 71305 MASK IMODES33
051832,000306: 07,3130 55305 TS IMODES33
051833,000307:
051834,000308: 07,3131 03177 TC NOATTOFF
051835,000309:
051836,000310: 07,3132 35015 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
051837,000311: 07,3133 05252 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
051838,000312: 07,3134 E3,1474 EBANK= CDUIND
051839,000313: 07,3134 03145 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
051840,000314:
051841,000315: 07,3136 35050 CAF 2SECS
051842,000316: 07,3137 05252 TC WAITLIST
051843,000317: 07,3140 E3,1474 EBANK= CDUIND
051844,000318: 07,3140 03143 16103 2CADR IMUFINED
051845,000319:
051846,000320: 07,3142 12664 TCF MODEEXIT
051847,000321:
051848,000322: 07,3143 03552 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
051849,000323: 07,3144 13542 TCF ENDIMU
051850,000324:
051851,000325: 07,3145 03557 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
051852,000326: 07,3146 15331 TCF TASKOVER # IT IS.
051853,000327:
051854,000328: 07,3147 35023 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
051855,000329: 07,3150 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
051856,000330: 07,3151 02012 RAND CHAN12
051857,000331: 07,3152 10000 CCS A
051858,000332: 07,3153 15331 TCF TASKOVER
051859,000333:
051860,000334: 07,3154 41304 CS IMODES30 # RESET IMUFAIL.
051861,000335: 07,3155 75012 MASK BIT13
051862,000336: 07,3156 27304 ADS IMODES30
051863,000337: 07,3157 45023 CS BIT4
051864,000338: 07,3160 71304 PFAILOK2 MASK IMODES30
051865,000339: 07,3161 55304 TS IMODES30
051866,000340: 07,3162 04737 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
051867,000341: 07,3163 14705 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
051868,000342: 07,3164 15331 TCF TASKOVER
051869,000343:
051870,000344: 07,3165 03557 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
051871,000345: 07,3166 15331 TCF TASKOVER
051872,000346:
051873,000347: 07,3167 41304 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
051874,000348: 07,3170 75015 MASK BIT10
051875,000349: 07,3171 27304 ADS IMODES30
051876,000350:
051877,000351: 07,3172 41305 CS IMODES33
051878,000352: 07,3173 75012 MASK BIT13
051879,000353: 07,3174 27305 ADS IMODES33
051880,000354:
051881,000355: 07,3175 45022 CS BIT5
051882,000356: 07,3176 13160 TCF PFAILOK2
051883,000357:
051884,000358: 07,3177 43120 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
051885,000359: 07,3200 71037 MASK DSPTAB +11D
051886,000360: 07,3201 65010 AD BIT15
051887,000361: 07,3202 55037 TS DSPTAB +11D
051888,000362: 07,3203 00002 TC Q
051889,000363:
051890,000364: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
051891,000365:
051892,000366: 07,3204 03557 PIPUSE TC CAGETSTQ # DONT ENABLE PIPA FAIL IF IMU BEING CAGED
051893,000367: 07,3205 14670 TCF SWRETURN
051894,000368:
051895,000369: 07,3206 00004 INHINT
051896,000370: 07,3207 35030 CAF ZERO # ZERO COUNTERS.
051897,000371: 07,3210 54037 TS PIPAX
051898,000372: 07,3211 54040 TS PIPAY
051899,000373: 07,3212 54041 TS PIPAZ
051900,000374:
051901,000375: 07,3213 45026 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
051902,000376: 07,3214 71304 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
051903,000377: 07,3215 55304 TS IMODES30
051904,000378:
051905,000379: 07,3216 04737 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
051906,000380: 07,3217 14705 CADR SETISSW # (OR GO OFF ON PIPFREE).
051907,000381:
051908,000382: 07,3220 12664 TCF MODEEXIT
051909,000383:
051910,000384: 07,3221 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
051911,000385: 07,3222 41304 CS IMODES30 # ISS WARNING.
051912,000386: 07,3223 75026 MASK BIT1
051913,000387: 07,3224 27304 ADS IMODES30
051914,000388:
051915,000389: 07,3225 75015 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
051916,000390: 07,3226 10000 CCS A # ISS WARNING.
051917,000391: 07,3227 12664 TCF MODEEXIT
051918,000392:
051919,000393: 07,3230 05651 TC ALARM
051920,000394: 07,3231 00212 OCT 212
051921,000395:
051922,000396: 07,3232 00004 INHINT
051923,000397:
051924,000398: 07,3233 13216 TCF PIPFREE2
051925,000399:
051926,000400: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
051927,000401: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
051928,000402: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
051929,000403:
051930,000404: 07,3234 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
051931,000405:
051932,000406: 07,3234 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
051933,000407: 07,3235 03564 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
051934,000408:
051935,000409: 07,3236 11321 CCS LGYRO # SEE IF GYROS BUSY.
051936,000410: 07,3237 03300 TC GYROBUSY # SLEEP.
051937,000411:
051938,000412: 07,3240 54156 TS MPAC +2
051939,000413: 07,3241 35021 CAF BIT6 # ENABLE THE POWER SUPPLY.
051940,000414: 07,3242 00006 EXTEND
051941,000415: 07,3243 05014 WOR CHAN14
051942,000416:
051943,000417: 07,3244 35024 CAF FOUR
051944,000418: 07,3245 05252 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
051945,000419: 07,3246 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
051946,000420: 07,3246 03316 16103 2CADR STRTGYRO
051947,000421:
051948,000422: 07,3250 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
051949,000423: 07,3251 56003 XCH EBANK # RESTORATION ON RETURN.
051950,000424: 07,3252 56161 XCH MPAC +5
051951,000425: 07,3253 55321 TS LGYRO # RESERVES GYROS.
051952,000426: 07,3254 74371 MASK LOW8
051953,000427: 07,3255 54061 TS ITEMP1
051954,000428:
051955,000429: 07,3256 35025 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
051956,000430: 07,3257 54157 GYROAGRE TS MPAC +3
051957,000431: 07,3260 60000 DOUBLE
051958,000432: 07,3261 60061 AD ITEMP1
051959,000433: 07,3262 54160 TS MPAC +4
051960,000434: 07,3263 00006 EXTEND
051961,000435: 07,3264 50000 INDEX A
051962,000436: 07,3265 31401 DCA 1400
051963,000437: 07,3266 52155 DXCH MPAC
051964,000438: 07,3267 07231 TC TPAGREE
051965,000439: 07,3270 52155 DXCH MPAC
051966,000440: 07,3271 50160 INDEX MPAC +4
051967,000441: 07,3272 53401 DXCH 1400
051968,000442:
051969,000443: 07,3273 10157 CCS MPAC +3
051970,000444: 07,3274 13257 TCF GYROAGRE
051971,000445:
051972,000446: 07,3275 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
051973,000447: 07,3276 54003 TS EBANK
051974,000448: 07,3277 12664 TCF MODEEXIT
051975,000449:
051976,000450: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
051977,000451:
051978,000452: 07,3300 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
051979,000453: 07,3301 30134 DCA BUF2
051980,000454: 07,3302 52155 DXCH MPAC
051981,000455: 07,3303 33315 REGSLEEP CAF LGWAKE
051982,000456: 07,3304 15203 TCF JOBSLEEP
051983,000457:
051984,000458: 07,3305 11321 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
051985,000459: 07,3306 13303 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
051986,000460:
051987,000461: 07,3307 54156 TS MPAC +2
051988,000462: 07,3310 00006 EXTEND
051989,000463: 07,3311 30155 DCA MPAC
051990,000464: 07,3312 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
051991,000465: 07,3313 35026 CAF ONE
051992,000466: 07,3314 13245 TCF GWAKE2
051993,000467:
051994,000468: 07,3315 17305 LGWAKE CADR GWAKE
051995,000469:
051996,000470: # GYRO-TORQUING WAITLIST TASKS.
051997,000471:
051998,000472: 07,3316 43537 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
051999,000473: 07,3317 00006 EXTEND
052000,000474: 07,3320 03014 WAND CHAN14
052001,000475:
052002,000476: 07,3321 03552 TC CAGETEST
052003,000477:
052004,000478: 07,3322 31321 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
052005,000479: 07,3323 00006 EXTEND
052006,000480: 07,3324 75023 MP BIT4
052007,000481: 07,3325 50000 INDEX A
052008,000482: 07,3326 13327 TCF +1
052009,000483: 07,3327 03344 TC GSELECT # =0. DO Y GYRO.
052010,000484: 07,3330 00202 OCT 00202
052011,000485:
052012,000486: 07,3331 03344 TC GSELECT # =1. DO Z GYRO.
052013,000487: 07,3332 00302 OCT 00302
052014,000488:
052015,000489: 07,3333 03342 TC GSELECT -2 # =2. DO X GYRO.
052016,000490: 07,3334 00100 OCT 00100
052017,000491:
052018,000492: 07,3335 35030 CAF ZERO # =3. DONE
052019,000493: 07,3336 55321 TS LGYRO
052020,000494: 07,3337 33315 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
052021,000495: 07,3340 05207 TC JOBWAKE
052022,000496:
052023,000497: 07,3341 13143 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
052024,000498: 07,3342 45024 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
052025,000499: 07,3343 27321 ADS LGYRO
052026,000500:
052027,000501: 07,3344 50002 GSELECT INDEX Q # SELECT GYRO.
052028,000502: 07,3345 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
052029,000503: 07,3346 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
052030,000504: 07,3347 75032 MASK SEVEN
052031,000505: 07,3350 65012 AD BIT13
052032,000506: 07,3351 27321 ADS LGYRO
052033,000507: 07,3352 54003 TS EBANK
052034,000508: 07,3353 74371 MASK LOW8
052035,000509: 07,3354 54061 TS ITEMP1
052036,000510:
052037,000511: 07,3355 45032 CS SEVEN
052038,000512: 07,3356 70064 MASK ITEMP4
052039,000513: 07,3357 54064 TS ITEMP4
052040,000514:
052041,000515: 07,3360 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
052042,000516: 07,3361 50061 INDEX ITEMP1
052043,000517: 07,3362 31401 DCA 1400
052044,000518: 07,3363 52071 DXCH RUPTREG1
052045,000519:
052046,000520: 07,3364 10070 CCS RUPTREG1
052047,000521: 07,3365 13400 TCF MAJ+
052048,000522: 07,3366 13370 TCF +2
052049,000523: 07,3367 13520 TCF MAJ-
052050,000524:
052051,000525: 07,3370 10071 CCS RUPTREG2
052052,000526: 07,3371 13375 TCF MIN+
052053,000527: 07,3372 13322 TCF STRTGYR2
052054,000528: 07,3373 13515 TCF MIN-
052055,000529: 07,3374 13322 TCF STRTGYR2
052056,000530:
052057,000531: 07,3375 63431 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
052058,000532: 07,3376 00006 EXTEND # 16 GYRO PULSES.
052059,000533: 07,3377 63322 BZMF STRTGYR2
052060,000534:
052061,000535: 07,3400 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
052062,000536: 07,3401 33541 DCA GYROFRAC
052063,000537: 07,3402 20071 DAS RUPTREG1
052064,000538:
052065,000539: 07,3403 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
052066,000540: 07,3404 00006 EXTEND
052067,000541: 07,3405 05014 WOR CHAN14
052068,000542:
052069,000543: 07,3406 36050 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
052070,000544: 07,3407 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
052071,000545: 07,3410 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
052072,000546: 07,3411 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
052073,000547: 07,3412 75017 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
052074,000548: 07,3413 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
052075,000549: 07,3414 30070 CA RUPTREG1
052076,000550: 07,3415 00006 EXTEND
052077,000551: 07,3416 75016 MP BIT9
052078,000552: 07,3417 54070 TS RUPTREG1
052079,000553: 07,3420 30001 CA L
052080,000554: 07,3421 00006 EXTEND
052081,000555: 07,3422 75011 MP BIT14
052082,000556: 07,3423 26062 ADS ITEMP2 # INITIAL COMMAND.
052083,000557:
052084,000558: 07,3424 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
052085,000559: 07,3425 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
052086,000560: 07,3426 67721 AD MINUS1
052087,000561: 07,3427 10000 CCS A
052088,000562: 07,3430 13461 TCF LONGGYRO
052089,000563: 07,3431 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
052090,000564: 07,3432 13436 TCF +4
052091,000565:
052092,000566: 07,3433 35011 CAF BIT14
052093,000567: 07,3434 26062 ADS ITEMP2
052094,000568: 07,3435 35030 CAF ZERO
052095,000569:
052096,000570: 07,3436 50061 +4 INDEX ITEMP1
052097,000571: 07,3437 53401 DXCH 1400
052098,000572: 07,3440 30062 CA ITEMP2 # ENTIRE COMMAND.
052099,000573: 07,3441 54047 LASTSEG TS GYROCMD
052100,000574: 07,3442 00006 EXTEND
052101,000575: 07,3443 75015 MP BIT10 # WAITLIST DT
052102,000576: 07,3444 66221 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
052103,000577: 07,3445 05252 TC WAITLIST
052104,000578: 07,3446 E3,1474 EBANK= CDUIND
052105,000579: 07,3446 03316 16103 2CADR STRTGYRO
052106,000580:
052107,000581: 07,3450 35023 GYROEXIT CAF BIT4
052108,000582: 07,3451 00006 EXTEND
052109,000583: 07,3452 02012 RAND CHAN12
052110,000584: 07,3453 10000 CCS A
052111,000585: 07,3454 13550 TCF IMUBAD
052112,000586:
052113,000587: 07,3455 35015 CAF BIT10
052114,000588: 07,3456 00006 EXTEND
052115,000589: 07,3457 05014 WOR CHAN14
052116,000590: 07,3460 15331 TCF TASKOVER
052117,000591:
052118,000592: 07,3461 50061 LONGGYRO INDEX ITEMP1
052119,000593: 07,3462 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
052120,000594: 07,3463 35011 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
052121,000595: 07,3464 60062 AD ITEMP2
052122,000596: 07,3465 54047 TS GYROCMD
052123,000597:
052124,000598: 07,3466 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
052125,000599: 07,3467 75015 MP BIT10 # ALMOST OUT.
052126,000600: 07,3470 67717 AD NEG3
052127,000601: 07,3471 05252 TC WAITLIST
052128,000602: 07,3472 E3,1474 EBANK= CDUIND
052129,000603: 07,3472 03475 16103 2CADR 8192AUG
052130,000604:
052131,000605: 07,3474 13450 TCF GYROEXIT
052132,000606:
052133,000607: 07,3475 03552 8192AUG TC CAGETEST
052134,000608:
052135,000609: 07,3476 31321 CA LGYRO # ADD 8192 PULSES TO GYROCMD
052136,000610: 07,3477 54003 TS EBANK
052137,000611: 07,3500 74371 MASK LOW8
052138,000612: 07,3501 54061 TS ITEMP1
052139,000613:
052140,000614: 07,3502 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
052141,000615: 07,3503 11400 CCS 1400
052142,000616: 07,3504 13510 TCF AUG2 # MORE TO COME.
052143,000617:
052144,000618: 07,3505 35011 CAF BIT14
052145,000619: 07,3506 26047 ADS GYROCMD
052146,000620: 07,3507 13442 TCF LASTSEG +1
052147,000621:
052148,000622: 07,3510 50061 AUG2 INDEX ITEMP1
052149,000623: 07,3511 55400 TS 1400
052150,000624: 07,3512 35011 CAF BIT14
052151,000625: 07,3513 26047 ADS GYROCMD
052152,000626: 07,3514 13466 TCF AUG3 # COMPUTE DT.
052153,000627:
052154,000628: 07,3515 63431 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
052155,000629: 07,3516 00006 EXTEND
052156,000630: 07,3517 63322 BZMF STRTGYR2
052157,000631:
052158,000632: 07,3520 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
052159,000633: 07,3521 43541 DCS GYROFRAC
052160,000634: 07,3522 20071 DAS RUPTREG1
052161,000635:
052162,000636: 07,3523 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
052163,000637: 07,3524 65016 AD BIT9
052164,000638: 07,3525 00006 EXTEND
052165,000639: 07,3526 05014 WOR CHAN14
052166,000640:
052167,000641: 07,3527 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
052168,000642: 07,3530 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
052169,000643: 07,3531 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
052170,000644: 07,3532 76050 MASK LOW7 # THE SIGN OF THE COMMAND.
052171,000645: 07,3533 40000 COM
052172,000646: 07,3534 56071 XCH RUPTREG2
052173,000647: 07,3535 40000 COM
052174,000648: 07,3536 13411 TCF GMERGE
052175,000649:
052176,000650: 07,3537 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
052177,000651:
052178,000652: 07,3540 00000 00034 GYROFRAC 2DEC .215 B-21
052179,000653:
052180,000654: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
052181,000655:
052182,000656: 07,3542 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
052183,000657: 07,3543 00011 READ DSALMOUT # ISS WARNING IS ON.
052184,000658: 07,3544 75026 MASK BIT1
052185,000659: 07,3545 10000 CCS A
052186,000660: 07,3546 13550 TCF IMUBAD
052187,000661:
052188,000662: 07,3547 13576 IMUGOOD TCF GOODEND # WITH C(A) = 0.
052189,000663:
052190,000664: 07,3550 35030 IMUBAD CAF ZERO
052191,000665: 07,3551 13573 TCF BADEND
052192,000666:
052193,000667: 07,3552 35021 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
052194,000668: 07,3553 71304 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
052195,000669: 07,3554 10000 CCS A
052196,000670: 07,3555 13550 TCF IMUBAD # DIRECTLY.
052197,000671: 07,3556 00002 TC Q # WITH C(A) = +0.
052198,000672:
052199,000673: 07,3557 41304 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
052200,000674: 07,3560 75021 MASK BIT6
052201,000675: 07,3561 10000 CCS A
052202,000676: 07,3562 24002 INCR Q
052203,000677: 07,3563 00002 TC Q
052204,000678:
052205,000679: 07,3564 41304 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
052206,000680: 07,3565 75021 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
052207,000681: 07,3566 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
052208,000682: 07,3567 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
052209,000683:
052210,000684: 07,3570 45030 CS ZERO # TO SWRETURN.
052211,000685: 07,3571 55306 TS IMUCADR
052212,000686: 07,3572 12664 TCF MODEEXIT
052213,000687:
052214,000688: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
052215,000689: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
052216,000690:
052217,000691: 07,3573 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
052218,000692: 07,3574 45030 CS ZERO # FOR FAILURE.
052219,000693: 07,3575 13600 TCF GOODEND +2
052220,000694:
052221,000695: 07,3576 54071 GOODEND TS RUPTREG2
052222,000696: 07,3577 45026 CS ONE # FOR SUCCESS.
052223,000697:
052224,000698: 07,3600 54072 TS RUPTREG3
052225,000699: 07,3601 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
052226,000700: 07,3602 11306 CCS MODECADR
052227,000701: 07,3603 13605 TCF +2 # YES - WAKE IT UP.
052228,000702: 07,3604 13615 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
052229,000703:
052230,000704: 07,3605 35030 CAF ZERO # WAKE SLEEPING PROGRAM.
052231,000705: 07,3606 50071 INDEX RUPTREG2
052232,000706: 07,3607 57306 XCH MODECADR
052233,000707: 07,3610 05207 TC JOBWAKE
052234,000708:
052235,000709: 07,3611 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
052236,000710: 07,3612 50064 INDEX LOCCTR
052237,000711: 07,3613 26164 ADS LOC
052238,000712:
052239,000713: 07,3614 15331 TCF TASKOVER
052240,000714:
052241,000715: 07,3615 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
052242,000716: 07,3616 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
052243,000717: 07,3617 55306 TS MODECADR # SUCCESSFUL.
052244,000718: 07,3620 15331 TCF TASKOVER
052245,000719:
052246,000720: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
052247,000721:
052248,000722: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
052249,000723: # LOG SECTION IMU MODE SWITCHING
052250,000724: # MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
052251,000725:
052252,000726: # FUNCTIONAL DESCRIPTION-
052253,000727: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
052254,000728: # I/O FUNCTION IS COMPLETE.THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
052255,000729: # MODECADR ARE MADE AND ACTED UPON.
052256,000730: # 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO
052257,000731: # SLEEP.
052258,000732: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
052259,000733: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
052260,000734: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
052261,000735: # AND RETURNS TO CALLING ROUTINE AT L+2.
052262,000736: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
052263,000737: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
052264,000738: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
052265,000739:
052266,000740: # CALLING SEQUENCE-
052267,000741: # L TC BANKCALL
052268,000742: # L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL, OPTSTALL, RADSTALL,
052269,000743: # AOTSTALL, OR ATTSTALL)
052270,000744:
052271,000745: # NORMAL-EXIT MODE-
052272,000746: # TCF JOBSLEEP OR TCF MODEXIT
052273,000747:
052274,000748: # ALARM OR ABORT EXIT MODE-
052275,000749: # TC ABORT
052276,000750:
052277,000751: # OUTPUT-
052278,000752: # MODECADR=CADR IF JOBSLEEP
052279,000753: # MODECADR=+0 IF I/O COMPLETE
052280,000754: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
052281,000755: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
052282,000756:
052283,000757: # ERASABLE INITIALIZATION-
052284,000758: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
052285,000759: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
052286,000760: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
052287,000761:
052288,000762: # DEBRIS-
052289,000763: # RUPTREG2 AND CALLING ROUTINE MODECADR.
052290,000764:
052291,000765: 07,3621 35026 AOTSTALL CAF ONE # AOT.
052292,000766: 07,3622 03626 TC STALL
052293,000767:
052294,000768: 07,3623 35025 RADSTALL CAF TWO
052295,000769: 07,3624 13626 TCF STALL
052296,000770:
052297,000771: 07,3625 07,3621 OPTSTALL EQUALS AOTSTALL
052298,000772:
052299,000773: 07,3625 35030 IMUSTALL CAF ZERO # IMU.
052300,000774:
052301,000775: 07,3626 00004 STALL INHINT
052302,000776: 07,3627 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
052303,000777: 07,3630 50000 INDEX A # SEE IF OPERATION COMPLETE.
052304,000778: 07,3631 11306 CCS MODECADR
052305,000779: 07,3632 13650 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
052306,000780: 07,3633 13644 TCF MODESLP # OPERATION INCOMPLETE.
052307,000781: 07,3634 13640 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
052308,000782:
052309,000783: 07,3635 50071 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
052310,000784: 07,3636 55306 TS MODECADR # RETURN TO CALLER.
052311,000785: 07,3637 12664 TCF MODEEXIT
052312,000786:
052313,000787: 07,3640 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
052314,000788: 07,3641 13650 TCF MODABORT
052315,000789:
052316,000790: 07,3642 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
052317,000791: 07,3643 13635 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
052318,000792:
052319,000793: 07,3644 04704 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
052320,000794: 07,3645 50071 INDEX RUPTREG2
052321,000795: 07,3646 55306 TS MODECADR
052322,000796: 07,3647 15203 TCF JOBSLEEP
052323,000797:
052324,000798: 07,3650 05716 MODABORT TC ABORT # TWO PROGRAMS USING SAME DEVICE.
052325,000799: 07,3651 01210 OCT 1210
052326,000800:
052327,000801: # CONSTANTS FOR MODE SWITCHING ROUTINES
052328,000802:
052329,000803: 07,3652 5746 BITS3&4 = OCT14
052330,000804: 07,3652 5041 BITS4&6 = OCT50
052331,000805: 07,3652 00030 BITS4-5 OCT 00030
052332,000806: 07,3653 5017 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
052333,000807: 07,3653 77500 -COMMAX DEC -191 B-14
052334,000808: 07,3654 77477 -COMMAX- DEC -192 B-14
052335,000809: 07,3655 00074 600MS DEC 60 B-14
052336,000810: 07,3656 07,3121 IMUFIN20 = IMUFINE
052337,000811: 07,3656 31311 GOMANUR CA ATTCADR # IS KALCMANU FREE
052338,000812: 07,3657 00006 EXTEND
052339,000813: 07,3660 13663 BZF +3
052340,000814:
052341,000815: 07,3661 05716 TC ABORT # NO
052342,000816: 07,3662 01210 OCT 1210 # 2 TRYING TO USE SAME DEVICE
052343,000817:
052344,000818: 07,3663 00006 +3 EXTEND
052345,000819: 07,3664 30134 DCA BUF2
052346,000820: 07,3665 53312 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
052347,000821:
052348,000822: 07,3666 30006 CA BBANK
052349,000823: 07,3667 75032 MASK SEVEN
052350,000824: 07,3670 27312 ADS ATTCADR +1
052351,000825:
052352,000826: 07,3671 30167 CA PRIORITY
052353,000827: 07,3672 77677 MASK PRIO37
052354,000828: 07,3673 55313 TS ATTPRIO # SAVE USERS PRIO
052355,000829:
052356,000830: 07,3674 33700 CAF KALEBCON # SET EBANK FOR KALCMAN3
052357,000831: 07,3675 54003 TS EBANK
052358,000832: 07,3676 04674 TC POSTJUMP
052359,000833: 07,3677 44000 CADR KALCMAN3
052360,000834: 07,3700 03273 KALEBCON ECADR BCDU
052361,000835:
052362,000836:
052363,000837: # PROGRAM DESCRIPTION
052364,000838: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
052365,000839: # MOD NO - 1
052366,000840: # MOD BY - N.BRODEUR
052367,000841:
052368,000842: # FUNCTIONAL DESCRIPTION
052369,000843: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
052370,000844: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
052371,000845: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
052372,000846: # CMC. CALLED THROUGH BANKCALL
052373,000847: # CALLING SEQUENCE-
052374,000848:
052375,000849: # L TC BANKCALL
052376,000850: # L+1 CADR R02BOTH
052377,000851: # SUBROUTINES CALLED
052378,000852:
052379,000853: # VARALARM
052380,000854: # FLAGUP
052381,000855:
052382,000856: # NORMAL EXIT MODES
052383,000857:
052384,000858: # AT L+2 OF CALLING SEQUENCE
052385,000859: # ALARM OR ABORT EXIT MODES
052386,000860: # GOTOPOOH, WITH ALARM
052387,000861: # ERASABLE INITIALIZATION REQUIRED
052388,000862:
052389,000863: # NONE
052390,000864: # DEBRIS
052391,000865:
052392,000866: # CENTRALS - A,Q,L
052393,000867:
052394,000868: 34,3754 BANK 34
052395,000869: 04,2000 SETLOC R02
052396,000870: 04,2000 BANK
052397,000871: 04,3066 COUNT* $$/R02
052398,000872: 04,3066 00063 DEC51 DEC 51 B-14
052399,000873: 04,3067 35012 R02BOTH CAF REFSMBIT
052400,000874: 04,3070 70077 MASK FLAGWRD3
052401,000875: 04,3071 10000 CCS A
052402,000876: 04,3072 03103 TC R02ZERO # ZERO IMUS
052403,000877:
052404,000878: 04,3073 31304 CA IMODES30
052405,000879: 04,3074 75016 MASK BIT9 # IS ISS INITIALIZED
052406,000880: 04,3075 00006 EXTEND
052407,000881: 04,3076 13100 BZF +2
052408,000882: 04,3077 45023 CS BIT4 # SEND IMU ALARM CODE 210
052409,000883: 04,3100 63106 AD OCT220 # SEND REFSMM ALARM
052410,000884: 04,3101 05741 TC VARALARM
052411,000885:
052412,000886: 04,3102 04106 TC GOTOPOOH
052413,000887:
052414,000888: 04,3103 05566 R02ZERO TC UPFLAG
052415,000889: 04,3104 00007 ADRES IMUSE
052416,000890: 04,3105 14670 TCF SWRETURN
052417,000891: 04,3106 00220 OCT220 OCT 220
052418,000892:
052419,000893:
052420,000894: # PROGRAM DESCRIPTION P06 10 FEB 67
052421,000895:
052422,000896: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
052423,000897:
052424,000898: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
052425,000899: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
052426,000900: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
052427,000901:
052428,000902: # CALLING SEQUENCE:
052429,000903: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
052430,000904:
052431,000905: # SUBROUTINES CALLED:
052432,000906: # GOPERF1
052433,000907: # BANKCALL
052434,000908: # FLAGDOWN
052435,000909:
052436,000910: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
052437,000911: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
052438,000912: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
052439,000913:
052440,000914: 37,2000 SETLOC P05P06
052441,000915: 37,2000 BANK
052442,000916:
052443,000917: 37,3507 1201 EBANK= TIME2SAV
052444,000918: 37,3507 COUNT* $$/P06
052445,000919:
052446,000920: 37,3507 05566 P06 TC UPFLAG # SET NODOV37 BIT
052447,000921: 37,3510 00054 ADRES NODOFLAG
052448,000922:
052449,000923: 37,3511 00004 PRESTAND INHINT
052450,000924: 37,3512 00006 EXTEND
052451,000925: 37,3513 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
052452,000926: 37,3514 53202 DXCH TIME2SAV
052453,000927: 37,3515 03546 TC SCALPREP
052454,000928: 37,3516 03511 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
052455,000929: 37,3517 52155 DXCH MPAC # T1,T2 AND SCALER OK
052456,000930: 37,3520 53204 DXCH SCALSAVE # STORE SCALER
052457,000931: 37,3521 00004 INHINT
052458,000932: 37,3522 04655 TC BANKCALL
052459,000933: 37,3523 17106 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
052460,000934:
052461,000935: 37,3524 05600 TC DOWNFLAG
052462,000936: 37,3525 00007 ADRES IMUSE # IMUSE DOWN
052463,000937: 37,3526 05600 TC DOWNFLAG
052464,000938: 37,3527 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
052465,000939:
052466,000940: 37,3530 35014 CAF BIT11
052467,000941: 37,3531 00006 EXTEND
052468,000942: 37,3532 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
052469,000943:
052470,000944: 37,3533 05423 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
052471,000945: 37,3534 07024 OCT 07024 # RECOVERS
052472,000946: 37,3535 20000 OCT 20000
052473,000947: 37,3536 1203 EBANK= SCALSAVE
052474,000948: 37,3536 03566 76062 2CADR POSTAND
052475,000949:
052476,000950: 37,3540 35044 CAF OCT62
052477,000951: 37,3541 04655 TC BANKCALL
052478,000952: 37,3542 20532 CADR GOPERF1
052479,000953: 37,3543 13540 TCF -3
052480,000954: 37,3544 13540 TCF -4
052481,000955: 37,3545 13540 TCF -5
052482,000956:
052483,000957: 37,3546 5044 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
052484,000958:
052485,000959: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
052486,000960: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
052487,000961: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
052488,000962: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
052489,000963: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
052490,000964: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
052491,000965: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
052492,000966: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
052493,000967: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
052494,000968: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
052495,000969:
052496,000970: 37,3546 00006 SCALPREP EXTEND
052497,000971: 37,3547 22156 QXCH MPAC +2
052498,000972: 37,3550 04115 TC FINETIME +1
052499,000973: 37,3551 00003 RELINT
052500,000974: 37,3552 52155 DXCH MPAC
052501,000975: 37,3553 35022 CA BIT5 # ADD 5 MS TO THE SCALER READING.
052502,000976: 37,3554 54001 TS L
052503,000977: 37,3555 35030 CA ZERO
052504,000978: 37,3556 20155 DAS MPAC
052505,000979: 37,3557 44360 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
052506,000980: 37,3560 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
052507,000981: 37,3561 56155 XCH MPAC +1
052508,000982: 37,3562 74360 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
052509,000983: # INTERVAL AFTER THE T1 INCREMENT
052510,000984: # (NOW = 00000, SINCE BIT 5 ADDED).
052511,000985: 37,3563 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
052512,000986: 37,3564 24156 INCR MPAC +2 # NO
052513,000987: 37,3565 00156 TC MPAC +2 # YES
052514,000988:
052515,000989: # POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE
052516,000990: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
052517,000991: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
052518,000992: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
052519,000993: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
052520,000994: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
052521,000995:
052522,000996: 37,3566 COUNT* $$/P05
052523,000997:
052524,000998: 37,3566 45014 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
052525,000999: 37,3567 00006 EXTEND
052526,001000: 37,3570 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
052527,001001: 37,3571 00004 INHINT
052528,001002: 37,3572 35030 CA ZERO
052529,001003: 37,3573 54001 TS L
052530,001004: 37,3574 52025 DXCH TIME2 # CLEAR TIME1TIME2
052531,001005: 37,3575 03546 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
052532,001006: 37,3576 03571 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
052533,001007: 37,3577 00006 EXTEND # T1,T2 AND SCALER OK
052534,001008: 37,3600 41204 DCS SCALSAVE
052535,001009: 37,3601 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
052536,001010: 37,3602 35015 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
052537,001011: 37,3603 07261 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
052538,001012: 37,3604 35030 CAF ZERO
052539,001013: 37,3605 54156 TS MPAC +2 # NEEDED FOR TP AGREE
052540,001014: 37,3606 07231 TC TPAGREE # MAKE DP DIFF AGREE
052541,001015: 37,3607 10154 CCS MPAC
052542,001016: 37,3610 03615 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
052543,001017: 37,3611 03615 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
052544,001018: 37,3612 03613 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
052545,001019: 37,3613 35015 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
052546,001020: 37,3614 26154 ADS MPAC
052547,001021: 37,3615 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
052548,001022: 37,3616 31202 DCA TIME2SAV # PRESTANDBY TIME1TIME2
052549,001023: 37,3617 20155 DAS MPAC
052550,001024: 37,3620 07231 TC TPAGREE # FORCE SIGN AGREEMENT
052551,001025: 37,3621 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
052552,001026: 37,3622 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
052553,001027: 37,3623 05600 TC DOWNFLAG # CLEAR NODOFLAG
052554,001028: 37,3624 00054 ADRES NODOFLAG
052555,001029:
052556,001030: 37,3625 04106 TC GOTOPOOH
052557,001031:
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc