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