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