https://github.com/virtualagc/virtualagc
Revision 4e5d304eb7cd5589b924ffb8b423b6f15511b35d authored by Ron Burkey on 20 October 2018, 17:47:00 UTC, committed by Ron Burkey on 20 October 2018, 17:47:00 UTC
the recently-added documents about YUL, was transcribed. Because the original program contained a deliberate error in YUL (as well as some constructs that have unintentionally become errors in yaYUL), I've provided it in two forms: TRIVIUM (which matches the original scan, to the extent feasible) and TRIVIUM-repaired (which has the deliberate and unintentional errors fixed, but otherwise retains the identical functionality of the original).
1 parent c6c292e
Tip revision: 4e5d304eb7cd5589b924ffb8b423b6f15511b35d authored by Ron Burkey on 20 October 2018, 17:47:00 UTC
The sample Block I AGC program TRIVIUM, found at the very end of one of
The sample Block I AGC program TRIVIUM, found at the very end of one of
Tip revision: 4e5d304
KEYRUPT_UPRUPT_FRESH_START.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: KEYRUPT_UPRUPT_FRESH_START.agc
## Purpose: Part of the source code for Solarium build 55. This
## is for the Command Module's (CM) Apollo Guidance
## Computer (AGC), for Apollo 6.
## Assembler: yaYUL --block1
## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
## Website: www.ibiblio.org/apollo/index.html
## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
## Mod history: 2009-09-15 JL Created.
## 2016-08-17 RSB Corrected a duplicated symbol TFAIL2 on p. 479.
## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
## and fixed errors found.
## Page 477
BANK 4
KEYRUPT1 MASK LOW5 # C(IN0) IN A
TS RUPTREG4
TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65
CAF PRIO33
TC NOVAC
CADR CHARIN
NOKEYBUF XCH RUPTREG4
INDEX LOCCTR
TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
TC RESUME
## Page 478
UPRUPTB TS BANKRUPT
TC READTIME +1 # TIME IS SNATCHED IN RUPT FOR NOUN 65
CAF ZERO
XCH UPLINK # ZERO UPLINK
TS KEYTEMP1
CCS DSPTAB +7 # TURN ON UPACT LIGHT
TC +2 # UPACT = BIT 11 OF DSPTAB +7
CAF B12-1 # SAFETY PLAY
AD ONE
TS KEYTEMP2 # MAG OF DSPTAB +7 INTO KEYTEMP2
MASK BIT11
CCS A
TC UPRPT1 # BIT 11 ALREADY ONE
XCH KEYTEMP2 # BIT 11 = 0
AD BIT11
CS A # STORE NEGATIVELY
XCH DSPTAB +7
CCS A
TC INCNOUTU # PREVIOUS CONTENTS WAS +
NOOP # SAFETY PLAY
UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
MASK KEYTEMP1 # LOW5 OF WORD
XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
XCH SR # WHOLE WORD INTO SR
TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
TC SRGHT5
MASK LOW5 # MID 5
AD HI10
TC UPTEST
TC SRGHT5
MASK LOW5 # HIGH 5
COM
TC UPTEST
UPOK TC RESTORSR # CODE IS GOOD
CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
AD KEYTEMP1 # INTO UPLOCK (BIT2 OF STATE)
CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
TC TSTUPLOK # UPLOCK=0 (BIT 2 OF STATE)
ELRCODE OCT 22
TC TSTUPLOK
CS BIT2 # 0 INTO UPLOCK (BIT 2 OF STATE)
MASK UPLOCK
TS UPLOCK
TC ACCEPTUP
TSTUPLOK CAF BIT2
MASK UPLOCK
CCS A
TC RESUME # UPLOCK = 1 (BIT2 OF STATE)
ACCEPTUP XCH KEYTEMP1 # UPLOCK = 0 (BIT2 OF STATE)
TC KEYRUPT1 +1
## Page 479
TMFAIL2 TC RESTORSR # CODE IS BAD
CS BIT2 # LOCK OUT FURTHER UPLINK ACTIVITY (BY
MASK UPLOCK # PUTTING 1 INTO UPLOCK, BIT 2 OF STATE)
AD BIT2 # UNTIL ERROR LIGHT RESET IS SENT UP
TS UPLOCK # UPLINK.
TMFAIL1 TC TMALM
TC RESUME
RESTORSR XCH KEYTEMP2
DOUBLE
TS SR
TC Q
TMALM EQUALS TMFAIL # TM FAIL LIGHT ON (IN DOWNRUPT).
SRGHT5 CS SR
CS SR
CS SR
CS SR
CS SR
CS A
TC Q # DELIVERS WORD UNCOMPLEMENTED
UPTEST AD KEYTEMP1
CCS A
TC TMFAIL2
TC CCSHOLE
TC TMFAIL2
TC Q
HI10 OCT 77740
UPBANK EQUALS EXECBANK # IN SAME BANK AS EXEC.
B12-1 OCT 3777
INCNOUTU XCH NOUT
AD ONE
TS NOUT
INDEX Q
UPLAST TC 1
# UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
## Page 480
# THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
# BY PLACING A 1 INTO UPLOCK (BIT2 OF STATE). BIT9 (AND BIT11) OF TMKEYBUF
# IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
# THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
# UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
Computing file changes ...