Source Code
061473,000001: # Copyright: Public domain.
061474,000002: # Filename: IMU_MODE_SWITCHING_ROUTINES.agc
061475,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
061476,000004: # It is part of the source code for the Command Module's (CM)
061477,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
061478,000006: # Assembler: yaYUL
061479,000007: # Contact: Ron Burkey <info@sandroid.org>.
061480,000008: # Website: www.ibiblio.org/apollo.
061481,000009: # Pages: 1420-1448
061482,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting from
061483,000011: # the Colossus249/ file of the same name,
061484,000012: # using Comanche055 page images.
061485,000013: # 2010-08-20 JL Fixed page number comment (p1447).
061486,000014: # Fixed some pseudo-label indents.
061487,000015:
061488,000016: # This source code has been transcribed or otherwise adapted from digitized
061489,000017: # images of a hardcopy from the MIT Museum. The digitization was performed
061490,000018: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
061491,000019: # thanks to both. The images (with suitable reduction in storage size and
061492,000020: # consequent reduction in image quality as well) are available online at
061493,000021: # www.ibiblio.org/apollo. If for some reason you find that the images are
061494,000022: # illegible, contact me at info@sandroid.org about getting access to the
061495,000023: # (much) higher-quality images which Paul actually created.
061496,000024:
061497,000025: # Notations on the hardcopy document read, in part:
061498,000026:
061499,000027: # Assemble revision 055 of AGC program Comanche by NASA
061500,000028: # 2021113-051. 10:28 APR. 1, 1969
061501,000029:
061502,000030: # This AGC program shall also be referred to as
061503,000031: # Colossus 2A
061504,000032:
061505,000033: # Page 1420
061506,000034: 5521 BLOCK 02
061507,000035: 4000 SETLOC FFTAG3
061508,000036: 4000 BANK
061509,000037:
061510,000038: 5521 E3,1471 EBANK= COMMAND
061511,000039:
061512,000040: # FIXED-FIXED ROUTINES
061513,000041:
061514,000042: 5521 COUNT 02/IMODE
061515,000043:
061516,000044: 5521 35021 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
061517,000045: 5522 54032 TS CDUX
061518,000046: 5523 54033 TS CDUY
061519,000047: 5524 54034 TS CDUZ
061520,000048: 5525 00002 TC Q
061521,000049:
061522,000050: 5526 5007 SPSCODE = BIT9
061523,000051:
061524,000052: # Page 1421
061525,000053: # IMU ZEROING ROUTINE.
061526,000054:
061527,000055: 11,3776 BANK 11
061528,000056: 07,2000 SETLOC MODESW
061529,000057: 07,2000 BANK
061530,000058:
061531,000059: 07,2577 COUNT 07/IMODE
061532,000060:
061533,000061: 07,2577 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
061534,000062: 07,2600 41036 CS DSPTAB +11D # DON'T ZERO CDUS IS IMU IN GIMBAL LOCK AND
061535,000063: 07,2601 75033 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
061536,000064: 07,2602 10000 CCS A
061537,000065: 07,2603 12607 TCF IMUZEROA
061538,000066:
061539,000067: 07,2604 05650 TC ALARM # IF SO.
061540,000068: 07,2605 00206 OCT 00206
061541,000069:
061542,000070: 07,2606 13542 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
061543,000071:
061544,000072: 07,2607 03536 IMUZEROA TC CAGETSTJ
061545,000073:
061546,000074: # DO ALL THE WORK.
061547,000075:
061548,000076: 07,2610 41321 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
061549,000077: 07,2611 75035 MASK SUPER011 # BIT5 FOR GROUND
061550,000078: 07,2612 27321 ADS IMODES33
061551,000079:
061552,000080: 07,2613 41320 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
061553,000081: 07,2614 75771 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
061554,000082: 07,2615 27320 ADS IMODES30
061555,000083:
061556,000084: 07,2616 45033 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
061557,000085: 07,2617 00006 EXTEND # COUNTER DISABLED.
061558,000086: 07,2620 03012 WAND CHAN12
061559,000087:
061560,000088: 07,2621 03151 TC NOATTOFF # TURN OFF NO ATT LAMP.
061561,000089:
061562,000090: 07,2622 35013 CAF BIT5
061563,000091: 07,2623 00006 EXTEND
061564,000092: 07,2624 05012 WOR CHAN12
061565,000093:
061566,000094: 07,2625 05521 TC ZEROICDU
061567,000095: 07,2626 35012 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
061568,000096: 07,2627 05245 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
061569,000097: 07,2630 E3,1474 EBANK= CDUIND
061570,000098: 07,2630 02642 16063 2CADR IMUZERO2
061571,000099:
061572,000100: 07,2632 41320 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
061573,000101: 07,2633 75007 MASK BIT9
061574,000102: 07,2634 10000 CCS A
061575,000103: 07,2635 12640 TCF MODEEXIT
061576,000104: # Page 1422
061577,000105: 07,2636 05650 TC ALARM
061578,000106: 07,2637 00210 OCT 210
061579,000107:
061580,000108: 07,2640 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
061581,000109: 07,2641 14675 TCF SWRETURN
061582,000110:
061583,000111: 07,2642 03524 IMUZERO2 TC CAGETEST
061584,000112: 07,2643 05521 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
061585,000113:
061586,000114: 07,2644 45013 CS BIT5 # REMOVE ZERO DISCRETE.
061587,000115: 07,2645 00006 EXTEND
061588,000116: 07,2646 03012 WAND CHAN12
061589,000117:
061590,000118: 07,2647 35005 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
061591,000119: 07,2650 05272 TC VARDELAY
061592,000120:
061593,000121: 07,2651 03524 IMUZERO3 TC CAGETEST
061594,000122: 07,2652 45771 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
061595,000123: 07,2653 71320 MASK IMODES30
061596,000124: 07,2654 55320 TS IMODES30
061597,000125:
061598,000126: 07,2655 45035 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
061599,000127: 07,2656 71321 MASK IMODES33 # BIT5 FOR GROUND
061600,000128: 07,2657 55321 TS IMODES33
061601,000129:
061602,000130: 07,2660 04740 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
061603,000131: 07,2661 14665 CADR SETISSW # PRESENT.
061604,000132:
061605,000133: 07,2662 13514 TCF ENDIMU
061606,000134:
061607,000135: # Page 1423
061608,000136: # IMU COARSE ALIGN MODE.
061609,000137:
061610,000138: 07,2663 00004 IMUCOARS INHINT
061611,000139: 07,2664 03536 TC CAGETSTJ
061612,000140: 07,2665 03027 TC SETCOARS
061613,000141:
061614,000142: 07,2666 36211 CAF SIX
061615,000143: 07,2667 05245 TC WAITLIST
061616,000144: 07,2670 E3,1474 EBANK= CDUIND
061617,000145: 07,2670 02673 16063 2CADR COARS
061618,000146:
061619,000147: 07,2672 12640 TCF MODEEXIT
061620,000148:
061621,000149: 07,2673 03524 COARS TC CAGETEST
061622,000150: 07,2674 35012 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
061623,000151: 07,2675 00006 EXTEND
061624,000152: 07,2676 05012 WOR CHAN12
061625,000153:
061626,000154: 07,2677 35016 CAF TWO # SET CDU INDICATOR
061627,000155: 07,2700 55474 COARS1 TS CDUIND
061628,000156:
061629,000157: 07,2701 51474 INDEX CDUIND # COMPUTE THETAD -- THETAA IN 1'S
061630,000158: 07,2702 31155 CA THETAD # COMPLEMENT FORM
061631,000159: 07,2703 00006 EXTEND
061632,000160: 07,2704 51474 INDEX CDUIND
061633,000161: 07,2705 20032 MSU CDUX
061634,000162: 07,2706 00006 EXTEND
061635,000163: 07,2707 75003 MP BIT13 # SHIFT RIGHT 2
061636,000164: 07,2710 56001 XCH L # ROUND
061637,000165: 07,2711 60000 DOUBLE
061638,000166: 07,2712 54061 TS ITEMP1
061639,000167: 07,2713 12715 TCF +2
061640,000168: 07,2714 26001 ADS L
061641,000169:
061642,000170: 07,2715 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
061643,000171: 07,2716 23471 LXCH COMMAND
061644,000172: 07,2717 11474 CCS CDUIND
061645,000173: 07,2720 02700 TC COARS1
061646,000174:
061647,000175: 07,2721 35016 CAF TWO # MINIMUM OF 4 MS WAIT
061648,000176: 07,2722 05272 TC VARDELAY
061649,000177:
061650,000178: # Page 1424
061651,000179: 07,2723 03524 COARS2 TC CAGETEST # DON'T CONTINUE IF CAGED.
061652,000180: 07,2724 54061 TS ITEMP1 # SET TO +0.
061653,000181: 07,2725 35016 CAF TWO # SET CDU INDICATOR.
061654,000182: 07,2726 55474 +3 TS CDUIND
061655,000183:
061656,000184: 07,2727 51474 INDEX CDUIND
061657,000185: 07,2730 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
061658,000186: 07,2731 02735 TC COMPOS # GREATER THAN MAX ALLOWED
061659,000187: 07,2732 02744 TC NEXTCDU +1
061660,000188: 07,2733 03002 TC COMNEG
061661,000189: 07,2734 02744 TC NEXTCDU +1
061662,000190:
061663,000191: 07,2735 63624 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
061664,000192: 07,2736 00006 EXTEND # MINUS ONE
061665,000193: 07,2737 63012 BZMF COMZERO
061666,000194: 07,2740 51474 INDEX CDUIND
061667,000195: 07,2741 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
061668,000196: 07,2742 43625 CS -COMMAX- # ALLOWED
061669,000197:
061670,000198: 07,2743 24061 NEXTCDU INCR ITEMP1
061671,000199: 07,2744 65020 AD NEG0
061672,000200: 07,2745 51474 INDEX CDUIND
061673,000201: 07,2746 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
061674,000202:
061675,000203: 07,2747 11474 CCS CDUIND
061676,000204: 07,2750 02726 TC COARS2 +3
061677,000205:
061678,000206: 07,2751 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
061679,000207: 07,2752 13016 TCF SENDPULS
061680,000208:
061681,000209: 07,2753 05267 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
061682,000210: 07,2754 00226 DEC 150 B-14
061683,000211:
061684,000212: 07,2755 35016 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
061685,000213: 07,2756 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
061686,000214: 07,2757 50000 INDEX A
061687,000215: 07,2760 30032 CA CDUX
061688,000216: 07,2761 00006 EXTEND
061689,000217: 07,2762 50061 INDEX ITEMP1
061690,000218: 07,2763 21155 MSU THETAD
061691,000219: 07,2764 10000 CCS A
061692,000220: 07,2765 12773 TCF COARSERR
061693,000221: 07,2766 12770 TCF CORSCHK2
061694,000222: 07,2767 12773 TCF COARSERR
061695,000223:
061696,000224: # Page 1425
061697,000225: 07,2770 10061 CORSCHK2 CCS ITEMP1
061698,000226: 07,2771 12756 TCF CHKCORS
061699,000227: 07,2772 13514 TCF ENDIMU # END OF COARSE ALIGNMENT
061700,000228:
061701,000229: 07,2773 63001 COARSERR AD COARSTOL # 2 DEGREES.
061702,000230: 07,2774 00006 EXTEND
061703,000231: 07,2775 62770 BZMF CORSCHK2
061704,000232:
061705,000233: 07,2776 05650 TC ALARM # COARSE ALIGN ERROR.
061706,000234: 07,2777 00211 OCT 211
061707,000235:
061708,000236: 07,3000 13522 TCF IMUBAD
061709,000237:
061710,000238: 07,3001 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
061711,000239:
061712,000240: 07,3002 63624 COMNEG AD -COMMAX
061713,000241: 07,3003 00006 EXTEND
061714,000242: 07,3004 63012 BZMF COMZERO
061715,000243: 07,3005 40000 COM
061716,000244: 07,3006 51474 INDEX CDUIND
061717,000245: 07,3007 55471 TS COMMAND
061718,000246: 07,3010 33625 CA -COMMAX-
061719,000247: 07,3011 02743 TC NEXTCDU
061720,000248:
061721,000249: 07,3012 35021 COMZERO CAF ZERO
061722,000250: 07,3013 51474 INDEX CDUIND
061723,000251: 07,3014 57471 XCH COMMAND
061724,000252: 07,3015 02743 TC NEXTCDU
061725,000253:
061726,000254: 07,3016 37707 SENDPULS CAF 13,14,15
061727,000255: 07,3017 00006 EXTEND
061728,000256: 07,3020 05014 WOR CHAN14
061729,000257: 07,3021 33626 CAF 600MS
061730,000258: 07,3022 12722 TCF COARS2 -1 # THEN TO VARDELAY
061731,000259:
061732,000260: 07,3023 35012 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
061733,000261: 07,3024 00006 EXTEND
061734,000262: 07,3025 05012 WOR CHAN12
061735,000263: 07,3026 05324 TC TASKOVER
061736,000264:
061737,000265: # Page 1426
061738,000266: 07,3027 35014 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
061739,000267: 07,3030 00006 EXTEND
061740,000268: 07,3031 02012 RAND CHAN12
061741,000269: 07,3032 10000 CCS A
061742,000270: 07,3033 00002 TC Q
061743,000271:
061744,000272: 07,3034 45012 CS BIT6 # CLEAR ISS ERROR COUNTERS
061745,000273: 07,3035 00006 EXTEND
061746,000274: 07,3036 03012 WAND CHAN12
061747,000275:
061748,000276: 07,3037 45006 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
061749,000277: 07,3040 00006 EXTEND
061750,000278: 07,3041 03014 WAND CHAN14
061751,000279: 07,3042 45021 CS ZERO
061752,000280: 07,3043 54047 TS GYROCMD
061753,000281:
061754,000282: 07,3044 35014 CAF BIT4 # PUT ISS IN COARSE ALIGN
061755,000283: 07,3045 00006 EXTEND
061756,000284: 07,3046 05012 WOR CHAN12
061757,000285:
061758,000286: 07,3047 41036 CS DSPTAB +11D # TURN ON NO ATT LAMP
061759,000287: 07,3050 73072 MASK OCT40010
061760,000288: 07,3051 27036 ADS DSPTAB +11D
061761,000289:
061762,000290: 07,3052 41321 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
061763,000291: 07,3053 75012 MASK BIT6
061764,000292: 07,3054 27321 ADS IMODES33
061765,000293:
061766,000294: 07,3055 41320 CS IMODES30 # DISABLE IMUFAIL
061767,000295: 07,3056 75014 MASK BIT4
061768,000296: 07,3057 27320 ADS IMODES30
061769,000297:
061770,000298: 07,3060 45013 RNDREFDR CS BIT5 # KNOCK DOWN TRACK FLAG
061771,000299: 07,3061 70075 MASK FLAGWRD1
061772,000300: 07,3062 54075 TS FLAGWRD1
061773,000301:
061774,000302: 07,3063 45001 CS BIT15 # KNOCK DOWN DRIFT FLAG
061775,000303: 07,3064 70076 MASK FLAGWRD2
061776,000304: 07,3065 54076 TS FLAGWRD2
061777,000305:
061778,000306: 07,3066 45003 CS BIT13 # KNOCK DOWN REFSMMAT FLAG
061779,000307: 07,3067 70077 MASK FLAGWRD3
061780,000308: 07,3070 54077 TS FLAGWRD3
061781,000309:
061782,000310: 07,3071 00002 TC Q
061783,000311:
061784,000312: 07,3072 40010 OCT40010 OCT 40010
061785,000313:
061786,000314: # Page 1427
061787,000315: # IMU FINE ALIGN MODE SWITCH.
061788,000316:
061789,000317: 07,3073 00004 IMUFINE INHINT
061790,000318: 07,3074 03536 TC CAGETSTJ # SEE IF IMU BEING CAGED.
061791,000319:
061792,000320: 07,3075 45027 CS BITS4-5 # RESET ZERO AND COARSE
061793,000321: 07,3076 00006 EXTEND
061794,000322: 07,3077 03012 WAND CHAN12
061795,000323:
061796,000324: 07,3100 45012 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
061797,000325: 07,3101 71321 MASK IMODES33
061798,000326: 07,3102 55321 TS IMODES33
061799,000327:
061800,000328: 07,3103 03151 TC NOATTOFF
061801,000329:
061802,000330: 07,3104 35006 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
061803,000331: 07,3105 05245 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
061804,000332: 07,3106 E3,1474 EBANK= CDUIND
061805,000333: 07,3106 03117 16063 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
061806,000334:
061807,000335: 07,3110 35042 CAF 2SECS
061808,000336: 07,3111 05245 TC WAITLIST
061809,000337: 07,3112 E3,1474 EBANK= CDUIND
061810,000338: 07,3112 03115 16063 2CADR IMUFINED
061811,000339:
061812,000340: 07,3114 12640 TCF MODEEXIT
061813,000341:
061814,000342: 07,3115 03524 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
061815,000343: 07,3116 13514 TCF ENDIMU
061816,000344:
061817,000345: # Page 1428
061818,000346: 07,3117 03531 IFAILOK TC CAGETSTQ # ENABLE IMU FAIL UNLESS IMU BEING CAGED.
061819,000347: 07,3120 15324 TCF TASKOVER # IT IS.
061820,000348:
061821,000349: 07,3121 35014 CAF BIT4 # DON'T RESET IMU FAIL INHIBIT IF SOMEONE
061822,000350: 07,3122 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
061823,000351: 07,3123 02012 RAND CHAN12
061824,000352: 07,3124 10000 CCS A
061825,000353: 07,3125 15324 TCF TASKOVER
061826,000354:
061827,000355: 07,3126 41320 CS IMODES30 # RESET IMUFAIL.
061828,000356: 07,3127 75003 MASK BIT13
061829,000357: 07,3130 27320 ADS IMODES30
061830,000358: 07,3131 45014 CS BIT4
061831,000359: 07,3132 71320 PFAILOK2 MASK IMODES30
061832,000360: 07,3133 55320 TS IMODES30
061833,000361: 07,3134 04740 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
061834,000362: 07,3135 14665 CADR SETISSW # THAT THE INHIBIT WAS BEEN REMOVED.
061835,000363: 07,3136 15324 TCF TASKOVER
061836,000364:
061837,000365: 07,3137 03531 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
061838,000366: 07,3140 15324 TCF TASKOVER
061839,000367:
061840,000368: 07,3141 41320 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
061841,000369: 07,3142 75006 MASK BIT10
061842,000370: 07,3143 27320 ADS IMODES30
061843,000371:
061844,000372: 07,3144 41321 CS IMODES33
061845,000373: 07,3145 75003 MASK BIT13
061846,000374: 07,3146 27321 ADS IMODES33
061847,000375:
061848,000376: 07,3147 45013 CS BIT5
061849,000377: 07,3150 13132 TCF PFAILOK2
061850,000378:
061851,000379: 07,3151 43072 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
061852,000380: 07,3152 71036 MASK DSPTAB +11D
061853,000381: 07,3153 65001 AD BIT15
061854,000382: 07,3154 55036 TS DSPTAB +11D
061855,000383: 07,3155 00002 TC Q
061856,000384:
061857,000385: # Page 1429
061858,000386: # ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
061859,000387:
061860,000388: 07,3156 45021 PIPUSE CS ZERO
061861,000389: 07,3157 54037 TS PIPAX
061862,000390: 07,3160 54040 TS PIPAY
061863,000391: 07,3161 54041 TS PIPAZ
061864,000392:
061865,000393: 07,3162 03531 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
061866,000394: 07,3163 14675 TCF SWRETURN
061867,000395:
061868,000396: 07,3164 00004 INHINT
061869,000397: 07,3165 45017 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
061870,000398: 07,3166 71320 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
061871,000399: 07,3167 55320 TS IMODES30
061872,000400:
061873,000401: 07,3170 04740 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
061874,000402: 07,3171 14665 CADR SETISSW # (OR GO OFF ON PIPFREE).
061875,000403:
061876,000404: 07,3172 12640 TCF MODEEXIT
061877,000405:
061878,000406: 07,3173 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DON'T LIGHT
061879,000407: 07,3174 41320 CS IMODES30 # ISS WARNING.
061880,000408: 07,3175 75017 MASK BIT1
061881,000409: 07,3176 27320 ADS IMODES30
061882,000410:
061883,000411: 07,3177 75006 MASK BIT10 # IF PIP FAIL ON, DO PROG ALARM AND RESET
061884,000412: 07,3200 10000 CCS A # ISS WARNING.
061885,000413: 07,3201 12640 TCF MODEEXIT
061886,000414:
061887,000415: 07,3202 05650 TC ALARM
061888,000416: 07,3203 00212 OCT 212
061889,000417:
061890,000418: 07,3204 00004 INHINT
061891,000419:
061892,000420: 07,3205 13170 TCF PIPFREE2
061893,000421:
061894,000422: # Page 1430
061895,000423: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
061896,000424: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
061897,000425: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT AT TEH INPUT COMMAND REGISTERS.
061898,000426:
061899,000427: 07,3206 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
061900,000428:
061901,000429: 07,3206 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
061902,000430: 07,3207 03536 TC CAGETSTJ # DON'T PROCEED IF IMU BEING CAGED.
061903,000431:
061904,000432: 07,3210 11304 CCS LGYRO # SEE IF GYROS BUSY.
061905,000433: 07,3211 03252 TC GYROBUSY # SLEEP.
061906,000434:
061907,000435: 07,3212 54156 TS MPAC +2
061908,000436: 07,3213 35012 CAF BIT6 # ENABLE THE POWER SUPPLY.
061909,000437: 07,3214 00006 EXTEND
061910,000438: 07,3215 05014 WOR CHAN14
061911,000439:
061912,000440: 07,3216 35015 CAF FOUR
061913,000441: 07,3217 05245 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
061914,000442: 07,3220 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
061915,000443: 07,3220 03270 16063 2CADR STRTGYRO
061916,000444:
061917,000445: 07,3222 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
061918,000446: 07,3223 56003 XCH EBANK # RESTORATION ON RETURN.
061919,000447: 07,3224 56161 XCH MPAC +5
061920,000448: 07,3225 55304 TS LGYRO # RESERVES GYROS.
061921,000449: 07,3226 74373 MASK LOW8
061922,000450: 07,3227 54061 TS ITEMP1
061923,000451:
061924,000452: 07,3230 35016 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
061925,000453: 07,3231 54157 GYROAGRE TS MPAC +3
061926,000454: 07,3232 60000 DOUBLE
061927,000455: 07,3233 60061 AD ITEMP1
061928,000456: 07,3234 54160 TS MPAC +4
061929,000457: 07,3235 00006 EXTEND
061930,000458: 07,3236 50000 INDEX A
061931,000459: 07,3237 31401 DCA 1400
061932,000460: 07,3240 52155 DXCH MPAC
061933,000461: 07,3241 07226 TC TPAGREE
061934,000462: 07,3242 52155 DXCH MPAC
061935,000463: 07,3243 50160 INDEX MPAC +4
061936,000464: 07,3244 53401 DXCH 1400
061937,000465:
061938,000466: 07,3245 10157 CCS MPAC +3
061939,000467: 07,3246 13231 TCF GYROAGRE
061940,000468:
061941,000469: 07,3247 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
061942,000470: 07,3250 54003 TS EBANK
061943,000471: 07,3251 12640 TCF MODEEXIT
061944,000472:
061945,000473: # Page 1431
061946,000474: # ROUTINES TO ALLOW TORQUING ONLY ONE JOB AT A TIME.
061947,000475:
061948,000476: 07,3252 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
061949,000477: 07,3253 30134 DCA BUF2
061950,000478: 07,3254 52155 DXCH MPAC
061951,000479: 07,3255 33267 REGSLEEP CAF LGWAKE
061952,000480: 07,3256 15175 TCF JOBSLEEP
061953,000481:
061954,000482: 07,3257 11304 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
061955,000483: 07,3260 13255 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
061956,000484:
061957,000485: 07,3261 54156 TS MPAC +2
061958,000486: 07,3262 00006 EXTEND
061959,000487: 07,3263 30155 DCA MPAC
061960,000488: 07,3264 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
061961,000489: 07,3265 35017 CAF ONE
061962,000490: 07,3266 13217 TCF GWAKE2
061963,000491:
061964,000492: 07,3267 17257 LGWAKE CADR GWAKE
061965,000493:
061966,000494: # Page 1432
061967,000495: # GYRO-TORQUING WAITLIST TASKS.
061968,000496:
061969,000497: 07,3270 43511 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
061970,000498: 07,3271 00006 EXTEND
061971,000499: 07,3272 03014 WAND CHAN14
061972,000500:
061973,000501: 07,3273 03524 TC CAGETEST
061974,000502:
061975,000503: 07,3274 31304 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
061976,000504: 07,3275 00006 EXTEND
061977,000505: 07,3276 75014 MP BIT4
061978,000506: 07,3277 50000 INDEX A
061979,000507: 07,3300 13301 TCF +1
061980,000508: 07,3301 03316 TC GSELECT # =0. DO Y GYRO.
061981,000509: 07,3302 00202 OCT 00202
061982,000510:
061983,000511: 07,3303 03316 TC GSELECT # =1. DO Z GYRO.
061984,000512: 07,3304 00302 OCT 00302
061985,000513:
061986,000514: 07,3305 03314 TC GSELECT -2 # =2. DO X GYRO.
061987,000515: 07,3306 00100 OCT 00100
061988,000516:
061989,000517: 07,3307 35021 CAF ZERO # =3. DONE
061990,000518: 07,3310 55304 TS LGYRO
061991,000519: 07,3311 33267 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
061992,000520: 07,3312 05201 TC JOBWAKE
061993,000521:
061994,000522: 07,3313 13115 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY.
061995,000523: # Page 1433
061996,000524: 07,3314 45015 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
061997,000525: 07,3315 27304 ADS LGYRO
061998,000526:
061999,000527: 07,3316 50002 GSELECT INDEX Q # SELECT GYRO.
062000,000528: 07,3317 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
062001,000529: 07,3320 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
062002,000530: 07,3321 75023 MASK SEVEN
062003,000531: 07,3322 65003 AD BIT13
062004,000532: 07,3323 27304 ADS LGYRO
062005,000533: 07,3324 54003 TS EBANK
062006,000534: 07,3325 74373 MASK LOW8
062007,000535: 07,3326 54061 TS ITEMP1
062008,000536:
062009,000537: 07,3327 45023 CS SEVEN
062010,000538: 07,3330 70064 MASK ITEMP4
062011,000539: 07,3331 54064 TS ITEMP4
062012,000540:
062013,000541: 07,3332 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
062014,000542: 07,3333 50061 INDEX ITEMP1
062015,000543: 07,3334 31401 DCA 1400
062016,000544: 07,3335 52071 DXCH RUPTREG1
062017,000545:
062018,000546: 07,3336 10070 CCS RUPTREG1
062019,000547: 07,3337 13352 TCF MAJ+
062020,000548: 07,3340 13342 TCF +2
062021,000549: 07,3341 13472 TCF MAJ-
062022,000550:
062023,000551: 07,3342 10071 CCS RUPTREG2
062024,000552: 07,3343 13347 TCF MIN+
062025,000553: 07,3344 13274 TCF STRTGYR2
062026,000554: 07,3345 13467 TCF MIN-
062027,000555: 07,3346 13274 TCF STRTGYR2
062028,000556:
062029,000557: # Page 1434
062030,000558: 07,3347 63403 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
062031,000559: 07,3350 00006 EXTEND # 16 GYRO PULSES.
062032,000560: 07,3351 63274 BZMF STRTGYR2
062033,000561:
062034,000562: 07,3352 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
062035,000563: 07,3353 33513 DCA GYROFRAC
062036,000564: 07,3354 20071 DAS RUPTREG1
062037,000565:
062038,000566: 07,3355 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
062039,000567: 07,3356 00006 EXTEND
062040,000568: 07,3357 05014 WOR CHAN14
062041,000569:
062042,000570: 07,3360 36043 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
062043,000571: 07,3361 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
062044,000572: 07,3362 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
062045,000573: 07,3363 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
062046,000574: 07,3364 75010 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
062047,000575: 07,3365 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
062048,000576: 07,3366 30070 CA RUPTREG1
062049,000577: 07,3367 00006 EXTEND
062050,000578: 07,3370 75007 MP BIT9
062051,000579: 07,3371 54070 TS RUPTREG1
062052,000580: 07,3372 30001 CA L
062053,000581: 07,3373 00006 EXTEND
062054,000582: 07,3374 75002 MP BIT14
062055,000583: 07,3375 26062 ADS ITEMP2 # INITIAL COMMAND.
062056,000584:
062057,000585: 07,3376 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
062058,000586: 07,3377 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
062059,000587: 07,3400 67716 AD MINUS1
062060,000588: 07,3401 10000 CCS A
062061,000589: 07,3402 13426 TCF LONGGYRO
062062,000590: 07,3403 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
062063,000591: 07,3404 13410 TCF +4
062064,000592:
062065,000593: 07,3405 35002 CAF BIT14
062066,000594: 07,3406 26062 ADS ITEMP2
062067,000595: 07,3407 35021 CAF ZERO
062068,000596:
062069,000597: 07,3410 50061 +4 INDEX ITEMP1
062070,000598: 07,3411 53401 DXCH 1400
062071,000599: # Page 1435
062072,000600: 07,3412 30062 CA ITEMP2 # ENTIRE COMMAND.
062073,000601: 07,3413 54047 LASTSEG TS GYROCMD
062074,000602: 07,3414 00006 EXTEND
062075,000603: 07,3415 75006 MP BIT10 # WAITLIST DT
062076,000604: 07,3416 66214 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
062077,000605: 07,3417 05245 TC WAITLIST
062078,000606: 07,3420 E3,1474 EBANK= CDUIND
062079,000607: 07,3420 03270 16063 2CADR STRTGYRO
062080,000608:
062081,000609: 07,3422 35006 GYROEXIT CAF BIT10
062082,000610: 07,3423 00006 EXTEND
062083,000611: 07,3424 05014 WOR CHAN14
062084,000612: 07,3425 15324 TCF TASKOVER
062085,000613:
062086,000614: 07,3426 50061 LONGGYRO INDEX ITEMP1
062087,000615: 07,3427 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
062088,000616: 07,3430 35002 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
062089,000617: 07,3431 60062 AD ITEMP2
062090,000618: 07,3432 54047 TS GYROCMD
062091,000619:
062092,000620: 07,3433 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
062093,000621: 07,3434 75006 MP BIT10 # ALMOST OUT.
062094,000622: 07,3435 67714 AD NEG3
062095,000623: 07,3436 05245 TC WAITLIST
062096,000624: 07,3437 E3,1474 EBANK= CDUIND
062097,000625: 07,3437 03442 16063 2CADR 8192AUG
062098,000626:
062099,000627: 07,3441 13422 TCF GYROEXIT
062100,000628:
062101,000629: 07,3442 03524 8192AUG TC CAGETEST
062102,000630:
062103,000631: 07,3443 35014 CAF BIT4
062104,000632: 07,3444 00006 EXTEND
062105,000633: 07,3445 02012 RAND CHAN12
062106,000634: 07,3446 10000 CCS A
062107,000635: 07,3447 13522 TCF IMUBAD
062108,000636: 07,3450 31304 CA LGYRO # ADD 8192 PULSES TO GYROCMD
062109,000637: 07,3451 54003 TS EBANK
062110,000638: 07,3452 74373 MASK LOW8
062111,000639: 07,3453 54061 TS ITEMP1
062112,000640:
062113,000641: 07,3454 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
062114,000642: 07,3455 11400 CCS 1400
062115,000643: 07,3456 13462 TCF AUG2 # MORE TO COME.
062116,000644:
062117,000645: 07,3457 35002 CAF BIT14
062118,000646: 07,3460 26047 ADS GYROCMD
062119,000647: 07,3461 13414 TCF LASTSEG +1
062120,000648:
062121,000649: # Page 1436
062122,000650: 07,3462 50061 AUG2 INDEX ITEMP1
062123,000651: 07,3463 55400 TS 1400
062124,000652: 07,3464 35002 CAF BIT14
062125,000653: 07,3465 26047 ADS GYROCMD
062126,000654: 07,3466 13433 TCF AUG3 # COMPUTE DT.
062127,000655:
062128,000656: # Page 1437
062129,000657: 07,3467 63403 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
062130,000658: 07,3470 00006 EXTEND
062131,000659: 07,3471 63274 BZMF STRTGYR2
062132,000660:
062133,000661: 07,3472 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
062134,000662: 07,3473 43513 DCS GYROFRAC
062135,000663: 07,3474 20071 DAS RUPTREG1
062136,000664:
062137,000665: 07,3475 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
062138,000666: 07,3476 65007 AD BIT9
062139,000667: 07,3477 00006 EXTEND
062140,000668: 07,3500 05014 WOR CHAN14
062141,000669:
062142,000670: 07,3501 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
062143,000671: 07,3502 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
062144,000672: 07,3503 40071 CS RUPTREG2 # POSITIVE -- BIT9 OF CHAN 14 DETERMINES
062145,000673: 07,3504 76043 MASK LOW7 # THE SIGN OF THE COMMAND.
062146,000674: 07,3505 40000 COM
062147,000675: 07,3506 56071 XCH RUPTREG2
062148,000676: 07,3507 40000 COM
062149,000677: 07,3510 13363 TCF GMERGE
062150,000678:
062151,000679: 07,3511 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
062152,000680:
062153,000681: 07,3512 00000 00034 GYROFRAC 2DEC .215 B-21
062154,000682:
062155,000683: # Page 1438
062156,000684: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
062157,000685:
062158,000686: 07,3514 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURRED OR IF
062159,000687: 07,3515 00011 READ DSALMOUT # ISS WARNING IS ON.
062160,000688: 07,3516 75017 MASK BIT1
062161,000689: 07,3517 10000 CCS A
062162,000690: 07,3520 13522 TCF IMUBAD
062163,000691:
062164,000692: 07,3521 13550 IMUGOOD TCF GOODEND # WITH C(A) = 0.
062165,000693:
062166,000694: 07,3522 35021 IMUBAD CAF ZERO
062167,000695: 07,3523 13545 TCF BADEND
062168,000696:
062169,000697: 07,3524 35012 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
062170,000698: 07,3525 71320 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
062171,000699: 07,3526 10000 CCS A
062172,000700: 07,3527 13522 TCF IMUBAD # DIRECTLY.
062173,000701: 07,3530 00002 TC Q # WITH C(A) = +0.
062174,000702:
062175,000703: 07,3531 41320 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
062176,000704: 07,3532 75012 MASK BIT6
062177,000705: 07,3533 10000 CCS A
062178,000706: 07,3534 24002 INCR Q
062179,000707: 07,3535 00002 TC Q
062180,000708:
062181,000709: 07,3536 41320 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION.
062182,000710: 07,3537 75012 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED.
062183,000711: 07,3540 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
062184,000712: 07,3541 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
062185,000713: 07,3542 45021 CS ZERO # TO SWRETURN.
062186,000714: 07,3543 55322 TS IMUCADR
062187,000715: 07,3544 12640 TCF MODEEXIT
062188,000716:
062189,000717: # Page 1439
062190,000718: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
062191,000719: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
062192,000720:
062193,000721: 07,3545 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
062194,000722: 07,3546 45021 CS ZERO # FOR FAILURE.
062195,000723: 07,3547 13552 TCF GOODEND +2
062196,000724:
062197,000725: 07,3550 54071 GOODEND TS RUPTREG2
062198,000726: 07,3551 45017 CS ONE # FOR SUCCESS.
062199,000727:
062200,000728: 07,3552 54072 TS RUPTREG3
062201,000729: 07,3553 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
062202,000730: 07,3554 11322 CCS MODECADR
062203,000731: 07,3555 13557 TCF +2 # YES -- WAKE IT UP.
062204,000732: 07,3556 13567 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
062205,000733:
062206,000734: 07,3557 35021 CAF ZERO # WAKE SLEEPING PROGRAM.
062207,000735: 07,3560 50071 INDEX RUPTREG2
062208,000736: 07,3561 57322 XCH MODECADR
062209,000737: 07,3562 05201 TC JOBWAKE
062210,000738:
062211,000739: 07,3563 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
062212,000740: 07,3564 50064 INDEX LOCCTR
062213,000741: 07,3565 26164 ADS LOC
062214,000742:
062215,000743: 07,3566 15324 TCF TASKOVER
062216,000744:
062217,000745: 07,3567 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
062218,000746: 07,3570 50071 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
062219,000747: 07,3571 55322 TS MODECADR # SUCCESSFUL.
062220,000748: 07,3572 15324 TCF TASKOVER
062221,000749:
062222,000750: # Page 1440
062223,000751: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
062224,000752:
062225,000753: # PROGRAM DESCRIPTION DATE -- 21 FEB 1967
062226,000754: # LOG SECTION IMU MODE SWITCHING
062227,000755: # MOD BY -- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
062228,000756:
062229,000757: # FUNCTIONAL DESCRIPTION --
062230,000758: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
062231,000759: # I/O FUNCTION IS COMPLETE. THE FOLLOWING CHECKS ON THE CALLING ROUTINES
062232,000760: # MODEECADR ARE MADE AND ACTED UPON.
062233,000761: # 1) +0 INDICATES INCOMPLETE I/O OPERATION. CALLING ROUTINE IS PUT TO
062234,000762: # SLEEP.
062235,000763: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
062236,000764: # CALL AND RETURNS TO CALLING ROUTINE AT L+3.
062237,000765: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
062238,000766: # AND RETURNS TO CALLING ROUTINE AT L+2.
062239,000767: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
062240,000768: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
062241,000769: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
062242,000770:
062243,000771: # CALLING SEQUENCE --
062244,000772: # L TC BANKCALL
062245,000773: # L+1 CADR (ONE OF 5 STALL ADDRESSES. I.E., IMUSTALL, OPTSTALL, RADSTALL,
062246,000774: # AOTSTALL, OR ATTSTALL)
062247,000775:
062248,000776: # NORMAL-EXIT MODE --
062249,000777: # TCF JOBSLEEP OR TCF MODEXIT
062250,000778:
062251,000779: # ALARM OR ABORT EXIT MODE --
062252,000780: # TC ABORT
062253,000781:
062254,000782: # OUTPUT --
062255,000783: # MODECADR=CADR IF JOBSLEEP
062256,000784: # MODECADR=+0 IF I/O COMPLETE
062257,000785: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
062258,000786: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
062259,000787:
062260,000788: # ERASABLE INITIALIZATION --
062261,000789: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
062262,000790: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
062263,000791: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
062264,000792:
062265,000793: # DEBRIS --
062266,000794: # RUPTREG2 AND CALLING ROUTINE MODECADR.
062267,000795:
062268,000796: 07,3573 35017 AOTSTALL CAF ONE # AOT.
062269,000797: 07,3574 03600 TC STALL
062270,000798:
062271,000799: 07,3575 35016 RADSTALL CAF TWO
062272,000800: 07,3576 13600 TCF STALL
062273,000801:
062274,000802: # Page 1441
062275,000803: 07,3577 07,3573 OPTSTALL EQUALS AOTSTALL
062276,000804:
062277,000805: 07,3577 35021 IMUSTALL CAF ZERO # IMU.
062278,000806:
062279,000807: 07,3600 00004 STALL INHINT
062280,000808: 07,3601 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
062281,000809: 07,3602 50000 INDEX A # SEE IF OPERATION COMPLETE.
062282,000810: 07,3603 11322 CCS MODECADR
062283,000811: 07,3604 13622 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
062284,000812: 07,3605 13616 TCF MODESLP # OPERATION INCOMPLETE.
062285,000813: 07,3606 13612 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
062286,000814:
062287,000815: 07,3607 50071 MG2 INDEX RUPTREG2 # COMPLETE FAILED IF -0. RESET TO +0.
062288,000816: 07,3610 55322 TS MODECADR # RETURN TO CALLER.
062289,000817: 07,3611 12640 TCF MODEEXIT
062290,000818:
062291,000819: 07,3612 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
062292,000820: 07,3613 13622 TCF MODABORT
062293,000821:
062294,000822: 07,3614 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
062295,000823: 07,3615 13607 TCF MG2 # RETURN IMMEDIATELY, SETTIN CADR = +0.
062296,000824:
062297,000825: 07,3616 04711 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
062298,000826: 07,3617 50071 INDEX RUPTREG2
062299,000827: 07,3620 55322 TS MODECADR
062300,000828: 07,3621 15175 TCF JOBSLEEP
062301,000829:
062302,000830: 07,3622 05721 MODABORT TC P00DOO # TWO PROGRAMS USING THE SAME DEVICE.
062303,000831: 07,3623 01210 OCT 1210
062304,000832:
062305,000833: # Page 1442
062306,000834: # CONSTANTS FOR MODE SWITCHING ROUTINES
062307,000835:
062308,000836: 07,3624 5771 BITS3&4 = OCT14
062309,000837: 07,3624 5033 BITS4&6 = OCT50
062310,000838: 07,3624 5027 BITS4-5 EQUALS BITS4&5
062311,000839: 07,3624 5010 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
062312,000840: 07,3624 77500 -COMMAX DEC -191 B-14
062313,000841: 07,3625 77477 -COMMAX- DEC -192 B-14
062314,000842: 07,3626 00074 600MS DEC 60 B-14
062315,000843: 07,3627 07,3073 IMUFIN20 = IMUFINE
062316,000844: 07,3627 31325 GOMANUR CA ATTCADR # IS KALCMANU FREE
062317,000845: 07,3630 00006 EXTEND
062318,000846: 07,3631 13634 BZF +3
062319,000847: 07,3632 05721 TC P00DOO # NO
062320,000848: 07,3633 01210 OCT 1210 # 2 TRYING TO USE SAME DEVICE
062321,000849:
062322,000850: 07,3634 00006 +3 EXTEND
062323,000851: 07,3635 30134 DCA BUF2
062324,000852: 07,3636 53326 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
062325,000853:
062326,000854: 07,3637 30006 CA BBANK
062327,000855: 07,3640 75023 MASK SEVEN
062328,000856: 07,3641 27326 ADS ATTCADR +1
062329,000857:
062330,000858: 07,3642 30167 CA PRIORITY
062331,000859: 07,3643 77674 MASK PRIO37
062332,000860: 07,3644 55327 TS ATTPRIO # SAVE USER'S PRIO
062333,000861:
062334,000862: 07,3645 33651 CAF KALEBCON # SET EBANK FOR KALCMAN3
062335,000863: 07,3646 54003 TS EBANK
062336,000864: 07,3647 04701 TC POSTJUMP
062337,000865: 07,3650 44000 CADR KALCMAN3
062338,000866: 07,3651 03261 KALEBCON ECADR BCDU
062339,000867:
062340,000868: # Page 1443
062341,000869: # PROGRAM DESCRIPTION
062342,000870: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
062343,000871: # MOD NO -- 1
062344,000872: # MOD BY -- N.BRODEUR
062345,000873:
062346,000874: # FUNCTIONAL DESCRIPTION
062347,000875: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
062348,000876: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
062349,000877: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
062350,000878: # CMC. CALLED THROUGH BANKCALL
062351,000879:
062352,000880: # CALLING SEQUENCE --
062353,000881: # L TC BANKCALL
062354,000882: # L+1 CADR R02BOTH
062355,000883:
062356,000884: # SUBROUTINES CALLED
062357,000885: # VARALARM
062358,000886: # FLAGUP
062359,000887:
062360,000888: # NORMAL EXIT MODES
062361,000889: # AT L+2 OF CALLING SEQUENCE
062362,000890:
062363,000891: # ALARM OR ABORT EXIT MODES
062364,000892: # GOTOP00H, WITH ALARM
062365,000893:
062366,000894: # ERASABLE INITIALIZATION REQUIRED
062367,000895: # NONE
062368,000896:
062369,000897: # DEBRIS
062370,000898: # CENTRALS -- A,Q,L
062371,000899:
062372,000900: 34,3763 BANK 34
062373,000901: 07,2000 SETLOC R02
062374,000902: 07,2000 BANK
062375,000903: 07,3652 COUNT 04/R02 # COUNT*
062376,000904:
062377,000905: 07,3652 00063 DEC51 DEC 51 B-14
062378,000906: 07,3653 35003 R02BOTH CAF BIT13
062379,000907: 07,3654 70077 MASK STATE +3 # REFSMFLG
062380,000908: 07,3655 10000 CCS A
062381,000909: 07,3656 03667 TC R02ZERO # ZERO IMUS
062382,000910:
062383,000911: 07,3657 31320 CA IMODES30
062384,000912: 07,3660 75007 MASK BIT9 # IS ISS INITIALIZED
062385,000913: 07,3661 00006 EXTEND
062386,000914: 07,3662 13664 BZF +2
062387,000915: 07,3663 45014 CS BIT4 # SEND IMU ALARM CODE 210
062388,000916: 07,3664 63672 AD OCT220 # SEND REFSMM ALARM
062389,000917: 07,3665 05764 TC VARALARM
062390,000918:
062391,000919: 07,3666 04106 TC GOTOP00H
062392,000920:
062393,000921: # Page 1444
062394,000922: 07,3667 05546 R02ZERO TC UPFLAG
062395,000923: 07,3670 00007 ADRES IMUSE
062396,000924: 07,3671 14675 TCF SWRETURN
062397,000925: 07,3672 00220 OCT220 OCT 220
062398,000926:
062399,000927: # Page 1445
062400,000928: # PROGRAM DESCRIPTION: P06 10 FEB 67
062401,000929:
062402,000930: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
062403,000931:
062404,000932: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
062405,000933: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
062406,000934: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
062407,000935:
062408,000936: # CALLING SEQUENCE:
062409,000937: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
062410,000938:
062411,000939: # SUBROUTINES CALLED:
062412,000940: # GOPERF1
062413,000941: # BANKCALL
062414,000942: # FLAGDOWN
062415,000943:
062416,000944: # Page 1446
062417,000945: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2.
062418,000946: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATIBILITY
062419,000947: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
062420,000948:
062421,000949: 26,2000 SETLOC P05P06
062422,000950: 26,2000 BANK
062423,000951:
062424,000952: 26,3660 1150 EBANK= TIME2SAV
062425,000953: 26,3660 COUNT* $$/P06
062426,000954:
062427,000955: 26,3660 05546 P06 TC UPFLAG # SET NODOV37 BIT
062428,000956: 26,3661 00054 ADRES NODOFLAG
062429,000957:
062430,000958: 26,3662 00004 PRESTAND INHINT
062431,000959: 26,3663 00006 EXTEND
062432,000960: 26,3664 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
062433,000961: 26,3665 53151 DXCH TIME2SAV
062434,000962: 26,3666 03717 TC SCALPREP
062435,000963: 26,3667 03662 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
062436,000964: 26,3670 52155 DXCH MPAC # T1,T2 AND SCALER OK
062437,000965: 26,3671 53153 DXCH SCALSAVE # STORE SCALER
062438,000966: 26,3672 00004 INHINT
062439,000967: 26,3673 04662 TC BANKCALL
062440,000968: 26,3674 17060 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
062441,000969:
062442,000970: 26,3675 05560 TC DOWNFLAG
062443,000971: 26,3676 00007 ADRES IMUSE # IMUSE DOWN
062444,000972: 26,3677 05560 TC DOWNFLAG
062445,000973: 26,3700 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
062446,000974:
062447,000975: 26,3701 35005 CAF BIT11
062448,000976: 26,3702 00006 EXTEND
062449,000977: 26,3703 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
062450,000978:
062451,000979: 26,3704 05412 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
062452,000980: 26,3705 07024 OCT 07024 # RECOVERS
062453,000981: 26,3706 20000 OCT 20000
062454,000982: 26,3707 1152 EBANK= SCALSAVE
062455,000983: 26,3707 03737 54062 2CADR POSTAND
062456,000984:
062457,000985: 26,3711 35036 CAF OCT62
062458,000986: 26,3712 04662 TC BANKCALL
062459,000987: 26,3713 21045 CADR GOPERF1
062460,000988: 26,3714 13711 TCF -3
062461,000989: 26,3715 13711 TCF -4
062462,000990: 26,3716 13711 TCF -5
062463,000991:
062464,000992: 26,3717 5036 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
062465,000993:
062466,000994: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
062467,000995: # Page 1447
062468,000996: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
062469,000997: # DATA ARE NOT COMPATIBLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
062470,000998: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
062471,000999: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
062472,001000: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
062473,001001: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
062474,001002: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
062475,001003: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
062476,001004: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
062477,001005:
062478,001006: 26,3717 00006 SCALPREP EXTEND
062479,001007: 26,3720 22156 QXCH MPAC +2
062480,001008: 26,3721 04554 TC FINETIME +1
062481,001009: 26,3722 00003 RELINT
062482,001010: 26,3723 52155 DXCH MPAC
062483,001011: 26,3724 35013 CA BIT5 # ADD 5 MS TO THE SCALER READING.
062484,001012: 26,3725 54001 TS L
062485,001013: 26,3726 35021 CA ZERO
062486,001014: 26,3727 20155 DAS MPAC
062487,001015: 26,3730 44362 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
062488,001016: 26,3731 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
062489,001017: 26,3732 56155 XCH MPAC +1
062490,001018: 26,3733 74362 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
062491,001019: # INTERVAL AFTER THE T1 INCREMENT
062492,001020: # (NOW = 00000, SINCE BIT 5 ADDED).
062493,001021: 26,3734 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
062494,001022: 26,3735 24156 INCR MPAC +2 # NO
062495,001023: 26,3736 00156 TC MPAC +2 # YES
062496,001024:
062497,001025: # POSTAND RECOVERS TIME AFTER STANDBY. THE SCALER IS SNAPSHOTTED AND THE
062498,001026: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
062499,001027: # INSPECTED TO INSURE COMPATIBILITY BETWEEN THE SCALER READING AND THE
062500,001028: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
062501,001029: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
062502,001030: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
062503,001031:
062504,001032: 26,3737 COUNT* $$/P05
062505,001033:
062506,001034: 26,3737 45005 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY
062507,001035: 26,3740 00006 EXTEND
062508,001036: 26,3741 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
062509,001037: 26,3742 00004 INHINT
062510,001038: 26,3743 35021 CA ZERO
062511,001039: 26,3744 54001 TS L
062512,001040: 26,3745 52025 DXCH TIME2 # CLEAR TIME1 TIME2
062513,001041: 26,3746 03717 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
062514,001042: 26,3747 03742 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
062515,001043: 26,3750 00006 EXTEND # T1,T2 AND SCALER OK
062516,001044: 26,3751 41153 DCS SCALSAVE
062517,001045: 26,3752 20155 DAS MPAC # FORM DP DIFFERENCE OF POST-STANDBY SCALER
062518,001046: # Page 1448
062519,001047: 26,3753 35006 CAF BIT10 # MINUS PRE-STANDBY SCALER AND SHIFT RIGHT
062520,001048: 26,3754 07256 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
062521,001049: 26,3755 35021 CAF ZERO
062522,001050: 26,3756 54156 TS MPAC +2 # NEEDED FOR TP AGREE
062523,001051: 26,3757 07226 TC TPAGREE # MAKE DP DIFF AGREE
062524,001052: 26,3760 10154 CCS MPAC
062525,001053: 26,3761 03766 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
062526,001054: 26,3762 03766 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
062527,001055: 26,3763 03764 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
062528,001056: 26,3764 35006 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
062529,001057: 26,3765 26154 ADS MPAC
062530,001058: 26,3766 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
062531,001059: 26,3767 31151 DCA TIME2SAV # PRE-STANDBY TIME1 TIME2
062532,001060: 26,3770 20155 DAS MPAC
062533,001061: 26,3771 07226 TC TPAGREE # FORCE SIGN AGREEMENT
062534,001062: 26,3772 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
062535,001063: 26,3773 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
062536,001064: 26,3774 05560 TC DOWNFLAG # CLEAR NODOFLAG
062537,001065: 26,3775 00054 ADRES NODOFLAG
062538,001066:
062539,001067: 26,3776 04106 TC GOTOP00H
062540,001068:
062541,001069:
062542,001070:
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc