Source Code
060145,000001: # Copyright: Public domain.
060146,000002: # Filename: IMU_MODE_SWITCHING_ROUTINES.agc
060147,000003: # Purpose: Part of the source code for Colossus, build 249.
060148,000004: # It is part of the source code for the Command Module's (CM)
060149,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9.
060150,000006: # Assembler: yaYUL
060151,000007: # Reference: Starts on p. 1410 of 1701.pdf.
060152,000008: # Contact: Ron Burkey <info@sandroid.org>.
060153,000009: # Website: www.ibiblio.org/apollo.
060154,000010: # Mod history: 08/30/04 RSB Adapted from corresponding Luminary131 file.
060155,000011: # 2010-10-24 JL Indentation fixes.
060156,000012: # 2010-10-24 JL Fixed page number.
060157,000013: # 2011-05-07 JL Removed workaround.
060158,000014:
060159,000015: # The contents of the "Colossus249" files, in general, are transcribed
060160,000016: # from a scanned document obtained from MIT's website,
060161,000017: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this
060162,000018: # document read, in part:
060163,000019:
060164,000020: # Assemble revision 249 of AGC program Colossus by NASA
060165,000021: # 2021111-041. October 28, 1968.
060166,000022:
060167,000023: # This AGC program shall also be referred to as
060168,000024: # Colossus 1A
060169,000025:
060170,000026: # Prepared by
060171,000027: # Massachusetts Institute of Technology
060172,000028: # 75 Cambridge Parkway
060173,000029: # Cambridge, Massachusetts
060174,000030: # under NASA contract NAS 9-4065.
060175,000031:
060176,000032: # Refer directly to the online document mentioned above for further information.
060177,000033: # Please report any errors (relative to 1701.pdf) to info@sandroid.org.
060178,000034:
060179,000035: # In some cases, where the source code for Luminary 131 overlaps that of
060180,000036: # Colossus 249, this code is instead copied from the corresponding Luminary 131
060181,000037: # source file, and then is proofed to incorporate any changes.
060182,000038:
060183,000039: # Page 1410
060184,000040: 5410 BLOCK 02
060185,000041: 4000 SETLOC FFTAG3
060186,000042: 4000 BANK
060187,000043:
060188,000044: 5410 E3,1471 EBANK= COMMAND
060189,000045:
060190,000046: # FIXED-FIXED ROUTINES
060191,000047:
060192,000048: 5410 COUNT 02/IMODE
060193,000049:
060194,000050: 5410 34714 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS.
060195,000051: 5411 54032 TS CDUX
060196,000052: 5412 54033 TS CDUY
060197,000053: 5413 54034 TS CDUZ
060198,000054: 5414 00002 TC Q
060199,000055:
060200,000056: 5415 4702 SPSCODE = BIT9
060201,000057:
060202,000058: # Page 1411
060203,000059: # IMU ZEROING ROUTINES
060204,000060:
060205,000061: 11,3721 BANK 11
060206,000062: 07,2000 SETLOC MODESW
060207,000063: 07,2000 BANK
060208,000064:
060209,000065: 07,2516 COUNT 07/IMODE
060210,000066:
060211,000067: 07,2516 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS.
060212,000068: 07,2517 41036 CS DSPTAB +11D # DON'T ZERO CDUS IS IMU IN GIMBAL LOCK AND
060213,000069: 07,2520 74726 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION)
060214,000070: 07,2521 10000 CCS A
060215,000071: 07,2522 12526 TCF IMUZEROA
060216,000072:
060217,000073: 07,2523 05537 TC ALARM # IF SO.
060218,000074: 07,2524 00206 OCT 00206
060219,000075:
060220,000076: 07,2525 13461 TCF CAGETSTJ +4 # IMMEDIATE FAILURE.
060221,000077:
060222,000078: 07,2526 03455 IMUZEROA TC CAGETSTJ
060223,000079:
060224,000080: # DO ALL THE WORK.
060225,000081:
060226,000082: 07,2527 41321 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
060227,000083: 07,2530 74730 MASK SUPER011 # BIT5 FOR GROUND
060228,000084: 07,2531 27321 ADS IMODES33
060229,000085:
060230,000086: 07,2532 41320 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE
060231,000087: 07,2533 75656 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN).
060232,000088: 07,2534 27320 ADS IMODES30
060233,000089:
060234,000090: 07,2535 44726 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR
060235,000091: 07,2536 00006 EXTEND # COUNTER DISABLED.
060236,000092: 07,2537 03012 WAND CHAN12
060237,000093:
060238,000094: 07,2540 03070 TC NOATTOFF # TURN OFF NO ATT LAMP.
060239,000095:
060240,000096: 07,2541 34706 CAF BIT5
060241,000097: 07,2542 00006 EXTEND
060242,000098: 07,2543 05012 WOR CHAN12
060243,000099:
060244,000100: 07,2544 05410 TC ZEROICDU
060245,000101: 07,2545 34705 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO
060246,000102: 07,2546 05140 TC WAITLIST # RECEIVE ITS PULSE TRAIN.
060247,000103: 07,2547 E3,1474 EBANK= CDUIND
060248,000104: 07,2547 02561 16103 2CADR IMUZERO2
060249,000105:
060250,000106: 07,2551 41320 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT.
060251,000107: 07,2552 74702 MASK BIT9
060252,000108: 07,2553 10000 CCS A
060253,000109: 07,2554 12557 TCF MODEEXIT
060254,000110: # Page 1412
060255,000111: 07,2555 05537 TC ALARM
060256,000112: 07,2556 00210 OCT 210
060257,000113:
060258,000114: 07,2557 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT.
060259,000115: 07,2560 14570 TCF SWRETURN
060260,000116:
060261,000117: 07,2561 03443 IMUZERO2 TC CAGETEST
060262,000118: 07,2562 05410 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ
060263,000119:
060264,000120: 07,2563 44706 CS BIT5 # REMOVE ZERO DISCRETE.
060265,000121: 07,2564 00006 EXTEND
060266,000122: 07,2565 03012 WAND CHAN12
060267,000123:
060268,000124: 07,2566 34700 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS
060269,000125: 07,2567 05161 TC VARDELAY
060270,000126:
060271,000127: 07,2570 03443 IMUZERO3 TC CAGETEST
060272,000128: 07,2571 45656 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT.
060273,000129: 07,2572 71320 MASK IMODES30
060274,000130: 07,2573 55320 TS IMODES30
060275,000131:
060276,000132: 07,2574 44730 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES
060277,000133: 07,2575 71321 MASK IMODES33 # BIT5 FOR GROUND
060278,000134: 07,2576 55321 TS IMODES33
060279,000135:
060280,000136: 07,2577 04633 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE
060281,000137: 07,2600 14665 CADR SETISSW # PRESENT.
060282,000138:
060283,000139: 07,2601 13433 TCF ENDIMU
060284,000140:
060285,000141: # Page 1413
060286,000142: # IMU COARSE ALIGN MODE.
060287,000143:
060288,000144: 07,2602 00004 IMUCOARS INHINT
060289,000145: 07,2603 03455 TC CAGETSTJ
060290,000146: 07,2604 02746 TC SETCOARS
060291,000147:
060292,000148: 07,2605 36211 CAF SIX
060293,000149: 07,2606 05140 TC WAITLIST
060294,000150: 07,2607 E3,1474 EBANK= CDUIND
060295,000151: 07,2607 02612 16103 2CADR COARS
060296,000152:
060297,000153: 07,2611 12557 TCF MODEEXIT
060298,000154:
060299,000155: 07,2612 03443 COARS TC CAGETEST
060300,000156: 07,2613 34705 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
060301,000157: 07,2614 00006 EXTEND
060302,000158: 07,2615 05012 WOR CHAN12
060303,000159:
060304,000160: 07,2616 34711 CAF TWO # SET CDU INDICATOR
060305,000161: 07,2617 55474 COARS1 TS CDUIND
060306,000162:
060307,000163: 07,2620 51474 INDEX CDUIND # COMPUTE THETAD -- THETAA IN 1'S
060308,000164: 07,2621 31155 CA THETAD # COMPLEMENT FORM
060309,000165: 07,2622 00006 EXTEND
060310,000166: 07,2623 51474 INDEX CDUIND
060311,000167: 07,2624 20032 MSU CDUX
060312,000168: 07,2625 00006 EXTEND
060313,000169: 07,2626 74676 MP BIT13 # SHIFT RIGHT 2
060314,000170: 07,2627 56001 XCH L # ROUND
060315,000171: 07,2630 60000 DOUBLE
060316,000172: 07,2631 54061 TS ITEMP1
060317,000173: 07,2632 12634 TCF +2
060318,000174: 07,2633 26001 ADS L
060319,000175:
060320,000176: 07,2634 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED
060321,000177: 07,2635 23471 LXCH COMMAND
060322,000178: 07,2636 11474 CCS CDUIND
060323,000179: 07,2637 02617 TC COARS1
060324,000180:
060325,000181: 07,2640 34711 CAF TWO # MINIMUM OF 4 MS WAIT
060326,000182: 07,2641 05161 TC VARDELAY
060327,000183:
060328,000184: # Page 1414
060329,000185: 07,2642 03443 COARS2 TC CAGETEST # DON'T CONTINUE IF CAGED.
060330,000186: 07,2643 54061 TS ITEMP1 # SET TO +0.
060331,000187: 07,2644 34711 CAF TWO # SET CDU INDICATOR.
060332,000188: 07,2645 55474 +3 TS CDUIND
060333,000189:
060334,000190: 07,2646 51474 INDEX CDUIND
060335,000191: 07,2647 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED
060336,000192: 07,2650 02654 TC COMPOS
060337,000193: 07,2651 02663 TC NEXTCDU +1
060338,000194: 07,2652 02721 TC COMNEG
060339,000195: 07,2653 02663 TC NEXTCDU +1
060340,000196:
060341,000197: 07,2654 63544 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED
060342,000198: 07,2655 00006 EXTEND # MINUS ONE
060343,000199: 07,2656 62731 BZMF COMZERO
060344,000200: 07,2657 51474 INDEX CDUIND
060345,000201: 07,2660 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES
060346,000202: 07,2661 43545 CS -COMMAX- # ALLOWED
060347,000203:
060348,000204: 07,2662 24061 NEXTCDU INCR ITEMP1
060349,000205: 07,2663 64713 AD NEG0
060350,000206: 07,2664 51474 INDEX CDUIND
060351,000207: 07,2665 54050 TS CDUXCMD # SET UP COMMAND REGISTER.
060352,000208:
060353,000209: 07,2666 11474 CCS CDUIND
060354,000210: 07,2667 02645 TC COARS2 +3
060355,000211:
060356,000212: 07,2670 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT.
060357,000213: 07,2671 12735 TCF SENDPULS
060358,000214:
060359,000215: 07,2672 05156 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE.
060360,000216: 07,2673 00226 DEC 150 B-14
060361,000217:
060362,000218: 07,2674 34711 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT
060363,000219: 07,2675 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD.
060364,000220: 07,2676 50000 INDEX A
060365,000221: 07,2677 30032 CA CDUX
060366,000222: 07,2700 00006 EXTEND
060367,000223: 07,2701 50061 INDEX ITEMP1
060368,000224: 07,2702 21155 MSU THETAD
060369,000225: 07,2703 10000 CCS A
060370,000226: 07,2704 12712 TCF COARSERR
060371,000227: 07,2705 12707 TCF CORSCHK2
060372,000228: 07,2706 12712 TCF COARSERR
060373,000229:
060374,000230: # Page 1415
060375,000231: 07,2707 10061 CORSCHK2 CCS ITEMP1
060376,000232: 07,2710 12675 TCF CHKCORS
060377,000233: 07,2711 13433 TCF ENDIMU # END OF COARSE ALIGNMENT
060378,000234:
060379,000235: 07,2712 62720 COARSERR AD COARSTOL # 2 DEGREES.
060380,000236: 07,2713 00006 EXTEND
060381,000237: 07,2714 62707 BZMF CORSCHK2
060382,000238:
060383,000239: 07,2715 05537 TC ALARM # COARSE ALIGN ERROR.
060384,000240: 07,2716 00211 OCT 211
060385,000241:
060386,000242: 07,2717 13441 TCF IMUBAD
060387,000243:
060388,000244: 07,2720 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS
060389,000245:
060390,000246: 07,2721 63544 COMNEG AD -COMMAX
060391,000247: 07,2722 00006 EXTEND
060392,000248: 07,2723 62731 BZMF COMZERO
060393,000249: 07,2724 40000 COM
060394,000250: 07,2725 51474 INDEX CDUIND
060395,000251: 07,2726 55471 TS COMMAND
060396,000252: 07,2727 33545 CA -COMMAX-
060397,000253: 07,2730 02662 TC NEXTCDU
060398,000254:
060399,000255: 07,2731 34714 COMZERO CAF ZERO
060400,000256: 07,2732 51474 INDEX CDUIND
060401,000257: 07,2733 57471 XCH COMMAND
060402,000258: 07,2734 02662 TC NEXTCDU
060403,000259:
060404,000260: 07,2735 37707 SENDPULS CAF 13,14,15
060405,000261: 07,2736 00006 EXTEND
060406,000262: 07,2737 05014 WOR CHAN14
060407,000263: 07,2740 33546 CAF 600MS
060408,000264: 07,2741 12641 TCF COARS2 -1 # THEN TO VARDELAY
060409,000265:
060410,000266: 07,2742 34705 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS
060411,000267: 07,2743 00006 EXTEND
060412,000268: 07,2744 05012 WOR CHAN12
060413,000269: 07,2745 05213 TC TASKOVER
060414,000270:
060415,000271: # Page 1416
060416,000272: 07,2746 34707 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN
060417,000273: 07,2747 00006 EXTEND
060418,000274: 07,2750 02012 RAND CHAN12
060419,000275: 07,2751 10000 CCS A
060420,000276: 07,2752 00002 TC Q
060421,000277:
060422,000278: 07,2753 44705 CS BIT6 # CLEAR ISS ERROR COUNTERS
060423,000279: 07,2754 00006 EXTEND
060424,000280: 07,2755 03012 WAND CHAN12
060425,000281:
060426,000282: 07,2756 44701 CS BIT10 # KNOCK DOWN GYRO ACTIVITY
060427,000283: 07,2757 00006 EXTEND
060428,000284: 07,2760 03014 WAND CHAN14
060429,000285: 07,2761 44714 CS ZERO
060430,000286: 07,2762 54047 TS GYROCMD
060431,000287:
060432,000288: 07,2763 34707 CAF BIT4 # PUT ISS IN COARSE ALIGN
060433,000289: 07,2764 00006 EXTEND
060434,000290: 07,2765 05012 WOR CHAN12
060435,000291:
060436,000292: 07,2766 41036 CS DSPTAB +11D # TURN ON NO ATT LAMP
060437,000293: 07,2767 73011 MASK OCT40010
060438,000294: 07,2770 27036 ADS DSPTAB +11D
060439,000295:
060440,000296: 07,2771 41321 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES
060441,000297: 07,2772 74705 MASK BIT6
060442,000298: 07,2773 27321 ADS IMODES33
060443,000299:
060444,000300: 07,2774 41320 CS IMODES30 # DISABLE IMUFAIL
060445,000301: 07,2775 74707 MASK BIT4
060446,000302: 07,2776 27320 ADS IMODES30
060447,000303:
060448,000304: 07,2777 44706 RNDREFDR CS BIT5 # KNOCK DOWN TRACK FLAG
060449,000305: 07,3000 70075 MASK FLAGWRD1
060450,000306: 07,3001 54075 TS FLAGWRD1
060451,000307:
060452,000308: 07,3002 44674 CS BIT15 # KNOCK DOWN DRIFT FLAG
060453,000309: 07,3003 70076 MASK FLAGWRD2
060454,000310: 07,3004 54076 TS FLAGWRD2
060455,000311:
060456,000312: 07,3005 44676 CS BIT13 # KNOCK DOWN REFSMMAT FLAG
060457,000313: 07,3006 70077 MASK FLAGWRD3
060458,000314: 07,3007 54077 TS FLAGWRD3
060459,000315:
060460,000316: 07,3010 00002 TC Q
060461,000317:
060462,000318: 07,3011 40010 OCT40010 OCT 40010
060463,000319:
060464,000320: # Page 1417
060465,000321: # IMU FINE ALIGN MODE SWITCH.
060466,000322:
060467,000323: 07,3012 00004 IMUFINE INHINT
060468,000324: 07,3013 03455 TC CAGETSTJ # SEE IF IMU BEING CAGED.
060469,000325:
060470,000326: 07,3014 43543 CS BITS4-5 # RESET ZERO AND COARSE
060471,000327: 07,3015 00006 EXTEND
060472,000328: 07,3016 03012 WAND CHAN12
060473,000329:
060474,000330: 07,3017 44705 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED
060475,000331: 07,3020 71321 MASK IMODES33
060476,000332: 07,3021 55321 TS IMODES33
060477,000333:
060478,000334: 07,3022 03070 TC NOATTOFF
060479,000335:
060480,000336: 07,3023 34701 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE
060481,000337: 07,3024 05140 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE
060482,000338: 07,3025 E3,1474 EBANK= CDUIND
060483,000339: 07,3025 03036 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN
060484,000340:
060485,000341: 07,3027 34735 CAF 2SECS
060486,000342: 07,3030 05140 TC WAITLIST
060487,000343: 07,3031 E3,1474 EBANK= CDUIND
060488,000344: 07,3031 03034 16103 2CADR IMUFINED
060489,000345:
060490,000346: 07,3033 12557 TCF MODEEXIT
060491,000347:
060492,000348: 07,3034 03443 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU.
060493,000349: 07,3035 13433 TCF ENDIMU
060494,000350:
060495,000351: # Page 1418
060496,000352: 07,3036 03450 IFAILOK TC CAGETSTQ # ENABLE IMU FAIL UNLESS IMU BEING CAGED.
060497,000353: 07,3037 15213 TCF TASKOVER # IT IS.
060498,000354:
060499,000355: 07,3040 34707 CAF BIT4 # DON'T RESET IMU FAIL INHIBIT IF SOMEONE
060500,000356: 07,3041 00006 EXTEND # HAS GONE INTO COARSE ALIGN.
060501,000357: 07,3042 02012 RAND CHAN12
060502,000358: 07,3043 10000 CCS A
060503,000359: 07,3044 15213 TCF TASKOVER
060504,000360:
060505,000361: 07,3045 41320 CS IMODES30 # RESET IMUFAIL.
060506,000362: 07,3046 74676 MASK BIT13
060507,000363: 07,3047 27320 ADS IMODES30
060508,000364: 07,3050 44707 CS BIT4
060509,000365: 07,3051 71320 PFAILOK2 MASK IMODES30
060510,000366: 07,3052 55320 TS IMODES30
060511,000367: 07,3053 04633 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOE
060512,000368: 07,3054 14665 CADR SETISSW # THAT THE INHIBIT WAS BEEN REMOVED.
060513,000369: 07,3055 15213 TCF TASKOVER
060514,000370:
060515,000371: 07,3056 03450 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM.
060516,000372: 07,3057 15213 TCF TASKOVER
060517,000373:
060518,000374: 07,3060 41320 CS IMODES30 # RESET IMU AND PIPA FAIL BITS.
060519,000375: 07,3061 74701 MASK BIT10
060520,000376: 07,3062 27320 ADS IMODES30
060521,000377:
060522,000378: 07,3063 41321 CS IMODES33
060523,000379: 07,3064 74676 MASK BIT13
060524,000380: 07,3065 27321 ADS IMODES33
060525,000381:
060526,000382: 07,3066 44706 CS BIT5
060527,000383: 07,3067 13051 TCF PFAILOK2
060528,000384:
060529,000385: 07,3070 43011 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP.
060530,000386: 07,3071 71036 MASK DSPTAB +11D
060531,000387: 07,3072 64674 AD BIT15
060532,000388: 07,3073 55036 TS DSPTAB +11D
060533,000389: 07,3074 00002 TC Q
060534,000390:
060535,000391: # Page 1419
060536,000392: # ROUTINES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE.
060537,000393:
060538,000394: 07,3075 44714 PIPUSE CS ZERO
060539,000395: 07,3076 54037 TS PIPAX
060540,000396: 07,3077 54040 TS PIPAY
060541,000397: 07,3100 54041 TS PIPAZ
060542,000398:
060543,000399: 07,3101 03450 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED
060544,000400: 07,3102 14570 TCF SWRETURN
060545,000401:
060546,000402: 07,3103 00004 INHINT
060547,000403: 07,3104 44712 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL
060548,000404: 07,3105 71320 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING.
060549,000405: 07,3106 55320 TS IMODES30
060550,000406:
060551,000407: 07,3107 04633 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW.
060552,000408: 07,3110 14665 CADR SETISSW # (OR GO OFF ON PIPFREE).
060553,000409:
060554,000410: 07,3111 12557 TCF MODEEXIT
060555,000411:
060556,000412: 07,3112 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DON'T LIGHT
060557,000413: 07,3113 41320 CS IMODES30 # ISS WARNING.
060558,000414: 07,3114 74712 MASK BIT1
060559,000415: 07,3115 27320 ADS IMODES30
060560,000416:
060561,000417: 07,3116 74701 MASK BIT10 # IF PIP FAIL ON, DO PROG ALARM AND RESET
060562,000418: 07,3117 10000 CCS A # ISS WARNING.
060563,000419: 07,3120 12557 TCF MODEEXIT
060564,000420:
060565,000421: 07,3121 05537 TC ALARM
060566,000422: 07,3122 00212 OCT 212
060567,000423:
060568,000424: 07,3123 00004 INHINT
060569,000425:
060570,000426: 07,3124 13107 TCF PIPFREE2
060571,000427:
060572,000428: # Page 1420
060573,000429: # THE FOLLOWING ROUTINE TORQUES THE IRICS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIXE REGISTERS
060574,000430: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE
060575,000431: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT AT TEH INPUT COMMAND REGISTERS.
060576,000432:
060577,000433: 07,3125 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY.
060578,000434:
060579,000435: 07,3125 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR.
060580,000436: 07,3126 03455 TC CAGETSTJ # DON'T PROCEED IF IMU BEING CAGED.
060581,000437:
060582,000438: 07,3127 11304 CCS LGYRO # SEE IF GYROS BUSY.
060583,000439: 07,3130 03171 TC GYROBUSY # SLEEP.
060584,000440:
060585,000441: 07,3131 54156 TS MPAC +2
060586,000442: 07,3132 34705 CAF BIT6 # ENABLE THE POWER SUPPLY.
060587,000443: 07,3133 00006 EXTEND
060588,000444: 07,3134 05014 WOR CHAN14
060589,000445:
060590,000446: 07,3135 34710 CAF FOUR
060591,000447: 07,3136 05140 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER
060592,000448: 07,3137 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB).
060593,000449: 07,3137 03207 16103 2CADR STRTGYRO
060594,000450:
060595,000451: 07,3141 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR
060596,000452: 07,3142 56003 XCH EBANK # RESTORATION ON RETURN.
060597,000453: 07,3143 56161 XCH MPAC +5
060598,000454: 07,3144 55304 TS LGYRO # RESERVES GYROS.
060599,000455: 07,3145 74373 MASK LOW8
060600,000456: 07,3146 54061 TS ITEMP1
060601,000457:
060602,000458: 07,3147 34711 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS.
060603,000459: 07,3150 54157 GYROAGRE TS MPAC +3
060604,000460: 07,3151 60000 DOUBLE
060605,000461: 07,3152 60061 AD ITEMP1
060606,000462: 07,3153 54160 TS MPAC +4
060607,000463: 07,3154 00006 EXTEND
060608,000464: 07,3155 50000 INDEX A
060609,000465: 07,3156 31401 DCA 1400
060610,000466: 07,3157 52155 DXCH MPAC
060611,000467: 07,3160 07226 TC TPAGREE
060612,000468: 07,3161 52155 DXCH MPAC
060613,000469: 07,3162 50160 INDEX MPAC +4
060614,000470: 07,3163 53401 DXCH 1400
060615,000471:
060616,000472: 07,3164 10157 CCS MPAC +3
060617,000473: 07,3165 13150 TCF GYROAGRE
060618,000474:
060619,000475: 07,3166 30161 CA MPAC +5 # RESTORE CALLER'S EBANK.
060620,000476: 07,3167 54003 TS EBANK
060621,000477: 07,3170 12557 TCF MODEEXIT
060622,000478:
060623,000479: # Page 1421
060624,000480: # ROUTINES TO ALLOW TORQUING ONLY ONE JOB AT A TIME.
060625,000481:
060626,000482: 07,3171 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR.
060627,000483: 07,3172 30134 DCA BUF2
060628,000484: 07,3173 52155 DXCH MPAC
060629,000485: 07,3174 33206 REGSLEEP CAF LGWAKE
060630,000486: 07,3175 15070 TCF JOBSLEEP
060631,000487:
060632,000488: 07,3176 11304 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY.
060633,000489: 07,3177 13174 TCF REGSLEEP # IF SO, SLEEP SOME MORE.
060634,000490:
060635,000491: 07,3200 54156 TS MPAC +2
060636,000492: 07,3201 00006 EXTEND
060637,000493: 07,3202 30155 DCA MPAC
060638,000494: 07,3203 52134 DXCH BUF2 # RESTORE SWRETURN INFO.
060639,000495: 07,3204 34712 CAF ONE
060640,000496: 07,3205 13136 TCF GWAKE2
060641,000497:
060642,000498: 07,3206 17176 LGWAKE CADR GWAKE
060643,000499:
060644,000500: # Page 1422
060645,000501: # GYRO-TORQUING WAITLIST TASKS.
060646,000502:
060647,000503: 07,3207 43430 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO.
060648,000504: 07,3210 00006 EXTEND
060649,000505: 07,3211 03014 WAND CHAN14
060650,000506:
060651,000507: 07,3212 03443 TC CAGETEST
060652,000508:
060653,000509: 07,3213 31304 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14.
060654,000510: 07,3214 00006 EXTEND
060655,000511: 07,3215 74707 MP BIT4
060656,000512: 07,3216 50000 INDEX A
060657,000513: 07,3217 13220 TCF +1
060658,000514: 07,3220 03235 TC GSELECT # =0. DO Y GYRO.
060659,000515: 07,3221 00202 OCT 00202
060660,000516:
060661,000517: 07,3222 03235 TC GSELECT # =1. DO Z GYRO.
060662,000518: 07,3223 00302 OCT 00302
060663,000519:
060664,000520: 07,3224 03233 TC GSELECT -2 # =2. DO X GYRO.
060665,000521: 07,3225 00100 OCT 00100
060666,000522:
060667,000523: 07,3226 34714 CAF ZERO # =3. DONE
060668,000524: 07,3227 55304 TS LGYRO
060669,000525: 07,3230 33206 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB.
060670,000526: 07,3231 05074 TC JOBWAKE
060671,000527:
060672,000528: 07,3232 13034 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY.
060673,000529: # Page 1423
060674,000530: 07,3233 44710 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X.
060675,000531: 07,3234 27304 ADS LGYRO
060676,000532:
060677,000533: 07,3235 50002 GSELECT INDEX Q # SELECT GYRO.
060678,000534: 07,3236 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS
060679,000535: 07,3237 54064 TS ITEMP4 # AND INCREMENT TO LGYRO.
060680,000536: 07,3240 74716 MASK SEVEN
060681,000537: 07,3241 64676 AD BIT13
060682,000538: 07,3242 27304 ADS LGYRO
060683,000539: 07,3243 54003 TS EBANK
060684,000540: 07,3244 74373 MASK LOW8
060685,000541: 07,3245 54061 TS ITEMP1
060686,000542:
060687,000543: 07,3246 44716 CS SEVEN
060688,000544: 07,3247 70064 MASK ITEMP4
060689,000545: 07,3250 54064 TS ITEMP4
060690,000546:
060691,000547: 07,3251 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING.
060692,000548: 07,3252 50061 INDEX ITEMP1
060693,000549: 07,3253 31401 DCA 1400
060694,000550: 07,3254 52071 DXCH RUPTREG1
060695,000551:
060696,000552: 07,3255 10070 CCS RUPTREG1
060697,000553: 07,3256 13271 TCF MAJ+
060698,000554: 07,3257 13261 TCF +2
060699,000555: 07,3260 13411 TCF MAJ-
060700,000556:
060701,000557: 07,3261 10071 CCS RUPTREG2
060702,000558: 07,3262 13266 TCF MIN+
060703,000559: 07,3263 13213 TCF STRTGYR2
060704,000560: 07,3264 13406 TCF MIN-
060705,000561: 07,3265 13213 TCF STRTGYR2
060706,000562:
060707,000563: # Page 1424
060708,000564: 07,3266 63322 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST
060709,000565: 07,3267 00006 EXTEND # 16 GYRO PULSES.
060710,000566: 07,3270 63213 BZMF STRTGYR2
060711,000567:
060712,000568: 07,3271 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT.
060713,000569: 07,3272 33432 DCA GYROFRAC
060714,000570: 07,3273 20071 DAS RUPTREG1
060715,000571:
060716,000572: 07,3274 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO.
060717,000573: 07,3275 00006 EXTEND
060718,000574: 07,3276 05014 WOR CHAN14
060719,000575:
060720,000576: 07,3277 36043 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS
060721,000577: 07,3300 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG
060722,000578: 07,3301 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION
060723,000579: 07,3302 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE
060724,000580: 07,3303 74703 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF
060725,000581: 07,3304 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND.
060726,000582: 07,3305 30070 CA RUPTREG1
060727,000583: 07,3306 00006 EXTEND
060728,000584: 07,3307 74702 MP BIT9
060729,000585: 07,3310 54070 TS RUPTREG1
060730,000586: 07,3311 30001 CA L
060731,000587: 07,3312 00006 EXTEND
060732,000588: 07,3313 74675 MP BIT14
060733,000589: 07,3314 26062 ADS ITEMP2 # INITIAL COMMAND.
060734,000590:
060735,000591: 07,3315 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED
060736,000592: 07,3316 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES).
060737,000593: 07,3317 67716 AD MINUS1
060738,000594: 07,3320 10000 CCS A
060739,000595: 07,3321 13345 TCF LONGGYRO
060740,000596: 07,3322 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD
060741,000597: 07,3323 13327 TCF +4
060742,000598:
060743,000599: 07,3324 34675 CAF BIT14
060744,000600: 07,3325 26062 ADS ITEMP2
060745,000601: 07,3326 34714 CAF ZERO
060746,000602:
060747,000603: 07,3327 50061 +4 INDEX ITEMP1
060748,000604: 07,3330 53401 DXCH 1400
060749,000605: # Page 1425
060750,000606: 07,3331 30062 CA ITEMP2 # ENTIRE COMMAND.
060751,000607: 07,3332 54047 LASTSEG TS GYROCMD
060752,000608: 07,3333 00006 EXTEND
060753,000609: 07,3334 74701 MP BIT10 # WAITLIST DT
060754,000610: 07,3335 66214 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES.
060755,000611: 07,3336 05140 TC WAITLIST
060756,000612: 07,3337 E3,1474 EBANK= CDUIND
060757,000613: 07,3337 03207 16103 2CADR STRTGYRO
060758,000614:
060759,000615: 07,3341 34701 GYROEXIT CAF BIT10
060760,000616: 07,3342 00006 EXTEND
060761,000617: 07,3343 05014 WOR CHAN14
060762,000618: 07,3344 15213 TCF TASKOVER
060763,000619:
060764,000620: 07,3345 50061 LONGGYRO INDEX ITEMP1
060765,000621: 07,3346 53401 DXCH 1400 # INITIAL COMMAND OUT PLUS N AUGMENTS OF
060766,000622: 07,3347 34675 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192.
060767,000623: 07,3350 60062 AD ITEMP2
060768,000624: 07,3351 54047 TS GYROCMD
060769,000625:
060770,000626: 07,3352 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS
060771,000627: 07,3353 74701 MP BIT10 # ALMOST OUT.
060772,000628: 07,3354 67714 AD NEG3
060773,000629: 07,3355 05140 TC WAITLIST
060774,000630: 07,3356 E3,1474 EBANK= CDUIND
060775,000631: 07,3356 03361 16103 2CADR 8192AUG
060776,000632:
060777,000633: 07,3360 13341 TCF GYROEXIT
060778,000634:
060779,000635: 07,3361 03443 8192AUG TC CAGETEST
060780,000636:
060781,000637: 07,3362 34707 CAF BIT4
060782,000638: 07,3363 00006 EXTEND
060783,000639: 07,3364 02012 RAND CHAN12
060784,000640: 07,3365 10000 CCS A
060785,000641: 07,3366 13441 TCF IMUBAD
060786,000642: 07,3367 31304 CA LGYRO # ADD 8192 PULSES TO GYROCMD
060787,000643: 07,3370 54003 TS EBANK
060788,000644: 07,3371 74373 MASK LOW8
060789,000645: 07,3372 54061 TS ITEMP1
060790,000646:
060791,000647: 07,3373 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG.
060792,000648: 07,3374 11400 CCS 1400
060793,000649: 07,3375 13401 TCF AUG2 # MORE TO COME.
060794,000650:
060795,000651: 07,3376 34675 CAF BIT14
060796,000652: 07,3377 26047 ADS GYROCMD
060797,000653: 07,3400 13333 TCF LASTSEG +1
060798,000654:
060799,000655: # Page 1426
060800,000656: 07,3401 50061 AUG2 INDEX ITEMP1
060801,000657: 07,3402 55400 TS 1400
060802,000658: 07,3403 34675 CAF BIT14
060803,000659: 07,3404 26047 ADS GYROCMD
060804,000660: 07,3405 13352 TCF AUG3 # COMPUTE DT.
060805,000661:
060806,000662: # Page 1427
060807,000663: 07,3406 63322 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT.
060808,000664: 07,3407 00006 EXTEND
060809,000665: 07,3410 63213 BZMF STRTGYR2
060810,000666:
060811,000667: 07,3411 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT.
060812,000668: 07,3412 43432 DCS GYROFRAC
060813,000669: 07,3413 20071 DAS RUPTREG1
060814,000670:
060815,000671: 07,3414 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO.
060816,000672: 07,3415 64702 AD BIT9
060817,000673: 07,3416 00006 EXTEND
060818,000674: 07,3417 05014 WOR CHAN14
060819,000675:
060820,000676: 07,3420 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE.
060821,000677: 07,3421 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE
060822,000678: 07,3422 40071 CS RUPTREG2 # POSITIVE -- BIT9 OF CHAN 14 DETERMINES
060823,000679: 07,3423 76043 MASK LOW7 # THE SIGN OF THE COMMAND.
060824,000680: 07,3424 40000 COM
060825,000681: 07,3425 56071 XCH RUPTREG2
060826,000682: 07,3426 40000 COM
060827,000683: 07,3427 13302 TCF GMERGE
060828,000684:
060829,000685: 07,3430 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS.
060830,000686:
060831,000687: 07,3431 00000 00034 GYROFRAC 2DEC .215 B-21
060832,000688:
060833,000689: # Page 1428
060834,000690: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE.
060835,000691:
060836,000692: 07,3433 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURRED OR IF
060837,000693: 07,3434 00011 READ DSALMOUT # ISS WARNING IS ON.
060838,000694: 07,3435 74712 MASK BIT1
060839,000695: 07,3436 10000 CCS A
060840,000696: 07,3437 13441 TCF IMUBAD
060841,000697:
060842,000698: 07,3440 13467 IMUGOOD TCF GOODEND # WITH C(A) = 0.
060843,000699:
060844,000700: 07,3441 34714 IMUBAD CAF ZERO
060845,000701: 07,3442 13464 TCF BADEND
060846,000702:
060847,000703: 07,3443 34705 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE
060848,000704: 07,3444 71320 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED.
060849,000705: 07,3445 10000 CCS A
060850,000706: 07,3446 13441 TCF IMUBAD # DIRECTLY.
060851,000707: 07,3447 00002 TC Q # WITH C(A) = +0.
060852,000708:
060853,000709: 07,3450 41320 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED.
060854,000710: 07,3451 74705 MASK BIT6
060855,000711: 07,3452 10000 CCS A
060856,000712: 07,3453 24002 INCR Q
060857,000713: 07,3454 00002 TC Q
060858,000714:
060859,000715: 07,3455 41320 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION.
060860,000716: 07,3456 74705 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED.
060861,000717: 07,3457 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION
060862,000718: 07,3460 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY
060863,000719: 07,3461 44714 CS ZERO # TO SWRETURN.
060864,000720: 07,3462 55322 TS IMUCADR
060865,000721: 07,3463 12557 TCF MODEEXIT
060866,000722:
060867,000723: # Page 1429
060868,000724: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION
060869,000725: # OR AT BADEND FOR AN UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS.
060870,000726:
060871,000727: 07,3464 54071 BADEND TS RUPTREG2 # DEVICE INDEX.
060872,000728: 07,3465 44714 CS ZERO # FOR FAILURE.
060873,000729: 07,3466 13471 TCF GOODEND +2
060874,000730:
060875,000731: 07,3467 54071 GOODEND TS RUPTREG2
060876,000732: 07,3470 44712 CS ONE # FOR SUCCESS.
060877,000733:
060878,000734: 07,3471 54072 TS RUPTREG3
060879,000735: 07,3472 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP.
060880,000736: 07,3473 11322 CCS MODECADR
060881,000737: 07,3474 13476 TCF +2 # YES -- WAKE IT UP.
060882,000738: 07,3475 13506 TCF ENDMODE # IF 0, PROGRAM NOT IN YET.
060883,000739:
060884,000740: 07,3476 34714 CAF ZERO # WAKE SLEEPING PROGRAM.
060885,000741: 07,3477 50071 INDEX RUPTREG2
060886,000742: 07,3500 57322 XCH MODECADR
060887,000743: 07,3501 05074 TC JOBWAKE
060888,000744:
060889,000745: 07,3502 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL.
060890,000746: 07,3503 50064 INDEX LOCCTR
060891,000747: 07,3504 26164 ADS LOC
060892,000748:
060893,000749: 07,3505 15213 TCF TASKOVER
060894,000750:
060895,000751: 07,3506 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT
060896,000752: 07,3507 50071 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND
060897,000753: 07,3510 55322 TS MODECADR # SUCCESSFUL.
060898,000754: 07,3511 15213 TCF TASKOVER
060899,000755:
060900,000756: # Page 1430
060901,000757: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION.
060902,000758:
060903,000759: # PROGRAM DESCRIPTION DATE -- 21 FEB 1967
060904,000760: # LOG SECTION IMU MODE SWITCHING
060905,000761: # MOD BY -- R. MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82
060906,000762:
060907,000763: # FUNCTIONAL DESCRIPTION --
060908,000764: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED
060909,000765: # I/O FUNCTION IS COMPLETE. THE FOLLOWING CHECKS ON THE CALLING ROUTINES
060910,000766: # MODEECADR ARE MADE AND ACTED UPON.
060911,000767: # 1) +0 INDICATES INCOMPLETE I/O OPERATION. CALLING ROUTINE IS PUT TO
060912,000768: # SLEEP.
060913,000769: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP
060914,000770: # CALL AND RETURNS TO CALLING ROUTINE AT L+3.
060915,000771: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR
060916,000772: # AND RETURNS TO CALLING ROUTINE AT L+2.
060917,000773: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF
060918,000774: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM
060919,000775: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS.
060920,000776:
060921,000777: # CALLING SEQUENCE --
060922,000778: # L TC BANKCALL
060923,000779: # L+1 CADR (ONE OF 5 STALL ADDRESSES. I.E., IMUSTALL, OPTSTALL, RADSTALL,
060924,000780: # AOTSTALL, OR ATTSTALL)
060925,000781:
060926,000782: # NORMAL-EXIT MODE --
060927,000783: # TCF JOBSLEEP OR TCF MODEXIT
060928,000784:
060929,000785: # ALARM OR ABORT EXIT MODE --
060930,000786: # TC ABORT
060931,000787:
060932,000788: # OUTPUT --
060933,000789: # MODECADR=CADR IF JOBSLEEP
060934,000790: # MODECADR=+0 IF I/O COMPLETE
060935,000791: # BUF2=L+3 IF I/O COMPLETE AND GOOD.
060936,000792: # BUF2=L+2 IF I/O COMPLETE BUT FAILED.
060937,000793:
060938,000794: # ERASABLE INITIALIZATION --
060939,000795: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2)
060940,000796: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE.
060941,000797: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS.
060942,000798:
060943,000799: # DEBRIS --
060944,000800: # RUPTREG2 AND CALLING ROUTINE MODECADR.
060945,000801:
060946,000802: 07,3512 34712 AOTSTALL CAF ONE # AOT.
060947,000803: 07,3513 03517 TC STALL
060948,000804:
060949,000805: 07,3514 34711 RADSTALL CAF TWO
060950,000806: 07,3515 13517 TCF STALL
060951,000807:
060952,000808: # Page 1431
060953,000809: 07,3516 07,3512 OPTSTALL EQUALS AOTSTALL
060954,000810:
060955,000811: 07,3516 34714 IMUSTALL CAF ZERO # IMU.
060956,000812:
060957,000813: 07,3517 00004 STALL INHINT
060958,000814: 07,3520 54071 TS RUPTREG2 # SAVE DEVICE INDEX.
060959,000815: 07,3521 50000 INDEX A # SEE IF OPERATION COMPLETE.
060960,000816: 07,3522 11322 CCS MODECADR
060961,000817: 07,3523 13541 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0.
060962,000818: 07,3524 13535 TCF MODESLP # OPERATION INCOMPLETE.
060963,000819: 07,3525 13531 TCF MODEGOOD # COMPLETE AND GOOD IF = -1.
060964,000820:
060965,000821: 07,3526 50071 MG2 INDEX RUPTREG2 # COMPLETE FAILED IF -0. RESET TO +0.
060966,000822: 07,3527 55322 TS MODECADR # RETURN TO CALLER.
060967,000823: 07,3530 12557 TCF MODEEXIT
060968,000824:
060969,000825: 07,3531 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1.
060970,000826: 07,3532 13541 TCF MODABORT
060971,000827:
060972,000828: 07,3533 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND
060973,000829: 07,3534 13526 TCF MG2 # RETURN IMMEDIATELY, SETTIN CADR = +0.
060974,000830:
060975,000831: 07,3535 04604 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY.
060976,000832: 07,3536 50071 INDEX RUPTREG2
060977,000833: 07,3537 55322 TS MODECADR
060978,000834: 07,3540 15070 TCF JOBSLEEP
060979,000835:
060980,000836: 07,3541 05622 MODABORT TC P00DOO # TWO PROGRAMS USING THE SAME DEVICE.
060981,000837: 07,3542 01210 OCT 1210
060982,000838:
060983,000839: # Page 1432
060984,000840: # CONSTANTS FOR MODE SWITCHING ROUTINES
060985,000841:
060986,000842: 07,3543 5656 BITS3&4 = OCT14
060987,000843: 07,3543 4726 BITS4&6 = OCT50
060988,000844: 07,3543 00030 BITS4-5 OCT 00030
060989,000845: 07,3544 4703 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7.
060990,000846: 07,3544 77500 -COMMAX DEC -191 B-14
060991,000847: 07,3545 77477 -COMMAX- DEC -192 B-14
060992,000848: 07,3546 00074 600MS DEC 60 B-14
060993,000849: 07,3547 07,3012 IMUFIN20 = IMUFINE
060994,000850: 07,3547 31325 GOMANUR CA ATTCADR # IS KALCMANU FREE
060995,000851: 07,3550 00006 EXTEND
060996,000852: 07,3551 13554 BZF +3
060997,000853: 07,3552 05622 TC P00DOO # NO
060998,000854: 07,3553 01210 OCT 1210 # 2 TRYING TO USE SAME DEVICE
060999,000855:
061000,000856: 07,3554 00006 +3 EXTEND
061001,000857: 07,3555 30134 DCA BUF2
061002,000858: 07,3556 53326 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3
061003,000859:
061004,000860: 07,3557 30006 CA BBANK
061005,000861: 07,3560 74716 MASK SEVEN
061006,000862: 07,3561 27326 ADS ATTCADR +1
061007,000863:
061008,000864: 07,3562 30167 CA PRIORITY
061009,000865: 07,3563 77674 MASK PRIO37
061010,000866: 07,3564 55327 TS ATTPRIO # SAVE USER'S PRIO
061011,000867:
061012,000868: 07,3565 33571 CAF KALEBCON # SET EBANK FOR KALCMAN3
061013,000869: 07,3566 54003 TS EBANK
061014,000870: 07,3567 04574 TC POSTJUMP
061015,000871: 07,3570 44000 CADR KALCMAN3
061016,000872: 07,3571 03261 KALEBCON ECADR BCDU
061017,000873:
061018,000874: # Page 1433
061019,000875: # PROGRAM DESCRIPTION
061020,000876: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY)
061021,000877: # MOD NO -- 1
061022,000878: # MOD BY -- N.BRODEUR
061023,000879:
061024,000880: # FUNCTIONAL DESCRIPTION
061025,000881: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN
061026,000882: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE
061027,000883: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE
061028,000884: # CMC. CALLED THROUGH BANKCALL
061029,000885:
061030,000886: # CALLING SEQUENCE --
061031,000887: # L TC BANKCALL
061032,000888: # L+1 CADR R02BOTH
061033,000889:
061034,000890: # SUBROUTINES CALLED
061035,000891: # VARALARM
061036,000892: # FLAGUP
061037,000893:
061038,000894: # NORMAL EXIT MODES
061039,000895: # AT L+2 OF CALLING SEQUENCE
061040,000896:
061041,000897: # ALARM OR ABORT EXIT MODES
061042,000898: # GOTOP00H, WITH ALARM
061043,000899:
061044,000900: # ERASABLE INITIALIZATION REQUIRED
061045,000901: # NONE
061046,000902:
061047,000903: # DEBRIS
061048,000904: # CENTRALS -- A,Q,L
061049,000905:
061050,000906: 34,3775 BANK 34
061051,000907: 07,2000 SETLOC R02
061052,000908: 07,2000 BANK
061053,000909: 07,3572 COUNT 04/R02 # COUNT*
061054,000910:
061055,000911: 07,3572 00063 DEC51 DEC 51 B-14
061056,000912: 07,3573 34676 R02BOTH CAF BIT13
061057,000913: 07,3574 70077 MASK STATE +3 # REFSMFLG
061058,000914: 07,3575 10000 CCS A
061059,000915: 07,3576 03607 TC R02ZERO # ZERO IMUS
061060,000916:
061061,000917: 07,3577 31320 CA IMODES30
061062,000918: 07,3600 74702 MASK BIT9 # IS ISS INITIALIZED
061063,000919: 07,3601 00006 EXTEND
061064,000920: 07,3602 13604 BZF +2
061065,000921: 07,3603 44707 CS BIT4 # SEND IMU ALARM CODE 210
061066,000922: 07,3604 63612 AD OCT220 # SEND REFSMM ALARM
061067,000923: 07,3605 05651 TC VARALARM
061068,000924:
061069,000925: 07,3606 04106 TC GOTOP00H
061070,000926:
061071,000927: # Page 1434
061072,000928: 07,3607 05435 R02ZERO TC UPFLAG
061073,000929: 07,3610 00007 ADRES IMUSE
061074,000930: 07,3611 14570 TCF SWRETURN
061075,000931: 07,3612 00220 OCT220 OCT 220
061076,000932:
061077,000933: # Page 1435
061078,000934: # PROGRAM DESCRIPTION: P06 10 FEB 67
061079,000935:
061080,000936: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION.
061081,000937:
061082,000938: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU
061083,000939: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE
061084,000940: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON.
061085,000941:
061086,000942: # CALLING SEQUENCE:
061087,000943: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E.
061088,000944:
061089,000945: # SUBROUTINES CALLED:
061090,000946: # GOPERF1
061091,000947: # BANKCALL
061092,000948: # FLAGDOWN
061093,000949:
061094,000950: # Page 1436
061095,000951: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2.
061096,000952: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATIBILITY
061097,000953: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING.
061098,000954:
061099,000955: 26,2000 SETLOC P05P06
061100,000956: 26,2000 BANK
061101,000957:
061102,000958: 26,3655 1150 EBANK= TIME2SAV
061103,000959: 26,3655 COUNT* $$/P06
061104,000960:
061105,000961: 26,3655 05435 P06 TC UPFLAG # SET NODOV37 BIT
061106,000962: 26,3656 00054 ADRES NODOFLAG
061107,000963:
061108,000964: 26,3657 00004 PRESTAND INHINT
061109,000965: 26,3660 00006 EXTEND
061110,000966: 26,3661 30025 DCA TIME2 # SNAPSHOT TIME1 TIME2
061111,000967: 26,3662 53151 DXCH TIME2SAV
061112,000968: 26,3663 03714 TC SCALPREP
061113,000969: 26,3664 03657 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE
061114,000970: 26,3665 52155 DXCH MPAC # T1,T2 AND SCALER OK
061115,000971: 26,3666 53153 DXCH SCALSAVE # STORE SCALER
061116,000972: 26,3667 00004 INHINT
061117,000973: 26,3670 04555 TC BANKCALL
061118,000974: 26,3671 16777 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN
061119,000975:
061120,000976: 26,3672 05447 TC DOWNFLAG
061121,000977: 26,3673 00007 ADRES IMUSE # IMUSE DOWN
061122,000978: 26,3674 05447 TC DOWNFLAG
061123,000979: 26,3675 00010 ADRES RNDVZFLG # RNDVZFLG DOWN
061124,000980:
061125,000981: 26,3676 34700 CAF BIT11
061126,000982: 26,3677 00006 EXTEND
061127,000983: 26,3700 05013 WOR CHAN13 # SET STANDBY ENABLE BIT
061128,000984:
061129,000985: 26,3701 05301 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY
061130,000986: 26,3702 07024 OCT 07024 # RECOVERS
061131,000987: 26,3703 20000 OCT 20000
061132,000988: 26,3704 1152 EBANK= SCALSAVE
061133,000989: 26,3704 03734 54102 2CADR POSTAND
061134,000990:
061135,000991: 26,3706 34731 CAF OCT62
061136,000992: 26,3707 04555 TC BANKCALL
061137,000993: 26,3710 20751 CADR GOPERF1
061138,000994: 26,3711 13706 TCF -3
061139,000995: 26,3712 13706 TCF -4
061140,000996: 26,3713 13706 TCF -5
061141,000997:
061142,000998: 26,3714 4731 OCT62 EQUALS .5SEC # DEC 50 = OCT 62
061143,000999:
061144,001000: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
061145,001001: # Page 1437
061146,001002: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER
061147,001003: # DATA ARE NOT COMPATIBLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE
061148,001004: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES
061149,001005: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE
061150,001006: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM
061151,001007: # T1.0 ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF
061152,001008: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5
061153,001009: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER
061154,001010: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1.
061155,001011:
061156,001012: 26,3714 00006 SCALPREP EXTEND
061157,001013: 26,3715 22156 QXCH MPAC +2
061158,001014: 26,3716 04527 TC FINETIME +1
061159,001015: 26,3717 00003 RELINT
061160,001016: 26,3720 52155 DXCH MPAC
061161,001017: 26,3721 34706 CA BIT5 # ADD 5 MS TO THE SCALER READING.
061162,001018: 26,3722 54001 TS L
061163,001019: 26,3723 34714 CA ZERO
061164,001020: 26,3724 20155 DAS MPAC
061165,001021: 26,3725 44362 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO
061166,001022: 26,3726 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1.
061167,001023: 26,3727 56155 XCH MPAC +1
061168,001024: 26,3730 74362 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST
061169,001025: # INTERVAL AFTER THE T1 INCREMENT
061170,001026: # (NOW = 00000, SINCE BIT 5 ADDED).
061171,001027: 26,3731 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT
061172,001028: 26,3732 24156 INCR MPAC +2 # NO
061173,001029: 26,3733 00156 TC MPAC +2 # YES
061174,001030:
061175,001031: # POSTAND RECOVERS TIME AFTER STANDBY. THE SCALER IS SNAPSHOTTED AND THE
061176,001032: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE
061177,001033: # INSPECTED TO INSURE COMPATIBILITY BETWEEN THE SCALER READING AND THE
061178,001034: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER
061179,001035: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF
061180,001036: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER.
061181,001037:
061182,001038: 26,3734 COUNT* $$/P05
061183,001039:
061184,001040: 26,3734 44700 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY
061185,001041: 26,3735 00006 EXTEND
061186,001042: 26,3736 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT
061187,001043: 26,3737 00004 INHINT
061188,001044: 26,3740 34714 CA ZERO
061189,001045: 26,3741 54001 TS L
061190,001046: 26,3742 52025 DXCH TIME2 # CLEAR TIME1 TIME2
061191,001047: 26,3743 03714 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1
061192,001048: 26,3744 03737 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE
061193,001049: 26,3745 00006 EXTEND # T1,T2 AND SCALER OK
061194,001050: 26,3746 41153 DCS SCALSAVE
061195,001051: 26,3747 20155 DAS MPAC # FORM DP DIFFERENCE OF POST-STANDBY SCALER
061196,001052: # Page 1438
061197,001053: 26,3750 34701 CAF BIT10 # MINUS PRE-STANDBY SCALER AND SHIFT RIGHT
061198,001054: 26,3751 07256 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1 TIME2.
061199,001055: 26,3752 34714 CAF ZERO
061200,001056: 26,3753 54156 TS MPAC +2 # NEEDED FOR TP AGREE
061201,001057: 26,3754 07226 TC TPAGREE # MAKE DP DIFF AGREE
061202,001058: 26,3755 10154 CCS MPAC
061203,001059: 26,3756 03763 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW
061204,001060: 26,3757 03763 TC POSTCOM # BETWEEN PRE AND POST STANDBY.
061205,001061: 26,3760 03761 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD
061206,001062: 26,3761 34701 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT.
061207,001063: 26,3762 26154 ADS MPAC
061208,001064: 26,3763 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER.
061209,001065: 26,3764 31151 DCA TIME2SAV # PRE-STANDBY TIME1 TIME2
061210,001066: 26,3765 20155 DAS MPAC
061211,001067: 26,3766 07226 TC TPAGREE # FORCE SIGN AGREEMENT
061212,001068: 26,3767 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2.
061213,001069: 26,3770 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH
061214,001070: 26,3771 05447 TC DOWNFLAG # CLEAR NODOFLAG
061215,001071: 26,3772 00054 ADRES NODOFLAG
061216,001072:
061217,001073: 26,3773 04106 TC GOTOP00H
061218,001074:
061219,001075:
061220,001076:
End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc