Source Code

054262,000001: # Copyright: Public domain. 054263,000002: # Filename: IMU_MODE_SWITCHING_ROUTINES.agc 054264,000003: # Purpose: A section of Luminary 1C, revision 131. 054265,000004: # It is part of the source code for the Lunar Module's (LM) 054266,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 054267,000006: # This file is intended to be a faithful transcription, except 054268,000007: # that the code format has been changed to conform to the 054269,000008: # requirements of the yaYUL assembler rather than the 054270,000009: # original YUL assembler. 054271,000010: # Reference: pp. 1306-1334 of 1729.pdf. 054272,000011: # Contact: Ron Burkey <info@sandroid.org>. 054273,000012: # Website: www.ibiblio.org/apollo/index.html 054274,000013: # Mod history: 06/05/03 RSB. Began transcribing. 054275,000014: # 05/14/05 RSB Corrected website reference above. 054276,000015: # 2010-08-24 JL Fixed page number comment. 054277,000016: # 2010-10-25 JL Indentation fixes. 054278,000017: # 2011-05-07 JL Removed workaround. Flagged SBANK= workaround 054279,000018: # for future removal. 054280,000019: 054281,000020: # Page 1306 054282,000021: 5457 BLOCK 02 054283,000022: 4000 SETLOC FFTAG3 054284,000023: 4000 BANK 054285,000024: 054286,000025: 5457 E3,1471 EBANK= COMMAND 054287,000026: 054288,000027: # FIXED-FIXED ROUTINES 054289,000028: 054290,000029: 5457 COUNT* $$/IMODE 054291,000030: 5457 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS. 054292,000031: 5460 54032 TS CDUX 054293,000032: 5461 54033 TS CDUY 054294,000033: 5462 54034 TS CDUZ 054295,000034: 5463 00002 TC Q 054296,000035: 054297,000036: 5464 4743 SPSCODE = BIT9 054298,000037: 054299,000038: # Page 1307 054300,000039: # IMU ZEROING ROUTINES 054301,000040: 054302,000041: 11,3774 BANK 11 054303,000042: 07,2000 SETLOC MODESW 054304,000043: 07,2000 BANK 054305,000044: 054306,000045: 07,2705 COUNT* $$/IMODE 054307,000046: 07,2705 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS. 054308,000047: 07,2706 41035 CS DSPTAB +11D # DON'T ZERO CDUS IS IMU IN GIMBAL LOCK AND 054309,000048: 07,2707 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION) 054310,000049: 07,2710 10000 CCS A 054311,000050: 07,2711 12715 TCF IMUZEROA 054312,000051: 054313,000052: 07,2712 05567 TC ALARM # IF SO. 054314,000053: 07,2713 00206 OCT 00206 054315,000054: 054316,000055: 07,2714 13650 TCF CAGETSTJ +4 # IMMEDIATE FAILURE. 054317,000056: 054318,000057: 07,2715 03644 IMUZEROA TC CAGETSTJ 054319,000058: 054320,000059: 07,2716 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 054321,000060: 07,2717 74773 MASK SUPER011 # BIT5 FOR GROUND 054322,000061: 07,2720 27300 ADS IMODES33 054323,000062: 054324,000063: 07,2721 41277 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE 054325,000064: 07,2722 75741 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN). 054326,000065: 07,2723 27277 ADS IMODES30 054327,000066: 054328,000067: 07,2724 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR 054329,000068: 07,2725 00006 EXTEND # COUNTER DISABLED. 054330,000069: 07,2726 03012 WAND CHAN12 054331,000070: 054332,000071: 07,2727 03257 TC NOATTOFF # TURN OFF NO ATT LAMP. 054333,000072: 054334,000073: 07,2730 34747 CAF BIT5 054335,000074: 07,2731 00006 EXTEND 054336,000075: 07,2732 05012 WOR CHAN12 054337,000076: 054338,000077: 07,2733 05457 TC ZEROICDU 054339,000078: 07,2734 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO 054340,000079: 07,2735 05203 TC WAITLIST # RECEIVE ITS PULSE TRAIN. 054341,000080: 07,2736 E3,1474 EBANK= CDUIND 054342,000081: 07,2736 02750 16103 2CADR IMUZERO2 054343,000082: 054344,000083: 07,2740 41277 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT. 054345,000084: 07,2741 74743 MASK BIT9 054346,000085: 07,2742 10000 CCS A 054347,000086: 07,2743 12746 TCF MODEEXIT 054348,000087: # Page 1308 054349,000088: 07,2744 05567 TC ALARM 054350,000089: 07,2745 00210 OCT 210 054351,000090: 054352,000091: 07,2746 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT. 054353,000092: 07,2747 14631 TCF SWRETURN 054354,000093: 054355,000094: 07,2750 03632 IMUZERO2 TC CAGETEST 054356,000095: 07,2751 05457 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ 054357,000096: 054358,000097: 07,2752 44747 CS BIT5 # REMOVE ZERO DISCRETE. 054359,000098: 07,2753 00006 EXTEND 054360,000099: 07,2754 03012 WAND CHAN12 054361,000100: 054362,000101: 07,2755 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS 054363,000102: 07,2756 05224 TC VARDELAY 054364,000103: 054365,000104: 07,2757 03632 IMUZERO3 TC CAGETEST 054366,000105: 07,2760 45741 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT. 054367,000106: 07,2761 71277 MASK IMODES30 054368,000107: 07,2762 55277 TS IMODES30 054369,000108: 054370,000109: 07,2763 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES 054371,000110: 07,2764 71300 MASK IMODES33 # BIT5 FOR GROUND 054372,000111: 07,2765 55300 TS IMODES33 054373,000112: 054374,000113: 07,2766 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE 054375,000114: 07,2767 14703 CADR SETISSW # PRESENT. 054376,000115: 054377,000116: 07,2770 13622 TCF ENDIMU 054378,000117: 054379,000118: # Page 1309 054380,000119: # IMU COARSE ALIGN MODE. 054381,000120: 054382,000121: 07,2771 00004 IMUCOARS INHINT 054383,000122: 07,2772 03644 TC CAGETSTJ 054384,000123: 07,2773 03135 TC SETCOARS 054385,000124: 054386,000125: 07,2774 36245 CAF SIX 054387,000126: 07,2775 05203 TC WAITLIST 054388,000127: 07,2776 E3,1474 EBANK= CDUIND 054389,000128: 07,2776 03001 16103 2CADR COARS 054390,000129: 054391,000130: 07,3000 12746 TCF MODEEXIT 054392,000131: 054393,000132: 07,3001 03632 COARS TC CAGETEST 054394,000133: 07,3002 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS 054395,000134: 07,3003 00006 EXTEND 054396,000135: 07,3004 05012 WOR CHAN12 054397,000136: 054398,000137: 07,3005 34752 CAF TWO # SET CDU INDICATOR 054399,000138: 07,3006 55474 COARS1 TS CDUIND 054400,000139: 054401,000140: 07,3007 51474 INDEX CDUIND # COMPUTE THETAD -- THETAA IN 1'S 054402,000141: 07,3010 30321 CA THETAD # COMPLEMENT FORM 054403,000142: 07,3011 00006 EXTEND 054404,000143: 07,3012 51474 INDEX CDUIND 054405,000144: 07,3013 20032 MSU CDUX 054406,000145: 07,3014 00006 EXTEND 054407,000146: 07,3015 74737 MP BIT13 # SHIFT RIGHT 2 054408,000147: 07,3016 56001 XCH L # ROUND 054409,000148: 07,3017 60000 DOUBLE 054410,000149: 07,3020 54061 TS ITEMP1 054411,000150: 07,3021 13023 TCF +2 054412,000151: 07,3022 26001 ADS L 054413,000152: 054414,000153: 07,3023 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED 054415,000154: 07,3024 23471 LXCH COMMAND 054416,000155: 07,3025 11474 CCS CDUIND 054417,000156: 07,3026 03006 TC COARS1 054418,000157: 054419,000158: 07,3027 34752 CAF TWO # MINIMUM OF 4 MS WAIT 054420,000159: 07,3030 05224 TC VARDELAY 054421,000160: 054422,000161: # Page 1310 054423,000162: 07,3031 03632 COARS2 TC CAGETEST # DON'T CONTINUE IF CAGED. 054424,000163: 07,3032 54061 TS ITEMP1 # SET TO +0. 054425,000164: 07,3033 34752 CAF TWO # SET CDU INDICATOR. 054426,000165: 07,3034 55474 +3 TS CDUIND 054427,000166: 054428,000167: 07,3035 51474 INDEX CDUIND 054429,000168: 07,3036 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED 054430,000169: 07,3037 03043 TC COMPOS 054431,000170: 07,3040 03052 TC NEXTCDU +1 054432,000171: 07,3041 03110 TC COMNEG 054433,000172: 07,3042 03052 TC NEXTCDU +1 054434,000173: 054435,000174: 07,3043 63736 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED 054436,000175: 07,3044 00006 EXTEND # MINUS ONE 054437,000176: 07,3045 63120 BZMF COMZERO 054438,000177: 07,3046 51474 INDEX CDUIND 054439,000178: 07,3047 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES 054440,000179: 07,3050 43737 CS -COMMAX- # ALLOWED 054441,000180: 054442,000181: 07,3051 24061 NEXTCDU INCR ITEMP1 054443,000182: 07,3052 64754 AD NEG0 054444,000183: 07,3053 51474 INDEX CDUIND 054445,000184: 07,3054 54050 TS CDUXCMD # SET UP COMMAND REGISTER. 054446,000185: 054447,000186: 07,3055 11474 CCS CDUIND 054448,000187: 07,3056 03034 TC COARS2 +3 054449,000188: 054450,000189: 07,3057 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT. 054451,000190: 07,3060 13124 TCF SENDPULS 054452,000191: 054453,000192: 07,3061 05221 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE. 054454,000193: 07,3062 00226 DEC 150 B-14 054455,000194: 054456,000195: 07,3063 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT 054457,000196: 07,3064 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD. 054458,000197: 07,3065 50000 INDEX A 054459,000198: 07,3066 30032 CA CDUX 054460,000199: 07,3067 00006 EXTEND 054461,000200: 07,3070 50061 INDEX ITEMP1 054462,000201: 07,3071 20321 MSU THETAD 054463,000202: 07,3072 10000 CCS A 054464,000203: 07,3073 13101 TCF COARSERR 054465,000204: 07,3074 13076 TCF CORSCHK2 054466,000205: 07,3075 13101 TCF COARSERR 054467,000206: 054468,000207: # Page 1311 054469,000208: 07,3076 10061 CORSCHK2 CCS ITEMP1 054470,000209: 07,3077 13064 TCF CHKCORS 054471,000210: 07,3100 13622 TCF ENDIMU # END OF COARSE ALIGNMENT 054472,000211: 054473,000212: 07,3101 63107 COARSERR AD COARSTOL # 2 DEGREES. 054474,000213: 07,3102 00006 EXTEND 054475,000214: 07,3103 63076 BZMF CORSCHK2 054476,000215: 054477,000216: 07,3104 05567 TC ALARM # COARSE ALIGN ERROR. 054478,000217: 07,3105 00211 OCT 211 054479,000218: 054480,000219: 07,3106 13630 TCF IMUBAD 054481,000220: 054482,000221: 07,3107 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS 054483,000222: 054484,000223: 07,3110 63736 COMNEG AD -COMMAX 054485,000224: 07,3111 00006 EXTEND 054486,000225: 07,3112 63120 BZMF COMZERO 054487,000226: 07,3113 40000 COM 054488,000227: 07,3114 51474 INDEX CDUIND 054489,000228: 07,3115 55471 TS COMMAND 054490,000229: 07,3116 33737 CA -COMMAX- 054491,000230: 07,3117 03051 TC NEXTCDU 054492,000231: 054493,000232: 07,3120 34755 COMZERO CAF ZERO 054494,000233: 07,3121 51474 INDEX CDUIND 054495,000234: 07,3122 57471 XCH COMMAND 054496,000235: 07,3123 03051 TC NEXTCDU 054497,000236: 054498,000237: 07,3124 37743 SENDPULS CAF 13,14,15 054499,000238: 07,3125 00006 EXTEND 054500,000239: 07,3126 05014 WOR CHAN14 054501,000240: 07,3127 33740 CAF 600MS 054502,000241: 07,3130 13030 TCF COARS2 -1 # THEN TO VARDELAY 054503,000242: 054504,000243: 07,3131 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS 054505,000244: 07,3132 00006 EXTEND 054506,000245: 07,3133 05012 WOR CHAN12 054507,000246: 07,3134 05261 TC TASKOVER 054508,000247: 054509,000248: # Page 1312 054510,000249: 07,3135 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN 054511,000250: 07,3136 00006 EXTEND 054512,000251: 07,3137 02012 RAND CHAN12 054513,000252: 07,3140 10000 CCS A 054514,000253: 07,3141 00002 TC Q 054515,000254: 054516,000255: 07,3142 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS 054517,000256: 07,3143 00006 EXTEND 054518,000257: 07,3144 03012 WAND CHAN12 054519,000258: 054520,000259: 07,3145 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY 054521,000260: 07,3146 00006 EXTEND 054522,000261: 07,3147 03014 WAND CHAN14 054523,000262: 07,3150 44755 CS ZERO 054524,000263: 07,3151 54047 TS GYROCMD 054525,000264: 054526,000265: 07,3152 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN 054527,000266: 07,3153 00006 EXTEND 054528,000267: 07,3154 05012 WOR CHAN12 054529,000268: 054530,000269: 07,3155 41035 CS DSPTAB +11D # TURN ON NO ATT LAMP 054531,000270: 07,3156 73200 MASK OCT40010 054532,000271: 07,3157 27035 ADS DSPTAB +11D 054533,000272: 054534,000273: 07,3160 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 054535,000274: 07,3161 74746 MASK BIT6 054536,000275: 07,3162 27300 ADS IMODES33 054537,000276: 054538,000277: 07,3163 41277 CS IMODES30 # DISABLE IMUFAIL 054539,000278: 07,3164 74750 MASK BIT4 054540,000279: 07,3165 27277 ADS IMODES30 054541,000280: 054542,000281: 07,3166 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG 054543,000282: 07,3167 70075 MASK FLAGWRD1 054544,000283: 07,3170 54075 TS FLAGWRD1 054545,000284: 054546,000285: 07,3171 44735 CS DRFTBIT # CLEAR DRIFT FLAG 054547,000286: 07,3172 70076 MASK FLAGWRD2 054548,000287: 07,3173 54076 TS FLAGWRD2 054549,000288: 054550,000289: 07,3174 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG 054551,000290: 07,3175 70077 MASK FLAGWRD3 054552,000291: 07,3176 54077 TS FLAGWRD3 054553,000292: 054554,000293: 07,3177 00002 TC Q 054555,000294: 054556,000295: 07,3200 40010 OCT40010 OCT 40010 054557,000296: 054558,000297: # Page 1313 054559,000298: # IMU FINE ALIGN MODE SWITCH. 054560,000299: 054561,000300: 07,3201 00004 IMUFINE INHINT 054562,000301: 07,3202 03644 TC CAGETSTJ # SEE IF IMU BEING CAGED. 054563,000302: 054564,000303: 07,3203 43735 CS BITS4-5 # RESET ZERO AND COARSE 054565,000304: 07,3204 00006 EXTEND 054566,000305: 07,3205 03012 WAND CHAN12 054567,000306: 054568,000307: 07,3206 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED 054569,000308: 07,3207 71300 MASK IMODES33 054570,000309: 07,3210 55300 TS IMODES33 054571,000310: 054572,000311: 07,3211 03257 TC NOATTOFF 054573,000312: 054574,000313: 07,3212 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE 054575,000314: 07,3213 05203 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE 054576,000315: 07,3214 E3,1474 EBANK= CDUIND 054577,000316: 07,3214 03225 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN 054578,000317: 054579,000318: 07,3216 35000 CAF 2SECS 054580,000319: 07,3217 05203 TC WAITLIST 054581,000320: 07,3220 E3,1474 EBANK= CDUIND 054582,000321: 07,3220 03223 16103 2CADR IMUFINED 054583,000322: 054584,000323: 07,3222 12746 TCF MODEEXIT 054585,000324: 054586,000325: 07,3223 03632 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU. 054587,000326: 07,3224 13622 TCF ENDIMU 054588,000327: 054589,000328: # Page 1314 054590,000329: 07,3225 03637 IFAILOK TC CAGETSTQ # ENABLE IMU FAIL UNLESS IMU BEING CAGED. 054591,000330: 07,3226 15261 TCF TASKOVER # IT IS. 054592,000331: 054593,000332: 07,3227 34750 CAF BIT4 # DON'T RESET IMU FAIL INHIBIT IF SOMEONE 054594,000333: 07,3230 00006 EXTEND # HAS GONE INTO COARSE ALIGN. 054595,000334: 07,3231 02012 RAND CHAN12 054596,000335: 07,3232 10000 CCS A 054597,000336: 07,3233 15261 TCF TASKOVER 054598,000337: 054599,000338: 07,3234 41277 CS IMODES30 # RESET IMUFAIL. 054600,000339: 07,3235 74737 MASK BIT13 054601,000340: 07,3236 27277 ADS IMODES30 054602,000341: 07,3237 44750 CS BIT4 054603,000342: 07,3240 71277 PFAILOK2 MASK IMODES30 054604,000343: 07,3241 55277 TS IMODES30 054605,000344: 07,3242 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOE 054606,000345: 07,3243 14703 CADR SETISSW # THAT THE INHIBIT WAS BEEN REMOVED. 054607,000346: 07,3244 15261 TCF TASKOVER 054608,000347: 054609,000348: 07,3245 03637 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM. 054610,000349: 07,3246 15261 TCF TASKOVER 054611,000350: 054612,000351: 07,3247 41277 CS IMODES30 # RESET IMU AND PIPA FAIL BITS. 054613,000352: 07,3250 74742 MASK BIT10 054614,000353: 07,3251 27277 ADS IMODES30 054615,000354: 054616,000355: 07,3252 41300 CS IMODES33 054617,000356: 07,3253 74737 MASK BIT13 054618,000357: 07,3254 27300 ADS IMODES33 054619,000358: 054620,000359: 07,3255 44747 CS BIT5 054621,000360: 07,3256 13240 TCF PFAILOK2 054622,000361: 054623,000362: 07,3257 43200 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP. 054624,000363: 07,3260 71035 MASK DSPTAB +11D 054625,000364: 07,3261 64735 AD BIT15 054626,000365: 07,3262 55035 TS DSPTAB +11D 054627,000366: 07,3263 00002 TC Q 054628,000367: 054629,000368: # Page 1315 054630,000369: # ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE. 054631,000370: 054632,000371: 07,3264 44755 PIPUSE CS ZERO 054633,000372: 07,3265 54037 TS PIPAX 054634,000373: 07,3266 54040 TS PIPAY 054635,000374: 07,3267 54041 TS PIPAZ 054636,000375: 054637,000376: 07,3270 03637 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED 054638,000377: 07,3271 14631 TCF SWRETURN 054639,000378: 054640,000379: 07,3272 00004 INHINT 054641,000380: 07,3273 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL 054642,000381: 07,3274 71277 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING. 054643,000382: 07,3275 55277 TS IMODES30 054644,000383: 054645,000384: 07,3276 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW. 054646,000385: 07,3277 14703 CADR SETISSW # (OR GO OFF ON PIPFREE). 054647,000386: 054648,000387: 07,3300 12746 TCF MODEEXIT 054649,000388: 054650,000389: 07,3301 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DON'T LIGHT 054651,000390: 07,3302 41277 CS IMODES30 # ISS WARNING. 054652,000391: 07,3303 74753 MASK BIT1 054653,000392: 07,3304 27277 ADS IMODES30 054654,000393: 054655,000394: 07,3305 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALARM AND RESET 054656,000395: 07,3306 10000 CCS A # ISS WARNING. 054657,000396: 07,3307 12746 TCF MODEEXIT 054658,000397: 054659,000398: 07,3310 05567 TC ALARM 054660,000399: 07,3311 00212 OCT 212 054661,000400: 054662,000401: 07,3312 00004 INHINT 054663,000402: 054664,000403: 07,3313 13276 TCF PIPFREE2 054665,000404: 054666,000405: # Page 1316 054667,000406: # THE FOLLOWING ROUTINE TORQUES THE IRICS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIXE REGISTERS 054668,000407: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE 054669,000408: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT AT TEH INPUT COMMAND REGISTERS. 054670,000409: 054671,000410: 07,3314 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY. 054672,000411: 054673,000412: 07,3314 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR. 054674,000413: 07,3315 03644 TC CAGETSTJ # DON'T PROCEED IF IMU BEING CAGED. 054675,000414: 054676,000415: 07,3316 11311 CCS LGYRO # SEE IF GYROS BUSY. 054677,000416: 07,3317 03360 TC GYROBUSY # SLEEP. 054678,000417: 054679,000418: 07,3320 54156 TS MPAC +2 054680,000419: 07,3321 34746 CAF BIT6 # ENABLE THE POWER SUPPLY. 054681,000420: 07,3322 00006 EXTEND 054682,000421: 07,3323 05014 WOR CHAN14 054683,000422: 054684,000423: 07,3324 34751 CAF FOUR 054685,000424: 07,3325 05203 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER 054686,000425: 07,3326 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB). 054687,000426: 07,3326 03376 16103 2CADR STRTGYRO 054688,000427: 054689,000428: 07,3330 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR 054690,000429: 07,3331 56003 XCH EBANK # RESTORATION ON RETURN. 054691,000430: 07,3332 56161 XCH MPAC +5 054692,000431: 07,3333 55311 TS LGYRO # RESERVES GYROS. 054693,000432: 07,3334 74357 MASK LOW8 054694,000433: 07,3335 54061 TS ITEMP1 054695,000434: 054696,000435: 07,3336 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS. 054697,000436: 07,3337 54157 GYROAGRE TS MPAC +3 054698,000437: 07,3340 60000 DOUBLE 054699,000438: 07,3341 60061 AD ITEMP1 054700,000439: 07,3342 54160 TS MPAC +4 054701,000440: 07,3343 00006 EXTEND 054702,000441: 07,3344 50000 INDEX A 054703,000442: 07,3345 31401 DCA 1400 054704,000443: 07,3346 52155 DXCH MPAC 054705,000444: 07,3347 07262 TC TPAGREE 054706,000445: 07,3350 52155 DXCH MPAC 054707,000446: 07,3351 50160 INDEX MPAC +4 054708,000447: 07,3352 53401 DXCH 1400 054709,000448: 054710,000449: 07,3353 10157 CCS MPAC +3 054711,000450: 07,3354 13337 TCF GYROAGRE 054712,000451: 054713,000452: 07,3355 30161 CA MPAC +5 # RESTORE CALLER'S EBANK. 054714,000453: 07,3356 54003 TS EBANK 054715,000454: 07,3357 12746 TCF MODEEXIT 054716,000455: 054717,000456: # Page 1317 054718,000457: # ROUTINES TO ALLOW TORQUING ONLY ONE JOB AT A TIME. 054719,000458: 054720,000459: 07,3360 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR. 054721,000460: 07,3361 30134 DCA BUF2 054722,000461: 07,3362 52155 DXCH MPAC 054723,000462: 07,3363 33375 REGSLEEP CAF LGWAKE 054724,000463: 07,3364 15133 TCF JOBSLEEP 054725,000464: 054726,000465: 07,3365 11311 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY. 054727,000466: 07,3366 13363 TCF REGSLEEP # IF SO, SLEEP SOME MORE. 054728,000467: 054729,000468: 07,3367 54156 TS MPAC +2 054730,000469: 07,3370 00006 EXTEND 054731,000470: 07,3371 30155 DCA MPAC 054732,000471: 07,3372 52134 DXCH BUF2 # RESTORE SWRETURN INFO. 054733,000472: 07,3373 34753 CAF ONE 054734,000473: 07,3374 13325 TCF GWAKE2 054735,000474: 054736,000475: 07,3375 17365 LGWAKE CADR GWAKE 054737,000476: 054738,000477: # Page 1318 054739,000478: # GYRO-TORQUING WAITLIST TASKS. 054740,000479: 054741,000480: 07,3376 43617 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO. 054742,000481: 07,3377 00006 EXTEND 054743,000482: 07,3400 03014 WAND CHAN14 054744,000483: 054745,000484: 07,3401 03632 TC CAGETEST 054746,000485: 054747,000486: 07,3402 31311 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14. 054748,000487: 07,3403 00006 EXTEND 054749,000488: 07,3404 74750 MP BIT4 054750,000489: 07,3405 50000 INDEX A 054751,000490: 07,3406 13407 TCF +1 054752,000491: 07,3407 03424 TC GSELECT # =0. DO Y GYRO. 054753,000492: 07,3410 00202 OCT 00202 054754,000493: 054755,000494: 07,3411 03424 TC GSELECT # =1. DO Z GYRO. 054756,000495: 07,3412 00302 OCT 00302 054757,000496: 054758,000497: 07,3413 03422 TC GSELECT -2 # =2. DO X GYRO. 054759,000498: 07,3414 00100 OCT 00100 054760,000499: 054761,000500: 07,3415 34755 CAF ZERO # =3. DONE 054762,000501: 07,3416 55311 TS LGYRO 054763,000502: 07,3417 33375 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB. 054764,000503: 07,3420 05137 TC JOBWAKE 054765,000504: 054766,000505: 07,3421 13223 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY. 054767,000506: # Page 1319 054768,000507: 07,3422 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X. 054769,000508: 07,3423 27311 ADS LGYRO 054770,000509: 054771,000510: 07,3424 50002 GSELECT INDEX Q # SELECT GYRO. 054772,000511: 07,3425 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS 054773,000512: 07,3426 54064 TS ITEMP4 # AND INCREMENT TO LGYRO. 054774,000513: 07,3427 74757 MASK SEVEN 054775,000514: 07,3430 64737 AD BIT13 054776,000515: 07,3431 27311 ADS LGYRO 054777,000516: 07,3432 54003 TS EBANK 054778,000517: 07,3433 74357 MASK LOW8 054779,000518: 07,3434 54061 TS ITEMP1 054780,000519: 054781,000520: 07,3435 44757 CS SEVEN 054782,000521: 07,3436 70064 MASK ITEMP4 054783,000522: 07,3437 54064 TS ITEMP4 054784,000523: 054785,000524: 07,3440 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING. 054786,000525: 07,3441 50061 INDEX ITEMP1 054787,000526: 07,3442 31401 DCA 1400 054788,000527: 07,3443 52071 DXCH RUPTREG1 054789,000528: 054790,000529: 07,3444 10070 CCS RUPTREG1 054791,000530: 07,3445 13460 TCF MAJ+ 054792,000531: 07,3446 13450 TCF +2 054793,000532: 07,3447 13600 TCF MAJ- 054794,000533: 054795,000534: 07,3450 10071 CCS RUPTREG2 054796,000535: 07,3451 13455 TCF MIN+ 054797,000536: 07,3452 13402 TCF STRTGYR2 054798,000537: 07,3453 13575 TCF MIN- 054799,000538: 07,3454 13402 TCF STRTGYR2 054800,000539: 054801,000540: # Page 1320 054802,000541: 07,3455 63511 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST 054803,000542: 07,3456 00006 EXTEND # 16 GYRO PULSES. 054804,000543: 07,3457 63402 BZMF STRTGYR2 054805,000544: 054806,000545: 07,3460 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT. 054807,000546: 07,3461 33621 DCA GYROFRAC 054808,000547: 07,3462 20071 DAS RUPTREG1 054809,000548: 054810,000549: 07,3463 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO. 054811,000550: 07,3464 00006 EXTEND 054812,000551: 07,3465 05014 WOR CHAN14 054813,000552: 054814,000553: 07,3466 36077 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS 054815,000554: 07,3467 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG 054816,000555: 07,3470 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION 054817,000556: 07,3471 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE 054818,000557: 07,3472 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF 054819,000558: 07,3473 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND. 054820,000559: 07,3474 30070 CA RUPTREG1 054821,000560: 07,3475 00006 EXTEND 054822,000561: 07,3476 74743 MP BIT9 054823,000562: 07,3477 54070 TS RUPTREG1 054824,000563: 07,3500 30001 CA L 054825,000564: 07,3501 00006 EXTEND 054826,000565: 07,3502 74736 MP BIT14 054827,000566: 07,3503 26062 ADS ITEMP2 # INITIAL COMMAND. 054828,000567: 054829,000568: 07,3504 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED 054830,000569: 07,3505 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES). 054831,000570: 07,3506 67752 AD MINUS1 054832,000571: 07,3507 10000 CCS A 054833,000572: 07,3510 13534 TCF LONGGYRO 054834,000573: 07,3511 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD 054835,000574: 07,3512 13516 TCF +4 054836,000575: 054837,000576: 07,3513 34736 CAF BIT14 054838,000577: 07,3514 26062 ADS ITEMP2 054839,000578: 07,3515 34755 CAF ZERO 054840,000579: 054841,000580: 07,3516 50061 +4 INDEX ITEMP1 054842,000581: 07,3517 53401 DXCH 1400 054843,000582: # Page 1321 054844,000583: 07,3520 30062 CA ITEMP2 # ENTIRE COMMAND. 054845,000584: 07,3521 54047 LASTSEG TS GYROCMD 054846,000585: 07,3522 00006 EXTEND 054847,000586: 07,3523 74742 MP BIT10 # WAITLIST DT 054848,000587: 07,3524 66250 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES. 054849,000588: 07,3525 05203 TC WAITLIST 054850,000589: 07,3526 E3,1474 EBANK= CDUIND 054851,000590: 07,3526 03376 16103 2CADR STRTGYRO 054852,000591: 054853,000592: 07,3530 34742 GYROEXIT CAF BIT10 054854,000593: 07,3531 00006 EXTEND 054855,000594: 07,3532 05014 WOR CHAN14 054856,000595: 07,3533 15261 TCF TASKOVER 054857,000596: 054858,000597: 07,3534 50061 LONGGYRO INDEX ITEMP1 054859,000598: 07,3535 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF 054860,000599: 07,3536 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192. 054861,000600: 07,3537 60062 AD ITEMP2 054862,000601: 07,3540 54047 TS GYROCMD 054863,000602: 054864,000603: 07,3541 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS 054865,000604: 07,3542 74742 MP BIT10 # ALMOST OUT. 054866,000605: 07,3543 67750 AD NEG3 054867,000606: 07,3544 05203 TC WAITLIST 054868,000607: 07,3545 E3,1474 EBANK= CDUIND 054869,000608: 07,3545 03550 16103 2CADR 8192AUG 054870,000609: 054871,000610: 07,3547 13530 TCF GYROEXIT 054872,000611: 054873,000612: 07,3550 03632 8192AUG TC CAGETEST 054874,000613: 054875,000614: 07,3551 34750 CAF BIT4 054876,000615: 07,3552 00006 EXTEND 054877,000616: 07,3553 02012 RAND CHAN12 054878,000617: 07,3554 10000 CCS A 054879,000618: 07,3555 13630 TCF IMUBAD 054880,000619: 07,3556 31311 CA LGYRO # ADD 8192 PULSES TO GYROCMD 054881,000620: 07,3557 54003 TS EBANK 054882,000621: 07,3560 74357 MASK LOW8 054883,000622: 07,3561 54061 TS ITEMP1 054884,000623: 054885,000624: 07,3562 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG. 054886,000625: 07,3563 11400 CCS 1400 054887,000626: 07,3564 13570 TCF AUG2 # MORE TO COME. 054888,000627: 054889,000628: 07,3565 34736 CAF BIT14 054890,000629: 07,3566 26047 ADS GYROCMD 054891,000630: 07,3567 13522 TCF LASTSEG +1 054892,000631: 054893,000632: # Page 1322 054894,000633: 07,3570 50061 AUG2 INDEX ITEMP1 054895,000634: 07,3571 55400 TS 1400 054896,000635: 07,3572 34736 CAF BIT14 054897,000636: 07,3573 26047 ADS GYROCMD 054898,000637: 07,3574 13541 TCF AUG3 # COMPUTE DT. 054899,000638: 054900,000639: # Page 1323 054901,000640: 07,3575 63511 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT. 054902,000641: 07,3576 00006 EXTEND 054903,000642: 07,3577 63402 BZMF STRTGYR2 054904,000643: 054905,000644: 07,3600 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT. 054906,000645: 07,3601 43621 DCS GYROFRAC 054907,000646: 07,3602 20071 DAS RUPTREG1 054908,000647: 054909,000648: 07,3603 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO. 054910,000649: 07,3604 64743 AD BIT9 054911,000650: 07,3605 00006 EXTEND 054912,000651: 07,3606 05014 WOR CHAN14 054913,000652: 054914,000653: 07,3607 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE. 054915,000654: 07,3610 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE 054916,000655: 07,3611 40071 CS RUPTREG2 # POSITIVE -- BIT9 OF CHAN 14 DETERMINES 054917,000656: 07,3612 76077 MASK LOW7 # THE SIGN OF THE COMMAND. 054918,000657: 07,3613 40000 COM 054919,000658: 07,3614 56071 XCH RUPTREG2 054920,000659: 07,3615 40000 COM 054921,000660: 07,3616 13471 TCF GMERGE 054922,000661: 054923,000662: 07,3617 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS. 054924,000663: 054925,000664: 07,3620 00000 00034 GYROFRAC 2DEC .215 B-21 054926,000665: 054927,000666: # Page 1324 054928,000667: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE. 054929,000668: 054930,000669: 07,3622 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURRED OR IF 054931,000670: 07,3623 00011 READ DSALMOUT # ISS WARNING IS ON. 054932,000671: 07,3624 74753 MASK BIT1 054933,000672: 07,3625 10000 CCS A 054934,000673: 07,3626 13630 TCF IMUBAD 054935,000674: 054936,000675: 07,3627 13656 IMUGOOD TCF GOODEND # WITH C(A) = 0. 054937,000676: 054938,000677: 07,3630 34755 IMUBAD CAF ZERO 054939,000678: 07,3631 13653 TCF BADEND 054940,000679: 054941,000680: 07,3632 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE 054942,000681: 07,3633 71277 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED. 054943,000682: 07,3634 10000 CCS A 054944,000683: 07,3635 13630 TCF IMUBAD # DIRECTLY. 054945,000684: 07,3636 00002 TC Q # WITH C(A) = +0. 054946,000685: 054947,000686: 07,3637 41277 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED. 054948,000687: 07,3640 74746 MASK BIT6 054949,000688: 07,3641 10000 CCS A 054950,000689: 07,3642 24002 INCR Q 054951,000690: 07,3643 00002 TC Q 054952,000691: 054953,000692: 07,3644 41277 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION. 054954,000693: 07,3645 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED. 054955,000694: 07,3646 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION 054956,000695: 07,3647 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY 054957,000696: 07,3650 44755 CS ZERO # TO SWRETURN. 054958,000697: 07,3651 55301 TS IMUCADR 054959,000698: 07,3652 12746 TCF MODEEXIT 054960,000699: 054961,000700: # Page 1325 054962,000701: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION 054963,000702: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS. 054964,000703: 054965,000704: 07,3653 54071 BADEND TS RUPTREG2 # DEVICE INDEX. 054966,000705: 07,3654 44755 CS ZERO # FOR FAILURE. 054967,000706: 07,3655 13660 TCF GOODEND +2 054968,000707: 054969,000708: 07,3656 54071 GOODEND TS RUPTREG2 054970,000709: 07,3657 44753 CS ONE # FOR SUCCESS. 054971,000710: 054972,000711: 07,3660 54072 TS RUPTREG3 054973,000712: 07,3661 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP. 054974,000713: 07,3662 11301 CCS MODECADR 054975,000714: 07,3663 13667 TCF +4 # YES -- WAKE IT UP. 054976,000715: 07,3664 13677 TCF ENDMODE # IF 0, PROGRAM NOT IN YET. 054977,000716: 054978,000717: 07,3665 00006 EXTEND 054979,000718: 07,3666 13700 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0. 054980,000719: 054981,000720: 07,3667 34755 CAF ZERO # WAKE SLEEPING PROGRAM. 054982,000721: 07,3670 50071 INDEX RUPTREG2 054983,000722: 07,3671 57301 XCH MODECADR 054984,000723: 07,3672 05137 TC JOBWAKE 054985,000724: 054986,000725: 07,3673 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL. 054987,000726: 07,3674 50064 INDEX LOCCTR 054988,000727: 07,3675 26164 ADS LOC 054989,000728: 054990,000729: 07,3676 15261 TCF TASKOVER 054991,000730: 054992,000731: 07,3677 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT 054993,000732: 07,3700 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND 054994,000733: 07,3701 55301 TS MODECADR # SUCCESSFUL. 054995,000734: 07,3702 15261 TCF TASKOVER 054996,000735: 054997,000736: # Page 1326 054998,000737: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION. 054999,000738: 055000,000739: # PROGRAM DESCRIPTION DATE -- 21 FEB 1967 055001,000740: # LOG SECTION IMU MODE SWITCHING 055002,000741: # MOD BY -- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82 055003,000742: 055004,000743: # FUNCTIONAL DESCRIPTION -- 055005,000744: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED 055006,000745: # I/O FUNCTION IS COMPLETE. THE FOLLOWING CHECKS ON THE CALLING ROUTINES 055007,000746: # MODEECADR ARE MADE AND ACTED UPON. 055008,000747: # 1) +0 INDICATES INCOMPLETE I/O OPERATION. CALLING ROUTINE IS PUT TO 055009,000748: # SLEEP. 055010,000749: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP 055011,000750: # CALL AND RETURNS TO CALLING ROUTINE AT L+3. 055012,000751: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR 055013,000752: # AND RETURNS TO CALLING ROUTINE AT L+2. 055014,000753: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF 055015,000754: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM 055016,000755: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS. 055017,000756: 055018,000757: # CALLING SEQUENCE -- 055019,000758: # L TC BANKCALL 055020,000759: # L+1 CADR (ONE OF 5 STALL ADDRESSES. I.E., IMUSTALL, OPTSTALL, RADSTALL, 055021,000760: # AOTSTALL, OR ATTSTALL) 055022,000761: 055023,000762: # NORMAL-EXIT MODE -- 055024,000763: # TCF JOBSLEEP OR TCF MODEXIT 055025,000764: 055026,000765: # ALARM OR ABORT EXIT MODE -- 055027,000766: # TC ABORT 055028,000767: 055029,000768: # OUTPUT -- 055030,000769: # MODECADR=CADR IF JOBSLEEP 055031,000770: # MODECADR=+0 IF I/O COMPLETE 055032,000771: # BUF2=L+3 IF I/O COMPLETE AND GOOD. 055033,000772: # BUF2=L+2 IF I/O COMPLETE BUT FAILED. 055034,000773: 055035,000774: # ERASABLE INITIALIZATION -- 055036,000775: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2) 055037,000776: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE. 055038,000777: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS. 055039,000778: 055040,000779: # DEBRIS -- 055041,000780: # RUPTREG2 AND CALLING ROUTINE MODECADR. 055042,000781:

[WORKAROUND] RSB 2004

055044,000783: 07,3703  30,2000                                 SBANK=   LOWSUPER                              

[WORKAROUND]

055046,000785: 
055047,000786: 07,3703           34753        AOTSTALL          CAF      ONE                                   #  AOT.
055048,000787: 07,3704           03710                          TC       STALL                                 
055049,000788: 
055050,000789: 07,3705           34752        RADSTALL          CAF      TWO                                   
055051,000790: 07,3706           13710                          TCF      STALL                                 
055052,000791: 
055053,000792:                                                                                                 #  Page 1327
055054,000793: 07,3707  07,3703               OPTSTALL          EQUALS   AOTSTALL                              
055055,000794: 
055056,000795: 07,3707           34755        IMUSTALL          CAF      ZERO                                  #  IMU.
055057,000796: 
055058,000797: 07,3710           00004        STALL             INHINT                                         
055059,000798: 07,3711           54071                          TS       RUPTREG2                              #  SAVE DEVICE INDEX.
055060,000799: 07,3712           50000                          INDEX    A                                     #  SEE IF OPERATION COMPLETE.
055061,000800: 07,3713           11301                          CCS      MODECADR                              
055062,000801: 07,3714           13732                          TCF      MODABORT                              #  ALLOWABLE STATES ARE +0, -1, AND -0.
055063,000802: 07,3715           13726                          TCF      MODESLP                               #  OPERATION INCOMPLETE.
055064,000803: 07,3716           13722                          TCF      MODEGOOD                              #  COMPLETE AND GOOD IF = -1.
055065,000804: 
055066,000805: 07,3717           50071        MG2               INDEX    RUPTREG2                              #  COMPLETE FAILED IF -0.  RESET TO +0.
055067,000806: 07,3720           55301                          TS       MODECADR                              #  RETURN TO CALLER.
055068,000807: 07,3721           12746                          TCF      MODEEXIT                              
055069,000808: 
055070,000809: 07,3722           10000        MODEGOOD          CCS      A                                     #  MAKE SURE INITIAL STATE -1.
055071,000810: 07,3723           13732                          TCF      MODABORT                              
055072,000811: 
055073,000812: 07,3724           24133                          INCR     BUF2                                  #  IF SO, INCREMENT RETURN ADDRESS AND
055074,000813: 07,3725           13717                          TCF      MG2                                   #  RETURN IMMEDIATELY, SETTIN CADR = +0.
055075,000814: 
055076,000815: 07,3726           04645        MODESLP           TC       MAKECADR                              #  CALL FROM SWITCHABLE FIXED ONLY.
055077,000816: 07,3727           50071                          INDEX    RUPTREG2                              
055078,000817: 07,3730           55301                          TS       MODECADR                              
055079,000818: 07,3731           15133                          TCF      JOBSLEEP                              
055080,000819: 
055081,000820: 07,3732           52134        MODABORT          DXCH     BUF2                                  
055082,000821: 07,3733           05706                          TC       BAILOUT1                              #  TWO PROGRAMS USING THE SAME DEVICE.
055083,000822: 07,3734           31210                          OCT      31210                                 
055084,000823: 
055085,000824:                                                                                                 #  Page 1328
055086,000825:                                                                                                 #  CONSTANTS FOR MODE SWITCHING ROUTINES
055087,000826: 
055088,000827: 07,3735     5741               BITS3&4           =        OCT14                                 
055089,000828: 07,3735     4771               BITS4&6           =        OCT50                                 
055090,000829: 07,3735           00030        BITS4-5           OCT      00030                                 
055091,000830: 07,3736     4744               IMUSEFLG          EQUALS   BIT8                                  #  INTERPRETER SWITCH 7.
055092,000831: 07,3736           77500        -COMMAX           DEC      -191       B-14                       
055093,000832: 07,3737           77477        -COMMAX-          DEC      -192       B-14                       
055094,000833: 07,3740           00074        600MS             DEC      60         B-14                       
055095,000834: 07,3741  07,3201               IMUFIN20          =        IMUFINE                               
055096,000835: 07,3741           31304        GOMANUR           CA       ATTCADR                               #  IS KALCMANU FREE
055097,000836: 07,3742           00006                          EXTEND                                         
055098,000837: 07,3743           13745                          BZF      +2                                    
055099,000838: 07,3744           03732                          TC       MODABORT                              #  BAILOUT
055100,000839: 07,3745           00006                 +2       EXTEND                                         
055101,000840: 07,3746           30134                          DCA      BUF2                                  
055102,000841: 07,3747           53305                          DXCH     ATTCADR                               #  SAVE FINAL RETURN FOR KALCMAN3
055103,000842: 
055104,000843: 07,3750           30006                          CA       BBANK                                 
055105,000844: 07,3751           74757                          MASK     SEVEN                                 
055106,000845: 07,3752           27305                          ADS      ATTCADR    +1                         
055107,000846: 
055108,000847: 07,3753           30167                          CA       PRIORITY                              
055109,000848: 07,3754           77730                          MASK     PRIO37                                
055110,000849: 07,3755           55306                          TS       ATTPRIO                               #  SAVE USER'S PRIO
055111,000850: 
055112,000851: 07,3756           33762                          CAF      KALEBCON                              #  SET EBANK FOR KALCMAN3
055113,000852: 07,3757           54003                          TS       EBANK                                 
055114,000853: 07,3760           04635                          TC       POSTJUMP                              
055115,000854: 07,3761           44004                          CADR     KALCMAN3                              
055116,000855: 07,3762           03275        KALEBCON          ECADR    BCDU                                  
055117,000856: 
055118,000857:                                                                                                 #  Page 1329
055119,000858:                                                                                                 #  PROGRAM DESCRIPTION
055120,000859:                                                                                                 #  IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
055121,000860:                                                                                                 #  MOD NO -- 1
055122,000861:                                                                                                 #  MOD BY -- N.BRODEUR
055123,000862: 
055124,000863:                                                                                                 #  FUNCTIONAL DESCRIPTION
055125,000864:                                                                                                 #         TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
055126,000865:                                                                                                 #         ORIENTATION KNOWN BY THE CMC.  TO REQUEST SELECTION OF THE APPROPRIATE
055127,000866:                                                                                                 #         PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
055128,000867:                                                                                                 #         CMC.  CALLED THROUGH BANKCALL
055129,000868: 
055130,000869:                                                                                                 #  CALLING SEQUENCE --
055131,000870:                                                                                                 #         L       TC      BANKCALL
055132,000871:                                                                                                 #         L+1     CADR    R02BOTH
055133,000872: 
055134,000873:                                                                                                 #  SUBROUTINES CALLED
055135,000874:                                                                                                 #         VARALARM
055136,000875:                                                                                                 #         FLAGUP
055137,000876: 
055138,000877:                                                                                                 #  NORMAL EXIT MODES
055139,000878:                                                                                                 #         AT L+2 OF CALLING SEQUENCE
055140,000879: 
055141,000880:                                                                                                 #  ALARM OR ABORT EXIT MODES
055142,000881:                                                                                                 #         GOTOP00H, WITH ALARM
055143,000882: 
055144,000883:                                                                                                 #  ERASABLE INITIALIZATION REQUIRED
055145,000884:                                                                                                 #         NONE
055146,000885: 
055147,000886:                                                                                                 #  DEBRIS
055148,000887:                                                                                                 #         CENTRALS -- A,Q,L
055149,000888: 
055150,000889: 34,3650                                          BANK     34                                    
055151,000890: 04,2000                                          SETLOC   R02                                   
055152,000891: 04,2000                                          BANK                                           
055153,000892: 04,3232                                          COUNT*   $$/R02                                
055154,000893: 04,3232           00063        DEC51             DEC      51         B-14                       
055155,000894: 04,3233           34737        R02BOTH           CAF      REFSMBIT                              
055156,000895: 04,3234           70077                          MASK     FLAGWRD3                              
055157,000896: 04,3235           10000                          CCS      A                                     
055158,000897: 04,3236           03247                          TC       R02ZERO                               #  ZERO IMUS
055159,000898: 
055160,000899: 04,3237           31277                          CA       IMODES30                              
055161,000900: 04,3240           74743                          MASK     BIT9                                  #  IS ISS INITIALIZED
055162,000901: 04,3241           00006                          EXTEND                                         
055163,000902: 04,3242           13244                          BZF      +2                                    
055164,000903: 04,3243           44750                          CS       BIT4                                  #  SEND IMU ALARM CODE 210
055165,000904: 04,3244           63252                          AD       OCT220                                #  SEND REFSMM ALARM
055166,000905: 04,3245           05734                          TC       VARALARM                              
055167,000906: 
055168,000907: 04,3246           06001                          TC       GOTOP00H                              
055169,000908: 
055170,000909: 04,3247           05504        R02ZERO           TC       UPFLAG                                
055171,000910:                                                                                                 #  Page 1330
055172,000911: 04,3250           00007                          ADRES    IMUSE                                 
055173,000912: 04,3251           14631                          TCF      SWRETURN                              
055174,000913: 04,3252           00220        OCT220            OCT      220                                   
055175,000914: 
055176,000915:                                                                                                 #  Page 1331
055177,000916:                                                                                                 #  PROGRAM DESCRIPTION:   P06             10 FEB 67
055178,000917: 
055179,000918:                                                                                                 #  TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
055180,000919: 
055181,000920:                                                                                                 #  THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY.  IN THIS CONDITION THE IMU
055182,000921:                                                                                                 #  HEATER POWER IS ON.  THE IMU OPERATE POWER IS OFF.  THE COMPUTER POWER IS ON.  THE OPTICS POWER IS OFF.  THE
055183,000922:                                                                                                 #  CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
055184,000923: 
055185,000924:                                                                                                 #  CALLING SEQUENCE:
055186,000925:                                                                                                 #         ASTRONAUT REQUEST THROUGH DSKY  V37E 06E.
055187,000926: 
055188,000927:                                                                                                 #  SUBROUTINES CALLED:
055189,000928:                                                                                                 #         GOPERF1
055190,000929:                                                                                                 #         BANKCALL
055191,000930:                                                                                                 #         FLAGDOWN
055192,000931: 
055193,000932:                                                                                                 #  Page 1332
055194,000933:                                                                                                 #  PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2.
055195,000934:                                                                                                 #  THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATIBILITY
055196,000935:                                                                                                 #  BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
055197,000936: 
055198,000937: 37,2000                                          SETLOC   P05P06                                
055199,000938: 37,2000                                          BANK                                           
055200,000939: 
055201,000940: 37,3652     0314                                 EBANK=   TIME2SAV                              
055202,000941: 37,3652                                          COUNT*   $$/P06                                
055203,000942: 
055204,000943: 37,3652           05504        P06               TC       UPFLAG                                #  SET NODOV37 BIT
055205,000944: 37,3653           00054                          ADRES    NODOFLAG                              
055206,000945: 
055207,000946: 37,3654           00004        PRESTAND          INHINT                                         
055208,000947: 37,3655           00006                          EXTEND                                         
055209,000948: 37,3656           30025                          DCA      TIME2                                 #  SNAPSHOT TIME1 TIME2
055210,000949: 37,3657           52315                          DXCH     TIME2SAV                              
055211,000950: 37,3660           03711                          TC       SCALPREP                              
055212,000951: 37,3661           03654                          TC       PRESTAND                              #  T1,T2,SCALER NOT COMPATIBLE
055213,000952: 37,3662           52155                          DXCH     MPAC                                  #  T1,T2 AND SCALER OK
055214,000953: 37,3663           52317                          DXCH     SCALSAVE                              #  STORE SCALER
055215,000954: 37,3664           00004                          INHINT                                         
055216,000955: 37,3665           04616                          TC       BANKCALL                              
055217,000956: 37,3666           17166                          CADR     RNDREFDR                              #  REFSMM, DRIFT, TRACK FLAGS DOWN
055218,000957: 
055219,000958: 37,3667           05516                          TC       DOWNFLAG                              
055220,000959: 37,3670           00007                          ADRES    IMUSE                                 #  IMUSE DOWN
055221,000960: 37,3671           05516                          TC       DOWNFLAG                              
055222,000961: 37,3672           00010                          ADRES    RNDVZFLG                              #  RNDVZFLG DOWN
055223,000962: 
055224,000963: 37,3673           34741                          CAF      BIT11                                 
055225,000964: 37,3674           00006                          EXTEND                                         
055226,000965: 37,3675           05013                          WOR      CHAN13                                #  SET STANDBY ENABLE BIT
055227,000966: 
055228,000967: 37,3676           05353                          TC       PHASCHNG                              #  SET RESTART TO POSTAND WHEN STANDBY
055229,000968: 37,3677           07024                          OCT      07024                                 #         RECOVERS
055230,000969: 37,3700           20000                          OCT      20000                                 
055231,000970: 37,3701     0316                                 EBANK=   SCALSAVE                              
055232,000971: 37,3701           03731 76060                    2CADR    POSTAND                               
055233,000972: 
055234,000973: 37,3703           34774                          CAF      OCT62                                 
055235,000974: 37,3704           04616                          TC       BANKCALL                              
055236,000975: 37,3705           20624                          CADR     GOPERF1                               
055237,000976: 37,3706           13703                          TCF      -3                                    
055238,000977: 37,3707           13703                          TCF      -4                                    
055239,000978: 37,3710           13703                          TCF      -5                                    
055240,000979: 
055241,000980: 37,3711     4774               OCT62             EQUALS   .5SEC                                 #  DEC 50 = OCT 62
055242,000981: 
055243,000982:                                                                                                 #  THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
055244,000983:                                                                                                 #  Page 1333
055245,000984:                                                                                                 #  T1 INCREMENT.  IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
055246,000985:                                                                                                 #  DATA ARE NOT COMPATIBLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
055247,000986:                                                                                                 #  DATA.  OTHERWISE, THE RETURN IS TO L+2 TO PROCEED.  ROUTINE ALSO PREPARES
055248,000987:                                                                                                 #  THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2.  (THE
055249,000988:                                                                                                 #  10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
055250,000989:                                                                                                 #  T1.0 ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
055251,000990:                                                                                                 #  ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1.  THE LOW 5
055252,000991:                                                                                                 #  BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
055253,000992:                                                                                                 #  DATA TO 10 MS.  RESULTS ARE STORED IN MPAC, +1.
055254,000993: 
055255,000994: 37,3711           00006        SCALPREP          EXTEND                                         
055256,000995: 37,3712           22156                          QXCH     MPAC       +2                         
055257,000996: 37,3713           04103                          TC       FINETIME   +1                         
055258,000997: 37,3714           00003                          RELINT                                         
055259,000998: 37,3715           52155                          DXCH     MPAC                                  
055260,000999: 37,3716           34747                          CA       BIT5                                  #  ADD 5 MS TO THE SCALER READING.
055261,001000: 37,3717           54001                          TS       L                                     
055262,001001: 37,3720           34755                          CA       ZERO                                  
055263,001002: 37,3721           20155                          DAS      MPAC                                  
055264,001003: 37,3722           44346                          CS       LOW5                                  #  SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
055265,001004: 37,3723           70155                          MASK     MPAC       +1                         #  AND STORE RESULTS IN MPAC,+1.
055266,001005: 37,3724           56155                          XCH      MPAC       +1                         
055267,001006: 37,3725           74346                          MASK     LOW5                                  #  TEST LOW 5 BITS OF SCALER FOR THE FIRST
055268,001007:                                                                                                 #  INTERVAL AFTER THE T1 INCREMENT
055269,001008:                                                                                                 #  (NOW = 00000, SINCE BIT 5 ADDED).
055270,001009: 37,3726           10000                          CCS      A                                     #  IS IT 1ST INTERVAL AFTER T1 INCREMENT
055271,001010: 37,3727           24156                          INCR     MPAC       +2                         #  NO
055272,001011: 37,3730           00156                          TC       MPAC       +2                         #  YES
055273,001012: 
055274,001013:                                                                                                 #  POSTAND RECOVERS TIME AFTER STANDBY.  THE SCALER IS SNAPSHOTTED AND THE
055275,001014:                                                                                                 #  TIME1 TIME2 COUNTER IS SET TO ZERO.  THE LOW 5 BITS OF THE SCALER ARE
055276,001015:                                                                                                 #  INSPECTED TO INSURE COMPATIBILITY BETWEEN THE SCALER READING AND THE
055277,001016:                                                                                                 #  CLEARING OF THE TIME COUNTER.  IT THEN COMPUTES THE DIFFERENCE IN SCALER
055278,001017:                                                                                                 #  VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
055279,001018:                                                                                                 #  TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
055280,001019: 
055281,001020: 37,3731                                          COUNT*   $$/P05                                
055282,001021: 
055283,001022: 37,3731           44741        POSTAND           CS       BIT11                                 #  RECOVER TIME AFTER STANDBY
055284,001023: 37,3732           00006                          EXTEND                                         
055285,001024: 37,3733           03013                          WAND     CHAN13                                #  CLEAR STANDBY ENABLE BIT
055286,001025: 37,3734           00004                          INHINT                                         
055287,001026: 37,3735           34755                          CA       ZERO                                  
055288,001027: 37,3736           54001                          TS       L                                     
055289,001028: 37,3737           52025                          DXCH     TIME2                                 #  CLEAR TIME1 TIME2
055290,001029: 37,3740           03711                          TC       SCALPREP                              #  STORE SCALER IN MPAC, MPAC+1
055291,001030: 37,3741           03734                          TC       POSTAND    +3                         #  T1,T2,SCALER NOT COMPATIBLE
055292,001031: 37,3742           00006                          EXTEND                                         #  T1,T2 AND SCALER OK
055293,001032: 37,3743           40317                          DCS      SCALSAVE                              
055294,001033: 37,3744           20155                          DAS      MPAC                                  #  FORM DP DIFFERENCE OF POST-STANDBY SCALER
055295,001034:                                                                                                 #  Page 1334
055296,001035: 37,3745           34742                          CAF      BIT10                                 #  MINUS PRE-STANDBY SCALER AND SHIFT RIGHT
055297,001036: 37,3746           07312                          TC       SHORTMP                               #  5 TO ALIGN BITS WITH TIME1 TIME2.
055298,001037: 37,3747           34755                          CAF      ZERO                                  
055299,001038: 37,3750           54156                          TS       MPAC       +2                         #  NEEDED FOR TP AGREE
055300,001039: 37,3751           07262                          TC       TPAGREE                               #  MAKE DP DIFF AGREE
055301,001040: 37,3752           10154                          CCS      MPAC                                  
055302,001041: 37,3753           03760                          TC       POSTCOM                               #  IF DP DIFF NET +, NO SCALER OVERFLOW
055303,001042: 37,3754           03760                          TC       POSTCOM                               #  BETWEEN PRE AND POST STANDBY.
055304,001043: 37,3755           03756                          TC       +1                                    #  IF DP DIFF NET -, SCALER OVERFLOWED.  ADD
055305,001044: 37,3756           34742                          CAF      BIT10                                 #  BIT 10 TO HIGH DIFF TO CORRECT.
055306,001045: 37,3757           26154                          ADS      MPAC                                  
055307,001046: 37,3760           00006        POSTCOM           EXTEND                                         #  C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
055308,001047: 37,3761           30315                          DCA      TIME2SAV                              #  PRE-STANDBY TIME1 TIME2
055309,001048: 37,3762           20155                          DAS      MPAC                                  
055310,001049: 37,3763           07262                          TC       TPAGREE                               #  FORCE SIGN AGREEMENT
055311,001050: 37,3764           52155                          DXCH     MPAC                                  #  UPDATED VALUE FOR T1,T2.
055312,001051: 37,3765           20025                          DAS      TIME2                                 #  LOAD UPDATED VALUE INTO T1,T2, WITH
055313,001052: 37,3766           05516                          TC       DOWNFLAG                              #  CLEAR NODOFLAG
055314,001053: 37,3767           00054                          ADRES    NODOFLAG                              
055315,001054: 
055316,001055: 37,3770           06001                          TC       GOTOP00H                              
055317,001056: 

End of include-file IMU_MODE_SWITCHING_ROUTINES.agc.  Parent file is MAIN.agc