Source Code
These source-code files were transcribed from scans made from Don Eyles's personal
copy of Luminary 069. They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Onno Hommes. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are prefixed with a single '#' symbol,
whereas comments added later are prefixed by "##" or "###". In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the Luminary 69 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 069 OF AGC PROGRAM LUMINARY BY NASA 2021112-011 19:02 NOV. 25,1968Note that the date is the date of the printout, not the date of the program revision. |
056589,000002: ## Copyright: Public domain.
056590,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
056591,000004: ## Purpose: The main source file for Luminary revision 069.
056592,000005: ## It is part of the source code for the original release
056593,000006: ## of the flight software for the Lunar Module's (LM) Apollo
056594,000007: ## Guidance Computer (AGC) for Apollo 10. The actual flown
056595,000008: ## version was Luminary 69 revision 2, which included a
056596,000009: ## newer lunar gravity model and only affected module 2.
056597,000010: ## This file is intended to be a faithful transcription, except
056598,000011: ## that the code format has been changed to conform to the
056599,000012: ## requirements of the yaYUL assembler rather than the
056600,000013: ## original YUL assembler.
056601,000014: ## Reference: pp. 1303-1331
056602,000015: ## Assembler: yaYUL
056603,000016: ## Contact: Ron Burkey <info@sandroid.org>.
056604,000017: ## Website: www.ibiblio.org/apollo/index.html
056605,000018: ## Mod history: 2016-12-13 MAS Created from Luminary 99.
056606,000019: ## 2016-12-18 MAS Updated from comment-proofed Luminary 99 version.
056607,000020: ## 2017-01-18 RRB Updated for Luminary 69.
056608,000021: ## 2017-01-28 RSB Proofed comment text using octopus/prooferComments
056609,000022: ## and fixed errors found.
056610,000023: ## 2017-03-13 RSB Comment-text fixes noted in proofing Luminary 116.
056611,000024: ## 2017-03-15 RSB Comment-text fixes identified in 6-way
056612,000025: ## side-by-side diff of Sunburst 120 and Luminary
056613,000026: ## 69/99/116/131/210.
056614,000027: ## 2017-06-17 MAS Globally removed all SBANK= workarounds.
056615,000028:
Page 1303 |
056617,000030: 5457 BLOCK 02
056618,000031: 4000 SETLOC FFTAG3
056619,000032: 4000 BANK
056620,000033:
056621,000034: 5457 E3,1471 EBANK= COMMAND
056622,000035:
056623,000036: # FIXED-FIXED ROUTINES.
056624,000037:
056625,000038: 5457 COUNT* $$/IMODE
056626,000039: 5457 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
056627,000040: 5460 54032 TS CDUX
056628,000041: 5461 54033 TS CDUY
056629,000042: 5462 54034 TS CDUZ
056630,000043: 5463 00002 TC Q
056631,000044:
056632,000045: 5464 4743 SPSCODE = BIT9
056633,000046:
Page 1304 |
056635,000048: # IMU ZEROING ROUTINE.
056636,000049:
056637,000050: 11,3722 BANK 11
056638,000051: 07,2000 SETLOC MODESW
056639,000052: 07,2000 BANK
056640,000053:
056641,000054: 07,2667 COUNT* $$/IMODE
056642,000055: 07,2667 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
056643,000056: 07,2670 41036 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
056644,000057: 07,2671 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
056645,000058: 07,2672 10000 CCS A
056646,000059: 07,2673 12677 TCF IMUZEROA
056647,000060:
056648,000061: 07,2674 05567 TC ALARM # IF SO.
056649,000062: 07,2675 00206 OCT 00206
056650,000063:
056651,000064: 07,2676 13632 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
056652,000065:
056653,000066: 07,2677 03626 IMUZEROA TC CAGETSTJ
056654,000067: # DELETE
056655,000068: 07,2700 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056656,000069: 07,2701 74773 MASK SUPER011 # BIT5 FOR GROUND
056657,000070: 07,2702 27303 ADS IMODES33
056658,000071:
056659,000072: 07,2703 41302 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
056660,000073: 07,2704 75742 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
056661,000074: 07,2705 27302 ADS IMODES30
056662,000075:
056663,000076: 07,2706 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
056664,000077: 07,2707 00006 EXTEND # COUNTER DISABLED.
056665,000078: 07,2710 03012 WAND CHAN12
056666,000079:
056667,000080: 07,2711 03241 TC NOATTOFF # TURN OFF NO ATT LAMP.
056668,000081:
056669,000082: 07,2712 34747 CAF BIT5
056670,000083: 07,2713 00006 EXTEND
056671,000084: 07,2714 05012 WOR CHAN12
056672,000085:
056673,000086: 07,2715 05457 TC ZEROICDU
056674,000087: 07,2716 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
056675,000088: 07,2717 05203 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
056676,000089: 07,2720 E3,1474 EBANK= CDUIND
056677,000090: 07,2720 02732 16103 2CADR IMUZERO2
056678,000091:
056679,000092: 07,2722 41302 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
056680,000093: 07,2723 74743 MASK BIT9
056681,000094: 07,2724 10000 CCS A
056682,000095: 07,2725 12730 TCF MODEEXIT
Page 1305 |
056684,000097: 07,2726 05567 TC ALARM
056685,000098: 07,2727 00210 OCT 210
056686,000099:
056687,000100: 07,2730 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
056688,000101: 07,2731 14631 TCF SWRETURN
056689,000102:
056690,000103: 07,2732 03614 IMUZERO2 TC CAGETEST
056691,000104: 07,2733 05457 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
056692,000105:
056693,000106: 07,2734 44747 CS BIT5 # REMOVE ZERO DISCRETE.
056694,000107: 07,2735 00006 EXTEND
056695,000108: 07,2736 03012 WAND CHAN12
056696,000109:
056697,000110: 07,2737 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
056698,000111: 07,2740 05224 TC VARDELAY
056699,000112:
056700,000113: 07,2741 03614 IMUZERO3 TC CAGETEST
056701,000114: 07,2742 45742 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
056702,000115: 07,2743 71302 MASK IMODES30
056703,000116: 07,2744 55302 TS IMODES30
056704,000117:
056705,000118: 07,2745 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
056706,000119: 07,2746 71303 MASK IMODES33 # BIT5 FOR GROUND
056707,000120: 07,2747 55303 TS IMODES33
056708,000121:
056709,000122: 07,2750 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
056710,000123: 07,2751 14703 CADR SETISSW # PRESENT.
056711,000124:
056712,000125: 07,2752 13604 TCF ENDIMU
056713,000126:
Page 1306 |
056715,000128: # IMU COARSE ALIGN MODE.
056716,000129:
056717,000130: 07,2753 00004 IMUCOARS INHINT
056718,000131: 07,2754 03626 TC CAGETSTJ
056719,000132: 07,2755 03117 TC SETCOARS
056720,000133:
056721,000134: 07,2756 36241 CAF SIX
056722,000135: 07,2757 05203 TC WAITLIST
056723,000136: 07,2760 E3,1474 EBANK= CDUIND
056724,000137: 07,2760 02763 16103 2CADR COARS
056725,000138:
056726,000139: 07,2762 12730 TCF MODEEXIT
056727,000140:
056728,000141: 07,2763 03614 COARS TC CAGETEST
056729,000142: 07,2764 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
056730,000143: 07,2765 00006 EXTEND
056731,000144: 07,2766 05012 WOR CHAN12
056732,000145:
056733,000146: 07,2767 34752 CAF TWO # SET CDU INDICATOR
056734,000147: 07,2770 55474 COARS1 TS CDUIND
056735,000148:
056736,000149: 07,2771 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
056737,000150: 07,2772 30321 CA THETAD # COMPLEMENT FORM
056738,000151: 07,2773 00006 EXTEND
056739,000152: 07,2774 51474 INDEX CDUIND
056740,000153: 07,2775 20032 MSU CDUX
056741,000154: 07,2776 00006 EXTEND
056742,000155: 07,2777 74737 MP BIT13 # SHIFT RIGHT 2
056743,000156: 07,3000 56001 XCH L # ROUND
056744,000157: 07,3001 60000 DOUBLE
056745,000158: 07,3002 54061 TS ITEMP1
056746,000159: 07,3003 13005 TCF +2
056747,000160: 07,3004 26001 ADS L
056748,000161:
056749,000162: 07,3005 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
056750,000163: 07,3006 23471 LXCH COMMAND
056751,000164: 07,3007 11474 CCS CDUIND
056752,000165: 07,3010 02770 TC COARS1
056753,000166:
056754,000167: 07,3011 34752 CAF TWO # MINIMUM OF 4 MS WAIT
056755,000168: 07,3012 05224 TC VARDELAY
056756,000169:
Page 1307 |
056758,000171: 07,3013 03614 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
056759,000172: 07,3014 54061 TS ITEMP1 # SETS TO +0.
056760,000173: 07,3015 34752 CAF TWO # SET CDU INDICATOR
056761,000174: 07,3016 55474 +3 TS CDUIND
056762,000175:
056763,000176: 07,3017 51474 INDEX CDUIND
056764,000177: 07,3020 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
056765,000178: 07,3021 03025 TC COMPOS # GREATER THAN MAX ALLOWED
056766,000179: 07,3022 03034 TC NEXTCDU +1
056767,000180: 07,3023 03072 TC COMNEG
056768,000181: 07,3024 03034 TC NEXTCDU +1
056769,000182:
056770,000183: 07,3025 63720 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
056771,000184: 07,3026 00006 EXTEND # MINUS ONE
056772,000185: 07,3027 63102 BZMF COMZERO
056773,000186: 07,3030 51474 INDEX CDUIND
056774,000187: 07,3031 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
056775,000188: 07,3032 43721 CS -COMMAX- # ALLOWED
056776,000189:
056777,000190: 07,3033 24061 NEXTCDU INCR ITEMP1
056778,000191: 07,3034 64754 AD NEG0
056779,000192: 07,3035 51474 INDEX CDUIND
056780,000193: 07,3036 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
056781,000194:
056782,000195: 07,3037 11474 CCS CDUIND
056783,000196: 07,3040 03016 TC COARS2 +3
056784,000197:
056785,000198: 07,3041 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
056786,000199: 07,3042 13106 TCF SENDPULS
056787,000200:
056788,000201: 07,3043 05221 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
056789,000202: 07,3044 00226 DEC 150 B-14
056790,000203:
056791,000204: 07,3045 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
056792,000205: 07,3046 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
056793,000206: 07,3047 50000 INDEX A
056794,000207: 07,3050 30032 CA CDUX
056795,000208: 07,3051 00006 EXTEND
056796,000209: 07,3052 50061 INDEX ITEMP1
056797,000210: 07,3053 20321 MSU THETAD
056798,000211: 07,3054 10000 CCS A
056799,000212: 07,3055 13063 TCF COARSERR
056800,000213: 07,3056 13060 TCF CORSCHK2
056801,000214: 07,3057 13063 TCF COARSERR
056802,000215:
Page 1308 |
056804,000217: 07,3060 10061 CORSCHK2 CCS ITEMP1
056805,000218: 07,3061 13046 TCF CHKCORS
056806,000219: 07,3062 13604 TCF ENDIMU # END OF COARSE ALIGNMENT.
056807,000220:
056808,000221: 07,3063 63071 COARSERR AD COARSTOL # 2 DEGREES.
056809,000222: 07,3064 00006 EXTEND
056810,000223: 07,3065 63060 BZMF CORSCHK2
056811,000224:
056812,000225: 07,3066 05567 TC ALARM # COARSE ALIGN ERROR.
056813,000226: 07,3067 00211 OCT 211
056814,000227:
056815,000228: 07,3070 13612 TCF IMUBAD
056816,000229:
056817,000230: 07,3071 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
056818,000231:
056819,000232: 07,3072 63720 COMNEG AD -COMMAX
056820,000233: 07,3073 00006 EXTEND
056821,000234: 07,3074 63102 BZMF COMZERO
056822,000235: 07,3075 40000 COM
056823,000236: 07,3076 51474 INDEX CDUIND
056824,000237: 07,3077 55471 TS COMMAND
056825,000238: 07,3100 33721 CA -COMMAX-
056826,000239: 07,3101 03033 TC NEXTCDU
056827,000240:
056828,000241: 07,3102 34755 COMZERO CAF ZERO
056829,000242: 07,3103 51474 INDEX CDUIND
056830,000243: 07,3104 57471 XCH COMMAND
056831,000244: 07,3105 03033 TC NEXTCDU
056832,000245:
056833,000246: 07,3106 37737 SENDPULS CAF 13,14,15
056834,000247: 07,3107 00006 EXTEND
056835,000248: 07,3110 05014 WOR CHAN14
056836,000249: 07,3111 33722 CAF 600MS
056837,000250: 07,3112 13012 TCF COARS2 -1 # THEN TO VARDELAY
056838,000251:
056839,000252: 07,3113 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
056840,000253: 07,3114 00006 EXTEND
056841,000254: 07,3115 05012 WOR CHAN12
056842,000255: 07,3116 05261 TC TASKOVER
056843,000256:
Page 1309 |
056845,000258: 07,3117 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
056846,000259: 07,3120 00006 EXTEND
056847,000260: 07,3121 02012 RAND CHAN12
056848,000261: 07,3122 10000 CCS A
056849,000262: 07,3123 00002 TC Q
056850,000263:
056851,000264: 07,3124 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS
056852,000265: 07,3125 00006 EXTEND
056853,000266: 07,3126 03012 WAND CHAN12
056854,000267:
056855,000268: 07,3127 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
056856,000269: 07,3130 00006 EXTEND
056857,000270: 07,3131 03014 WAND CHAN14
056858,000271: 07,3132 44755 CS ZERO
056859,000272: 07,3133 54047 TS GYROCMD
056860,000273:
056861,000274: 07,3134 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN
056862,000275: 07,3135 00006 EXTEND
056863,000276: 07,3136 05012 WOR CHAN12
056864,000277:
056865,000278: 07,3137 41036 CS DSPTAB +11D # TURN ON NO ATT LAMP
056866,000279: 07,3140 73162 MASK OCT40010
056867,000280: 07,3141 27036 ADS DSPTAB +11D
056868,000281:
056869,000282: 07,3142 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056870,000283: 07,3143 74746 MASK BIT6
056871,000284: 07,3144 27303 ADS IMODES33
056872,000285:
056873,000286: 07,3145 41302 CS IMODES30 # DISABLE IMUFAIL
056874,000287: 07,3146 74750 MASK BIT4
056875,000288: 07,3147 27302 ADS IMODES30
056876,000289:
056877,000290: 07,3150 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG
056878,000291: 07,3151 70075 MASK FLAGWRD1
056879,000292: 07,3152 54075 TS FLAGWRD1
056880,000293:
056881,000294: 07,3153 44735 CS DRFTBIT # CLEAR DRIFT FLAG
056882,000295: 07,3154 70076 MASK FLAGWRD2
056883,000296: 07,3155 54076 TS FLAGWRD2
056884,000297:
056885,000298: 07,3156 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG
056886,000299: 07,3157 70077 MASK FLAGWRD3
056887,000300: 07,3160 54077 TS FLAGWRD3
056888,000301:
056889,000302: 07,3161 00002 TC Q
056890,000303:
056891,000304: 07,3162 40010 OCT40010 OCT 40010
056892,000305:
Page 1310 |
056894,000307: # IMU FINE ALIGN MODE SWITCH.
056895,000308:
056896,000309: 07,3163 00004 IMUFINE INHINT
056897,000310: 07,3164 03626 TC CAGETSTJ # SEE IF IMU BEING CAGED.
056898,000311:
056899,000312: 07,3165 43717 CS BITS4-5 # RESET ZERO AND COARSE
056900,000313: 07,3166 00006 EXTEND
056901,000314: 07,3167 03012 WAND CHAN12
056902,000315:
056903,000316: 07,3170 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
056904,000317: 07,3171 71303 MASK IMODES33
056905,000318: 07,3172 55303 TS IMODES33
056906,000319:
056907,000320: 07,3173 03241 TC NOATTOFF
056908,000321:
056909,000322: 07,3174 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
056910,000323: 07,3175 05203 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
056911,000324: 07,3176 E3,1474 EBANK= CDUIND
056912,000325: 07,3176 03207 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
056913,000326:
056914,000327: 07,3200 35000 CAF 2SECS
056915,000328: 07,3201 05203 TC WAITLIST
056916,000329: 07,3202 E3,1474 EBANK= CDUIND
056917,000330: 07,3202 03205 16103 2CADR IMUFINED
056918,000331:
056919,000332: 07,3204 12730 TCF MODEEXIT
056920,000333:
056921,000334: 07,3205 03614 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
056922,000335: 07,3206 13604 TCF ENDIMU
056923,000336:
Page 1311 |
056925,000338: 07,3207 03621 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
056926,000339: 07,3210 15261 TCF TASKOVER # IT IS.
056927,000340:
056928,000341: 07,3211 34750 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
056929,000342: 07,3212 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
056930,000343: 07,3213 02012 RAND CHAN12
056931,000344: 07,3214 10000 CCS A
056932,000345: 07,3215 15261 TCF TASKOVER
056933,000346:
056934,000347: 07,3216 41302 CS IMODES30 # RESET IMUFAIL.
056935,000348: 07,3217 74737 MASK BIT13
056936,000349: 07,3220 27302 ADS IMODES30
056937,000350: 07,3221 44750 CS BIT4
056938,000351: 07,3222 71302 PFAILOK2 MASK IMODES30
056939,000352: 07,3223 55302 TS IMODES30
056940,000353: 07,3224 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
056941,000354: 07,3225 14703 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
056942,000355: 07,3226 15261 TCF TASKOVER
056943,000356:
056944,000357: 07,3227 03621 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
056945,000358: 07,3230 15261 TCF TASKOVER
056946,000359:
056947,000360: 07,3231 41302 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
056948,000361: 07,3232 74742 MASK BIT10
056949,000362: 07,3233 27302 ADS IMODES30
056950,000363:
056951,000364: 07,3234 41303 CS IMODES33
056952,000365: 07,3235 74737 MASK BIT13
056953,000366: 07,3236 27303 ADS IMODES33
056954,000367:
056955,000368: 07,3237 44747 CS BIT5
056956,000369: 07,3240 13222 TCF PFAILOK2
056957,000370:
056958,000371: 07,3241 43162 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
056959,000372: 07,3242 71036 MASK DSPTAB +11D
056960,000373: 07,3243 64735 AD BIT15
056961,000374: 07,3244 55036 TS DSPTAB +11D
056962,000375: 07,3245 00002 TC Q
056963,000376:
Page 1312 |
056965,000378: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
056966,000379:
056967,000380: 07,3246 44755 PIPUSE CS ZERO
056968,000381: 07,3247 54037 TS PIPAX
056969,000382: 07,3250 54040 TS PIPAY
056970,000383: 07,3251 54041 TS PIPAZ
056971,000384:
056972,000385: 07,3252 03621 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
056973,000386: 07,3253 14631 TCF SWRETURN
056974,000387:
056975,000388: 07,3254 00004 INHINT
056976,000389: 07,3255 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
056977,000390: 07,3256 71302 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
056978,000391: 07,3257 55302 TS IMODES30
056979,000392:
056980,000393: 07,3260 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
056981,000394: 07,3261 14703 CADR SETISSW # (OR GO OFF ON PIPFREE).
056982,000395:
056983,000396: 07,3262 12730 TCF MODEEXIT
056984,000397:
056985,000398: 07,3263 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
056986,000399: 07,3264 41302 CS IMODES30 # ISS WARNING.
056987,000400: 07,3265 74753 MASK BIT1
056988,000401: 07,3266 27302 ADS IMODES30
056989,000402:
056990,000403: 07,3267 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
056991,000404: 07,3270 10000 CCS A # ISS WARNING.
056992,000405: 07,3271 12730 TCF MODEEXIT
056993,000406:
056994,000407: 07,3272 05567 TC ALARM
056995,000408: 07,3273 00212 OCT 212
056996,000409:
056997,000410: 07,3274 00004 INHINT
056998,000411:
056999,000412: 07,3275 13260 TCF PIPFREE2
057000,000413:
Page 1313 |
057002,000415: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
057003,000416: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
057004,000417: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
057005,000418:
057006,000419: 07,3276 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
057007,000420:
057008,000421: 07,3276 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
057009,000422: 07,3277 03626 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
057010,000423:
057011,000424: 07,3300 11314 CCS LGYRO # SEE IF GYROS BUSY.
057012,000425: 07,3301 03342 TC GYROBUSY # SLEEP.
057013,000426:
057014,000427: 07,3302 54156 TS MPAC +2
057015,000428: 07,3303 34746 CAF BIT6 # ENABLE THE POWER SUPPLY.
057016,000429: 07,3304 00006 EXTEND
057017,000430: 07,3305 05014 WOR CHAN14
057018,000431:
057019,000432: 07,3306 34751 CAF FOUR
057020,000433: 07,3307 05203 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
057021,000434: 07,3310 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
057022,000435: 07,3310 03360 16103 2CADR STRTGYRO
057023,000436:
057024,000437: 07,3312 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
057025,000438: 07,3313 56003 XCH EBANK # RESTORATION ON RETURN.
057026,000439: 07,3314 56161 XCH MPAC +5
057027,000440: 07,3315 55314 TS LGYRO # RESERVES GYROS.
057028,000441: 07,3316 74357 MASK LOW8
057029,000442: 07,3317 54061 TS ITEMP1
057030,000443:
057031,000444: 07,3320 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
057032,000445: 07,3321 54157 GYROAGRE TS MPAC +3
057033,000446: 07,3322 60000 DOUBLE
057034,000447: 07,3323 60061 AD ITEMP1
057035,000448: 07,3324 54160 TS MPAC +4
057036,000449: 07,3325 00006 EXTEND
057037,000450: 07,3326 50000 INDEX A
057038,000451: 07,3327 31401 DCA 1400
057039,000452: 07,3330 52155 DXCH MPAC
057040,000453: 07,3331 07256 TC TPAGREE
057041,000454: 07,3332 52155 DXCH MPAC
057042,000455: 07,3333 50160 INDEX MPAC +4
057043,000456: 07,3334 53401 DXCH 1400
057044,000457:
057045,000458: 07,3335 10157 CCS MPAC +3
057046,000459: 07,3336 13321 TCF GYROAGRE
057047,000460:
057048,000461: 07,3337 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
057049,000462: 07,3340 54003 TS EBANK
057050,000463: 07,3341 12730 TCF MODEEXIT
057051,000464:
Page 1314 |
057053,000466: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
057054,000467:
057055,000468: 07,3342 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
057056,000469: 07,3343 30134 DCA BUF2
057057,000470: 07,3344 52155 DXCH MPAC
057058,000471: 07,3345 33357 REGSLEEP CAF LGWAKE
057059,000472: 07,3346 15133 TCF JOBSLEEP
057060,000473:
057061,000474: 07,3347 11314 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
057062,000475: 07,3350 13345 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
057063,000476:
057064,000477: 07,3351 54156 TS MPAC +2
057065,000478: 07,3352 00006 EXTEND
057066,000479: 07,3353 30155 DCA MPAC
057067,000480: 07,3354 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
057068,000481: 07,3355 34753 CAF ONE
057069,000482: 07,3356 13307 TCF GWAKE2
057070,000483:
057071,000484: 07,3357 17347 LGWAKE CADR GWAKE
057072,000485:
Page 1315 |
057074,000487: # GYRO-TORQUING WAITLIST TASKS.
057075,000488:
057076,000489: 07,3360 43601 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
057077,000490: 07,3361 00006 EXTEND
057078,000491: 07,3362 03014 WAND CHAN14
057079,000492:
057080,000493: 07,3363 03614 TC CAGETEST
057081,000494:
057082,000495: 07,3364 31314 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
057083,000496: 07,3365 00006 EXTEND
057084,000497: 07,3366 74750 MP BIT4
057085,000498: 07,3367 50000 INDEX A
057086,000499: 07,3370 13371 TCF +1
057087,000500: 07,3371 03406 TC GSELECT # =0. DO Y GYRO.
057088,000501: 07,3372 00202 OCT 00202
057089,000502:
057090,000503: 07,3373 03406 TC GSELECT # =1. DO Z GYRO.
057091,000504: 07,3374 00302 OCT 00302
057092,000505:
057093,000506: 07,3375 03404 TC GSELECT -2 # =2. DO X GYRO.
057094,000507: 07,3376 00100 OCT 00100
057095,000508:
057096,000509: 07,3377 34755 CAF ZERO # =3. DONE
057097,000510: 07,3400 55314 TS LGYRO
057098,000511: 07,3401 33357 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
057099,000512: 07,3402 05137 TC JOBWAKE
057100,000513:
057101,000514: 07,3403 13205 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
Page 1316 |
057103,000516: 07,3404 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
057104,000517: 07,3405 27314 ADS LGYRO
057105,000518:
057106,000519: 07,3406 50002 GSELECT INDEX Q # SELECT GYRO.
057107,000520: 07,3407 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
057108,000521: 07,3410 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
057109,000522: 07,3411 74757 MASK SEVEN
057110,000523: 07,3412 64737 AD BIT13
057111,000524: 07,3413 27314 ADS LGYRO
057112,000525: 07,3414 54003 TS EBANK
057113,000526: 07,3415 74357 MASK LOW8
057114,000527: 07,3416 54061 TS ITEMP1
057115,000528:
057116,000529: 07,3417 44757 CS SEVEN
057117,000530: 07,3420 70064 MASK ITEMP4
057118,000531: 07,3421 54064 TS ITEMP4
057119,000532:
057120,000533: 07,3422 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
057121,000534: 07,3423 50061 INDEX ITEMP1
057122,000535: 07,3424 31401 DCA 1400
057123,000536: 07,3425 52071 DXCH RUPTREG1
057124,000537:
057125,000538: 07,3426 10070 CCS RUPTREG1
057126,000539: 07,3427 13442 TCF MAJ+
057127,000540: 07,3430 13432 TCF +2
057128,000541: 07,3431 13562 TCF MAJ-
057129,000542:
057130,000543: 07,3432 10071 CCS RUPTREG2
057131,000544: 07,3433 13437 TCF MIN+
057132,000545: 07,3434 13364 TCF STRTGYR2
057133,000546: 07,3435 13557 TCF MIN-
057134,000547: 07,3436 13364 TCF STRTGYR2
057135,000548:
Page 1317 |
057137,000550: 07,3437 63473 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
057138,000551: 07,3440 00006 EXTEND # 16 GYRO PULSES.
057139,000552: 07,3441 63364 BZMF STRTGYR2
057140,000553:
057141,000554: 07,3442 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
057142,000555: 07,3443 33603 DCA GYROFRAC
057143,000556: 07,3444 20071 DAS RUPTREG1
057144,000557:
057145,000558: 07,3445 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
057146,000559: 07,3446 00006 EXTEND
057147,000560: 07,3447 05014 WOR CHAN14
057148,000561:
057149,000562: 07,3450 36073 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
057150,000563: 07,3451 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
057151,000564: 07,3452 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
057152,000565: 07,3453 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
057153,000566: 07,3454 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
057154,000567: 07,3455 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
057155,000568: 07,3456 30070 CA RUPTREG1
057156,000569: 07,3457 00006 EXTEND
057157,000570: 07,3460 74743 MP BIT9
057158,000571: 07,3461 54070 TS RUPTREG1
057159,000572: 07,3462 30001 CA L
057160,000573: 07,3463 00006 EXTEND
057161,000574: 07,3464 74736 MP BIT14
057162,000575: 07,3465 26062 ADS ITEMP2 # INITIAL COMMAND.
057163,000576:
057164,000577: 07,3466 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
057165,000578: 07,3467 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
057166,000579: 07,3470 67746 AD MINUS1
057167,000580: 07,3471 10000 CCS A
057168,000581: 07,3472 13516 TCF LONGGYRO
057169,000582: 07,3473 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
057170,000583: 07,3474 13500 TCF +4
057171,000584:
057172,000585: 07,3475 34736 CAF BIT14
057173,000586: 07,3476 26062 ADS ITEMP2
057174,000587: 07,3477 34755 CAF ZERO
057175,000588:
057176,000589: 07,3500 50061 +4 INDEX ITEMP1
057177,000590: 07,3501 53401 DXCH 1400
Page 1318 |
057179,000592: 07,3502 30062 CA ITEMP2 # ENTIRE COMMAND.
057180,000593: 07,3503 54047 LASTSEG TS GYROCMD
057181,000594: 07,3504 00006 EXTEND
057182,000595: 07,3505 74742 MP BIT10 # WAITLIST DT
057183,000596: 07,3506 66244 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
057184,000597: 07,3507 05203 TC WAITLIST
057185,000598: 07,3510 E3,1474 EBANK= CDUIND
057186,000599: 07,3510 03360 16103 2CADR STRTGYRO
057187,000600:
057188,000601: 07,3512 34742 GYROEXIT CAF BIT10
057189,000602: 07,3513 00006 EXTEND
057190,000603: 07,3514 05014 WOR CHAN14
057191,000604: 07,3515 15261 TCF TASKOVER
057192,000605:
057193,000606: 07,3516 50061 LONGGYRO INDEX ITEMP1
057194,000607: 07,3517 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
057195,000608: 07,3520 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
057196,000609: 07,3521 60062 AD ITEMP2
057197,000610: 07,3522 54047 TS GYROCMD
057198,000611:
057199,000612: 07,3523 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
057200,000613: 07,3524 74742 MP BIT10 # ALMOST OUT.
057201,000614: 07,3525 67744 AD NEG3
057202,000615: 07,3526 05203 TC WAITLIST
057203,000616: 07,3527 E3,1474 EBANK= CDUIND
057204,000617: 07,3527 03532 16103 2CADR 8192AUG
057205,000618:
057206,000619: 07,3531 13512 TCF GYROEXIT
057207,000620:
057208,000621: 07,3532 03614 8192AUG TC CAGETEST
057209,000622:
057210,000623: 07,3533 34750 CAF BIT4
057211,000624: 07,3534 00006 EXTEND
057212,000625: 07,3535 02012 RAND CHAN12
057213,000626: 07,3536 10000 CCS A
057214,000627: 07,3537 13612 TCF IMUBAD
057215,000628: 07,3540 31314 CA LGYRO # ADD 8192 PULSES TO GYROCMD
057216,000629: 07,3541 54003 TS EBANK
057217,000630: 07,3542 74357 MASK LOW8
057218,000631: 07,3543 54061 TS ITEMP1
057219,000632:
057220,000633: 07,3544 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
057221,000634: 07,3545 11400 CCS 1400
057222,000635: 07,3546 13552 TCF AUG2 # MORE TO COME.
057223,000636:
057224,000637: 07,3547 34736 CAF BIT14
057225,000638: 07,3550 26047 ADS GYROCMD
057226,000639: 07,3551 13504 TCF LASTSEG +1
057227,000640:
Page 1319 |
057229,000642: 07,3552 50061 AUG2 INDEX ITEMP1
057230,000643: 07,3553 55400 TS 1400
057231,000644: 07,3554 34736 CAF BIT14
057232,000645: 07,3555 26047 ADS GYROCMD
057233,000646: 07,3556 13523 TCF AUG3 # COMPUTE DT.
057234,000647:
Page 1320 |
057236,000649: 07,3557 63473 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
057237,000650: 07,3560 00006 EXTEND
057238,000651: 07,3561 63364 BZMF STRTGYR2
057239,000652:
057240,000653: 07,3562 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
057241,000654: 07,3563 43603 DCS GYROFRAC
057242,000655: 07,3564 20071 DAS RUPTREG1
057243,000656:
057244,000657: 07,3565 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
057245,000658: 07,3566 64743 AD BIT9
057246,000659: 07,3567 00006 EXTEND
057247,000660: 07,3570 05014 WOR CHAN14
057248,000661:
057249,000662: 07,3571 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
057250,000663: 07,3572 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
057251,000664: 07,3573 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
057252,000665: 07,3574 76073 MASK LOW7 # THE SIGN OF THE COMMAND.
057253,000666: 07,3575 40000 COM
057254,000667: 07,3576 56071 XCH RUPTREG2
057255,000668: 07,3577 40000 COM
057256,000669: 07,3600 13453 TCF GMERGE
057257,000670:
057258,000671: 07,3601 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
057259,000672:
057260,000673: 07,3602 00000 00034 GYROFRAC 2DEC .215 B-21
057261,000674:
Page 1321 |
057263,000676: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
057264,000677:
057265,000678: 07,3604 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
057266,000679: 07,3605 00011 READ DSALMOUT # ISS WARNING IS ON.
057267,000680: 07,3606 74753 MASK BIT1
057268,000681: 07,3607 10000 CCS A
057269,000682: 07,3610 13612 TCF IMUBAD
057270,000683:
057271,000684: 07,3611 13640 IMUGOOD TCF GOODEND # WITH C(A) = 0.
057272,000685:
057273,000686: 07,3612 34755 IMUBAD CAF ZERO
057274,000687: 07,3613 13635 TCF BADEND
057275,000688:
057276,000689: 07,3614 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
057277,000690: 07,3615 71302 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
057278,000691: 07,3616 10000 CCS A
057279,000692: 07,3617 13612 TCF IMUBAD # DIRECTLY.
057280,000693: 07,3620 00002 TC Q # WITH C(A) = +0.
057281,000694:
057282,000695: 07,3621 41302 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
057283,000696: 07,3622 74746 MASK BIT6
057284,000697: 07,3623 10000 CCS A
057285,000698: 07,3624 24002 INCR Q
057286,000699: 07,3625 00002 TC Q
057287,000700:
057288,000701: 07,3626 41302 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
057289,000702: 07,3627 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
057290,000703: 07,3630 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
057291,000704: 07,3631 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
057292,000705:
057293,000706: 07,3632 44755 CS ZERO # TO SWRETURN.
057294,000707: 07,3633 55304 TS IMUCADR
057295,000708: 07,3634 12730 TCF MODEEXIT
057296,000709:
Page 1322 |
057298,000711: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
057299,000712: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
057300,000713:
057301,000714: 07,3635 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
057302,000715: 07,3636 44755 CS ZERO # FOR FAILURE.
057303,000716: 07,3637 13642 TCF GOODEND +2
057304,000717:
057305,000718: 07,3640 54071 GOODEND TS RUPTREG2
057306,000719: 07,3641 44753 CS ONE # FOR SUCCESS.
057307,000720:
057308,000721: 07,3642 54072 TS RUPTREG3
057309,000722: 07,3643 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
057310,000723: 07,3644 11304 CCS MODECADR
057311,000724: 07,3645 13651 TCF +4 # YES - WAKE IT UP.
057312,000725: 07,3646 13661 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
057313,000726:
057314,000727: 07,3647 00006 EXTEND
057315,000728: 07,3650 13662 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0.
057316,000729:
057317,000730: 07,3651 34755 CAF ZERO # WAKE SLEEPING PROGRAM.
057318,000731: 07,3652 50071 INDEX RUPTREG2
057319,000732: 07,3653 57304 XCH MODECADR
057320,000733: 07,3654 05137 TC JOBWAKE
057321,000734:
057322,000735: 07,3655 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
057323,000736: 07,3656 50064 INDEX LOCCTR
057324,000737: 07,3657 26164 ADS LOC
057325,000738:
057326,000739: 07,3660 15261 TCF TASKOVER
057327,000740:
057328,000741: 07,3661 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
057329,000742: 07,3662 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
057330,000743: 07,3663 55304 TS MODECADR # SUCCESSFUL.
057331,000744: 07,3664 15261 TCF TASKOVER
057332,000745:
Page 1323 |
057334,000747: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
057335,000748:
057336,000749: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
057337,000750: # LOG SECTION IMU MODE SWITCHING
057338,000751: # MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
057339,000752:
057340,000753: # FUNCTIONAL DESCRIPTION-
057341,000754: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
057342,000755: # I/O FUNCTION IS COMPLETE.THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
057343,000756: # MODECADR ARE MADE AND ACTED UPON.
057344,000757: # 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO
057345,000758: # SLEEP.
057346,000759: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
057347,000760: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
057348,000761: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
057349,000762: # AND RETURNS TO CALLING ROUTINE AT L+2.
057350,000763: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
057351,000764: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
057352,000765: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
057353,000766:
057354,000767: # CALLING SEQUENCE-
057355,000768: # L TC BANKCALL
057356,000769: # L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL, OPTSTALL, RADSTALL,
057357,000770: # AOTSTALL, OR ATTSTALL)
057358,000771:
057359,000772: # NORMAL-EXIT MODE-
057360,000773: # TCF JOBSLEEP OR TCF MODEXIT
057361,000774:
057362,000775: # ALARM OR ABORT EXIT MODE-
057363,000776: # TC ABORT
057364,000777:
057365,000778: # OUTPUT-
057366,000779: # MODECADR=CADR IF JOBSLEEP
057367,000780: # MODECADR=+0 IF I/O COMPLETE
057368,000781: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
057369,000782: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
057370,000783:
057371,000784: # ERASABLE INITIALIZATION-
057372,000785: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
057373,000786: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
057374,000787: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
057375,000788:
057376,000789: # DEBRIS-
057377,000790: # RUPTREG2 AND CALLING ROUTINE MODECADR.
057378,000791:
057379,000792: 07,3665 34753 AOTSTALL CAF ONE # AOT.
057380,000793: 07,3666 03672 TC STALL
057381,000794:
057382,000795: 07,3667 34752 RADSTALL CAF TWO
057383,000796: 07,3670 13672 TCF STALL
057384,000797:
Page 1324 |
057386,000799: 07,3671 07,3665 OPTSTALL EQUALS AOTSTALL
057387,000800:
057388,000801: 07,3671 34755 IMUSTALL CAF ZERO # IMU.
057389,000802:
057390,000803: 07,3672 00004 STALL INHINT
057391,000804: 07,3673 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
057392,000805: 07,3674 50000 INDEX A # SEE IF OPERATION COMPLETE.
057393,000806: 07,3675 11304 CCS MODECADR
057394,000807: 07,3676 13714 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
057395,000808: 07,3677 13710 TCF MODESLP # OPERATION INCOMPLETE.
057396,000809: 07,3700 13704 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
057397,000810:
057398,000811: 07,3701 50071 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
057399,000812: 07,3702 55304 TS MODECADR # RETURN TO CALLER.
057400,000813: 07,3703 12730 TCF MODEEXIT
057401,000814:
057402,000815: 07,3704 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
057403,000816: 07,3705 13714 TCF MODABORT
057404,000817:
057405,000818: 07,3706 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
057406,000819: 07,3707 13701 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
057407,000820:
057408,000821: 07,3710 04645 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
057409,000822: 07,3711 50071 INDEX RUPTREG2
057410,000823: 07,3712 55304 TS MODECADR
057411,000824: 07,3713 15133 TCF JOBSLEEP
057412,000825:
057413,000826: 07,3714 52134 MODABORT DXCH BUF2
057414,000827: 07,3715 05710 TC BAILOUT1 # TWO PROGRAMS USING THE SAME DEVICE.
057415,000828: 07,3716 01210 OCT 1210
057416,000829:
Page 1325 |
057418,000831: # CONSTANTS FOR MODE SWITCHING ROUTINES
057419,000832:
057420,000833: 07,3717 5742 BITS3&4 = OCT14
057421,000834: 07,3717 4771 BITS4&6 = OCT50
057422,000835: 07,3717 00030 BITS4-5 OCT 00030
057423,000836: 07,3720 4744 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
057424,000837: 07,3720 77500 -COMMAX DEC -191 B-14
057425,000838: 07,3721 77477 -COMMAX- DEC -192 B-14
057426,000839: 07,3722 00074 600MS DEC 60 B-14
057427,000840: 07,3723 07,3163 IMUFIN20 = IMUFINE
057428,000841: 07,3723 31307 GOMANUR CA ATTCADR # IS KALCMANU FREE
057429,000842: 07,3724 00006 EXTEND
057430,000843: 07,3725 13730 BZF +3
057431,000844:
057432,000845: 07,3726 05652 TC POODOO # NO
057433,000846: 07,3727 01210 OCT 1210 # 2 TRYING TO USE SAME DEVICE
057434,000847:
057435,000848: 07,3730 00006 +3 EXTEND
057436,000849: 07,3731 30134 DCA BUF2
057437,000850: 07,3732 53310 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
057438,000851:
057439,000852: 07,3733 30006 CA BBANK
057440,000853: 07,3734 74757 MASK SEVEN
057441,000854: 07,3735 27310 ADS ATTCADR +1
057442,000855:
057443,000856: 07,3736 30167 CA PRIORITY
057444,000857: 07,3737 77724 MASK PRIO37
057445,000858: 07,3740 55311 TS ATTPRIO # SAVE USERS PRIO
057446,000859:
057447,000860: 07,3741 33745 CAF KALEBCON # SET EBANK FOR KALCMAN3
057448,000861: 07,3742 54003 TS EBANK
057449,000862: 07,3743 04635 TC POSTJUMP
057450,000863: 07,3744 44004 CADR KALCMAN3
057451,000864: 07,3745 03274 KALEBCON ECADR BCDU
057452,000865:
Page 1326 |
057454,000867: # PROGRAM DESCRIPTION
057455,000868: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
057456,000869: # MOD NO - 1
057457,000870: # MOD BY - N.BRODEUR
057458,000871:
057459,000872: # FUNCTIONAL DESCRIPTION
057460,000873: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
057461,000874: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
057462,000875: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
057463,000876: # CMC. CALLED THROUGH BANKCALL
057464,000877: # CALLING SEQUENCE-
057465,000878:
057466,000879: # L TC BANKCALL
057467,000880: # L+1 CADR R02BOTH
057468,000881: # SUBROUTINES CALLED
057469,000882:
057470,000883: # VARALARM
057471,000884: # FLAGUP
057472,000885:
057473,000886: # NORMAL EXIT MODES
057474,000887:
057475,000888: # AT L+2 OF CALLING SEQUENCE
057476,000889: # ALARM OR ABORT EXIT MODES
057477,000890: # GOTOPOOH, WITH ALARM
057478,000891: # ERASABLE INITIALIZATION REQUIRED
057479,000892:
057480,000893: # NONE
057481,000894: # DEBRIS
057482,000895:
057483,000896: # CENTRALS - A,Q,L
057484,000897:
057485,000898: 34,3760 BANK 34
057486,000899: 04,2000 SETLOC R02
057487,000900: 04,2000 BANK
057488,000901: 04,3174 COUNT* $$/R02
057489,000902: 04,3174 00063 DEC51 DEC 51 B-14
057490,000903: 04,3175 34737 R02BOTH CAF REFSMBIT
057491,000904: 04,3176 70077 MASK FLAGWRD3
057492,000905: 04,3177 10000 CCS A
057493,000906: 04,3200 03211 TC R02ZERO # ZERO IMUS
057494,000907:
057495,000908: 04,3201 31302 CA IMODES30
057496,000909: 04,3202 74743 MASK BIT9 # IS ISS INITIALIZED
057497,000910: 04,3203 00006 EXTEND
057498,000911: 04,3204 13206 BZF +2
057499,000912: 04,3205 44750 CS BIT4 # SEND IMU ALARM CODE 210
057500,000913: 04,3206 63214 AD OCT220 # SEND REFSMM ALARM
057501,000914: 04,3207 05735 TC VARALARM
057502,000915:
057503,000916: 04,3210 06001 TC GOTOPOOH
057504,000917:
057505,000918: 04,3211 05504 R02ZERO TC UPFLAG
Page 1327 |
057507,000920: 04,3212 00007 ADRES IMUSE
057508,000921: 04,3213 14631 TCF SWRETURN
057509,000922: 04,3214 00220 OCT220 OCT 220
057510,000923:
Page 1328 |
057512,000925: # PROGRAM DESCRIPTION P06 10 FEB 67
057513,000926:
057514,000927: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
057515,000928:
057516,000929: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
057517,000930: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
057518,000931: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
057519,000932:
057520,000933: # CALLING SEQUENCE:
057521,000934: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
057522,000935:
057523,000936: # SUBROUTINES CALLED:
057524,000937: # GOPERF1
057525,000938: # BANKCALL
057526,000939: # FLAGDOWN
057527,000940:
Page 1329 |
057529,000942: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
057530,000943: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
057531,000944: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
057532,000945:
057533,000946: 37,2000 SETLOC P05P06
057534,000947: 37,2000 BANK
057535,000948:
057536,000949: 37,3641 0314 EBANK= TIME2SAV
057537,000950: 37,3641 COUNT* $$/P06
057538,000951:
057539,000952: 37,3641 05504 P06 TC UPFLAG # SET NODOV37 BIT
057540,000953: 37,3642 00054 ADRES NODOFLAG
057541,000954:
057542,000955: 37,3643 00004 PRESTAND INHINT
057543,000956: 37,3644 00006 EXTEND
057544,000957: 37,3645 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
057545,000958: 37,3646 52315 DXCH TIME2SAV
057546,000959: 37,3647 03700 TC SCALPREP
057547,000960: 37,3650 03643 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
057548,000961: 37,3651 52155 DXCH MPAC # T1,T2 AND SCALER OK
057549,000962: 37,3652 52317 DXCH SCALSAVE # STORE SCALER
057550,000963: 37,3653 00004 INHINT
057551,000964: 37,3654 04616 TC BANKCALL
057552,000965: 37,3655 17150 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
057553,000966:
057554,000967: 37,3656 05516 TC DOWNFLAG
057555,000968: 37,3657 00007 ADRES IMUSE # IMUSE DOWN
057556,000969: 37,3660 05516 TC DOWNFLAG
057557,000970: 37,3661 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
057558,000971:
057559,000972: 37,3662 34741 CAF BIT11
057560,000973: 37,3663 00006 EXTEND
057561,000974: 37,3664 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
057562,000975:
057563,000976: 37,3665 05353 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
057564,000977: 37,3666 07024 OCT 07024 # RECOVERS
057565,000978: 37,3667 20000 OCT 20000
057566,000979: 37,3670 0316 EBANK= SCALSAVE
057567,000980: 37,3670 03720 76060 2CADR POSTAND
057568,000981:
057569,000982: 37,3672 34774 CAF OCT62
057570,000983: 37,3673 04616 TC BANKCALL
057571,000984: 37,3674 20476 CADR GOPERF1
057572,000985: 37,3675 13672 TCF -3
057573,000986: 37,3676 13672 TCF -4
057574,000987: 37,3677 13672 TCF -5
057575,000988:
057576,000989: 37,3700 4774 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
057577,000990:
057578,000991: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
Page 1330 |
057580,000993: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
057581,000994: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
057582,000995: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
057583,000996: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
057584,000997: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
057585,000998: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
057586,000999: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
057587,001000: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
057588,001001: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
057589,001002:
057590,001003: 37,3700 00006 SCALPREP EXTEND
057591,001004: 37,3701 22156 QXCH MPAC +2
057592,001005: 37,3702 04103 TC FINETIME +1
057593,001006: 37,3703 00003 RELINT
057594,001007: 37,3704 52155 DXCH MPAC
057595,001008: 37,3705 34747 CA BIT5 # ADD 5 MS TO THE SCALER READING.
057596,001009: 37,3706 54001 TS L
057597,001010: 37,3707 34755 CA ZERO
057598,001011: 37,3710 20155 DAS MPAC
057599,001012: 37,3711 44346 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
057600,001013: 37,3712 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
057601,001014: 37,3713 56155 XCH MPAC +1
057602,001015: 37,3714 74346 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
057603,001016: # INTERVAL AFTER THE T1 INCREMENT
057604,001017: # (NOW = 00000, SINCE BIT 5 ADDED).
057605,001018: 37,3715 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
057606,001019: 37,3716 24156 INCR MPAC +2 # NO
057607,001020: 37,3717 00156 TC MPAC +2 # YES
057608,001021:
057609,001022: # POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE
057610,001023: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
057611,001024: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
057612,001025: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
057613,001026: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
057614,001027: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
057615,001028:
057616,001029: 37,3720 COUNT* $$/P05
057617,001030:
057618,001031: 37,3720 44741 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
057619,001032: 37,3721 00006 EXTEND
057620,001033: 37,3722 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
057621,001034: 37,3723 00004 INHINT
057622,001035: 37,3724 34755 CA ZERO
057623,001036: 37,3725 54001 TS L
057624,001037: 37,3726 52025 DXCH TIME2 # CLEAR TIME1TIME2
057625,001038: 37,3727 03700 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
057626,001039: 37,3730 03723 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
057627,001040: 37,3731 00006 EXTEND # T1,T2 AND SCALER OK
057628,001041: 37,3732 40317 DCS SCALSAVE
057629,001042: 37,3733 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
Page 1331 |
057631,001044: 37,3734 34742 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
057632,001045: 37,3735 07306 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
057633,001046: 37,3736 34755 CAF ZERO
057634,001047: 37,3737 54156 TS MPAC +2 # NEEDED FOR TP AGREE
057635,001048: 37,3740 07256 TC TPAGREE # MAKE DP DIFF AGREE
057636,001049: 37,3741 10154 CCS MPAC
057637,001050: 37,3742 03747 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
057638,001051: 37,3743 03747 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
057639,001052: 37,3744 03745 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
057640,001053: 37,3745 34742 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
057641,001054: 37,3746 26154 ADS MPAC
057642,001055: 37,3747 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
057643,001056: 37,3750 30315 DCA TIME2SAV # PRESTANDBY TIME1TIME2
057644,001057: 37,3751 20155 DAS MPAC
057645,001058: 37,3752 07256 TC TPAGREE # FORCE SIGN AGREEMENT
057646,001059: 37,3753 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
057647,001060: 37,3754 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
057648,001061: 37,3755 05516 TC DOWNFLAG # CLEAR NODOFLAG
057649,001062: 37,3756 00054 ADRES NODOFLAG
057650,001063:
057651,001064: 37,3757 06001 TC GOTOPOOH
057652,001065:
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc