Revision d51554d6da7694e14fc145cbb0e7bacec949c557 authored by Ron Burkey on 21 December 2017, 12:44:25 UTC, committed by Ron Burkey on 21 December 2017, 12:44:25 UTC
update until runPiDSKY2.sh is exited and restarted; hopefully addressed. Also, I forgot to mention it in the prior commit message, but there had been a bug in which once a given simulation (say "5") had been run, other simulations (say "6") wouldn't run until runPiDSKY2.sh had been restarted.
1 parent d2a0e07
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
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...