Raw File
AOTMARK.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    AOTMARK.agc
## Purpose:     A section of Luminary revision 210.
##              It is part of the source code for the Lunar Module's (LM)
##              Apollo Guidance Computer (AGC) for Apollo 15-17.
##              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. 255-274
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2016-11-17 JL   Created from Luminary131 version.
##              2016-11-23 HG   Transcribed
##              2016-11-25 HG   Fix label    MARKREJ -> MKREJ
##                                  operand  NOVAK   -> NOVAC
##                                           GOMARKER-> GOMARKFR
##                                           CMKCNTR -> XMKCNTR 
##              2016-12-07 HG   fix P00 -> POO
##              2016-12-11 HG   Fix operation CS NOMKCNT -> CA NOMKCNT
##		2016-12-23 RSB	Proofed comment text with octopus/ProoferComments
##				and fixed all errors found.
##		2017-03-14 RSB	Comment-text fixes identified in 5-way
##				side-by-side diff of Luminary 69/99/116/131/210.

## Page 255
                SETLOC          AOTMARK1
                BANK

                EBANK=          XYMARK
                COUNT*          $$/MARK

AOTMARK         INHINT
                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             31207

MKVACFND        AD              TWO
                TS              MARKSTAT                # STORE VAC ADR INLOW 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

MKABORT         DXCH            BUF2
                TC              BAILOUT1                # CONFLICT WITH EXTENDED VERB
                OCT             31211

MKRELEAS        CAF             ZERO
                XCH             MARKSTAT                # SET MARKSTAT TO ZERO

## Page 256
                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

KILLAOT         CAF             ZERO
                TS              EXTVBACT                # TERMINATE AOTMARK-ALLOW EXT VERB
                TC              GOTOPOOH

## Page 257
# GETDAT ROUTINE

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

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

                TCF             KILLAOT                 # V34-DOES GOTOPOOH
                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 1 TO 6
                EXTEND
                MP              BIT9
                TS              XYMARK                  # STORE DETENT

                EXTEND
                BZMF            GETDAT                  # COAS CALIBRATION CODE-NO GOOD HERE

                AD              NEG7                    # SEE IF DETENT 7 FOR COAS
                EXTEND
                BZF             CODE7

                TCF             CODE1TO6

CODE7           CAF             V06N87*                 # CODE 7, COAS SIGHTING, GET OPTIC AXIS
                TC              BANKCALL                # AZ AND EL OF SIGHTING DEVICE FROM ASTRO
                CADR            GOMARKF

                TCF             KILLAOT                 # V34-DOES GOTOPOOH
                TCF             +2                      # PROCEED
                TCF             CODE7                   # 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             ZERO                    # BACKUP SYSTEM TO BE USED
                TCF             COASCODE                # ZERO APPARENT ROTATION

CODE1TO6        INDEX           XYMARK                  # INDEX AOT POSITION BY DET CODE
                CA              AOTEL           -1
                INDEX           FIXLOC
                TS              9D                      # STORE ELEVATION IN VAC+9D

                INDEX           XYMARK                  # INDEX DET CODE 1,2 OR 3
                CA              AOTAZ           -1

## Page 258
                INDEX           FIXLOC
                TS              8D                      # STORE AZIMUTH IN VAC +8D

                CA              AOTAZ           +1      # COMPENSATION FOR APPARENT ROTATION 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
COASCODE        INDEX           FIXLOC
                TS              10D                     # ROT ANGLE

                TC              INTPRET                 # COMPUTE X AND Y PLANE VECTORS

                CLEAR           GOTO
                                XDSPFLAG
                                OPTAXIS

## Page 259
# 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
                SETLOC          P50S1
                BANK

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           YPLANE                  # 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           XPLANE
                                LO6ZEROS                # INITIALIZE AVE STAR VEC ACCUMULATOR
                STORE           STARSAV2
                BOFF            EXIT                    # IF INFLIGHT &KM MARKING GET SIGHTING
                                FLT59FLG                # BODY VECTOR FOR THET EST IN ITERATION
                                ENDAXIS                 # LOOP
                EBANK=          XSM
                CA              EBANK5
                TS              EBANK                   # PLANET ROUTINE USES EBANK5
                TC              INTPRET
                RTB             CALL
                                LOADTIME
                                PLANET
                STORE           BODY
ENDAXIS         EXIT
                EBANK=          XYMARK
                CA              EBANK7                  # RESTORE EBANK IN CASE OF PLANET BRANCH
                TS              EBANK
                TC              BANKCALL
                CADR            GETMKS

## Page 260
# THE OANB ROUTINE COMPUTES THE OPTIC AXIS OF THE SIGHTING INSTRUMENT
# FROM AZIMUTH AND ELEVATION INPUT FROM THE ASTRONAUT.
                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 261
#    SURFSTAR COMPUTES A STAR VECTOR IN SM COORDINATES FOR LUNAR
#    SURFACE ALIGNMENT AND EXITS TO AVEIT TO AVERAGE STAR VECTORS.
                SETLOC          P50S
                BANK
                COUNT*          $$/R59

SURFSTAR        SSP             AXT,2                   # INITIALIZE LOOP COUNTER (X1)
                                S2
                                1
                                28D
                CLEAR           DLOAD
                                FREEFLAG
                                ONEDEG
                STOVL*          DELTHET
                                0,1                     # PICK UP CURSOR MARK CDUS
                STODL*          CDUSPOT
                                7,1                     # PICK UP SPIRAL FROM MK VAC
                RTB
                                CDULOGIC
                STCALL          8D                      # SPIRAL IN REVS
                                ROTCOMP
                STODL*          POINTVSM                # YPRIME VEC FOR SROT MEAS. COORDS.
                                6,1                     # PICK UP CURSOR
                RTB
                                CDULOGIC
                STCALL          10D                     # CURSOR IN REVS
                                ROTCOMP                 # COMPUTE YP VEC(NB)
                CALL
                                TRG*NBSM                # TRANSFORM YP VEC TO SM AT YROT MARK
                STOVL*          STARAD          +6
                                1,1                     # PICK UP SPIRAL CDUS
                STCALL          CDUSPOT                 # GET SINES AND COSINES OF CDUS
                                CD*TR*G
                BON             DLOAD
                                FLT59FLG
                                FLTTHET
                                8D                      # COMPUTE INITIAL THETA EST
                DSU             DAD
                                10D
                                ABOUTONE
THETRET         STORE           THETEST                 # INITIAL THET EST MUST BE BETWEEN
                DSU             BPL                     # 24 AND 342 DEGREES
                                DEG342
                                COOLIT
                DLOAD           DSU
                                THETEST
                                DEG24
                BMN             CALL
                                COOLIT
                                SNBCOMP                 # POMPUTE 2ST EST OF STAR(SM)

## Page 262
                DOT             SL1
                                STARAD          +6
SNBTEST         STORE           ESTER1                  # SEE IF STAR IN YROT PLANE
                ABS             DSU
                                COS.01
                BMN             DLOAD
                                AVEIT                   # LESS THAN EPSILON, GOT STAR(SM) IN 24D
                                DELTHET
                DAD
                                THETEST                 # INCREMENT THETA EST BY 1 DEG
                STCALL          THETEST
                                SNBCOMP                 # COMPUTE 2ND EST OF STAR VEC
                DOT             SL1
                                STARAD          +6
                STORE           ESTER2                  # SEE IF SOLUTION BETWEEN ESTER1, ESTER2
                BMN             DLOAD
                                NEGEST2
                                ESTER1
                BPL             GOTO
                                WHICHWAY                # NO SOLU, ARE WE GOING IN RIGHT DIRECTION
                                HOMEIN                  # SOLUTION BRACKETED, GET FINE CORRECTION
NEGEST2         DLOAD           BMN
                                ESTER1
                                WHICHWAY
HOMEIN          DSU             PDDL
                                ESTER2
                                ESTER2
                DDV
                DMP
                                DELTHET
                STCALL          DELTHET                 # FINE SOLUTION, THIS SHOULD GET SNB
                                NEXTIT

WHICHWAY        ABS             PDDL                    # ABS(ESTER1) 0-1
                                ESTER2
                ABS             BDSU                    # ABS(ESTER1)-ABS(ESTER2)
                BPL             BONSET
                                NEXTIT
                                FREEFLAG
                                COOLIT
                DLOAD           DCOMP                   # REVERSE DIRECTION OF ESTIMATION
                                DELTHET
                STORE           DELTHET
NEXTIT          DLOAD           TIX,2                   # SEE IF 10 ITERATIONS HAVE BEEN MADE
                                ESTER2
                                SNBTEST
COOLIT          EXIT
                INCR            NOMKCNT
                TC              BANKCALL
                CADR            COOLOUT

## Page 263
ROTCOMP         PUSH            COS                     # COS(ROT) 0-1
                PDDL            SIN                     # 1/8SIN(ROT)XP 0-5  1/2COS(ROT)  MPAC
                VXSC            PDDL
                                XPLANE
                VXSC            VSU
                                YPLANE
                UNIT            RVQ                     # 1/2UNIT(VEC) IN MPAC

DEG342          2DEC            .94999999
DEG24           2DEC            .06666666
COS.01          2DEC            .0001745
ABOUTONE        2DEC            .99999999
ONEDEG          2DEC            .00277777


                SETLOC          AOTMARK3
                BANK

FLTTHET         VLOAD           MXV
                                BODY
                                REFSMMAT                # FOR INFLIGHT P57 MARKING COMPUTE INITIAL
                UNIT            CALL                    # THET EST BY 12(STAR X OPTAXIS)
                                *SMNB*
                DOT             SL1
                                SCAXIS
                ARCCOS          DMP
                                3/4                     # 12 SCALED BY 16
                SL4             GOTO
                                THETRET

## Page 264
# SUBROUTINE TO COMPUTE STAR VEC IN NB COORDINATES
                SETLOC          P50S1
                BANK

SNBCOMP         STQ
                                QMIN
                DLOAD           DMP
                                THETEST
                                DP1/12
                PUSH            COS                     # COS(T/12) 0-1
                PDDL            SIN
                PDDL            PUSH                    # SIN(T/12) 2-3
                                THETEST
                SIN             PDDL                    # SIN(T) 4-5
                COS             DMP
                                2                       # COS(T)SIN(T/12) 6-7
                PDVL            VXV
                                POINTVSM
                                SCAXIS
                VSL1            VXSC                    # UP 6-7
                STADR
                STODL           24D                     # COS(T)SIN(T/12)(YP X OA)
                DMP					# UP 4-5  UP 2-3
                VXSC            BVSU
                                POINTVSM                # SIN(T)SIN(T/12)YP
                                24D
                STODL           24D
                VXSC            VSR1                    # UP 0-1
                                SCAXIS
                VAD             UNIT
                                24D
                STCALL          24D                     # STAR(NB)
                                *NBSM*
                STORE           24D                     # STAR(SM)
                GOTO
                                QMIN

DP1/12          2DEC            .083333333

## Page 265
# GETMKS ROUTINE
                SETLOC          AOTMARK1
                BANK
                COUNT*          $$/MARK

GETMKS          CAF             ZERO                    # INITIALIZE MARK ID REGISTER AND MARK CNT
                TS              NOMKCNT
                TS              XCOUNT
                TS              YCOUNT
                TS              XYMARK
                TS              XMKCNTR
                TS              YMKCNTR
                CS              FLAGWRD8
                MASK            BIT8
                EXTEND
                BZF             SETSURF                 # SURFFLAG FLAG SET, JAM ONE IN WHATMARK
                CA              FLAGWRD9
                MASK            BIT4                    # SEE IF CURSOR-SPIRAL MARKING
                CCS             A
SETSURF         CA              ONE
                TS              WHATMARK

PASTIT          CAF             LOW9                    # FREE UP MARKRUPT RETAINING MKVAC ADR
                MASK            MARKSTAT
                TS              MARKSTAT
                INDEX           WHATMARK
                CAF             MKVB54                  # DISPLAY MARK REQUEST
                TC              BANKCALL
                CADR            GOMARK2

                TCF             KILLAOT                 # V34-DOES GOTOPOOH
                TCF             MARKCHEX                # VB33-PROCEED, GOT MARKS, COMPUTE LOS
                CS              BIT6
                MASK            MPAC
                EXTEND
                BZF             GETDAT                  # VB32 RECYCLE TO V01N71
                CS              WHATMARK                # ENTER-REVERSE CURSOR OR SPIRAL REQUEST
                TS              WHATMARK
                CCS             XYMARK
                TCF             +2                      # IF ONE, SET ZERO
                CAF             ONE                     # IF ZERO, SET ONE
                TS              XYMARK
PREPAST         EXTEND
                DCA             XMKCNTR
                DXCH            XCOUNT                  # UPDATE DISPLAY COUNTERS
                CAF             BIT13
                INDEX           XYMARK
                ADS             XCOUNT
                TCF             PASTIT

## Page 266
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
                CCS             XMKCNTR
                TCF             +2
                TCF             MKALARM
                TS              XMKCNTR
                CCS             YMKCNTR
                TCF             +2
                TCF             MKALARM
                TS              YMKCNTR
                COM
                AD              XMKCNTR
                EXTEND
                BZMF            AVESTAR
                CA              YMKCNTR
                TS              XMKCNTR

AVESTAR         CS              XMKCNTR
                EXTEND
                MP              EIGHT                   # GET C(L)=-8 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
                BON             BON
                                SURFFLAG
                                SURFSTAR
                                FLT59FLG
                                SURFSTAR
                VLOAD*
                                1,1
                STOVL           CDUSPOT
                                YPLANE
                CALL
                                TRG*NBSM                # CONVERT IT TO STABLE MEMBER
                PUSH            VLOAD*
                                0,1                     # PUT X-MARK CDUS IN CDUSPOT FOR TRG*NBSM
                STOVL           CDUSPOT
                                XPLANE
                CALL

## Page 267
                                TRG*NBSM                # CONVERT IT TO STABLE-MEMBER
                VXV             UNIT                    # UNIT(XPSM * YPSM)
                STADR
                STORE           24D

AVEIT           EXIT
                CAF             BIT12                   # INCREMENT STAR VEC COUNTER
                ADS             MKDEX                   # MKDEX WAS INITIALIZED ZERO IN MARKCHEX
                TC              INTPRET
                SLOAD           PDVL
                                MKDEX
                                24D                     # LOAD CURRENT VECTOR
                VSR3            V/SC
                                0
                STODL           24D                     # VEC/N
                                0
                DSU             DDV
                                DP1/8                   # (N-1)/N
                VXSC            VAD
                                STARSAV2                # ADD VEC TO PREVIOUSLY AVERAGED VEC
                                24D                     # (N-1)/N AVESTVEC + VEC/N
                UNIT
                STORE           STARSAV2
                EXIT
COOLOUT         CCS             XMKCNTR                 # SEE IF MARK PAIR IN MKVAC
                TCF             AVESTAR         -1      # THERE IS-GO GET IT-DECREMENT COUNTER
                CCS             NOMKCNT                 # IF ANY MKS NOT USED DISPLAY V50N25
                TCF             ASKASTR                 # AND THE NUMBER MKS NOT USED
ENDMARKS        CAF             FIVE
                TC              WAITLIST
                EBANK=          XYMARK
                2CADR           MKRELEAS
                TC              ENDMARK

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

ASKASTR         CAF             OCT16
                TS              DSPTEM1
                CA              NOMKCNT
                TS              DSPTEM1         +1
                CAF             V50N25
                TC              BANKCALL
                CADR            GOMARK2R

                TCF             KILLAOT                 # V34 TERMINATE
                TCF             ENDMARKS                # PRO - PROCEED ANYWAY

## Page 268
                TCF             GETDAT
                CAF             BIT3
                TC              BLANKET
                TC              ENDOFJOB

V50N25          VN              5025
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             OCT140                  # SEE IF ROD INPUT
                EXTEND
                RAND            NAVKEYIN
                EXTEND
                BZMF            FINDKEY

                TC              DESCBITS                # ROD INPUT
FINDKEY         TC              VALIDCHK                # NO ROD INPUT-SEE IF VALID MARKRUPT
                CAF             BIT5                    # GOOD RUPT-SEE IF MARK REJECT

                EXTEND
                RAND            NAVKEYIN
                CCS             A
                TCF             MKREJ                   # ITS A MARK REJECT

CHKWHAT         CCS             WHATMARK
                TCF             XMKRUPT                 # +1 FOR CURSOR MARK
                TCF             FINDMARK                # 0  FOR INFLIGHT MARK
                TCF             YMKRUPT                 # -1 FOR SPIRAL

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

                TCF             YMKRUPT                 # ITS Y MARK OR SPIRAL MARK
                CAF             BIT3                    # SEE IF X MARK
                EXTEND
                RAND            NAVKEYIN
                CCS             A
                TCF             XMKRUPT                 # ITS A X MARK

113ALRM         TC              ALARM                   # NO INBITS IN CHANNEL 16
                OCT             113

## Page 270
                TC              RESUME

XMKRUPT         CAF             ZERO
                TCF             +2                      # SET STORE INDEX ZERO
YMKRUPT         CAF             ONE
                TS              XYMARK                  # SET MARK ID REG
                INDEX           A
                CS              XMKCNTR
                AD              FIVE
                EXTEND
                BZMF            VACSTOR                 # IF 7TH MARK. STORE DATA AS 6TH MARK
                INDEX           XYMARK
                INCR            XMKCNTR
                TCF             VACSTOR

DESCBITS        MASK            BIT7
                TS              L

                CAF             AVEGFBIT
                MASK            FLAGWRD7
                CCS             A
                TCF             RODIN
                TC              VALIDCHK
                TCF             CHKWHAT                 # THIS IS BACK UP MARK

VALIDCHK        CCS             MARKSTAT
                TCF             CHK12

ALM112          TC              ALARM                   # MARKRUPT NOT ALLOWED
                OCT             112
                TC              RESUME

CHK12           MASK            BIT12
                CCS             A
                TCF             ALM112
                TC              Q

RODIN           CCS             L
                CS              TWO
                AD              ONE
                ADS             RODCOUNT
                TC              RESUME

## Page 271
# DATA STORE ROUTINE

VACSTOR         EXTEND
                DCA             ITEMP1                  # STORE MARK TIME FOR DOWNLINK
                DXCH            TSIGHT

                CAF             LOW9
                MASK            MARKSTAT                # GRAB MARK VAC ADR
                TS              MKDEX
                INDEX           XYMARK
                CCS             XMKCNTR                 # DECREMENT COUNTER TO START STORE AT ZERO
                EXTEND
                MP              EIGHT
                XCH             L
                AD              XYMARK
                ADS             MKDEX                   # MK VAC ADR + 8(CNTR-1) + MARK ID
                CA              ITEMP3
                INDEX           MKDEX
                TS              0                       # STORE CDUY
                CA              ITEMP4
                INDEX           MKDEX
                TS              2                       # STORE CDUZ
                CA              ITEMP5
                INDEX           MKDEX
                TS              4                       # STORE CDUX
ENDSTOR         TCF             REMARK

## Page 272
# REMARK AND CURSOR-SPIRAL KEYIN ROUTINE

REMARK          CAF             PRIO15                  # ENTER JOB TO CHANGE DISPLAY
                TC              NOVAC
                EBANK=          XYMARK
                2CADR           CHANGEVB


                TC              RESUME

CHANGEVB        CA              WHATMARK
                EXTEND
                BZF             PREPAST                 # RE-DISPLAY VERB54 FOR INFLIGHT MARK
                CS              MARKSTAT                # SET BIT12 TO DISCOURAGE MARK
                MASK            BIT12
                ADS             MARKSTAT

                INDEX           WHATMARK
                CAF             V06N79*                 # EITHER V21N79 OR V 22N79 LOAD VERB
                TC              BANKCALL
                CADR            GOMARKFR

                TCF             KILLAOT                 # VB34-TERMINATE
                TCF             N79DISP
                TCF             N79DISP

                CAF             SEVEN
                TC              BLANKET
                TC              ENDOFJOB

N79DISP         CAF             V06N79*                 # ENTER-DISPLAY V06N79 FOR VERIFY
                TC              BANKCALL
                CADR            GOMARKFR

                TC              KILLAOT
                TCF             SURFAGAN
                TCF             N79DISP

                CS              XYMARK
                AD              SIX
                TC              BLANKET
                TC              ENDOFJOB

SURFAGAN        INDEX           XYMARK
                CA              CURSOR
                INDEX           MKDEX
                TS              6
                TCF             PREPAST

V22N79          VN              2279                    # SPIRAL LOAD DISPLAY

## Page 273
V06N79*         VN              679
V21N79          VN              2179                    # CURSOR LOAD DISPLAY

MKVB53          VN              5371                    # SPIRAL MARK REQUEST
MKVB54          VN              5471                    # X OR Y MARK
MKVB52          VN              5271                    # CURSOR MARK REQUEST
DP1/8           2DEC            .125

## Page 274
# MARK REJECT ROUTINE
MKREJ           INDEX           XYMARK
                CCS             XMKCNTR
                TCF             REJMK			# REJECT MARK

                TC              ALARM
                OCT             115			# NO MARK OF THIS KIND TO REJECT
                TC              RESUME

REJMK           INDEX           XYMARK
                TS              XMKCNTR			# STORE DECREMENTED MARK COUNTER

                CAF             PRIO15			# ENTER JOB TO RE-DISPLAY MARK REQUEST
                TC              NOVAC
                EBANK=          XYMARK
                2CADR           PREPAST
                TC              RESUME
back to top