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