Source Code
These source-code files are part of a reconstructed copy of Skylark 048, the
Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the
Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.
They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to. The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction. Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
056922,000002: ## Copyright: Public domain.
056923,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
056924,000004: ## Purpose: A section of Skylark revision 048.
056925,000005: ## It is part of the source code for the Apollo Guidance Computer (AGC)
056926,000006: ## for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
056927,000007: ## this software are available; instead, this file was created via
056928,000008: ## disassembly of dumps of the core rope modules actually flown on
056929,000009: ## Skylab-2. Access to these modules was provided by the New Mexico
056930,000010: ## Museum of Space History.
056931,000011: ## Assembler: yaYUL
056932,000012: ## Contact: Ron Burkey <info@sandroid.org>.
056933,000013: ## Website: www.ibiblio.org/apollo/index.html
056934,000014: ## Mod history: 2023-09-04 MAS Created from Artemis 072.
056935,000015:
056936,000016: 4000 SETLOC FFTAG3
056937,000017: 4000 BANK
056938,000018:
056939,000019: 5524 E3,1471 EBANK= COMMAND
056940,000020:
056941,000021: # FIXED-FIXED ROUTINES.
056942,000022:
056943,000023: 5524 COUNT* $$/IMODE
056944,000024: 5524 35003 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
056945,000025: 5525 54032 TS CDUX
056946,000026: 5526 54033 TS CDUY
056947,000027: 5527 54034 TS CDUZ
056948,000028: 5530 00002 TC Q
056949,000029:
056950,000030: 5531 4771 SPSCODE = BIT9
056951,000031:
056952,000032: # IMU ZEROING ROUTINE.
056953,000033:
056954,000034: 07,2000 SETLOC MODESW
056955,000035: 07,2000 BANK
056956,000036:
056957,000037: 07,2560 COUNT* $$/IMODE
056958,000038: 07,2560 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
056959,000039: 07,2561 41231 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
056960,000040: 07,2562 75016 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
056961,000041: 07,2563 10000 CCS A
056962,000042: 07,2564 12570 TCF IMUZEROA
056963,000043:
056964,000044: 07,2565 05644 TC ALARM # IF SO.
056965,000045: 07,2566 00206 OCT 00206
056966,000046:
056967,000047: 07,2567 13553 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
056968,000048:
056969,000049: 07,2570 03547 IMUZEROA TC CAGETSTJ
056970,000050: # DO ALL THE WORK.
056971,000051: 07,2571 41324 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056972,000052: 07,2572 74774 MASK NOIMUDAP
056973,000053: 07,2573 27324 ADS IMODES33
056974,000054: 07,2574 40000 COM
056975,000055: 07,2575 74775 MASK IMUZROBT
056976,000056: 07,2576 27324 ADS IMODES33
056977,000057:
056978,000058: 07,2577 41323 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
056979,000059: 07,2600 74776 MASK IMUFINHT
056980,000060: 07,2601 27323 ADS IMODES30
056981,000061: 07,2602 40000 COM
056982,000062: 07,2603 74777 MASK ICDUINHT
056983,000063: 07,2604 27323 ADS IMODES30
056984,000064:
056985,000065: 07,2605 45016 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
056986,000066: 07,2606 00006 EXTEND # COUNTER DISABLED.
056987,000067: 07,2607 03012 WAND CHAN12
056988,000068:
056989,000069: 07,2610 03140 TC NOATTOFF # TURN OFF NO ATT LAMP.
056990,000070:
056991,000071: 07,2611 34775 CAF BIT5
056992,000072: 07,2612 00006 EXTEND
056993,000073: 07,2613 05012 WOR CHAN12
056994,000074:
056995,000075: 07,2614 05524 TC ZEROICDU
056996,000076: 07,2615 34774 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
056997,000077: 07,2616 05236 TC TWIDDLE # RECEIVE ITS PULSE TRAIN.
056998,000078: 07,2617 E3,1474 EBANK= CDUIND
056999,000079: 07,2617 02630 ADRES IMUZERO2
057000,000080: 07,2620 41323 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
057001,000081: 07,2621 74771 MASK IMUOPBIT
057002,000082: 07,2622 10000 CCS A
057003,000083: 07,2623 12626 TCF MODEEXIT
057004,000084:
057005,000085: 07,2624 05644 TC ALARM
057006,000086: 07,2625 00210 OCT 210
057007,000087:
057008,000088: 07,2626 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
057009,000089: 07,2627 14662 TCF SWRETURN
057010,000090:
057011,000091:
057012,000092: 07,2630 03537 IMUZERO2 TC CAGETEST
057013,000093: 07,2631 05524 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
057014,000094:
057015,000095: 07,2632 44775 CS BIT5 # REMOVE ZERO DISCRETE.
057016,000096: 07,2633 00006 EXTEND
057017,000097: 07,2634 03012 WAND CHAN12
057018,000098:
057019,000099: 07,2635 35040 CAF 7.9SEC # WAIT 7.9 SECS FOR CTRS TO FIND GIMBALS
057020,000100: 07,2636 05273 TC VARDELAY
057021,000101:
057022,000102: 07,2637 03537 IMUZERO3 TC CAGETEST
057023,000103: 07,2640 34776 CA IMUFINHT
057024,000104: 07,2641 64777 AD ICDUINHT
057025,000105: 07,2642 40000 COM
057026,000106: 07,2643 71323 MASK IMODES30
057027,000107: 07,2644 55323 TS IMODES30
057028,000108:
057029,000109: 07,2645 34774 CA NOIMUDAP
057030,000110: 07,2646 64775 AD IMUZROBT
057031,000111: 07,2647 40000 COM
057032,000112: 07,2650 71324 MASK IMODES33 # BIT5 FOR GROUND
057033,000113: 07,2651 55324 TS IMODES33
057034,000114:
057035,000115: 07,2652 04725 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
057036,000116: 07,2653 14706 CADR SETISSW # PRESENT.
057037,000117:
057038,000118: 07,2654 13514 TCF ENDIMU
057039,000119:
057040,000120: # IMU COARSE ALIGN MODE.
057041,000121:
057042,000122: 07,2655 00004 IMUCOARS INHINT
057043,000123: 07,2656 03547 TC CAGETSTJ
057044,000124: 07,2657 03021 TC SETCOARS
057045,000125:
057046,000126: 07,2660 36211 CAF SIX
057047,000127: 07,2661 05246 TC WAITLIST
057048,000128: 07,2662 E3,1474 EBANK= CDUIND
057049,000129: 07,2662 02665 16063 2CADR COARS
057050,000130:
057051,000131: 07,2664 12626 TCF MODEEXIT
057052,000132:
057053,000133: 07,2665 03537 COARS TC CAGETEST
057054,000134: 07,2666 34774 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
057055,000135: 07,2667 00006 EXTEND
057056,000136: 07,2670 05012 WOR CHAN12
057057,000137:
057058,000138: 07,2671 35000 CAF TWO # SET CDU INDICATOR
057059,000139: 07,2672 55474 COARS1 TS CDUIND
057060,000140:
057061,000141: 07,2673 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
057062,000142: 07,2674 31277 CA THETAD # COMPLEMENT FORM
057063,000143: 07,2675 00006 EXTEND
057064,000144: 07,2676 51474 INDEX CDUIND
057065,000145: 07,2677 20032 MSU CDUX
057066,000146: 07,2700 00006 EXTEND
057067,000147: 07,2701 74765 MP BIT13 # SHIFT RIGHT 2
057068,000148: 07,2702 56001 XCH L # ROUND
057069,000149: 07,2703 60000 DOUBLE
057070,000150: 07,2704 54061 TS ITEMP1
057071,000151: 07,2705 12707 TCF +2
057072,000152: 07,2706 26001 ADS L
057073,000153:
057074,000154: 07,2707 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
057075,000155: 07,2710 23471 LXCH COMMAND
057076,000156: 07,2711 11474 CCS CDUIND
057077,000157: 07,2712 02672 TC COARS1
057078,000158:
057079,000159: 07,2713 35000 CAF TWO # MINIMUM OF 4 MS WAIT
057080,000160: 07,2714 05273 -1 TC VARDELAY
057081,000161: 07,2715 03537 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
057082,000162: 07,2716 54061 TS ITEMP1 # SETS TO +0.
057083,000163: 07,2717 35000 CAF TWO # SET CDU INDICATOR
057084,000164: 07,2720 55474 +3 TS CDUIND
057085,000165:
057086,000166: 07,2721 51474 INDEX CDUIND
057087,000167: 07,2722 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
057088,000168: 07,2723 02727 TC COMPOS # GREATER THAN MAX ALLOWED
057089,000169: 07,2724 02736 TC NEXTCDU +1
057090,000170: 07,2725 02774 TC COMNEG
057091,000171: 07,2726 02736 TC NEXTCDU +1
057092,000172:
057093,000173: 07,2727 63614 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
057094,000174: 07,2730 00006 EXTEND # MINUS ONE
057095,000175: 07,2731 63004 BZMF COMZERO
057096,000176: 07,2732 51474 INDEX CDUIND
057097,000177: 07,2733 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
057098,000178: 07,2734 43615 CS -COMMAX- # ALLOWED
057099,000179:
057100,000180: 07,2735 24061 NEXTCDU INCR ITEMP1
057101,000181: 07,2736 65002 +1 AD NEG0
057102,000182: 07,2737 51474 INDEX CDUIND
057103,000183: 07,2740 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
057104,000184:
057105,000185: 07,2741 11474 CCS CDUIND
057106,000186: 07,2742 02720 TC COARS2 +3
057107,000187:
057108,000188: 07,2743 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
057109,000189: 07,2744 13010 TCF SENDPULS
057110,000190:
057111,000191: 07,2745 05270 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
057112,000192: 07,2746 00226 DEC 150 B-14
057113,000193:
057114,000194: 07,2747 35000 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
057115,000195: 07,2750 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
057116,000196: 07,2751 50000 INDEX A
057117,000197: 07,2752 30032 CA CDUX
057118,000198: 07,2753 00006 EXTEND
057119,000199: 07,2754 50061 INDEX ITEMP1
057120,000200: 07,2755 21277 MSU THETAD
057121,000201: 07,2756 10000 CCS A
057122,000202: 07,2757 12765 TCF COARSERR
057123,000203: 07,2760 12762 TCF CORSCHK2
057124,000204: 07,2761 12765 TCF COARSERR
057125,000205:
057126,000206:
057127,000207: 07,2762 10061 CORSCHK2 CCS ITEMP1
057128,000208: 07,2763 12750 TCF CHKCORS
057129,000209: 07,2764 13514 TCF ENDIMU # END OF COARSE ALIGNMENT.
057130,000210:
057131,000211: 07,2765 62773 COARSERR AD COARSTOL # 2 DEGREES.
057132,000212: 07,2766 00006 EXTEND
057133,000213: 07,2767 62762 BZMF CORSCHK2
057134,000214:
057135,000215:
057136,000216: 07,2770 05644 TC ALARM # COARSE ALIGN ERROR.
057137,000217: 07,2771 00211 OCT 211
057138,000218:
057139,000219: 07,2772 13556 TCF IMUBAD
057140,000220:
057141,000221: 07,2773 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
057142,000222:
057143,000223:
057144,000224: 07,2774 63614 COMNEG AD -COMMAX
057145,000225: 07,2775 00006 EXTEND
057146,000226: 07,2776 63004 BZMF COMZERO
057147,000227: 07,2777 40000 COM
057148,000228: 07,3000 51474 INDEX CDUIND
057149,000229: 07,3001 55471 TS COMMAND
057150,000230: 07,3002 33615 CA -COMMAX-
057151,000231: 07,3003 02735 TC NEXTCDU
057152,000232:
057153,000233: 07,3004 35003 COMZERO CAF ZERO
057154,000234: 07,3005 51474 INDEX CDUIND
057155,000235: 07,3006 57471 XCH COMMAND
057156,000236: 07,3007 02735 TC NEXTCDU
057157,000237:
057158,000238:
057159,000239: 07,3010 37673 SENDPULS CAF 13,14,15
057160,000240: 07,3011 00006 EXTEND
057161,000241: 07,3012 05014 WOR CHAN14
057162,000242: 07,3013 33616 CAF 600MS
057163,000243: 07,3014 12714 TCF COARS2 -1 # THEN TO VARDELAY
057164,000244:
057165,000245: 07,3015 34774 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
057166,000246: 07,3016 00006 EXTEND
057167,000247: 07,3017 05012 WOR CHAN12
057168,000248: 07,3020 05327 TC TASKOVER
057169,000249:
057170,000250: 07,3021 34776 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
057171,000251: 07,3022 00006 EXTEND
057172,000252: 07,3023 02012 RAND CHAN12
057173,000253: 07,3024 10000 CCS A
057174,000254: 07,3025 00002 TC Q
057175,000255:
057176,000256: 07,3026 44774 CS BIT6 # CLEAR ISS ERROR COUNTERS
057177,000257: 07,3027 00006 EXTEND
057178,000258: 07,3030 03012 WAND CHAN12
057179,000259:
057180,000260: 07,3031 44770 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
057181,000261: 07,3032 00006 EXTEND
057182,000262: 07,3033 03014 WAND CHAN14
057183,000263: 07,3034 45003 CS ZERO
057184,000264: 07,3035 54047 TS GYROCMD
057185,000265:
057186,000266: 07,3036 34776 CAF BIT4 # PUT ISS IN COARSE ALIGN
057187,000267: 07,3037 00006 EXTEND
057188,000268: 07,3040 05012 WOR CHAN12
057189,000269:
057190,000270: 07,3041 41231 CS DSPTAB +11D # TURN ON NO ATT LAMP
057191,000271: 07,3042 77664 MASK OCT40010
057192,000272: 07,3043 27231 ADS DSPTAB +11D
057193,000273:
057194,000274: 07,3044 41324 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
057195,000275: 07,3045 74774 MASK NOIMUDAP
057196,000276: 07,3046 27324 ADS IMODES33
057197,000277:
057198,000278: 07,3047 41323 CS IMODES30 # DISABLE IMUFAIL
057199,000279: 07,3050 74776 MASK IMUFINHT
057200,000280: 07,3051 27323 ADS IMODES30
057201,000281:
057202,000282: 07,3052 44775 RNDREFDR CS TRACKBIT # KNOCK DOWN TRACK FLAG
057203,000283: 07,3053 70075 MASK FLAGWRD1
057204,000284: 07,3054 54075 TS FLAGWRD1
057205,000285:
057206,000286: 07,3055 44763 CS DRFTBIT # KNOCK DOWN DRIFT FLAG
057207,000287: 07,3056 70076 MASK FLAGWRD2
057208,000288: 07,3057 54076 TS FLAGWRD2
057209,000289:
057210,000290: 07,3060 44765 CS REFSMBIT # KNOCK DOWN REFSMMAT FLAG
057211,000291: 07,3061 70077 MASK FLAGWRD3
057212,000292: 07,3062 54077 TS FLAGWRD3
057213,000293:
057214,000294: 07,3063 00002 TC Q
057215,000295:
057216,000296: 07,3064 7664 OCT40010 EQUALS OT40010
057217,000297:
057218,000298:
057219,000299: # IMU FINE ALIGN MODE SWITCH.
057220,000300:
057221,000301: 07,3064 00004 IMUFINE INHINT
057222,000302: 07,3065 03547 TC CAGETSTJ # SEE IF IMU BEING CAGED.
057223,000303:
057224,000304: 07,3066 45012 CS BITS4-5 # RESET ZERO AND COARSE
057225,000305: 07,3067 00006 EXTEND
057226,000306: 07,3070 03012 WAND CHAN12
057227,000307:
057228,000308: 07,3071 44774 CS NOIMUDAP # INSURE DAP AUTO AND HOLD MODES ENABLED
057229,000309: 07,3072 71324 MASK IMODES33
057230,000310: 07,3073 55324 TS IMODES33
057231,000311:
057232,000312: 07,3074 03140 TC NOATTOFF
057233,000313:
057234,000314: 07,3075 34770 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
057235,000315: 07,3076 05236 TC TWIDDLE # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
057236,000316: 07,3077 03106 ADRES IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
057237,000317: 07,3100 35032 CAF 2SECS
057238,000318: 07,3101 05236 TC TWIDDLE
057239,000319: 07,3102 03104 ADRES IMUFINED
057240,000320: 07,3103 12626 TCF MODEEXIT
057241,000321:
057242,000322: 07,3104 03537 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
057243,000323: 07,3105 13514 TCF ENDIMU
057244,000324:
057245,000325: 07,3106 03544 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
057246,000326: 07,3107 15327 TCF TASKOVER # IT IS.
057247,000327:
057248,000328: 07,3110 34776 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
057249,000329: 07,3111 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
057250,000330: 07,3112 02012 RAND CHAN12
057251,000331: 07,3113 10000 CCS A
057252,000332: 07,3114 15327 TCF TASKOVER
057253,000333:
057254,000334: 07,3115 41323 CS IMODES30 # RESET IMUFAIL.
057255,000335: 07,3116 74765 MASK IMUFLBIT
057256,000336: 07,3117 27323 ADS IMODES30
057257,000337: 07,3120 44776 CS IMUFINHT
057258,000338: 07,3121 71323 PFAILOK2 MASK IMODES30
057259,000339: 07,3122 55323 TS IMODES30
057260,000340: 07,3123 04725 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
057261,000341: 07,3124 14706 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
057262,000342: 07,3125 15327 TCF TASKOVER
057263,000343:
057264,000344: 07,3126 03544 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
057265,000345: 07,3127 15327 TCF TASKOVER
057266,000346:
057267,000347: 07,3130 41323 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
057268,000348: 07,3131 74770 MASK PIPAFLBT
057269,000349: 07,3132 27323 ADS IMODES30
057270,000350:
057271,000351: 07,3133 41324 CS IMODES33
057272,000352: 07,3134 74765 MASK PIP2FLBT
057273,000353: 07,3135 27324 ADS IMODES33
057274,000354:
057275,000355: 07,3136 44775 CS NOACCALM
057276,000356: 07,3137 13121 TCF PFAILOK2
057277,000357:
057278,000358: 07,3140 47664 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
057279,000359: 07,3141 71231 MASK DSPTAB +11D
057280,000360: 07,3142 64763 AD BIT15
057281,000361: 07,3143 55231 TS DSPTAB +11D
057282,000362: 07,3144 00002 TC Q
057283,000363:
057284,000364:
057285,000365: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
057286,000366:
057287,000367: 07,3145 45003 PIPUSE CS ZERO
057288,000368: 07,3146 54037 TS PIPAX
057289,000369: 07,3147 54040 TS PIPAY
057290,000370: 07,3150 54041 TS PIPAZ
057291,000371:
057292,000372: 07,3151 03544 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
057293,000373: 07,3152 14662 TCF SWRETURN
057294,000374:
057295,000375: 07,3153 00004 INHINT
057296,000376: 07,3154 45001 CS ACCFINHT # IF PIPA FAILS FROM NOW ON (UNTIL
057297,000377: 07,3155 71323 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
057298,000378: 07,3156 55323 TS IMODES30
057299,000379:
057300,000380: 07,3157 04725 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
057301,000381: 07,3160 14706 CADR SETISSW # (OR GO OFF ON PIPFREE).
057302,000382:
057303,000383: 07,3161 12626 TCF MODEEXIT
057304,000384:
057305,000385: 07,3162 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
057306,000386: 07,3163 41323 CS IMODES30 # ISS WARNING.
057307,000387: 07,3164 75001 MASK ACCFINHT
057308,000388: 07,3165 27323 ADS IMODES30
057309,000389:
057310,000390: 07,3166 74770 MASK PIPAFLBT # IF PIP FAIL ON, DO PROG ALARM AND RESET
057311,000391: 07,3167 10000 CCS A # ISS WARNING.
057312,000392: 07,3170 12626 TCF MODEEXIT
057313,000393:
057314,000394: 07,3171 05644 TC ALARM
057315,000395: 07,3172 00212 OCT 212
057316,000396:
057317,000397: 07,3173 00004 INHINT
057318,000398:
057319,000399: 07,3174 13157 TCF PIPFREE2
057320,000400:
057321,000401:
057322,000402: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
057323,000403: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
057324,000404: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
057325,000405:
057326,000406: 07,3175 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
057327,000407: 07,3176 03547 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
057328,000408:
057329,000409: 07,3177 11314 CCS LGYRO # SEE IF GYROS BUSY.
057330,000410: 07,3200 03240 TC GYROBUSY # SLEEP.
057331,000411:
057332,000412: 07,3201 34774 CAF BIT6 # ENABLE THE POWER SUPPLY.
057333,000413: 07,3202 00006 EXTEND
057334,000414: 07,3203 05014 WOR CHAN14
057335,000415:
057336,000416: 07,3204 34777 CAF FOUR
057337,000417: 07,3205 05246 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
057338,000418: 07,3206 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
057339,000419: 07,3206 03255 16063 2CADR STRTGYRO
057340,000420:
057341,000421: 07,3210 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
057342,000422: 07,3211 56003 XCH EBANK # RESTORATION ON RETURN.
057343,000423: 07,3212 56161 XCH MPAC +5
057344,000424: 07,3213 55314 TS LGYRO # RESERVES GYROS.
057345,000425: 07,3214 74350 MASK LOW8
057346,000426: 07,3215 54061 TS ITEMP1
057347,000427:
057348,000428: 07,3216 35000 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
057349,000429: 07,3217 54157 GYROAGRE TS MPAC +3
057350,000430: 07,3220 60000 DOUBLE
057351,000431: 07,3221 60061 AD ITEMP1
057352,000432: 07,3222 54160 TS MPAC +4
057353,000433: 07,3223 00006 EXTEND
057354,000434: 07,3224 50000 INDEX A
057355,000435: 07,3225 31401 DCA 1400
057356,000436: 07,3226 52155 DXCH MPAC
057357,000437: 07,3227 07224 TC DPAGREE
057358,000438: 07,3230 52155 DXCH MPAC
057359,000439: 07,3231 50160 INDEX MPAC +4
057360,000440: 07,3232 53401 DXCH 1400
057361,000441:
057362,000442: 07,3233 10157 CCS MPAC +3
057363,000443: 07,3234 13217 TCF GYROAGRE
057364,000444:
057365,000445: 07,3235 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
057366,000446: 07,3236 54003 TS EBANK
057367,000447: 07,3237 12626 TCF MODEEXIT
057368,000448:
057369,000449:
057370,000450: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
057371,000451:
057372,000452: 07,3240 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
057373,000453: 07,3241 30134 DCA BUF2
057374,000454: 07,3242 52155 DXCH MPAC
057375,000455: 07,3243 33254 REGSLEEP CAF LGWAKE
057376,000456: 07,3244 15176 TCF JOBSLEEP
057377,000457:
057378,000458: 07,3245 11314 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
057379,000459: 07,3246 13243 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
057380,000460:
057381,000461: 07,3247 00006 EXTEND
057382,000462: 07,3250 30155 DCA MPAC
057383,000463: 07,3251 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
057384,000464: 07,3252 35001 CAF ONE
057385,000465: 07,3253 13205 TCF GWAKE2
057386,000466:
057387,000467: 07,3254 17245 LGWAKE CADR GWAKE
057388,000468:
057389,000469:
057390,000470: # GYRO-TORQUING WAITLIST TASKS.
057391,000471:
057392,000472: 07,3255 43511 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
057393,000473: 07,3256 00006 EXTEND
057394,000474: 07,3257 03014 WAND CHAN14
057395,000475:
057396,000476: 07,3260 03526 TC CAGETSTG
057397,000477:
057398,000478: 07,3261 31314 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
057399,000479: 07,3262 00006 EXTEND
057400,000480: 07,3263 74776 MP BIT4
057401,000481: 07,3264 50000 INDEX A
057402,000482: 07,3265 13266 TCF +1
057403,000483: 07,3266 03303 TC GSELECT # =0. DO Y GYRO.
057404,000484: 07,3267 00202 OCT 00202
057405,000485:
057406,000486: 07,3270 03303 TC GSELECT # =1. DO Z GYRO.
057407,000487: 07,3271 00302 OCT 00302
057408,000488:
057409,000489: 07,3272 03301 TC GSELECT -2 # =2. DO X GYRO.
057410,000490: 07,3273 00100 OCT 00100
057411,000491:
057412,000492: 07,3274 35003 CAF ZERO # =3. DONE
057413,000493: 07,3275 55314 TS LGYRO
057414,000494: 07,3276 33254 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
057415,000495: 07,3277 05202 TC JOBWAKE
057416,000496:
057417,000497: 07,3300 13104 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
057418,000498:
057419,000499:
057420,000500: 07,3301 44777 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
057421,000501: 07,3302 27314 ADS LGYRO
057422,000502:
057423,000503: 07,3303 50002 GSELECT INDEX Q # SELECT GYRO.
057424,000504: 07,3304 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
057425,000505: 07,3305 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
057426,000506: 07,3306 75005 MASK SEVEN
057427,000507: 07,3307 64765 AD BIT13
057428,000508: 07,3310 27314 ADS LGYRO
057429,000509: 07,3311 54003 TS EBANK
057430,000510: 07,3312 74350 MASK LOW8
057431,000511: 07,3313 54061 TS ITEMP1
057432,000512:
057433,000513: 07,3314 45005 CS SEVEN
057434,000514: 07,3315 70064 MASK ITEMP4
057435,000515: 07,3316 54064 TS ITEMP4
057436,000516:
057437,000517: 07,3317 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
057438,000518: 07,3320 50061 INDEX ITEMP1
057439,000519: 07,3321 31401 DCA 1400
057440,000520: 07,3322 52071 DXCH RUPTREG1
057441,000521:
057442,000522: 07,3323 10070 CCS RUPTREG1
057443,000523: 07,3324 13337 TCF MAJ+
057444,000524: 07,3325 13327 TCF +2
057445,000525: 07,3326 13472 TCF MAJ-
057446,000526:
057447,000527: 07,3327 10071 CCS RUPTREG2
057448,000528: 07,3330 13334 TCF MIN+
057449,000529: 07,3331 13261 TCF STRTGYR2
057450,000530: 07,3332 13467 TCF MIN-
057451,000531: 07,3333 13261 TCF STRTGYR2
057452,000532:
057453,000533:
057454,000534: 07,3334 63370 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
057455,000535: 07,3335 00006 EXTEND # 16 GYRO PULSES.
057456,000536: 07,3336 63261 BZMF STRTGYR2
057457,000537:
057458,000538: 07,3337 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
057459,000539: 07,3340 33513 DCA GYROFRAC
057460,000540: 07,3341 20071 DAS RUPTREG1
057461,000541:
057462,000542: 07,3342 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
057463,000543: 07,3343 00006 EXTEND
057464,000544: 07,3344 05014 WOR CHAN14
057465,000545:
057466,000546: 07,3345 36043 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
057467,000547: 07,3346 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
057468,000548: 07,3347 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
057469,000549: 07,3350 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
057470,000550: 07,3351 74772 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
057471,000551: 07,3352 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
057472,000552: 07,3353 30070 CA RUPTREG1
057473,000553: 07,3354 00006 EXTEND
057474,000554: 07,3355 74771 MP BIT9
057475,000555: 07,3356 54070 TS RUPTREG1
057476,000556: 07,3357 30001 CA L
057477,000557: 07,3360 00006 EXTEND
057478,000558: 07,3361 74764 MP BIT14
057479,000559: 07,3362 26062 ADS ITEMP2 # INITIAL COMMAND.
057480,000560:
057481,000561: 07,3363 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
057482,000562: 07,3364 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
057483,000563: 07,3365 67702 AD MINUS1
057484,000564: 07,3366 10000 CCS A
057485,000565: 07,3367 13434 TCF LONGGYRO
057486,000566: 07,3370 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
057487,000567: 07,3371 13375 TCF +4
057488,000568:
057489,000569: 07,3372 34764 CAF BIT14
057490,000570: 07,3373 26062 ADS ITEMP2
057491,000571: 07,3374 35003 CAF ZERO
057492,000572:
057493,000573: 07,3375 50061 +4 INDEX ITEMP1
057494,000574: 07,3376 53401 DXCH 1400
057495,000575:
057496,000576:
057497,000577: 07,3377 30062 CA ITEMP2 # ENTIRE COMMAND.
057498,000578: 07,3400 54047 LASTSEG TS GYROCMD
057499,000579: 07,3401 03521 +1 TC COARSTST
057500,000580:
057501,000581: 07,3402 30047 CA GYROCMD
057502,000582: 07,3403 00006 EXTEND
057503,000583: 07,3404 74770 MP BIT10 # WAITLIST DT
057504,000584: 07,3405 66214 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
057505,000585: 07,3406 05236 TC TWIDDLE
057506,000586: 07,3407 03420 ADRES TWOPULSE
057507,000587: 07,3410 03414 EXITGYRO TC GYROEXIT
057508,000588: 07,3411 15327 TCF TASKOVER
057509,000589: 07,3412 35000 OUTPULSE CA BIT2
057510,000590: 07,3413 54047 TS GYROCMD
057511,000591: 07,3414 34770 GYROEXIT CAF BIT10
057512,000592: 07,3415 00006 EXTEND
057513,000593: 07,3416 05014 WOR CHAN14
057514,000594: 07,3417 00002 TC Q
057515,000595: 07,3420 44771 TWOPULSE CS BIT9
057516,000596: 07,3421 00006 EXTEND
057517,000597: 07,3422 03014 WAND CHAN14
057518,000598: 07,3423 03412 TC OUTPULSE
057519,000599: 07,3424 35001 CA BIT1
057520,000600: 07,3425 05236 TC TWIDDLE
057521,000601: 07,3426 03255 ADRES STRTGYRO
057522,000602: 07,3427 34771 CA BIT9
057523,000603: 07,3430 00006 EXTEND
057524,000604: 07,3431 05014 WOR CHAN14
057525,000605: 07,3432 03412 TC OUTPULSE
057526,000606: 07,3433 15327 TCF TASKOVER
057527,000607: 07,3434 50061 LONGGYRO INDEX ITEMP1
057528,000608: 07,3435 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
057529,000609: 07,3436 34764 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
057530,000610: 07,3437 60062 AD ITEMP2
057531,000611: 07,3440 54047 TS GYROCMD
057532,000612:
057533,000613: 07,3441 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
057534,000614: 07,3442 74770 MP BIT10 # ALMOST OUT.
057535,000615: 07,3443 67700 AD NEG3
057536,000616: 07,3444 05236 TC TWIDDLE
057537,000617: 07,3445 03447 ADRES 8192AUG
057538,000618: 07,3446 13410 TCF EXITGYRO
057539,000619:
057540,000620: 07,3447 03521 8192AUG TC COARSTST
057541,000621:
057542,000622: 07,3450 31314 CA LGYRO # ADD 8192 PULSES TO GYROCMD
057543,000623: 07,3451 54003 TS EBANK
057544,000624: 07,3452 74350 MASK LOW8
057545,000625: 07,3453 54061 TS ITEMP1
057546,000626: 07,3454 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
057547,000627: 07,3455 11400 CCS 1400
057548,000628: 07,3456 13462 TCF AUG2 # MORE TO COME.
057549,000629:
057550,000630: 07,3457 34764 CAF BIT14
057551,000631: 07,3460 26047 ADS GYROCMD
057552,000632: 07,3461 13401 TCF LASTSEG +1
057553,000633:
057554,000634: 07,3462 50061 AUG2 INDEX ITEMP1
057555,000635: 07,3463 55400 TS 1400
057556,000636: 07,3464 34764 CAF BIT14
057557,000637: 07,3465 26047 ADS GYROCMD
057558,000638: 07,3466 13441 TCF AUG3 # COMPUTE DT.
057559,000639:
057560,000640:
057561,000641: 07,3467 63370 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
057562,000642: 07,3470 00006 EXTEND
057563,000643: 07,3471 63261 BZMF STRTGYR2
057564,000644:
057565,000645: 07,3472 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
057566,000646: 07,3473 43513 DCS GYROFRAC
057567,000647: 07,3474 20071 DAS RUPTREG1
057568,000648:
057569,000649: 07,3475 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
057570,000650: 07,3476 64771 AD BIT9
057571,000651: 07,3477 00006 EXTEND
057572,000652: 07,3500 05014 WOR CHAN14
057573,000653:
057574,000654: 07,3501 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
057575,000655: 07,3502 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
057576,000656: 07,3503 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
057577,000657: 07,3504 76043 MASK LOW7 # THE SIGN OF THE COMMAND.
057578,000658: 07,3505 40000 COM
057579,000659: 07,3506 56071 XCH RUPTREG2
057580,000660: 07,3507 40000 COM
057581,000661: 07,3510 13350 TCF GMERGE
057582,000662:
057583,000663: 07,3511 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
057584,000664:
057585,000665: 07,3512 00000 00034 GYROFRAC 2DEC .215 B-21
057586,000666:
057587,000667:
057588,000668: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
057589,000669:
057590,000670: 07,3514 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
057591,000671: 07,3515 00011 READ DSALMOUT # ISS WARNING IS ON.
057592,000672: 07,3516 75001 MASK BIT1
057593,000673: 07,3517 67702 AD NEG1
057594,000674: 07,3520 13557 TCF BADEND +1
057595,000675: 07,3521 34776 COARSTST CAF BIT4
057596,000676: 07,3522 00006 EXTEND
057597,000677: 07,3523 02012 RAND CHAN12
057598,000678: 07,3524 10000 CCS A
057599,000679: 07,3525 13532 TCF DONTPULS
057600,000680:
057601,000681: 07,3526 41323 CAGETSTG CS IMODES30
057602,000682: 07,3527 74774 MASK IMUNITBT
057603,000683: 07,3530 10000 CCS A
057604,000684: 07,3531 00002 TC Q
057605,000685:
057606,000686: 07,3532 35003 DONTPULS CAF ZERO
057607,000687: 07,3533 55314 TS LGYRO
057608,000688:
057609,000689: 07,3534 33254 CAF LGWAKE
057610,000690: 07,3535 05202 TC JOBWAKE
057611,000691:
057612,000692: 07,3536 13556 TCF IMUBAD
057613,000693: 07,3537 34774 CAGETEST CAF IMUNITBT # SUBROUTINE TO TERMINATE IMU MODE
057614,000694: 07,3540 71323 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
057615,000695: 07,3541 10000 CCS A
057616,000696: 07,3542 13556 TCF IMUBAD # DIRECTLY.
057617,000697: 07,3543 00002 TC Q # WITH C(A) = +0.
057618,000698:
057619,000699: 07,3544 41323 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
057620,000700: 07,3545 74774 MASK IMUNITBT
057621,000701: 07,3546 15624 TCF INCRQCK
057622,000702: 07,3547 41323 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
057623,000703: 07,3550 74774 MASK IMUNITBT # IT IS FOUND THAT THE IMU IS BEING CAGED,
057624,000704: 07,3551 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
057625,000705: 07,3552 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
057626,000706:
057627,000707: 07,3553 45003 +4 CS ZERO # TO SWRETURN
057628,000708: 07,3554 55325 TS IMUCADR
057629,000709: 07,3555 12626 TCF MODEEXIT
057630,000710:
057631,000711: 07,3556 07,3556 IMUBAD EQUALS BADEND
057632,000712:
057633,000713:
057634,000714: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
057635,000715: # OR AT BADEND FOR AN UNSUCCESSFUL ONE.
057636,000716:
057637,000717: 07,3556 45003 BADEND CS ZERO # FOR FAILURE.
057638,000718: 07,3557 54072 +1 TS RUPTREG3 # -0 FAILURE -1 SUCCESS
057639,000719: 07,3560 11325 CCS MODECADR
057640,000720: 07,3561 13563 TCF +2 # YES - WAKE IT UP.
057641,000721: 07,3562 13572 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
057642,000722:
057643,000723: 07,3563 35003 CAF ZERO # WAKE SLEEPING PROGRAM.
057644,000724: 07,3564 57325 XCH MODECADR
057645,000725: 07,3565 05202 TC JOBWAKE
057646,000726:
057647,000727: 07,3566 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
057648,000728: 07,3567 50064 INDEX LOCCTR
057649,000729: 07,3570 26164 ADS LOC
057650,000730:
057651,000731: 07,3571 15327 TCF TASKOVER
057652,000732:
057653,000733: 07,3572 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
057654,000734: 07,3573 55325 TS MODECADR # SUCCESSFUL.
057655,000735: 07,3574 15327 TCF TASKOVER
057656,000736:
057657,000737:
057658,000738: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
057659,000739:
057660,000740: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
057661,000741: # LOG SECTION IMU MODE SWITCHING
057662,000742: # MOD BY- R.MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
057663,000743:
057664,000744: # FUNCTIONAL DESCRIPTION-
057665,000745: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
057666,000746: # I/O FUNCTION IS COMPLETE. THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
057667,000747: # MODECADR ARE MADE AND ACTED UPON.
057668,000748: # 1) +0 INDICATES INCOMPLETE I/O OPERATION. CALLING ROUTINE IS PUT TO
057669,000749: # SLEEP.
057670,000750: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
057671,000751: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
057672,000752: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
057673,000753: # AND RETURNS TO CALLING ROUTINE AT L+2.
057674,000754: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
057675,000755: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
057676,000756: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
057677,000757:
057678,000758: # CALLING SEQUENCE-
057679,000759: # L TC BANKCALL
057680,000760: # L+1 CADR IMUSTALL
057681,000761:
057682,000762: # NORMAL-EXIT MODE-
057683,000763: # TCF JOBSLEEP OR TCF MODEXIT
057684,000764:
057685,000765: # ALARM OR ABORT EXIT MODE-
057686,000766: # POODOO 21210
057687,000767:
057688,000768: # OUTPUT-
057689,000769: # MODECADR= CADR IF JOBSLEEP
057690,000770: # MODECADR=+0 IF I/O COMPLETE
057691,000771: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
057692,000772: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
057693,000773:
057694,000774: # ERASABLE INITIALIZATION-
057695,000775: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
057696,000776: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
057697,000777: # MODECADR CONTAINS +0, -1, -0 OR CADR RETURN ADDRESS.
057698,000778:
057699,000779:
057700,000780: 07,3575 11325 IMUSTALL CCS MODECADR
057701,000781: 07,3576 13612 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
057702,000782: 07,3577 13607 TCF MODESLP # OPERATION INCOMPLETE.
057703,000783: 07,3600 13603 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
057704,000784:
057705,000785: 07,3601 55325 MG2 TS MODECADR # COMPLETE AND FAILED IF -0. RESET TO +0.
057706,000786: 07,3602 12626 TCF MODEEXIT # RETURN TO CALLER.
057707,000787: 07,3603 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
057708,000788: 07,3604 13612 TCF MODABORT
057709,000789:
057710,000790: 07,3605 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
057711,000791: 07,3606 13601 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
057712,000792:
057713,000793: 07,3607 04676 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
057714,000794: 07,3610 55325 TS MODECADR
057715,000795: 07,3611 15176 TCF JOBSLEEP
057716,000796:
057717,000797: 07,3612 05701 MODABORT TC POODOO # TWO PROGRAMS USING SAME DEVICE.
057718,000798: 07,3613 21210 OCT 21210
057719,000799:
057720,000800:
057721,000801: # CONSTANTS FOR MODE SWITCHING ROUTINES
057722,000802:
057723,000803: 07,3614 5750 BITS3&4 = OCT14
057724,000804: 07,3614 5016 BITS4&6 = OCT50
057725,000805: 07,3614 5012 BITS4-5 EQUALS BITS4&5
057726,000806: 07,3614 4772 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
057727,000807: 07,3614 77500 -COMMAX DEC -191 B-14
057728,000808: 07,3615 77477 -COMMAX- DEC -192 B-14
057729,000809: 07,3616 00074 600MS DEC 60 B-14
057730,000810: 07,3617 07,3064 IMUFIN20 = IMUFINE
057731,000811:
057732,000812:
057733,000813: # PROGRAM DESCRIPTION
057734,000814: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
057735,000815: # MOD NO - 1
057736,000816: # MOD BY - N.BRODEUR
057737,000817:
057738,000818: # FUNCTIONAL DESCRIPTION
057739,000819: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
057740,000820: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
057741,000821: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
057742,000822: # CMC. CALLED THROUGH BANKCALL
057743,000823:
057744,000824: # CALLING SEQUENCE-
057745,000825: # L TC BANKCALL
057746,000826: # L+1 CADR R02BOTH
057747,000827:
057748,000828: # SUBROUTINES CALLED
057749,000829: # VARALARM
057750,000830: # FLAGUP
057751,000831:
057752,000832: # NORMAL EXIT MODES
057753,000833: # AT L+2 OF CALLING SEQUENCE
057754,000834:
057755,000835: # ALARM OR ABORT EXIT MODES
057756,000836: # GOTOPOOH, WITH ALARM
057757,000837:
057758,000838: # ERASABLE INITIALIZATION REQUIRED
057759,000839: # NONE
057760,000840:
057761,000841: # DEBRIS
057762,000842: # CENTRALS - A,Q,L
057763,000843:
057764,000844: 01,2000 SETLOC R02
057765,000845: 01,2000 BANK
057766,000846: 01,3737 COUNT* $$/R02
057767,000847: 01,3737 34765 R02BOTH CAF REFSMBIT
057768,000848: 01,3740 70077 MASK FLAGWRD3
057769,000849: 01,3741 10000 CCS A
057770,000850: 01,3742 03753 TC R02ZERO # ZERO IMUS
057771,000851:
057772,000852: 01,3743 31323 CA IMODES30
057773,000853: 01,3744 74771 MASK IMUOPBIT # IS ISS INITIALIZED
057774,000854: 01,3745 00006 EXTEND
057775,000855: 01,3746 13750 BZF +2
057776,000856: 01,3747 44776 CS BIT4 # SEND IMU ALARM CODE 210
057777,000857: 01,3750 63756 AD OCT220 # SEND REFSMM ALARM
057778,000858: 01,3751 05743 TC VARALARM
057779,000859:
057780,000860: 01,3752 04103 TC GOTOPOOH
057781,000861: 01,3753 07710 R02ZERO TC UPFLAG
057782,000862: 01,3754 00007 ADRES IMUSE
057783,000863: 01,3755 14662 TCF SWRETURN
057784,000864: 01,3756 00220 OCT220 OCT 220
057785,000865:
057786,000866:
057787,000867: # PROGRAM DESCRIPTION P06 10FEB67
057788,000868:
057789,000869: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
057790,000870:
057791,000871: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
057792,000872: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
057793,000873: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
057794,000874:
057795,000875: # CALLING SEQUENCE:
057796,000876: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
057797,000877:
057798,000878: # SUBROUTINES CALLED:
057799,000879: # GOPERF1
057800,000880: # BANKCALL
057801,000881: # FLAGDOWN
057802,000882:
057803,000883: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
057804,000884: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
057805,000885: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
057806,000886:
057807,000887: 26,2000 SETLOC P05P06
057808,000888: 26,2000 BANK
057809,000889:
057810,000890: 26,3320 1001 EBANK= TIME2SAV
057811,000891: 26,3320 COUNT* $$/P06
057812,000892:
057813,000893: 26,3320 07710 P06 TC UPFLAG # SET NODOV37 BIT
057814,000894: 26,3321 00054 ADRES NODOFLAG
057815,000895:
057816,000896: 26,3322 00004 PRESTAND INHINT
057817,000897: 26,3323 00006 EXTEND
057818,000898: 26,3324 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
057819,000899: 26,3325 53002 DXCH TIME2SAV
057820,000900: 26,3326 03361 TC SCALPREP
057821,000901: 26,3327 03322 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
057822,000902: 26,3330 52155 DXCH MPAC # T1,T2 AND SCALER OK
057823,000903: 26,3331 53004 DXCH SCALSAVE # STORE SCALER
057824,000904: 26,3332 00004 INHINT
057825,000905: 26,3333 04647 TC BANKCALL
057826,000906: 26,3334 17052 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
057827,000907:
057828,000908: 26,3335 07722 TC DOWNFLAG
057829,000909: 26,3336 00007 ADRES IMUSE # IMUSE DOWN
057830,000910: 26,3337 07722 TC DOWNFLAG
057831,000911: 26,3340 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
057832,000912:
057833,000913: 26,3341 07722 TC DOWNFLAG
057834,000914: 26,3342 00176 ADRES UTFLAG
057835,000915: 26,3343 34767 CAF BIT11
057836,000916: 26,3344 00006 EXTEND
057837,000917: 26,3345 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
057838,000918:
057839,000919: 26,3346 05415 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
057840,000920: 26,3347 07024 OCT 07024 # RECOVERS
057841,000921: 26,3350 20000 OCT 20000
057842,000922: 26,3351 1003 EBANK= SCALSAVE
057843,000923: 26,3351 03401 54062 2CADR POSTAND
057844,000924:
057845,000925: 26,3353 35023 CAF OCT62
057846,000926: 26,3354 04647 TC BANKCALL
057847,000927: 26,3355 20747 CADR GOPERF1
057848,000928: 26,3356 13353 TCF -3
057849,000929: 26,3357 13353 TCF -4
057850,000930: 26,3360 13353 TCF -5
057851,000931:
057852,000932: 26,3361 5023 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
057853,000933:
057854,000934: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
057855,000935: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
057856,000936: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
057857,000937: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
057858,000938: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
057859,000939: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
057860,000940: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
057861,000941: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
057862,000942: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
057863,000943: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
057864,000944:
057865,000945: 26,3361 00006 SCALPREP EXTEND
057866,000946: 26,3362 22156 QXCH MPAC +2
057867,000947: 26,3363 04530 TC FINETIME +1
057868,000948: 26,3364 00003 RELINT
057869,000949: 26,3365 52155 DXCH MPAC
057870,000950: 26,3366 34775 CA BIT5 # ADD 5 MS TO THE SCALER READING.
057871,000951: 26,3367 54001 TS L
057872,000952: 26,3370 35003 CA ZERO
057873,000953: 26,3371 20155 DAS MPAC
057874,000954: 26,3372 44342 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
057875,000955: 26,3373 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
057876,000956: 26,3374 56155 XCH MPAC +1
057877,000957: 26,3375 74342 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
057878,000958: # INTERVAL AFTER THE T1 INCREMENT
057879,000959: # (NOW = 00000, SINCE BIT 5 ADDED).
057880,000960: 26,3376 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
057881,000961: 26,3377 24156 INCR MPAC +2 # NO
057882,000962: 26,3400 00156 TC MPAC +2 # YES
057883,000963:
057884,000964: # POSTAND RECOVERS TIME AFTER STANDBY. THE SCALER IS SNAPSHOTTED AND THE
057885,000965: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
057886,000966: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
057887,000967: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
057888,000968: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
057889,000969: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
057890,000970:
057891,000971: 26,3401 COUNT* $$/P05
057892,000972:
057893,000973: 26,3401 44767 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
057894,000974: 26,3402 00006 EXTEND
057895,000975: 26,3403 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
057896,000976: 26,3404 00004 +3 INHINT
057897,000977: 26,3405 35003 CA ZERO
057898,000978: 26,3406 54001 TS L
057899,000979: 26,3407 52025 DXCH TIME2 # CLEAR TIME1 TIME2
057900,000980: 26,3410 03361 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
057901,000981: 26,3411 03404 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
057902,000982: 26,3412 00006 EXTEND # T1,T2 AND SCALER OK
057903,000983: 26,3413 41004 DCS SCALSAVE
057904,000984: 26,3414 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
057905,000985: 26,3415 34770 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
057906,000986: 26,3416 07256 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
057907,000987: 26,3417 07224 TC DPAGREE
057908,000988: 26,3420 10154 CCS MPAC
057909,000989: 26,3421 03426 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
057910,000990: 26,3422 03426 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
057911,000991: 26,3423 03424 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
057912,000992: 26,3424 34770 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
057913,000993: 26,3425 26154 ADS MPAC
057914,000994: 26,3426 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
057915,000995: 26,3427 31002 DCA TIME2SAV # PRESTANDBY TIME1 TIME2
057916,000996: 26,3430 20155 DAS MPAC
057917,000997: 26,3431 07226 TC TPAGREE # FORCE SIGN AGREEMENT
057918,000998: 26,3432 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
057919,000999: 26,3433 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
057920,001000: 26,3434 07722 TC DOWNFLAG # CLEAR NODOFLAG
057921,001001: 26,3435 00054 ADRES NODOFLAG
057922,001002:
057923,001003: 26,3436 04103 TCGOPOOH TC GOTOPOOH
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc