Source Code
![]() |
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Linden Sims.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 56 OF AGC PROGRAM ZERLINA BY ZOROASTER 9:12 OCT. 21,1970Note that the date is the date of the printout, not the date of the program revision. |
056910,000002: ## Copyright: Public domain. 056911,000003: ## Filename: IMU_MODE_SWITCHING_ROUTINES.agc 056912,000004: ## Purpose: A log section of Zerlina 56, the final revision of 056913,000005: ## Don Eyles's offline development program for the variable 056914,000006: ## guidance period servicer. It also includes a new P66 with LPD 056915,000007: ## (Landing Point Designator) capability, based on an idea of John 056916,000008: ## Young's. Neither of these advanced features were actually flown, 056917,000009: ## but Zerlina was also the birthplace of other big improvements to 056918,000010: ## Luminary including the terrain model and new (Luminary 1E) 056919,000011: ## analog display programs. Zerlina was branched off of Luminary 145, 056920,000012: ## and revision 56 includes all changes up to and including Luminary 056921,000013: ## 183. It is therefore quite close to the Apollo 14 program, 056922,000014: ## Luminary 178, where not modified with new features. 056923,000015: ## Reference: pp. 1298-1326 056924,000016: ## Assembler: yaYUL 056925,000017: ## Contact: Ron Burkey <info@sandroid.org>. 056926,000018: ## Website: www.ibiblio.org/apollo/index.html 056927,000019: ## Mod history: 2017-07-28 MAS Created from Luminary 210. 056928,000020: ## 2017-08-20 MAS Updated for Zerlina 56. 056929,000021:
![]() |
Page 1298 |
056931,000023: 5470 BLOCK 02 056932,000024: 4000 SETLOC FFTAG3 056933,000025: 4000 BANK 056934,000026: 056935,000027: 5470 E3,1471 EBANK= COMMAND 056936,000028: 056937,000029: # FIXED-FIXED ROUTINES. 056938,000030: 056939,000031: 5470 COUNT* $$/IMODE 056940,000032: 5470 34755 ZEROICDU CAF ZERO # ZERO ICDU COUNTERS. 056941,000033: 5471 54032 TS CDUX 056942,000034: 5472 54033 TS CDUY 056943,000035: 5473 54034 TS CDUZ 056944,000036: 5474 00002 TC Q 056945,000037: 056946,000038: 5475 4743 SPSCODE = BIT9 056947,000039:
![]() |
Page 1299 |
056949,000041: # IMU ZEROING ROUTINE. 056950,000042: 056951,000043: 11,3755 BANK 11 056952,000044: 07,2000 SETLOC MODESW 056953,000045: 07,2000 BANK 056954,000046: 056955,000047: 07,2661 COUNT* $$/IMODE 056956,000048: 07,2661 00004 IMUZERO INHINT # ROUTINE TO ZERO ICDUS. 056957,000049: 07,2662 41035 CS DSPTAB +11D # DONT ZERO CDUS IF IMU IN GIMBAL LOCK AND 056958,000050: 07,2663 74771 MASK BITS4&6 # COARSE ALIGN (GIMBAL RUNAWAY PROTECTION) 056959,000051: 07,2664 10000 CCS A 056960,000052: 07,2665 12671 TCF IMUZEROA 056961,000053: 056962,000054: 07,2666 05600 TC ALARM # IF SO. 056963,000055: 07,2667 00206 OCT 00206 056964,000056: 056965,000057: 07,2670 13656 TCF CAGETSTJ +4 # IMMEDIATE FAILURE. 056966,000058: 056967,000059: 07,2671 03652 IMUZEROA TC CAGETSTJ 056968,000060: # DELETE 056969,000061: 07,2672 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 056970,000062: 07,2673 74773 MASK SUPER011 # BIT5 FOR GROUND 056971,000063: 07,2674 27300 ADS IMODES33 056972,000064: 056973,000065: 07,2675 41277 CS IMODES30 # INHIBIT ICDUFAIL AND IMUFAIL (IN CASE WE 056974,000066: 07,2676 75752 MASK BITS3&4 # JUST CAME OUT OF COARSE ALIGN). 056975,000067: 07,2677 27277 ADS IMODES30 056976,000068: 056977,000069: 07,2700 44771 CS BITS4&6 # SEND ZERO ENCODE WITH COARSE AND ERROR 056978,000070: 07,2701 00006 EXTEND # COUNTER DISABLED. 056979,000071: 07,2702 03012 WAND CHAN12 056980,000072: 056981,000073: 07,2703 03233 TC NOATTOFF # TURN OFF NO ATT LAMP. 056982,000074: 056983,000075: 07,2704 34747 CAF BIT5 056984,000076: 07,2705 00006 EXTEND 056985,000077: 07,2706 05012 WOR CHAN12 056986,000078: 056987,000079: 07,2707 05470 TC ZEROICDU 056988,000080: 07,2710 34746 CAF BIT6 # WAIT 320 MS TO GIVE AGS ADEQUATE TIME TO 056989,000081: 07,2711 05214 TC WAITLIST # RECEIVE ITS PULSE TRAIN. 056990,000082: 07,2712 E3,1474 EBANK= CDUIND 056991,000083: 07,2712 02724 16103 2CADR IMUZERO2 056992,000084: 056993,000085: 056994,000086: 07,2714 41277 CS IMODES30 # SEE IF IMU OPERATING AND ALARM IF NOT. 056995,000087: 07,2715 74743 MASK BIT9 056996,000088: 07,2716 10000 CCS A 056997,000089: 07,2717 12722 TCF MODEEXIT
![]() |
Page 1300 |
056999,000091: 07,2720 05600 TC ALARM 057000,000092: 07,2721 00210 OCT 210 057001,000093: 057002,000094: 07,2722 00003 MODEEXIT RELINT # GENERAL MODE-SWITCHING EXIT. 057003,000095: 07,2723 14631 TCF SWRETURN 057004,000096: 057005,000097: 057006,000098: 07,2724 03640 IMUZERO2 TC CAGETEST 057007,000099: 07,2725 05470 TC ZEROICDU # ZERO CDUX, CDUY, CDUZ 057008,000100: 057009,000101: 07,2726 44747 CS BIT5 # REMOVE ZERO DISCRETE. 057010,000102: 07,2727 00006 EXTEND 057011,000103: 07,2730 03012 WAND CHAN12 057012,000104: 057013,000105: 07,2731 34741 CAF BIT11 # WAIT 10 SECS FOR CTRS TO FIND GIMBALS 057014,000106: 07,2732 05235 TC VARDELAY 057015,000107: 057016,000108: 07,2733 03640 IMUZERO3 TC CAGETEST 057017,000109: 07,2734 45752 CS BITS3&4 # REMOVE IMUFAIL AND ICDUFAIL INHIBIT. 057018,000110: 07,2735 71277 MASK IMODES30 057019,000111: 07,2736 55277 TS IMODES30 057020,000112: 057021,000113: 07,2737 44773 CS SUPER011 # ENABLE DAP AUTO AND HOLD MODES 057022,000114: 07,2740 71300 MASK IMODES33 # BIT5 FOR GROUND 057023,000115: 07,2741 55300 TS IMODES33 057024,000116: 057025,000117: 07,2742 04674 TC IBNKCALL # SET ISS WARNING IF EITHER OF ABOVE ARE 057026,000118: 07,2743 14703 CADR SETISSW # PRESENT. 057027,000119: 057028,000120: 07,2744 13613 TCF ENDIMU 057029,000121:
![]() |
Page 1301 |
057031,000123: # IMU COARSE ALIGN MODE. 057032,000124: 057033,000125: 07,2745 00004 IMUCOARS INHINT 057034,000126: 07,2746 03652 TC CAGETSTJ 057035,000127: 07,2747 03111 TC SETCOARS 057036,000128: 057037,000129: 07,2750 36254 CAF SIX 057038,000130: 07,2751 05214 TC WAITLIST 057039,000131: 07,2752 E3,1474 EBANK= CDUIND 057040,000132: 07,2752 02755 16103 2CADR COARS 057041,000133: 057042,000134: 057043,000135: 07,2754 12722 TCF MODEEXIT 057044,000136: 057045,000137: 07,2755 03640 COARS TC CAGETEST 057046,000138: 07,2756 34746 CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS 057047,000139: 07,2757 00006 EXTEND 057048,000140: 07,2760 05012 WOR CHAN12 057049,000141: 057050,000142: 07,2761 34752 CAF TWO # SET CDU INDICATOR 057051,000143: 07,2762 55474 COARS1 TS CDUIND 057052,000144: 057053,000145: 07,2763 51474 INDEX CDUIND # COMPUTE THETAD - THETAA IN 1:S 057054,000146: 07,2764 30321 CA THETAD # COMPLEMENT FORM 057055,000147: 07,2765 00006 EXTEND 057056,000148: 07,2766 51474 INDEX CDUIND 057057,000149: 07,2767 20032 MSU CDUX 057058,000150: 07,2770 00006 EXTEND 057059,000151: 07,2771 74737 MP BIT13 # SHIFT RIGHT 2 057060,000152: 07,2772 56001 XCH L # ROUND 057061,000153: 07,2773 60000 DOUBLE 057062,000154: 07,2774 54061 TS ITEMP1 057063,000155: 07,2775 12777 TCF +2 057064,000156: 07,2776 26001 ADS L 057065,000157: 057066,000158: 07,2777 51474 INDEX CDUIND # DIFFERENCE TO BE COMPUTED 057067,000159: 07,3000 23471 LXCH COMMAND 057068,000160: 07,3001 11474 CCS CDUIND 057069,000161: 07,3002 02762 TC COARS1 057070,000162: 057071,000163: 07,3003 34752 CAF TWO # MINIMUM OF 4 MS WAIT 057072,000164: 07,3004 05235 TC VARDELAY 057073,000165:
![]() |
Page 1302 |
057075,000167: 07,3005 03640 COARS2 TC CAGETEST # DONT CONTINUE IF CAGED. 057076,000168: 07,3006 54061 TS ITEMP1 # SETS TO +0. 057077,000169: 07,3007 34752 CAF TWO # SET CDU INDICATOR 057078,000170: 07,3010 55474 +3 TS CDUIND 057079,000171: 057080,000172: 07,3011 51474 INDEX CDUIND 057081,000173: 07,3012 11471 CCS COMMAND # NUMBER OF PULSES REQUIRED 057082,000174: 07,3013 03017 TC COMPOS # GREATER THAN MAX ALLOWED 057083,000175: 07,3014 03026 TC NEXTCDU +1 057084,000176: 07,3015 03064 TC COMNEG 057085,000177: 07,3016 03026 TC NEXTCDU +1 057086,000178: 057087,000179: 07,3017 63744 COMPOS AD -COMMAX # COMMAX = MAX NUMBER OF PULSES ALLOWED 057088,000180: 07,3020 00006 EXTEND # MINUS ONE 057089,000181: 07,3021 63074 BZMF COMZERO 057090,000182: 07,3022 51474 INDEX CDUIND 057091,000183: 07,3023 55471 TS COMMAND # REDUCE COMMAND BY MAX NUMBER OF PULSES 057092,000184: 07,3024 43745 CS -COMMAX- # ALLOWED 057093,000185: 057094,000186: 07,3025 24061 NEXTCDU INCR ITEMP1 057095,000187: 07,3026 64754 AD NEG0 057096,000188: 07,3027 51474 INDEX CDUIND 057097,000189: 07,3030 54050 TS CDUXCMD # SET UP COMMAND REGISTER. 057098,000190: 057099,000191: 07,3031 11474 CCS CDUIND 057100,000192: 07,3032 03010 TC COARS2 +3 057101,000193: 057102,000194: 07,3033 10061 CCS ITEMP1 # SEE IF ANY PULSES TO GO OUT. 057103,000195: 07,3034 13100 TCF SENDPULS 057104,000196: 057105,000197: 07,3035 05232 TC FIXDELAY # WAIT FOR GIMBALS TO SETTLE. 057106,000198: 07,3036 00226 DEC 150 B-14 057107,000199: 057108,000200: 057109,000201: 07,3037 34752 CAF TWO # AT END OF COMMAND, CHECK TO SEE THAT 057110,000202: 07,3040 54061 CHKCORS TS ITEMP1 # GIMBALS ARE WITHIN 2 DEGREES OF THETAD. 057111,000203: 07,3041 50000 INDEX A 057112,000204: 07,3042 30032 CA CDUX 057113,000205: 07,3043 00006 EXTEND 057114,000206: 07,3044 50061 INDEX ITEMP1 057115,000207: 07,3045 20321 MSU THETAD 057116,000208: 07,3046 10000 CCS A 057117,000209: 07,3047 13055 TCF COARSERR 057118,000210: 07,3050 13052 TCF CORSCHK2 057119,000211: 07,3051 13055 TCF COARSERR 057120,000212:
![]() |
Page 1303 |
057122,000214: 07,3052 10061 CORSCHK2 CCS ITEMP1 057123,000215: 07,3053 13040 TCF CHKCORS 057124,000216: 07,3054 13613 TCF ENDIMU # END OF COARSE ALIGNMENT. 057125,000217: 057126,000218: 07,3055 63063 COARSERR AD COARSTOL # 2 DEGREES. 057127,000219: 07,3056 00006 EXTEND 057128,000220: 07,3057 63052 BZMF CORSCHK2 057129,000221: 057130,000222: 07,3060 05600 TC ALARM # COARSE ALIGN ERROR. 057131,000223: 07,3061 00211 OCT 211 057132,000224: 057133,000225: 07,3062 13636 TCF IMUBAD 057134,000226: 057135,000227: 07,3063 77511 COARSTOL DEC -.01111 # 2 DEGREES SCALED AT HALF-REVOLUTIONS 057136,000228: 057137,000229: 057138,000230: 07,3064 63744 COMNEG AD -COMMAX 057139,000231: 07,3065 00006 EXTEND 057140,000232: 07,3066 63074 BZMF COMZERO 057141,000233: 07,3067 40000 COM 057142,000234: 07,3070 51474 INDEX CDUIND 057143,000235: 07,3071 55471 TS COMMAND 057144,000236: 07,3072 33745 CA -COMMAX- 057145,000237: 07,3073 03025 TC NEXTCDU 057146,000238: 057147,000239: 07,3074 34755 COMZERO CAF ZERO 057148,000240: 07,3075 51474 INDEX CDUIND 057149,000241: 07,3076 57471 XCH COMMAND 057150,000242: 07,3077 03025 TC NEXTCDU 057151,000243: 057152,000244: 057153,000245: 07,3100 37752 SENDPULS CAF 13,14,15 057154,000246: 07,3101 00006 EXTEND 057155,000247: 07,3102 05014 WOR CHAN14 057156,000248: 07,3103 33746 CAF 600MS 057157,000249: 07,3104 13004 TCF COARS2 -1 # THEN TO VARDELAY 057158,000250: 057159,000251: 057160,000252: 07,3105 34746 CA+ECE CAF BIT6 # ENABLE ALL THREE ISS CDU ERROR COUNTERS 057161,000253: 07,3106 00006 EXTEND 057162,000254: 07,3107 05012 WOR CHAN12 057163,000255: 07,3110 05272 TC TASKOVER 057164,000256:
![]() |
Page 1304 |
057166,000258: 07,3111 34750 SETCOARS CAF BIT4 # BYPASS IF ALREADY IN COARSE ALIGN 057167,000259: 07,3112 00006 EXTEND 057168,000260: 07,3113 02012 RAND CHAN12 057169,000261: 07,3114 10000 CCS A 057170,000262: 07,3115 00002 TC Q 057171,000263: 057172,000264: 07,3116 44746 CS BIT6 # CLEAR ISS ERROR COUNTERS 057173,000265: 07,3117 00006 EXTEND 057174,000266: 07,3120 03012 WAND CHAN12 057175,000267: 057176,000268: 07,3121 44742 CS BIT10 # KNOCK DOWN GYRO ACTIVITY 057177,000269: 07,3122 00006 EXTEND 057178,000270: 07,3123 03014 WAND CHAN14 057179,000271: 07,3124 44755 CS ZERO 057180,000272: 07,3125 54047 TS GYROCMD 057181,000273: 057182,000274: 07,3126 34750 CAF BIT4 # PUT ISS IN COARSE ALIGN 057183,000275: 07,3127 00006 EXTEND 057184,000276: 07,3130 05012 WOR CHAN12 057185,000277: 057186,000278: 07,3131 41035 CS DSPTAB +11D # TURN ON NO ATT LAMP 057187,000279: 07,3132 73154 MASK OCT40010 057188,000280: 07,3133 27035 ADS DSPTAB +11D 057189,000281: 057190,000282: 07,3134 41300 CS IMODES33 # DISABLE DAP AUTO AND HOLD MODES 057191,000283: 07,3135 74746 MASK BIT6 057192,000284: 07,3136 27300 ADS IMODES33 057193,000285: 057194,000286: 07,3137 41277 CS IMODES30 # DISABLE IMUFAIL 057195,000287: 07,3140 74750 MASK BIT4 057196,000288: 07,3141 27277 ADS IMODES30 057197,000289: 057198,000290: 07,3142 44747 RNDREFDR CS TRACKBIT # CLEAR TRACK FLAG 057199,000291: 07,3143 70075 MASK FLAGWRD1 057200,000292: 07,3144 54075 TS FLAGWRD1 057201,000293: 057202,000294: 07,3145 44735 CS DRFTBIT # CLEAR DRIFT FLAG 057203,000295: 07,3146 70076 MASK FLAGWRD2 057204,000296: 07,3147 54076 TS FLAGWRD2 057205,000297: 057206,000298: 07,3150 44737 CS REFSMBIT # CLEAR REFSMMAT FLAG 057207,000299: 07,3151 70077 MASK FLAGWRD3 057208,000300: 07,3152 54077 TS FLAGWRD3 057209,000301: 057210,000302: 07,3153 00002 TC Q 057211,000303: 057212,000304: 07,3154 40010 OCT40010 OCT 40010 057213,000305:
![]() |
Page 1305 |
057215,000307: # IMU FINE ALIGN MODE SWITCH. 057216,000308: 057217,000309: 07,3155 00004 IMUFINE INHINT 057218,000310: 07,3156 03652 TC CAGETSTJ # SEE IF IMU BEING CAGED. 057219,000311: 057220,000312: 07,3157 43743 CS BITS4-5 # RESET ZERO AND COARSE 057221,000313: 07,3160 00006 EXTEND 057222,000314: 07,3161 03012 WAND CHAN12 057223,000315: 057224,000316: 07,3162 44746 CS BIT6 # INSURE DAP AUTO AND HOLD MODES ENABLED 057225,000317: 07,3163 71300 MASK IMODES33 057226,000318: 07,3164 55300 TS IMODES33 057227,000319: 057228,000320: 07,3165 03233 TC NOATTOFF 057229,000321: 057230,000322: 07,3166 34742 CAF BIT10 # IMU FAIL WAS INHIBITED DURING THE 057231,000323: 07,3167 05214 TC WAITLIST # PRESUMABLY PRECEDING COARSE ALIGN. LEAVE 057232,000324: 07,3170 E3,1474 EBANK= CDUIND 057233,000325: 07,3170 03201 16103 2CADR IFAILOK # IT ON FOR THE FIRST 5 SECS OF FINE ALIGN 057234,000326: 057235,000327: 057236,000328: 07,3172 35000 CAF 2SECS 057237,000329: 07,3173 05214 TC WAITLIST 057238,000330: 07,3174 E3,1474 EBANK= CDUIND 057239,000331: 07,3174 03177 16103 2CADR IMUFINED 057240,000332: 057241,000333: 057242,000334: 07,3176 12722 TCF MODEEXIT 057243,000335: 057244,000336: 07,3177 03640 IMUFINED TC CAGETEST # SEE THAT NO ONE HAS CAGED THE IMU. 057245,000337: 07,3200 13613 TCF ENDIMU 057246,000338:
![]() |
Page 1306 |
057248,000340: 07,3201 03645 IFAILOK TC CAGETSTQ # ENABLE IMU FIAL UNLESS IMU BEING CAGED. 057249,000341: 07,3202 15272 TCF TASKOVER # IT IS. 057250,000342: 057251,000343: 07,3203 34750 CAF BIT4 # DONT RESET IMU FAIL INHIBIT IF SOMEONE 057252,000344: 07,3204 00006 EXTEND # HAS GONE INTO COARSE ALIGN. 057253,000345: 07,3205 02012 RAND CHAN12 057254,000346: 07,3206 10000 CCS A 057255,000347: 07,3207 15272 TCF TASKOVER 057256,000348: 057257,000349: 07,3210 41277 CS IMODES30 # RESET IMUFAIL. 057258,000350: 07,3211 74737 MASK BIT13 057259,000351: 07,3212 27277 ADS IMODES30 057260,000352: 07,3213 44750 CS BIT4 057261,000353: 07,3214 71277 PFAILOK2 MASK IMODES30 057262,000354: 07,3215 55277 TS IMODES30 057263,000355: 07,3216 04674 TC IBNKCALL # THE ISS WARNING LIGHT MAY COME ON NOW 057264,000356: 07,3217 14703 CADR SETISSW # THAT THE INHIBIT HAS BEEN REMOVED. 057265,000357: 07,3220 15272 TCF TASKOVER 057266,000358: 057267,000359: 07,3221 03645 PFAILOK TC CAGETSTQ # ENABLE PIP FAIL PROG ALARM. 057268,000360: 07,3222 15272 TCF TASKOVER 057269,000361: 057270,000362: 07,3223 41277 CS IMODES30 # RESET IMU AND PIPA FAIL BITS. 057271,000363: 07,3224 74742 MASK BIT10 057272,000364: 07,3225 27277 ADS IMODES30 057273,000365: 057274,000366: 07,3226 41300 CS IMODES33 057275,000367: 07,3227 74737 MASK BIT13 057276,000368: 07,3230 27300 ADS IMODES33 057277,000369: 057278,000370: 07,3231 44747 CS BIT5 057279,000371: 07,3232 13214 TCF PFAILOK2 057280,000372: 057281,000373: 07,3233 43154 NOATTOFF CS OCT40010 # SUBROUTINE TO TURN OFF NO ATT LAMP. 057282,000374: 07,3234 71035 MASK DSPTAB +11D 057283,000375: 07,3235 64735 AD BIT15 057284,000376: 07,3236 55035 TS DSPTAB +11D 057285,000377: 07,3237 00002 TC Q 057286,000378:
![]() |
Page 1307 |
057288,000380: # ROUITNES TO INITIATE AND TERMINATE PROGRAM USE OF THE PIPAS. NO IMUSTALL REQUIRED IN EITHER CASE. 057289,000381: 057290,000382: 07,3240 44755 PIPUSE CS ZERO 057291,000383: 07,3241 54037 TS PIPAX 057292,000384: 07,3242 54040 TS PIPAY 057293,000385: 07,3243 54041 TS PIPAZ 057294,000386: 057295,000387: 07,3244 03645 PIPUSE1 TC CAGETSTQ # DO NOT ENABLE PIPA FAIL IF IMU IS CAGED 057296,000388: 07,3245 14631 TCF SWRETURN 057297,000389: 057298,000390: 07,3246 00004 INHINT 057299,000391: 07,3247 44753 CS BIT1 # IF PIPA FAILS FROM NOW ON (UNTIL 057300,000392: 07,3250 71277 MASK IMODES30 # PIPFREE), LIGHT ISS WARNING. 057301,000393: 07,3251 55277 TS IMODES30 057302,000394: 057303,000395: 07,3252 04674 PIPFREE2 TC IBNKCALL # ISS WARNING MIGHT COME ON NOW. 057304,000396: 07,3253 14703 CADR SETISSW # (OR GO OFF ON PIPFREE). 057305,000397: 057306,000398: 07,3254 12722 TCF MODEEXIT 057307,000399: 057308,000400: 07,3255 00004 PIPFREE INHINT # PROGRAM DONE WITH PIPAS. DONT LIGHT 057309,000401: 07,3256 41277 CS IMODES30 # ISS WARNING. 057310,000402: 07,3257 74753 MASK BIT1 057311,000403: 07,3260 27277 ADS IMODES30 057312,000404: 057313,000405: 07,3261 74742 MASK BIT10 # IF PIP FAIL ON, DO PROG ALSRM AND RESET 057314,000406: 07,3262 10000 CCS A # ISS WARNING. 057315,000407: 07,3263 12722 TCF MODEEXIT 057316,000408: 057317,000409: 07,3264 05600 TC ALARM 057318,000410: 07,3265 00212 OCT 212 057319,000411: 057320,000412: 07,3266 00004 INHINT 057321,000413: 057322,000414: 07,3267 13252 TCF PIPFREE2 057323,000415:
![]() |
Page 1308 |
057325,000417: # THE FOLLOWING ROUTINE TORQUES THE IRIGS ACCORDING TO DOUBLE PRECISION INPUTS IN THE SIX REGISTERS 057326,000418: # BEGINNING AT THE ECADR ARRIVING IN A. THE MINIMUM SIZE OF ANY PULSE TRAIN IS 16 PULSES (.25 CDU COUNTS). THE 057327,000419: # UNSENT PORTION OF THE COMMAND IS LEFT INTACT IN THE INPUT COMMAND REGISTERS. 057328,000420: 057329,000421: 07,3270 E3,1400 EBANK= 1400 # VARIABLE, ACTUALLY. 057330,000422: 057331,000423: 07,3270 54161 IMUPULSE TS MPAC +5 # SAVE ARRIVING ECADR. 057332,000424: 07,3271 03652 TC CAGETSTJ # DONT PROCEED IF IMU BEING CAGED. 057333,000425: 057334,000426: 07,3272 11311 CCS LGYRO # SEE IF GYROS BUSY. 057335,000427: 07,3273 03334 TC GYROBUSY # SLEEP. 057336,000428: 057337,000429: 07,3274 54156 TS MPAC +2 057338,000430: 07,3275 34746 CAF BIT6 # ENABLE THE POWER SUPPLY. 057339,000431: 07,3276 00006 EXTEND 057340,000432: 07,3277 05014 WOR CHAN14 057341,000433: 057342,000434: 07,3300 34751 CAF FOUR 057343,000435: 07,3301 05214 GWAKE2 TC WAITLIST # (IF A JOB WAS PUT TO SLEEP, THE POWER 057344,000436: 07,3302 E3,1474 EBANK= CDUIND # SUPPLY IS LEFT ON BY THE WAKING JOB). 057345,000437: 07,3302 03352 16103 2CADR STRTGYRO 057346,000438: 057347,000439: 057348,000440: 07,3304 30161 CA MPAC +5 # SET UP EBANK, SAVING CALLER'S EBANK FOR 057349,000441: 07,3305 56003 XCH EBANK # RESTORATION ON RETURN. 057350,000442: 07,3306 56161 XCH MPAC +5 057351,000443: 07,3307 55311 TS LGYRO # RESERVES GYROS. 057352,000444: 07,3310 74357 MASK LOW8 057353,000445: 07,3311 54061 TS ITEMP1 057354,000446: 057355,000447: 07,3312 34752 CAF TWO # FORCE SIGN AGREEMENT ON INPUTS. 057356,000448: 07,3313 54157 GYROAGRE TS MPAC +3 057357,000449: 07,3314 60000 DOUBLE 057358,000450: 07,3315 60061 AD ITEMP1 057359,000451: 07,3316 54160 TS MPAC +4 057360,000452: 07,3317 00006 EXTEND 057361,000453: 07,3320 50000 INDEX A 057362,000454: 07,3321 31401 DCA 1400 057363,000455: 07,3322 52155 DXCH MPAC 057364,000456: 07,3323 07271 TC TPAGREE 057365,000457: 07,3324 52155 DXCH MPAC 057366,000458: 07,3325 50160 INDEX MPAC +4 057367,000459: 07,3326 53401 DXCH 1400 057368,000460: 057369,000461: 07,3327 10157 CCS MPAC +3 057370,000462: 07,3330 13313 TCF GYROAGRE 057371,000463: 057372,000464: 07,3331 30161 CA MPAC +5 # RESTORE CALLER'S EBANK. 057373,000465: 07,3332 54003 TS EBANK 057374,000466: 07,3333 12722 TCF MODEEXIT 057375,000467:
![]() |
Page 1309 |
057377,000469: # ROUTINES TO ALLOW TORQUING BY ONLY ONE JOB AT A TIME. 057378,000470: 057379,000471: 07,3334 00006 GYROBUSY EXTEND # SAVE RETURN 2FCADR. 057380,000472: 07,3335 30134 DCA BUF2 057381,000473: 07,3336 52155 DXCH MPAC 057382,000474: 07,3337 33351 REGSLEEP CAF LGWAKE 057383,000475: 07,3340 15133 TCF JOBSLEEP 057384,000476: 057385,000477: 07,3341 11311 GWAKE CCS LGYRO # WHEN AWAKENED, SEE IF GYROS STILL BUSY. 057386,000478: 07,3342 13337 TCF REGSLEEP # IF SO, SLEEP SOME MORE. 057387,000479: 057388,000480: 07,3343 54156 TS MPAC +2 057389,000481: 07,3344 00006 EXTEND 057390,000482: 07,3345 30155 DCA MPAC 057391,000483: 07,3346 52134 DXCH BUF2 # RESTORE SWRETURN INFO. 057392,000484: 07,3347 34753 CAF ONE 057393,000485: 07,3350 13301 TCF GWAKE2 057394,000486: 057395,000487: 07,3351 17341 LGWAKE CADR GWAKE 057396,000488:
![]() |
Page 1310 |
057398,000490: # GYRO-TORQUING WAITLIST TASKS. 057399,000491: 057400,000492: 07,3352 43610 STRTGYRO CS GDESELCT # DE-SELECT LAST GYRO. 057401,000493: 07,3353 00006 EXTEND 057402,000494: 07,3354 03014 WAND CHAN14 057403,000495: 057404,000496: 07,3355 03626 TC CAGETSTG 057405,000497: 057406,000498: 07,3356 31311 STRTGYR2 CA LGYRO # JUMP ON PHASE COUNTER IN BITS 13-14. 057407,000499: 07,3357 00006 EXTEND 057408,000500: 07,3360 74750 MP BIT4 057409,000501: 07,3361 50000 INDEX A 057410,000502: 07,3362 13363 TCF +1 057411,000503: 07,3363 03400 TC GSELECT # =0. DO Y GYRO. 057412,000504: 07,3364 00202 OCT 00202 057413,000505: 057414,000506: 07,3365 03400 TC GSELECT # =1. DO Z GYRO. 057415,000507: 07,3366 00302 OCT 00302 057416,000508: 057417,000509: 07,3367 03376 TC GSELECT -2 # =2. DO X GYRO. 057418,000510: 07,3370 00100 OCT 00100 057419,000511: 057420,000512: 07,3371 34755 CAF ZERO # =3. DONE 057421,000513: 07,3372 55311 TS LGYRO 057422,000514: 07,3373 33351 CAF LGWAKE # WAKE A POSSIBLE SLEEPING JOB. 057423,000515: 07,3374 05137 TC JOBWAKE 057424,000516: 057425,000517: 07,3375 13177 NORESET TCF IMUFINED # DO NOT RESET POWER SUPPLY 057426,000518:
![]() |
Page 1311 |
057428,000520: 07,3376 44751 -2 CS FOUR # SPECIAL ENTRY TO REGRESS LGYRO FOR X. 057429,000521: 07,3377 27311 ADS LGYRO 057430,000522: 057431,000523: 07,3400 50002 GSELECT INDEX Q # SELECT GYRO. 057432,000524: 07,3401 30000 CAF 0 # PACKED WORD CONTAINS GYRO SELECT BITS 057433,000525: 07,3402 54064 TS ITEMP4 # AND INCREMENT TO LGYRO. 057434,000526: 07,3403 74757 MASK SEVEN 057435,000527: 07,3404 64737 AD BIT13 057436,000528: 07,3405 27311 ADS LGYRO 057437,000529: 07,3406 54003 TS EBANK 057438,000530: 07,3407 74357 MASK LOW8 057439,000531: 07,3410 54061 TS ITEMP1 057440,000532: 057441,000533: 07,3411 44757 CS SEVEN 057442,000534: 07,3412 70064 MASK ITEMP4 057443,000535: 07,3413 54064 TS ITEMP4 057444,000536: 057445,000537: 07,3414 00006 EXTEND # MOVE DP COMMAND TO RUPTREGS FOR TESTING. 057446,000538: 07,3415 50061 INDEX ITEMP1 057447,000539: 07,3416 31401 DCA 1400 057448,000540: 07,3417 52071 DXCH RUPTREG1 057449,000541: 057450,000542: 07,3420 10070 CCS RUPTREG1 057451,000543: 07,3421 13434 TCF MAJ+ 057452,000544: 07,3422 13424 TCF +2 057453,000545: 07,3423 13571 TCF MAJ- 057454,000546: 057455,000547: 07,3424 10071 CCS RUPTREG2 057456,000548: 07,3425 13431 TCF MIN+ 057457,000549: 07,3426 13356 TCF STRTGYR2 057458,000550: 07,3427 13566 TCF MIN- 057459,000551: 07,3430 13356 TCF STRTGYR2 057460,000552:
![]() |
Page 1312 |
057462,000554: 07,3431 63465 MIN+ AD -GYROMIN # SMALL POSITIVE COMMAND. SEE IF AT LEAST 057463,000555: 07,3432 00006 EXTEND # 16 GYRO PULSES. 057464,000556: 07,3433 63356 BZMF STRTGYR2 057465,000557: 057466,000558: 07,3434 00006 MAJ+ EXTEND # DEFINITE POSITIVE OUTPUT. 057467,000559: 07,3435 33612 DCA GYROFRAC 057468,000560: 07,3436 20071 DAS RUPTREG1 057469,000561: 057470,000562: 07,3437 30064 CA ITEMP4 # SELECT POSITIVE TORQUING FOR THIS GYRO. 057471,000563: 07,3440 00006 EXTEND 057472,000564: 07,3441 05014 WOR CHAN14 057473,000565: 057474,000566: 07,3442 36106 CAF LOW7 # LEAVE NUMBER OF POSSIBLE 8192 AUGMENTS 057475,000567: 07,3443 70071 MASK RUPTREG2 # TO INITIAL COMMAND IN MAJOR PART OF LONG 057476,000568: 07,3444 56071 XCH RUPTREG2 # TERM STORAGE AND TRUNCATED FRACTION 057477,000569: 07,3445 00006 GMERGE EXTEND # IN MINOR PART. THE MAJOR PART WILL BE 057478,000570: 07,3446 74744 MP BIT8 # COUNTED DOWN TO ZERO IN THE COURSE OF 057479,000571: 07,3447 54062 TS ITEMP2 # PUTTING OUT THE ENTIRE COMMAND. 057480,000572: 07,3450 30070 CA RUPTREG1 057481,000573: 07,3451 00006 EXTEND 057482,000574: 07,3452 74743 MP BIT9 057483,000575: 07,3453 54070 TS RUPTREG1 057484,000576: 07,3454 30001 CA L 057485,000577: 07,3455 00006 EXTEND 057486,000578: 07,3456 74736 MP BIT14 057487,000579: 07,3457 26062 ADS ITEMP2 # INITIAL COMMAND. 057488,000580: 057489,000581: 07,3460 00006 EXTEND # SEE IF MORE THAN ONE PULSE TRAIN NEEDED 057490,000582: 07,3461 30071 DCA RUPTREG1 # (MORE THAN 16383 PULSES). 057491,000583: 07,3462 67761 AD MINUS1 057492,000584: 07,3463 10000 CCS A 057493,000585: 07,3464 13532 TCF LONGGYRO 057494,000586: 07,3465 77601 -GYROMIN OCT -176 # MAY BE ADJUSTED TO SPECIFY MINIMUM CMD 057495,000587: 07,3466 13472 TCF +4 057496,000588: 057497,000589: 07,3467 34736 CAF BIT14 057498,000590: 07,3470 26062 ADS ITEMP2 057499,000591: 07,3471 34755 CAF ZERO 057500,000592: 057501,000593: 07,3472 50061 +4 INDEX ITEMP1 057502,000594: 07,3473 53401 DXCH 1400
![]() |
Page 1313 |
057504,000596: 07,3474 30062 CA ITEMP2 # ENTIRE COMMAND. 057505,000597: 07,3475 54047 LASTSEG TS GYROCMD 057506,000598: 07,3476 03621 TC COARSTST 057507,000599: 057508,000600: 07,3477 30047 CA GYROCMD 057509,000601: 07,3500 00006 EXTEND 057510,000602: 07,3501 74742 MP BIT10 # WAITLIST DT 057511,000603: 07,3502 66257 AD THREE # TRUNCATION AND PHASE UNCERTAINTIES. 057512,000604: 07,3503 05214 TC WAITLIST 057513,000605: 07,3504 E3,1474 EBANK= CDUIND 057514,000606: 07,3504 03516 16103 2CADR TWOPULSE 057515,000607: 057516,000608: 07,3506 03512 EXITGYRO TC GYROEXIT 057517,000609: 07,3507 15272 TCF TASKOVER 057518,000610: 07,3510 34752 OUTPULSE CA BIT2 057519,000611: 07,3511 54047 TS GYROCMD 057520,000612: 07,3512 34742 GYROEXIT CAF BIT10 057521,000613: 07,3513 00006 EXTEND 057522,000614: 07,3514 05014 WOR CHAN14 057523,000615: 07,3515 00002 TC Q 057524,000616: 07,3516 44743 TWOPULSE CS BIT9 057525,000617: 07,3517 00006 EXTEND 057526,000618: 07,3520 03014 WAND CHAN14 057527,000619: 07,3521 03510 TC OUTPULSE 057528,000620: 07,3522 34753 CA BIT1 057529,000621: 07,3523 05204 TC TWIDDLE 057530,000622: 07,3524 03352 ADRES STRTGYRO 057531,000623: 07,3525 34743 CA BIT9 057532,000624: 07,3526 00006 EXTEND 057533,000625: 07,3527 05014 WOR CHAN14 057534,000626: 07,3530 03510 TC OUTPULSE 057535,000627: 07,3531 15272 TCF TASKOVER 057536,000628: 07,3532 50061 LONGGYRO INDEX ITEMP1 057537,000629: 07,3533 53401 DXCH 1400 057538,000630: 07,3534 34736 CAF BIT14 # 8192. INITIAL COMMAND IS AT LEAST 8192. 057539,000631: 07,3535 60062 AD ITEMP2 057540,000632: 07,3536 54047 TS GYROCMD 057541,000633: 057542,000634: 07,3537 00006 AUG3 EXTEND # GET WAITLIST DT TO TIME WHEN TRAIN IS 057543,000635: 07,3540 74742 MP BIT10 # ALMOST OUT. 057544,000636: 07,3541 67757 AD NEG3 057545,000637: 07,3542 05214 TC WAITLIST 057546,000638: 07,3543 E3,1474 EBANK= CDUIND 057547,000639: 07,3543 03546 16103 2CADR 8192AUG 057548,000640: 057549,000641: 07,3545 13506 TCF EXITGYRO 057550,000642: 07,3546 03621 8192AUG TC COARSTST 057551,000643: 057552,000644: 07,3547 31311 CA LGYRO # ADD 8192 PULSES TO GYROCMD 057553,000645: 07,3550 54003 TS EBANK
![]() |
Page 1314 |
057555,000647: 07,3551 74357 MASK LOW8 057556,000648: 07,3552 54061 TS ITEMP1 057557,000649: 057558,000650: 07,3553 50061 INDEX ITEMP1 # SEE IF THIS IS THE LAST AUG. 057559,000651: 07,3554 11400 CCS 1400 057560,000652: 07,3555 13561 TCF AUG2 # MORE TO COME. 057561,000653: 057562,000654: 07,3556 34736 CAF BIT14 057563,000655: 07,3557 26047 ADS GYROCMD 057564,000656: 07,3560 13476 TCF LASTSEG +1 057565,000657: 057566,000658: 07,3561 50061 AUG2 INDEX ITEMP1 057567,000659: 07,3562 55400 TS 1400 057568,000660: 07,3563 34736 CAF BIT14 057569,000661: 07,3564 26047 ADS GYROCMD 057570,000662: 07,3565 13537 TCF AUG3 # COMPUTE DT. 057571,000663:
![]() |
Page 1315 |
057573,000665: 07,3566 63465 MIN- AD -GYROMIN # POSSIBLE NEGATIVE OUTPUT. 057574,000666: 07,3567 00006 EXTEND 057575,000667: 07,3570 63356 BZMF STRTGYR2 057576,000668: 057577,000669: 07,3571 00006 MAJ- EXTEND # DEFINITE NEGATIVE OUTPUT. 057578,000670: 07,3572 43612 DCS GYROFRAC 057579,000671: 07,3573 20071 DAS RUPTREG1 057580,000672: 057581,000673: 07,3574 30064 CA ITEMP4 # SELECT NEGATIVE TORQUING FOR THIS GYRO. 057582,000674: 07,3575 64743 AD BIT9 057583,000675: 07,3576 00006 EXTEND 057584,000676: 07,3577 05014 WOR CHAN14 057585,000677: 057586,000678: 07,3600 40070 CS RUPTREG1 # SET UP RUPTREGS TO FALL INTO GMERGE. 057587,000679: 07,3601 54070 TS RUPTREG1 # ALL NUMBERS PUT INTO GYROCMD ARE 057588,000680: 07,3602 40071 CS RUPTREG2 # POSITIVE - BIT9 OF CHAN 14 DETERMINES 057589,000681: 07,3603 76106 MASK LOW7 # THE SIGN OF THE COMMAND. 057590,000682: 07,3604 40000 COM 057591,000683: 07,3605 56071 XCH RUPTREG2 057592,000684: 07,3606 40000 COM 057593,000685: 07,3607 13445 TCF GMERGE 057594,000686: 057595,000687: 07,3610 01700 GDESELCT OCT 1700 # TURN OFF SELECT AND ACTIVITY BITS. 057596,000688: 057597,000689: 07,3611 00000 00034 GYROFRAC 2DEC .215 B-21 057598,000690:
![]() |
Page 1316 |
057600,000692: # IMU MODE SWITCHING ROUTINES COME HERE WHEN ACTION COMPLETE. 057601,000693: 057602,000694: 07,3613 00006 ENDIMU EXTEND # MODE IS BAD IF CAGE HAS OCCURED OR IF 057603,000695: 07,3614 00011 READ DSALMOUT # ISS WARNING IS ON. 057604,000696: 07,3615 74753 MASK BIT1 057605,000697: 07,3616 10000 CCS A 057606,000698: 07,3617 13636 TCF IMUBAD 057607,000699: 057608,000700: 07,3620 13664 IMUGOOD TCF GOODEND # WITH C(A) = 0. 057609,000701: 057610,000702: 07,3621 34750 COARSTST CAF BIT4 057611,000703: 07,3622 00006 EXTEND 057612,000704: 07,3623 02012 RAND CHAN12 057613,000705: 07,3624 10000 CCS A 057614,000706: 07,3625 13632 TCF DONTPULS 057615,000707: 057616,000708: 07,3626 41277 CAGETSTG CS IMODES30 057617,000709: 07,3627 74746 MASK BIT6 057618,000710: 07,3630 10000 CCS A 057619,000711: 07,3631 00002 TC Q 057620,000712: 057621,000713: 07,3632 34755 DONTPULS CAF ZERO 057622,000714: 07,3633 55311 TS LGYRO 057623,000715: 057624,000716: 07,3634 33351 CAF LGWAKE 057625,000717: 07,3635 05137 TC JOBWAKE 057626,000718: 057627,000719: 07,3636 34755 IMUBAD CAF ZERO 057628,000720: 07,3637 13661 TCF BADEND 057629,000721: 057630,000722: 07,3640 34746 CAGETEST CAF BIT6 # SUBROUTINE TO TERMINATE IMU MODE 057631,000723: 07,3641 71277 MASK IMODES30 # SWITCH IF IMU HAS BEEN CAGED. 057632,000724: 07,3642 10000 CCS A 057633,000725: 07,3643 13636 TCF IMUBAD # DIRECTLY. 057634,000726: 07,3644 00002 TC Q # WITH C(A) = +0. 057635,000727: 057636,000728: 07,3645 41277 CAGETSTQ CS IMODES30 # SKIP IF IMU NOT BEING CAGED. 057637,000729: 07,3646 74746 MASK BIT6 057638,000730: 07,3647 10000 CCS A 057639,000731: 07,3650 24002 INCR Q 057640,000732: 07,3651 00002 TC Q 057641,000733: 057642,000734: 07,3652 41277 CAGETSTJ CS IMODES30 # IF DURING MODE SWITCH INITIALIZATION 057643,000735: 07,3653 74746 MASK BIT6 # IT IS FOUND THAT THE IMU IS BEING CAGED, 057644,000736: 07,3654 10000 CCS A # SET IMUCADR TO -0 TO INDICATE OPERATION 057645,000737: 07,3655 00002 TC Q # COMPLETE BUT FAILED. RETURN IMMEDIATELY 057646,000738: 057647,000739: 07,3656 44755 CS ZERO # TO SWRETURN. 057648,000740: 07,3657 55301 TS IMUCADR 057649,000741: 07,3660 12722 TCF MODEEXIT 057650,000742:
![]() |
Page 1317 |
057652,000744: # GENERALIZED MODE SWITCHING TERMINATION. ENTER AT GOODEND FOR SUCCESSFUL COMPLETION OF AN I/O OPERATION 057653,000745: # OR AT BADEND FOR A N UNSUCCESSFUL ONE. C(A) OR ARRIVAL =0 FOR IMU, 1 FOR OPTICS. 057654,000746: 057655,000747: 07,3661 54071 BADEND TS RUPTREG2 # DEVICE INDEX. 057656,000748: 07,3662 44755 CS ZERO # FOR FAILURE. 057657,000749: 07,3663 13666 TCF GOODEND +2 057658,000750: 057659,000751: 07,3664 54071 GOODEND TS RUPTREG2 057660,000752: 07,3665 44753 CS ONE # FOR SUCCESS. 057661,000753: 057662,000754: 07,3666 54072 TS RUPTREG3 057663,000755: 07,3667 50071 INDEX RUPTREG2 # SEE IF USING PROGRAM ASLEEP. 057664,000756: 07,3670 11301 CCS MODECADR 057665,000757: 07,3671 13675 TCF +4 # YES - WAKE IT UP. 057666,000758: 07,3672 13705 TCF ENDMODE # IF 0, PROGRAM NOT IN YET. 057667,000759: 057668,000760: 07,3673 00006 EXTEND 057669,000761: 07,3674 13706 BZF ENDMODE +1 # BZF = TCF IF MODECADR = -0. 057670,000762: 057671,000763: 07,3675 34755 CAF ZERO # WAKE SLEEPING PROGRAM. 057672,000764: 07,3676 50071 INDEX RUPTREG2 057673,000765: 07,3677 57301 XCH MODECADR 057674,000766: 07,3700 05137 TC JOBWAKE 057675,000767: 057676,000768: 07,3701 40072 CS RUPTREG3 # ADVANCE LOC IF SUCCESSFUL. 057677,000769: 07,3702 50064 INDEX LOCCTR 057678,000770: 07,3703 26164 ADS LOC 057679,000771: 057680,000772: 07,3704 15272 TCF TASKOVER 057681,000773: 057682,000774: 07,3705 30072 ENDMODE CA RUPTREG3 # -0 INDICATES OPERATION COMPLETE BUT 057683,000775: 07,3706 50071 +1 INDEX RUPTREG2 # UNSUCCESSFUL: -1 INDICATES COMPLETE AND 057684,000776: 07,3707 55301 TS MODECADR # SUCCESSFUL. 057685,000777: 07,3710 15272 TCF TASKOVER 057686,000778:
![]() |
Page 1318 |
057688,000780: # GENERAL STALLING ROUTINE. USING PROGRAMS COME HERE TO WAIT FOR I/O COMPLETION. 057689,000781: 057690,000782: # PROGRAM DESCRIPTION DATE- 21 FEB 1967 057691,000783: # LOG SECTION IMU MODE SWITCHING 057692,000784: # MOD BY- R.MELANSON TO ADD DOCUMENTATION ASSEMBLY SUNDISK REV. 82 057693,000785: 057694,000786: # FUNCTIONAL DESCRIPTION- 057695,000787: # TO DELAY FURTHER EXECUTION OF THE CALLING ROUTINE UNTIL ITS SELECTED 057696,000788: # I/O FUNCTION IS COMPLETE.THE FOLLOWING CHECKS ON THE CALLING ROUTINE:S 057697,000789: # MODECADR ARE MADE AND ACTED UPON. 057698,000790: # 1) +0 INDICATES INCOMPLETE I/O OPERATION.CALLING ROUTINE IS PUT TO 057699,000791: # SLEEP. 057700,000792: # 2) -1 INDICATES COMPLETED I/O OPERATION. STALL BYPASSES JOBSLEEP 057701,000793: # CALL AND RETURNS TO CALLING ROUTINE AT L+3 057702,000794: # 3) -0 INDICATES COMPLETED I/O WITH FAILURE. STALL CLEARS MODECADR 057703,000795: # AND RETURNS TO CALLING ROUTINE AT L+2. 057704,000796: # 4) VALUE GREATER THAN 0 INDICATES TWO ROUTINES CALLING FOR USE OF 057705,000797: # SAME DEVICE. STALL EXITS TO ABORT WHICH EXECUTES A PROGRAM 057706,000798: # RESTART WHICH IN TURN CLEARS ALL MODECADR REGISTERS. 057707,000799: 057708,000800: # CALLING SEQUENCE- 057709,000801: # L TC BANKCALL 057710,000802: # L+1 CADR (ONE OF 5 STALL ADDRESSES I.E. IMUSTALL,OPTSTALL,RADSTALL, 057711,000803: # AOTSTALL,OR ATTSTALL) 057712,000804: 057713,000805: # NORMAL-EXIT MODE- 057714,000806: # TCF JOBSLEEP OR TCF MODEXIT 057715,000807: 057716,000808: # ALARM OR ABORT EXIT MODE- 057717,000809: # TC ABORT 057718,000810: 057719,000811: # OUTPUT- 057720,000812: # MODECADR= CADR IF JOBSLEEP 057721,000813: # MODECADR=+0 IF I/O COMPLETE 057722,000814: # BUF2=L+3 IF I/O COMPLETE AND GOOD. 057723,000815: # BUF2=L+2 IF I/O COMPLETE BUT FAILED. 057724,000816: 057725,000817: # ERASABLE INITIALIZATION- 057726,000818: # BUF2 CONTAINS RETURN ADDRESS PLUS 1,(L+2) 057727,000819: # BUF2+1 CONTAINS FBANK VALUE OF CALLING ROUTINE. 057728,000820: # MODECADR OF CALLING ROUTINE CONTAINS +0,-1,-0 OR CADR RETURN ADDRESS. 057729,000821: 057730,000822: # DEBRIS- 057731,000823: # RUPTREG2 AND CALLING ROUTINE MODECADR. 057732,000824: 057733,000825: 07,3711 34753 AOTSTALL CAF ONE # AOT. 057734,000826: 07,3712 03716 TC STALL 057735,000827: 057736,000828: 07,3713 34752 RADSTALL CAF TWO 057737,000829: 07,3714 13716 TCF STALL 057738,000830:
![]() |
Page 1319 |
057740,000832: 07,3715 07,3711 OPTSTALL EQUALS AOTSTALL 057741,000833: 057742,000834: 07,3715 34755 IMUSTALL CAF ZERO # IMU. 057743,000835: 057744,000836: 07,3716 00004 STALL INHINT 057745,000837: 07,3717 54071 TS RUPTREG2 # SAVE DEVICE INDEX. 057746,000838: 07,3720 50000 INDEX A # SEE IF OPERATION COMPLETE. 057747,000839: 07,3721 11301 CCS MODECADR 057748,000840: 07,3722 13740 TCF MODABORT # ALLOWABLE STATES ARE +0, -1, AND -0. 057749,000841: 07,3723 13734 TCF MODESLP # OPERATION INCOMPLETE. 057750,000842: 07,3724 13730 TCF MODEGOOD # COMPLETE AND GOOD IF = -1. 057751,000843: 057752,000844: 07,3725 50071 MG2 INDEX RUPTREG2 # COMPLETE AND FAILED IF -0. RESET TO +0. 057753,000845: 07,3726 55301 TS MODECADR # RETURN TO CALLER. 057754,000846: 07,3727 12722 TCF MODEEXIT 057755,000847: 057756,000848: 07,3730 10000 MODEGOOD CCS A # MAKE SURE INITIAL STATE -1. 057757,000849: 07,3731 13740 TCF MODABORT 057758,000850: 057759,000851: 07,3732 24133 INCR BUF2 # IF SO, INCREMENT RETURN ADDRESS AND 057760,000852: 07,3733 13725 TCF MG2 # RETURN IMMEDIATELY, SETTING CADR = +0. 057761,000853: 057762,000854: 07,3734 04645 MODESLP TC MAKECADR # CALL FROM SWITCHABLE FIXED ONLY. 057763,000855: 07,3735 50071 INDEX RUPTREG2 057764,000856: 07,3736 55301 TS MODECADR 057765,000857: 07,3737 15133 TCF JOBSLEEP 057766,000858: 057767,000859: 07,3740 52134 MODABORT DXCH BUF2 057768,000860: 07,3741 05717 TC BAILOUT1 # TWO PROGRAMS USING THE SAME DEVICE. 057769,000861: 07,3742 31210 OCT 31210 057770,000862:
![]() |
Page 1320 |
057772,000864: # CONSTANTS FOR MODE SWITCHING ROUTINES 057773,000865: 057774,000866: 07,3743 5752 BITS3&4 = OCT14 057775,000867: 07,3743 4771 BITS4&6 = OCT50 057776,000868: 07,3743 00030 BITS4-5 OCT 00030 057777,000869: 07,3744 4744 IMUSEFLG EQUALS BIT8 # INTERPRETER SWITCH 7. 057778,000870: 07,3744 77500 -COMMAX DEC -191 B-14 057779,000871: 07,3745 77477 -COMMAX- DEC -192 B-14 057780,000872: 07,3746 00074 600MS DEC 60 B-14 057781,000873: 07,3747 07,3155 IMUFIN20 = IMUFINE 057782,000874: 07,3747 31304 GOMANUR CA ATTCADR # IS KALCMANU FREE 057783,000875: 07,3750 00006 EXTEND 057784,000876: 07,3751 13753 BZF +2 057785,000877: 07,3752 03740 TC MODABORT # BAILOUT 057786,000878: 07,3753 00006 +2 EXTEND 057787,000879: 07,3754 30134 DCA BUF2 057788,000880: 07,3755 53305 DXCH ATTCADR # SAVE FINAL RETURN FOR KALCMAN3 057789,000881: 057790,000882: 07,3756 30006 CA BBANK 057791,000883: 07,3757 74757 MASK SEVEN 057792,000884: 07,3760 27305 ADS ATTCADR +1 057793,000885: 057794,000886: 07,3761 30167 CA PRIORITY 057795,000887: 07,3762 77737 MASK PRIO37 057796,000888: 07,3763 55306 TS ATTPRIO # SAVE USERS PRIO 057797,000889: 057798,000890: 07,3764 33770 CAF KALEBCON # SET EBANK FOR KALCMAN3 057799,000891: 07,3765 54003 TS EBANK 057800,000892: 07,3766 04635 TC POSTJUMP 057801,000893: 07,3767 44004 CADR KALCMAN3 057802,000894: 07,3770 03275 KALEBCON ECADR BCDU 057803,000895:
![]() |
Page 1321 |
057805,000897: # PROGRAM DESCRIPTION 057806,000898: # IMU STATUS CHECK ROUTINE R02 (SUBROUTINE UTILITY) 057807,000899: # MOD NO - 1 057808,000900: # MOD BY - N.BRODEUR 057809,000901: # FUNCTIONAL DESCRIPTION 057810,000902: 057811,000903: # TO CHECK WHETHER IMU IS ON AND IF ON WHETHER IT IS ALIGNED TO AN 057812,000904: # ORIENTATION KNOWN BY THE CMC. TO REQUEST SELECTION OF THE APPROPRIATE 057813,000905: # PROGRAM IF THE IMU IS OFF OR NOT ALIGNED TO AN ORIENTATION KNOWN BY THE 057814,000906: # CMC. CALLED THROUGH BANKCALL 057815,000907: # CALLING SEQUENCE- 057816,000908: 057817,000909: # L TC BANKCALL 057818,000910: # L+1 CADR R02BOTH 057819,000911: # SUBROUTINES CALLED 057820,000912: 057821,000913: # VARALARM 057822,000914: # FLAGUP 057823,000915: # NORMAL EXIT MODES 057824,000916: 057825,000917: # AT L+2 OF CALLING SEQUENCE 057826,000918: # ALARM OR ABORT EXIT MODES 057827,000919: # GOTOPOOH, WITH ALARM 057828,000920: # ERASABLE INITIALIZATION REQUIRED 057829,000921: 057830,000922: # NONE 057831,000923: # DEBRIS 057832,000924: 057833,000925: # CENTRALS-A,Q,L 057834,000926: 34,3774 BANK 34 057835,000927: 04,2000 SETLOC R02 057836,000928: 04,2000 BANK 057837,000929: 04,3240 COUNT* $$/R02 057838,000930: 04,3240 00063 DEC51 DEC 51 B-14 057839,000931: 04,3241 34737 R02BOTH CAF REFSMBIT 057840,000932: 04,3242 70077 MASK FLAGWRD3 057841,000933: 04,3243 10000 CCS A 057842,000934: 04,3244 03255 TC R02ZERO # ZERO IMUS 057843,000935: 057844,000936: 04,3245 31277 CA IMODES30 057845,000937: 04,3246 74743 MASK BIT9 # IS ISS INITIALIZED 057846,000938: 04,3247 00006 EXTEND 057847,000939: 04,3250 13252 BZF +2 057848,000940: 04,3251 44750 CS BIT4 # SEND IMU ALARM CODE 210 057849,000941: 04,3252 63260 AD OCT220 # SEND REFSMM ALARM 057850,000942: 04,3253 05745 TC VARALARM 057851,000943: 057852,000944: 04,3254 06001 TC GOTOPOOH 057853,000945: 057854,000946: 04,3255 05515 R02ZERO TC UPFLAG
![]() |
Page 1322 |
057856,000948: 04,3256 00007 ADRES IMUSE 057857,000949: 04,3257 14631 TCF SWRETURN 057858,000950: 04,3260 00220 OCT220 OCT 220 057859,000951:
![]() |
Page 1323 |
057861,000953: # PROGRAM DESCRIPTION P06 10FEB67 057862,000954: 057863,000955: # TRANSFER THE ISS/CMC FROM THE OPERATE TO THE STANDBY CONDITION. 057864,000956: 057865,000957: # THE NORMAL CONDITION OF READINESS OF THE GNCS WHEN NOT IN USE IS STANDBY. IN THIS CONDITION THE IMU 057866,000958: # HEATER POWER IS ON. THE IMU OPERATE POWER IS OFF. THE COMPUTER POWER IS ON. THE OPTICS POWER IS OFF. THE 057867,000959: # CMC STANDBY ON THE MAIN AND LEB DISKYS IS ON. 057868,000960: 057869,000961: # CALLING SEQUENCE: 057870,000962: # ASTRONAUT REQUEST THROUGH DSKY V37E 06E. 057871,000963: 057872,000964: # SUBROUTINES CALLED: 057873,000965: # GOPERF1 057874,000966: # BANKCALL 057875,000967: # FLAGDOWN 057876,000968:
![]() |
Page 1324 |
057878,000970: # PRESTAND PREPARES FOR STANDBY BY SNAPSHOTTING THE SCALER AND TIME1 TIME2 057879,000971: # THE LOW 5 BITS OF THE SCALER ARE INSPECTED TO INSURE COMPATABILITY 057880,000972: # BETWEEN THE SCALER READING AND THE TIME1 TIME2 READING. 057881,000973: 057882,000974: 37,2000 SETLOC P05P06 057883,000975: 37,2000 BANK 057884,000976: 057885,000977: 37,3654 0314 EBANK= TIME2SAV 057886,000978: 37,3654 COUNT* $$/P06 057887,000979: 057888,000980: 37,3654 05515 P06 TC UPFLAG # SET NODOV37 BIT 057889,000981: 37,3655 00054 ADRES NODOFLAG 057890,000982: 057891,000983: 37,3656 00004 PRESTAND INHINT 057892,000984: 37,3657 00006 EXTEND 057893,000985: 37,3660 30025 DCA TIME2 # SNAPSHOT TIME1TIME2 057894,000986: 37,3661 52315 DXCH TIME2SAV 057895,000987: 37,3662 03713 TC SCALPREP 057896,000988: 37,3663 03656 TC PRESTAND # T1,T2,SCALER NOT COMPATIBLE 057897,000989: 37,3664 52155 DXCH MPAC # T1,T2 AND SCALER OK 057898,000990: 37,3665 52317 DXCH SCALSAVE # STORE SCALER 057899,000991: 37,3666 00004 INHINT 057900,000992: 37,3667 04616 TC BANKCALL 057901,000993: 37,3670 17142 CADR RNDREFDR # REFSMM, DRIFT, TRACK FLAGS DOWN 057902,000994: 057903,000995: 37,3671 05527 TC DOWNFLAG 057904,000996: 37,3672 00007 ADRES IMUSE # IMUSE DOWN 057905,000997: 37,3673 05527 TC DOWNFLAG 057906,000998: 37,3674 00010 ADRES RNDVZFLG # RNDVZFLG DOWN 057907,000999: 057908,001000: 37,3675 34741 CAF BIT11 057909,001001: 37,3676 00006 EXTEND 057910,001002: 37,3677 05013 WOR CHAN13 # SET STANDBY ENABLE BIT 057911,001003: 057912,001004: 37,3700 05364 TC PHASCHNG # SET RESTART TO POSTAND WHEN STANDBY 057913,001005: 37,3701 07024 OCT 07024 # RECOVERS 057914,001006: 37,3702 20000 OCT 20000 057915,001007: 37,3703 0316 EBANK= SCALSAVE 057916,001008: 37,3703 03733 76060 2CADR POSTAND 057917,001009: 057918,001010: 37,3705 34774 CAF OCT62 057919,001011: 37,3706 04616 TC BANKCALL 057920,001012: 37,3707 20624 CADR GOPERF1 057921,001013: 37,3710 13705 TCF -3 057922,001014: 37,3711 13705 TCF -4 057923,001015: 37,3712 13705 TCF -5 057924,001016: 057925,001017: 37,3713 4774 OCT62 EQUALS .5SEC # DEC 50 = OCT 62 057926,001018: 057927,001019: # THE LOW 5 BITS OF THE SCALER READS 10000 FOR THE FIRST INTERVAL AFTER A
![]() |
Page 1325 |
057929,001021: # T1 INCREMENT. IF SCALPREP DETECTS THIS INTERVAL THE T1,T2 AND SCALER 057930,001022: # DATA ARE NOT COMPATABLE AND RETURN IS TO L+1 FOR ANOTHER READING OF THE 057931,001023: # DATA. OTHERWISE, THE RETURN IS TO L+2 TO PROCEED. ROUTINE ALSO PREPARES 057932,001024: # THE SCALER READING FOR COMPUTATION OF THE INCREMENT TO UPDATE T1T2. (THE 057933,001025: # 10 MS BIT (BIT 6) OF THE SCALER IS INCREMENTED 5 MS OUT OF PHASE FROM 057934,001026: # T1.) ADDITION OF 5 MS (BIT 5) TO THE SCALER READING HAS THE EFFECT OF 057935,001027: # ADJUSTING BIT 6 IN THE SCALER TO BE IN PHASE WITH BIT 1 OF T1. THE LOW 5 057936,001028: # BITS OF THE SCALER READING ARE THEN SET TO ZERO, TO TRUNCATE THE SCALER 057937,001029: # DATA TO 10 MS. RESULTS ARE STORED IN MPAC, +1. 057938,001030: 057939,001031: 37,3713 00006 SCALPREP EXTEND 057940,001032: 37,3714 22156 QXCH MPAC +2 057941,001033: 37,3715 04103 TC FINETIME +1 057942,001034: 37,3716 00003 RELINT 057943,001035: 37,3717 52155 DXCH MPAC 057944,001036: 37,3720 34747 CA BIT5 # ADD 5 MS TO THE SCALER READING. 057945,001037: 37,3721 54001 TS L 057946,001038: 37,3722 34755 CA ZERO 057947,001039: 37,3723 20155 DAS MPAC 057948,001040: 37,3724 44346 CS LOW5 # SET LOW 5 BITS OF (SCALER+5MS) TO ZERO 057949,001041: 37,3725 70155 MASK MPAC +1 # AND STORE RESULTS IN MPAC,+1. 057950,001042: 37,3726 56155 XCH MPAC +1 057951,001043: 37,3727 74346 MASK LOW5 # TEST LOW 5 BITS OF SCALER FOR THE FIRST 057952,001044: # INTERVAL AFTER THE T1 INCREMENT 057953,001045: # (NOW = 00000, SINCE BIT 5 ADDED). 057954,001046: 37,3730 10000 CCS A # IS IT 1ST INTERVAL AFTER T1 INCREMENT 057955,001047: 37,3731 24156 INCR MPAC +2 # NO 057956,001048: 37,3732 00156 TC MPAC +2 # YES 057957,001049: 057958,001050: # POSTAND RECOVERS TIME AFTER STANDBY.THE SCALER IS SNAPSHOTTED AND THE 057959,001051: # TIME1 TIME2 COUNTER IS SET TO ZERO. THE LOW 5 BITS OF THE SCALER ARE 057960,001052: # INSPECTED TO INSURE COMPATABILITY BETWEEN THE SCALER READING AND THE 057961,001053: # CLEARING OF THE TIME COUNTER. IT THEN COMPUTES THE DIFFERENCE IN SCALER 057962,001054: # VALUES (IN DP) AND ADDS THIS TO THE PREVIOUSLY SNAPSHOTTED VALUES OF 057963,001055: # TIME1 TIME2 AND PLACES THIS NEW TIME INTO THE TIME1 TIME2 COUNTER. 057964,001056: 057965,001057: 37,3733 COUNT* $$/P05 057966,001058: 057967,001059: 37,3733 44741 POSTAND CS BIT11 # RECOVER TIME AFTER STANDBY. 057968,001060: 37,3734 00006 EXTEND 057969,001061: 37,3735 03013 WAND CHAN13 # CLEAR STANDBY ENABLE BIT 057970,001062: 37,3736 00004 INHINT 057971,001063: 37,3737 34755 CA ZERO 057972,001064: 37,3740 54001 TS L 057973,001065: 37,3741 52025 DXCH TIME2 # CLEAR TIME1TIME2 057974,001066: 37,3742 03713 TC SCALPREP # STORE SCALER IN MPAC, MPAC+1 057975,001067: 37,3743 03736 TC POSTAND +3 # T1,T2,SCALER NOT COMPATIBLE 057976,001068: 37,3744 00006 EXTEND # T1,T2 AND SCALER OK 057977,001069: 37,3745 40317 DCS SCALSAVE 057978,001070: 37,3746 20155 DAS MPAC # FORM DP DIFFERENCE OF POSTSTANDBY SCALER
![]() |
Page 1326 |
057980,001072: 37,3747 34742 CAF BIT10 # MINUS PRESTANDBY SCALER AND SHIFT RIGHT 057981,001073: 37,3750 07321 TC SHORTMP # 5 TO ALIGN BITS WITH TIME1TIME2. 057982,001074: 37,3751 34755 CAF ZERO 057983,001075: 37,3752 54156 TS MPAC +2 # NEEDED FOR TP AGREE 057984,001076: 37,3753 07271 TC TPAGREE # MAKE DP DIFF AGREE 057985,001077: 37,3754 10154 CCS MPAC 057986,001078: 37,3755 03762 TC POSTCOM # IF DP DIFF NET +, NO SCALER OVERFLOW 057987,001079: 37,3756 03762 TC POSTCOM # BETWEEN PRE AND POST STANDBY. 057988,001080: 37,3757 03760 TC +1 # IF DP DIFF NET -, SCALER OVERFLOWED. ADD 057989,001081: 37,3760 34742 CAF BIT10 # BIT 10 TO HIGH DIFF TO CORRECT. 057990,001082: 37,3761 26154 ADS MPAC 057991,001083: 37,3762 00006 POSTCOM EXTEND # C(MPAC,+1) IS MAGNITUDE OF DELTA SCALER. 057992,001084: 37,3763 30315 DCA TIME2SAV # PRESTANDBY TIME1TIME2 057993,001085: 37,3764 20155 DAS MPAC 057994,001086: 37,3765 07271 TC TPAGREE # FORCE SIGN AGREEMENT 057995,001087: 37,3766 52155 DXCH MPAC # UPDATED VALUE FOR T1,T2. 057996,001088: 37,3767 20025 DAS TIME2 # LOAD UPDATED VALUE INTO T1,T2, WITH 057997,001089: 37,3770 05527 TC DOWNFLAG # CLEAR NODOFLAG 057998,001090: 37,3771 00054 ADRES NODOFLAG 057999,001091: 058000,001092: 37,3772 06001 TC GOTOPOOH End of include-file IMU_MODE_SWITCHING_ROUTINES.agc. Parent file is MAIN.agc