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