Source Code
![]() |
These source-code files were obtained by digitally photographing
an Artemis 72 (Apollo 15-17 Command Module) program listing from a private
collection and then
modifying pre-existing Comanche 55 (Apollo 11) source files to
incorporate changes. Photography was by Ron Burkey, and transcription
was performed by a team of volunteers. Note that the page images
presented online are of reduced quality, and that additional images
may be available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 072 OF AGC PROGRAM ARTEMIS BY NASA 2021114-011 11:40 FEB. 26, 1971Note that the date is the date of the printout, not the date of the program revision. |
060887,000002: ## Copyright: Public domain.
060888,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
060889,000004: ## Purpose: Part of the source code for Artemis (i.e., Colossus 3),
060890,000005: ## build 072. This is for the Command Module's (CM)
060891,000006: ## Apollo Guidance Computer (AGC), for
060892,000007: ## Apollo 15-17.
060893,000008: ## Assembler: yaYUL
060894,000009: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
060895,000010: ## Website: www.ibiblio.org/apollo/index.html
060896,000011: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Artemis072/
060897,000012: ## Mod history: 2009-08-19 JL Adapted from corresponding Comanche 055 file.
060898,000013: ## 2010-02-06 JL Fixed a 2CADR that should have been ADRES on page 1418.
060899,000014: ## 2020-02-11 JL Fixed errors on p1419, p1432.
060900,000015: ## 2010-02-20 RSB Un-##'d this header.
060901,000016: ## 2010-07-15 JL Fixed indentation.
060902,000017: ## 2010-07-18 JL Fixed indentation.
060903,000018: ## 2017-02-05 RSB Proofed comment text by diff'ing vs Comanche 55
060904,000019: ## and corrected errors found. There are several instances
060905,000020: ## in which comments are terminated in Comanche 55 by a
060906,000021: ## very distinct period, and yet the corresponding comments
060907,000022: ## here haven't the slightest indication of a period (nor is
060908,000023: ## there any difference in the code preceding the comment
060909,000024: ## on the same line). There is even one instance in which
060910,000025: ## the "+0." at the end of a comment is truncated to simply
060911,000026: ## "+" (on p. 1438). While I feel this is likely a problem
060912,000027: ## with the printer used for the Artemis printout, I've
060913,000028: ## nevertheless omitted the "." (or "0.") in those cases.
060914,000029: ## 2017-03-15 RSB Comment-text fixes identified in 6-way
060915,000030: ## side-by-side diff of Sunburst 120 and Luminary
060916,000031: ## 69/99/116/131/210.
060917,000032: ## 2017-03-16 RSB Comment-text fixes identified in 4-way side-by-side
060918,000033: ## diff of Colossus237/249/Comanche55/Artemis72. My
060919,000034: ## position on missing trailing characters as described
060920,000035: ## in the 2017-02-05 comment above has now been reversed,
060921,000036: ## and the missing characters have been restored. However,
060922,000037: ## the presence of the characters in Comanche 55 is not
060923,000038: ## enough ... the restoration is done only in
060924,000039: ## those cases where the corresponding otherwise-identical
060925,000040: ## line in _all_ other Colossus and Luminary versions has
060926,000041: ## those characters. These instances are marked with a
060927,000042: ## ##-style comment indicating the restoration.
060928,000043:
![]() |
Page 1417 |
060930,000045: 4000 SETLOC FFTAG3
060931,000046: 4000 BANK
060932,000047:
060933,000048: 5511 E3,1471 EBANK= COMMAND
060934,000049:
060935,000050: # FIXED-FIXED ROUTINES.
060936,000051:
060937,000052: 5511 COUNT* $$/IMODE
060938,000053: 5511 34772 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
060939,000054: 5512 54032 TS CDUX
060940,000055: 5513 54033 TS CDUY
060941,000056: 5514 54034 TS CDUZ
060942,000057: 5515 00002 TC Q
060943,000058:
060944,000059: 5516 4760 SPSCODE = BIT9
060945,000060:
![]() |
Page 1418 |
060947,000062: # IMU ZEROING ROUTINE.
060948,000063:
060949,000064: 07,2000 SETLOC MODESW
060950,000065: 07,2000 BANK
060951,000066:
060952,000067: 07,2627 COUNT* $$/IMODE
060953,000068: 07,2627 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
060954,000069: 07,2630 41241 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
060955,000070: 07,2631 75004 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
060956,000071: 07,2632 10000 CCS A
060957,000072: 07,2633 12637 TCF IMUZEROA
060958,000073:
060959,000074: 07,2634 05671 TC ALARM # IF SO.
060960,000075: 07,2635 00206 OCT 00206
060961,000076:
060962,000077: 07,2636 13622 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
060963,000078:
060964,000079: 07,2637 03616 IMUZEROA TC CAGETSTJ
060965,000080: # DO ALL THE WORK.
060966,000081: 07,2640 41334 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
060967,000082: 07,2641 74763 MASK NOIMUDAP
060968,000083: 07,2642 27334 ADS IMODES33
060969,000084: 07,2643 40000 COM
060970,000085: 07,2644 74764 MASK IMUZROBT
060971,000086: 07,2645 27334 ADS IMODES33
060972,000087:
060973,000088: 07,2646 41333 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
060974,000089: 07,2647 74765 MASK IMUFINHT
060975,000090: 07,2650 27333 ADS IMODES30
060976,000091: 07,2651 40000 COM
060977,000092: 07,2652 74766 MASK ICDUINHT
060978,000093: 07,2653 27333 ADS IMODES30
060979,000094:
060980,000095: 07,2654 45004 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
060981,000096: 07,2655 00006 EXTEND # COUNTER DISABLED.
060982,000097: 07,2656 03012 WAND CHAN12
060983,000098:
060984,000099: 07,2657 03207 TC NOATTOFF # TURN OFF NO ATT LAMP.
060985,000100:
060986,000101: 07,2660 34764 CAF BIT5
060987,000102: 07,2661 00006 EXTEND
060988,000103: 07,2662 05012 WOR CHAN12
060989,000104:
060990,000105: 07,2663 05511 TC ZEROICDU
060991,000106: 07,2664 34763 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
060992,000107: 07,2665 05223 TC TWIDDLE # RECEIVE ITS PULSE TRAIN.
060993,000108: 07,2666 E3,1474 EBANK= CDUIND
060994,000109: 07,2666 02677 ADRES IMUZERO2
060995,000110: 07,2667 41333 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
060996,000111: 07,2670 74760 MASK IMUOPBIT
![]() |
Page 1419 |
060998,000113: 07,2671 10000 CCS A
060999,000114: 07,2672 12675 TCF MODEEXIT
061000,000115:
061001,000116: 07,2673 05671 TC ALARM
061002,000117: 07,2674 00210 OCT 210
061003,000118:
061004,000119: 07,2675 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
061005,000120: 07,2676 14651 TCF SWRETURN
061006,000121:
061007,000122:
061008,000123: 07,2677 03606 IMUZERO2 TC CAGETEST
061009,000124: 07,2700 05511 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
061010,000125:
061011,000126: 07,2701 44764 CS BIT5 # REMOVE ZERO DISCRETE.
061012,000127: 07,2702 00006 EXTEND
061013,000128: 07,2703 03012 WAND CHAN12
061014,000129:
061015,000130: 07,2704 35025 CAF 7.9SEC # WAIT 7.9 SECS FOR CTRS TO FIND GIMBALS
061016,000131: 07,2705 05260 TC VARDELAY
061017,000132:
061018,000133: 07,2706 03606 IMUZERO3 TC CAGETEST
061019,000134: 07,2707 34765 CA IMUFINHT
061020,000135: 07,2710 64766 AD ICDUINHT
061021,000136: 07,2711 40000 COM
061022,000137: 07,2712 71333 MASK IMODES30
061023,000138: 07,2713 55333 TS IMODES30
061024,000139:
061025,000140: 07,2714 34763 CA NOIMUDAP
061026,000141: 07,2715 64764 AD IMUZROBT
061027,000142: 07,2716 40000 COM
061028,000143: 07,2717 71334 MASK IMODES33 # BIT5 FOR GROUND
061029,000144: 07,2720 55334 TS IMODES33
061030,000145:
061031,000146: 07,2721 04714 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
061032,000147: 07,2722 14706 CADR SETISSW # PRESENT.
061033,000148:
061034,000149: 07,2723 13563 TCF ENDIMU
061035,000150:
![]() |
Page 1420 |
061037,000152: # IMU COARSE ALIGN MODE.
061038,000153:
061039,000154: 07,2724 00004 IMUCOARS INHINT
061040,000155: 07,2725 03616 TC CAGETSTJ
061041,000156: 07,2726 03070 TC SETCOARS
061042,000157:
061043,000158: 07,2727 36211 CAF SIX
061044,000159: 07,2730 05233 TC WAITLIST
061045,000160: 07,2731 E3,1474 EBANK= CDUIND
061046,000161: 07,2731 02734 16063 2CADR COARS
061047,000162:
061048,000163: 07,2733 12675 TCF MODEEXIT
061049,000164:
061050,000165: 07,2734 03606 COARS TC CAGETEST
061051,000166: 07,2735 34763 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
061052,000167: 07,2736 00006 EXTEND
061053,000168: 07,2737 05012 WOR CHAN12
061054,000169:
061055,000170: 07,2740 34767 CAF TWO # SET CDU INDICATOR
061056,000171: 07,2741 55474 COARS1 TS CDUIND
061057,000172:
061058,000173: 07,2742 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
061059,000174: 07,2743 31307 CA THETAD # COMPLEMENT FORM
061060,000175: 07,2744 00006 EXTEND
061061,000176: 07,2745 51474 INDEX CDUIND
061062,000177: 07,2746 20032 MSU CDUX
061063,000178: 07,2747 00006 EXTEND
061064,000179: 07,2750 74754 MP BIT13 # SHIFT RIGHT 2
061065,000180: 07,2751 56001 XCH L # ROUND
061066,000181: 07,2752 60000 DOUBLE
061067,000182: 07,2753 54061 TS ITEMP1
061068,000183: 07,2754 12756 TCF +2
061069,000184: 07,2755 26001 ADS L
061070,000185:
061071,000186: 07,2756 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
061072,000187: 07,2757 23471 LXCH COMMAND
061073,000188: 07,2760 11474 CCS CDUIND
061074,000189: 07,2761 02741 TC COARS1
061075,000190:
061076,000191: 07,2762 34767 CAF TWO # MINIMUM OF 4 MS WAIT
061077,000192: 07,2763 05260 -1 TC VARDELAY
061078,000193: 07,2764 03606 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
061079,000194: 07,2765 54061 TS ITEMP1 # SETS TO +0.
061080,000195: 07,2766 34767 CAF TWO # SET CDU INDICATOR
061081,000196: 07,2767 55474 +3 TS CDUIND
061082,000197:
061083,000198: 07,2770 51474 INDEX CDUIND
061084,000199: 07,2771 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
061085,000200: 07,2772 02776 TC COMPOS # GREATER THAN MAX ALLOWED
![]() |
Page 1421 |
061087,000202: 07,2773 03005 TC NEXTCDU +1
061088,000203: 07,2774 03043 TC COMNEG
061089,000204: 07,2775 03005 TC NEXTCDU +1
061090,000205:
061091,000206: 07,2776 63663 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
061092,000207: 07,2777 00006 EXTEND # MINUS ONE
061093,000208: 07,3000 63053 BZMF COMZERO
061094,000209: 07,3001 51474 INDEX CDUIND
061095,000210: 07,3002 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
061096,000211: 07,3003 43664 CS -COMMAX- # ALLOWED
061097,000212:
061098,000213: 07,3004 24061 NEXTCDU INCR ITEMP1
061099,000214: 07,3005 64771 +1 AD NEG0
061100,000215: 07,3006 51474 INDEX CDUIND
061101,000216: 07,3007 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
061102,000217:
061103,000218: 07,3010 11474 CCS CDUIND
061104,000219: 07,3011 02767 TC COARS2 +3
061105,000220:
061106,000221: 07,3012 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
061107,000222: 07,3013 13057 TCF SENDPULS
061108,000223:
061109,000224: 07,3014 05255 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
061110,000225: 07,3015 00226 DEC 150 B-14
061111,000226:
061112,000227: 07,3016 34767 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
061113,000228: 07,3017 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
061114,000229: 07,3020 50000 INDEX A
061115,000230: 07,3021 30032 CA CDUX
061116,000231: 07,3022 00006 EXTEND
061117,000232: 07,3023 50061 INDEX ITEMP1
061118,000233: 07,3024 21307 MSU THETAD
061119,000234: 07,3025 10000 CCS A
061120,000235: 07,3026 13034 TCF COARSERR
061121,000236: 07,3027 13031 TCF CORSCHK2
061122,000237: 07,3030 13034 TCF COARSERR
061123,000238:
![]() |
Page 1422 |
061125,000240:
061126,000241: 07,3031 10061 CORSCHK2 CCS ITEMP1
061127,000242: 07,3032 13017 TCF CHKCORS
061128,000243: 07,3033 13563 TCF ENDIMU # END OF COARSE ALIGNMENT.
061129,000244:
061130,000245: 07,3034 63042 COARSERR AD COARSTOL # 2 DEGREES.
061131,000246: 07,3035 00006 EXTEND
061132,000247: 07,3036 63031 BZMF CORSCHK2
061133,000248:
061134,000249:
061135,000250: 07,3037 05671 TC ALARM # COARSE ALIGN ERROR.
061136,000251: 07,3040 00211 OCT 211
061137,000252:
061138,000253: 07,3041 13625 TCF IMUBAD
061139,000254:
061140,000255: 07,3042 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
061141,000256:
061142,000257:
061143,000258: 07,3043 63663 COMNEG AD -COMMAX
061144,000259: 07,3044 00006 EXTEND
061145,000260: 07,3045 63053 BZMF COMZERO
061146,000261: 07,3046 40000 COM
061147,000262: 07,3047 51474 INDEX CDUIND
061148,000263: 07,3050 55471 TS COMMAND
061149,000264: 07,3051 33664 CA -COMMAX-
061150,000265: 07,3052 03004 TC NEXTCDU
061151,000266:
061152,000267: 07,3053 34772 COMZERO CAF ZERO
061153,000268: 07,3054 51474 INDEX CDUIND
061154,000269: 07,3055 57471 XCH COMMAND
061155,000270: 07,3056 03004 TC NEXTCDU
061156,000271:
061157,000272:
061158,000273: 07,3057 37673 SENDPULS CAF 13,14,15
061159,000274: 07,3060 00006 EXTEND
061160,000275: 07,3061 05014 WOR CHAN14
061161,000276: 07,3062 33665 CAF 600MS
061162,000277: 07,3063 12763 TCF COARS2 -1 # THEN TO VARDELAY
061163,000278:
061164,000279: 07,3064 34763 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
061165,000280: 07,3065 00006 EXTEND
061166,000281: 07,3066 05012 WOR CHAN12
061167,000282: 07,3067 05314 TC TASKOVER
061168,000283:
![]() |
Page 1423 |
061170,000285: 07,3070 34765 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
061171,000286: 07,3071 00006 EXTEND
061172,000287: 07,3072 02012 RAND CHAN12
061173,000288: 07,3073 10000 CCS A
061174,000289: 07,3074 00002 TC Q
061175,000290:
061176,000291: 07,3075 44763 CS BIT6 # CLEAR ISS ERROR COUNTERS
061177,000292: 07,3076 00006 EXTEND
061178,000293: 07,3077 03012 WAND CHAN12
061179,000294:
061180,000295: 07,3100 44757 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
061181,000296: 07,3101 00006 EXTEND
061182,000297: 07,3102 03014 WAND CHAN14
061183,000298: 07,3103 44772 CS ZERO
061184,000299: 07,3104 54047 TS GYROCMD
061185,000300:
061186,000301: 07,3105 34765 CAF BIT4 # PUT ISS IN COARSE ALIGN
061187,000302: 07,3106 00006 EXTEND
061188,000303: 07,3107 05012 WOR CHAN12
061189,000304:
061190,000305: 07,3110 41241 CS DSPTAB +11D # TURN ON NO ATT LAMP
061191,000306: 07,3111 77664 MASK OCT40010
061192,000307: 07,3112 27241 ADS DSPTAB +11D
061193,000308:
061194,000309: 07,3113 41334 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
061195,000310: 07,3114 74763 MASK NOIMUDAP
061196,000311: 07,3115 27334 ADS IMODES33
061197,000312:
061198,000313: 07,3116 41333 CS IMODES30 # DISABLE IMUFAIL
061199,000314: 07,3117 74765 MASK IMUFINHT
061200,000315: 07,3120 27333 ADS IMODES30
061201,000316:
061202,000317: 07,3121 44764 RNDREFDR CS TRACKBIT # KNOCK DOWN TRACK FLAG
061203,000318: 07,3122 70075 MASK FLAGWRD1
061204,000319: 07,3123 54075 TS FLAGWRD1
061205,000320:
061206,000321: 07,3124 44752 CS DRFTBIT # KNOCK DOWN DRIFT FLAG
061207,000322: 07,3125 70076 MASK FLAGWRD2
061208,000323: 07,3126 54076 TS FLAGWRD2
061209,000324:
061210,000325: 07,3127 44754 CS REFSMBIT # KNOCK DOWN REFSMMAT FLAG
061211,000326: 07,3130 70077 MASK FLAGWRD3
061212,000327: 07,3131 54077 TS FLAGWRD3
061213,000328:
061214,000329: 07,3132 00002 TC Q
061215,000330:
061216,000331: 07,3133 7664 OCT40010 EQUALS OT40010
061217,000332:
![]() |
Page 1424 |
061219,000334:
061220,000335: # IMU FINE ALIGN MODE SWITCH.
061221,000336:
061222,000337: 07,3133 00004 IMUFINE INHINT
061223,000338: 07,3134 03616 TC CAGETSTJ # SEE IF IMU BEING CAGED.
061224,000339:
061225,000340: 07,3135 45001 CS BITS4-5 # RESET ZERO AND COARSE
061226,000341: 07,3136 00006 EXTEND
061227,000342: 07,3137 03012 WAND CHAN12
061228,000343:
061229,000344: 07,3140 44763 CS NOIMUDAP # INSURE DAP AUTO AND HOLD MODES ENABLED
061230,000345: 07,3141 71334 MASK IMODES33
061231,000346: 07,3142 55334 TS IMODES33
061232,000347:
061233,000348: 07,3143 03207 TC NOATTOFF
061234,000349:
061235,000350: 07,3144 34757 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
061236,000351: 07,3145 05223 TC TWIDDLE # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
061237,000352: 07,3146 03155 ADRES IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
061238,000353: 07,3147 35017 CAF 2SECS
061239,000354: 07,3150 05223 TC TWIDDLE
061240,000355: 07,3151 03153 ADRES IMUFINED
061241,000356: 07,3152 12675 TCF MODEEXIT
061242,000357:
061243,000358: 07,3153 03606 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
061244,000359: 07,3154 13563 TCF ENDIMU
061245,000360:
![]() |
Page 1425 |
061247,000362: 07,3155 03613 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
061248,000363: 07,3156 15314 TCF TASKOVER # IT IS.
061249,000364:
061250,000365: 07,3157 34765 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
061251,000366: 07,3160 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
061252,000367: 07,3161 02012 RAND CHAN12
061253,000368: 07,3162 10000 CCS A
061254,000369: 07,3163 15314 TCF TASKOVER
061255,000370:
061256,000371: 07,3164 41333 CS IMODES30 # RESET IMUFAIL.
061257,000372: 07,3165 74754 MASK IMUFLBIT
061258,000373: 07,3166 27333 ADS IMODES30
061259,000374: 07,3167 44765 CS IMUFINHT
061260,000375: 07,3170 71333 PFAILOK2 MASK IMODES30
061261,000376: 07,3171 55333 TS IMODES30
061262,000377: 07,3172 04714 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
061263,000378: 07,3173 14706 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
061264,000379: 07,3174 15314 TCF TASKOVER
061265,000380:
061266,000381: 07,3175 03613 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
061267,000382: 07,3176 15314 TCF TASKOVER
061268,000383:
061269,000384: 07,3177 41333 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
061270,000385: 07,3200 74757 MASK PIPAFLBT
061271,000386: 07,3201 27333 ADS IMODES30
061272,000387:
061273,000388: 07,3202 41334 CS IMODES33
061274,000389: 07,3203 74754 MASK PIP2FLBT
061275,000390: 07,3204 27334 ADS IMODES33
061276,000391:
061277,000392: 07,3205 44764 CS NOACCALM
061278,000393: 07,3206 13170 TCF PFAILOK2
061279,000394:
061280,000395: 07,3207 47664 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
061281,000396: 07,3210 71241 MASK DSPTAB +11D
061282,000397: 07,3211 64752 AD BIT15
061283,000398: 07,3212 55241 TS DSPTAB +11D
061284,000399: 07,3213 00002 TC Q
061285,000400:
![]() |
Page 1426 |
061287,000402:
061288,000403: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
061289,000404:
061290,000405: 07,3214 44772 PIPUSE CS ZERO
061291,000406: 07,3215 54037 TS PIPAX
061292,000407: 07,3216 54040 TS PIPAY
061293,000408: 07,3217 54041 TS PIPAZ
061294,000409:
061295,000410: 07,3220 03613 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
061296,000411: 07,3221 14651 TCF SWRETURN
061297,000412:
061298,000413: 07,3222 00004 INHINT
061299,000414: 07,3223 44770 CS ACCFINHT # IF PIPA FAILS FROM NOW ON (UNTIL
061300,000415: 07,3224 71333 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
061301,000416: 07,3225 55333 TS IMODES30
061302,000417:
061303,000418: 07,3226 04714 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
061304,000419: 07,3227 14706 CADR SETISSW # (OR GO OFF ON PIPFREE).
061305,000420:
061306,000421: 07,3230 12675 TCF MODEEXIT
061307,000422:
061308,000423: 07,3231 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
061309,000424: 07,3232 41333 CS IMODES30 # ISS WARNING.
061310,000425: 07,3233 74770 MASK ACCFINHT
061311,000426: 07,3234 27333 ADS IMODES30
061312,000427:
061313,000428: 07,3235 74757 MASK PIPAFLBT # IF PIP FAIL ON, DO PROG ALARM AND RESET
061314,000429: 07,3236 10000 CCS A # ISS WARNING.
061315,000430: 07,3237 12675 TCF MODEEXIT
061316,000431:
061317,000432: 07,3240 05671 TC ALARM
061318,000433: 07,3241 00212 OCT 212
061319,000434:
061320,000435: 07,3242 00004 INHINT
061321,000436:
061322,000437: 07,3243 13226 TCF PIPFREE2
061323,000438:
![]() |
Page 1427 |
061325,000440:
061326,000441: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
061327,000442: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
061328,000443: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
061329,000444:
061330,000445: 07,3244 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
061331,000446: 07,3245 03616 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
061332,000447:
061333,000448: 07,3246 11324 CCS LGYRO # SEE IF GYROS BUSY.
061334,000449: 07,3247 03307 TC GYROBUSY # SLEEP.
061335,000450:
061336,000451: 07,3250 34763 CAF BIT6 # ENABLE THE POWER SUPPLY.
061337,000452: 07,3251 00006 EXTEND
061338,000453: 07,3252 05014 WOR CHAN14
061339,000454:
061340,000455: 07,3253 34766 CAF FOUR
061341,000456: 07,3254 05233 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
061342,000457: 07,3255 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
061343,000458: 07,3255 03324 16063 2CADR STRTGYRO
061344,000459:
061345,000460: 07,3257 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
061346,000461: 07,3260 56003 XCH EBANK # RESTORATION ON RETURN.
061347,000462: 07,3261 56161 XCH MPAC +5
061348,000463: 07,3262 55324 TS LGYRO # RESERVES GYROS.
061349,000464: 07,3263 74350 MASK LOW8
061350,000465: 07,3264 54061 TS ITEMP1
061351,000466:
061352,000467: 07,3265 34767 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
061353,000468: 07,3266 54157 GYROAGRE TS MPAC +3
061354,000469: 07,3267 60000 DOUBLE
061355,000470: 07,3270 60061 AD ITEMP1
061356,000471: 07,3271 54160 TS MPAC +4
061357,000472: 07,3272 00006 EXTEND
061358,000473: 07,3273 50000 INDEX A
061359,000474: 07,3274 31401 DCA 1400
061360,000475: 07,3275 52155 DXCH MPAC
061361,000476: 07,3276 07224 TC DPAGREE
061362,000477: 07,3277 52155 DXCH MPAC
061363,000478: 07,3300 50160 INDEX MPAC +4
061364,000479: 07,3301 53401 DXCH 1400
061365,000480:
061366,000481: 07,3302 10157 CCS MPAC +3
061367,000482: 07,3303 13266 TCF GYROAGRE
061368,000483:
061369,000484: 07,3304 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
061370,000485: 07,3305 54003 TS EBANK
061371,000486: 07,3306 12675 TCF MODEEXIT
061372,000487:
![]() |
Page 1428 |
061374,000489:
061375,000490: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
061376,000491:
061377,000492: 07,3307 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
061378,000493: 07,3310 30134 DCA BUF2
061379,000494: 07,3311 52155 DXCH MPAC
061380,000495: 07,3312 33323 REGSLEEP CAF LGWAKE
061381,000496: 07,3313 15163 TCF JOBSLEEP
061382,000497:
061383,000498: 07,3314 11324 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
061384,000499: 07,3315 13312 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
061385,000500:
061386,000501: 07,3316 00006 EXTEND
061387,000502: 07,3317 30155 DCA MPAC
061388,000503: 07,3320 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
061389,000504: 07,3321 34770 CAF ONE
061390,000505: 07,3322 13254 TCF GWAKE2
061391,000506:
061392,000507: 07,3323 17314 LGWAKE CADR GWAKE
061393,000508:
![]() |
Page 1429 |
061395,000510:
061396,000511: # GYRO-TORQUING WAITLIST TASKS.
061397,000512:
061398,000513: 07,3324 43560 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
061399,000514: 07,3325 00006 EXTEND
061400,000515: 07,3326 03014 WAND CHAN14
061401,000516:
061402,000517: 07,3327 03575 TC CAGETSTG
061403,000518:
![]() |
Trailing period restored. — RSB 2017. |
061405,000520: 07,3330 31324 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
061406,000521: 07,3331 00006 EXTEND
061407,000522: 07,3332 74765 MP BIT4
061408,000523: 07,3333 50000 INDEX A
061409,000524: 07,3334 13335 TCF +1
061410,000525: 07,3335 03352 TC GSELECT # =0. DO Y GYRO.
061411,000526: 07,3336 00202 OCT 00202
061412,000527:
061413,000528: 07,3337 03352 TC GSELECT # =1. DO Z GYRO.
061414,000529: 07,3340 00302 OCT 00302
061415,000530:
061416,000531: 07,3341 03350 TC GSELECT -2 # =2. DO X GYRO.
061417,000532: 07,3342 00100 OCT 00100
061418,000533:
061419,000534: 07,3343 34772 CAF ZERO # =3. DONE
061420,000535: 07,3344 55324 TS LGYRO
061421,000536: 07,3345 33323 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
061422,000537: 07,3346 05167 TC JOBWAKE
061423,000538:
061424,000539: 07,3347 13153 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
061425,000540:
![]() |
Page 1430 |
061427,000542:
![]() |
Trailing period restored. — RSB 2017. |
061429,000544: 07,3350 44766 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
061430,000545: 07,3351 27324 ADS LGYRO
061431,000546:
061432,000547: 07,3352 50002 GSELECT INDEX Q # SELECT GYRO.
061433,000548: 07,3353 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
061434,000549: 07,3354 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
061435,000550: 07,3355 74774 MASK SEVEN
061436,000551: 07,3356 64754 AD BIT13
061437,000552: 07,3357 27324 ADS LGYRO
061438,000553: 07,3360 54003 TS EBANK
061439,000554: 07,3361 74350 MASK LOW8
061440,000555: 07,3362 54061 TS ITEMP1
061441,000556:
061442,000557: 07,3363 44774 CS SEVEN
061443,000558: 07,3364 70064 MASK ITEMP4
061444,000559: 07,3365 54064 TS ITEMP4
061445,000560:
061446,000561: 07,3366 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
061447,000562: 07,3367 50061 INDEX ITEMP1
061448,000563: 07,3370 31401 DCA 1400
061449,000564: 07,3371 52071 DXCH RUPTREG1
061450,000565:
061451,000566: 07,3372 10070 CCS RUPTREG1
061452,000567: 07,3373 13406 TCF MAJ+
061453,000568: 07,3374 13376 TCF +2
061454,000569: 07,3375 13541 TCF MAJ-
061455,000570:
061456,000571: 07,3376 10071 CCS RUPTREG2
061457,000572: 07,3377 13403 TCF MIN+
061458,000573: 07,3400 13330 TCF STRTGYR2
061459,000574: 07,3401 13536 TCF MIN-
061460,000575: 07,3402 13330 TCF STRTGYR2
061461,000576:
![]() |
Page 1431 |
061463,000578:
061464,000579: 07,3403 63437 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
061465,000580: 07,3404 00006 EXTEND # 16 GYRO PULSES.
061466,000581: 07,3405 63330 BZMF STRTGYR2
061467,000582:
061468,000583: 07,3406 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
061469,000584: 07,3407 33562 DCA GYROFRAC
061470,000585: 07,3410 20071 DAS RUPTREG1
061471,000586:
061472,000587: 07,3411 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
061473,000588: 07,3412 00006 EXTEND
061474,000589: 07,3413 05014 WOR CHAN14
061475,000590:
061476,000591: 07,3414 36043 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
061477,000592: 07,3415 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
061478,000593: 07,3416 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
061479,000594: 07,3417 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
061480,000595: 07,3420 74761 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
061481,000596: 07,3421 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
061482,000597: 07,3422 30070 CA RUPTREG1
061483,000598: 07,3423 00006 EXTEND
061484,000599: 07,3424 74760 MP BIT9
061485,000600: 07,3425 54070 TS RUPTREG1
061486,000601: 07,3426 30001 CA L
061487,000602: 07,3427 00006 EXTEND
061488,000603: 07,3430 74753 MP BIT14
061489,000604: 07,3431 26062 ADS ITEMP2 # INITIAL COMMAND.
061490,000605:
061491,000606: 07,3432 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
061492,000607: 07,3433 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
061493,000608: 07,3434 67702 AD MINUS1
061494,000609: 07,3435 10000 CCS A
061495,000610: 07,3436 13503 TCF LONGGYRO
061496,000611: 07,3437 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
061497,000612: 07,3440 13444 TCF +4
061498,000613:
061499,000614: 07,3441 34753 CAF BIT14
061500,000615: 07,3442 26062 ADS ITEMP2
061501,000616: 07,3443 34772 CAF ZERO
061502,000617:
061503,000618: 07,3444 50061 +4 INDEX ITEMP1
061504,000619: 07,3445 53401 DXCH 1400
061505,000620:
![]() |
Page 1432 |
061507,000622:
061508,000623: 07,3446 30062 CA ITEMP2 # ENTIRE COMMAND.
061509,000624: 07,3447 54047 LASTSEG TS GYROCMD
061510,000625: 07,3450 03570 +1 TC COARSTST
061511,000626:
061512,000627: 07,3451 30047 CA GYROCMD
061513,000628: 07,3452 00006 EXTEND
061514,000629: 07,3453 74757 MP BIT10 # WAITLIST DT
061515,000630: 07,3454 66214 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
061516,000631: 07,3455 05223 TC TWIDDLE
061517,000632: 07,3456 03467 ADRES TWOPULSE
061518,000633: 07,3457 03463 EXITGYRO TC GYROEXIT
061519,000634: 07,3460 15314 TCF TASKOVER
061520,000635: 07,3461 34767 OUTPULSE CA BIT2
061521,000636: 07,3462 54047 TS GYROCMD
061522,000637: 07,3463 34757 GYROEXIT CAF BIT10
061523,000638: 07,3464 00006 EXTEND
061524,000639: 07,3465 05014 WOR CHAN14
061525,000640: 07,3466 00002 TC Q
061526,000641: 07,3467 44760 TWOPULSE CS BIT9
061527,000642: 07,3470 00006 EXTEND
061528,000643: 07,3471 03014 WAND CHAN14
061529,000644: 07,3472 03461 TC OUTPULSE
061530,000645: 07,3473 34770 CA BIT1
061531,000646: 07,3474 05223 TC TWIDDLE
061532,000647: 07,3475 03324 ADRES STRTGYRO
061533,000648: 07,3476 34760 CA BIT9
061534,000649: 07,3477 00006 EXTEND
061535,000650: 07,3500 05014 WOR CHAN14
061536,000651: 07,3501 03461 TC OUTPULSE
061537,000652: 07,3502 15314 TCF TASKOVER
061538,000653: 07,3503 50061 LONGGYRO INDEX ITEMP1
061539,000654: 07,3504 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
![]() |
Trailing period restored. — RSB 2017. |
061541,000656: 07,3505 34753 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
061542,000657: 07,3506 60062 AD ITEMP2
061543,000658: 07,3507 54047 TS GYROCMD
061544,000659:
061545,000660: 07,3510 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
061546,000661: 07,3511 74757 MP BIT10 # ALMOST OUT.
061547,000662: 07,3512 67700 AD NEG3
061548,000663: 07,3513 05223 TC TWIDDLE
061549,000664: 07,3514 03516 ADRES 8192AUG
061550,000665: 07,3515 13457 TCF EXITGYRO
061551,000666:
061552,000667: 07,3516 03570 8192AUG TC COARSTST
061553,000668:
061554,000669: 07,3517 31324 CA LGYRO # ADD 8192 PULSES TO GYROCMD
061555,000670: 07,3520 54003 TS EBANK
061556,000671: 07,3521 74350 MASK LOW8
061557,000672: 07,3522 54061 TS ITEMP1
![]() |
Page 1433 |
061559,000674: 07,3523 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
061560,000675: 07,3524 11400 CCS 1400
061561,000676: 07,3525 13531 TCF AUG2 # MORE TO COME.
061562,000677:
061563,000678: 07,3526 34753 CAF BIT14
061564,000679: 07,3527 26047 ADS GYROCMD
061565,000680: 07,3530 13450 TCF LASTSEG +1
061566,000681:
061567,000682: 07,3531 50061 AUG2 INDEX ITEMP1
061568,000683: 07,3532 55400 TS 1400
061569,000684: 07,3533 34753 CAF BIT14
061570,000685: 07,3534 26047 ADS GYROCMD
061571,000686: 07,3535 13510 TCF AUG3 # COMPUTE DT.
061572,000687:
![]() |
Page 1434 |
061574,000689:
061575,000690: 07,3536 63437 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
061576,000691: 07,3537 00006 EXTEND
061577,000692: 07,3540 63330 BZMF STRTGYR2
061578,000693:
061579,000694: 07,3541 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
061580,000695: 07,3542 43562 DCS GYROFRAC
061581,000696: 07,3543 20071 DAS RUPTREG1
061582,000697:
061583,000698: 07,3544 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
061584,000699: 07,3545 64760 AD BIT9
061585,000700: 07,3546 00006 EXTEND
061586,000701: 07,3547 05014 WOR CHAN14
061587,000702:
061588,000703: 07,3550 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
061589,000704: 07,3551 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
061590,000705: 07,3552 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
061591,000706: 07,3553 76043 MASK LOW7 # THE SIGN OF THE COMMAND.
061592,000707: 07,3554 40000 COM
061593,000708: 07,3555 56071 XCH RUPTREG2
061594,000709: 07,3556 40000 COM
061595,000710: 07,3557 13417 TCF GMERGE
061596,000711:
061597,000712: 07,3560 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
061598,000713:
061599,000714: 07,3561 00000 00034 GYROFRAC 2DEC .215 B-21
061600,000715:
![]() |
Page 1435 |
061602,000717:
061603,000718: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
061604,000719:
061605,000720: 07,3563 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
061606,000721: 07,3564 00011 READ DSALMOUT # ISS WARNING IS ON.
061607,000722: 07,3565 74770 MASK BIT1
061608,000723: 07,3566 67702 AD NEG1
061609,000724: 07,3567 13626 TCF BADEND +1
061610,000725: 07,3570 34765 COARSTST CAF BIT4
061611,000726: 07,3571 00006 EXTEND
061612,000727: 07,3572 02012 RAND CHAN12
061613,000728: 07,3573 10000 CCS A
061614,000729: 07,3574 13601 TCF DONTPULS
061615,000730:
061616,000731: 07,3575 41333 CAGETSTG CS IMODES30
061617,000732: 07,3576 74763 MASK IMUNITBT
061618,000733: 07,3577 10000 CCS A
061619,000734: 07,3600 00002 TC Q
061620,000735:
061621,000736: 07,3601 34772 DONTPULS CAF ZERO
061622,000737: 07,3602 55324 TS LGYRO
061623,000738:
061624,000739: 07,3603 33323 CAF LGWAKE
061625,000740: 07,3604 05167 TC JOBWAKE
061626,000741:
061627,000742: 07,3605 13625 TCF IMUBAD
061628,000743: 07,3606 34763 CAGETEST CAF IMUNITBT # SUBROUTINE TO TERMINATE IMU MODE
061629,000744: 07,3607 71333 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
061630,000745: 07,3610 10000 CCS A
061631,000746: 07,3611 13625 TCF IMUBAD # DIRECTLY.
061632,000747: 07,3612 00002 TC Q # WITH C(A) = +0.
061633,000748:
061634,000749: 07,3613 41333 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
061635,000750: 07,3614 74763 MASK IMUNITBT
061636,000751: 07,3615 15651 TCF INCRQCK
061637,000752: 07,3616 41333 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
061638,000753: 07,3617 74763 MASK IMUNITBT # IT IS FOUND THAT THE IMU IS BEING CAGED,
061639,000754: 07,3620 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
061640,000755: 07,3621 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
061641,000756:
061642,000757: 07,3622 44772 +4 CS ZERO # TO SWRETURN
061643,000758: 07,3623 55335 TS IMUCADR
061644,000759: 07,3624 12675 TCF MODEEXIT
061645,000760:
061646,000761: 07,3625 07,3625 IMUBAD EQUALS BADEND
061647,000762:
![]() |
Page 1436 |
061649,000764:
061650,000765: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
061651,000766: # OR AT BADEND FOR AN UNSUCCESSFUL ONE.
061652,000767:
061653,000768: 07,3625 44772 BADEND CS ZERO # FOR FAILURE.
061654,000769: 07,3626 54072 +1 TS RUPTREG3 # -0 FAILURE -1 SUCCESS
061655,000770: 07,3627 11335 CCS MODECADR
061656,000771: 07,3630 13632 TCF +2 # YES - WAKE IT UP.
061657,000772: 07,3631 13641 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
061658,000773:
061659,000774: 07,3632 34772 CAF ZERO # WAKE SLEEPING PROGRAM.
061660,000775: 07,3633 57335 XCH MODECADR
061661,000776: 07,3634 05167 TC JOBWAKE
061662,000777:
061663,000778: 07,3635 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
061664,000779: 07,3636 50064 INDEX LOCCTR
061665,000780: 07,3637 26164 ADS LOC
061666,000781:
061667,000782: 07,3640 15314 TCF TASKOVER
061668,000783:
061669,000784: 07,3641 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
061670,000785: 07,3642 55335 TS MODECADR # SUCCESSFUL.
061671,000786: 07,3643 15314 TCF TASKOVER
061672,000787:
![]() |
Page 1437 |
061674,000789:
061675,000790: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
061676,000791:
061677,000792: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
061678,000793: # LOG SECTION IMU MODE SWITCHING
061679,000794: # MOD BY- R.MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
061680,000795:
061681,000796: # FUNCTIONAL DESCRIPTION-
061682,000797: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
061683,000798: # I/O FUNCTION IS COMPLETE. THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
061684,000799: # MODECADR ARE MADE AND ACTED UPON.
061685,000800: # 1) +0 INDICATES INCOMPLETE I/O OPERATION. CALLING ROUTINE IS PUT TO
061686,000801: # SLEEP.
061687,000802: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
061688,000803: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
061689,000804: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
061690,000805: # AND RETURNS TO CALLING ROUTINE AT L+2.
061691,000806: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
061692,000807: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
061693,000808: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
061694,000809:
061695,000810: # CALLING SEQUENCE-
061696,000811: # L TC BANKCALL
061697,000812: # L+1 CADR IMUSTALL
061698,000813:
061699,000814: # NORMAL-EXIT MODE-
061700,000815: # TCF JOBSLEEP OR TCF MODEXIT
061701,000816:
061702,000817: # ALARM OR ABORT EXIT MODE-
061703,000818: # POODOO 21210
061704,000819:
061705,000820: # OUTPUT-
061706,000821: # MODECADR= CADR IF JOBSLEEP
061707,000822: # MODECADR=+0 IF I/O COMPLETE
061708,000823: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
061709,000824: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
061710,000825:
061711,000826: # ERASABLE INITIALIZATION-
061712,000827: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
061713,000828: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
061714,000829: # MODECADR CONTAINS +0, -1, -0 OR CADR RETURN ADDRESS.
061715,000830:
061716,000831:
061717,000832: 07,3644 11335 IMUSTALL CCS MODECADR
061718,000833: 07,3645 13661 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
061719,000834: 07,3646 13656 TCF MODESLP # OPERATION INCOMPLETE.
061720,000835: 07,3647 13652 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
061721,000836:
061722,000837: 07,3650 55335 MG2 TS MODECADR # COMPLETE AND FAILED IF -0. RESET TO +0.
061723,000838: 07,3651 12675 TCF MODEEXIT # RETURN TO CALLER.
![]() |
Page 1438 |
061725,000840: 07,3652 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
061726,000841: 07,3653 13661 TCF MODABORT
061727,000842:
061728,000843: 07,3654 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
![]() |
Trailing "0." restored. — RSB 2017. |
061730,000845: 07,3655 13650 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
061731,000846:
061732,000847: 07,3656 04665 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
061733,000848: 07,3657 55335 TS MODECADR
061734,000849: 07,3660 15163 TCF JOBSLEEP
061735,000850:
061736,000851: 07,3661 05726 MODABORT TC POODOO # TWO PROGRAMS USING SAME DEVICE.
061737,000852: 07,3662 21210 OCT 21210
061738,000853:
![]() |
Page 1439 |
061740,000855:
061741,000856: # CONSTANTS FOR MODE SWITCHING ROUTINES
061742,000857:
061743,000858: 07,3663 5775 BITS3&4 = OCT14
061744,000859: 07,3663 5004 BITS4&6 = OCT50
061745,000860: 07,3663 5001 BITS4-5 EQUALS BITS4&5
061746,000861: 07,3663 4761 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
061747,000862: 07,3663 77500 -COMMAX DEC -191 B-14
061748,000863: 07,3664 77477 -COMMAX- DEC -192 B-14
061749,000864: 07,3665 00074 600MS DEC 60 B-14
061750,000865: 07,3666 07,3133 IMUFIN20 = IMUFINE
061751,000866:
![]() |
Page 1440 |
061753,000868:
061754,000869: # PROGRAM DESCRIPTION
061755,000870: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
061756,000871: # MOD NO - 1
061757,000872: # MOD BY - N.BRODEUR
061758,000873:
061759,000874: # FUNCTIONAL DESCRIPTION
061760,000875: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
061761,000876: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
061762,000877: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
061763,000878: # CMC. CALLED THROUGH BANKCALL
061764,000879:
061765,000880: # CALLING SEQUENCE-
061766,000881: # L TC BANKCALL
061767,000882: # L+1 CADR R02BOTH
061768,000883:
061769,000884: # SUBROUTINES CALLED
061770,000885: # VARALARM
061771,000886: # FLAGUP
061772,000887:
061773,000888: # NORMAL EXIT MODES
061774,000889: # AT L+2 OF CALLING SEQUENCE
061775,000890:
061776,000891: # ALARM OR ABORT EXIT MODES
061777,000892: # GOTOPOOH, WITH ALARM
061778,000893:
061779,000894: # ERASABLE INITIALIZATION REQUIRED
061780,000895: # NONE
061781,000896:
061782,000897: # DEBRIS
061783,000898: # CENTRALS - A,Q,L
061784,000899:
061785,000900: 01,2000 SETLOC R02
061786,000901: 01,2000 BANK
061787,000902: 01,3731 COUNT* $$/R02
061788,000903: 01,3731 34754 R02BOTH CAF REFSMBIT
061789,000904: 01,3732 70077 MASK FLAGWRD3
061790,000905: 01,3733 10000 CCS A
061791,000906: 01,3734 03745 TC R02ZERO # ZERO IMUS
061792,000907:
061793,000908: 01,3735 31333 CA IMODES30
061794,000909: 01,3736 74760 MASK IMUOPBIT # IS ISS INITIALIZED
061795,000910: 01,3737 00006 EXTEND
061796,000911: 01,3740 13742 BZF +2
061797,000912: 01,3741 44765 CS BIT4 # SEND IMU ALARM CODE 210
061798,000913: 01,3742 63750 AD OCT220 # SEND REFSMM ALARM
061799,000914: 01,3743 05770 TC VARALARM
061800,000915:
061801,000916: 01,3744 04103 TC GOTOPOOH
061802,000917: 01,3745 05547 R02ZERO TC UPFLAG
061803,000918: 01,3746 00007 ADRES IMUSE
061804,000919: 01,3747 14651 TCF SWRETURN
061805,000920: 01,3750 00220 OCT220 OCT 220
061806,000921:
![]() |
Page 1441 |
061808,000923:
061809,000924: # PROGRAM DESCRIPTION P06 10FEB67
061810,000925:
061811,000926: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
061812,000927:
061813,000928: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
061814,000929: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
061815,000930: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
061816,000931:
061817,000932: # CALLING SEQUENCE:
061818,000933: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
061819,000934:
061820,000935: # SUBROUTINES CALLED:
061821,000936: # GOPERF1
061822,000937: # BANKCALL
061823,000938: # FLAGDOWN
061824,000939:
![]() |
Page 1442 |
061826,000941: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
061827,000942: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
061828,000943: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
061829,000944:
061830,000945: 26,2000 SETLOC P05P06
061831,000946: 26,2000 BANK
061832,000947:
061833,000948: 26,3654 1006 EBANK= TIME2SAV
061834,000949: 26,3654 COUNT* $$/P06
061835,000950:
061836,000951: 26,3654 05547 P06 TC UPFLAG # SET NODOV37 BIT
061837,000952: 26,3655 00054 ADRES NODOFLAG
061838,000953:
061839,000954: 26,3656 00004 PRESTAND INHINT
061840,000955: 26,3657 00006 EXTEND
061841,000956: 26,3660 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
061842,000957: 26,3661 53007 DXCH TIME2SAV
061843,000958: 26,3662 03715 TC SCALPREP
061844,000959: 26,3663 03656 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
061845,000960: 26,3664 52155 DXCH MPAC # T1,T2 AND SCALER OK
061846,000961: 26,3665 53011 DXCH SCALSAVE # STORE SCALER
061847,000962: 26,3666 00004 INHINT
061848,000963: 26,3667 04636 TC BANKCALL
061849,000964: 26,3670 17121 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
061850,000965:
061851,000966: 26,3671 05561 TC DOWNFLAG
061852,000967: 26,3672 00007 ADRES IMUSE # IMUSE DOWN
061853,000968: 26,3673 05561 TC DOWNFLAG
061854,000969: 26,3674 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
061855,000970:
061856,000971: 26,3675 05561 TC DOWNFLAG
061857,000972: 26,3676 00176 ADRES UTFLAG
061858,000973: 26,3677 34756 CAF BIT11
061859,000974: 26,3700 00006 EXTEND
061860,000975: 26,3701 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
061861,000976:
061862,000977: 26,3702 05402 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
061863,000978: 26,3703 07024 OCT 07024 # RECOVERS
061864,000979: 26,3704 20000 OCT 20000
061865,000980: 26,3705 1010 EBANK= SCALSAVE
061866,000981: 26,3705 03735 54062 2CADR POSTAND
061867,000982:
061868,000983: 26,3707 35011 CAF OCT62
061869,000984: 26,3710 04636 TC BANKCALL
061870,000985: 26,3711 21067 CADR GOPERF1
061871,000986: 26,3712 13707 TCF -3
061872,000987: 26,3713 13707 TCF -4
061873,000988: 26,3714 13707 TCF -5
061874,000989:
061875,000990: 26,3715 5011 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
061876,000991:
![]() |
Page 1443 |
061878,000993: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
061879,000994: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
061880,000995: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
061881,000996: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
061882,000997: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
061883,000998: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
061884,000999: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
061885,001000: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
061886,001001: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
061887,001002: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
061888,001003:
061889,001004: 26,3715 00006 SCALPREP EXTEND
061890,001005: 26,3716 22156 QXCH MPAC +2
061891,001006: 26,3717 04511 TC FINETIME +1
061892,001007: 26,3720 00003 RELINT
061893,001008: 26,3721 52155 DXCH MPAC
![]() |
Trailing period restored. — RSB 2017. |
061895,001010: 26,3722 34764 CA BIT5 # ADD 5 MS TO THE SCALER READING.
061896,001011: 26,3723 54001 TS L
061897,001012: 26,3724 34772 CA ZERO
061898,001013: 26,3725 20155 DAS MPAC
061899,001014: 26,3726 44342 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
061900,001015: 26,3727 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
061901,001016: 26,3730 56155 XCH MPAC +1
061902,001017: 26,3731 74342 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
061903,001018: # INTERVAL AFTER THE T1 INCREMENT
061904,001019: # (NOW = 00000, SINCE BIT 5 ADDED).
061905,001020: 26,3732 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
061906,001021: 26,3733 24156 INCR MPAC +2 # NO
061907,001022: 26,3734 00156 TC MPAC +2 # YES
061908,001023:
061909,001024: # POSTAND RECOVERS TIME AFTER STANDBY. THE SCALER IS SNAPSHOTTED AND THE
061910,001025: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
061911,001026: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
061912,001027: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
061913,001028: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
061914,001029: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
061915,001030:
061916,001031: 26,3735 COUNT* $$/P05
061917,001032:
061918,001033: 26,3735 44756 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
061919,001034: 26,3736 00006 EXTEND
061920,001035: 26,3737 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
061921,001036: 26,3740 00004 +3 INHINT
061922,001037: 26,3741 34772 CA ZERO
061923,001038: 26,3742 54001 TS L
061924,001039: 26,3743 52025 DXCH TIME2 # CLEAR TIME1 TIME2
061925,001040: 26,3744 03715 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
061926,001041: 26,3745 03740 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
061927,001042: 26,3746 00006 EXTEND # T1,T2 AND SCALER OK
061928,001043: 26,3747 41011 DCS SCALSAVE
![]() |
Page 1444 |
061930,001045: 26,3750 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
061931,001046: 26,3751 34757 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
061932,001047: 26,3752 07256 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
061933,001048: 26,3753 07224 TC DPAGREE
061934,001049: 26,3754 10154 CCS MPAC
061935,001050: 26,3755 03762 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
061936,001051: 26,3756 03762 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
061937,001052: 26,3757 03760 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
061938,001053: 26,3760 34757 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
061939,001054: 26,3761 26154 ADS MPAC
061940,001055: 26,3762 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
061941,001056: 26,3763 31007 DCA TIME2SAV # PRESTANDBY TIME1 TIME2
061942,001057: 26,3764 20155 DAS MPAC
061943,001058: 26,3765 07226 TC TPAGREE # FORCE SIGN AGREEMENT
061944,001059: 26,3766 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
061945,001060: 26,3767 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
061946,001061: 26,3770 05561 TC DOWNFLAG # CLEAR NODOFLAG
061947,001062: 26,3771 00054 ADRES NODOFLAG
061948,001063:
061949,001064: 26,3772 04103 TCGOPOOH TC GOTOPOOH
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc