Revision fc96cb0e70319855d9a675273ec7b61f910bf72b authored by Ron Burkey on 17 June 2020, 23:06:20 UTC, committed by Ron Burkey on 17 June 2020, 23:06:20 UTC
emulation of the PTC printer peripheral. Corrected some comment typos and other bugs I just happened to notice without detecting them as errors.
1 parent a38a94f
SYSTEM_TEST_STANDARD_LEAD_INS.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: SYSTEM_TEST_STANDARD_LEAD_INS.agc
## Purpose: A section of Luminary revision 163.
## It is part of the reconstructed source code for the first
## (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 173, as well as Luminary memos 157 amd 158.
## It has been adapted such that the resulting bugger words
## exactly match those specified for Luminary 163 in NASA
## drawing 2021152N, which gives relatively high confidence
## that the reconstruction is correct.
## Reference: pp. 375-377
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2019-08-21 MAS Created from Luminary 173.
## Page 375
EBANK= XSM
BANK 33
SETLOC E/PROG
BANK
COUNT* $$/P07
# SPECIAL PROGRAMS TO EASE THE PANGS OF ERASABLE MEMORY PROGRAMS.
# E/BKCALL FOR DOING BANKCALLS FROM AND RETURNING TO ERASABLE.
# THIS ROUTINE IS CALLABLE FROM ERASABLE OR FIXED. LIKE BANKCALL, HOWEVER, SWITCHING BETWEEN S3 AND S4
# IS NOT POSSIBLE.
# THE CALLING SEQUENCE IS:
# TC BANKCALL
# CADR E/BKCALL
# CADR ROUTINE WHERE YOU WANT TO GO IN FIXED.
# RETURN HERE FROM DISPLAY TERMINATE, BAD STALL OR TC Q.
# RETURN HERE FROM DISPLAY PROCEED OR GOOD RETURN FROM STALL.
# RETURN HERE FROM DISPLAY ENTER OR RECYCLE.
# THIS ROUTINE REQUIRES TWO ERASABLES (EBUF2, +1) IN UNSWITCHED WHICH ARE UNSHARED BY INTERRUPTS AND
# OTHER EMEMORY PROGRAMS.
# A + L ARE PRESERVED THROUGH BANKCALL AND E/BKCALL.
E/BKCALL DXCH BUF2 # SAVE A,L AND GET DP RETURN.
DXCH EBUF2 # SAVE DP RETURN.
INCR EBUF2 # RETURN +1 BECAUSE DOUBLE CADR.
CA BBANK
MASK LOW10 # GET CURRENT EBANK. (SBANK SOMEDAY)
ADS EBUF2 +1 # FORM BBCON. (WAS FBANK)
NDX EBUF2
CA 0 -1 # GET CADR OF ROUTINE.
TC SWCALL # GO TO ROUTINE, SETTING Q TO SWRETURN
# AND RESTORING A + L.
TC +4 # TX Q, V34, OR BAD STALL RETURN.
TC +2 # PROCEED OR GOOD STALL RETURN.
INCR EBUF2 # ENTER OR RECYCLE RETURN.
INCR EBUF2
E/SWITCH DXCH EBUF2
DTCB
## Page 376
# E/CALL FOR CALLING A FIXED MEMORY INTERPRETIVE SUBROUTINE FROM ERASABLE AND RETURNING TO ERASABLE.
# THE CALLING SEQUENCE IS...
#
# RTB
# E/CALL
# CADR ROUTINE THE INTERPRETIVE SUBROUTINE YOU WANT.
# RETURNS HERE IN INTERPRETIVE.
E/CALL LXCH LOC # ADRES -1 OF CADR.
INDEX L
CA L # CADR IN A.
INCR L
INCR L # RETURN ADRES IN L.
DXCH EBUF2 # STORE CADR AND RETURN.
TC INTPRET
CALL
EBUF2 # INDIRECTLY EXECUTE ROUTINE. IT MUST
EXIT # LEAVE VIA RVQ OR EQUIVALENT.
LXCH EBUF2 +1 # PICK UP RETURN.
TCF INTPRET +2 # SET LOC AND RETURN TO CALLER.
## Page 377
# E/JOBWAK FOR WAKING UP ERASABLE MEMORY JOBS.
# THIS ROUTINE MUST BE CALLED IN INTERRUPT OR WITH INTERRUPTS INHIBITED.
# THE CALLING SEQUENCE IS:
#
# INHINT
# .
# .
# CA WAKEADR ADDRESS OF SLEEPING JOB
# TC IBNKCALL
# CADR E/JOBWAK
# . RETURNS HERE
# .
# .
# RELINT IF YOU DID AN INHINT.
BANK 33
SETLOC E/PROG
BANK
COUNT* $$/P07
E/JOBWAK TC JOBWAKE # ARRIVE IWTH ADRES IN A.
CS BIT11
NDX LOCCTR
ADS LOC # KNOCK FIXED MEMORY BIT OUT OF ADRES.
TC RUPTREG3 # RETURN
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...