Source Code

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