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