Pre-launch Review
T6 RUPT PROGRAMS
Scanned pages: 1403-1405
# Copyright: Public domain.# Filename: T6-RUPT_PROGRAMS.agc# Purpose: Part of the source code for Luminary 1A build 099.# It is part of the source code for the Lunar Module's (LM)# Apollo Guidance Computer (AGC), for Apollo 11.# Assembler: yaYUL# Contact: Ron Burkey <info@sandroid.org>.# Website: www.ibiblio.org/apollo.# Pages: 1403-1405# Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting# from the Luminary131/ file of the same# name, using Luminary099 page images.## This source code has been transcribed or otherwise adapted from# digitized images of a hardcopy from the MIT Museum. The digitization# was performed by Paul Fjeld, and arranged for by Deborah Douglas of# the Museum. Many thanks to both. The images (with suitable reduction# in storage size and consequent reduction in image quality as well) are# available online at www.ibiblio.org/apollo. If for some reason you# find that the images are illegible, contact me at info@sandroid.org# about getting access to the (much) higher-quality images which Paul# actually created.## Notations on the hardcopy document read, in part:## Assemble revision 001 of AGC program LMY99 by NASA 2021112-061# 16:27 JULY 14, 1969
# Page 1403# PROGRAM NAMES: (1) T6JOBCHK MOD. NO. 5 OCTOBER 2, 1967# (2) DOT6RUPT# MODIFICATION BY: LOWELL G. HULL (A.C.ELECTRONICS)## THESE PROGRAMS ENABLE THE LM DAP TO CONTROL THE THRUST TIMES OF THE REACTION CONTROL SYSTEM JETS BY USING TIME6.# SINCE THE LM DAP MAINTAINS EXCLUSIVE CONTROL OVER TIME6 AND ITS INTERRUPTS, THE FOLLOWING CONVENTIONS HAVE BEEN# ESTABLISHED AND MUST NOT BE TAMPERED WITH:# 1. NO NUMBER IS EVER PLACED INTO TIME6 EXCEPT BY LM DAP.# 2. NO PROGRAM OTHER THAN LM DAP ENABLES THE TIME6 COUNTER.# 3. TO USE TIME6, THE FOLLOWING SEQUENCE IS ALWAYS EMPLOYED:# A. A POSITIVE (NON-ZERO) NUMBER IS STORED IN TIME6.# B. THE TIME6 CLOCK IS ENABLED.# C. TIME6 IS INTERROGATED AND IS:# I. NEVER FOUND NEGATIVE (NON-ZERO) OR +0.# II. SOMETIMES FOUND POSITIVE (BETWEEN 1 AND 240D) INDICATING THAT IT IS ACTIVE.# III. SOMETIMES FOUND POSMAX INDICATING THAT IT IS INACTIVE AND NOT ENABLED.# IV. SOMETIMES FOUND NEGATIVE ZERO INDICATING THAT:# A. A T6RUPT IS ABOUT TO OCCUR AT THE NEXT DINC, OR# B. A T6RUPT IS WAITING IN THE PRIORITY CHAIN, OR# C. A T6RUPT IS IN PROCESS NOW.# 4. ALL PROGRAMS WHICH OPERATE IN EITHER INTERRUPT MODE OR WITH INTERRUPT INHIBITED MUST CALL T6JOBCHK# EVERY 5 MILLISECONDS TO PROCESS A POSSIBLE WAITING T6RUPT BEFORE IT CAN BE HONORED BY THE HARDWARE.# (5. PROGRAM JTLST, IN Q,R-AXES, HANDLES THE INPUT LIST.)## T6JOBCHK CALLING SEQUENCE:# L TC T6JOBCHK# L+1 (RETURN)## DOT6RUPT CALLING SEQUENCE:# DXCH ARUPT # T6RUPT LEAD IN AT LOCATION 4004.# EXTEND# DCA T6ADR# DTCB## SUBROUTINES CALLED: DOT6RUPT CALLS T6JOBCHK.## NORMAL EXIT MODES: T6JOBCHK RETURNS TO L +1.# DOT6RUPT TRANSFERS CONTROL TO RESUME.## ALARM/ABORT MODES: NONE.## INPUT: TIME6 NXT6ADR OUTPUT: TIME6 NXT6ADR CHANNEL 5# T6NEXT T6NEXT +1 T6NEXT T6NEXT +1 CHANNEL 6# T6FURTHA T6FURTHA +1 T6FURTHA T6FURTHA +1 BIT15/CH13## DEBRIS: T6JOBCHK CLOBBERS A. DOT6RUPT CLOBBERS NOTHING.
BLOCK 02# Page 1404 BANK 17 SETLOC DAPS2 BANK EBANK= T6NEXT COUNT* $$/DAPT6
T6JOBCHK CCS TIME6 # CHECK TIME6 FOR WAITING T6RUPT: TC Q # NONE: CLOCK COUNTING DOWN. TC CCSHOLE TC T6JOBCHK +3
# CONTROL PASSES TO T6JOB ONLY WHEN C(TIME6) = -0 (I.E., WHEN A T6RUPT MUST BE PROCESSED).
T6JOB CAF POSMAX # DISABLE CLOCK: NEEDED SINCE RUPT OCCURS EXTEND # 1 DINC AFTER T6 = 77777. FOR 625 MUSECS WAND CHAN13 # MUST NOT HAVE T6 = +0 WITH ENABLE SET
CA POSMAX ZL DXCH T6FURTHA DXCH T6NEXT LXCH NXT6ADR TS TIME6
AD PRIO37 TS A TCF ENABLET6 CA POSMAX TS TIME6 TCF GOCH56ENABLET6 CA BIT15 EXTEND WOR CHAN13 CA T6NEXT AD PRIO37 TS A TCF GOCH56 CA POSMAX TS T6NEXTGOCH56 INDEX L TCF WRITEP -1
BLOCK 02 SETLOC FFTAG9 BANK EBANK= CDUXD COUNT* $$/DAPT6
CA NEXTPWRITEP EXTEND WRITE CHAN6# Page 1405 TC Q
CA NEXTUWRITEU TS L CS 00314OCT EXTEND RAND CHAN5 AD L EXTEND WRITE CHAN5 TC Q
CA NEXTVWRITEV TS L CA 00314OCT TCF -9D00314OCT OCT 00314
BANK 17 SETLOC DAPS2 BANK
EBANK= T6NEXT COUNT* $$/DAPT6
DOT6RUPT LXCH BANKRUPT # (INTERRUPT LEAD INS CONTINUED) EXTEND QXCH QRUPT
TC T6JOBCHK # CALL T6JOBCHK.
TCF RESUME # END TIME6 INTERRUPT PROCESSOR.