Source Code

055837,000001: # Copyright: Public domain. 055838,000002: # Filename: IMU_MODE_SWITCHING_ROUTINES.agc 055839,000003: # Purpose: Part of the source code for Luminary 1A build 099. 055840,000004: # It is part of the source code for the Lunar Module's (LM) 055841,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 055842,000006: # Assembler: yaYUL 055843,000007: # Contact: Onno Hommes <ohommes@cmu.edu>. 055844,000008: # Website: www.ibiblio.org/apollo. 055845,000009: # Pages: 1309-1337 055846,000010: # Mod history: 2009-05-28 OH Transcribed from page images. 055847,000011: # 2009-06-05 RSB Fixed a typo. 055848,000012: # 2011-01-06 JL Fixed pseudo-label indentation. 055849,000013: # 2011-05-08 JL Removed workaround. Flagged SBANK= 055850,000014: # workaround for future removal. 055851,000015: 055852,000016: # This source code has been transcribed or otherwise adapted from 055853,000017: # digitized images of a hardcopy from the MIT Museum. The digitization 055854,000018: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 055855,000019: # the Museum. Many thanks to both. The images (with suitable reduction 055856,000020: # in storage size and consequent reduction in image quality as well) are 055857,000021: # available online at www.ibiblio.org/apollo. If for some reason you 055858,000022: # find that the images are illegible, contact me at info@sandroid.org 055859,000023: # about getting access to the (much) higher-quality images which Paul 055860,000024: # actually created. 055861,000025: 055862,000026: # Notations on the hardcopy document read, in part: 055863,000027: 055864,000028: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 055865,000029: # 16:27 JULY 14, 1969 055866,000030: 055867,000031: 055868,000032: # Page 1309 055869,000033: 5457 BLOCK 02 055870,000034: 4000 SETLOC FFTAG3 055871,000035: 4000 BANK 055872,000036: 055873,000037: 5457 E3,1471 EBANK= COMMAND 055874,000038: 055875,000039: # FIXED-FIXED ROUTINES 055876,000040: 055877,000041: 5457 COUNT* $$/IMODE 055878,000042: 5457 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS. 055879,000043: 5460 54032 TS CDUX 055880,000044: 5461 54033 TS CDUY 055881,000045: 5462 54034 TS CDUZ 055882,000046: 5463 00002 TC Q 055883,000047: 055884,000048: 5464 4743 SPSCODE = BIT9 055885,000049: 055886,000050: # Page 1310 055887,000051: # IMU ZEROING ROUTINES 055888,000052: 055889,000053: 11,3776 BANK 11 055890,000054: 07,2000 SETLOC MODESW 055891,000055: 07,2000 BANK 055892,000056: 055893,000057: 07,2714 COUNT* $$/IMODE 055894,000058: 07,2714 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS. 055895,000059: 07,2715 41036 CS DSPTAB +11D # DON'T ZERO CDUS IS IMU IN GIMBAL LOCK AND 055896,000060: 07,2716 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION) 055897,000061: 07,2717 10000 CCS A 055898,000062: 07,2720 12724 TCF IMUZEROA 055899,000063: 055900,000064: 07,2721 05567 TC ALARM # IF SO. 055901,000065: 07,2722 00206 OCT 00206 055902,000066: 055903,000067: 07,2723 13657 TCF CAGETSTJ +4 # IMMEDIATE FAILURE. 055904,000068: 055905,000069: 07,2724 03653 IMUZEROA TC CAGETSTJ 055906,000070: 055907,000071: 07,2725 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 055908,000072: 07,2726 74773 MASK SUPER011 # BIT5 FOR GROUND 055909,000073: 07,2727 27303 ADS IMODES33 055910,000074: 055911,000075: 07,2730 41302 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE 055912,000076: 07,2731 75751 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN). 055913,000077: 07,2732 27302 ADS IMODES30 055914,000078: 055915,000079: 07,2733 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR 055916,000080: 07,2734 00006 EXTEND # COUNTER DISABLED. 055917,000081: 07,2735 03012 WAND CHAN12 055918,000082: 055919,000083: 07,2736 03266 TC NOATTOFF # TURN OFF NO ATT LAMP. 055920,000084: 055921,000085: 07,2737 34747 CAF BIT5 055922,000086: 07,2740 00006 EXTEND 055923,000087: 07,2741 05012 WOR CHAN12 055924,000088: 055925,000089: 07,2742 05457 TC ZEROICDU 055926,000090: 07,2743 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO 055927,000091: 07,2744 05203 TC WAITLIST # RECEIVE ITS PULSE TRAIN. 055928,000092: 07,2745 E3,1474 EBANK= CDUIND 055929,000093: 07,2745 02757 16103 2CADR IMUZERO2 055930,000094: 055931,000095: 07,2747 41302 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT. 055932,000096: 07,2750 74743 MASK BIT9 055933,000097: 07,2751 10000 CCS A 055934,000098: 07,2752 12755 TCF MODEEXIT 055935,000099: # Page 1311 055936,000100: 07,2753 05567 TC ALARM 055937,000101: 07,2754 00210 OCT 210 055938,000102: 055939,000103: 07,2755 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT. 055940,000104: 07,2756 14631 TCF SWRETURN 055941,000105: 055942,000106: 07,2757 03641 IMUZERO2 TC CAGETEST 055943,000107: 07,2760 05457 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ 055944,000108: 055945,000109: 07,2761 44747 CS BIT5 # REMOVE ZERO DISCRETE. 055946,000110: 07,2762 00006 EXTEND 055947,000111: 07,2763 03012 WAND CHAN12 055948,000112: 055949,000113: 07,2764 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS 055950,000114: 07,2765 05224 TC VARDELAY 055951,000115: 055952,000116: 07,2766 03641 IMUZERO3 TC CAGETEST 055953,000117: 07,2767 45751 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT. 055954,000118: 07,2770 71302 MASK IMODES30 055955,000119: 07,2771 55302 TS IMODES30 055956,000120: 055957,000121: 07,2772 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES 055958,000122: 07,2773 71303 MASK IMODES33 # BIT5 FOR GROUND 055959,000123: 07,2774 55303 TS IMODES33 055960,000124: 055961,000125: 07,2775 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE 055962,000126: 07,2776 14703 CADR SETISSW # PRESENT. 055963,000127: 055964,000128: 07,2777 13631 TCF ENDIMU 055965,000129: 055966,000130: # Page 1312 055967,000131: # IMU COARSE ALIGN MODE. 055968,000132: 055969,000133: 07,3000 00004 IMUCOARS INHINT 055970,000134: 07,3001 03653 TC CAGETSTJ 055971,000135: 07,3002 03144 TC SETCOARS 055972,000136: 055973,000137: 07,3003 36242 CAF SIX 055974,000138: 07,3004 05203 TC WAITLIST 055975,000139: 07,3005 E3,1474 EBANK= CDUIND 055976,000140: 07,3005 03010 16103 2CADR COARS 055977,000141: 055978,000142: 07,3007 12755 TCF MODEEXIT 055979,000143: 055980,000144: 07,3010 03641 COARS TC CAGETEST 055981,000145: 07,3011 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS 055982,000146: 07,3012 00006 EXTEND 055983,000147: 07,3013 05012 WOR CHAN12 055984,000148: 055985,000149: 07,3014 34752 CAF TWO # SET CDU INDICATOR 055986,000150: 07,3015 55474 COARS1 TS CDUIND 055987,000151: 055988,000152: 07,3016 51474 INDEX CDUIND # COMPUTE THETAD -- THETAA IN 1'S 055989,000153: 07,3017 30321 CA THETAD # COMPLEMENT FORM 055990,000154: 07,3020 00006 EXTEND 055991,000155: 07,3021 51474 INDEX CDUIND 055992,000156: 07,3022 20032 MSU CDUX 055993,000157: 07,3023 00006 EXTEND 055994,000158: 07,3024 74737 MP BIT13 # SHIFT RIGHT 2 055995,000159: 07,3025 56001 XCH L # ROUND 055996,000160: 07,3026 60000 DOUBLE 055997,000161: 07,3027 54061 TS ITEMP1 055998,000162: 07,3030 13032 TCF +2 055999,000163: 07,3031 26001 ADS L 056000,000164: 056001,000165: 07,3032 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED 056002,000166: 07,3033 23471 LXCH COMMAND 056003,000167: 07,3034 11474 CCS CDUIND 056004,000168: 07,3035 03015 TC COARS1 056005,000169: 056006,000170: 07,3036 34752 CAF TWO # MINIMUM OF 4 MS WAIT 056007,000171: 07,3037 05224 TC VARDELAY 056008,000172: 056009,000173: # Page 1313 056010,000174: 07,3040 03641 COARS2 TC CAGETEST # DON'T CONTINUE IF CAGED. 056011,000175: 07,3041 54061 TS ITEMP1 # SET TO +0. 056012,000176: 07,3042 34752 CAF TWO # SET CDU INDICATOR. 056013,000177: 07,3043 55474 +3 TS CDUIND 056014,000178: 056015,000179: 07,3044 51474 INDEX CDUIND 056016,000180: 07,3045 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED 056017,000181: 07,3046 03052 TC COMPOS # GREATER THAN MAX ALLOWED 056018,000182: 07,3047 03061 TC NEXTCDU +1 056019,000183: 07,3050 03117 TC COMNEG 056020,000184: 07,3051 03061 TC NEXTCDU +1 056021,000185: 056022,000186: 07,3052 63745 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED 056023,000187: 07,3053 00006 EXTEND # MINUS ONE 056024,000188: 07,3054 63127 BZMF COMZERO 056025,000189: 07,3055 51474 INDEX CDUIND 056026,000190: 07,3056 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES 056027,000191: 07,3057 43746 CS -COMMAX- # ALLOWED 056028,000192: 056029,000193: 07,3060 24061 NEXTCDU INCR ITEMP1 056030,000194: 07,3061 64754 AD NEG0 056031,000195: 07,3062 51474 INDEX CDUIND 056032,000196: 07,3063 54050 TS CDUXCMD # SET UP COMMAND REGISTER. 056033,000197: 056034,000198: 07,3064 11474 CCS CDUIND 056035,000199: 07,3065 03043 TC COARS2 +3 056036,000200: 056037,000201: 07,3066 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT. 056038,000202: 07,3067 13133 TCF SENDPULS 056039,000203: 056040,000204: 07,3070 05221 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE. 056041,000205: 07,3071 00226 DEC 150 B-14 056042,000206: 056043,000207: 07,3072 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT 056044,000208: 07,3073 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD. 056045,000209: 07,3074 50000 INDEX A 056046,000210: 07,3075 30032 CA CDUX 056047,000211: 07,3076 00006 EXTEND 056048,000212: 07,3077 50061 INDEX ITEMP1 056049,000213: 07,3100 20321 MSU THETAD 056050,000214: 07,3101 10000 CCS A 056051,000215: 07,3102 13110 TCF COARSERR 056052,000216: 07,3103 13105 TCF CORSCHK2 056053,000217: 07,3104 13110 TCF COARSERR 056054,000218: 056055,000219: # Page 1314 056056,000220: 07,3105 10061 CORSCHK2 CCS ITEMP1 056057,000221: 07,3106 13073 TCF CHKCORS 056058,000222: 07,3107 13631 TCF ENDIMU # END OF COARSE ALIGNMENT 056059,000223: 056060,000224: 07,3110 63116 COARSERR AD COARSTOL # 2 DEGREES. 056061,000225: 07,3111 00006 EXTEND 056062,000226: 07,3112 63105 BZMF CORSCHK2 056063,000227: 056064,000228: 07,3113 05567 TC ALARM # COARSE ALIGN ERROR. 056065,000229: 07,3114 00211 OCT 211 056066,000230: 056067,000231: 07,3115 13637 TCF IMUBAD 056068,000232: 056069,000233: 07,3116 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS 056070,000234: 056071,000235: 07,3117 63745 COMNEG AD -COMMAX 056072,000236: 07,3120 00006 EXTEND 056073,000237: 07,3121 63127 BZMF COMZERO 056074,000238: 07,3122 40000 COM 056075,000239: 07,3123 51474 INDEX CDUIND 056076,000240: 07,3124 55471 TS COMMAND 056077,000241: 07,3125 33746 CA -COMMAX- 056078,000242: 07,3126 03060 TC NEXTCDU 056079,000243: 056080,000244: 07,3127 34755 COMZERO CAF ZERO 056081,000245: 07,3130 51474 INDEX CDUIND 056082,000246: 07,3131 57471 XCH COMMAND 056083,000247: 07,3132 03060 TC NEXTCDU 056084,000248: 056085,000249: 07,3133 37740 SENDPULS CAF 13,14,15 056086,000250: 07,3134 00006 EXTEND 056087,000251: 07,3135 05014 WOR CHAN14 056088,000252: 07,3136 33747 CAF 600MS 056089,000253: 07,3137 13037 TCF COARS2 -1 # THEN TO VARDELAY 056090,000254: 056091,000255: 07,3140 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS 056092,000256: 07,3141 00006 EXTEND 056093,000257: 07,3142 05012 WOR CHAN12 056094,000258: 07,3143 05261 TC TASKOVER 056095,000259: 056096,000260: # Page 1315 056097,000261: 07,3144 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN 056098,000262: 07,3145 00006 EXTEND 056099,000263: 07,3146 02012 RAND CHAN12 056100,000264: 07,3147 10000 CCS A 056101,000265: 07,3150 00002 TC Q 056102,000266: 056103,000267: 07,3151 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS 056104,000268: 07,3152 00006 EXTEND 056105,000269: 07,3153 03012 WAND CHAN12 056106,000270: 056107,000271: 07,3154 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY 056108,000272: 07,3155 00006 EXTEND 056109,000273: 07,3156 03014 WAND CHAN14 056110,000274: 07,3157 44755 CS ZERO 056111,000275: 07,3160 54047 TS GYROCMD 056112,000276: 056113,000277: 07,3161 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN 056114,000278: 07,3162 00006 EXTEND 056115,000279: 07,3163 05012 WOR CHAN12 056116,000280: 056117,000281: 07,3164 41036 CS DSPTAB +11D # TURN ON NO ATT LAMP 056118,000282: 07,3165 73207 MASK OCT40010 056119,000283: 07,3166 27036 ADS DSPTAB +11D 056120,000284: 056121,000285: 07,3167 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 056122,000286: 07,3170 74746 MASK BIT6 056123,000287: 07,3171 27303 ADS IMODES33 056124,000288: 056125,000289: 07,3172 41302 CS IMODES30 # DISABLE IMUFAIL 056126,000290: 07,3173 74750 MASK BIT4 056127,000291: 07,3174 27302 ADS IMODES30 056128,000292: 056129,000293: 07,3175 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG 056130,000294: 07,3176 70075 MASK FLAGWRD1 056131,000295: 07,3177 54075 TS FLAGWRD1 056132,000296: 056133,000297: 07,3200 44735 CS DRFTBIT # CLEAR DRIFT FLAG 056134,000298: 07,3201 70076 MASK FLAGWRD2 056135,000299: 07,3202 54076 TS FLAGWRD2 056136,000300: 056137,000301: 07,3203 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG 056138,000302: 07,3204 70077 MASK FLAGWRD3 056139,000303: 07,3205 54077 TS FLAGWRD3 056140,000304: 056141,000305: 07,3206 00002 TC Q 056142,000306: 056143,000307: 07,3207 40010 OCT40010 OCT 40010 056144,000308: 056145,000309: # Page 1316 056146,000310: # IMU FINE ALIGN MODE SWITCH. 056147,000311: 056148,000312: 07,3210 00004 IMUFINE INHINT 056149,000313: 07,3211 03653 TC CAGETSTJ # SEE IF IMU BEING CAGED. 056150,000314: 056151,000315: 07,3212 43744 CS BITS4-5 # RESET ZERO AND COARSE 056152,000316: 07,3213 00006 EXTEND 056153,000317: 07,3214 03012 WAND CHAN12 056154,000318: 056155,000319: 07,3215 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED 056156,000320: 07,3216 71303 MASK IMODES33 056157,000321: 07,3217 55303 TS IMODES33 056158,000322: 056159,000323: 07,3220 03266 TC NOATTOFF 056160,000324: 056161,000325: 07,3221 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE 056162,000326: 07,3222 05203 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE 056163,000327: 07,3223 E3,1474 EBANK= CDUIND 056164,000328: 07,3223 03234 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN 056165,000329: 056166,000330: 07,3225 35000 CAF 2SECS 056167,000331: 07,3226 05203 TC WAITLIST 056168,000332: 07,3227 E3,1474 EBANK= CDUIND 056169,000333: 07,3227 03232 16103 2CADR IMUFINED 056170,000334: 056171,000335: 07,3231 12755 TCF MODEEXIT 056172,000336: 056173,000337: 07,3232 03641 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU. 056174,000338: 07,3233 13631 TCF ENDIMU 056175,000339: 056176,000340: # Page 1317 056177,000341: 07,3234 03646 IFAILOK TC CAGETSTQ # ENABLE IMU FAIL UNLESS IMU BEING CAGED. 056178,000342: 07,3235 15261 TCF TASKOVER # IT IS. 056179,000343: 056180,000344: 07,3236 34750 CAF BIT4 # DON'T RESET IMU FAIL INHIBIT IF SOMEONE 056181,000345: 07,3237 00006 EXTEND # HAS GONE INTO COARSE ALIGN. 056182,000346: 07,3240 02012 RAND CHAN12 056183,000347: 07,3241 10000 CCS A 056184,000348: 07,3242 15261 TCF TASKOVER 056185,000349: 056186,000350: 07,3243 41302 CS IMODES30 # RESET IMUFAIL. 056187,000351: 07,3244 74737 MASK BIT13 056188,000352: 07,3245 27302 ADS IMODES30 056189,000353: 07,3246 44750 CS BIT4 056190,000354: 07,3247 71302 PFAILOK2 MASK IMODES30 056191,000355: 07,3250 55302 TS IMODES30 056192,000356: 07,3251 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW 056193,000357: 07,3252 14703 CADR SETISSW # THAT THE INHIBIT WAS BEEN REMOVED. 056194,000358: 07,3253 15261 TCF TASKOVER 056195,000359: 056196,000360: 07,3254 03646 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM. 056197,000361: 07,3255 15261 TCF TASKOVER 056198,000362: 056199,000363: 07,3256 41302 CS IMODES30 # RESET IMU AND PIPA FAIL BITS. 056200,000364: 07,3257 74742 MASK BIT10 056201,000365: 07,3260 27302 ADS IMODES30 056202,000366: 056203,000367: 07,3261 41303 CS IMODES33 056204,000368: 07,3262 74737 MASK BIT13 056205,000369: 07,3263 27303 ADS IMODES33 056206,000370: 056207,000371: 07,3264 44747 CS BIT5 056208,000372: 07,3265 13247 TCF PFAILOK2 056209,000373: 056210,000374: 07,3266 43207 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP. 056211,000375: 07,3267 71036 MASK DSPTAB +11D 056212,000376: 07,3270 64735 AD BIT15 056213,000377: 07,3271 55036 TS DSPTAB +11D 056214,000378: 07,3272 00002 TC Q 056215,000379: 056216,000380: # Page 1318 056217,000381: # ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE. 056218,000382: 056219,000383: 07,3273 44755 PIPUSE CS ZERO 056220,000384: 07,3274 54037 TS PIPAX 056221,000385: 07,3275 54040 TS PIPAY 056222,000386: 07,3276 54041 TS PIPAZ 056223,000387: 056224,000388: 07,3277 03646 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED 056225,000389: 07,3300 14631 TCF SWRETURN 056226,000390: 056227,000391: 07,3301 00004 INHINT 056228,000392: 07,3302 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL 056229,000393: 07,3303 71302 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING. 056230,000394: 07,3304 55302 TS IMODES30 056231,000395: 056232,000396: 07,3305 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW. 056233,000397: 07,3306 14703 CADR SETISSW # (OR GO OFF ON PIPFREE). 056234,000398: 056235,000399: 07,3307 12755 TCF MODEEXIT 056236,000400: 056237,000401: 07,3310 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DON'T LIGHT 056238,000402: 07,3311 41302 CS IMODES30 # ISS WARNING. 056239,000403: 07,3312 74753 MASK BIT1 056240,000404: 07,3313 27302 ADS IMODES30 056241,000405: 056242,000406: 07,3314 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALARM AND RESET 056243,000407: 07,3315 10000 CCS A # ISS WARNING. 056244,000408: 07,3316 12755 TCF MODEEXIT 056245,000409: 056246,000410: 07,3317 05567 TC ALARM 056247,000411: 07,3320 00212 OCT 212 056248,000412: 056249,000413: 07,3321 00004 INHINT 056250,000414: 056251,000415: 07,3322 13305 TCF PIPFREE2 056252,000416: 056253,000417: # Page 1319 056254,000418: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIXE REGISTERS 056255,000419: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE 056256,000420: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT AT THE INPUT COMMAND REGISTERS. 056257,000421: 056258,000422: 07,3323 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY. 056259,000423: 056260,000424: 07,3323 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR. 056261,000425: 07,3324 03653 TC CAGETSTJ # DON'T PROCEED IF IMU BEING CAGED. 056262,000426: 056263,000427: 07,3325 11314 CCS LGYRO # SEE IF GYROS BUSY. 056264,000428: 07,3326 03367 TC GYROBUSY # SLEEP. 056265,000429: 056266,000430: 07,3327 54156 TS MPAC +2 056267,000431: 07,3330 34746 CAF BIT6 # ENABLE THE POWER SUPPLY. 056268,000432: 07,3331 00006 EXTEND 056269,000433: 07,3332 05014 WOR CHAN14 056270,000434: 056271,000435: 07,3333 34751 CAF FOUR 056272,000436: 07,3334 05203 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER 056273,000437: 07,3335 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB). 056274,000438: 07,3335 03405 16103 2CADR STRTGYRO 056275,000439: 056276,000440: 07,3337 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR 056277,000441: 07,3340 56003 XCH EBANK # RESTORATION ON RETURN. 056278,000442: 07,3341 56161 XCH MPAC +5 056279,000443: 07,3342 55314 TS LGYRO # RESERVES GYROS. 056280,000444: 07,3343 74357 MASK LOW8 056281,000445: 07,3344 54061 TS ITEMP1 056282,000446: 056283,000447: 07,3345 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS. 056284,000448: 07,3346 54157 GYROAGRE TS MPAC +3 056285,000449: 07,3347 60000 DOUBLE 056286,000450: 07,3350 60061 AD ITEMP1 056287,000451: 07,3351 54160 TS MPAC +4 056288,000452: 07,3352 00006 EXTEND 056289,000453: 07,3353 50000 INDEX A 056290,000454: 07,3354 31401 DCA 1400 056291,000455: 07,3355 52155 DXCH MPAC 056292,000456: 07,3356 07257 TC TPAGREE 056293,000457: 07,3357 52155 DXCH MPAC 056294,000458: 07,3360 50160 INDEX MPAC +4 056295,000459: 07,3361 53401 DXCH 1400 056296,000460: 056297,000461: 07,3362 10157 CCS MPAC +3 056298,000462: 07,3363 13346 TCF GYROAGRE 056299,000463: 056300,000464: 07,3364 30161 CA MPAC +5 # RESTORE CALLER'S EBANK. 056301,000465: 07,3365 54003 TS EBANK 056302,000466: 07,3366 12755 TCF MODEEXIT 056303,000467: 056304,000468: # Page 1320 056305,000469: # ROUTINES TO ALLOW TORQUING ONLY ONE JOB AT A TIME. 056306,000470: 056307,000471: 07,3367 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR. 056308,000472: 07,3370 30134 DCA BUF2 056309,000473: 07,3371 52155 DXCH MPAC 056310,000474: 07,3372 33404 REGSLEEP CAF LGWAKE 056311,000475: 07,3373 15133 TCF JOBSLEEP 056312,000476: 056313,000477: 07,3374 11314 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY. 056314,000478: 07,3375 13372 TCF REGSLEEP # IF SO, SLEEP SOME MORE. 056315,000479: 056316,000480: 07,3376 54156 TS MPAC +2 056317,000481: 07,3377 00006 EXTEND 056318,000482: 07,3400 30155 DCA MPAC 056319,000483: 07,3401 52134 DXCH BUF2 # RESTORE SWRETURN INFO. 056320,000484: 07,3402 34753 CAF ONE 056321,000485: 07,3403 13334 TCF GWAKE2 056322,000486: 056323,000487: 07,3404 17374 LGWAKE CADR GWAKE 056324,000488: 056325,000489: # Page 1321 056326,000490: # GYRO-TORQUING WAITLIST TASKS. 056327,000491: 056328,000492: 07,3405 43626 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO. 056329,000493: 07,3406 00006 EXTEND 056330,000494: 07,3407 03014 WAND CHAN14 056331,000495: 056332,000496: 07,3410 03641 TC CAGETEST 056333,000497: 056334,000498: 07,3411 31314 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14. 056335,000499: 07,3412 00006 EXTEND 056336,000500: 07,3413 74750 MP BIT4 056337,000501: 07,3414 50000 INDEX A 056338,000502: 07,3415 13416 TCF +1 056339,000503: 07,3416 03433 TC GSELECT # =0. DO Y GYRO. 056340,000504: 07,3417 00202 OCT 00202 056341,000505: 056342,000506: 07,3420 03433 TC GSELECT # =1. DO Z GYRO. 056343,000507: 07,3421 00302 OCT 00302 056344,000508: 056345,000509: 07,3422 03431 TC GSELECT -2 # =2. DO X GYRO. 056346,000510: 07,3423 00100 OCT 00100 056347,000511: 056348,000512: 07,3424 34755 CAF ZERO # =3. DONE 056349,000513: 07,3425 55314 TS LGYRO 056350,000514: 07,3426 33404 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB. 056351,000515: 07,3427 05137 TC JOBWAKE 056352,000516: 056353,000517: 07,3430 13232 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY. 056354,000518: # Page 1322 056355,000519: 07,3431 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X. 056356,000520: 07,3432 27314 ADS LGYRO 056357,000521: 056358,000522: 07,3433 50002 GSELECT INDEX Q # SELECT GYRO. 056359,000523: 07,3434 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS 056360,000524: 07,3435 54064 TS ITEMP4 # AND INCREMENT TO LGYRO. 056361,000525: 07,3436 74757 MASK SEVEN 056362,000526: 07,3437 64737 AD BIT13 056363,000527: 07,3440 27314 ADS LGYRO 056364,000528: 07,3441 54003 TS EBANK 056365,000529: 07,3442 74357 MASK LOW8 056366,000530: 07,3443 54061 TS ITEMP1 056367,000531: 056368,000532: 07,3444 44757 CS SEVEN 056369,000533: 07,3445 70064 MASK ITEMP4 056370,000534: 07,3446 54064 TS ITEMP4 056371,000535: 056372,000536: 07,3447 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING. 056373,000537: 07,3450 50061 INDEX ITEMP1 056374,000538: 07,3451 31401 DCA 1400 056375,000539: 07,3452 52071 DXCH RUPTREG1 056376,000540: 056377,000541: 07,3453 10070 CCS RUPTREG1 056378,000542: 07,3454 13467 TCF MAJ+ 056379,000543: 07,3455 13457 TCF +2 056380,000544: 07,3456 13607 TCF MAJ- 056381,000545: 056382,000546: 07,3457 10071 CCS RUPTREG2 056383,000547: 07,3460 13464 TCF MIN+ 056384,000548: 07,3461 13411 TCF STRTGYR2 056385,000549: 07,3462 13604 TCF MIN- 056386,000550: 07,3463 13411 TCF STRTGYR2 056387,000551: 056388,000552: # Page 1323 056389,000553: 07,3464 63520 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST 056390,000554: 07,3465 00006 EXTEND # 16 GYRO PULSES. 056391,000555: 07,3466 63411 BZMF STRTGYR2 056392,000556: 056393,000557: 07,3467 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT. 056394,000558: 07,3470 33630 DCA GYROFRAC 056395,000559: 07,3471 20071 DAS RUPTREG1 056396,000560: 056397,000561: 07,3472 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO. 056398,000562: 07,3473 00006 EXTEND 056399,000563: 07,3474 05014 WOR CHAN14 056400,000564: 056401,000565: 07,3475 36074 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS 056402,000566: 07,3476 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG 056403,000567: 07,3477 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION 056404,000568: 07,3500 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE 056405,000569: 07,3501 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF 056406,000570: 07,3502 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND. 056407,000571: 07,3503 30070 CA RUPTREG1 056408,000572: 07,3504 00006 EXTEND 056409,000573: 07,3505 74743 MP BIT9 056410,000574: 07,3506 54070 TS RUPTREG1 056411,000575: 07,3507 30001 CA L 056412,000576: 07,3510 00006 EXTEND 056413,000577: 07,3511 74736 MP BIT14 056414,000578: 07,3512 26062 ADS ITEMP2 # INITIAL COMMAND. 056415,000579: 056416,000580: 07,3513 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED 056417,000581: 07,3514 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES). 056418,000582: 07,3515 67747 AD MINUS1 056419,000583: 07,3516 10000 CCS A 056420,000584: 07,3517 13543 TCF LONGGYRO 056421,000585: 07,3520 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD 056422,000586: 07,3521 13525 TCF +4 056423,000587: 056424,000588: 07,3522 34736 CAF BIT14 056425,000589: 07,3523 26062 ADS ITEMP2 056426,000590: 07,3524 34755 CAF ZERO 056427,000591: 056428,000592: 07,3525 50061 +4 INDEX ITEMP1 056429,000593: 07,3526 53401 DXCH 1400 056430,000594: # Page 1324 056431,000595: 07,3527 30062 CA ITEMP2 # ENTIRE COMMAND. 056432,000596: 07,3530 54047 LASTSEG TS GYROCMD 056433,000597: 07,3531 00006 EXTEND 056434,000598: 07,3532 74742 MP BIT10 # WAITLIST DT 056435,000599: 07,3533 66245 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES. 056436,000600: 07,3534 05203 TC WAITLIST 056437,000601: 07,3535 E3,1474 EBANK= CDUIND 056438,000602: 07,3535 03405 16103 2CADR STRTGYRO 056439,000603: 056440,000604: 07,3537 34742 GYROEXIT CAF BIT10 056441,000605: 07,3540 00006 EXTEND 056442,000606: 07,3541 05014 WOR CHAN14 056443,000607: 07,3542 15261 TCF TASKOVER 056444,000608: 056445,000609: 07,3543 50061 LONGGYRO INDEX ITEMP1 056446,000610: 07,3544 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF 056447,000611: 07,3545 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192. 056448,000612: 07,3546 60062 AD ITEMP2 056449,000613: 07,3547 54047 TS GYROCMD 056450,000614: 056451,000615: 07,3550 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS 056452,000616: 07,3551 74742 MP BIT10 # ALMOST OUT. 056453,000617: 07,3552 67745 AD NEG3 056454,000618: 07,3553 05203 TC WAITLIST 056455,000619: 07,3554 E3,1474 EBANK= CDUIND 056456,000620: 07,3554 03557 16103 2CADR 8192AUG 056457,000621: 056458,000622: 07,3556 13537 TCF GYROEXIT 056459,000623: 056460,000624: 07,3557 03641 8192AUG TC CAGETEST 056461,000625: 056462,000626: 07,3560 34750 CAF BIT4 056463,000627: 07,3561 00006 EXTEND 056464,000628: 07,3562 02012 RAND CHAN12 056465,000629: 07,3563 10000 CCS A 056466,000630: 07,3564 13637 TCF IMUBAD 056467,000631: 07,3565 31314 CA LGYRO # ADD 8192 PULSES TO GYROCMD 056468,000632: 07,3566 54003 TS EBANK 056469,000633: 07,3567 74357 MASK LOW8 056470,000634: 07,3570 54061 TS ITEMP1 056471,000635: 056472,000636: 07,3571 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG. 056473,000637: 07,3572 11400 CCS 1400 056474,000638: 07,3573 13577 TCF AUG2 # MORE TO COME. 056475,000639: 056476,000640: 07,3574 34736 CAF BIT14 056477,000641: 07,3575 26047 ADS GYROCMD 056478,000642: 07,3576 13531 TCF LASTSEG +1 056479,000643: 056480,000644: # Page 1325 056481,000645: 07,3577 50061 AUG2 INDEX ITEMP1 056482,000646: 07,3600 55400 TS 1400 056483,000647: 07,3601 34736 CAF BIT14 056484,000648: 07,3602 26047 ADS GYROCMD 056485,000649: 07,3603 13550 TCF AUG3 # COMPUTE DT. 056486,000650: 056487,000651: # Page 1326 056488,000652: 07,3604 63520 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT. 056489,000653: 07,3605 00006 EXTEND 056490,000654: 07,3606 63411 BZMF STRTGYR2 056491,000655: 056492,000656: 07,3607 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT. 056493,000657: 07,3610 43630 DCS GYROFRAC 056494,000658: 07,3611 20071 DAS RUPTREG1 056495,000659: 056496,000660: 07,3612 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO. 056497,000661: 07,3613 64743 AD BIT9 056498,000662: 07,3614 00006 EXTEND 056499,000663: 07,3615 05014 WOR CHAN14 056500,000664: 056501,000665: 07,3616 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE. 056502,000666: 07,3617 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE 056503,000667: 07,3620 40071 CS RUPTREG2 # POSITIVE -- BIT9 OF CHAN 14 DETERMINES 056504,000668: 07,3621 76074 MASK LOW7 # THE SIGN OF THE COMMAND. 056505,000669: 07,3622 40000 COM 056506,000670: 07,3623 56071 XCH RUPTREG2 056507,000671: 07,3624 40000 COM 056508,000672: 07,3625 13500 TCF GMERGE 056509,000673: 056510,000674: 07,3626 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS. 056511,000675: 056512,000676: 07,3627 00000 00034 GYROFRAC 2DEC .215 B-21 056513,000677: 056514,000678: # Page 1327 056515,000679: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE. 056516,000680: 056517,000681: 07,3631 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURRED OR IF 056518,000682: 07,3632 00011 READ DSALMOUT # ISS WARNING IS ON. 056519,000683: 07,3633 74753 MASK BIT1 056520,000684: 07,3634 10000 CCS A 056521,000685: 07,3635 13637 TCF IMUBAD 056522,000686: 056523,000687: 07,3636 13665 IMUGOOD TCF GOODEND # WITH C(A) = 0. 056524,000688: 056525,000689: 07,3637 34755 IMUBAD CAF ZERO 056526,000690: 07,3640 13662 TCF BADEND 056527,000691: 056528,000692: 07,3641 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE 056529,000693: 07,3642 71302 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED. 056530,000694: 07,3643 10000 CCS A 056531,000695: 07,3644 13637 TCF IMUBAD # DIRECTLY. 056532,000696: 07,3645 00002 TC Q # WITH C(A) = +0. 056533,000697: 056534,000698: 07,3646 41302 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED. 056535,000699: 07,3647 74746 MASK BIT6 056536,000700: 07,3650 10000 CCS A 056537,000701: 07,3651 24002 INCR Q 056538,000702: 07,3652 00002 TC Q 056539,000703: 056540,000704: 07,3653 41302 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION. 056541,000705: 07,3654 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED. 056542,000706: 07,3655 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION 056543,000707: 07,3656 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY 056544,000708: 056545,000709: 07,3657 44755 CS ZERO # TO SWRETURN. 056546,000710: 07,3660 55304 TS IMUCADR 056547,000711: 07,3661 12755 TCF MODEEXIT 056548,000712: 056549,000713: # Page 1328 056550,000714: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION 056551,000715: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS. 056552,000716: 056553,000717: 07,3662 54071 BADEND TS RUPTREG2 # DEVICE INDEX. 056554,000718: 07,3663 44755 CS ZERO # FOR FAILURE. 056555,000719: 07,3664 13667 TCF GOODEND +2 056556,000720: 056557,000721: 07,3665 54071 GOODEND TS RUPTREG2 056558,000722: 07,3666 44753 CS ONE # FOR SUCCESS. 056559,000723: 056560,000724: 07,3667 54072 TS RUPTREG3 056561,000725: 07,3670 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP. 056562,000726: 07,3671 11304 CCS MODECADR 056563,000727: 07,3672 13676 TCF +4 # YES -- WAKE IT UP. 056564,000728: 07,3673 13706 TCF ENDMODE # IF 0, PROGRAM NOT IN YET. 056565,000729: 056566,000730: 07,3674 00006 EXTEND 056567,000731: 07,3675 13707 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0. 056568,000732: 056569,000733: 07,3676 34755 CAF ZERO # WAKE SLEEPING PROGRAM. 056570,000734: 07,3677 50071 INDEX RUPTREG2 056571,000735: 07,3700 57304 XCH MODECADR 056572,000736: 07,3701 05137 TC JOBWAKE 056573,000737: 056574,000738: 07,3702 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL. 056575,000739: 07,3703 50064 INDEX LOCCTR 056576,000740: 07,3704 26164 ADS LOC 056577,000741: 056578,000742: 07,3705 15261 TCF TASKOVER 056579,000743: 056580,000744: 07,3706 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT 056581,000745: 07,3707 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND 056582,000746: 07,3710 55304 TS MODECADR # SUCCESSFUL. 056583,000747: 07,3711 15261 TCF TASKOVER 056584,000748: 056585,000749: # Page 1329 056586,000750: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION. 056587,000751: 056588,000752: # PROGRAM DESCRIPTION DATE -- 21 FEB 1967 056589,000753: # LOG SECTION IMU MODE SWITCHING 056590,000754: # MOD BY -- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82 056591,000755: 056592,000756: # FUNCTIONAL DESCRIPTION -- 056593,000757: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED 056594,000758: # I/O FUNCTION IS COMPLETE. THE FOLLOWING CHECKS ON THE CALLING ROUTINES 056595,000759: # MODEECADR ARE MADE AND ACTED UPON. 056596,000760: # 1) +0 INDICATES INCOMPLETE I/O OPERATION. CALLING ROUTINE IS PUT TO 056597,000761: # SLEEP. 056598,000762: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP 056599,000763: # CALL AND RETURNS TO CALLING ROUTINE AT L+3. 056600,000764: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR 056601,000765: # AND RETURNS TO CALLING ROUTINE AT L+2. 056602,000766: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF 056603,000767: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM 056604,000768: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS. 056605,000769: 056606,000770: # CALLING SEQUENCE -- 056607,000771: # L TC BANKCALL 056608,000772: # L+1 CADR (ONE OF 5 STALL ADDRESSES. I.E., IMUSTALL, OPTSTALL, RADSTALL, 056609,000773: # AOTSTALL, OR ATTSTALL) 056610,000774: 056611,000775: # NORMAL-EXIT MODE -- 056612,000776: # TCF JOBSLEEP OR TCF MODEXIT 056613,000777: 056614,000778: # ALARM OR ABORT EXIT MODE -- 056615,000779: # TC ABORT 056616,000780: 056617,000781: # OUTPUT -- 056618,000782: # MODECADR=CADR IF JOBSLEEP 056619,000783: # MODECADR=+0 IF I/O COMPLETE 056620,000784: # BUF2=L+3 IF I/O COMPLETE AND GOOD. 056621,000785: # BUF2=L+2 IF I/O COMPLETE BUT FAILED. 056622,000786: 056623,000787: # ERASABLE INITIALIZATION -- 056624,000788: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2) 056625,000789: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE. 056626,000790: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS. 056627,000791: 056628,000792: # DEBRIS -- 056629,000793: # RUPTREG2 AND CALLING ROUTINE MODECADR. 056630,000794:

[WORKAROUND] OH 2009

056632,000796: 07,3712  30,2000                                 SBANK=   LOWSUPER                              

[WORKAROUND]

056634,000798: 
056635,000799: 07,3712           34753        AOTSTALL          CAF      ONE                                   #  AOT.
056636,000800: 07,3713           03717                          TC       STALL                                 
056637,000801: 
056638,000802: 07,3714           34752        RADSTALL          CAF      TWO                                   
056639,000803: 07,3715           13717                          TCF      STALL                                 
056640,000804: 
056641,000805:                                                                                                 #  Page 1330
056642,000806: 07,3716  07,3712               OPTSTALL          EQUALS   AOTSTALL                              
056643,000807: 
056644,000808: 07,3716           34755        IMUSTALL          CAF      ZERO                                  #  IMU.
056645,000809: 
056646,000810: 07,3717           00004        STALL             INHINT                                         
056647,000811: 07,3720           54071                          TS       RUPTREG2                              #  SAVE DEVICE INDEX.
056648,000812: 07,3721           50000                          INDEX    A                                     #  SEE IF OPERATION COMPLETE.
056649,000813: 07,3722           11304                          CCS      MODECADR                              
056650,000814: 07,3723           13741                          TCF      MODABORT                              #  ALLOWABLE STATES ARE +0, -1, AND -0.
056651,000815: 07,3724           13735                          TCF      MODESLP                               #  OPERATION INCOMPLETE.
056652,000816: 07,3725           13731                          TCF      MODEGOOD                              #  COMPLETE AND GOOD IF = -1.
056653,000817: 
056654,000818: 07,3726           50071        MG2               INDEX    RUPTREG2                              #  COMPLETE FAILED IF -0.  RESET TO +0.
056655,000819: 07,3727           55304                          TS       MODECADR                              #  RETURN TO CALLER.
056656,000820: 07,3730           12755                          TCF      MODEEXIT                              
056657,000821: 
056658,000822: 07,3731           10000        MODEGOOD          CCS      A                                     #  MAKE SURE INITIAL STATE -1.
056659,000823: 07,3732           13741                          TCF      MODABORT                              
056660,000824: 
056661,000825: 07,3733           24133                          INCR     BUF2                                  #  IF SO, INCREMENT RETURN ADDRESS AND
056662,000826: 07,3734           13726                          TCF      MG2                                   #  RETURN IMMEDIATELY, SETTIN CADR = +0.
056663,000827: 
056664,000828: 07,3735           04645        MODESLP           TC       MAKECADR                              #  CALL FROM SWITCHABLE FIXED ONLY.
056665,000829: 07,3736           50071                          INDEX    RUPTREG2                              
056666,000830: 07,3737           55304                          TS       MODECADR                              
056667,000831: 07,3740           15133                          TCF      JOBSLEEP                              
056668,000832: 
056669,000833: 07,3741           52134        MODABORT          DXCH     BUF2                                  
056670,000834: 07,3742           05716                          TC       BAILOUT1                              #  TWO PROGRAMS USING THE SAME DEVICE.
056671,000835: 07,3743           01210                          OCT      1210                                  
056672,000836: 
056673,000837:                                                                                                 #  Page 1331
056674,000838:                                                                                                 #  CONSTANTS FOR MODE SWITCHING ROUTINES
056675,000839: 
056676,000840: 07,3744     5751               BITS3&4           =        OCT14                                 
056677,000841: 07,3744     4771               BITS4&6           =        OCT50                                 
056678,000842: 07,3744           00030        BITS4-5           OCT      00030                                 
056679,000843: 07,3745     4744               IMUSEFLG          EQUALS   BIT8                                  #  INTERPRETER SWITCH 7.
056680,000844: 07,3745           77500        -COMMAX           DEC      -191       B-14                       
056681,000845: 07,3746           77477        -COMMAX-          DEC      -192       B-14                       
056682,000846: 07,3747           00074        600MS             DEC      60         B-14                       
056683,000847: 07,3750  07,3210               IMUFIN20          =        IMUFINE                               
056684,000848: 07,3750           31307        GOMANUR           CA       ATTCADR                               #  IS KALCMANU FREE
056685,000849: 07,3751           00006                          EXTEND                                         
056686,000850: 07,3752           13755                          BZF      +3                                    
056687,000851: 
056688,000852: 07,3753           05652                          TC       P00DOO                                #  NO
056689,000853: 07,3754           01210                          OCT      1210                                  #  2 TRYING TO USE SAME DEVICE
056690,000854: 
056691,000855: 07,3755           00006                 +3       EXTEND                                         
056692,000856: 07,3756           30134                          DCA      BUF2                                  
056693,000857: 07,3757           53310                          DXCH     ATTCADR                               #  SAVE FINAL RETURN FOR KALCMAN3
056694,000858: 
056695,000859: 07,3760           30006                          CA       BBANK                                 
056696,000860: 07,3761           74757                          MASK     SEVEN                                 
056697,000861: 07,3762           27310                          ADS      ATTCADR    +1                         
056698,000862: 
056699,000863: 07,3763           30167                          CA       PRIORITY                              
056700,000864: 07,3764           77725                          MASK     PRIO37                                
056701,000865: 07,3765           55311                          TS       ATTPRIO                               #  SAVE USER'S PRIO
056702,000866: 
056703,000867: 07,3766           33772                          CAF      KALEBCON                              #  SET EBANK FOR KALCMAN3
056704,000868: 07,3767           54003                          TS       EBANK                                 
056705,000869: 07,3770           04635                          TC       POSTJUMP                              
056706,000870: 07,3771           44004                          CADR     KALCMAN3                              
056707,000871: 07,3772           03276        KALEBCON          ECADR    BCDU                                  
056708,000872: 
056709,000873:                                                                                                 #  Page 1332
056710,000874:                                                                                                 #  PROGRAM DESCRIPTION
056711,000875:                                                                                                 #  IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
056712,000876:                                                                                                 #  MOD NO -- 1
056713,000877:                                                                                                 #  MOD BY -- N.BRODEUR
056714,000878: 
056715,000879:                                                                                                 #  FUNCTIONAL DESCRIPTION
056716,000880:                                                                                                 #         TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
056717,000881:                                                                                                 #         ORIENTATION KNOWN BY THE CMC.  TO REQUEST SELECTION OF THE APPROPRIATE
056718,000882:                                                                                                 #         PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
056719,000883:                                                                                                 #         CMC.  CALLED THROUGH BANKCALL
056720,000884: 
056721,000885:                                                                                                 #  CALLING SEQUENCE --
056722,000886:                                                                                                 #         L       TC      BANKCALL
056723,000887:                                                                                                 #         L+1     CADR    R02BOTH
056724,000888: 
056725,000889:                                                                                                 #  SUBROUTINES CALLED
056726,000890:                                                                                                 #         VARALARM
056727,000891:                                                                                                 #         FLAGUP
056728,000892: 
056729,000893:                                                                                                 #  NORMAL EXIT MODES
056730,000894:                                                                                                 #         AT L+2 OF CALLING SEQUENCE
056731,000895: 
056732,000896:                                                                                                 #  ALARM OR ABORT EXIT MODES
056733,000897:                                                                                                 #         GOTOP00H, WITH ALARM
056734,000898: 
056735,000899:                                                                                                 #  ERASABLE INITIALIZATION REQUIRED
056736,000900:                                                                                                 #         NONE
056737,000901: 
056738,000902:                                                                                                 #  DEBRIS
056739,000903:                                                                                                 #         CENTRALS -- A,Q,L
056740,000904: 
056741,000905: 34,3775                                          BANK     34                                    
056742,000906: 04,2000                                          SETLOC   R02                                   
056743,000907: 04,2000                                          BANK                                           
056744,000908: 04,3253                                          COUNT*   $$/R02                                
056745,000909: 04,3253           00063        DEC51             DEC      51         B-14                       
056746,000910: 04,3254           34737        R02BOTH           CAF      REFSMBIT                              
056747,000911: 04,3255           70077                          MASK     FLAGWRD3                              
056748,000912: 04,3256           10000                          CCS      A                                     
056749,000913: 04,3257           03270                          TC       R02ZERO                               #  ZERO IMUS
056750,000914: 
056751,000915: 04,3260           31302                          CA       IMODES30                              
056752,000916: 04,3261           74743                          MASK     BIT9                                  #  IS ISS INITIALIZED
056753,000917: 04,3262           00006                          EXTEND                                         
056754,000918: 04,3263           13265                          BZF      +2                                    
056755,000919: 04,3264           44750                          CS       BIT4                                  #  SEND IMU ALARM CODE 210
056756,000920: 04,3265           63273                          AD       OCT220                                #  SEND REFSMM ALARM
056757,000921: 04,3266           05744                          TC       VARALARM                              
056758,000922: 
056759,000923: 04,3267           06001                          TC       GOTOP00H                              
056760,000924: 
056761,000925: 04,3270           05504        R02ZERO           TC       UPFLAG                                
056762,000926:                                                                                                 #  Page 1333
056763,000927: 04,3271           00007                          ADRES    IMUSE                                 
056764,000928: 04,3272           14631                          TCF      SWRETURN                              
056765,000929: 04,3273           00220        OCT220            OCT      220                                   
056766,000930: 
056767,000931:                                                                                                 #  Page 1334
056768,000932:                                                                                                 #  PROGRAM DESCRIPTION:   P06             10 FEB 67
056769,000933: 
056770,000934:                                                                                                 #  TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
056771,000935: 
056772,000936:                                                                                                 #  THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY.  IN THIS CONDITION THE IMU
056773,000937:                                                                                                 #  HEATER POWER IS ON.  THE IMU OPERATE POWER IS OFF.  THE COMPUTER POWER IS ON.  THE OPTICS POWER IS OFF.  THE
056774,000938:                                                                                                 #  CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
056775,000939: 
056776,000940:                                                                                                 #  CALLING SEQUENCE:
056777,000941:                                                                                                 #         ASTRONAUT REQUEST THROUGH DSKY  V37E 06E.
056778,000942: 
056779,000943:                                                                                                 #  SUBROUTINES CALLED:
056780,000944:                                                                                                 #         GOPERF1
056781,000945:                                                                                                 #         BANKCALL
056782,000946:                                                                                                 #         FLAGDOWN
056783,000947: 
056784,000948:                                                                                                 #  Page 1335
056785,000949:                                                                                                 #  PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2.
056786,000950:                                                                                                 #  THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATIBILITY
056787,000951:                                                                                                 #  BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
056788,000952: 
056789,000953: 37,2000                                          SETLOC   P05P06                                
056790,000954: 37,2000                                          BANK                                           
056791,000955: 
056792,000956: 37,3655     0314                                 EBANK=   TIME2SAV                              
056793,000957: 37,3655                                          COUNT*   $$/P06                                
056794,000958: 
056795,000959: 37,3655           05504        P06               TC       UPFLAG                                #  SET NODOV37 BIT
056796,000960: 37,3656           00054                          ADRES    NODOFLAG                              
056797,000961: 
056798,000962: 37,3657           00004        PRESTAND          INHINT                                         
056799,000963: 37,3660           00006                          EXTEND                                         
056800,000964: 37,3661           30025                          DCA      TIME2                                 #  SNAPSHOT TIME1 TIME2
056801,000965: 37,3662           52315                          DXCH     TIME2SAV                              
056802,000966: 37,3663           03714                          TC       SCALPREP                              
056803,000967: 37,3664           03657                          TC       PRESTAND                              #  T1,T2,SCALER NOT COMPATIBLE
056804,000968: 37,3665           52155                          DXCH     MPAC                                  #  T1,T2 AND SCALER OK
056805,000969: 37,3666           52317                          DXCH     SCALSAVE                              #  STORE SCALER
056806,000970: 37,3667           00004                          INHINT                                         
056807,000971: 37,3670           04616                          TC       BANKCALL                              
056808,000972: 37,3671           17175                          CADR     RNDREFDR                              #  REFSMM, DRIFT, TRACK FLAGS DOWN
056809,000973: 
056810,000974: 37,3672           05516                          TC       DOWNFLAG                              
056811,000975: 37,3673           00007                          ADRES    IMUSE                                 #  IMUSE DOWN
056812,000976: 37,3674           05516                          TC       DOWNFLAG                              
056813,000977: 37,3675           00010                          ADRES    RNDVZFLG                              #  RNDVZFLG DOWN
056814,000978: 
056815,000979: 37,3676           34741                          CAF      BIT11                                 
056816,000980: 37,3677           00006                          EXTEND                                         
056817,000981: 37,3700           05013                          WOR      CHAN13                                #  SET STANDBY ENABLE BIT
056818,000982: 
056819,000983: 37,3701           05353                          TC       PHASCHNG                              #  SET RESTART TO POSTAND WHEN STANDBY
056820,000984: 37,3702           07024                          OCT      07024                                 #         RECOVERS
056821,000985: 37,3703           20000                          OCT      20000                                 
056822,000986: 37,3704     0316                                 EBANK=   SCALSAVE                              
056823,000987: 37,3704           03734 76060                    2CADR    POSTAND                               
056824,000988: 
056825,000989: 37,3706           34774                          CAF      OCT62                                 
056826,000990: 37,3707           04616                          TC       BANKCALL                              
056827,000991: 37,3710           20623                          CADR     GOPERF1                               
056828,000992: 37,3711           13706                          TCF      -3                                    
056829,000993: 37,3712           13706                          TCF      -4                                    
056830,000994: 37,3713           13706                          TCF      -5                                    
056831,000995: 
056832,000996: 37,3714     4774               OCT62             EQUALS   .5SEC                                 #  DEC 50 = OCT 62
056833,000997: 
056834,000998:                                                                                                 #  THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
056835,000999:                                                                                                 #  Page 1336
056836,001000:                                                                                                 #  T1 INCREMENT.  IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
056837,001001:                                                                                                 #  DATA ARE NOT COMPATIBLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
056838,001002:                                                                                                 #  DATA.  OTHERWISE, THE RETURN IS TO L+2 TO PROCEED.  ROUTINE ALSO PREPARES
056839,001003:                                                                                                 #  THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2.  (THE
056840,001004:                                                                                                 #  10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
056841,001005:                                                                                                 #  T1.0 ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
056842,001006:                                                                                                 #  ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1.  THE LOW 5
056843,001007:                                                                                                 #  BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
056844,001008:                                                                                                 #  DATA TO 10 MS.  RESULTS ARE STORED IN MPAC, +1.
056845,001009: 
056846,001010: 37,3714           00006        SCALPREP          EXTEND                                         
056847,001011: 37,3715           22156                          QXCH     MPAC       +2                         
056848,001012: 37,3716           04103                          TC       FINETIME   +1                         
056849,001013: 37,3717           00003                          RELINT                                         
056850,001014: 37,3720           52155                          DXCH     MPAC                                  
056851,001015: 37,3721           34747                          CA       BIT5                                  #  ADD 5 MS TO THE SCALER READING.
056852,001016: 37,3722           54001                          TS       L                                     
056853,001017: 37,3723           34755                          CA       ZERO                                  
056854,001018: 37,3724           20155                          DAS      MPAC                                  
056855,001019: 37,3725           44346                          CS       LOW5                                  #  SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
056856,001020: 37,3726           70155                          MASK     MPAC       +1                         #  AND STORE RESULTS IN MPAC,+1.
056857,001021: 37,3727           56155                          XCH      MPAC       +1                         
056858,001022: 37,3730           74346                          MASK     LOW5                                  #  TEST LOW 5 BITS OF SCALER FOR THE FIRST
056859,001023:                                                                                                 #  INTERVAL AFTER THE T1 INCREMENT
056860,001024:                                                                                                 #  (NOW = 00000, SINCE BIT 5 ADDED).
056861,001025: 37,3731           10000                          CCS      A                                     #  IS IT 1ST INTERVAL AFTER T1 INCREMENT
056862,001026: 37,3732           24156                          INCR     MPAC       +2                         #  NO
056863,001027: 37,3733           00156                          TC       MPAC       +2                         #  YES
056864,001028: 
056865,001029:                                                                                                 #  POSTAND RECOVERS TIME AFTER STANDBY.  THE SCALER IS SNAPSHOTTED AND THE
056866,001030:                                                                                                 #  TIME1 TIME2 COUNTER IS SET TO ZERO.  THE LOW 5 BITS OF THE SCALER ARE
056867,001031:                                                                                                 #  INSPECTED TO INSURE COMPATIBILITY BETWEEN THE SCALER READING AND THE
056868,001032:                                                                                                 #  CLEARING OF THE TIME COUNTER.  IT THEN COMPUTES THE DIFFERENCE IN SCALER
056869,001033:                                                                                                 #  VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
056870,001034:                                                                                                 #  TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
056871,001035: 
056872,001036: 37,3734                                          COUNT*   $$/P05                                
056873,001037: 
056874,001038: 37,3734           44741        POSTAND           CS       BIT11                                 #  RECOVER TIME AFTER STANDBY
056875,001039: 37,3735           00006                          EXTEND                                         
056876,001040: 37,3736           03013                          WAND     CHAN13                                #  CLEAR STANDBY ENABLE BIT
056877,001041: 37,3737           00004                          INHINT                                         
056878,001042: 37,3740           34755                          CA       ZERO                                  
056879,001043: 37,3741           54001                          TS       L                                     
056880,001044: 37,3742           52025                          DXCH     TIME2                                 #  CLEAR TIME1 TIME2
056881,001045: 37,3743           03714                          TC       SCALPREP                              #  STORE SCALER IN MPAC, MPAC+1
056882,001046: 37,3744           03737                          TC       POSTAND    +3                         #  T1,T2,SCALER NOT COMPATIBLE
056883,001047: 37,3745           00006                          EXTEND                                         #  T1,T2 AND SCALER OK
056884,001048: 37,3746           40317                          DCS      SCALSAVE                              
056885,001049: 37,3747           20155                          DAS      MPAC                                  #  FORM DP DIFFERENCE OF POST-STANDBY SCALER
056886,001050:                                                                                                 #  Page 1337
056887,001051: 37,3750           34742                          CAF      BIT10                                 #  MINUS PRE-STANDBY SCALER AND SHIFT RIGHT
056888,001052: 37,3751           07307                          TC       SHORTMP                               #  5 TO ALIGN BITS WITH TIME1 TIME2.
056889,001053: 37,3752           34755                          CAF      ZERO                                  
056890,001054: 37,3753           54156                          TS       MPAC       +2                         #  NEEDED FOR TP AGREE
056891,001055: 37,3754           07257                          TC       TPAGREE                               #  MAKE DP DIFF AGREE
056892,001056: 37,3755           10154                          CCS      MPAC                                  
056893,001057: 37,3756           03763                          TC       POSTCOM                               #  IF DP DIFF NET +, NO SCALER OVERFLOW
056894,001058: 37,3757           03763                          TC       POSTCOM                               #  BETWEEN PRE AND POST STANDBY.
056895,001059: 37,3760           03761                          TC       +1                                    #  IF DP DIFF NET -, SCALER OVERFLOWED.  ADD
056896,001060: 37,3761           34742                          CAF      BIT10                                 #  BIT 10 TO HIGH DIFF TO CORRECT.
056897,001061: 37,3762           26154                          ADS      MPAC                                  
056898,001062: 37,3763           00006        POSTCOM           EXTEND                                         #  C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
056899,001063: 37,3764           30315                          DCA      TIME2SAV                              #  PRE-STANDBY TIME1 TIME2
056900,001064: 37,3765           20155                          DAS      MPAC                                  
056901,001065: 37,3766           07257                          TC       TPAGREE                               #  FORCE SIGN AGREEMENT
056902,001066: 37,3767           52155                          DXCH     MPAC                                  #  UPDATED VALUE FOR T1,T2.
056903,001067: 37,3770           20025                          DAS      TIME2                                 #  LOAD UPDATED VALUE INTO T1,T2, WITH
056904,001068: 37,3771           05516                          TC       DOWNFLAG                              #  CLEAR NODOFLAG
056905,001069: 37,3772           00054                          ADRES    NODOFLAG                              
056906,001070: 
056907,001071: 37,3773           06001                          TC       GOTOP00H                              
056908,001072: 

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