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