137 lines
3.8 KiB
Plaintext
137 lines
3.8 KiB
Plaintext
# Copyright: Public domain.
|
|
# Filename: KEYRUPT_UPRUPT.agc
|
|
# Purpose: Part of the source code for Comanche, build 055. It
|
|
# is part of the source code for the Command Module's
|
|
# (CM) Apollo Guidance Computer (AGC), Apollo 11.
|
|
# Assembler: yaYUL
|
|
# Reference: pp. 1449-1451
|
|
# Contact: Ron Burkey <info@sandroid.org>
|
|
# Website: http://www.ibiblio.org/apollo.
|
|
# Mod history: 2009-05-07 RSB Adapted from Colossus249 file of the same
|
|
# name, and page images. Corrected various
|
|
# typos in the transcription of program
|
|
# comments, and these should be back-ported
|
|
# to Colossus249.
|
|
#
|
|
# The contents of the "Comanche055" files, in general, are transcribed
|
|
# from scanned documents.
|
|
#
|
|
# Assemble revision 055 of AGC program Comanche by NASA
|
|
# 2021113-051. April 1, 1969.
|
|
#
|
|
# This AGC program shall also be referred to as Colossus 2A
|
|
#
|
|
# Prepared by
|
|
# Massachusetts Institute of Technology
|
|
# 75 Cambridge Parkway
|
|
# Cambridge, Massachusetts
|
|
#
|
|
# under NASA contract NAS 9-4065.
|
|
#
|
|
# Refer directly to the online document mentioned above for further
|
|
# information. Please report any errors to info@sandroid.org.
|
|
|
|
# Page 1449
|
|
BANK 14
|
|
SETLOC KEYRUPT
|
|
BANK
|
|
COUNT* $$/KEYUP
|
|
|
|
KEYRUPT1 TS BANKRUPT
|
|
XCH Q
|
|
TS QRUPT
|
|
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
|
|
CAF LOW5
|
|
EXTEND
|
|
RAND MNKEYIN # CHECK IF KEYS 5M-1M ON
|
|
KEYCOM TS RUPTREG4
|
|
CS FLAGWRD5
|
|
MASK BIT15
|
|
ADS FLAGWRD5
|
|
|
|
ACCEPTUP CAF CHRPRIO # (NOTE: RUPTREG4 = KEYTEMP1)
|
|
TC NOVAC
|
|
EBANK= DSPCOUNT
|
|
2CADR CHARIN
|
|
|
|
CA RUPTREG4
|
|
INDEX LOCCTR
|
|
TS MPAC # LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN
|
|
TC RESUME
|
|
|
|
# Page 1450
|
|
# UPRUPT PROGRAM
|
|
|
|
UPRUPT TS BANKRUPT
|
|
XCH Q
|
|
TS QRUPT
|
|
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
|
|
CAF ZERO
|
|
XCH INLINK
|
|
TS KEYTEMP1
|
|
CAF BIT3 # TURN ON UPACT LIGHT
|
|
EXTEND # (BIT 3 OF CHANNEL 11)
|
|
WOR DSALMOUT
|
|
UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
|
|
MASK KEYTEMP1 # LOW5 OF WORD
|
|
XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
|
|
EXTEND
|
|
MP BIT10 # SHIFT RIGHT 5
|
|
TS KEYTEMP2
|
|
MASK LOW5 # MID 5
|
|
AD HI10
|
|
TC UPTEST
|
|
CAF BIT10
|
|
EXTEND
|
|
MP KEYTEMP2 # SHIFT RIGHT 5
|
|
MASK LOW5 # HIGH 5
|
|
COM
|
|
TC UPTEST
|
|
|
|
UPOK CS ELRCODE # CODE IS GOOD. IF CODE = `ERROR RESET',
|
|
AD KEYTEMP1 # CLEAR UPLOCKFL (SET BIT4 OF FLAGWRD7 = 0)
|
|
EXTEND # IF CODE DOES NOT = `ERROR RESET', ACCEPT
|
|
BZF CLUPLOCK # CODE ONLY IF UPLOCKFL IS CLEAR (=0).
|
|
|
|
CAF BIT4 # TEST UPLOCKFL FOR 0 OR 1
|
|
MASK FLAGWRD7
|
|
CCS A
|
|
TC RESUME # UPLOCKFL = 1
|
|
TC ACCEPTUP # UPLOCKFL = 0
|
|
|
|
CLUPLOCK CS BIT4 # CLEAR UPLOCKFL (I.E., SET BIT 4 OF
|
|
MASK FLAGWRD7 # FLAGWRD7 = 0)
|
|
TS FLAGWRD7
|
|
TC ACCEPTUP
|
|
|
|
# CODE IS BAD
|
|
TMFAIL2 CS FLAGWRD7 # LOCK OUT FURTHER UPLINK ACTIVITY
|
|
MASK BIT4 # (BY SETTING UPLOCKFL = 1) UNTIL
|
|
ADS FLAGWRD7 # `ERROR RESET' IS SENT VIA UPLINK.
|
|
TC RESUME
|
|
UPTEST AD KEYTEMP1
|
|
# Page 1451
|
|
CCS A
|
|
TC TMFAIL2
|
|
HI10 OCT 77740
|
|
TC TMFAIL2
|
|
TC Q
|
|
|
|
ELRCODE OCT 22
|
|
|
|
# `UPLINK ACTIVITY LIGHT' IS TURNED OFF BY .....
|
|
# 1. VBRELDSP
|
|
# 2. ERROR RESET
|
|
# 3. UPDATE PROGRAM (P27) ENTERED BY V70,V71,V72, AND V73.
|
|
#
|
|
# THE RECEPTION OF A BAD CODE (I.E., CCC FAILURE) LOCKS OUT FURTHER UPLINK ACTIVITY BY SETTING BIT4 OF FLAGWRD7 = 1.
|
|
# THIS INDICATION WILL BE TRANSFERRED TO THE GROUND BY THE DOWNLINK WHICH DOWNLINKS ALL FLAGWORDS.
|
|
# WHEN UPLINK ACTIVITY IS LOCKED OUT, IT CAN BE ALLOWED WHEN THE GROUND UPLINKS AND `ERROR RESET' CODE.
|
|
# (IT IS RECOMMENDED THAT THE `ERROR LIGHT RESET' CODE IS PRECEEDED BY 16 BITS THE FIRST OF WHICH IS 1 FOLLOWED
|
|
# BY 15 ZEROS. THIS WILL ELIMINATE EXTRANEOUS BITS FROM INLINK WHICH MAY HAVE BEEN LEFT OVER FROM THE ORIGINAL
|
|
# FAILURE).
|
|
#
|
|
# UPLINK ACTIVITY IS ALSO ALLOWED (UNLOCKED) DURING FRESH START WHEN FRESH START SETS BIT4 OF FLAGWRD7 = 0.
|
|
|
|
|