Source Code
058178,000001: # Copyright: Public domain.
058179,000002: # Filename: DAP_INTERFACE_SUBROUTINES.agc
058180,000003: # Purpose: A section of Luminary 1C, revision 131.
058181,000004: # It is part of the source code for the Lunar Module's (LM)
058182,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
058183,000006: # This file is intended to be a faithful transcription, except
058184,000007: # that the code format has been changed to conform to the
058185,000008: # requirements of the yaYUL assembler rather than the
058186,000009: # original YUL assembler.
058187,000010: # Reference: pp. 1403-1406 of 1729.pdf.
058188,000011: # Contact: Ron Burkey <info@sandroid.org>.
058189,000012: # Website: www.ibiblio.org/apollo/index.html
058190,000013: # Mod history: 06/07/03 RSB. Began transcribing.
058191,000014: # 05/14/05 RSB Corrected website reference above.
058192,000015:
058193,000016: # Page 1403
058194,000017: 20,2115 BANK 20
058195,000018: 20,2000 SETLOC DAPS3
058196,000019: 20,2000 BANK
058197,000020:
058198,000021: 20,2115 E6,1634 EBANK= CDUXD
058199,000022: 20,2115 COUNT* $$/DAPIF
058200,000023:
058201,000024: # MOD 0 DATE 11/16/66 BY GEORGE W. CHERRY
058202,000025: # MOD 1 01/23/67 MODIFICATION BY PETER ADLER
058203,000026:
058204,000027: # FUNCTIONAL DESCRIPTION
058205,000028: # HERIN IS A COLLECTION OF SUBROUTINES WHICH ALLOW MISSION CONTROL PROGRAMS TO CONTROL THE MODE
058206,000029: # AND INTERFACE WITH THE DAP.
058207,000030:
058208,000031: # CALLING SEQUENCES
058209,000032: # IN INTERRUPT OR WITH INTERRUPT INHIBITED
058210,000033: # TC IBNKCALL
058211,000034: # FCADR ROUTINE
058212,000035: # IN A JOB WITHOUT INTERRUPT INHIBITED
058213,000036: # INHINT
058214,000037: # TC IBNKCALL
058215,000038: # FCADR ROUTINE
058216,000039: # RELINT
058217,000040:
058218,000041: # OUTPUT
058219,000042: # SEE INDIVIDUAL ROUTINES BELOW
058220,000043:
058221,000044: # DEBRIS
058222,000045: # A, L, AND SOMETIMES MDUETEMP
058223,000046:
058224,000047: # Page 1404
058225,000048: # SUBROUTINE NAMES:
058226,000049: # SETMAXDB, SETMINDB, RESTORDB, PFLITEDB
058227,000050: # MODIFIED: 30 JANUARY 1968 BY P. S. WEISSMAN TO CREATE RESTORDB.
058228,000051: # MODIFIED: 1 MARCH 1968 BY P. S. WEISSMAN TO SAVE EBANK AND CREATE PFLITEDB
058229,000052:
058230,000053: # FUNCTIONAL DESCRIPTION:
058231,000054: # SETMAXDB -- SET DEADBAND TO 5.0 DEGREES
058232,000055: # SETMINDB -- SET DEADBAND TO 0.3 DEGREE
058233,000056: # RESTORDB -- SET DEADBAND TO .3, 1, OR 5 ACCORDING TO BITS 4 AND 5 OF DAPBOOLS
058234,000057: # PFLITEDB -- SET DEADBAND TO 1.0 DEGREE AND ZERO THE COMMANDED ATTITUDE CHANGE AND COMMANDED RATE
058235,000058:
058236,000059: # ALL ENTRIES SET UP A NOVAC JOB TO DO 1/ACCS SO TAT THE TJETLAW SWITCH CURVES ARE POSITIONED TO
058237,000060: # REFLECT TEH NEW DEADBAND. IT SHOULD BE NOTED THAT THE DEADBAND REFERS TO THE ATTITUDE IN THE P-, U-, AND V-AXES.
058238,000061:
058239,000062: # SUBROUTINE CALLED: NOVAC
058240,000063:
058241,000064: # CALLING SEQUENCE: SAME AS ABOVE
058242,000065: # OR TC RESTORDB +1 FROM ALLCOAST
058243,000066:
058244,000067: # DEBRIS: A, L, Q, RUPTREG1, (ITEMPS IN NOVAC)
058245,000068:
058246,000069: 20,2115 30111 RESTORDB CAE DAPBOOLS # DETERMINE CREW-SELECTED DEADBAND.
058247,000070: 20,2116 74747 MASK DBSLECT2 # CHECK FOR MAX DB (5 DEG)
058248,000071: 20,2117 00006 EXTEND
058249,000072: 20,2120 12122 BZF +2
058250,000073: 20,2121 12130 TCF SETMAXDB # BIT5 DAPBOOLS IS SET -- CREW WANTS 5 DEG
058251,000074: 20,2122 30111 CAE DAPBOOLS
058252,000075: 20,2123 74750 MASK DBSELECT # CHECK FOR 1 DEG DEADBAND SELECTON
058253,000076: 20,2124 00006 EXTEND
058254,000077: 20,2125 12141 BZF SETMINDB
058255,000078:
058256,000079: 20,2126 32153 CAF POWERDB # BIT4 DAPBOOLS IS SET -- CREW WANTS 1 DEG
058257,000080: 20,2127 12131 TCF SETMAXDB +1
058258,000081: 20,2130 32152 SETMAXDB CAF WIDEDB # SET 5 DEGREE DEADBAND.
058259,000082: 20,2131 55343 +1 TS DB
058260,000083:
058261,000084: 20,2132 00006 EXTEND # SET UP JOB TO RE-POSITION SWITCH CURVES.
058262,000085: 20,2133 22070 QXCH RUPTREG1
058263,000086: 20,2134 37720 CALLACCS CAF PRIO27
058264,000087: 20,2135 05072 TC NOVAC
058265,000088: 20,2136 E6,1536 EBANK= AOSQ
058266,000089: 20,2136 03652 42106 2CADR 1/ACCJOB
058267,000090:
058268,000091: 20,2140 00070 TC RUPTREG1 # RETURN TO CALLER.
058269,000092:
058270,000093: 20,2141 32151 SETMINDB CAF NARROWDB # SET 0.3 DEGREE DEADBAND.
058271,000094: 20,2142 12131 TCF SETMAXDB +1
058272,000095:
058273,000096: # Page 1405
058274,000097: 20,2143 00006 PFLITEDB EXTEND # THE RETURN FROM CALLACCS IS TO RUPTREG1.
058275,000098: 20,2144 22070 QXCH RUPTREG1
058276,000099: 20,2145 02154 TC ZATTEROR # ZERO THE ERRORS AND COMMANDED RATES.
058277,000100: 20,2146 32153 CAF POWERDB # SET DB TO 1.0 DEG.
058278,000101: 20,2147 55343 TS DB
058279,000102: 20,2150 12134 TCF CALLACCS # SET UP 1/ACCS AND RETURN TO CALLER.
058280,000103: 20,2151 00155 NARROWDB OCTAL 00155 # 0.3 DEGREE SCALED AT 45.
058281,000104: 20,2152 03434 WIDEDB OCTAL 03434 # 5.0 DEGREES SCALED AT 45.
058282,000105: 20,2153 00554 POWERDB DEC .02222 # 1.0 DEGREE SCALED AT 45.
058283,000106:
058284,000107: 20,2154 35015 ZATTEROR CAF EBANK6
058285,000108: 20,2155 56003 XCH EBANK
058286,000109: 20,2156 54001 TS L # SAVE CALLER'S EBANK IN L.
058287,000110: 20,2157 30032 CAE CDUX
058288,000111: 20,2160 55634 TS CDUXD
058289,000112: 20,2161 30033 CAE CDUY
058290,000113: 20,2162 55635 TS CDUYD
058291,000114: 20,2163 30034 CAE CDUZ
058292,000115: 20,2164 55636 TS CDUZD
058293,000116: 20,2165 12171 TCF STOPRATE +3
058294,000117:
058295,000118: 20,2166 35015 STOPRATE CAF EBANK6
058296,000119: 20,2167 56003 XCH EBANK
058297,000120: 20,2170 54001 TS L # SAVE CALLER'S EBANK IN L.
058298,000121: 20,2171 34755 +3 CAF ZERO
058299,000122: 20,2172 55642 TS OMEGAPD
058300,000123: 20,2173 55643 TS OMEGAQD
058301,000124: 20,2174 55644 TS OMEGARD
058302,000125: 20,2175 55637 TS DELCDUX
058303,000126: 20,2176 55640 TS DELCDUY
058304,000127: 20,2177 55641 TS DELCDUZ
058305,000128: 20,2200 55274 TS DELPEROR
058306,000129: 20,2201 55275 TS DELQEROR
058307,000130: 20,2202 55276 TS DELREROR
058308,000131: 20,2203 22003 LXCH EBANK # RESTORE CALLER'S EBANK.
058309,000132: 20,2204 00002 TC Q
058310,000133:
058311,000134: # SUBROUTINE NAME: ALLCOAST
058312,000135: # WILL BE CALLED BY FRESH STARTS AND ENGINE OFF ROUTINES.
058313,000136:
058314,000137: # CALLING SEQUENCE: (SAME AS ABOVE)
058315,000138:
058316,000139: # EXIT: RETURN TO Q.
058317,000140:
058318,000141: # SUBROUTINES CALLED: STOPRATE, RESTORDB, NOVAC
058319,000142:
058320,000143: # ZERO: (FOR ALL AXES) AOS, ALPHA, AOSTERM, OMEGAD, DELCDU, DELEROR
058321,000144: # Page 1406
058322,000145:
058323,000146: # OUTPUT: DRIFTBIT/DAPBOOLS, OE, JOB TO DO 1/ACCS
058324,000147:
058325,000148: # DEBRIS: A, L, Q, RUPTREG1, RUPTREG2, (ITEMPS IN NOVAC)
058326,000149:
058327,000150: 20,2205 00006 ALLCOAST EXTEND # SAVE Q FOR RETURN
058328,000151: 20,2206 22071 QXCH RUPTREG2
058329,000152: 20,2207 02166 TC STOPRATE # CLEAR RATE INTERFACE. RETURN WITH A=0
058330,000153: 20,2210 22003 LXCH EBANK # AND L=EBANK6. SAVE CALLER'S EBANK.
058331,000154: 20,2211 55536 TS AOSQ
058332,000155: 20,2212 55537 TS AOSQ +1
058333,000156: 20,2213 55540 TS AOSR
058334,000157: 20,2214 55541 TS AOSR +1
058335,000158: 20,2215 55424 TS ALPHAQ # FOR DOWNLIST
058336,000159: 20,2216 55425 TS ALPHAR
058337,000160: 20,2217 55544 TS AOSQTERM
058338,000161: 20,2220 55545 TS AOSRTERM
058339,000162: 20,2221 22003 LXCH EBANK # RESTORE EBANK (EBANK6 NO LONGER NEEDED)
058340,000163:
058341,000164: 20,2222 40111 CS DAPBOOLS # SET UP DRIFTBIT
058342,000165: 20,2223 74744 MASK DRIFTBIT
058343,000166: 20,2224 26111 ADS DAPBOOLS
058344,000167: 20,2225 02116 TC RESTORDB +1 # RESTORE DEADBANK TO CREW-SELECTED VALUE.
058345,000168:
058346,000169: 20,2226 00071 TC RUPTREG2 # RETURN
058347,000170:
058348,000171:
058349,000172:
End of include-file DAP_INTERFACE_SUBROUTINES.agc. Parent file is MAIN.agc