Raw File
AOTMARK.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    AOTMARK.agc
## Purpose:     The main source file for Luminary revision 069.
##              It is part of the source code for the original release
##              of the flight software for the Lunar Module's (LM) Apollo
##              Guidance Computer (AGC) for Apollo 10. The actual flown
##              version was Luminary 69 revision 2, which included a
##              newer lunar gravity model and only affected module 2.
##              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. 259-276
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2016-12-13 MAS  Created from Luminary 99.
##              2017-01-10 HG   Transcribed
##		2017-01-25 RSB	Proofed comment text using octopus/prooferComments
##				and fixed errors found.
##		2017-08-19 MAS	Fixed a typo found while transcribing Zerlina 56.

## Page 259
                BANK            12
                SETLOC          AOTMARK1
                BANK

                EBANK=          XYMARK
                COUNT*          $$/MARK

AOTMARK         INHINT
                CCS             MARKSTAT                # SEE IF AOTMARK BUSY
                TC              +2                      # MARK SYSTEM BUSY-DO ALARM
                TC              EXTVBCHK
                TC              POODOO
                OCT             00105

EXTVBCHK        CAF             SIX                     # SEE IF EXT. VERB WORKING
                MASK            EXTVBACT
                CCS             A
                TCF             MKABORT                 # YES-ABORT

                CAF             BIT2                    # NO-DISALLOW SOME EXTENDED VERB ACTION
                ADS             EXTVBACT                # BIT2 RESET IN ENDMARK
MKVAC           CCS             VAC1USE                 # LOOK FOR A VAC AREA-DO ABORT IF
                TCF             MKVACFND                # NONE AVAILABLE
                CCS             VAC2USE
                TCF             MKVACFND
                CCS             VAC3USE
                TCF             MKVACFND
                CCS             VAC4USE
                TCF             MKVACFND
                CCS             VAC5USE
                TCF             MKVACFND
                DXCH            BUF2
                TC              BAILOUT1                # ALL VAC AREAS OCCUPIED - ABORT.
                OCT             01207

MKVACFND        AD              TWO
                TS              MARKSTAT                # STORE VAC ADR IN LOW 9 OF MARKSTAT

                CAF             ZERO
                INDEX           MARKSTAT
                TS              0               -1      # ZERO IN VACUSE REG TO SHOW VAC OCCUPIED

                CAF             PRIO15
                TC              FINDVAC                 # SET UP JOB FOR GETDAT
                EBANK=          XYMARK
                2CADR           GETDAT

                RELINT
                TCF             SWRETURN

## Page 260
MKABORT         DXCH            BUF2
                TC              BAILOUT1                # CONFLICT WITH EXTENDED VERB
                OCT             01211

MKRELEAS        CAF             ZERO
                XCH             MARKSTAT                # SET MARKSTAT TO ZERO
                MASK            LOW9                    # PICK UP VAC AREA ADR
                CCS             A
                INDEX           A
                TS              0                       # SHOW MKVAC AREA AVAILABLE
                CAF             ONE
                TC              IBNKCALL
                CADR            GOODEND                 # GO WAKE UP CALLING JOB

## Page 261
GETDAT          CS              MARKSTAT                # SET BIT12 TO DISCOURAGE MARKRUPT
                MASK            BIT12                   #   BIT12 RESET AT GETMARK
                ADS             MARKSTAT

                CAF             V01N71                  # DISPLAY DETENT AND STAR CODE
                TC              BANKCALL
                CADR            GOMARKF

                TC              GOTOPOOH                # V34-TERMINATE
                TCF             DODAT                   # V33-PROCEED-USE THIS STAR FOR MARKS
ENTERDAT        TCF             GETDAT                  # ENTER-REDISPLAY STAR CODE

DODAT           CAF             HIGH9                   # PICK DETENT CODE FROM BITS7-9 OF AOTCODE
                MASK            AOTCODE                 # AND SEE IF CODE IS 1,2 OR 3
                EXTEND
                MP              BIT9
                TS              XYMARK                  # STORE DETENT

                EXTEND
                BZMF            GETDAT                  # NO GOOD-MAKE REQUEST AGAIN

                MASK            BIT3                    # SEE IF DETENT CODE 4 OR 5
                EXTEND
                BZF             CODE123                 # NOT 4 OR 5, MUST BE 1,2 OR 3

                COUNT*          $$/COAS

CODE4OR5        CAF             V06N87*                 # CODE 4 OR 5, GET OPTIC AXIS CALIBRATIONS
                TC              BANKCALL                # AZ AND EL OF SIGHTING DEVICE FROM ASTRO
                CADR            GOMARKF

                TC              GOTOPOOH                # V34-TERMINATE
                TCF             +2                      # PROCEED
                TCF             CODE4OR5                # ON ENTER, RECYCLE
                EXTEND
                DCA             AZ                      # PICK UP AZ AND EL IN SP 2S COMP
                INDEX           FIXLOC
                DXCH            8D                      # STORE IN 8D AND 9D OF LOCAL VAC
                CAF             BIT1                    # IF CODE 4, REAR AOT POSITIONS USED
                MASK            XYMARK                  # SO CALC APPARENT ROTATION
                EXTEND                                  # IF CODE 5, BACKUP, ZERO ROTATION
                BZF             CODE4                   # REAR AOT DETENTS TO BE USED
                CAF             ZERO                    # BACKUP SYSTEM TO BE USED
                TCF             CODE5

                COUNT*          $$/MARK

CODE123         INDEX           XYMARK                  # INDEX DET CODE 1,2 OR 3
                CA              AOTEL -1
                INDEX           FIXLOC

## Page 262
                TS              9D                      # STORE ELEVATION IN VAC+9D

                INDEX           XYMARK                  # INDEX DET CODE 1,2 OR 3
                CA              AOTAZ -1
                INDEX           FIXLOC
                TS              8D                      # STORE AZIMUTH IN VAC+8D

CODE4           CA              AOTAZ +1                # COMPENSATION FOR APPARENT RATATION OF
                EXTEND                                  # AOT FIELD OF VIEW IN LEFT AND RIGTHT
                INDEX           FIXLOC                  # DETENTS IS STORED IN VAC +10D IN SP
                MSU             8D                      # PRECISION ONES COMPLEMENT
CODE5           INDEX           FIXLOC
                TS              10D                     # ROT ANGLE

                TC              INTPRET                 # COMPUTE X AND Y PLANE VECTORS

## Page 263
# THE OPTAXIS SUBROUTINE COMPUTES THE X AND Y MARK PLANE VECS AND
# AND ROTATES THEM THRU THE APPARENT FIELD OF VIEW ROTATION UNIQUE TO AOT
# OPTAXIS USES OANB TO COMPUTE THE OPTIC AXIS
#  INPUT-AZIMUTH ANGLE IN SINGLE PREC AT CDU SCALE IN 8D OF JOB VAC
#        ELEVATION ANGLE IN SINGLE PREC AT CDU SCALE IN 9D OF JOB VAC
#        ROTATION ANGLE IN SINGLE PREC 1S COMP SCALED BY PI IN 10D OF VAC
#  OUTPUT-OPTIC AXIS VEC IN NB COORDS IN SCAXIS
#         X-MARK PLANE 1/4VEC IN NB COORDS AT 18D OF JOB VAC
#         Y-MARK PLANE 1/4VEC IN NB COORDS AT 12D OF JOB VAC

OPTAXIS         CALL                            # GO COMPUTE OA AND X AND Y PLANE VECS
                        OANB
                SLOAD   SR1                     # LOAD APP ROTATION IN ONES COMP
                        10D                     # RESCALE BY 2PI
                PUSH    SIN                     # 1/2SIN(ROT)  0-1
                PDDL    COS
                PUSH    VXSC                    # 1/2COS(ROT)  2-3
                        18D
                PDDL    VXSC                    # 1/4COS(ROT)UYP   4-9
                        0
                        24D                     # 1/4SIN(ROT)UXP
                BVSU    STADR                   # UP 4-9
                STODL   12D                     # YPNB=1/4(COS(ROT)UYP-SIN(ROT)UXP)
                VXSC    PDDL                    # UP 2-3  UP 0-1  FOR EXCHANGE
                        24D                     # 1/4COS(ROT)UXP  PUSH 0-5
                VXSC    VAD                     # 1/4SIN(ROT)UYP
                        18D                     # UP 0-5
                STADR
                STOVL   18D                     # XPNB=1/4(COS(ROT)UXP+SIN(ROT)UYP)
                        LO6ZEROS                # INITIALIZE AVE STAR VEC ACCUMULATOR
                STORE   STARAD          +6
                EXIT
                TCF     GETMKS

## Page 264
# THE OANB SUBROUTINE COMPUTES THE OPTIC AXIS OF THE SIGHTING INSTRUMENT
# FROM AZIMUTH AND ELEVATION INPUT FROM THE ASTRONAUT.
#    INPUT- AZIMUTH ANGLE IN SINGLE PREC 2S COMP IN 8D OF JOB VAC
#           ELEVATION ANGLE IN SINGLE PREC 2S COMP IN 9D OF VAC
#    OUTPUT-OPTIC AXIS IN NB COORDS. IN SCAXIS
#           X-PLANE 1/2VEC IN NB COORDS AT 24D OF VAC
#           Y-PLANE 1/2VEC IN NB COORDS AT 18D OF VAC

                BANK            05
                SETLOC          AOTMARK2
                BANK

                COUNT*          $$/MARK

OANB            SETPD           STQ
                                0
                                GCTR                    # STORE RETURN
                SLOAD           RTB
                                9D                      # PICK UP SP ELV
                                CDULOGIC
                PUSH            COS
                PDDL            SIN                     # 1/2COS(ELV)  PD 0-1
                STADR
                STODL           SCAXIS                  # OAX=1/2SIN(ELV)
                                8D                      # PICK UP AZ SP
                RTB
                                CDULOGIC
                PUSH            COS
                STORE           20D                     # STORE UYP(Y) 20-21
                PDDL            SIN                     # 1/2COS(AZ) PD 2-3
                PUSH            DCOMP                   # PUSH 1/2SIN(AZ) 4-5
                STODL           22D                     # STORE UYP(Z) 22-23
                                LO6ZEROS
                STODL           18D                     # STORE UYP(X) 18-19   UP 4-5
                DMP             SL1
                                0
                STODL           SCAXIS          +2      # OAY=1/2COS(ELV)SIN(AZ)
                DMP             SL1                     # UP 2-3
                STADR                                   # UP 0-1
                STOVL           SCAXIS          +4      # OAZ=1/2COS(ELV)COS(AZ)
                                18D                     # LOAD UYP VEC
                VXV             UNIT
                                SCAXIS                  # UXP VEC=UYP X OA
                STORE           24D                     # STORE UXP
                GOTO
                                GCTR

## Page 265
# SURFSTAR COMPUTES A STAR VECTOR IN SM COORDINATES FOR LUNAR
# SURFACE ALIGNMENT AND EXITS TO AVEIT TO AVERAGE STAR VECTORS.
# GIVEN X-MARK PLANE 1/4 VEC IN NB AT 18D OF LOCAL VAC
#       Y-MARK PLANE 1/4 VEC IN NB AT 12D OF LOCAL VAC
#       CURSOR SP 2COMP AT POSITION 1 OF INDEXED MARKVAC
#       SPIRAL SP 2COMP AT POSITION 3 OF INDEXED MARKVAC
#       CDUY,Z,X AT POSITIONS 0,2,4 OF INDEXED MARKVAC
                BANK            15
                SETLOC          P50S
                BANK
                COUNT*          $$/R59

SURFSTAR        VLOAD*
                                0,1                     # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
                STORE           CDUSPOT
                SLOAD*          RTB
                                1,1                     # PICK UP YROT
                                CDULOGIC
                STORE           24D                     # STORE CURSOR FOR SPIRAL COMP (REVS)
                BZE
                                YZCHK                   # IF YROT ZERO-SEE IF SROT ZERO
JUSTZY          PUSH            COS
                PDDL            SIN                     # 1/2COS(YROT) 0-1
                VXSC            PDDL                    # UP 0-1  1/8SIN(YROT)UXP  0-5
                                18D
                VXSC            VSU                     # UP   0-5
                                12D                     # UYP
                UNIT            VXV
                                SCAXIS
                UNIT            PUSH
                SLOAD*          RTB
                                3,1                     # PICK UP SPIRAL
                                CDULOGIC
                STORE           26D                     # STORE SPIRAL (REVS)
                DSU             DAD
                                24D
                                ABOUTONE
                DMP
                                DP1/12
                STORE           26D                     # SEP=(360 + SPIRAL - CURSOR)/12
                SIN             VXSC                    # UP  0-5
                VSL1            PDDL                    # 1/2SIN(SEP)(UPP X OA)  0-5
                                26D
                COS             VXSC
                                SCAXIS
                VSL1            VAD                     # UP  0-5
JUSTOA          UNIT            CALL
                                TRG*NBSM
                STCALL          24D                     # STAR VEC IN SM
                                AVEIT                   # GO AVERAGE

## Page 266
ABOUTONE        2DEC            .99999999
DP1/12          EQUALS          DEG30                   # .08333333
                BANK            7
                SETLOC          AOTMARK1
                BANK
                COUNT*          $$/MARK
YZCHK           SLOAD*          BZE                     # YROT ZERO AND IF SROT ZERO FORCE STAR
                                3,1                     # ALONG OPTIC AXIS
                                YSZERO
                DLOAD           GOTO
                                24D
                                JUSTZY                  # SROT NOT ZERO-CONTINUE NORMALLY
YSZERO          VLOAD           GOTO
                                SCAXIS
                                JUSTOA

## Page 267
# THE GETMKS ROUTINE INITIALIZES THE SIGHTING MARK PROCEDURE

GETMKS          CAF             ZERO                    # INITIALIZE MARK ID REGISTER AND MARK CNT
                TS              XYMARK
                TS              MARKCNTR
                CAF             LOW9                    # ZERO BITS10 TO 15 RETAINING MKVAC ADR
                MASK            MARKSTAT
                TS              MARKSTAT
                CAF             MKVB54*                 # DISPLAY VB54 INITIALLY
PASTIT          TC              BANKCALL
                CADR            GOMARK4

                TC              GOTOPOOH                # VB34 TERMINATE-THIS RELEASES MKVAC AREA
                TCF             MARKCHEX                # VB33-PROCEED, GOT MARKS, COMPUTE LOS
                TCF             GETDAT                  # ENTER- RECYCLE TO V01N71

MARKCHEX        CS              MARKSTAT                # SET BIT12 TO DISCOURAGE MARKRUPT
                MASK            BIT12
                ADS             MARKSTAT
                MASK            LOW9
                TS              XYMARK                  # JAM MARK VAC ADR IN XYMARK FOR AVESTAR
                CAF             ZERO
                TS              MKDEX                   # SET MKDEX ZERO FOR LOS VEC CNTR
                CA              MARKSTAT
                MASK            PRIO3                   # SEE IF LAST MK PARI COMPLETE
                TS              L
                CAF             PRIO3                   # BITS10 AND 11
                EXTEND
                RXOR            LCHAN
                EXTEND
                BZF             AVESTAR                 # LAST PAIR COMPLETE-GO COMPUTE LOS
CNTCHK          CCS             MARKCNTR                # NO PAIR SHOWING-SEE IF PAIR IN HOLD
                TCF             +2                      # PAIR BURIED-DECREMENT COUNTER
                TCF             MKALARM                 # NO PAIR-ALARM
                TS              MARKCNTR                # STORE DECREMENTED COUNTER

AVESTAR         CAF             BIT12                   # INITIALIZE MKDEX FOR STAR LOS COUNTER
                ADS             MKDEX                   # MKDEX WAS INITIALIZED ZERO IN MARKCHEX
                CS              MARKCNTR
                EXTEND
                MP              SIX                     # GET C(L) = - 6 MARKCNTR
                CS              XYMARK
                AD              L                       # ADD - MARK VAC ADR SET IN MARKCHEX
                INDEX           FIXLOC
                TS              X1                      # JAM - CDU ADR OF X-MARK IN X1

                CA              FIXLOC                  # SET PD POINTER TO ZERO
                TS              PUSHLOC

                TC              INTPRET

## Page 268
                BON             VLOAD*
                                SURFFLAG                # IF ON SURFACE COMPUTE VEC AT SURFSTAR
                                SURFSTAR
                                1,1                     # PUT Y-MARK CDUS IN CDUSPOT FOR TRG*NBSM
                STOVL           CDUSPOT
                                12D                     # LOAD Y-PLANE VECTOR IN NB
                CALL
                                TRG*NBSM                # CONVERT IT TO STABLE MEMBER
                PUSH            VLOAD*
                                0,1                     # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
                STOVL           CDUSPOT
                                18D                     # LOAD X-PLANE VECTOR IN NB
                CALL
                                TRG*NBSM                # CONVERT IT TO STABLE-MEMBER
                VXV             UNIT                    # UNIT(XPSM * YPSM)
                STADR
                STORE           24D

AVEIT           SLOAD           PDVL                    # N(NUMBER OF VECS) IN 0-1
                                MKDEX
                                24D                     # LOAD CURRENT VECTOR
                VSR3            V/SC
                                0
                STODL           24D                     # VEC/N
                                0
                DSU             DDV
                                DP1/8                   # (N-1)/N
                VXSC            VAD
                                STARAD          +6      # ADD VEC TO PREVIOUSLY AVERAGED VECTOR
                                24D                     # (N-1)/N AVESTVEC + VEC/N
                STORE           STARAD          +6      # AVERAGE STAR VECTOR
                STORE           STARSAV2
                EXIT
                CCS             MARKCNTR                # SEE IF ANOTHER MARK PAIR IN MKVAC
                TCF             AVESTAR         -1      # THERE IS-GO GET IT-DECREMENT COUNTER
ENDMARKS        CAF             FIVE                    # NO MORE MARKS-TERMINATE AOTMARK
                INHINT
                TC              WAITLIST
                EBANK=          XYMARK
                2CADR           MKRELEAS

                TC              ENDMARK

MKALARM         TC              ALARM                   # NOT A PAIR TO PROCESS-DO GETMKS
                OCT             111
                TCF             GETMKS

V01N71          VN              171
V06N87*         VN              687

## Page 269
# MARKRUPT IS ENTERED FROM INTERUPT LEAD-INS AND PROCESSES CHANNEL 16
# CAUSED BY X,Y MARK OR MARK REJECT OR BY THE RATE OF DESCENT SWITCH

MARKRUPT        TS              BANKRUPT
                CA              CDUY                    # STORE CDUS AND TIME NOW-THEN SEE IF
                TS              ITEMP3                  # WE NEED THEM
                CA              CDUZ
                TS              ITEMP4
                CA              CDUX
                TS              ITEMP5
                EXTEND
                DCA             TIME2
                DXCH            ITEMP1
                XCH             Q
                TS              QRUPT

                CAF             OCT34                   # SEE IF X OR Y MARK OR MKREJECT
                EXTEND
                RAND            NAVKEYIN
                CCS             A
                TCF             +2                      # ITS A LIVE ONE-SEE IF ITS WANTED
                TCF             SOMEKEY                 # ITS SOME OTHER KEY

                CAF             BIT12                   # ARE WE ASKING FOR A MARK
                MASK            MARKSTAT
                CCS             A
                TC              RESUME                  # DONT WANT MARK OR MKREJECT-DO NOTHING

                CCS             MARKSTAT                # ARE MARKS BEING ACCEPTED
                TCF             FINDKEY                 # THEY ARE-WHICH ONE IS IT
                TC              ALARM                   # MARKS NOT BEING ACCEPTED-DO ALARM
                OCT             112
                TC              RESUME

FINDKEY         CAF             BIT5                    # SEE IF MARK REJECT
                EXTEND
                RAND            NAVKEYIN
                CCS             A
                TCF             MKREJ                   # ITS A MARK REJECT

                CAF             BIT4                    # SEE IF Y MARK
                EXTEND
                RAND            NAVKEYIN
                CCS             A

                TCF             YMKRUPT                 # ITS A Y MARK

                CAF             BIT3                    # SEE IF X MARK
                EXTEND
                RAND            NAVKEYIN

## Page 270
                CCS             A
                TCF             XMKRUPT                 # ITS A X MARK

SOMEKEY         CAF             OCT140                  # NOT MARK OR MKREJECT-SEE IF DESCENT BITS
                EXTEND
                RAND            NAVKEYIN
                EXTEND
                BZF             +3                      # IF NO BITS

                TC              POSTJUMP                # IF DESCENT BITS
                CADR            DESCBITS

                TC              ALARM                   # NO INBITS IN CHANNEL 16
                OCT             113

                TC              RESUME

XMKRUPT         CAF             ZERO
                TS              RUPTREG1                # SET X MARK STORE INDEX TO ZERO
                CAF             BIT10
                TCF             +4
YMKRUPT         CAF             ONE
                TS              RUPTREG1                # SET Y MARK STORE INDEX TO ONE
                CAF             BIT11
                TS              XYMARK                  # SET MARK IDENTIFIATION

                TC              MARKTYPE                # SEE IF SURFACE MARK
                TCF             SURFSTOR                # SURFACE MARK-JUST STORE CDUS

                CAF             BIT14                   # GOT A MARK-SEE IF MARK PAIR MADE
                MASK            MARKSTAT
                EXTEND
                BZF             VERIFYMK                # NOT A PAIR, NORMAL PROCEDURE
                CS              MARKCNTR                # GOT A PAIR, SEE IF ANOTHER CAN BE MADE
                AD              FOUR                    # IF SO, INCREMENT POINTER,CLEAR BITS10,11
                EXTEND
                BZMF            5MKALARM                # HAVE FIVE MARK PAIRS-DONT ALLOW MARK
                INCR            MARKCNTR                # OK FOR ANOTHER PAIR, INCR POINTER
                CS              PRIO23                  # CLEAR BITS10,11,14 FOR NEXT PAIR
                MASK            MARKSTAT
                TS              MARKSTAT

VERIFYMK        CA              XYMARK
                MASK            MARKSTAT
                CCS             A
                TCF             +2                      # THIS MARK NOT DESIRED
                TCF             VACSTOR                 # MARK DESIRED - STORE CDUS
                TC              ALARM
                OCT             114
                TC              RESUME                  # RESUME-DISPLAY UNCHANGED-WAIT FOR ACTION

## Page 271
5MKALARM        TC              ALARM                   # ATTEMPTING TO MAKE MORE THAN 5 MK PAIRS
                OCT             107
                TC              MARKTYPE                # SEE IF SURFACE MARK
                TCF             DSPV6N79                # IT IS
                TC              RESUME                  # DONT CHANGE DISPLAY-DO NOTHING

## Page 272
MKREJ           TC              MARKTYPE                # SEE IF SURFACE
                TCF             SURFREJ                 # SURFACE-JUST CHECK MARK COUNTER

                CAF             PRIO3                   # INFLIGHT-SEE IF MARKS MADE
                MASK            MARKSTAT
                CCS             A
                TCF             REJECT                  # MARKS MADE-REJECT ONE
REJALM          TC              ALARM                   # NO MARK TO REJECT-BAD PROCEDURE-ALARM
                OCT             115
                TC              RESUME                  # DESIRED ACTION DISPLAYED

REJECT          CS              PRIO30                  # ZERO BIT14,SHOW REJ.,SEE IF MARK SINCE
                MASK            MARKSTAT                # LAST REJECT
                AD              BIT13
                XCH             MARKSTAT
                MASK            BIT13
                CCS             A
                TCF             REJECT2                 # ANOTHER REJECT SET BIT 10+11 TO ZERO

                CS              XYMARK                  # MARK MADE SINCE REJECT-REJECT MARK IN 1D
RENEWMK         MASK            MARKSTAT
                TS              MARKSTAT
                TCF             REMARK                  # GO REQUEST NEW MARK ACTION

REJECT2         CS              PRIO3                   # ON SECOND REJECT-DISPLAY VB53 AGAIN
                TCF             RENEWMK

SURFREJ         CCS             MARKCNTR                # IF MARK DECREMENT COUNTER
                TCF             +2
                TCF             REJALM                  # NO MARKS TO REJECT-ALARM
                TS              MARKCNTR
                TC              RESUME

## Page 273
#

# MARKTYPE TESTS TO SEE IF LEM ON LUNAR SURFACE.  IF IT IS RETURN TO LOC+1

MARKTYPE        CS              FLAGWRD8                # SURFFLAG*******TEMPORARY*****
                MASK            BIT8
                CCS             A
                INCR            Q                       # IF SURFACE MARK REUTNR TO LOC +1
                TC              Q                       # IF INFLIGHT MARK RETURN TO LOC +2

SURFSTOR        CAF             ZERO                    # FOR SURFACE MARK ZERO MARK KIND INDEX
                TS              RUPTREG1

                CS              MARKSTAT                # SET BITS10,11 TO SHOW SURFACE MARK
                MASK            PRIO3                   # FOR MARKCHEX
                ADS             MARKSTAT

VACSTOR         CAF             LOW9
                MASK            MARKSTAT                # STORE MARK VAC ADR IN RUPTREG2
                TS              RUPTREG2
                EXTEND
                DCA             ITEMP1                  # PICK UP MARKTIME
                DXCH            TSIGHT                  # STORE LAST MARK TIME
                CA              MARKCNTR                # 6 X MARKCNTR FOR STORE INDEX
                EXTEND
                MP              SIX
                XCH             L                       # GET INDEX FROM LOW ORDER PART
                AD              RUPTREG2                # SET CDU STORE INDEX TO MARKVAC
                ADS             RUPTREG1                # INCREMENT VAC PICKUP BY MARK FOR FLIGHT
                TS              MKDEX                   # STORE HERE IN CASE OF SURFACE MARK
                CA              ITEMP3
                INDEX           RUPTREG1
                TS              0                       # STORE CDUY
                CA              ITEMP4
                INDEX           RUPTREG1
                TS              2                       # STORE CDUZ
                CA              ITEMP5
                INDEX           RUPTREG1
                TS              4                       # STORE CDUX
                TC              MARKTYPE                # IF SURFACE MARK- JUST DO SURFJOB
                TCF             SURFJOB

                CAF             BIT13                   # CLEAR BIT13 TO SHOW MARK MADE
                AD              XYMARK                  # SET MARK ID IN MARKSTAT
                COM
                MASK            MARKSTAT
                AD              XYMARK
                TS              MARKSTAT
                MASK            PRIO3                   # SEE IF X, Y MARK MADE
                TS              L

## Page 274
                CA              PRIO3
                EXTEND
                RXOR            LCHAN
                CCS             A
                TCF             REMARK                  # NOT PAIR YET, DISPLAY MARK ACTION
                CS              MARKSTAT                # MARK PAIR COMPLETE-SET BIT14
                MASK            BIT14
                ADS             MARKSTAT
                TCF             REMARK                  # GO DISPLAY V54

## Page 275
REMARK          CAF             PRIO3                   # BITS 10 AND 11
                MASK            MARKSTAT
                EXTEND
                MP              BIT6                    # SHIFT MARK IDS TO BE 0 TO 3 FOR INDEX
                TS              MKDEX                   # STORE VERB INDEX
SURFJOB         CAF             PRIO15
                TC              NOVAC                   # ENTER JOB TO CHANGE DISPLAY TO
                EBANK=          XYMARK                  # REQUEST NEXT ACTION
                2CADR           CHANGEVB

                TC              RESUME

CHANGEVB        TC              MARKTYPE
                TCF             DSPV6N79                # SURFACE-DISPLAY V 06 N 79
                INDEX           MKDEX                   # INFLIGHT-PICK UP MARK VB INDEX
                CAF             MKVB54
                TC              PASTIT                  # PASTE UP NEXT MK VERB DISPLAY

# THE FOUR MKVBS ARE INDEXED-THEIR ORDER CANNOT BE CHANGED

MKVB54          VN              5471                    # MAKE X OR Y MARK
MKVB53          VN              5371                    # MAKE Y MARK
MKVB52          VN              5271                    # MAKE X MARK
MKVB54*         VN              5471                    # MAKE X OR Y MARK
DP1/8           2DEC            .125
OCT34           OCT             34
V06N71          VN              671
V06N79*         VN              679

## Page 276
# ROUTINE TO REQUEST CURSOR AND SPIRAL MEASUREMENTS
                COUNT*          $$/R59

DSPV6N79        CAF             V06N79*                 # CURSOR-SPIRAL DISPLAY
                TC              BANKCALL
                CADR            GOMARKF

                TCF             GOTOPOOH                # V34-TERMINATE
                TCF             SURFEND                 # V33-PROCEED, END MARKING
                CAF             BIT6                    # IF V32(OCT40) IN MPAC DO RECYCLE
                MASK            MPAC                    # OTHERWISE IT IS LOAD VB ENTER SO
                CCS             A                       # RE-DISPLAY V06N79
                TCF             SURFAGAN                # VB32-RECYCLE
                TCF             DSPV6N79                # ENTER

SURFEND         CS              BIT14                   # SET BIT14 TO SHOW MARK END
                MASK            MARKSTAT
                AD              BIT14
                TS              MARKSTAT

SURFAGAN        CA              CURSOR
                INDEX           MKDEX                   # HOLDS VAC AREA POINTER FOR SURF MARKING
                TS              1                       # STORE CURSOR SP 2COMP
                CA              SPIRAL
                INDEX           MKDEX
                TS              3                       # STORE SPIRAL

                CS              MARKSTAT                # IF BIT 14 SET-END MARKING
                MASK            BIT14
                EXTEND
                BZF             MARKCHEX
                CA              MARKCNTR                # THIS IS RECYCLE-SEE IF 5 MARKS ALREADY
                AD              ONE
                COM
                AD              FIVE
                EXTEND
                BZMF            5MKALARM                # CANT RECYCLE-TO MANY MARKS-ALARM
                INCR            MARKCNTR                # OF FOR RECYCLE-INCR COUNTER
                TCF             GETMKS          +3      # GO DISPLAY MARK VB
back to top