Source Code
|
These source-code files are part of a reconstructed copy of LUM69 Revision 2, the
flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
056129,000002: ## Copyright: Public domain.
056130,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc
056131,000004: ## Purpose: A section of LUM69 revision 2.
056132,000005: ## It is part of the reconstructed source code for the flown
056133,000006: ## version of the flight software for the Lunar Module's (LM)
056134,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
056135,000008: ## been recreated from a copy of Luminary revsion 069, using
056136,000009: ## changes present in Luminary 099 which were described in
056137,000010: ## Luminary memos 75 and 78. The code has been adapted such
056138,000011: ## that the resulting bugger words exactly match those specified
056139,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
056140,000013: ## relatively high confidence that the reconstruction is correct.
056141,000014: ## Reference: pp. 1303-1331
056142,000015: ## Assembler: yaYUL
056143,000016: ## Contact: Ron Burkey <info@sandroid.org>.
056144,000017: ## Website: www.ibiblio.org/apollo/index.html
056145,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
056146,000019:
|
Page 1303 |
056148,000021: 5457 BLOCK 02
056149,000022: 4000 SETLOC FFTAG3
056150,000023: 4000 BANK
056151,000024:
056152,000025: 5457 E3,1471 EBANK= COMMAND
056153,000026:
056154,000027: # FIXED-FIXED ROUTINES.
056155,000028:
056156,000029: 5457 COUNT* $$/IMODE
056157,000030: 5457 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
056158,000031: 5460 54032 TS CDUX
056159,000032: 5461 54033 TS CDUY
056160,000033: 5462 54034 TS CDUZ
056161,000034: 5463 00002 TC Q
056162,000035:
056163,000036: 5464 4743 SPSCODE = BIT9
056164,000037:
|
Page 1304 |
056166,000039: # IMU ZEROING ROUTINE.
056167,000040:
056168,000041: 11,3752 BANK 11
056169,000042: 07,2000 SETLOC MODESW
056170,000043: 07,2000 BANK
056171,000044:
056172,000045: 07,2667 COUNT* $$/IMODE
056173,000046: 07,2667 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
056174,000047: 07,2670 41036 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND
056175,000048: 07,2671 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
056176,000049: 07,2672 10000 CCS A
056177,000050: 07,2673 12677 TCF IMUZEROA
056178,000051:
056179,000052: 07,2674 05567 TC ALARM # IF SO.
056180,000053: 07,2675 00206 OCT 00206
056181,000054:
056182,000055: 07,2676 13632 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
056183,000056:
056184,000057: 07,2677 03626 IMUZEROA TC CAGETSTJ
056185,000058: # DELETE
056186,000059: 07,2700 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056187,000060: 07,2701 74773 MASK SUPER011 # BIT5 FOR GROUND
056188,000061: 07,2702 27303 ADS IMODES33
056189,000062:
056190,000063: 07,2703 41302 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
056191,000064: 07,2704 75742 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
056192,000065: 07,2705 27302 ADS IMODES30
056193,000066:
056194,000067: 07,2706 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
056195,000068: 07,2707 00006 EXTEND # COUNTER DISABLED.
056196,000069: 07,2710 03012 WAND CHAN12
056197,000070:
056198,000071: 07,2711 03241 TC NOATTOFF # TURN OFF NO ATT LAMP.
056199,000072:
056200,000073: 07,2712 34747 CAF BIT5
056201,000074: 07,2713 00006 EXTEND
056202,000075: 07,2714 05012 WOR CHAN12
056203,000076:
056204,000077: 07,2715 05457 TC ZEROICDU
056205,000078: 07,2716 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
056206,000079: 07,2717 05203 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
056207,000080: 07,2720 E3,1474 EBANK= CDUIND
056208,000081: 07,2720 02732 16103 2CADR IMUZERO2
056209,000082:
056210,000083: 07,2722 41302 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
056211,000084: 07,2723 74743 MASK BIT9
056212,000085: 07,2724 10000 CCS A
056213,000086: 07,2725 12730 TCF MODEEXIT
|
Page 1305 |
056215,000088: 07,2726 05567 TC ALARM
056216,000089: 07,2727 00210 OCT 210
056217,000090:
056218,000091: 07,2730 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
056219,000092: 07,2731 14631 TCF SWRETURN
056220,000093:
056221,000094: 07,2732 03614 IMUZERO2 TC CAGETEST
056222,000095: 07,2733 05457 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
056223,000096:
056224,000097: 07,2734 44747 CS BIT5 # REMOVE ZERO DISCRETE.
056225,000098: 07,2735 00006 EXTEND
056226,000099: 07,2736 03012 WAND CHAN12
056227,000100:
056228,000101: 07,2737 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
056229,000102: 07,2740 05224 TC VARDELAY
056230,000103:
056231,000104: 07,2741 03614 IMUZERO3 TC CAGETEST
056232,000105: 07,2742 45742 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
056233,000106: 07,2743 71302 MASK IMODES30
056234,000107: 07,2744 55302 TS IMODES30
056235,000108:
056236,000109: 07,2745 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
056237,000110: 07,2746 71303 MASK IMODES33 # BIT5 FOR GROUND
056238,000111: 07,2747 55303 TS IMODES33
056239,000112:
056240,000113: 07,2750 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
056241,000114: 07,2751 14703 CADR SETISSW # PRESENT.
056242,000115:
056243,000116: 07,2752 13604 TCF ENDIMU
056244,000117:
|
Page 1306 |
056246,000119: # IMU COARSE ALIGN MODE.
056247,000120:
056248,000121: 07,2753 00004 IMUCOARS INHINT
056249,000122: 07,2754 03626 TC CAGETSTJ
056250,000123: 07,2755 03117 TC SETCOARS
056251,000124:
056252,000125: 07,2756 36241 CAF SIX
056253,000126: 07,2757 05203 TC WAITLIST
056254,000127: 07,2760 E3,1474 EBANK= CDUIND
056255,000128: 07,2760 02763 16103 2CADR COARS
056256,000129:
056257,000130: 07,2762 12730 TCF MODEEXIT
056258,000131:
056259,000132: 07,2763 03614 COARS TC CAGETEST
056260,000133: 07,2764 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
056261,000134: 07,2765 00006 EXTEND
056262,000135: 07,2766 05012 WOR CHAN12
056263,000136:
056264,000137: 07,2767 34752 CAF TWO # SET CDU INDICATOR
056265,000138: 07,2770 55474 COARS1 TS CDUIND
056266,000139:
056267,000140: 07,2771 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S
056268,000141: 07,2772 30321 CA THETAD # COMPLEMENT FORM
056269,000142: 07,2773 00006 EXTEND
056270,000143: 07,2774 51474 INDEX CDUIND
056271,000144: 07,2775 20032 MSU CDUX
056272,000145: 07,2776 00006 EXTEND
056273,000146: 07,2777 74737 MP BIT13 # SHIFT RIGHT 2
056274,000147: 07,3000 56001 XCH L # ROUND
056275,000148: 07,3001 60000 DOUBLE
056276,000149: 07,3002 54061 TS ITEMP1
056277,000150: 07,3003 13005 TCF +2
056278,000151: 07,3004 26001 ADS L
056279,000152:
056280,000153: 07,3005 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
056281,000154: 07,3006 23471 LXCH COMMAND
056282,000155: 07,3007 11474 CCS CDUIND
056283,000156: 07,3010 02770 TC COARS1
056284,000157:
056285,000158: 07,3011 34752 CAF TWO # MINIMUM OF 4 MS WAIT
056286,000159: 07,3012 05224 TC VARDELAY
056287,000160:
|
Page 1307 |
056289,000162: 07,3013 03614 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED.
056290,000163: 07,3014 54061 TS ITEMP1 # SETS TO +0.
056291,000164: 07,3015 34752 CAF TWO # SET CDU INDICATOR
056292,000165: 07,3016 55474 +3 TS CDUIND
056293,000166:
056294,000167: 07,3017 51474 INDEX CDUIND
056295,000168: 07,3020 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
056296,000169: 07,3021 03025 TC COMPOS # GREATER THAN MAX ALLOWED
056297,000170: 07,3022 03034 TC NEXTCDU +1
056298,000171: 07,3023 03072 TC COMNEG
056299,000172: 07,3024 03034 TC NEXTCDU +1
056300,000173:
056301,000174: 07,3025 63720 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
056302,000175: 07,3026 00006 EXTEND # MINUS ONE
056303,000176: 07,3027 63102 BZMF COMZERO
056304,000177: 07,3030 51474 INDEX CDUIND
056305,000178: 07,3031 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
056306,000179: 07,3032 43721 CS -COMMAX- # ALLOWED
056307,000180:
056308,000181: 07,3033 24061 NEXTCDU INCR ITEMP1
056309,000182: 07,3034 64754 AD NEG0
056310,000183: 07,3035 51474 INDEX CDUIND
056311,000184: 07,3036 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
056312,000185:
056313,000186: 07,3037 11474 CCS CDUIND
056314,000187: 07,3040 03016 TC COARS2 +3
056315,000188:
056316,000189: 07,3041 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
056317,000190: 07,3042 13106 TCF SENDPULS
056318,000191:
056319,000192: 07,3043 05221 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
056320,000193: 07,3044 00226 DEC 150 B-14
056321,000194:
056322,000195: 07,3045 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
056323,000196: 07,3046 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
056324,000197: 07,3047 50000 INDEX A
056325,000198: 07,3050 30032 CA CDUX
056326,000199: 07,3051 00006 EXTEND
056327,000200: 07,3052 50061 INDEX ITEMP1
056328,000201: 07,3053 20321 MSU THETAD
056329,000202: 07,3054 10000 CCS A
056330,000203: 07,3055 13063 TCF COARSERR
056331,000204: 07,3056 13060 TCF CORSCHK2
056332,000205: 07,3057 13063 TCF COARSERR
056333,000206:
|
Page 1308 |
056335,000208: 07,3060 10061 CORSCHK2 CCS ITEMP1
056336,000209: 07,3061 13046 TCF CHKCORS
056337,000210: 07,3062 13604 TCF ENDIMU # END OF COARSE ALIGNMENT.
056338,000211:
056339,000212: 07,3063 63071 COARSERR AD COARSTOL # 2 DEGREES.
056340,000213: 07,3064 00006 EXTEND
056341,000214: 07,3065 63060 BZMF CORSCHK2
056342,000215:
056343,000216: 07,3066 05567 TC ALARM # COARSE ALIGN ERROR.
056344,000217: 07,3067 00211 OCT 211
056345,000218:
056346,000219: 07,3070 13612 TCF IMUBAD
056347,000220:
056348,000221: 07,3071 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
056349,000222:
056350,000223: 07,3072 63720 COMNEG AD -COMMAX
056351,000224: 07,3073 00006 EXTEND
056352,000225: 07,3074 63102 BZMF COMZERO
056353,000226: 07,3075 40000 COM
056354,000227: 07,3076 51474 INDEX CDUIND
056355,000228: 07,3077 55471 TS COMMAND
056356,000229: 07,3100 33721 CA -COMMAX-
056357,000230: 07,3101 03033 TC NEXTCDU
056358,000231:
056359,000232: 07,3102 34755 COMZERO CAF ZERO
056360,000233: 07,3103 51474 INDEX CDUIND
056361,000234: 07,3104 57471 XCH COMMAND
056362,000235: 07,3105 03033 TC NEXTCDU
056363,000236:
056364,000237: 07,3106 37737 SENDPULS CAF 13,14,15
056365,000238: 07,3107 00006 EXTEND
056366,000239: 07,3110 05014 WOR CHAN14
056367,000240: 07,3111 33722 CAF 600MS
056368,000241: 07,3112 13012 TCF COARS2 -1 # THEN TO VARDELAY
056369,000242:
056370,000243: 07,3113 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
056371,000244: 07,3114 00006 EXTEND
056372,000245: 07,3115 05012 WOR CHAN12
056373,000246: 07,3116 05261 TC TASKOVER
056374,000247:
|
Page 1309 |
056376,000249: 07,3117 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
056377,000250: 07,3120 00006 EXTEND
056378,000251: 07,3121 02012 RAND CHAN12
056379,000252: 07,3122 10000 CCS A
056380,000253: 07,3123 00002 TC Q
056381,000254:
056382,000255: 07,3124 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS
056383,000256: 07,3125 00006 EXTEND
056384,000257: 07,3126 03012 WAND CHAN12
056385,000258:
056386,000259: 07,3127 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
056387,000260: 07,3130 00006 EXTEND
056388,000261: 07,3131 03014 WAND CHAN14
056389,000262: 07,3132 44755 CS ZERO
056390,000263: 07,3133 54047 TS GYROCMD
056391,000264:
056392,000265: 07,3134 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN
056393,000266: 07,3135 00006 EXTEND
056394,000267: 07,3136 05012 WOR CHAN12
056395,000268:
056396,000269: 07,3137 41036 CS DSPTAB +11D # TURN ON NO ATT LAMP
056397,000270: 07,3140 73162 MASK OCT40010
056398,000271: 07,3141 27036 ADS DSPTAB +11D
056399,000272:
056400,000273: 07,3142 41303 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
056401,000274: 07,3143 74746 MASK BIT6
056402,000275: 07,3144 27303 ADS IMODES33
056403,000276:
056404,000277: 07,3145 41302 CS IMODES30 # DISABLE IMUFAIL
056405,000278: 07,3146 74750 MASK BIT4
056406,000279: 07,3147 27302 ADS IMODES30
056407,000280:
056408,000281: 07,3150 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG
056409,000282: 07,3151 70075 MASK FLAGWRD1
056410,000283: 07,3152 54075 TS FLAGWRD1
056411,000284:
056412,000285: 07,3153 44735 CS DRFTBIT # CLEAR DRIFT FLAG
056413,000286: 07,3154 70076 MASK FLAGWRD2
056414,000287: 07,3155 54076 TS FLAGWRD2
056415,000288:
056416,000289: 07,3156 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG
056417,000290: 07,3157 70077 MASK FLAGWRD3
056418,000291: 07,3160 54077 TS FLAGWRD3
056419,000292:
056420,000293: 07,3161 00002 TC Q
056421,000294:
056422,000295: 07,3162 40010 OCT40010 OCT 40010
056423,000296:
|
Page 1310 |
056425,000298: # IMU FINE ALIGN MODE SWITCH.
056426,000299:
056427,000300: 07,3163 00004 IMUFINE INHINT
056428,000301: 07,3164 03626 TC CAGETSTJ # SEE IF IMU BEING CAGED.
056429,000302:
056430,000303: 07,3165 43717 CS BITS4-5 # RESET ZERO AND COARSE
056431,000304: 07,3166 00006 EXTEND
056432,000305: 07,3167 03012 WAND CHAN12
056433,000306:
056434,000307: 07,3170 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
056435,000308: 07,3171 71303 MASK IMODES33
056436,000309: 07,3172 55303 TS IMODES33
056437,000310:
056438,000311: 07,3173 03241 TC NOATTOFF
056439,000312:
056440,000313: 07,3174 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
056441,000314: 07,3175 05203 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
056442,000315: 07,3176 E3,1474 EBANK= CDUIND
056443,000316: 07,3176 03207 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
056444,000317:
056445,000318: 07,3200 35000 CAF 2SECS
056446,000319: 07,3201 05203 TC WAITLIST
056447,000320: 07,3202 E3,1474 EBANK= CDUIND
056448,000321: 07,3202 03205 16103 2CADR IMUFINED
056449,000322:
056450,000323: 07,3204 12730 TCF MODEEXIT
056451,000324:
056452,000325: 07,3205 03614 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
056453,000326: 07,3206 13604 TCF ENDIMU
056454,000327:
|
Page 1311 |
056456,000329: 07,3207 03621 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED.
056457,000330: 07,3210 15261 TCF TASKOVER # IT IS.
056458,000331:
056459,000332: 07,3211 34750 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE
056460,000333: 07,3212 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
056461,000334: 07,3213 02012 RAND CHAN12
056462,000335: 07,3214 10000 CCS A
056463,000336: 07,3215 15261 TCF TASKOVER
056464,000337:
056465,000338: 07,3216 41302 CS IMODES30 # RESET IMUFAIL.
056466,000339: 07,3217 74737 MASK BIT13
056467,000340: 07,3220 27302 ADS IMODES30
056468,000341: 07,3221 44750 CS BIT4
056469,000342: 07,3222 71302 PFAILOK2 MASK IMODES30
056470,000343: 07,3223 55302 TS IMODES30
056471,000344: 07,3224 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW
056472,000345: 07,3225 14703 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED.
056473,000346: 07,3226 15261 TCF TASKOVER
056474,000347:
056475,000348: 07,3227 03621 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
056476,000349: 07,3230 15261 TCF TASKOVER
056477,000350:
056478,000351: 07,3231 41302 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
056479,000352: 07,3232 74742 MASK BIT10
056480,000353: 07,3233 27302 ADS IMODES30
056481,000354:
056482,000355: 07,3234 41303 CS IMODES33
056483,000356: 07,3235 74737 MASK BIT13
056484,000357: 07,3236 27303 ADS IMODES33
056485,000358:
056486,000359: 07,3237 44747 CS BIT5
056487,000360: 07,3240 13222 TCF PFAILOK2
056488,000361:
056489,000362: 07,3241 43162 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
056490,000363: 07,3242 71036 MASK DSPTAB +11D
056491,000364: 07,3243 64735 AD BIT15
056492,000365: 07,3244 55036 TS DSPTAB +11D
056493,000366: 07,3245 00002 TC Q
056494,000367:
|
Page 1312 |
056496,000369: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
056497,000370:
056498,000371: 07,3246 44755 PIPUSE CS ZERO
056499,000372: 07,3247 54037 TS PIPAX
056500,000373: 07,3250 54040 TS PIPAY
056501,000374: 07,3251 54041 TS PIPAZ
056502,000375:
056503,000376: 07,3252 03621 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
056504,000377: 07,3253 14631 TCF SWRETURN
056505,000378:
056506,000379: 07,3254 00004 INHINT
056507,000380: 07,3255 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
056508,000381: 07,3256 71302 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
056509,000382: 07,3257 55302 TS IMODES30
056510,000383:
056511,000384: 07,3260 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
056512,000385: 07,3261 14703 CADR SETISSW # (OR GO OFF ON PIPFREE).
056513,000386:
056514,000387: 07,3262 12730 TCF MODEEXIT
056515,000388:
056516,000389: 07,3263 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT
056517,000390: 07,3264 41302 CS IMODES30 # ISS WARNING.
056518,000391: 07,3265 74753 MASK BIT1
056519,000392: 07,3266 27302 ADS IMODES30
056520,000393:
056521,000394: 07,3267 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET
056522,000395: 07,3270 10000 CCS A # ISS WARNING.
056523,000396: 07,3271 12730 TCF MODEEXIT
056524,000397:
056525,000398: 07,3272 05567 TC ALARM
056526,000399: 07,3273 00212 OCT 212
056527,000400:
056528,000401: 07,3274 00004 INHINT
056529,000402:
056530,000403: 07,3275 13260 TCF PIPFREE2
056531,000404:
|
Page 1313 |
056533,000406: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS
056534,000407: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
056535,000408: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS.
056536,000409:
056537,000410: 07,3276 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
056538,000411:
056539,000412: 07,3276 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
056540,000413: 07,3277 03626 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED.
056541,000414:
056542,000415: 07,3300 11314 CCS LGYRO # SEE IF GYROS BUSY.
056543,000416: 07,3301 03342 TC GYROBUSY # SLEEP.
056544,000417:
056545,000418: 07,3302 54156 TS MPAC +2
056546,000419: 07,3303 34746 CAF BIT6 # ENABLE THE POWER SUPPLY.
056547,000420: 07,3304 00006 EXTEND
056548,000421: 07,3305 05014 WOR CHAN14
056549,000422:
056550,000423: 07,3306 34751 CAF FOUR
056551,000424: 07,3307 05203 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
056552,000425: 07,3310 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
056553,000426: 07,3310 03360 16103 2CADR STRTGYRO
056554,000427:
056555,000428: 07,3312 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
056556,000429: 07,3313 56003 XCH EBANK # RESTORATION ON RETURN.
056557,000430: 07,3314 56161 XCH MPAC +5
056558,000431: 07,3315 55314 TS LGYRO # RESERVES GYROS.
056559,000432: 07,3316 74357 MASK LOW8
056560,000433: 07,3317 54061 TS ITEMP1
056561,000434:
056562,000435: 07,3320 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
056563,000436: 07,3321 54157 GYROAGRE TS MPAC +3
056564,000437: 07,3322 60000 DOUBLE
056565,000438: 07,3323 60061 AD ITEMP1
056566,000439: 07,3324 54160 TS MPAC +4
056567,000440: 07,3325 00006 EXTEND
056568,000441: 07,3326 50000 INDEX A
056569,000442: 07,3327 31401 DCA 1400
056570,000443: 07,3330 52155 DXCH MPAC
056571,000444: 07,3331 07256 TC TPAGREE
056572,000445: 07,3332 52155 DXCH MPAC
056573,000446: 07,3333 50160 INDEX MPAC +4
056574,000447: 07,3334 53401 DXCH 1400
056575,000448:
056576,000449: 07,3335 10157 CCS MPAC +3
056577,000450: 07,3336 13321 TCF GYROAGRE
056578,000451:
056579,000452: 07,3337 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
056580,000453: 07,3340 54003 TS EBANK
056581,000454: 07,3341 12730 TCF MODEEXIT
056582,000455:
|
Page 1314 |
056584,000457: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME.
056585,000458:
056586,000459: 07,3342 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
056587,000460: 07,3343 30134 DCA BUF2
056588,000461: 07,3344 52155 DXCH MPAC
056589,000462: 07,3345 33357 REGSLEEP CAF LGWAKE
056590,000463: 07,3346 15133 TCF JOBSLEEP
056591,000464:
056592,000465: 07,3347 11314 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
056593,000466: 07,3350 13345 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
056594,000467:
056595,000468: 07,3351 54156 TS MPAC +2
056596,000469: 07,3352 00006 EXTEND
056597,000470: 07,3353 30155 DCA MPAC
056598,000471: 07,3354 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
056599,000472: 07,3355 34753 CAF ONE
056600,000473: 07,3356 13307 TCF GWAKE2
056601,000474:
056602,000475: 07,3357 17347 LGWAKE CADR GWAKE
056603,000476:
|
Page 1315 |
056605,000478: # GYRO-TORQUING WAITLIST TASKS.
056606,000479:
056607,000480: 07,3360 43601 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
056608,000481: 07,3361 00006 EXTEND
056609,000482: 07,3362 03014 WAND CHAN14
056610,000483:
056611,000484: 07,3363 03614 TC CAGETEST
056612,000485:
056613,000486: 07,3364 31314 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
056614,000487: 07,3365 00006 EXTEND
056615,000488: 07,3366 74750 MP BIT4
056616,000489: 07,3367 50000 INDEX A
056617,000490: 07,3370 13371 TCF +1
056618,000491: 07,3371 03406 TC GSELECT # =0. DO Y GYRO.
056619,000492: 07,3372 00202 OCT 00202
056620,000493:
056621,000494: 07,3373 03406 TC GSELECT # =1. DO Z GYRO.
056622,000495: 07,3374 00302 OCT 00302
056623,000496:
056624,000497: 07,3375 03404 TC GSELECT -2 # =2. DO X GYRO.
056625,000498: 07,3376 00100 OCT 00100
056626,000499:
056627,000500: 07,3377 34755 CAF ZERO # =3. DONE
056628,000501: 07,3400 55314 TS LGYRO
056629,000502: 07,3401 33357 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
056630,000503: 07,3402 05137 TC JOBWAKE
056631,000504:
056632,000505: 07,3403 13205 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY
|
Page 1316 |
056634,000507: 07,3404 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
056635,000508: 07,3405 27314 ADS LGYRO
056636,000509:
056637,000510: 07,3406 50002 GSELECT INDEX Q # SELECT GYRO.
056638,000511: 07,3407 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
056639,000512: 07,3410 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
056640,000513: 07,3411 74757 MASK SEVEN
056641,000514: 07,3412 64737 AD BIT13
056642,000515: 07,3413 27314 ADS LGYRO
056643,000516: 07,3414 54003 TS EBANK
056644,000517: 07,3415 74357 MASK LOW8
056645,000518: 07,3416 54061 TS ITEMP1
056646,000519:
056647,000520: 07,3417 44757 CS SEVEN
056648,000521: 07,3420 70064 MASK ITEMP4
056649,000522: 07,3421 54064 TS ITEMP4
056650,000523:
056651,000524: 07,3422 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
056652,000525: 07,3423 50061 INDEX ITEMP1
056653,000526: 07,3424 31401 DCA 1400
056654,000527: 07,3425 52071 DXCH RUPTREG1
056655,000528:
056656,000529: 07,3426 10070 CCS RUPTREG1
056657,000530: 07,3427 13442 TCF MAJ+
056658,000531: 07,3430 13432 TCF +2
056659,000532: 07,3431 13562 TCF MAJ-
056660,000533:
056661,000534: 07,3432 10071 CCS RUPTREG2
056662,000535: 07,3433 13437 TCF MIN+
056663,000536: 07,3434 13364 TCF STRTGYR2
056664,000537: 07,3435 13557 TCF MIN-
056665,000538: 07,3436 13364 TCF STRTGYR2
056666,000539:
|
Page 1317 |
056668,000541: 07,3437 63473 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
056669,000542: 07,3440 00006 EXTEND # 16 GYRO PULSES.
056670,000543: 07,3441 63364 BZMF STRTGYR2
056671,000544:
056672,000545: 07,3442 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
056673,000546: 07,3443 33603 DCA GYROFRAC
056674,000547: 07,3444 20071 DAS RUPTREG1
056675,000548:
056676,000549: 07,3445 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
056677,000550: 07,3446 00006 EXTEND
056678,000551: 07,3447 05014 WOR CHAN14
056679,000552:
056680,000553: 07,3450 36073 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
056681,000554: 07,3451 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
056682,000555: 07,3452 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
056683,000556: 07,3453 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
056684,000557: 07,3454 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
056685,000558: 07,3455 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
056686,000559: 07,3456 30070 CA RUPTREG1
056687,000560: 07,3457 00006 EXTEND
056688,000561: 07,3460 74743 MP BIT9
056689,000562: 07,3461 54070 TS RUPTREG1
056690,000563: 07,3462 30001 CA L
056691,000564: 07,3463 00006 EXTEND
056692,000565: 07,3464 74736 MP BIT14
056693,000566: 07,3465 26062 ADS ITEMP2 # INITIAL COMMAND.
056694,000567:
056695,000568: 07,3466 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
056696,000569: 07,3467 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
056697,000570: 07,3470 67746 AD MINUS1
056698,000571: 07,3471 10000 CCS A
056699,000572: 07,3472 13516 TCF LONGGYRO
056700,000573: 07,3473 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
056701,000574: 07,3474 13500 TCF +4
056702,000575:
056703,000576: 07,3475 34736 CAF BIT14
056704,000577: 07,3476 26062 ADS ITEMP2
056705,000578: 07,3477 34755 CAF ZERO
056706,000579:
056707,000580: 07,3500 50061 +4 INDEX ITEMP1
056708,000581: 07,3501 53401 DXCH 1400
|
Page 1318 |
056710,000583: 07,3502 30062 CA ITEMP2 # ENTIRE COMMAND.
056711,000584: 07,3503 54047 LASTSEG TS GYROCMD
056712,000585: 07,3504 00006 EXTEND
056713,000586: 07,3505 74742 MP BIT10 # WAITLIST DT
056714,000587: 07,3506 66244 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
056715,000588: 07,3507 05203 TC WAITLIST
056716,000589: 07,3510 E3,1474 EBANK= CDUIND
056717,000590: 07,3510 03360 16103 2CADR STRTGYRO
056718,000591:
056719,000592: 07,3512 34742 GYROEXIT CAF BIT10
056720,000593: 07,3513 00006 EXTEND
056721,000594: 07,3514 05014 WOR CHAN14
056722,000595: 07,3515 15261 TCF TASKOVER
056723,000596:
056724,000597: 07,3516 50061 LONGGYRO INDEX ITEMP1
056725,000598: 07,3517 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
056726,000599: 07,3520 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
056727,000600: 07,3521 60062 AD ITEMP2
056728,000601: 07,3522 54047 TS GYROCMD
056729,000602:
056730,000603: 07,3523 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
056731,000604: 07,3524 74742 MP BIT10 # ALMOST OUT.
056732,000605: 07,3525 67744 AD NEG3
056733,000606: 07,3526 05203 TC WAITLIST
056734,000607: 07,3527 E3,1474 EBANK= CDUIND
056735,000608: 07,3527 03532 16103 2CADR 8192AUG
056736,000609:
056737,000610: 07,3531 13512 TCF GYROEXIT
056738,000611:
056739,000612: 07,3532 03614 8192AUG TC CAGETEST
056740,000613:
056741,000614: 07,3533 34750 CAF BIT4
056742,000615: 07,3534 00006 EXTEND
056743,000616: 07,3535 02012 RAND CHAN12
056744,000617: 07,3536 10000 CCS A
056745,000618: 07,3537 13612 TCF IMUBAD
056746,000619: 07,3540 31314 CA LGYRO # ADD 8192 PULSES TO GYROCMD
056747,000620: 07,3541 54003 TS EBANK
056748,000621: 07,3542 74357 MASK LOW8
056749,000622: 07,3543 54061 TS ITEMP1
056750,000623:
056751,000624: 07,3544 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
056752,000625: 07,3545 11400 CCS 1400
056753,000626: 07,3546 13552 TCF AUG2 # MORE TO COME.
056754,000627:
056755,000628: 07,3547 34736 CAF BIT14
056756,000629: 07,3550 26047 ADS GYROCMD
056757,000630: 07,3551 13504 TCF LASTSEG +1
056758,000631:
|
Page 1319 |
056760,000633: 07,3552 50061 AUG2 INDEX ITEMP1
056761,000634: 07,3553 55400 TS 1400
056762,000635: 07,3554 34736 CAF BIT14
056763,000636: 07,3555 26047 ADS GYROCMD
056764,000637: 07,3556 13523 TCF AUG3 # COMPUTE DT.
056765,000638:
|
Page 1320 |
056767,000640: 07,3557 63473 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
056768,000641: 07,3560 00006 EXTEND
056769,000642: 07,3561 63364 BZMF STRTGYR2
056770,000643:
056771,000644: 07,3562 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
056772,000645: 07,3563 43603 DCS GYROFRAC
056773,000646: 07,3564 20071 DAS RUPTREG1
056774,000647:
056775,000648: 07,3565 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
056776,000649: 07,3566 64743 AD BIT9
056777,000650: 07,3567 00006 EXTEND
056778,000651: 07,3570 05014 WOR CHAN14
056779,000652:
056780,000653: 07,3571 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
056781,000654: 07,3572 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
056782,000655: 07,3573 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES
056783,000656: 07,3574 76073 MASK LOW7 # THE SIGN OF THE COMMAND.
056784,000657: 07,3575 40000 COM
056785,000658: 07,3576 56071 XCH RUPTREG2
056786,000659: 07,3577 40000 COM
056787,000660: 07,3600 13453 TCF GMERGE
056788,000661:
056789,000662: 07,3601 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
056790,000663:
056791,000664: 07,3602 00000 00034 GYROFRAC 2DEC .215 B-21
056792,000665:
|
Page 1321 |
056794,000667: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
056795,000668:
056796,000669: 07,3604 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF
056797,000670: 07,3605 00011 READ DSALMOUT # ISS WARNING IS ON.
056798,000671: 07,3606 74753 MASK BIT1
056799,000672: 07,3607 10000 CCS A
056800,000673: 07,3610 13612 TCF IMUBAD
056801,000674:
056802,000675: 07,3611 13640 IMUGOOD TCF GOODEND # WITH C(A) = 0.
056803,000676:
056804,000677: 07,3612 34755 IMUBAD CAF ZERO
056805,000678: 07,3613 13635 TCF BADEND
056806,000679:
056807,000680: 07,3614 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
056808,000681: 07,3615 71302 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
056809,000682: 07,3616 10000 CCS A
056810,000683: 07,3617 13612 TCF IMUBAD # DIRECTLY.
056811,000684: 07,3620 00002 TC Q # WITH C(A) = +0.
056812,000685:
056813,000686: 07,3621 41302 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
056814,000687: 07,3622 74746 MASK BIT6
056815,000688: 07,3623 10000 CCS A
056816,000689: 07,3624 24002 INCR Q
056817,000690: 07,3625 00002 TC Q
056818,000691:
056819,000692: 07,3626 41302 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION
056820,000693: 07,3627 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED,
056821,000694: 07,3630 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
056822,000695: 07,3631 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
056823,000696:
056824,000697: 07,3632 44755 CS ZERO # TO SWRETURN.
056825,000698: 07,3633 55304 TS IMUCADR
056826,000699: 07,3634 12730 TCF MODEEXIT
056827,000700:
|
Page 1322 |
056829,000702: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
056830,000703: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
056831,000704:
056832,000705: 07,3635 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
056833,000706: 07,3636 44755 CS ZERO # FOR FAILURE.
056834,000707: 07,3637 13642 TCF GOODEND +2
056835,000708:
056836,000709: 07,3640 54071 GOODEND TS RUPTREG2
056837,000710: 07,3641 44753 CS ONE # FOR SUCCESS.
056838,000711:
056839,000712: 07,3642 54072 TS RUPTREG3
056840,000713: 07,3643 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
056841,000714: 07,3644 11304 CCS MODECADR
056842,000715: 07,3645 13651 TCF +4 # YES - WAKE IT UP.
056843,000716: 07,3646 13661 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
056844,000717:
056845,000718: 07,3647 00006 EXTEND
056846,000719: 07,3650 13662 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0.
056847,000720:
056848,000721: 07,3651 34755 CAF ZERO # WAKE SLEEPING PROGRAM.
056849,000722: 07,3652 50071 INDEX RUPTREG2
056850,000723: 07,3653 57304 XCH MODECADR
056851,000724: 07,3654 05137 TC JOBWAKE
056852,000725:
056853,000726: 07,3655 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
056854,000727: 07,3656 50064 INDEX LOCCTR
056855,000728: 07,3657 26164 ADS LOC
056856,000729:
056857,000730: 07,3660 15261 TCF TASKOVER
056858,000731:
056859,000732: 07,3661 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
056860,000733: 07,3662 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
056861,000734: 07,3663 55304 TS MODECADR # SUCCESSFUL.
056862,000735: 07,3664 15261 TCF TASKOVER
056863,000736:
|
Page 1323 |
056865,000738: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
056866,000739:
056867,000740: # PROGRAM DESCRIPTION DATE- 21 FEB 1967
056868,000741: # LOG SECTION IMU MODE SWITCHING
056869,000742: # MOD BY- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
056870,000743:
056871,000744: # FUNCTIONAL DESCRIPTION-
056872,000745: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
056873,000746: # I/O FUNCTION IS COMPLETE.THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S
056874,000747: # MODECADR ARE MADE AND ACTED UPON.
056875,000748: # 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO
056876,000749: # SLEEP.
056877,000750: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
056878,000751: # CALL AND RETURNS TO CALLING ROUTINE AT L+3
056879,000752: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
056880,000753: # AND RETURNS TO CALLING ROUTINE AT L+2.
056881,000754: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
056882,000755: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
056883,000756: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
056884,000757:
056885,000758: # CALLING SEQUENCE-
056886,000759: # L TC BANKCALL
056887,000760: # L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL, OPTSTALL, RADSTALL,
056888,000761: # AOTSTALL, OR ATTSTALL)
056889,000762:
056890,000763: # NORMAL-EXIT MODE-
056891,000764: # TCF JOBSLEEP OR TCF MODEXIT
056892,000765:
056893,000766: # ALARM OR ABORT EXIT MODE-
056894,000767: # TC ABORT
056895,000768:
056896,000769: # OUTPUT-
056897,000770: # MODECADR=CADR IF JOBSLEEP
056898,000771: # MODECADR=+0 IF I/O COMPLETE
056899,000772: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
056900,000773: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
056901,000774:
056902,000775: # ERASABLE INITIALIZATION-
056903,000776: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
056904,000777: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
056905,000778: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
056906,000779:
056907,000780: # DEBRIS-
056908,000781: # RUPTREG2 AND CALLING ROUTINE MODECADR.
056909,000782:
056910,000783: 07,3665 34753 AOTSTALL CAF ONE # AOT.
056911,000784: 07,3666 03672 TC STALL
056912,000785:
056913,000786: 07,3667 34752 RADSTALL CAF TWO
056914,000787: 07,3670 13672 TCF STALL
056915,000788:
|
Page 1324 |
056917,000790: 07,3671 07,3665 OPTSTALL EQUALS AOTSTALL
056918,000791:
056919,000792: 07,3671 34755 IMUSTALL CAF ZERO # IMU.
056920,000793:
056921,000794: 07,3672 00004 STALL INHINT
056922,000795: 07,3673 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
056923,000796: 07,3674 50000 INDEX A # SEE IF OPERATION COMPLETE.
056924,000797: 07,3675 11304 CCS MODECADR
056925,000798: 07,3676 13714 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
056926,000799: 07,3677 13710 TCF MODESLP # OPERATION INCOMPLETE.
056927,000800: 07,3700 13704 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
056928,000801:
056929,000802: 07,3701 50071 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0.
056930,000803: 07,3702 55304 TS MODECADR # RETURN TO CALLER.
056931,000804: 07,3703 12730 TCF MODEEXIT
056932,000805:
056933,000806: 07,3704 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
056934,000807: 07,3705 13714 TCF MODABORT
056935,000808:
056936,000809: 07,3706 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
056937,000810: 07,3707 13701 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0.
056938,000811:
056939,000812: 07,3710 04645 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
056940,000813: 07,3711 50071 INDEX RUPTREG2
056941,000814: 07,3712 55304 TS MODECADR
056942,000815: 07,3713 15133 TCF JOBSLEEP
056943,000816:
056944,000817: 07,3714 52134 MODABORT DXCH BUF2
056945,000818: 07,3715 05710 TC BAILOUT1 # TWO PROGRAMS USING THE SAME DEVICE.
056946,000819: 07,3716 01210 OCT 1210
056947,000820:
|
Page 1325 |
056949,000822: # CONSTANTS FOR MODE SWITCHING ROUTINES
056950,000823:
056951,000824: 07,3717 5742 BITS3&4 = OCT14
056952,000825: 07,3717 4771 BITS4&6 = OCT50
056953,000826: 07,3717 00030 BITS4-5 OCT 00030
056954,000827: 07,3720 4744 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
056955,000828: 07,3720 77500 -COMMAX DEC -191 B-14
056956,000829: 07,3721 77477 -COMMAX- DEC -192 B-14
056957,000830: 07,3722 00074 600MS DEC 60 B-14
056958,000831: 07,3723 07,3163 IMUFIN20 = IMUFINE
056959,000832: 07,3723 31307 GOMANUR CA ATTCADR # IS KALCMANU FREE
056960,000833: 07,3724 00006 EXTEND
056961,000834: 07,3725 13730 BZF +3
056962,000835:
056963,000836: 07,3726 05652 TC POODOO # NO
056964,000837: 07,3727 01210 OCT 1210 # 2 TRYING TO USE SAME DEVICE
056965,000838:
056966,000839: 07,3730 00006 +3 EXTEND
056967,000840: 07,3731 30134 DCA BUF2
056968,000841: 07,3732 53310 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
056969,000842:
056970,000843: 07,3733 30006 CA BBANK
056971,000844: 07,3734 74757 MASK SEVEN
056972,000845: 07,3735 27310 ADS ATTCADR +1
056973,000846:
056974,000847: 07,3736 30167 CA PRIORITY
056975,000848: 07,3737 77724 MASK PRIO37
056976,000849: 07,3740 55311 TS ATTPRIO # SAVE USERS PRIO
056977,000850:
056978,000851: 07,3741 33745 CAF KALEBCON # SET EBANK FOR KALCMAN3
056979,000852: 07,3742 54003 TS EBANK
056980,000853: 07,3743 04635 TC POSTJUMP
056981,000854: 07,3744 44004 CADR KALCMAN3
056982,000855: 07,3745 03274 KALEBCON ECADR BCDU
056983,000856:
|
Page 1326 |
056985,000858: # PROGRAM DESCRIPTION
056986,000859: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
056987,000860: # MOD NO - 1
056988,000861: # MOD BY - N.BRODEUR
056989,000862:
056990,000863: # FUNCTIONAL DESCRIPTION
056991,000864: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
056992,000865: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
056993,000866: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
056994,000867: # CMC. CALLED THROUGH BANKCALL
056995,000868: # CALLING SEQUENCE-
056996,000869:
056997,000870: # L TC BANKCALL
056998,000871: # L+1 CADR R02BOTH
056999,000872: # SUBROUTINES CALLED
057000,000873:
057001,000874: # VARALARM
057002,000875: # FLAGUP
057003,000876:
057004,000877: # NORMAL EXIT MODES
057005,000878:
057006,000879: # AT L+2 OF CALLING SEQUENCE
057007,000880: # ALARM OR ABORT EXIT MODES
057008,000881: # GOTOPOOH, WITH ALARM
057009,000882: # ERASABLE INITIALIZATION REQUIRED
057010,000883:
057011,000884: # NONE
057012,000885: # DEBRIS
057013,000886:
057014,000887: # CENTRALS - A,Q,L
057015,000888:
057016,000889: 34,3760 BANK 34
057017,000890: 04,2000 SETLOC R02
057018,000891: 04,2000 BANK
057019,000892: 04,3174 COUNT* $$/R02
057020,000893: 04,3174 00063 DEC51 DEC 51 B-14
057021,000894: 04,3175 34737 R02BOTH CAF REFSMBIT
057022,000895: 04,3176 70077 MASK FLAGWRD3
057023,000896: 04,3177 10000 CCS A
057024,000897: 04,3200 03211 TC R02ZERO # ZERO IMUS
057025,000898:
057026,000899: 04,3201 31302 CA IMODES30
057027,000900: 04,3202 74743 MASK BIT9 # IS ISS INITIALIZED
057028,000901: 04,3203 00006 EXTEND
057029,000902: 04,3204 13206 BZF +2
057030,000903: 04,3205 44750 CS BIT4 # SEND IMU ALARM CODE 210
057031,000904: 04,3206 63214 AD OCT220 # SEND REFSMM ALARM
057032,000905: 04,3207 05735 TC VARALARM
057033,000906:
057034,000907: 04,3210 06001 TC GOTOPOOH
057035,000908:
057036,000909: 04,3211 05504 R02ZERO TC UPFLAG
|
Page 1327 |
057038,000911: 04,3212 00007 ADRES IMUSE
057039,000912: 04,3213 14631 TCF SWRETURN
057040,000913: 04,3214 00220 OCT220 OCT 220
057041,000914:
|
Page 1328 |
057043,000916: # PROGRAM DESCRIPTION P06 10 FEB 67
057044,000917:
057045,000918: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
057046,000919:
057047,000920: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
057048,000921: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
057049,000922: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
057050,000923:
057051,000924: # CALLING SEQUENCE:
057052,000925: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
057053,000926:
057054,000927: # SUBROUTINES CALLED:
057055,000928: # GOPERF1
057056,000929: # BANKCALL
057057,000930: # FLAGDOWN
057058,000931:
|
Page 1329 |
057060,000933: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2
057061,000934: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY
057062,000935: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
057063,000936:
057064,000937: 37,2000 SETLOC P05P06
057065,000938: 37,2000 BANK
057066,000939:
057067,000940: 37,3641 0314 EBANK= TIME2SAV
057068,000941: 37,3641 COUNT* $$/P06
057069,000942:
057070,000943: 37,3641 05504 P06 TC UPFLAG # SET NODOV37 BIT
057071,000944: 37,3642 00054 ADRES NODOFLAG
057072,000945:
057073,000946: 37,3643 00004 PRESTAND INHINT
057074,000947: 37,3644 00006 EXTEND
057075,000948: 37,3645 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
057076,000949: 37,3646 52315 DXCH TIME2SAV
057077,000950: 37,3647 03700 TC SCALPREP
057078,000951: 37,3650 03643 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
057079,000952: 37,3651 52155 DXCH MPAC # T1,T2 AND SCALER OK
057080,000953: 37,3652 52317 DXCH SCALSAVE # STORE SCALER
057081,000954: 37,3653 00004 INHINT
057082,000955: 37,3654 04616 TC BANKCALL
057083,000956: 37,3655 17150 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
057084,000957:
057085,000958: 37,3656 05516 TC DOWNFLAG
057086,000959: 37,3657 00007 ADRES IMUSE # IMUSE DOWN
057087,000960: 37,3660 05516 TC DOWNFLAG
057088,000961: 37,3661 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
057089,000962:
057090,000963: 37,3662 34741 CAF BIT11
057091,000964: 37,3663 00006 EXTEND
057092,000965: 37,3664 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
057093,000966:
057094,000967: 37,3665 05353 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
057095,000968: 37,3666 07024 OCT 07024 # RECOVERS
057096,000969: 37,3667 20000 OCT 20000
057097,000970: 37,3670 0316 EBANK= SCALSAVE
057098,000971: 37,3670 03720 76060 2CADR POSTAND
057099,000972:
057100,000973: 37,3672 34774 CAF OCT62
057101,000974: 37,3673 04616 TC BANKCALL
057102,000975: 37,3674 20476 CADR GOPERF1
057103,000976: 37,3675 13672 TCF -3
057104,000977: 37,3676 13672 TCF -4
057105,000978: 37,3677 13672 TCF -5
057106,000979:
057107,000980: 37,3700 4774 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
057108,000981:
057109,000982: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
|
Page 1330 |
057111,000984: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
057112,000985: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
057113,000986: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
057114,000987: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
057115,000988: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
057116,000989: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
057117,000990: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
057118,000991: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
057119,000992: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
057120,000993:
057121,000994: 37,3700 00006 SCALPREP EXTEND
057122,000995: 37,3701 22156 QXCH MPAC +2
057123,000996: 37,3702 04103 TC FINETIME +1
057124,000997: 37,3703 00003 RELINT
057125,000998: 37,3704 52155 DXCH MPAC
057126,000999: 37,3705 34747 CA BIT5 # ADD 5 MS TO THE SCALER READING.
057127,001000: 37,3706 54001 TS L
057128,001001: 37,3707 34755 CA ZERO
057129,001002: 37,3710 20155 DAS MPAC
057130,001003: 37,3711 44346 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
057131,001004: 37,3712 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
057132,001005: 37,3713 56155 XCH MPAC +1
057133,001006: 37,3714 74346 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
057134,001007: # INTERVAL AFTER THE T1 INCREMENT
057135,001008: # (NOW = 00000, SINCE BIT 5 ADDED).
057136,001009: 37,3715 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
057137,001010: 37,3716 24156 INCR MPAC +2 # NO
057138,001011: 37,3717 00156 TC MPAC +2 # YES
057139,001012:
057140,001013: # POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE
057141,001014: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
057142,001015: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE
057143,001016: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
057144,001017: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
057145,001018: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
057146,001019:
057147,001020: 37,3720 COUNT* $$/P05
057148,001021:
057149,001022: 37,3720 44741 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY.
057150,001023: 37,3721 00006 EXTEND
057151,001024: 37,3722 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
057152,001025: 37,3723 00004 INHINT
057153,001026: 37,3724 34755 CA ZERO
057154,001027: 37,3725 54001 TS L
057155,001028: 37,3726 52025 DXCH TIME2 # CLEAR TIME1TIME2
057156,001029: 37,3727 03700 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
057157,001030: 37,3730 03723 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
057158,001031: 37,3731 00006 EXTEND # T1,T2 AND SCALER OK
057159,001032: 37,3732 40317 DCS SCALSAVE
057160,001033: 37,3733 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
|
Page 1331 |
057162,001035: 37,3734 34742 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT
057163,001036: 37,3735 07306 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
057164,001037: 37,3736 34755 CAF ZERO
057165,001038: 37,3737 54156 TS MPAC +2 # NEEDED FOR TP AGREE
057166,001039: 37,3740 07256 TC TPAGREE # MAKE DP DIFF AGREE
057167,001040: 37,3741 10154 CCS MPAC
057168,001041: 37,3742 03747 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
057169,001042: 37,3743 03747 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
057170,001043: 37,3744 03745 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
057171,001044: 37,3745 34742 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
057172,001045: 37,3746 26154 ADS MPAC
057173,001046: 37,3747 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
057174,001047: 37,3750 30315 DCA TIME2SAV # PRESTANDBY TIME1TIME2
057175,001048: 37,3751 20155 DAS MPAC
057176,001049: 37,3752 07256 TC TPAGREE # FORCE SIGN AGREEMENT
057177,001050: 37,3753 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
057178,001051: 37,3754 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
057179,001052: 37,3755 05516 TC DOWNFLAG # CLEAR NODOFLAG
057180,001053: 37,3756 00054 ADRES NODOFLAG
057181,001054:
057182,001055: 37,3757 06001 TC GOTOPOOH
057183,001056:
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc