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