https://github.com/virtualagc/virtualagc
Tip revision: 6bb1acc86dbd6cba99b27c9c45a56d94af23d501 authored by Ron Burkey on 04 August 2022, 23:36:51 UTC
Added a debugging line to the 'simulate' shell script created by the
Added a debugging line to the 'simulate' shell script created by the
Tip revision: 6bb1acc
T6-RUPT_PROGRAMS.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: T6-RUPT_PROGRAMS.agc
## Purpose: A section of Luminary revision 173.
## It is part of the reconstructed source code for the second
## (unflown) release of the flight software for the Lunar
## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
## The code has been recreated from a reconstructed copy of
## Luminary 178, as well as Luminary memo 167 (revision 1).
## It has been adapted such that the resulting bugger words
## exactly match those specified for Luminary 173 in NASA
## drawing 2021152N, which gives relatively high confidence
## that the reconstruction is correct.
## Reference: pp. 1391-1393
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-09-18 MAS Created from Luminary 178.
## Page 1391
# 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 1392
BANK 17
SETLOC DAPS2
BANK
EBANK= T6NEXT
COUNT* $$/DAPT6
T6JOBCHK CCS TIME6 # CHECK TIME6 FOR WAITING T6RUPT:
TC Q # NONE: CLOCK COUTING DOWN.
TC CCSHOLE
TC CCSHOLE
# CONTROL PASSES TO T6JOB ONLY WHEN C(TIME6) = -0 (I.E. WHEN A T6RUPT MUST BE PROCESSED).
T6JOB CA POSMAX
ZL
DXCH T6FURTHA
DXCH T6NEXT
LXCH NXT6ADR
TS TIME6
AD PRIO37
TS A
TCF ENABLET6
CA POSMAX
TS TIME6
TCF GOCH56
ENABLET6 EXTEND
QXCH C13QSAV
LXCH RUPTREG1
TC C13STALL
EXTEND
QXCH C13QSAV
LXCH RUPTREG1
CAF BIT15
EXTEND
WOR CHAN13
CA T6NEXT
AD PRIO37
TS A
TCF GOCH56
CA POSMAX
TS T6NEXT
GOCH56 INDEX L
TCF WRITEP -1
BLOCK 02
SETLOC FFTAG9
BANK
EBANK= CDUXD
COUNT* $$/DAPT6
## Page 1393
CA NEXTP
WRITEP EXTEND
WRITE CHAN6
TC Q
CA NEXTU
WRITEU TS L
CS 00314OCT
EXTEND
RAND CHAN5
AD L
EXTEND
WRITE CHAN5
TC Q
CA NEXTV
WRITEV TS L
CA 00314OCT
TCF -9D
00314OCT 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.