Source Code

058024,000001: # Copyright: Public domain. 058025,000002: # Filename: T6-RUPT_PROGRAMS.agc 058026,000003: # Purpose: A section of Luminary 1C, revision 131. 058027,000004: # It is part of the source code for the Lunar Module's (LM) 058028,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 058029,000006: # This file is intended to be a faithful transcription, except 058030,000007: # that the code format has been changed to conform to the 058031,000008: # requirements of the yaYUL assembler rather than the 058032,000009: # original YUL assembler. 058033,000010: # Reference: pp. 1400-1402 of 1729.pdf. 058034,000011: # Contact: Ron Burkey <info@sandroid.org>. 058035,000012: # Website: www.ibiblio.org/apollo/index.html 058036,000013: # Mod history: 06/07/03 RSB. Began transcribing. 058037,000014: # 05/14/05 RSB Corrected website reference above. 058038,000015: 058039,000016: # Page 1400 058040,000017: # PROGRAM NAMES: (1) T6JOBCHK MOD. NO. 5 OCTOBER 2, 1967 058041,000018: # (2) DOT6RUPT 058042,000019: # MODIFICATION BY: LOWELL G. HULL (A.C.ELECTRONICS) 058043,000020: 058044,000021: # THESE PROGRAMS ENABLE THE LM DAP TO CONTROL THE THRUST TIMES OF THE REACTION CONTROL SYSTEM JETS BY USING TIME6. 058045,000022: # SINCE THE LM DAP MAINTAINS EXCLUSIVE CONTROL OVER TIME6 AND ITS INTERRUPTS, THE FOLLOWING CONVENTIONS HAVE BEEN 058046,000023: # ESTABLISHED AND MUST NOT BE TAMPERED WITH: 058047,000024: # 1. NO NUMBER IS EVER PLACED INTO TIME6 EXCEPT BY LM DAP. 058048,000025: # 2. NO PROGRAM OTHER THAN LM DAP ENABLES THE TIME6 COUNTER. 058049,000026: # 3. TO USE TIME6, THE FOLLOWING SEQUENCE IS ALWAYS EMPLOYED: 058050,000027: # A. A POSITIVE (NON-ZERO) NUMBER IS STORED IN TIME6. 058051,000028: # B. THE TIME6 CLOCK IS ENABLED. 058052,000029: # C. TIME6 IS INTERROGATED AND IS: 058053,000030: # I. NEVER FOUND NEGATIVE (NON-ZERO) OR +0. 058054,000031: # II. SOMETIMES FOUND POSITIVE (BETWEEN 1 AND 240D) INDICATING THAT IT IS ACTIVE. 058055,000032: # III. SOMETIMES FOUND POSMAX INDICATING THAT IT IS INACTIVE AND NOT ENABLED. 058056,000033: # IV. SOMETIMES FOUND NEGATIVE ZERO INDICATING THAT: 058057,000034: # A. A T6RUPT IS ABOUT TO OCCUR AT THE NEXT DINC, OR 058058,000035: # B. A T6RUPT IS WAITING IN THE PRIORITY CHAIN, OR 058059,000036: # C. A T6RUPT IS IN PROCESS NOW. 058060,000037: # 4. ALL PROGRAMS WHICH OPERATE IN EITHER INTERRUPT MODE OR WITH INTERRUPT INHIBITED MUST CALL T6JOBCHK 058061,000038: # EVERY 5 MILLISECONDS TO PROCESS A POSSIBLE WAITING T6RUPT BEFORE IT CAN BE HONORED BY THE HARDWARE. 058062,000039: # (5. PROGRAM JTLST, IN Q,R-AXES, HANDLES THE INPUT LIST.) 058063,000040: 058064,000041: # T6JOBCHK CALLING SEQUENCE: 058065,000042: # L TC T6JOBCHK 058066,000043: # L+1 (RETURN) 058067,000044: 058068,000045: # DOT6RUPT CALLING SEQUENCE: 058069,000046: # DXCH ARUPT # T6RUPT LEAD IN AT LOCATION 4004. 058070,000047: # EXTEND 058071,000048: # DCA T6ADR 058072,000049: # DTCB 058073,000050: 058074,000051: # SUBROUTINES CALLED: DOT6RUPT CALLS T6JOBCHK. 058075,000052: 058076,000053: # NORMAL EXIT MODES: T6JOBCHK RETURNS TO L +1. 058077,000054: # DOT6RUPT TRANSFERS CONTROL TO RESUME. 058078,000055: 058079,000056: # ALARM/ABORT MODES: NONE. 058080,000057: 058081,000058: # INPUT: TIME6 NXT6ADR OUTPUT: TIME6 NXT6ADR CHANNEL 5 058082,000059: # T6NEXT T6NEXT +1 T6NEXT T6NEXT +1 CHANNEL 6 058083,000060: # T6FURTHA T6FURTHA +1 T6FURTHA T6FURTHA +1 BIT15/CH13 058084,000061: 058085,000062: # DEBRIS: T6JOBCHK CLOBBERS A. DOT6RUPT CLOBBERS NOTHING. 058086,000063: 058087,000064: 5743 BLOCK 02 058088,000065: # Page 1401 058089,000066: 17,2055 BANK 17 058090,000067: 17,2000 SETLOC DAPS2 058091,000068: 17,2000 BANK 058092,000069: 17,2055 E6,1466 EBANK= T6NEXT 058093,000070: 17,2055 COUNT* $$/DAPT6 058094,000071: 058095,000072: 17,2055 10031 T6JOBCHK CCS TIME6 # CHECK TIME6 FOR WAITING T6RUPT: 058096,000073: 17,2056 00002 TC Q # NONE: CLOCK COUNTING DOWN. 058097,000074: 17,2057 05675 TC CCSHOLE 058098,000075: 17,2060 05675 TC CCSHOLE 058099,000076: 058100,000077: # CONTROL PASSES TO T6JOB ONLY WHEN C(TIME6) = -0 (I.E., WHEN A T6RUPT MUST BE PROCESSED). 058101,000078: 058102,000079: 17,2061 34733 T6JOB CA POSMAX 058103,000080: 17,2062 22007 ZL 058104,000081: 17,2063 53471 DXCH T6FURTHA 058105,000082: 17,2064 53467 DXCH T6NEXT 058106,000083: 17,2065 23465 LXCH NXT6ADR 058107,000084: 17,2066 54031 TS TIME6 058108,000085: 058109,000086: 17,2067 67730 AD PRIO37 058110,000087: 17,2070 54000 TS A 058111,000088: 17,2071 12075 TCF ENABLET6 058112,000089: 17,2072 34733 CA POSMAX 058113,000090: 17,2073 54031 TS TIME6 058114,000091: 17,2074 12115 TCF GOCH56 058115,000092: 17,2075 00006 ENABLET6 EXTEND 058116,000093: 17,2076 23265 QXCH C13QSAV 058117,000094: 17,2077 22070 LXCH RUPTREG1 058118,000095: 17,2100 06022 TC C13STALL 058119,000096: 17,2101 00006 EXTEND 058120,000097: 17,2102 23265 QXCH C13QSAV 058121,000098: 17,2103 22070 LXCH RUPTREG1 058122,000099: 17,2104 34735 CAF BIT15 058123,000100: 17,2105 00006 EXTEND 058124,000101: 17,2106 05013 WOR CHAN13 058125,000102: 17,2107 31466 CA T6NEXT 058126,000103: 17,2110 67730 AD PRIO37 058127,000104: 17,2111 54000 TS A 058128,000105: 17,2112 12115 TCF GOCH56 058129,000106: 17,2113 34733 CA POSMAX 058130,000107: 17,2114 55466 TS T6NEXT 058131,000108: 17,2115 50001 GOCH56 INDEX L 058132,000109: 17,2116 15743 TCF WRITEP -1 058133,000110: 058134,000111: 5743 BLOCK 02 058135,000112: 4000 SETLOC FFTAG9 058136,000113: 4000 BANK 058137,000114: 5743 E6,1634 EBANK= CDUXD 058138,000115: 5743 COUNT* $$/DAPT6 058139,000116: # Page 1402 058140,000117: 5743 31472 CA NEXTP 058141,000118: 5744 00006 WRITEP EXTEND 058142,000119: 5745 01006 WRITE CHAN6 058143,000120: 5746 00002 TC Q 058144,000121: 058145,000122: 5747 31473 CA NEXTU 058146,000123: 5750 54001 WRITEU TS L 058147,000124: 5751 45764 CS 00314OCT 058148,000125: 5752 00006 EXTEND 058149,000126: 5753 02005 RAND CHAN5 058150,000127: 5754 60001 AD L 058151,000128: 5755 00006 EXTEND 058152,000129: 5756 01005 WRITE CHAN5 058153,000130: 5757 00002 TC Q 058154,000131: 058155,000132: 5760 31474 CA NEXTV 058156,000133: 5761 54001 WRITEV TS L 058157,000134: 5762 35764 CA 00314OCT 058158,000135: 5763 15752 TCF -9D 058159,000136: 5764 00314 00314OCT OCT 00314 058160,000137: 058161,000138: 17,2117 BANK 17 058162,000139: 17,2000 SETLOC DAPS2 058163,000140: 17,2000 BANK 058164,000141: 058165,000142: 17,2117 E6,1466 EBANK= T6NEXT 058166,000143: 17,2117 COUNT* $$/DAPT6 058167,000144: 058168,000145: 17,2117 22016 DOT6RUPT LXCH BANKRUPT # (INTERRUPT LEAD-INS CONTINUED) 058169,000146: 17,2120 00006 EXTEND 058170,000147: 17,2121 22012 QXCH QRUPT 058171,000148: 058172,000149: 17,2122 02055 TC T6JOBCHK # CALL T6JOBCHK. 058173,000150: 058174,000151: 17,2123 15270 TCF RESUME # END TIME6 INTERRUPT PROCESSOR. 058175,000152: 058176,000153: End of include-file T6-RUPT_PROGRAMS.agc. Parent file is MAIN.agc