https://github.com/virtualagc/virtualagc
Raw File
Tip revision: 7a9ecb86ff67a3d695b32b6dd0f7365a42048516 authored by Ron Burkey on 30 December 2017, 02:10:37 UTC
Experimental stuff related to triggering 1201 or 1202 alarms on demand.
Tip revision: 7a9ecb8
UPDATE_PROGRAM.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    UPDATE_PROGRAM.agc
## Purpose:     A section of Luminary revision 116.
##              It is part of the source code for the Lunar Module's (LM)
##              Apollo Guidance Computer (AGC) for Apollo 12.
##              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. 1376-1386
## Assembler:   yaYUL
## Contact:     Ron Burkey <info@sandroid.org>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2017-01-22 MAS  Created from Luminary 99.
##              2017-01-28 RSB  Comment-text fixes identified for Luminary 69.
##              2017-02-09 RSB  Comment-text fixes identified for Artemis 72.
##              2017-02-10 RRB  Updated for Luminary 116.
##              2017-03-14 RSB  Proofed comment text via 3-way diff vs
##                              Luminary 99 and 131.
##              2017-03-16 RSB  Comment-text fixes identified in 5-way
##                              side-by-side diff of Luminary 69/99/116/131/210.
##              2017-03-19 HG   Remove statement CAE MODREG
##		2017-06-17 MAS	Globally removed all SBANK= workarounds.

## Page 1376
# PROGRAM NAME:         P27
# WRITTEN BY:           KILROY/ DE WOLF

# MOD NO:               6
# MOD BY:               KILROY
# DATE:                 01DEC67

# LOG SECTION:          UPDATE PROGRAM.

# FUNCT. DESCR:         P27 (THE UPDATE PROGRAM) PROCESSES COMMANDS AND DATA
#                           INSERTIONS REQUESTED BY THE GROUND VIA UPLINK.
#                           THE P27 PROGRAM WILL ACCEPT UPDATES
#                           ONLY DURING P00 FOR THE LM, AND ONLY DURING P00,
#                       P02, AND FRESH START FOR THE CSM

# CALLING SEQ:          PROGRAM IS INITIATED BY UPLINK ENTRY OF VERBS 70, 71, 72 AND 73.

# SUBROUTINES:          TESTXACT, NEWMODEX, NEWMODEX +3, GOXDSPF, BANKCALL, FINDVAC, INTPRET, INTSTALL, TPAGREE,
#                       INTWAKEU, ENDEXT, POSTJUMP, FALTON, NEWPHASE, PHASCHNG

# NORMAL EXIT:          TC ENDEXT

# ALARM/ABORT:          TC FALTON FOLLOWED BY TC ENDEXT

# RESTARTS:             P27 IS RESTART PROTECTED IN TWO WAYS ...
#                       1. PRIOR TO VERIFLAG INVERSION (WHICH IS CAUSED BY THE GROUND/ASTRONAUT'S VERIFICATION OF UPDATE
#                          DATA BY SENDING A V33E WHEN V21N02 IS FLASHING)---
#                          NO PROTECTION EXCEPT PRE-P27 MODE IS RESTORED, COAST + ALIGN DOWNLIST IS SELECTED AND UPLINK
#                          ACTIVITY LIGHT IS TURNED OFF.(JUST AS IF A V34E WAS SENT DURING P27 DATA LOADS).
#                          V70,V71,V72 OR V73 WILL HAVE TO BE COMPLETELY RESENT BY USER.
#                       2. AFTER VERIFLAG INVERSION (WHEN UPDATE OF THE SPECIFIED ERASABLES IS BEING PERFORMED)---
#                          PROTECTED AGAINST RESTARTS.

# DEBRIS:               UPBUFF  (20D)   TEMP STORAGE FOR ADDRESSES AND CONTENTS.
#                       UPVERB  (1)     VERB NUMBER MINUS 70D (E.G. FOR V72, UPVERB = 72D - 70D = 2)
#                       UPOLDMOD(1)     FOR MAJOR MODE INTERRUPTED BY P27.
#                       COMPNUMB(1)     TOTAL NUMBER OF COMPONENTS TO BE TRANSMITTED.
#                       UPCOUNT (1)     ACTUAL NUMBER OF COMPONENTS RECEIVED.
#                       UPTEMP  (1)     SCRATCH, BUT USUALLY CONTAINS COMPONENT NUMBER TO BE CHANGED DURING VERIFY CYCLE

# INPUT:

#       ENTRY:                  DESCRIPTION
#       V70EXXXXXEXXXXXE        (LIFTOFF TIME INCREMENT) DOUBLE PRECISION OCTAL TIME INCREMENT, XXXXX XXXXX,
#                               IS ADDED TO TEPHEM, SUBTRACTED FROM AGC CLOCK(TIME2,TIME1), SUBTRACTED FROM CSM STATE
#                               VECTOR TIME(TETCSM) AND SUBTRACTED FROM LEM STATE VECTOR TIME(TETLEM).
#                               THE DP OCTAL TIME INCREMENT IS SCALED AT 2(28).
## Page 1377
#       V71EIIEAAAAE            (CONTIGUOUS BLOCK UPDATE) II-2 OCTAL COMPONENTS, XXXXX,
#       XXXXXE                  ARE LOADED INTO ERASABLE STARTING AT ECADR, AAAA.
#       XXXXXE                  IT IS .GE. 3 .AND. .LE. 20D.,
#                               AND (AAAA + II -3) DOES NOT PRODUCE AN ADDRESS IN THE
#       9 NEXT BANK
#         .                     SCALING IS SAME AS INTERNAL REGISTERS.

#       V72EIIE                 (SCATTER UPDATE) (II-1)/2 OCTAL COMPONENTS, XXXXX, ARE
#       AAAAEXXXXXE             LOADED INTO ERASABLE LOCATIONS, AAAA.
#       AAAAEXXXXXE             II IS .GE. 3 .AND. .LE. 19D, AND MUST BE ODD.
#         .                     SCALING IS SAME AS INTERNAL REGISTERS.

#       V73EXXXXXEXXXXXE        (OCTAL CLOCK INCREMENT) DOUBLE PRECISION OCTAL TIME
#                               INCREMENT XXXXX XXXXX, IS ADDED TO THE AGC CLOCK, IN
#                               CENTISECONDS SCALED AT (2)28.
#                               THIS LOAD IS THE OCTAL EQUIVALENT OF V55.

# OUTPUT:               IN ADDITION TO THE ABOVE REGISTER LOADS, ALL UPDATES
#                       COMPLEMENT BIT3 OF FLAGWORD7.

# ADDITIONAL NOTES:     VERB 71, JUST DEFINED ABOVE WILL BE USED TO PERFORM BUT NOT LIMITED TO THE FOLLOWING UPDATES --
#                       1.  CSM/LM STATE VECTOR UPDATE
#                       2.  REFSMMAT UPDATE

#       THE FOLLOWING COMMENTS DELINEATE EACH SPECIAL UPDATE ----

#       1.  CSM/LM STATE VECTOR UPDATE (ALL DATA ENTRIES IN OCTAL)
#               ENTRIES:        DATA DEFINITION:                                SCALE FACTORS:
#               V71E            CONTIGUOUS BLOCK UPDATE VERB
#                  21E          NUMBER OF COMPONENTS FOR STATE VECTOR UPDATE
#                AAAAE          ECADR OF 'UPSVFLAG'
#               XXXXXE          STATE VECTOR IDENTIFIER: 00001 FOR CSM, 77776 FOR LEM - EARTH SPHERE OF INFLUENCE SCALING
#                                                        00002 FOR CSM, 77775 FOR LEM - LUNAR SPHERE OF INFLUENCE SCALING
#               XXXXXEXXXXXE    X POSITION
#               XXXXXEXXXXXE    Y POSITION
#               XXXXXEXXXXXE    Z POSITION
#               XXXXXEXXXXXE    X VELOCITY
#               XXXXXEXXXXXE    Y VELOCITY
#               XXXXXEXXXXXE    Z VELOCITY
#               XXXXXEXXXXXE    TIME FROM AGC CLOCK ZERO
#               V33E            VERB 33 TO SIGNAL THAT THE STATE VECTOR IS READY TO BE STORED.

#       2.  REFSMMAT (ALL DATA ENTRIES IN OCTAL)
#               ENTRIES:        DATA DEFINITIONS:                               SCALE FACTORS:
## Page 1378
#               V71E            CONTIGUOUS BLOCK UPDATE VERB
#                  24E          NUMBER OF COMPONENTS FOR REFSMMAT UPDATE
#                AAAAE          ECADR OF 'REFSMMAT'
#               XXXXXEXXXXXE    ROW 1 COLUMN 1                                  2(-1)
#               XXXXXEXXXXXE    ROW 1 COLUMN 2                                  2(-1)
#               XXXXXEXXXXXE    ROW 1 COLUMN 3                                  2(-1)
#               XXXXXEXXXXXE    ROW 2 COLUMN 1                                  2(-1)
#               XXXXXEXXXXXE    ROW 2 COLUMN 2                                  2(-1)
#               XXXXXEXXXXXE    ROW 2 COLUMN 3                                  2(-1)
#               XXXXXEXXXXXE    ROW 3 COLUMN 1                                  2(-1)
#               XXXXXEXXXXXE    ROW 3 COLUMN 2                                  2(-1)
#               XXXXXEXXXXXE    ROW 3 COLUMN 3                                  2(-1)
#               V33E            VERB 33 TO SIGNAL THAT REFSMMAT IS READY TO BE STORED.



                BANK            07
                SETLOC          EXTVERBS
                BANK

                EBANK=          TEPHEM

                COUNT*          $$/P27
V70UPDAT        CAF             UP70                            # COMES HERE ON V70E
                TCF             V73UPDAT        +1

V71UPDAT        CAF             UP71                            # COMES HERE ON V71E
                TCF             V73UPDAT        +1

V72UPDAT        CAF             UP72                            # COMES HERE ON V72E
                TCF             V73UPDAT        +1

V73UPDAT        CAF             UP73                            # COMES HERE ON V73E

 +1             TS              UPVERBSV                        # SAVE UPVERB UNTIL IT'S OK TO ENTER P27

                TC              TESTXACT                        # GRAB DISPLAY IF AVAILABLE, OTHERWISE
                                                                # TURN*OPERATOR ERROR* ON AND TERMINATEJOB

                CA              MODREG                          # CHECK IF UPDATE ALLOWED
                EXTEND                                          # FIRST CHECK FOR MODREG = +0, -0
                BZF             +3                              # (+0 = P00, -0 = FRESHSTART)
UPERROR         TC              POSTJUMP                        # TURN ON 'OPERATOR ERROR' LIGHT
                CADR            UPERROUT        +2              # GO TO COMMON UPDATE PROGRAM EXIT

CKMDMORE        =               UPERROR
                TS              UPOLDMOD                        # SAVE CURRENT MAJOR MODE
## Page 1379
                CAE             UPVERBSV                        # SET UPVERB TO INDICATE TO P27

                TS              UPVERB                          # WHICH EXTENDED VERB CALLED IT.

                CAF             ONE
                TS              UPCOUNT                         # INITIALIZE UPCOUNT TO 1

                TC              POSTJUMP                        # LEAVE EXTENDED VERB BANK AND
                CADR            UPPART2                         # GO TO UPDATE PROGRAM (P27) BANK.

UP70            EQUALS          ZERO
UP71            EQUALS          ONE
UP72            EQUALS          TWO
UP73            EQUALS          THREE

                BANK            04
                SETLOC          UPDATE2
                BANK

                COUNT*          $$/P27

UPPART2         EQUALS                                          # UPDATE PROGRAM - PART 2

                TC              PHASCHNG                        # SET RESTART GROUP 6 TO RESTORE OLD MODE
                OCT             07026                           # AND DOWNLIST AND EXIT IF RESTART OCCURS.
                OCT             30000                           # PRIORITY SAME AS CHRPRIO
                EBANK=          UPBUFF
                2CADR           UPOUT           +1

                CAF             ONE
                TS              DNLSTCOD                        # DOWNLIST

                TC              NEWMODEX                        # SET MAJOR MODE = 27
                DEC             27

                INDEX           UPVERB                          # BRANCH DEPENDING ON WHETHER THE UPDATE
                TCF             +1                              # VERB REQUIRES A FIXED OR VARIABLE NUMBER
                TCF             +3                              # V70 FIXED.               (OF COMPONENTS.
                TCF             OHWELL1                         # V71 VARIABLE - GO GET NO. OF COMPONENTS
                TCF             OHWELL1                         # V72 VARIABLE - GO GET NO. OF COMPONENTS
                CA              TWO                             # V73 (AND V70) FIXED
                TS              COMPNUMB                        # SET NUMBER OF COMPONENTS TO 2.
                TCF             OHWELL2                         # GO GET THE TWO UPDATE COMPONENTS

OHWELL1         CAF             ADUPBUFF                        # * REQUEST USER TO SEND NUMBER *
                TS              MPAC            +2              # * OF COMPONENTS PARAMETER(II).*
 +2             CAF             UPLOADNV                        # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
                TC              BANKCALL                        # DISPLAY A FLASHING V21N01
                CADR            GOXDSPF                         # TO REQUEST II.

## Page 1380
                TCF             UPOUT4                          # V34 TERMINATE UPDATE (P27) RETURN
                TCF             OHWELL1         +2
                TC              CK4V32                          # DATA OR V32 RETURN
                CS              BIT2
                AD              UPBUFF                          # IS II (NUMBER OF COMPONENTS PARAMETER)
                EXTEND                                          # .GE. 3 AND .LE. 20D.
                BZMF            OHWELL1         +2
                CS              UPBUFF
                AD              UP21
                EXTEND
                BZMF            OHWELL1         +2
                CAE             UPBUFF
                TS              COMPNUMB                        # SAVE II IN COMPNUMB

# UPBUFF LOADING SEQUENCE

                INCR            UPCOUNT                         # INCREMENT COUNT OF COMPONENTS RECEIVED.
OHWELL2         CAF             ADUPBFM1                        # CALCULATE LOCATION (ECADR) IN UPBUFF
                AD              UPCOUNT                         # WHERE NEXT COMPONENT SHOULD BE STORED.
 +2             TS              MPAC            +2              # PLACE ECADR INTO R3.
 +3             CAF             UPLOADNV                        # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
                TC              BANKCALL                        # DISPLAY A FLASHING V21N01
                CADR            GOXDSPF                         # TO REQUEST DATA.
                TCF             UPOUT4                          # V34 TERMINATE UPDATE (P27) RETURN.
                TCF             OHWELL2         +3              # V33 PROCEED RETURN
                TC              CK4V32                          # DATA OR V32 RETURN
                CS              UPCOUNT                         # HAVE WE FINISHED RECEIVING ALL
                AD              COMPNUMB                        # THE DATA WE EXPECTED.
                EXTEND
                BZMF            UPVERIFY                        # YES - GO TO VERIFICATION SEQUENCE
                TCF             OHWELL2         -1              # NO - REQUEST ADDITIONAL DATA.

# VERIFY SEQUENCE

UPVERIFY        CAF             ADUPTEMP                        # PLACE ECADR WHERE COMPONENT NO. INDEX
                TS              MPAC            +2              # IS TO BE STORED INTO R3.
                CAF             UPVRFYNV                        # (CK4V32 RETURNS HERE IF V32 ENCOUNTERED)
                TC              BANKCALL                        # DISPLAY A FLASHING V21N02 TO REQUEST
                CADR            GOXDSPF                         # DATA CORRECTION OR VERIFICATION.
                TCF             UPOUT4                          # V34 TERMINATE UPDATE (P27) RETURN
                TCF             UPSTORE                         # V33 DATA SENT IS GOOD.  GO STORE IT.
                TC              CK4V32                          # COMPONENT NO. INDEX OR V32 RETURN
                CA              UPTEMP                          # DOES THE COMPONENT NO. INDEX JUST SENT
                EXTEND                                          # SPECIFY A LEGAL COMPONENT NUMBER?
                BZMF            UPVERIFY                        # NO, IT IS NOT POSITIVE NONZERO
                CS              UPTEMP
                AD              COMPNUMB
                AD              BIT1
## Page 1381
                EXTEND
                BZMF            UPVERIFY                        # NO
                CAF             ADUPBFM1                        # YES- BASED ON THE COMPONENT NO. INDEX
                AD              UPTEMP                          # CALCULATE THE ECADR OF LOCATION IN
                TCF             OHWELL2         +2              # UPBUFF WHICH USER WANTS TO CHANGE.

UPOUT4          EQUALS          UPOUT           +1              # COMES HERE ON V34 TO TERMINATE UPDATE

# CHECK FOR VERB 32 SEQUENCE

CK4V32          CS              MPAC                            # ON DATA RETURN FROM 'GOXDSPF'
                MASK            BIT6                            # ON DATA RETURN FROM "GOXDSP" & THE CON-
                CCS             A                               # TENTS OF MPAC = VERB.  SO TEST FOR V32.
                TC              Q                               # IT'S NOT A V32, IT'S DATA.  PROCEED.
                INDEX           Q
                TC              0               -6              # V32 ENCOUNTERED - GO BACK AND GET DATA

ADUPTEMP        ADRES           UPTEMP                          # ADDRESS OF TEMP STORAGE FOR CORRECTIONS
ADUPBUFF        ADRES           UPBUFF                          # ADDRESS OF UPDATE DATA STORAGE BUFFER
UPLOADNV        VN              2101                            # VERB 21 NOUN 01
UPVRFYNV        VN              2102                            # VERB 21 NOUN 02
UP21            =               MD1                             # DEC 21 = MAX NO OF COMPONENTS +1
UPDTPHAS        EQUALS          FIVE

# PRE-STORE AND FAN TO APPROPRIATE BRANCH SEQUENCE

UPSTORE         EQUALS                                          # GROUND HAS VERIFIED UPDATE.  STORE DATA.

                INHINT

                CAE             FLAGWRD7                        # INVERT VERIFLAG (BIT 3 OF FLAGWRD7) TO
                XCH             L                               # INDICATE TO THE GROUND (VIA DOWNLINK)
                CAF             VERIFBIT                        # THAT THE V33 (WHICH THE GROUND SENT TO
                EXTEND                                          # VERIFY THE UPDATE) HAS BEEN SUCCESSFULLY
                RXOR            LCHAN                           # RECEIVED BY THE UPDATE PROGRAM
                TS              FLAGWRD7

                TC              PHASCHNG                        # SET RESTART GROUP 6 TO REDO THE UPDATE
                OCT             04026                           # DATA STORE IF A RESTART OCCURS.
                INHINT                                          # (BECAUSE PHASCHNG DID A RELINT)

                CS              TWO                             # GO TO UPFNDVAC IF INSTALL IS REQUIRED,
                AD              UPVERB                          # THAT IS, IF IT'S A V70 - V72.
                EXTEND                                          # GO TO UPEND73 IF IT'S A V73.
                BZMF            UPFNDVAC

# VERB 73 BRANCH

UPEND73         EXTEND                                          # V73 - PERFORM DP OCTAL AGC CLOCK INCREMENT
## Page 1382
                DCA             UPBUFF
                DXCH            UPBUFF          +8D
                TC              TIMEDIDL
                TC              FALTON                          # ERROR- TURN ON *OPERATOR ERROR* LIGHT
                TC              UPOUT           +1              # GO TO COMMON UPDATE PROGRAM EXIT

UPFNDVAC        CAF             CHRPRIO                         # (USE EXTENDED VERB PRIORITY)
                TC              FINDVAC                         # GET VAC AREA FOR 'CALL INTSTALL'
                EBANK=          TEPHEM
                2CADR           UPJOB                           # (NOTE: THIS WILL ALSO SET EBANK FOR
                TC              ENDOFJOB                        # 'TEPHEM' UPDATE BY V70)

UPJOB           TC              INTPRET                         # THIS COULD BE A STATE VECTOR UPDATE--SO
                CALL                                            # WAIT(PUT JOB TO SLEEP) IF ORBIT INT(OI)
                                INTSTALL                        # IS IN PROGRESS--OR--GRAB OI AND RETURN
                                                                # TO UPWAKE IF OI IS NOT IN PROGRESS.

UPWAKE          EXIT

                TC              PHASCHNG                        # RESTART PROTECT (GROUP 6)
                OCT             04026

                TC              UPFLAG                          # SET INTEGRATION RESTART BIT
                ADRES           REINTFLG
                INHINT
UPPART3         EQUALS

                INDEX           UPVERB                          # BRANCH TO THE APPROPRIATE UPDATE VERB
                TCF             +1                              # ROUTINE TO ACTUALLY PERFORM THE UPDATE
                TCF             UPEND70                         # V70
                TCF             UPEND71                         # V71
                TCF             UPEND72                         # V72

# ROUTINE TO INCREMENT CLOCK (TIME2,TIME1) WITH CONTENTS OF DP WORD AT UPBUFF.

TIMEDIDL        EXTEND
                QXCH            UPTEMP                          # SAVE Q FOR RETURN
                CAF             ZERO                            # ZERO AND SAVE TIME2,TIME1
                ZL
                DXCH            TIME2
                DXCH            UPBUFF          +18D            # STORE IN CASE OF OVERFLOW

                CAF             UPDTPHAS                        # DO
                TS              L                               # A
                COM                                             # QUICK
                DXCH            -PHASE6                         # PHASCHNG

TIMEDIDR        INHINT
## Page 1383
                CAF             ZERO
                ZL                                              # PICK UP INCREMENTER(AND ZERO
                TS              MPAC            +2              # IT IN CASE OF RESTARTS) AND
                DXCH            UPBUFF          +8D             # STORE IT
                DXCH            MPAC                            # INTO MPAC FOR TPAGREE.

                EXTEND
                DCA             UPBUFF          +18D
                DAS             MPAC                            # FORM SUM IN MPAC
                EXTEND
                BZF             DELTAOK                         # TEST FOR OVERFLOW
                CAF             ZERO
                DXCH            UPBUFF          +18D            # OVERFLOW, RESTORE OLD VALUE OF CLOCK
                DAS             TIME2                           # AND TURN ON OPERATOR ERROR

                TC              PHASCHNG                        # RESTART PROTECT (GROUP 6)
                OCT             04026

                TC              UPTEMP                          # GO TO ERROR EXIT

DELTAOK         TC              TPAGREE                         # FORCE SIGN AGREEMENT
                DXCH            MPAC
                DAS             TIME2                           # INCREMENT TIME2,TIME1

                TC              PHASCHNG                        # RESTART PROTECT (GROUP 6)
                OCT             04026

                INHINT
                INDEX           UPTEMP                          # (CODED THIS WAY FOR RESTART PROTECTION)
                TC              1                               # NORMAL RETURN

# VERB 71 BRANCH

UPEND71         CAE             UPBUFF          +1              # SET EBANK
                TS              EBANK                           #   AND
                MASK            LOW8                            # CALCULATE
                TS              UPTEMP                          # S-REG VALUE OF RECEIVING AREA

                AD              NEG3                            # IN THE PROCESS OF
                AD              COMPNUMB                        # PERFORMING
                EXTEND                                          # THIS UPDATE
                BZF             STORLP71                        # WILL WE
                MASK            BIT9                            # OVERFLOW
                CCS             A                               # INTO THE NEXT EBANK....
                TCF             UPERROUT                        # YES

                CA              NEG3                            # NO - CALCULATE NUMBER OF
                AD              COMPNUMB                        # WORDS TO BE STORED MINUS ONE
STORLP71        TS              MPAC                            # SAVE NO. OF WORDS REMAINING MINUS ONE
                INDEX           A                               # TAKE NEXT UPDATE WORD FROM
                CA              UPBUFF          +2              # UPBUFF AND
## Page 1384
                TS              L                               # SAVE IT IN L
                CA              MPAC                            # CALCULATE NEXT
                AD              UPTEMP                          # RECEIVING ADDRESS
                INDEX           A
                EBANK=          1400
                LXCH            1400                            # UPDATE THE REGISTER BY CONTENTS OF L
                EBANK=          TEPHEM
                CCS             MPAC                            # ARE THERE ANY WORDS LEFT TO BE STORED
                TCF             STORLP71                        # YES
                TCF             UPOUT                           # NO- THEN EXIT UPDATE PROGRAM
ADUPBFM1        ADRES           UPBUFF          -1              # SAME AS ADUPBUFF BUT LESS 1 (DON'T MOVE)
                TCF             UPOUT                           # NO- EXIT UPDATE (HERE WHEN COMPNUMB = 3)

# VERB 72 BRANCH

UPEND72         CAF             BIT1                            # HAVE AN ODD NO. OF COMPONENTS
                MASK            COMPNUMB                        # BEEN SENT FOR A V72 UPDATE ...
                CCS             A
                TCF             +2                              # YES
                TCF             UPERROUT                        # ERROR- SHOULD BE ODD NO. OF COMPONENTS
                CS              BIT2
                AD              COMPNUMB
LDLOOP72        TS              MPAC                            # NOW PERFORM THE UPDATE
                INDEX           A
                CAE             UPBUFF          +1              # PICK UP NEXT UPDATE WORD
                LXCH            A
                CCS             MPAC                            # SET POINTER TO ECADR (MUST BE CCS)
                TS              MPAC
                INDEX           A
                CAE             UPBUFF          +1              # PICK UP NEXT ECADR OF REG TO BE UPDATED
                TS              EBANK                           # SET EBANK
                MASK            LOW8                            # ISOLATE RELATIVE ADDRESS
                INDEX           A
                EBANK=          1400
                LXCH            1400                            # UPDATE THE REGISTER BY CONTENTS OF L
                EBANK=          TEPHEM
                CCS             MPAC                            # ARE WE THROUGH THE V72 UPDATE...
                TCF             LDLOOP72                        # NO

# NORMAL FINISH OF P27

UPOUT           EQUALS
                TC              INTWAKEU                        # RELEASE GRAB OF ORBITAL INTEGRATION
 +1             CAE             UPOLDMOD                        # RESTORE PRIOR P27 MODE
                TC              NEWMODEX        +3
                CAF             ZERO
                TS              DNLSTCOD
                TC              UPACTOFF                        # TURN OFF 'UPLINK ACTIVITY' LIGHT
## Page 1385
                EXTEND                                          # KILL GROUP 6.
                DCA             NEG0
                DXCH            -PHASE6

                TC              ENDEXT                          # EXTENDED VERB EXIT

# VERB 70 BRANCH

UPEND70         EXTEND                                          # V70 DOES THE FOLLOWING WITH DP DELTA
                DCS             UPBUFF                          # TIME IN UPBUFF
                DXCH            UPBUFF          +8D
                TC              TIMEDIDL                        # DECREMENT AGC CLOCK

                TC              UPERROUT                        # ERROR WHILE DECREMENTING CLOCK -- EXIT

                EBANK=          TEPHEM
                EXTEND
                DCS             UPBUFF                          # COPY DECREMENTERS FOR
                DXCH            UPBUFF          +10D            # RESTART PROTECTION
                EXTEND
                DCS             UPBUFF
                DXCH            UPBUFF          +12D

                TC              PHASCHNG                        # RESTART PROTECT (GROUP 6)
                OCT             04026

                CAF             ZERO
                ZL
                DXCH            UPBUFF          +10D            # DECREMENT CSM STATE VECTOR TIME
                DAS             TETCSM

                CAF             ZERO
                ZL
                DXCH            UPBUFF          +12D            # DECREMENT LEM STATE VECTOR TIME
                DAS             TETLEM

                CAF             ZERO
                ZL
                DXCH            UPBUFF
                DAS             TEPHEM          +1              # INCREMENT TP TEPHEM
                ADS             TEPHEM

                TC              PHASCHNG                        # RESTART PROTECT (GROUP 6)
                OCT             04026

                EBANK=          UPBUFF

                TC              UPOUT                           # GO TO STANDARD UPDATE PROGRAM EXIT
## Page 1386

# ERROR SEQUENCE

UPERROUT        TC              FALTON                          # TURN ON *OPERATOR ERROR* LIGHT
                TCF             UPOUT                           # GO TO COMMON UPDATE PROGRAM EXIT

 +2             TC              FALTON                          # TURN ON 'OPERATOR ERROR' LIGHT
                TC              UPACTOFF                        # TURN OFF 'UPLINK ACTIVITY' LIGHT
                TC              ENDEXT                          # EXTENDED VERB EXIT
                                                                # (THE PURPOSE OF UPERROUT +2 EXIT IS
                                                                # TO PROVIDE AN ERROR EXIT WHICH DOES NOT
                                                                # RESET ANY RESTART GROUPS)

# :UPACTOFF: IS A ROUTINE TO TURN OFF UPLINK ACTIVITY LIGHT ON ALL EXITS FROM UPDATE PROGRAM (P27).

UPACTOFF        CS              BIT3
                EXTEND                                          # TURN OFF UPLINK ACTIVITY LIGHT
                WAND            DSALMOUT                        # (BIT 3 OF CHANNEL 11)
                TC              Q

back to top