Revision e9fdba28bc24263664b236ea2fb026326c582d33 authored by Ron Burkey on 24 December 2017, 21:04:22 UTC, committed by Ron Burkey on 24 December 2017, 21:04:22 UTC
1 parent d7b4237
AOTMARK.agc
### FILE="Main.annotation"
## Copyright: Public domain.
## Filename: AOTMARK.agc
## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
## It is part of an early development version of the software
## for Apollo Guidance Computer (AGC) on the unmanned Lunar
## Module (LM) flight Apollo 5. Sunburst 37 was the program
## upon which Don Eyles's offline development program Shepatin
## was based; the listing herein transcribed was actually for
## the equivalent revision 0 of Shepatin.
## This file is intended to be a faithful transcription, except
## that the code format has been changed to conform to the
## requirements of the yaYUL assembler rather than the
## original YUL assembler.
## Reference: pp. 146-154
## Assembler: yaYUL
## Contact: Ron Burkey <info@sandroid.org>.
## Website: www.ibiblio.org/apollo/index.html
## Mod history: 2017-05-24 MAS Created from Sunburst 120.
## 2017-05-30 RSB Transcribed.
## 2017-06-21 RSB Proofed using octopus/ProoferComments.
## Page 146
BANK 13
EBANK= AOTAZ
AOTMARK INHINT
TS RUPTREG2 # BIT14=INFLIGHT 0=NONFLIGHT
CCS MARKSTAT # ARE MARKS BUTTONS IN USE
TC +2 # MARKS BUTTONS NOT AVAILABLE
TC MKVAC # FIND A VAC AREA
TC ALARM
OCT 00105
TC ENDOFJOB
MKVAC CCS VAC1USE
TC MKVACFND
CCS VAC2USE
TC MKVACFND
CCS VAC3USE
TC MKVACFND
CCS VAC4USE
TC MKVACFND
CCS VAC5USE
TC MKVACFND
TC ABORT # VAC AREAS OCCUPIED
OCT 01207
MKVACFND AD TWO
TS MARKSTAT
CAF ZERO
TS XYMARK # INITIALIZE MARK ID REGISTER
INDEX MARKSTAT
TS 0 -1 # SHOW VAC OCCUPIED
CA RUPTREG2
ADS MARKSTAT
CAF PRIO32
TC NOVAC
EBANK= AOTAZ
2CADR GETMKS
TC MODEEXIT
MKRELEAS CAF ZERO
XCH MARKSTAT # SET MARKSTAT ZERO
CCS A
INDEX A
TS 0 # SHOW VAC AREA AVAILABLE
TC SWRETURN
## Page 147
GETMKS CAF ZERO
TS XYMARK
CAF BIT14 # FIND IF IN-FLIGHT OR NON-FLIGHT
MASK MARKSTAT
CCS A
TC MKVB53 # IN-FLIGHT
CS BIT11 # NON-FLIGHT, SET Y MARK =1
MASK MARKSTAT
AD BIT11
TS MARKSTAT
CAF VB51 # REQUEST X MARK
TC +2
MKVB53 CAF VB53 # REQUEST X AND Y MARKS
TC NVSBWAIT
TC FLASHON
TC ENDIDLE
TC GETMKS +1
TC GETMKS +1
MKCHEK CAF BIT10 # WAS X MARK MADE
MASK MARKSTAT
CCS A
TC +2 # X MARK MADE-LOOK AT Y MARK
TC MKALARM
CAF BIT11
MASK MARKSTAT
CCS A
TC GETDET # BOTH MARKS MADE-SHOW ACCEPT-GET DETENT
MKALARM TC ALARM # IF EITHER MARK IS MISSING AFTER ENTER
OCT 111
CS PRIO17 # SET BITS 10,11,12,13 TO ZERO IN MARKSTAT
MASK MARKSTAT
TS MARKSTAT
TC GETMKS # GETMKS AGAIN
GETDET CS BIT12
MASK MARKSTAT
AD BIT12 # SET BIT12=1 TO SHOW MARKS ACCEPTED
TS MARKSTAT
DETVB21 CAF V21N43E
TC NVSBWAIT
TC ENDIDLE
TC DETVB21
TC DETVB21
CS OCT3
MASK DETCODE
CCS A
TC DETVB21 # BAD CODE, REQUEST AGAIN
## Page 148
TC +3 # LOOKS GOOD BUT COULD BE ZERO
TC +1
TC DETVB21
CAF OCT3
MASK DETCODE # SEE IF ZERO
CCS A
TC +2 # GOOD CODE-STORE ANGLES
TC DETVB21 # ZERO-BAD CODE-REQUEST AGAIN
CAF LOW9
MASK MARKSTAT
TS BASVAC # STORE VAC AREA ADDRESS
INDEX DETCODE
CA AOTEL -1
INDEX BASVAC
TS 9D # STORE ELV ANGLE IN VAC +9
INDEX DETCODE
CA AOTAZ -1
INDEX BASVAC
TS 8D # STORE AZIMUTH IN VAC +8
CA AOTAZ +1 # COMPENSATION FOR THE APPARENT TILT OF
EXTEND # AOT FIELD OF VIEW IN THE LEFT AND RIGHT
INDEX DETCODE # DETENTS IS STORED IN LOC 10D OF VAC
MSU AOTAZ -1 # IN ONES COMPLEMENT
INDEX BASVAC
TS 10D # SINGLE PREC. TILT COMPENSATION ANGLE
CAF BIT14 # IN-FLIGHT OR NON-FLIGHT
MASK MARKSTAT
CCS A
TC MKOUT # IN-FLIGHT, NO MORE DATA NEEDED
TC ROTVB24 # NON-FLIGHT, GET ROTATION ANGLES
ROTVB24 CAF V24N42E # REQUEST RETICLE ROTATION ANGLES
TC NVSBWAIT
TC ENDIDLE
TC ROTVB24
TC ROTVB24
CAF LOW9
MASK MARKSTAT
TS BASVAC
CA DSPTEM2 # YROT
INDEX BASVAC
TS 3 # STORE Y RETICLE ROT ANGLE IN VAC +3
CA DSPTEM2 +1 # SROT
INDEX BASVAC
TS 5 # STORE SPIRAL ROT ANGLE VAC +5
## Page 149
MKOUT CAF LOW9
MASK MARKSTAT
TS MARKSTAT # SET HI5 ZERO
INHINT
CAF ONE
TC WAITLIST
EBANK= AOTAZ
2CADR ENDMARKS
TC ENDOFJOB
ENDMARKS CAF ONE
TCF GOODEND
## Page 150
MARKRUPT TS BANKRUPT
CA CDUY # STORE CDU DATA AND TIME IN TEMP
TS RUPTSTOR +2
CA CDUZ
TS RUPTSTOR +4
CA CDUX
TS RUPTSTOR +6
EXTEND
DCA TIME2
DXCH RUPTSTOR
XCH Q
TS QRUPT
CAF OCT34 # SEE IF X OR Y MARK OR MKREJECT
EXTEND
RAND NAVKEYIN
CCS A
TC +2 # ITS A LIVE ONE-CHECK FOR ACCEPT
TC SOMEKEY # SOME OTHER KEY
CAF BIT12 # HAVE MARKS BEEN ACCEPTED
MASK MARKSTAT
CCS A
TC RESUME # MARKS MADE AND ACCEPTED - DO NOTHING
CCS MARKSTAT # ARE MARKS BEING ACCEPTED
TC FINDKEY
TC ALARM # MARKS NOT BEING ACCEPTED
OCT 112
TC RESUME
FINDKEY CAF BIT5
EXTEND
RAND NAVKEYIN # CHANNEL 16
CCS A
TC MKREJ # ITS A MARK REJECT
CAF BIT4
EXTEND
RAND NAVKEYIN
CCS A
TC YMKRUPT # ITS A Y MARK
CAF BIT3
EXTEND
RAND NAVKEYIN
CCS A
TC XMKRUPT # ITS AN X MARK
SOMEKEY CAF OCT140 # NOT MARK OR MARK REJECT
EXTEND
RAND NAVKEYIN
## Page 151
EXTEND
BZF +3 # IF NO INBITS.
TC POSTJUMP # IF DESCENT BITS.
CADR DESCBITS
+3 TC ALARM
OCT 113
TC RESUME
XMKRUPT CAF ZERO
TS ITEMP1
CAF BIT10
TC +4
YMKRUPT CAF ONE
TS ITEMP1
CAF BIT11
TS XYMARK # SET MARK ID
MASK MARKSTAT
CCS A
TC +2 # MARK MADE BUT NOT DESIRED
TC VACSTOR # MARK DESIRED AND MADE-STORE CDUS
TC ALARM
OCT 114
TC REMARK # RENEW REQUEST
VACSTOR CAF LOW9 # STORE TIME AND CDUS IN VAC AREA
MASK MARKSTAT
TS ITEMP2
EXTEND
DCA RUPTSTOR
INDEX ITEMP2
DXCH 0 # STORE TIME1 AND TIME2 IN VAC
CA ITEMP2
ADS ITEMP1
CA RUPTSTOR +2
INDEX ITEMP1
TS 2
CA RUPTSTOR +4
INDEX ITEMP1
TS 4
CA RUPTSTOR +6
INDEX ITEMP1
TS 6
CAF BIT13
AD XYMARK
COM
MASK MARKSTAT
## Page 152
AD XYMARK # SET MARK MADE BIT IN MARKSTAT=1
TS MARKSTAT # AND SET BIT13 ZERO TO SHOW MARK
TC REMARK # MADE BEFORE A REJECT - GO REMARK
## Page 153
REMARK CAF ZERO
TS MKDEX # MKDEX=0
CAF BIT11 # LOOK A Y MARK
MASK MARKSTAT
CCS A
TC +3 # Y MARK MADE
CAF BIT8 # Y MARK REQUIRED
TS MKDEX
CAF BIT10 # LOOK AT X MARK
MASK MARKSTAT
CCS A
TC MKJOB
CAF BIT7 # X MARK REQUIRED
ADS MKDEX
MKJOB CAF PRIO32
TC NOVAC # ENTER JOB TO PASTE VERB
EBANK= AOTAZ
2CADR CHANGVB
CA RUPTREG4
INDEX LOCCTR
TS MPAC
TC RESUME
CHANGVB CCS MPAC
TC SHOWVB
CAF VB21N30E
TC SHOWVB +2
SHOWVB CAF VB50
AD MPAC
TS NVTEMP
CA CADRSTOR # NVSUB CLOBBERS THIS-USE LOC AS TEMP
TS LOC
TC NVSUB +3
VB51 OCT 5100
CA LOC # RESTORE CADRSTOR
TS CADRSTOR
TC ENDOFJOB
MKREJ CAF BIT14 # IN-FLIGHT OR NON-FLIGHT
MASK MARKSTAT
CCS A
TC REJIN # IN-FLIGHT
CAF BIT10 # NON-FLIGHT, SEE IF X MARK MADE
MASK MARKSTAT
CCS A
TC REJECT2 # XMARK MADE-REJECT IT
TC REJALARM # X MARK NOT MADE-ALARM-NO MARKS TO REJ
## Page 154
REJIN CAF PRIO3 # WERE IN-FLIGHT MARKS MADE
MASK MARKSTAT
CCS A
TC REJECT # MARKS MADE-REJECT ONE
REJALARM TC ALARM # NO MARKS MADE TO REJECT-GET MARKS
OCT 115
TC REJECT2
REJECT CS BIT13 # SHOW MKREJECT AND SEE MARK MADE
MASK MARKSTAT # SINCE LAST REJECT
AD BIT13
XCH MARKSTAT
MASK BIT13
CCS A
TC REJECT2 # ANOTHER REJECT
CS XYMARK # MARK MADE SINCE LAST REJECT-REJECT IT
MASK MARKSTAT
TS MARKSTAT
TC REMARK # GO REQUEST MARKS
REJECT2 CS PRIO3 # NO MARKS SINCE LAST REJECT SO SET
MASK MARKSTAT # MARKSTAT TO WANT X AND Y MARKS
XCH MARKSTAT
MASK BIT14 # IN-FLIGHT OR NON-FLIGHT
CCS A
TC REMARK # IN-FLIGHT, GO GET MARKS
CAF BIT11 # NON-FLIGHT, STILL REQUEST X MARK ONLY
ADS MARKSTAT
TC REMARK # GO GET X MARK
OCT3 EQUALS THREE
OCT34 OCT 00034
OCT140 OCT 00140
V21N43E OCT 2143
V24N42E OCT 2442
VB53 OCT 5300
MKDEX EQUALS RUPTREG4
DETCODE EQUALS XYMARK
BASVAC EQUALS Q
VB21N30E OCT 2130
VB50 OCT 5000
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...