Source Code
062977,000001: # Copyright: Public domain.
062978,000002: # Filename: SPS_BACK-UP_RCS_CONTROL.agc
062979,000003: # Purpose: A section of Luminary 1C, revision 131.
062980,000004: # It is part of the source code for the Lunar Module's (LM)
062981,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
062982,000006: # This file is intended to be a faithful transcription, except
062983,000007: # that the code format has been changed to conform to the
062984,000008: # requirements of the yaYUL assembler rather than the
062985,000009: # original YUL assembler.
062986,000010: # Reference: pp. 1504-1507 of 1729.pdf.
062987,000011: # Contact: Ron Burkey <info@sandroid.org>.
062988,000012: # Website: www.ibiblio.org/apollo/index.html
062989,000013: # Mod history: 06/08/03 RSB. Began transcribing.
062990,000014: # 05/14/05 RSB Corrected website reference above.
062991,000015:
062992,000016: # Page 1504
062993,000017: # PROGRAM NAME: SPSRCS
062994,000018: # AUTHOR: EDGAR M. CSHIKA (AC ELECTRONICS)
062995,000019: # MODIFIED: TO RETURN TO ALL AXES VIA Q BY P. S. WEISSMAN, OCT 7, 1968
062996,000020: # MODIFIED TO IMPROVE BENDING STABILITY BY G. KALAN, FEB. 14, 1969
062997,000021:
062998,000022: # FUNCTIONAL DESCRIPTION:
062999,000023: # THE PROGRAM CONTROLS THE FIRING OF ALL RCS JETS IN THE DOCKED CONFIGURATION ACCORDING TO THE FOLLOWING PHASE
063000,000024: # PLANE LOGIC.
063001,000025:
063002,000026: # 1. JET SENSE TEST (SPSRCS)
063003,000027: # IF JETS ARE FIRING NEGATIVELY, SET OLDSENSE NEGATIVE AND CONTINUE
063004,000028: # IF JETS ARE FIRING POSITIVLEY, SET OLDSENCE POSITIVE AND CONTINUE
063005,000029: # IF JETS ARE NOT FIRING, SET OLDSENSE TO ZERO AND GO TO OUTER RATE LIMIT TEST
063006,000030:
063007,000031: # 2. RATE DEAD BAND TEST
063008,000032: # IF JETS ARE FIRING NEGATIVELY AND RATE IS GREATER THAN TARGET RATE, LEAVE
063009,000033: # JETS ON AND GO TO INHIBITION LOGIC. OTHERWISE, CONTINUE.
063010,000034: # IF JETS ARE FIRING POSITIVELY AND RATE IS LESS THAN TARGET RATE, LEAVE
063011,000035: # JETS ON AND GO TO INHIBITION LOGIC. OTHERWISE, CONTINUE.
063012,000036:
063013,000037: # 3. OUTER RATE LIMIT TEST (SPSSTART)
063014,000038: # IF MAGNITUDE OF EDOT IS GREATER THAN 1.73 DEG/SEC SET JET FIRING TIME
063015,000039: # TO REDUCE RATE AND GO TO INHIBITION LOGIC. OTHERWISE, CONTINUE.
063016,000040:
063017,000041: # 4. COAST ZONE TEST
063018,000042: # IF STATE (E,EDOT) IS BELOW LINE E + 4 X EDOT > -1.4 DEG AND EDOT IS LESS THAN 1.30 DEG/SEC SET JET TIME
063019,000043: # POSITIVE AND CONTINUE. OTHERWISE, SET JET FIRING TIME TO ZERO AND CONTINUE.
063020,000044: # IF STATE IS ABOVE LINE E + 4 X EDOT > +1.4 DEG AND EDOT IS GREATER THAN -1.30 DEG/SEC, SET JET TIME NEGATIVE
063021,000045: # AND CONTINUE. OTHERWISE, SET JET FIRING TIME TO ZERO AND CONTINUE.
063022,000046:
063023,000047: # 5. INHIBITION LOGIC
063024,000048: # IF OLDSENSE IS NON-ZERO:
063025,000049: # A) RETURN IF JET TIME AS THE SAME SIGN AS OLDSENSE
063026,000050: # B) SET INHIBITION COUNTER* AND RETURN IF JET TIME IS ZERO
063027,000051: # C) SET INHIBITION COUNTER,* SET JET TIME TO ZERO AND RETURN IF SIGN
063028,000052: # OF JET TIME IS OPPOSITE TO THAT OF OLDSENSE
063029,000053: # IF OLDSENSE IS ZERO:
063030,000054: # A) RETURN IF INHIBITION COUNTER IS NOT POSITIVE
063031,000055: # B) SET JET TIME TO ZERO AND RETURN IF INHIBITION COUNTER IS POSITIVE
063032,000056: # *NOTE: INHIBITION COUNTERS CAN BE SET TO 4 OR 10 FOR THE P AND UV AXES,
063033,000057: # RESPECTIVELY, IN SPSRCS. THEY ARE DECREMENTED BY ONE AT THE BEGINNING OF
063034,000058: # Page 1505
063035,000059: # EACH DAP PASS.
063036,000060:
063037,000061: # THE MINIMUM PULSE WIDTH OF THIS CONTROLLER IS DETERMINED BY THE REPETITION RATE AT WHICH THIS ROUTINE IS CALLED
063038,000062: # AND IS NOMINALLY 100 MS FOR ALL AXES IN DRIFTING FLIGHT. DURING POWERED FLIGHT THE MINIMUM IS 100 MS FOR THE
063039,000063: # P AXIS AND 200 MS FOR THE CONTROL OF THE U AND VE AXES.
063040,000064:
063041,000065: # CALLING SEQUENCE:
063042,000066: # INHINT
063043,000067: # TC IBNKCALL
063044,000068: # CADR SPSRCE
063045,000069:
063046,000070: # EXIT:
063047,000071: # TC Q
063048,000072:
063049,000073: # ALARM/ABORT MODE: NONE
063050,000074:
063051,000075: # SUBROUTINES CALLED: NONE
063052,000076:
063053,000077: # INPUT: E, EDOT
063054,000078: # TJP, TJV, TJU TJ MUST NOT BE NEGATIVE ZERO
063055,000079:
063056,000080: # OUTPUT: TJP, TJV, TJU
063057,000081:
063058,000082: 21,3655 BANK 21
063059,000083: 21,2000 SETLOC DAPS4
063060,000084: 21,2000 BANK
063061,000085:
063062,000086: 21,3655 COUNT* $$/DAPBU
063063,000087:
063064,000088: 21,3655 E6,1525 EBANK= TJU
063065,000089: 21,3655 00632 RATELIM2 OCT 00632 # 1.125 DEG/SEC
063066,000090: 21,3656 34736 POSTHRST CA HALF
063067,000091:
063068,000092: 21,3657 51505 NDX AXISCTR
063069,000093: 21,3660 55525 TS TJU
063070,000094: 21,3661 11744 CCS OLDSENSE
063071,000095: 21,3662 13702 TCF POSCHECK # JETS FIRING POSITIVELY
063072,000096: 21,3663 13705 TCF CTRCHECK # JETS OFF. CHECK INHIBITION CTR
063073,000097: 21,3664 51505 NEGCHECK INDEX AXISCTR # JETS FIRING NEGATIVELY
063074,000098: 21,3665 41525 CS TJU
063075,000099: 21,3666 10000 CCS A
063076,000100: 21,3667 00002 TC Q # RETURN
063077,000101: 21,3670 13672 TCF +2
063078,000102: 21,3671 13672 TCF +1 # JETS COMMANDED OFF. SET CTR AND RETURN
063079,000103: 21,3672 51505 SETCTR INDEX AXISCTR # JET FIRING REVERSAL COMMANDED. SET CTR,
063080,000104: 21,3673 33714 CA UTIME # SET JET TIME TO ZER, AND RETURN
063081,000105: # Page 1506
063082,000106: 21,3674 51505 INDEX AXISCTR
063083,000107: 21,3675 55767 TS UJETCTR
063084,000108: 21,3676 34755 ZAPTJ CA ZERO
063085,000109: 21,3677 51505 INDEX AXISCTR
063086,000110: 21,3700 55525 TS TJU
063087,000111: 21,3701 00002 TC Q
063088,000112: 21,3702 51505 POSCHECK INDEX AXISCTR
063089,000113: 21,3703 31525 CA TJU
063090,000114: 21,3704 13666 TCF NEGCHECK +2
063091,000115: 21,3705 51505 CTRCHECK INDEX AXISCTR # CHECK JET INHIBITION COUNTER
063092,000116: 21,3706 11767 CCS UJETCTR
063093,000117: 21,3707 13711 TCF +2
063094,000118: 21,3710 00002 TC Q # CTR IS NOT POSITIVE. RETURN
063095,000119: 21,3711 13676 TCF ZAPTJ # CTR IS POSITIVE. INHIBIT FIRINGS
063096,000120: 21,3712 00002 TC Q # CTR IS NOT POSITIVE. RETURN
063097,000121: 21,3713 00004 OCT 00004
063098,000122: 21,3714 00012 UTIME OCT 00012
063099,000123: 21,3715 00012 OCT 00012
063100,000124: 21,3716 E6,1744 OLDSENSE EQUALS DAPTREG1
063101,000125: 21,3716 44753 NEGFIRE CS ONE # JETS FIRING NEGATIVELY
063102,000126: 21,3717 55744 TS OLDSENSE
063103,000127: 21,3720 31427 CA EDOT
063104,000128: 21,3721 13725 TCF +4
063105,000129: 21,3722 34753 PLUSFIRE CA ONE
063106,000130: 21,3723 55744 TS OLDSENSE
063107,000131: 21,3724 41427 CS EDOT # RATE DEAD BAND TEST
063108,000132: 21,3725 22000 LXCH A
063109,000133: 21,3726 40111 CS DAPBOOLS # IF DRIFTBIT = 1, USE ZERO TARGET RATE
063110,000134: 21,3727 74744 MASK DRIFTBIT # IF DRIFTBIT = 0, USE 0.10 RATE TARGET
063111,000135: 21,3730 10000 CCS A
063112,000136: 21,3731 34767 CA RATEDB1
063113,000137: 21,3732 60001 AD L
063114,000138: 21,3733 00006 EXTEND
063115,000139: 21,3734 63744 BZMF SPSSTART
063116,000140: 21,3735 13661 TCF POSTHRST +3
063117,000141:
063118,000142: 21,3736 51505 SPSRCS INDEX AXISCTR # JET SENSE TEST
063119,000143: 21,3737 11525 CCS TJU
063120,000144: 21,3740 13722 TCF PLUSFIRE # JETS FIRING POSITIVELY
063121,000145: 21,3741 13743 TCF +2
063122,000146: 21,3742 13716 TCF NEGFIRE # JETS FIRING NEGATIVELY
063123,000147: 21,3743 55744 TS OLDSENSE # JETS OFF
063124,000148: 21,3744 31427 SPSSTART CA EDOT # OUTER RATE LIMIT TEST
063125,000149: 21,3745 00006 EXTEND
063126,000150: 21,3746 74766 MP RATELIM1
063127,000151: 21,3747 10000 CCS A
063128,000152: 21,3750 13767 TCF NEGTHRST # OUTER RATE LIMIT EXCEEDED
063129,000153: 21,3751 13753 TCF +2
063130,000154: 21,3752 13656 TCF POSTHRST # OUTER RATE LIMIT EXCEEDED
063131,000155: 21,3753 31427 CA EDOT # COAST ZONE TEST
063132,000156: # Page 1507
063133,000157: 21,3754 61751 AD E
063134,000158: 21,3755 00006 EXTEND
063135,000159: 21,3756 71411 MP DKDB # PAD LOADED DEADBAND. FRESHSTART: 1.4 DEG
063136,000160: 21,3757 00006 EXTEND
063137,000161: 21,3760 13775 BZF TJZERO
063138,000162:
063139,000163: 21,3761 00006 EXTEND
063140,000164: 21,3762 63771 BZMF +7
063141,000165: 21,3763 31427 CA EDOT
063142,000166: 21,3764 63655 AD RATELIM2
063143,000167: 21,3765 00006 EXTEND
063144,000168: 21,3766 63775 BZMF TJZERO
063145,000169: 21,3767 44736 NEGTHRST CS HALF
063146,000170: 21,3770 13657 TCF POSTHRST +1
063147,000171: 21,3771 43655 +7 CS RATELIM2
063148,000172: 21,3772 61427 AD EDOT
063149,000173: 21,3773 00006 EXTEND
063150,000174: 21,3774 63656 BZMF POSTHRST
063151,000175: 21,3775 34755 TJZERO CA ZERO
063152,000176: 21,3776 13657 TCF POSTHRST +1
063153,000177:
063154,000178: 21,3777 4766 RATELIM1 = CALLCODE # = 00032, CORRESPONDING TO 1.73 DEG/SEC
063155,000179: 21,3777 4767 RATEDB1 = TBUILDFX # = 00045, CORRESPONDS TO 0.101 DEG/SEC
063156,000180:
063157,000181: # *** END OF LM DAP .025 ***
063158,000182:
063159,000183:
End of include-file SPS_BACK-UP_RCS_CONTROL.agc. Parent file is MAIN.agc