Source Code

059930,000001: # Copyright: Public domain. 059931,000002: # Filename: DAP_INTERFACE_SUBROUTINES.agc 059932,000003: # Purpose: Part of the source code for Luminary 1A build 099. 059933,000004: # It is part of the source code for the Lunar Module's (LM) 059934,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 059935,000006: # Assembler: yaYUL 059936,000007: # Contact: Ron Burkey <info@sandroid.org>. 059937,000008: # Website: www.ibiblio.org/apollo. 059938,000009: # Pages: 1406-1409 059939,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting 059940,000011: # from the Luminary131/ file of the same 059941,000012: # name, using Luminary099 page images. 059942,000013: # 2011-01-06 JL Fixed pseudo-label indentation. 059943,000014: 059944,000015: # This source code has been transcribed or otherwise adapted from 059945,000016: # digitized images of a hardcopy from the MIT Museum. The digitization 059946,000017: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 059947,000018: # the Museum. Many thanks to both. The images (with suitable reduction 059948,000019: # in storage size and consequent reduction in image quality as well) are 059949,000020: # available online at www.ibiblio.org/apollo. If for some reason you 059950,000021: # find that the images are illegible, contact me at info@sandroid.org 059951,000022: # about getting access to the (much) higher-quality images which Paul 059952,000023: # actually created. 059953,000024: 059954,000025: # Notations on the hardcopy document read, in part: 059955,000026: 059956,000027: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 059957,000028: # 16:27 JULY 14, 1969 059958,000029: 059959,000030: # Page 1406 059960,000031: 20,2123 BANK 20 059961,000032: 20,2000 SETLOC DAPS3 059962,000033: 20,2000 BANK 059963,000034: 059964,000035: 20,2123 E6,1635 EBANK= CDUXD 059965,000036: 20,2123 COUNT* $$/DAPIF 059966,000037: 059967,000038: # MOD 0 DATE 11/15/66 BY GEORGE W. CHERRY 059968,000039: # MOD 1 1/23/67 MODIFICATION BY PETER ADLER 059969,000040: 059970,000041: # FUNCTIONAL DESCRIPTION 059971,000042: # HEREIN IS A COLLECTION OF SUBROUTINES WHICH ALLOW MISSION CONTROL PROGRAMS TO CONTROL THE MODE 059972,000043: # AND INTERFACE WITH THE DAP. 059973,000044: 059974,000045: # CALLING SEQUENCES 059975,000046: # IN INTERRUPT OR WITH INTERRUPT INHIBITED 059976,000047: # TC IBNKCALL 059977,000048: # FCADR ROUTINE 059978,000049: # IN A JOB WITHOUT INTERRUPT INHIBITED 059979,000050: # INHINT 059980,000051: # TC IBNKCALL 059981,000052: # FCADR ROUTINE 059982,000053: # RELINT 059983,000054: 059984,000055: # OUTPUT 059985,000056: # SEE INDIVIDUAL ROUTINES BELOW 059986,000057: 059987,000058: # DEBRIS 059988,000059: # A, L, AND SOMETIMES MDUETEMP ODE NOT IN PULSES MODE 059989,000060: 059990,000061: # Page 1407 059991,000062: # SUBROUTINE NAMES: 059992,000063: # SETMAXDB, SETMINDB, RESTORDB, PFLITEDB 059993,000064: # MODIFIED: 30 JANUARY 1968 BY P. S. WEISSMAN TO CREATE RESTORDB. 059994,000065: # MODIFIED: 1 MARCH 1968 BY P. S. WEISSMAN TO SAVE EBANK AND CREATE PFLITEDB 059995,000066: 059996,000067: # FUNCTIONAL DESCRIPTION: 059997,000068: # SETMAXDB -- SET DEADBAND TO 5.0 DEGREES 059998,000069: # SETMINDB -- SET DEADBAND TO 0.3 DEGREE 059999,000070: # RESTORDB -- SET DEADBAND TO MAX OR MIN ACCORDING TO SETTINGS OF DBSELECT BIT OF DAPBOOLS 060000,000071: # PFLITEDB -- SET DEADBAND TO 1.0 DEGREE AND ZERO THE COMMANDED ATTITUDE CHANGE AND COMMANDED RATE 060001,000072: 060002,000073: # ALL ENTRIES SET UP A NOVAC JOB TO DO 1/ACCS SO THAT THE TJETLAW SWITCH CURVES ARE POSITIONED TO 060003,000074: # REFLECT TEH NEW DEADBAND. IT SHOULD BE NOTED THAT THE DEADBAND REFERS TO THE ATTITUDE IN THE P-, U-, AND V-AXES. 060004,000075: 060005,000076: # SUBROUTINE CALLED: NOVAC 060006,000077: 060007,000078: # CALLING SEQUENCE: SAME AS ABOVE 060008,000079: # OR TC RESTORDB +1 FROM ALLCOAST 060009,000080: 060010,000081: # DEBRIS: A, L, Q, RUPTREG1, (ITEMPS IN NOVAC) 060011,000082: 060012,000083: 20,2123 30111 RESTORDB CAE DAPBOOLS # DETERMINE CREW-SELECTED DEADBAND. 060013,000084: 20,2124 74750 MASK DBSELECT 060014,000085: 20,2125 00006 EXTEND 060015,000086: 20,2126 12140 BZF SETMINDB 060016,000087: 060017,000088: 20,2127 32151 SETMAXDB CAF WIDEDB # SET 5 DEGREE DEADBAND. 060018,000089: 20,2130 55346 +1 TS DB 060019,000090: 060020,000091: 20,2131 00006 EXTEND # SET UP JOB TO RE-POSITION SWITCH CURVES. 060021,000092: 20,2132 22070 QXCH RUPTREG1 060022,000093: 20,2133 37715 CALLACCS CAF PRIO27 060023,000094: 20,2134 05072 TC NOVAC 060024,000095: 20,2135 E6,1537 EBANK= AOSQ 060025,000096: 20,2135 02454 40106 2CADR 1/ACCJOB 060026,000097: 060027,000098: 20,2137 00070 TC RUPTREG1 # RETURN TO CALLER. 060028,000099: 060029,000100: 20,2140 32150 SETMINDB CAF NARROWDB # SET 0.3 DEGREE DEADBAND. 060030,000101: 20,2141 12130 TCF SETMAXDB +1 060031,000102: 060032,000103: 20,2142 00006 PFLITEDB EXTEND # THE RETURN FROM CALLACCS IS TO RUPTREG1. 060033,000104: 20,2143 22070 QXCH RUPTREG1 060034,000105: 20,2144 02153 TC ZATTEROR # ZERO THE ERRORS AND COMMANDED RATES. 060035,000106: 20,2145 32152 CAF POWERDB # SET DB TO 1.0 DEG. 060036,000107: 20,2146 55346 TS DB 060037,000108: 20,2147 12133 TCF CALLACCS # SET UP 1/ACCS AND RETURN TO CALLER. 060038,000109: 20,2150 00155 NARROWDB OCTAL 00155 # 0.3 DEGREE SCALED AT 45. 060039,000110: # Page 1408 060040,000111: 20,2151 03434 WIDEDB OCTAL 03434 # 5.0 DEGREES SCALED AT 45. 060041,000112: 20,2152 00554 POWERDB DEC .02222 # 1.0 DEGREE SCALED AT 45. 060042,000113: 060043,000114: 20,2153 35015 ZATTEROR CAF EBANK6 060044,000115: 20,2154 56003 XCH EBANK 060045,000116: 20,2155 54001 TS L # SAVE CALLERS EBANK IN L. 060046,000117: 20,2156 30032 CAE CDUX 060047,000118: 20,2157 55635 TS CDUXD 060048,000119: 20,2160 30033 CAE CDUY 060049,000120: 20,2161 55636 TS CDUYD 060050,000121: 20,2162 30034 CAE CDUZ 060051,000122: 20,2163 55637 TS CDUZD 060052,000123: 20,2164 12170 TCF STOPRATE +3 060053,000124: 060054,000125: 20,2165 35015 STOPRATE CAF EBANK6 060055,000126: 20,2166 56003 XCH EBANK 060056,000127: 20,2167 54001 TS L # SAVE CALLERS EBANK IN L. 060057,000128: 20,2170 34755 +3 CAF ZERO 060058,000129: 20,2171 55643 TS OMEGAPD 060059,000130: 20,2172 55644 TS OMEGAQD 060060,000131: 20,2173 55645 TS OMEGARD 060061,000132: 20,2174 55640 TS DELCDUX 060062,000133: 20,2175 55641 TS DELCDUY 060063,000134: 20,2176 55642 TS DELCDUZ 060064,000135: 20,2177 55277 TS DELPEROR 060065,000136: 20,2200 55300 TS DELQEROR 060066,000137: 20,2201 55301 TS DELREROR 060067,000138: 20,2202 22003 LXCH EBANK # RESTORE CALLERS EBANK. 060068,000139: 20,2203 00002 TC Q 060069,000140: 060070,000141: # SUBROUTINE NAME: ALLCOAST 060071,000142: # WILL BE CALLED BY FRESH STARTS AND ENGINE OFF ROUTINES. 060072,000143: 060073,000144: # CALLING SEQUENCE: (SAME AS ABOVE) 060074,000145: 060075,000146: # EXIT: RETURN TO Q. 060076,000147: 060077,000148: # SUBROUTINES CALLED: STOPRATE, RESTORDB, NOVAC 060078,000149: 060079,000150: # ZERO: (FOR ALL AXES) AOS, ALPHA, AOSTERM, OMEGAD, DELCDU, DELEROR 060080,000151: 060081,000152: # OUTPUT: DRIFTBIT/DAPBOOLS, OE, JOB TO DO 1/ACCS 060082,000153: 060083,000154: # DEBRIS: A, L, Q, RUPTREG1, RUPTREG2, (ITEMPS IN NOVAC) 060084,000155: 060085,000156: 20,2204 00006 ALLCOAST EXTEND # SAVE Q FOR RETURN 060086,000157: 20,2205 22071 QXCH RUPTREG2 060087,000158: # Page 1409 060088,000159: 20,2206 02165 TC STOPRATE # CLEAR RATE INTERFACE. RETURN WITH A=0 060089,000160: 20,2207 22003 LXCH EBANK # AND L=EBANK6. SAVE CALLER'S EBANK. 060090,000161: 20,2210 55537 TS AOSQ 060091,000162: 20,2211 55540 TS AOSQ +1 060092,000163: 20,2212 55541 TS AOSR 060093,000164: 20,2213 55542 TS AOSR +1 060094,000165: 20,2214 55424 TS ALPHAQ # FOR DOWNLIST. 060095,000166: 20,2215 55425 TS ALPHAR 060096,000167: 20,2216 55545 TS AOSQTERM 060097,000168: 20,2217 55546 TS AOSRTERM 060098,000169: 20,2220 22003 LXCH EBANK # RESTORE EBANK (EBANK6 NO LONGER NEEDED) 060099,000170: 060100,000171: 20,2221 40111 CS DAPBOOLS # SET UP DRIFTBIT 060101,000172: 20,2222 74744 MASK DRIFTBIT 060102,000173: 20,2223 26111 ADS DAPBOOLS 060103,000174: 20,2224 02124 TC RESTORDB +1 # RESTORE DEADBANK TO CREW-SELECTED VALUE. 060104,000175: 060105,000176: 20,2225 00071 TC RUPTREG2 # RETURN. 060106,000177: End of include-file DAP_INTERFACE_SUBROUTINES.agc. Parent file is MAIN.agc