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