Revision 66d8e606a8d996ded60bc81d5edf319142a5fad9 authored by Ron Burkey on 04 October 2021, 11:49:55 UTC, committed by Ron Burkey on 04 October 2021, 11:49:55 UTC
2 parent s dfc2190 + 42c2282
Raw File
PINBALL_GAME__BUTTONS_AND_LIGHTS.agc
### FILE="Main.annotation"
## Copyright:   Public domain.
## Filename:    PINBALL_GAME__BUTTONS_AND_LIGHTS.agc
## Purpose:     This program is designed to extensively test the Apollo Guidance Computer
##              (specifically the LM instantiation of it). It is built on top of a heavily
##              stripped-down Aurora 12, with all code ostensibly added by the DAP Group
##              removed. Instead Borealis expands upon the tests provided by Aurora,
##              including corrected tests from Retread 44 and tests from Ron Burkey's
##              Validation.
## Assembler:   yaYUL
## Contact:     Mike Stewart <mastewar1@gmail.com>.
## Website:     www.ibiblio.org/apollo/index.html
## Mod history: 2016-12-20 MAS  Created from Aurora 12 (with much DAP stuff removed).
##              2017-01-04 MAS  Pulled back PROCEED key functionality from Luminary 99.
##		2017-01-28 RSB	WTIH -> WITH.
##		2017-02-08 RSB	Comment-text fixes noted while proofing Artemis 72.
##		2017-03-08 RSB	Changed DSPOCTWO to DSPOCTWD.
##		2017-03-08 RSB	Comment-text fixes noted in proofing Luminary 116.
##		2017-03-17 RSB	Comment-text fixes identified in diff'ing
##				Luminary 99 vs Comanche 55.

# KEYBOARD AND DISPLAY PROGRAM



# THE FOLLOWING QUOTATION IS PROVIDED THROUGH THE COUTESY OF THE AUTHORS.

#       ::IT WILL BE PROVED TO THY FACE THAT THOU HAST MEN ABOUT THEE THAT
# USUALLY TALK OF A NOUN AND A VERB, AND SUCH ABOMINABLE WORDS AS NO
# CHRISTIAN EAR CAN ENDURE TO HEAR.::

#                      HENRY 6, ACT 2, SCENE 4
## Actually, this quotation is from <i>Henry VI</i>, Part 2, Act IV, Scene VII.
## <small>&mdash;Ron Burkey, 07/2009</small>



# THE FOLLOWING ASSIGNMENTS FOR PINBALL ARE MADE ELSEWHERE



# RESERVED FOR PINBALL EXECUTIVE ACTION
#
# DSPCOUNT      ERASE                   DISPLAY POSITION INDICATOR
# DECBRNCH      ERASE                   +DEC, -DEC, OCT INDICATOR
# VERBREG       ERASE                   VERB CODE
# NOUNREG       ERASE                   NOUN CODE
# XREG          ERASE                   R1 INPUT BUFFER
# YREG          ERASE                   R2 INPUT BUFFER
# ZREG          ERASE                   R3 INPUT BUFFER
# XREGLP        ERASE                   LO PART OF XREG (FOR DEC CONV ONLY)
# YREGLP        ERASE                   LO PART OF YREG (FOR DEC CONV ONLY)
# ZREGLP        ERASE                   LO PART OF ZREG (FOR DEC CONV ONLY)
# MODREG        ERASE                   MODE CODE
# DSPLOCK       ERASE                   KEYBOARD/SUBROUTINE CALL INTERLOCK
# REQRET        ERASE                   RETURN REGISTER FOR LOAD
# LOADSTAT      ERASE                   STATUS INDICATOR FOR LOADTST
# CLPASS        ERASE                   PASS INDICATOR CLEAR
# NOUT          ERASE                   ACTIVITY COUNTER FOR DSPTAB
# NOUNCADR      ERASE                   MACHINE CADR FOR NOUN
# MONSAVE       ERASE                   N/V CODE FOR MONITOR. (= MONSAVE1-1)
# MONSAVE1      ERASE                   NOUNCADR FOR MONITOR(MATBS) =MONSAVE +1
# DSPTAB        ERASE           +13D    0-10,DISPLAY PANEL BUFFER.11-13,C RELAYS
# CADRSTOR      ERASE                   ENDIDLE STORAGE
# GRABLOCK      ERASE                   INTERNAL INTERLOCK FOR DISPLAY SYSTEM
# NVQTEM        ERASE                   NVSUB STORAGE FOR CALLING ADDRESS
#                                       MUST = NVBNKTEM-1
# NVBNKTEM      ERASE                   NVSUB STORAGE FOR CALLING BANK
#                                       MUST = NVQTEM+1
# DSPLIST       ERASE           +2      WAITING LIST FOR DSP SYST INTERNAL USE
# EXTVBACT      REASE                   EXTENDED VERB ACTIVITY INTERLOCK
# DSPTEM1       ERASE           +2      BUFFER STORAGE AREA 1 (MOSTLY FOR TIME)
# DSPTEM2       ERASE           +2      BUFFER STORAGE AREA 2 (MOSTLY FOR DEG)


# END OF ERASABLES RESERVED FOR PINBALL EXECUTIVE ACTION



# TEMPORARIES FOR PINBALL EXECUTIVE ACTION

# DSEXIT   =      INTB15+         RETURN FOR DSPIN
# EXITEM   =      INTB15+         RETURN FOR SCALE FACTOR ROUTINE SELECT
# BLANKRET =      INTB15+         RETURN FOR 2BLANK

# WRDRET   =      INTBIT15        RETURN FOR 5BLANK.
# WDRET    =      INTBIT15        RETURN FOR DSPWD
# DECRET   =      INTBIT15        RETURN FOR PUTCOM(DEC LOAD)
# 21/22REG =      INTBIT15        TEMP FOR CHARIN

# UPDATRET =      POLISH          RETURN FOR UPDATNN, UPDATVB
# CHAR     =      POLISH          TEMP FOR CHARIN
# ERCNT    =      POLISH          COUNTER FOR ERROR LIGHT RESET
# DECOUNT  =      POLISH          COUNTER FOR SCALING AND DISPLAY (DEC)

# SGNON    =      VBUF            TEMP FOR +,- ON
# NOUNTEM  =      VBUF            COUNTER FOR MIXNOUN FETCH
# DISTEM   =      VBUF            COUNTER FOR OCTAL DISPLAY VERBS
# DECTEM   =      VBUF            COUNTER FOR FETCH (DEC DISPLAY VERBS)

# SGNOFF   =       VBUF   +1      TEMP FOR +,- ON
# NVTEMP   =       VBUF   +1      TEMP FOR NVSUB
# SFTEMP1  =       VBUF   +1      STORAGE FOR SF CONST HI PART (=SFTEMP2-1)

# CODE     =       VBUF   +2      FOR DSPIN
# SFTEMP2  =       VBUF   +2      STORAGE FOR SF CONST LO PART (=SFTEMP1+1)

# MIXTEMP  =       VBUF   +3      FOR MIXNOUN DATA
# SIGNRET  =       VBUF   +3      RETURN FOR +,- ON

# ALSO MIXTEMP+1 = VBUF+4, MIXTEMP+2 = VBUF+5.

# ENTRET   =       DOTINC          EXIT FROM ENTER

# WDCNT    =       DOTRET          CHAR COUNTER FOR DSPWD
# INREL    =       DOTRET          INPUT BUFFER SELECTOR ( X, Y, Z, REG )

# DSPMMTEM =       MATINC          DSPCOUNT SAVE FOR DSPMM
# MIXBR    =       MATINC          INDICATOR FOR MIXED OR NORMAL NOUN

# TEM1     ERASE                   EXEC TEMP
# DSREL    =       TEM1            REL ADDRESS FOR DSPIN

# TEM2     ERASE                   EXEC TEMP
# DSMAG    =       TEM2            MAGNITUDE STORE FOR DSPIN

# IDADDTEM =       TEM2            MIXNOUN INDIRECT ADDRESS STORAGE

# TEM3     ERASE                   EXEC TEMP
# COUNT    =       TEM3            FOR DSPIN

# TEM4     ERASE                   EXEC TEMP
# LSTPTR   =       TEM4            LIST POINTER FOR GRABUSY
# RELRET   =       TEM4            RETURN FOR RELDSP
# FREERET  =       TEM4            RETURN FOR FREEDSP

# TEM5     ERASE                   EXEC TEMP
# NOUNADD  =       TEM5            TEMP STORAGE FOR NOUN ADDRESS

# NNADTEM  ERASE                   TEMP FOR NOUN ADDRESS TABLE ENTRY
# NNTYPTEM ERASE                   TEMP FOR NOUN TYPE TABLE ENTRY
# IDAD1TEM ERASE                   TEMP FOR INDIR ADRESS TABLE ENTRY(MIXNN)
#                                  MUST = IDAD2TEM-1, = IDAD3TEM-2.
# IDAD2TEM ERASE                   TEMP FOR INDIR ADRESS TABLE ENTRY(MIXNN)
#                                  MUST = IDAD1TEM+1, = IDAD3TEM-1.
# IDAD3TEM ERASE                   TEMP FOR INDIR ADRESS TABLE ENTRY(MIXNN)
#                                  MUST = IDAD1TEM+2,  = IDAD2TEM+1.
# RUTMXTEM ERASE                   TEMP FOR SF ROUT TABLE ENTRY(MIXNN ONLY)
# END OF TEMPORARIES FOR PINBALL EXECUTIVE ACTION



# RESERVED FOR PINBALL INTERRUPT ACTION

# DSPCNT   ERASE                   COUNTER FOR DSPOUT
# UPLOCK   ERASE                   BIT1 = UPLINK INTERLOCK (ACTIVATED BY
#                                                                           RECEPTION OF A BAD MESSAGE IN UPLINK)
# END OF ERASABLES RESERVED FOR PINBALL INTERRUPT ACTION



# TEMPORARIES FOR PINBALL INTERRUPT ACTION

# KEYTEMP1 =       WAITEXIT        TEMP FOR KEYRUPT, UPRUPT
# DSRUPTEM =       WAITEXIT        TEMP FOR DSPOUT
# KEYTEMP2 =       RUPTAGN         TEMP FOR KEYRUPT, UPRUPT
# END OF TEMPORARIES FOR PINBALL INTERRUPT ACTION


# THE INPUT CODES ASSUMED FOR THE KEYBOARD ARE,
# 0        10000
# 1        00001
# 9        01001
# VERB     10001
# ERROR RES10010
# KEY RLSE 11001
# +        11010
# -        11011
# ENTER    11100
# CLEAR    11110
# NOUN     11111



# OUTPUT FORMAT FOR DISPLAY PANEL. SET OUT0 TO AAAABCCCCCDDDDD.
# A-S SELECT A RELAYWORD. THIS DETERMINES WHICH PAIR OF CHARACTERS ARE
# ENERGIZED.
# B FOR SPECIAL RELAYS SUCH AS SIGNS ETC.
# C-S  5 BIT RELAY CODE FOR LEFT CHAR OF PAIR SELECTED BY RELAYWORD
# D-S  5 BIT RELAY CODE FOR RIGHT CHAR OF PAIR SELECTED BY RELAYWORD.

# THE PANEL APPEARS AS FOLLOWS,
# MD1    MD2                         (MAJOR MODE)
# VD1    VD2 (VERB)    ND1    ND2    (NOUN)
# R1D1   R1D2   R1D3   R1D4   R1D5   (R1)
# R2D1   R2D2   R2D3   R2D4   R2D5   (R2)
# R3D1   R3D2   R3D3   R3D4   R3D5   (R3)

# EACH OF THESE IS GIVEN A DSPCOUNT NUMBER FOR USE WITHIN COMPUTATION ONLY
# MD1   25     R2D1  11         ALL ARE OCTAL
# MD2   24     R2D2  10
# VD1   23     R2D3   7
# VD2   22     R2D4   6
# ND1   21     R2D5   5
# ND2   20     R3D1   4
# R1D1  16     R3D2   3
# R1D2  15     R3D3   2
# R1D3  14     R3D4   1
# R1D4  13     R3D5   0
# R1D5  12



# THERE IS AN 11 REGISTER TABLE (DSPTAB) FOR THE DISPLAY PANEL.

# DSPTAB RELAYWD       BIT11     BITS 10-6     BITS 5-1
# RELADD
# 10     1011                    MD1 (25)      MD2 (24)
# 9      1010                    VD1 (23)      VD2 (22)

# 8      1001                    ND1 (21)      ND2 (20)
# 7      1000                                  R1D1 (16)
# 6      0111          +R1       R1D2 (15)     R1D3 (14)
# 5      0110          -R1       R1D4 (13)     R1D5 (12)
# 4      0101          +R2       R2D1 (11)     R2D2 (10)
# 3      0100          -R2       R2D3 (7)      R2D4 (6)
# 2      0011                    R2D5 (5)      R3D1 (4)
# 1      0010          +R3       R3D2 (3)      R3D3 (2)
# 0      0001          -R3       R3D4 (1)      R3D5 (0)
#        0000   NO RELAYWORD



# THE 5 BIT RELAY CODES ARE,
# BLANK      00000
# 0          10101
# 1          00011
# 2          11001
# 3          11011
# 4          01111
# 5          11110
# 6          11100
# 7          10011
# 8          11101
# 9          11111


# START OF EXECUTIVE SECTION OF PINBALL



                SETLOC          20000

GRABUSYB        TC              GRABUSY1                # STANDARD LEAD INS. DONT MOVE.
NVSUBSYB        TC              NVSUBSY1

CHARIN          CAF             ONE                     # BLOCK DISPLAY SYST
                XCH             DSPLOCK                 # MAKE DSP SYST BUSY, BUT SAVE OLD
                TS              21/22REG                # C(DSPLOCK) FOR ERROR LIGHT RESET.
                XCH             MPAC
                TS              CHAR
                INDEX           A
                TC              +1                      # INPUT CODE     FUNCTION
                TC              CHARALRM                # 0
                TC              NUM                     # 1
                TC              NUM                     # 2
                TC              NUM                     # 3
                TC              NUM                     # 4
                TC              NUM                     # 5
                TC              NUM                     # 6
                TC              NUM                     # 7
                TC              89TEST                  # 10                 8
                TC              89TEST                  # 11                 9
                TC              CHARALRM                # 12
                TC              CHARALRM                # 13
                TC              CHARALRM                # 14
                TC              CHARALRM                # 15
                TC              CHARALRM                # 16
                TC              CHARALRM                # 17
                TC              NUM             -2      # 20                 0
                TC              VERB                    # 21                 VERB
                TC              ERROR                   # 22                 ERROR LIGHT RESET
                TC              CHARALRM                # 23
                TC              CHARALRM                # 24
                TC              CHARALRM                # 25
                TC              CHARALRM                # 26
                TC              CHARALRM                # 27
                TC              CHARALRM                # 30
                TC              VBRELDSP                # 31                 KEY RELEASE
                TC              POSGN                   # 32                 +
                TC              NEGSGN                  # 33                 -
                TC              ENTERJMP                # 34                 ENTER
                TC              CHARALRM                # 35
                TC              CLEAR                   # 36                 CLEAR
                TC              NOUN                    # 37                 NOUN

ENTERJMP        TC              POSTJUMP
                CADR            ENTER

89TEST          CAF             THREE
                MASK            DECBRNCH
                CCS             A
                TC              NUM                     # IF DECBRNCH IS +, 8 OR 9 OK
                TC              CHARALRM                # IF DECBRNCH IS +0, REJECT 8 OR 9



# NUM ASSEMBLES OCTAL 3 BITS AT A TIME. FOR DECIMAL IT CONVERTS INCOMING
# WORD AS A FRACTION, KEEPING RESULTS TO DP.
# OCTAL RESULTS ARE LEFT IN XREG, YREG, OR ZREG. HI PART OF DEC IN XREG,
# YREG, ZREG. THE LOW PARTS IN XREGLP, YREGLP, OR ZREGLP)
# DECBRNCH IS LEFT AT +0 FOR OCT, +1 FOR + DEC, +2 FOR - DEC.
# IF DSPCOUNT WAS LEFT -, NO MORE DATA IS ACCEPTED.

                CAF             ZERO
                TS              CHAR
NUM             CCS             DSPCOUNT
                TC              +4                      # +
                TC              +3                      # +0
                TC              +1                      # -BLOCK DATA IN IF DSPCOUNT IS -
                TC              ENDOFJOB                # -0
                TC              GETINREL
                CCS             CLPASS                  # IF CLPASS IS + OR +0, MAKE IT +0.
                CAF             ZERO
                TS              CLPASS
                TC              +1
                INDEX           CHAR
                CAF             RELTAB
                MASK            LOW5
                TS              CODE
                CA              DSPCOUNT
                TS              COUNT
                TC              DSPIN
                CAF             THREE
                MASK            DECBRNCH
                CCS             A                       # +0, OCTAL.  +1, + DEC.  +2, - DEC.
                TC              DECTOBIN                # +
                INDEX           INREL                   # +0 OCTAL
                XCH             VERBREG
                TS              CYL
                CS              CYL
                CS              CYL
                XCH             CYL
                AD              CHAR
                TC              ENDNMTST
DECTOBIN        INDEX           INREL


                XCH             VERBREG
                TS              MPAC                    # SUM X 2EXP-14 IN MPAC
                CAF             ZERO
                TS              MPAC            +1
                CAF             TEN                     # 10 X 2EXP-14
                TC              SHORTMP                 # 10SUM X 2EXP-28 IN MPAC, MPAC+1
                XCH             MPAC            +1
                AD              CHAR
                TS              MPAC            +1
                TC              ENDNMTST                # NO OF
                ADS             MPAC                    # OF MUST BE 5TH CHAR
                TC              DECEND
ENDNMTST        INDEX           INREL
                TS              VERBREG
                CS              DSPCOUNT
                INDEX           INREL
                AD              CRITCON
                EXTEND
                BZF             ENDNUM                  # -0, DSPCOUNT = CRITCON
                TC              MORNUM                  # - , DSPCOUNT G/ CRITCON
ENDNUM          CAF             THREE
                MASK            DECBRNCH
                CCS             A
                TC              DECEND
ENDALL          CS              DSPCOUNT                # BLOCK NUMIN BY PLACING DSPCOUNT
                TC              MORNUM          +1      # NEGATIVELY
DECEND          TC              DMP                     # MULT SUM X 2EXP-28 IN MPAC, MPAC+1 BY
                ADRES           DECON                   # 2EXP14/10EXP5. GIVES(SUM/10EXP5)X2EXP-14
                CAF             THREE                   # IN MPAC, +1, +2.
                MASK            DECBRNCH
                INDEX           A
                TC              +0
                TC              +DECSGN
                EXTEND                                  # - CASE
                DCS             MPAC            +1
                DXCH            MPAC            +1
+DECSGN         XCH             MPAC            +2
                INDEX           INREL
                TS              XREGLP          -2
                XCH             MPAC            +1
                INDEX           INREL
                TS              VERBREG
                TC              ENDALL
MORNUM          CCS             DSPCOUNT                # DECREMENT DSPCOUNT
                TS              DSPCOUNT
                TC              ENDOFJOB

CRITCON         OCT             22                      # (DEC 18)
                OCT             20                      # (DEC 16)
                OCT             12                      # (DEC 10)

                OCT             5
                OCT             0

DECON           2DEC            E-5 B14                 # 2EXP14/10EXP5 = .16384 DEC


# GETINREL GETS PROPER DATA REG REL ADDRESS FOR CURRENT C(DSPCOUNT) AND
# PUTS IN INTO INREL. +0 VERBREG, 1 NOUNREG, 2 XREG, 3 YREG, 4 ZREG.

GETINREL        INDEX           DSPCOUNT
                CAF             INRELTAB
                TS              INREL                   # (A TEMP, REG)
                TC              Q

INRELTAB        OCT             4                       # R3D5 (DSPCOUNT = 0)
                OCT             4                       # R3D4           =(1)
                OCT             4                       # R3D3           =(2)
                OCT             4                       # R3D2           =(3)
                OCT             4                       # R3D1           =(4)
                OCT             3                       # R2D5           =(5)
                OCT             3                       # R2D4           =(6)
                OCT             3                       # R2D3           =(7)
                OCT             3                       # R2D2           =(8D)
                OCT             3                       # R2D1           =(9D)
                OCT             2                       # R1D5           =(10D)
                OCT             2                       # R1D4           =(11D)
                OCT             2                       # R1D3           =(12D)
                OCT             2                       # R1D2           =(13D)
                OCT             2                       # R1D1           =(14D)
                TC              CCSHOLE                 # NO DSPCOUNT NUMBER = 15D
                OCT             1                       # ND2            =(16D)
                OCT             1                       # ND1            =(17D)
                OCT             0                       # VD2            =(18D)
                OCT             0                       # VD1            =(19D)

VERB            CAF             ZERO
                TS              VERBREG
                CAF             VD1
NVCOM           TS              DSPCOUNT
                TC              2BLANK
                CAF             ZERO
                TS              DECBRNCH
                TS              REQRET                  # SET FOR ENTPAS0
                CAF             ENDINST                 # IF DSPALARM OCCURS BEFORE FIRST ENTPAS0
                TS              ENTRET                  # OR NVSUB, ENTRET MUST ALREADY BE SET
                                                        # TO TC ENDOFJOB
                TC              ENDOFJOB

NOUN            CAF             ZERO
                TS              NOUNREG
                CAF             ND1                     # ND1, OCT 21 (DEC 17)
                TC              NVCOM



NEGSGN          TC              SIGNTEST
                TC              -ON
                CAF             TWO
BOTHSGN         INDEX           INREL                   # SET DEC COMP BIT TO 1 (IN DECBRNCH)
                AD              BIT7                    # BIT 5 FOR R1, BIT 4 FOR R2,
                ADS             DECBRNCH                # BIT 3 FOR R3.
FIXCLPAS        CCS             CLPASS                  # IF CLPASS IS + OR +0, MAKE IT +0.
                CAF             ZERO
                TS              CLPASS
                TC              +1
                TC              ENDOFJOB

POSGN           TC              SIGNTEST
                TC              +ON
                CAF             ONE
                TC              BOTHSGN

+ON             LXCH            Q
                TC              GETINREL
                INDEX           INREL
                CAF             SGNTAB          -2
                TS              SGNOFF
                AD              ONE
                TS              SGNON
SGNCOM          CAF             ZERO
                TS              CODE
                XCH             SGNOFF
                TC              11DSPIN
                CAF             BIT11
                TS              CODE
                XCH             SGNON
                TC              11DSPIN
                TC              L
-ON             LXCH            Q
                TC              GETINREL
                INDEX           INREL
                CAF             SGNTAB          -2
                TS              SGNON
                AD              ONE
                TS              SGNOFF
                TC              SGNCOM

SGNTAB          OCT             5                       # -R1

                OCT             3                       # -R2
                OCT             0                       # -R3



SIGNTEST        LXCH            Q                       # ALLOWS +,- ONLY WHEN DSPCOUNT=R1D1,
                CS              R1D1                    # R2D1, OR R3D1.
                TC              SGNTST1
                CS              R2D1
                TC              SGNTST1
                CS              R3D1
                TC              SGNTST1
                TC              ENDOFJOB                # NO MATCH FOUND. SIGN ILLEGAL
SGNTST1         AD              DSPCOUNT
                EXTEND
                BZF             +2                      # MATCH FOUND
                TC              Q
                TC              L                       # SIGN LEGAL



# ERROR LIGHT RESET (RSET) TURNS OFF,
# UPLINK ACTIVITY, AUTO, HOLD, FREE, NO ATT, OPERATOR ERROR,
# PROG ALM, TRACKER FAIL.
# LEAVES GIMBAL LOCK ALONE.
# IT ALSO ZEROES THE :TEST ALARM: OUT BIT, WHICH TURNS OFF STBY,RESTART.
# IT ALSO SETS :CAUTION RESET: TO 1.
# IT ALSO FORCES BIT 12 OF ALL DSPTAB ENTRIES TO 1.

ERROR           XCH             21/22REG                # RESTORE ORIGINAL C(DSPLOCK). THUS ERROR
                TS              DSPLOCK                 # LIGHT RESET LEAVES DSPLOCK UNCHANGED.
                INHINT
                CAF             BIT10                   # TURN ON :CAUTION RESET: OUTBIT
                EXTEND
                WOR             DSALMOUT                # BIT10 CHAN 11
                CAF             BIT6                    # LEAVE GIMBAL LOCK LAMP INTACT,
                MASK            DSPTAB           +11D   # TURNING OFF, AUTO, HOLD, FREE, NO ATT.,
                AD              BIT15                   # PROG ALARM, AND TRACKER.
                TS              DSPTAB           +11D
                CS              PRIO16                  # RESET FAIL BITS WHICH GENERATE PROG
                MASK            IMODES33                # ALARM SO THAT IF THE FAILURE STILL
                AD              PRIO16                  # EXISTS, THE ALARM WILL COME BACK.
                TS              IMODES33
                CS              BIT10
                MASK            IMODES30
                AD              BIT10
                TS              IMODES30

                CS              RFAILS
                MASK            RADMODES


                AD              BIT7
                TS              RADMODES

                CS              BIT10                   # TURN OFF :TEST ALARM: OUTBIT.
                EXTEND
                WAND            CHAN13
                CS              ERCON                   # TURN OFF UPLINK ACTIVITY,
                EXTEND                                  # OPERATOR ERROR.
                WAND            DSALMOUT
TSTAB           CAF             BINCON                  # (DEC 10)
                TS              ERCNT                   # ERCNT = COUNT
                INHINT
                INDEX           ERCNT
                CCS             DSPTAB
                AD              ONE
                TC              ERPLUS
                AD              ONE
ERMINUS         CS              A
                MASK            NOTBIT12
                TC              ERCOM
ERPLUS          CS              A
                MASK            NOTBIT12
                CS              A                       # MIGHT WANT TO RESET CLPASS, DECBRNCH,
ERCOM           INDEX           ERCNT                   # ETC.
                TS              DSPTAB
                RELINT
                CCS             ERCNT
                TC              TSTAB           +1
                CAF             ZERO
                TS              FAILREG
                TS              SFAIL
                TC              ENDOFJOB

ERCON           OCT             104                     # CHAN 11 BITS 3,7.
                                                        # UPLINK ACTIVITY, AND OPERATOR ERROR.
RFAILS          OCT             330                     # RADAR CDU AND DATA FAIL FLAGS.
NOTBIT12        OCT             73777



# CLEAR BLANKS WHICH R1, R2, R3 IS CURRENT OR LAST TO BE DISPLAYED(PERTINE
# NT XREG,YREG,ZREG IS CLEARED). SUCCESSIVE CLEARS TAKE CARE OF EACH RX
# L/ RC UNTIL R1 IS DONE. THEN NO FURTHER ACTION

# THE SINGLE COMPONENT LOAD VERBS ALLOW ONLY THE SINGLE RC THAT IS
# APPROPRIATE TO BE CLEARED.

# CLPASS      +0 PASS0, CAN BE BACKED UP
#             +NZ HIPASS, CAN BE BACKED UP
#             -NZ PASS0, CANNOT BE BACKED UP


CLEAR           CCS             DSPCOUNT
                AD              ONE
                TC              +2
                AD              ONE
                TS              DSPCOUNT                # MAG OF DSPCOUNT
                TC              GETINREL                # MUST SET INREL, EVEN FOR HIPASS
                CCS             CLPASS
                TC              CLPASHI                 # +
                TC              +2                      # +0    IF CLPASS IS +0 OR -, IT IS PASS0
                TC              +1                      # -
                CA              INREL
                TC              LEGALTST
                TC              CLEAR1
CLPASHI         CCS             INREL
                TS              INREL
                TC              LEGALTST
                CAF             DOUBLK          +2       # +3 TO - NUMBER. BACKS DATA REQUESTS.
                ADS             REQRET
                CA              INREL
                TS              MIXTEMP                 # TEMP STORAGE FOR INREL
                EXTEND
                DIM             VERBREG                 # DECREMENT VERB AND RE-DISPLAY
                TC              BANKCALL
                CADR            UPDATVB
                CA              MIXTEMP
                TS              INREL                   # RESTORE INREL
CLEAR1          TC              CLR5
                INCR            CLPASS                  # ONLY IF CLPASS IS + OR +0,
                TC              ENDOFJOB                # SET FOR HIGHER PASS.
CLR5            LXCH            Q                       # USES 5BLANK BUT AVOIDS ITS TC GETINREL
                TC              5BLANK          +2
LEGALTST        AD              NEG2
                CCS             A
                TC              Q                       # LEGAL         INREL G/ 2
                TC              CCSHOLE
                TC              ENDOFJOB                # ILLEGAL       INREL= 0,1
                TC              Q                       # LEGAL        INREL = 2



# 5BLANK BLANKS 5 CHAR DISPLAY WORD IN R1, R2, OR R3. IT ALSO ZEROES XREG,
# YREG, OR ZREG.PLACE ANY + DSPCOUNT NUMBER FOR PERTINENT RC INTO DSPCOUNT
# DSPCOUNT IS LEFT SET TO LEFT MOST DSP NUMB FOR RC JUST BLANKED.

5BLANK          LXCH            Q
                TC              GETINREL
                CAF             ZERO
                INDEX           INREL
                TS              VERBREG                 # ZERO X, Y, Z REG.
                INDEX           INREL


                TS              XREGLP          -2
                TS              CODE
                INDEX           INREL                   # ZERO PERTINENT DEC COMP BIT.
                CS              BIT7                    # PROTECT OTHERS
                MASK            DECBRNCH
                MASK            BRNCHCON                # ZERO LOW 2 BITS.
                TS              DECBRNCH
                INDEX           INREL
                CAF             SINBLANK        -2      # BLANK ISOLATED CHAR SEPARATELY
                TS              COUNT
                TC              DSPIN
5BLANK1         INDEX           INREL
                CAF             DOUBLK          -2
                TS              DSPCOUNT
                TC              2BLANK
                CS              TWO
                ADS             DSPCOUNT
                TC              2BLANK
                INDEX           INREL
                CAF             R1D1            -2
                TS              DSPCOUNT                # SET DSPCOUNT TO LEFT MOST DSP NUMBER
                TC              L                       # OF REG. JUST BLANKED

SINBLANK        OCT             16                      # DEC 14
                OCT             5
                OCT             4
DOUBLK          OCT             15                      # DEC 13
                OCT             11                      # DEC 9
                OCT             3

BRNCHCON        OCT             77774

# 2BLANK BLANKS TWO CHAR. PLACE DSP NUMBER OF LEFT CHAR  OF THE PAIR INTO
# DSPCOUNT. THIS NUMBER IS LEFT IN DSPCOUNT

2BLANK          CA              DSPCOUNT
                TS              SR
                CS              BLANKCON
                INHINT
                INDEX           SR
                XCH             DSPTAB
                EXTEND
                BZMF            +2                      # IF OLD CONTENTS -, NOUT OK
                INCR            NOUT                    # IF OLD CONTENTS +, +1 TO NOUT
                RELINT                                  # IF -, NOUT OK
                TC              Q
BLANKCON        OCT             4000


# ENTER PASS 0 IS THE EXECUTE FUNCTION. HIGHER ORDER ENTERS ARE TO LOAD
# DATA. THE SIGN OF REQRET DETERMINES THE PASS, + FOR PASS 0,- FOR HIGHER
# PASSES.



# MACHINE CADR TO BE SPECIFIED (MCTBS) NOUNS DESIRE AN ECADR TO BE LOADED
# WHEN USED WITH LOAD VERBS, MONITOR VERBS, OR DISPLAY VERBS (EXCEPT
# VERB = FIXED MEMORY DISPLAY, WHICH REQUIRES AN FCADR).



                SETLOC          22000

NVSUBB          TC              NVSUB1                  # STANDARD LEAD INS. DONT MOVE.
DSPMM           TCF             DSPMM1
LOADLV1         TC              LOADLV
                                                        # END OF STANDARD LEAD INS.



ENTER           CAF             ZERO
                TS              CLPASS
                CAF             ENDINST
                TS              ENTRET
                CCS             REQRET
                TC              ENTPAS0                 # IF +, PASS 0
                TC              ENTPAS0                 # IF +, PASS 0
                TC              +1                      # IF -, NOT PASS 0
                CAF             THREE                   # IF DEC, ALARM IF LESS THAN 5 CHAR IN,
                MASK            DECBRNCH                # BUT LEAVE REQRET - AND FLASH ON, SO
                CCS             A                       # OPERATOR CAN SUPPLY MISSING NUMERICAL
                TC              +2                      # CHARACTERS AND CONTINUE.
                TC              ACCEPTWD                # OCTAL. ANY NUMBER OF CHAR OK.
                CCS             DSPCOUNT
                TC              GODSPALM                # LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
                TC              GODSPALM                # LESS THAN 5 CHAR DEC(DSPCOUNT IS +)
                TC              +1                      # 5 CHAR IN (DSPCOUNT IS -)
ACCEPTWD        CS              REQRET                  # 5 CHAR IN (DSPCOUNT IS -)
                TS              REQRET                  # SET REQRET +.
                TC              FLASHOFF
                TC              REQRET

ENTEXIT         =               ENTRET

LOWVERB         OCT             30                      # LOWER VERB THAT AVOIDS NOUN TEST

ENTPAS0         CAF             ZERO                    #  NOUN VERB SUB ENTERS HERE
                TS              DECBRNCH
TESTVB          CS              VERBREG                 # IF VERB IS 30-77, SKIP NOUN TEST


                AD              LOWVERB                 # 30-VB
                EXTEND
                BZMF            VERBFAN                 # VERB G/ E 30
TESTNN          EXTEND                                  # VERB L/ 30
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                INDEX           MIXBR
                TC              +0
                TC              +2                      # NORMAL
                TC              MIXNOUN                 # MIXED
                CCS             NNADTEM                 # NORMAL
                TC              VERBFAN         -2      #       NORMAL  IF +
                TC              GODSPALM                # NOT IN USE     IF +0
                TC              REQADD                  # SPECIFY MACHINE CADR IF -
                INCR            NOUNCADR                # AUGMENT MACHINE CADR IF -0
                TC              SETNADD                 # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
                TC              INTMCTBS        +2
REQADD          CAF             BIT15                   # SET CLPASS FOR PASS0 ONLY
                TS              CLPASS
                CS              ENDINST                 # TEST IF REACHED HERE FROM INTERNAL OR
                AD              ENTEXIT                 #             FROM EXTERNAL
                EXTEND
                BZF             +2                      # EXTERNAL MACH CADR TO BE SPECIFIED
                TC              INTMCTBS
                TC              REQDATZ                 # EXTERNAL MACH CADR TO BE SPECIFIED
                CCS             DECBRNCH
                TC              GODSPALM                # ALARM IF DECIMAL USED FOR MCTBS
                XCH             ZREG                    # OCTAL USED    OK
                TC              SETNCADR                # ECADR INTO NOUNCADR. SET EB, NOUNADD.
                EXTEND
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                TC              VERBFAN

                EBANK=          DSPCOUNT
LODNNLOC        2CADR           LODNNTAB

NEG5            OCT             77772

INTMCTBS        CA              MPAC            +2      # INTERNAL MACH CADR TO BE SPECIFIED.
                TC              SETNCADR                # ECADR INTO NOUNCADR. SET EB, NOUNADD.
                CS              BIT4                    # NVSUB CALL LEFT CADR IN MPAC+2 FOR MACH
                MASK            VERBREG                 # CADR TO BE SPECIFIED.
                AD              NEG5                    # MASKING MAKES VB15 LOOK LIKE VB05.
                EXTEND
                BZF             VERBFAN                 # VB = 05 OR 15, DO NOT DISPLAY CADR.
                CAF             R3D1                    # VB NOT = 05 OR 15, DISPLAY CADR.
                TS              DSPCOUNT
                CA              NOUNCADR
                TC              DSPOCTWD


                TC              VERBFAN

                AD              ONE
                TC              SETNCADR                # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
VERBFAN         CS              LST2CON
                AD              VERBREG                 # VERB-LST2CON
                CCS             A
                AD              ONE                     # VERB G/ LST2CON
                TC              +2
                TC              VBFANDIR                # VERB L/ LST2CON
                TS              MPAC
                TC              RELDSP                  # RELEASE DISPLAY SYST
                XCH             MPAC                    # ALSO TURN OFF RELEASE DISPLAY SYST LIGHT
                AD              LST2CADR
                TC              BANKJUMP
LST2CON         OCT             40                      # FIRST LST2 VERB
LST2CADR        CADR            LST2FAN

VBFANDIR        INDEX           VERBREG
                CAF             VERBTAB
                TC              BANKJUMP

VERBTAB         CADR            GODSPALM                # VB00 ILLEGAL
                CADR            DSPA                    # VB01 DISPLAY OCT COMP 1 (R1)
                CADR            DSPB                    # VB02 DISPLAY OCT COMP 2 (R1)
                CADR            DSPC                    # VB03 DISPLAY OCT COMP 3 (R1)
                CADR            DSPAB                   # VB04 DISPLAY OCT COMP 1,2 (R1,R2)
                CADR            DSPABC                  # VB05 DISPLAY OCT COMP 1,2,3 (R1,R2,R3)
                CADR            DECDSP                  # VB06 DECIMAL DISPLAY
                CADR            DSPDPDEC                # VB07 DP DECIMAL DISPLAY (R1,R2)
                CADR            DSPALARM                # VB10 SPARE
                CADR            MONITOR                 # VB11 MONITOR OCT COMP 1 (R1)
                CADR            MONITOR                 # VB12 MONITOR OCT COMP 2 (R1)
                CADR            MONITOR                 # VB13 MONITOR OCT COMP 3 (R1)
                CADR            MONITOR                 # VB14 MONITOR OCT COMP 1,2 (R1,R2)
                CADR            MONITOR                 # VB15 MONITOR OCT COMP 1,2,3 (R1,R2,R3)
                CADR            MONITOR                 # VB16 MONITOR DECIMAL
                CADR            MONITOR                 # VB17 MONITOR DP DEC (R1,R2)
                CADR            GODSPALM                # VB20 SPARE
                CADR            ALOAD                   # VB21 LOAD COMP 1 (R1)
                CADR            BLOAD                   # VB22 LOAD COMP 2 (R2)
                CADR            CLOAD                   # VB23 LOAD COMP 3 (R3)
                CADR            ABLOAD                  # VB24 LOAD COMP 1,2 (R1,R2)
                CADR            ABCLOAD                 # VB25 LOAD COMP 1,2,3 (R1,R2,R3)
                CADR            GODSPALM                # VB26 SPARE
                CADR            DSPFMEM                 # VB27 FIXED MEMORY DISPLAY
                                                        # THE FOLLOWING VERBS MAKE NO NOUN TEST
REQEXLOC        CADR            VBRQEXEC                # VB30 REQUEST EXECUTIVE
                CADR            VBRQWAIT                # VB31 REQUEST WAITLIST
                CADR            BUMP                    # VB32 C(R2) INTO R3, C(R1) INTO R2


                CADR            VBPROC                  # VB33 PROCEED WITHOUT DATA
                CADR            VBTERM                  # VB34 TERMINATE CURRENT TEST OR LOAD REQ
                CADR            VBTSTLTS                # VB35 TEST LIGHTS
                CADR            SLAP1                   # VB36 FRESH START
ENDVBFAN        CADR            MMCHANG                 # VB37 CHANGE MAJOR MODE



# THE LIST2 VERBFAN IS LOCATED IN THE EXTENDED VERB BANK.



# NNADTAB CONTAINS A RELATIVE ADDRESS, IDADDREL(IN LOW 10 BITS), REFERRING
# TO WHERE 3 CONSECUTIVE ADDRESSES ARE STORED (IN IDADDTAB).
# MIXNOUN GETS DATA AND STORES IN MIXTEMP,+1,+2. IT SETS NOUNADD FOR
#  MIXTEMP.

MIXNOUN         CCS             NNADTEM
                TC              +4                      # + IN USE
                TC              GODSPALM                # +0 NOT IN USE
                TC              +2                      # - IN USE
                TC              +1                      # -0 IN USE
                CS              SIX
                AD              VERBREG
                EXTEND
                BZMF            +2                      # VERB L/E 6
                TC              VERBFAN                 # AVOID MIXNOUN SWAP IF VB NOT = DISPLAY
                CAF             TWO
MIXNN1          TS              DECOUNT
                AD              MIXAD
                TS              NOUNADD                 # SET NOUNADD TO MIXTEMP + K
                INDEX           DECOUNT                 # GET IDADDTAB ENTRY FOR COMPONENT K
                CA              IDAD1TEM                # OF NOUN.
                TS              NOUNTEM
                                                        # TEST FOR DP (FOR OCT DISPLAY). IF SO, GET
                                                        #   MINOR PART ONLY.
                TC              SFRUTMIX                # GET SF ROUT NUMBER IN A
                TC              DPTEST
                TC              MIXNN2                  # NO DP
                INCR            NOUNTEM                 # DP GET MINOR PART
MIXNN2          CA              NOUNTEM
                MASK            LOW11                   # ESUBK (NO DP) OR (ESUBK)+1     FOR DP
                TC              SETEBANK                # SET EBANK, LEAVE EADRES IN A.
                INDEX           A                       # PICK UP C(ESUBK)  NOT DP
                CA              0                       # OR C((ESUBK)+1)  FOR DP MINOR PART
                INDEX           NOUNADD
                XCH             0                       # STORE IN MIXTEM + K
                CCS             DECOUNT
                TC              MIXNN1
                TC              VERBFAN

MIXAD           TC              MIXTEMP



# DPTEST   ENTER WITH SF ROUT NUMBER IN A.
#          RETURNS TO L+1 IF NO DP.
#          RETURNS TO L+2 IF DP.

DPTEST          INDEX           A
                TCF             +1
                TC              Q                       # OCTAL ONLY NO DP


                TC              Q                       # FRACT NO DP
                TC              Q                       # DEG  NO DP
                TC              Q                       # ARITH  NO DP
                TCF             DPTEST1                 # DP1OUT
                TCF             DPTEST1                 # DP2OUT
                TC              Q                       # OPDEG  NO DP
                TCF             DPTEST1                 # DP3OUT
DPTEST1         INDEX           Q
                TC              1                       # RETURN TO L+2



REQDATX         CAF             R1D1
                TCF             REQCOM
REQDATY         CAF             R2D1
                TCF             REQCOM
REQDATZ         CAF             R3D1
REQCOM          TS              DSPCOUNT
                CS              Q
                TS              REQRET
                TC              BANKCALL
                CADR            5BLANK
                TC              FLASHON
                CS              ENDINST
                AD              ENTEXIT
                EXTEND
                BZF             ENDRQDAT                # ENTEXIT = ENDOFJOB. EXTERNALLY INITIATED
                CS              ZERO                    # ENTEXIT NOT ENDOFJOB. NVSUB INITIATED
                TS              CADRSTOR                # NVSUB INITIATED LOAD. SET CADRSTOR TO -0
ENDRQDAT        TC              ENTEXIT

# IF NVSUB INITIATED LOAD, SET CADRSTOR TO -0 TO TELL RECALTST TO RELEASE
# DISPLAY IF ENDIDLE WAS NOT USED. (NECESSARY FOR DATAWAIT)


                TS              NOUNREG
UPDATNN         XCH             Q
                TS              UPDATRET
                EXTEND
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                CCS             NNADTEM
                AD              ONE                     # NORMAL
                TCF             PUTADD
                TCF             PUTADD          +1      # MCTBS  DONT CHANGE NOUNADD
                TCF             PUTADD          +1      # MCTBI  DONT CHANGE NOUNADD
PUTADD          TC              SETNCADR                # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
                CAF             ND1
                TS              DSPCOUNT


                CA              NOUNREG
                TCF             UPDAT1

                TS              VERBREG
UPDATVB         XCH             Q
                TS              UPDATRET
                CAF             VD1
                TS              DSPCOUNT
                CA              VERBREG
UPDAT1          TC              DSP2BIT
                TC              UPDATRET



GODSPALM        TC              POSTJUMP
                CADR            DSPALARM


#          NOUN TABLES
# NOUN CODE L/55, NORMAL CASE.  NOUN CODE G/E 55, MIXED NOUN CASE.
# FOR NORMAL CASE, NNADTAB CONTAINS ONE       ECADR    FOR EACH NOUN.
# +0 INDICATES NOUN NOT USED.   - ENTRY INDICATES MACHINE CADR(E OR F) TO
# BE SPECIFIED. -1 INDICATES CHANNEL TO BE SPECIFIED. -0 INDICATES AUGMENT
# OF LAST MACHINE CADR SUPPLIED.

# FOR MIXED CASE, NNADTAB CONTAINS ONE INDIRECT ADDRESS(IDADDREL) IN LOW
# 10 BITS, AND THE COMPONENT CODE NUMBER IN THE HIGH 5 BITS.

# NNTYPTAB IS A PACKED TABLE OF THE FORM MMMMMNNNNNPPPPP.

# FOR THE NORMAL CASE, M-S ARE THE COMPONENT CODE NUMBER.
#                      N-S ARE THE SF ROUTINE CODE NUMBER.
#                      P-S ARE THE SF CONSTANT CODE NUMBER.

# MIXED CASE,M-S ARE THE SF CONSTANT3 CODE NUMBER     3 COMPONENT CASE
#            N-S ARE THE SF CONSTANT2 CODE NUMBER
#            P-S ARE THE SF CONSTANT1 CODE NUMBER
#            N-S ARE THE SF CONSTANT2 CODE NUMBER     2 COMPONENT CASE
#            P-S ARE THE SF CONSTANT1 CODE NUMBER
#            P-S ARE THE SF CONSTANT1 CODE NUMBER      1 COMPONENT CASE

# THERE IS ALSO AN INDIRECT ADDRESS TABLE(IDADDTAB) FOR MIXED CASE ONLY.
# EACH ENTRY CONTAINS ONE ECADR.    IDADDREL IS THE RELATIVE ADDRESS OF
# THE FIRST OF THESE ENTRIES.
# THERE IS ONE ENTRY IN THIS TABLE FOR EACH COMPONENT OF A MIXED NOUN
# THEY ARE LISTED IN ORDER OF ASCENDING K.

# THERE IS ALSO A SCALE FACTOR ROUTINE NUMBER TABLE( RUTMXTAB ) FOR MIXED
# CASE ONLY. THERE IS ONE ENTRY PER MIXED NOUN. THE FORM IS,
#       QQQQQRRRRRSSSSS
# Q-S ARE THE SF ROUTINE 3 CODE NUMBER     3 COMPONENT CASE
# R-S ARE THE SF ROUTINE 2 CODE NUMBER
# S-S ARE THE SF ROUTINE 1 CODE NUMBER
# R-S ARE THE SF ROUTINE 2 CODE NUMBER     2 COMPONENT CASE
# S-S ARE THE SF ROUTINE 1 CODE NUMBER
#
# IN OCTAL DISPLAY AND LOAD (OCT OR DEC) VERBS, EXCLUDE USE OF VERBS WHOSE
# COMPONENT NUMBER IS GREATER THAN THE NUMBER OF COMPONENTS IN NOUN.
# ALL MACHINE ADDRESS TO BE SPECIFIED NOUNS ARE 1 COMPONENT.
# ONLY EXCEPTION IS NOUN 01 TO ALLOW OCTAL DISPLAYS AND LOADS OF
# AN UNCONTOLLED NUMBER OF COMPONENTS.



# IN MULTI-COMPONENT LOAD VERBS, NO MIXING OF OCTAL AND DECIMAL DATA
# COMPONENT WORDS IS ALLOWED. ALARM IF VIOLATION.


# IN DECIMAL LOADS OF DATA, 5 NUMERICAL CHARACTERS MUST BE KEYED IN
# BEFORE EACH ENTER. IF NOT, ALARM.


#          DISPLAY VERBS
DSPABC          CS              TWO
                TC              COMPTEST
                INDEX           NOUNADD
                CS              2
                XCH             BUF             +2
DSPAB           CS              ONE
                TC              COMPTEST
                INDEX           NOUNADD
                CS              1
                XCH             BUF             +1
DSPA            TC              TSTFORDP
                INDEX           NOUNADD
                CS              0
DSPCOM1         XCH             BUF
                TC              DSPCOM2
DSPB            CS              ONE
                TC              COMPTEST
                INDEX           NOUNADD
                CS              1
                TC              DSPCOM1
DSPC            CS              TWO
                TC              COMPTEST
                INDEX           NOUNADD
                CS              2
                TC              DSPCOM1
DSPCOM2         CS              TWO                     # A  B  C  AB ABC
                AD              VERBREG                 # -1 -0 +1 +2 +3   IN A
                CCS             A                       # +0 +0 +0 +1 +2    IN A AFTER CCS
                TC              DSPCOM3
                TC              ENTEXIT
                TC              +1
DSPCOM3         TS              DISTEM                  # +0,+1,+2 INTO DISTEM
                INDEX           A
                CAF             R1D1
                TS              DSPCOUNT
                INDEX           DISTEM
                CS              BUF
                TC              DSPOCTWD
                XCH             DISTEM
                TC              DSPCOM2         +2

# COMPTEST ALARMS IF COMPONENT NUMBER OF VERB(LOAD OR OCT DISPLAY) IS
# GREATER THAN THE HIGHEST COMPONENT NUMBER OF NOUN.
# NOUN 01 IS EXCLUDED FROM TEST.
COMPTEST        TS              SFTEMP1                 # - VERB COMP
                LXCH            Q
COMPTST1        CS              ONE
                AD              NOUNREG
                EXTEND


                BZF             NDCMPTST                # NOUN = 01, ANY COMP OK
                INDEX           MIXBR                   # NOUN NOT = 01.
                CAF             COMPICK         -1
                INDEX           A
                CA              0
                MASK            HI5
                TC              LEFT5                   # NOUN COMP
                AD              SFTEMP1                 # NOUN COMP - VERB COMP
                CCS             A
                TC              L                       # NOUN COMP G/ VERB COMP
                TC              CCSHOLE
                TC              GODSPALM                # NOUN COMP L/ VERB COMP
NDCMPTST        TC              L                       # NOUN COMP = VERB COMP



TSTFORDP        LXCH            Q                       # TEST FOR DP. IF SO, GET MINOR PART ONLY.
                CA              NNADTEM
                AD              ONE                     # IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
                EXTEND
                BZF             CHANDSP
                INDEX           MIXBR
                TC              +0
                TC              +2                      # NORMAL
                TC              L                       # MIXED CASE ALREADY HANDLED IN MIXNOUN
                TC              SFRUTNOR
                TC              DPTEST
                TC              L                       # NO DP
                INCR            NOUNADD                 # DP    E+1 INTO NOUNADD FOR MINOR PART.
                TC              L



CHANDSP         EXTEND
                INDEX           NOUNCADR
                READ            0
                CS              A
                TCF             DSPCOM1



COMPICK         ADRES           NNTYPTEM
                ADRES           NNADTEM

DECDSP          INDEX           MIXBR                   # NORMAL                MIXED
                CAF             COMPICK         -1      # ADRES NNTYPTEM        ADRES NNADTEM
                INDEX           A
                CA              0                       # C(NNTYPTEM)           C(NNADTEM)
                MASK            HI5                     # GET HI5 OF NNTYPTAB(NORM)OF NNADTAB(MIX)
                TC              LEFT5


                TS              DECOUNT                 # COMP NUMBER INTO DECOUNT
DSPDCGET        TS              DECTEM                  # PICKS UP DATA
                AD              NOUNADD                 # DECTEM 1COMP +0, 2COMP +1, 3COMP +2
                INDEX           A
                CS              0
                INDEX           DECTEM
                XCH             XREG                    # CANT USE BUF SINCE DMP USES IT.
                CCS             DECTEM
                TC              DSPDCGET                # MORE TO GET
DSPDCPUT        CAF             ZERO                    # DISPLAYS DATA
                TS              MPAC            +1      # DECOUNT 1COMP +0, 2COMP +1, 3COMP +2
                TS              MPAC            +2
                INDEX           DECOUNT
                CAF             R1D1
                TS              DSPCOUNT
                INDEX           DECOUNT
                CS              XREG
                TS              MPAC
                TC              SFCONUM                 # 2X ( SF CON NUMB ) IN A
                TS              SFTEMP1
                EXTEND                                  # SWITCH BANKS TO SF CONSTANT TABLE
                DCA             GTSFOUTL                #    READING ROUTINE.
                DXCH            Z                       # LOADS SFTEMP1, SFTEMP2.
                INDEX           MIXBR
                TC              +0
                TC              DSPSFNOR
                TC              SFRUTMIX
                TC              DECDSP3

DSPSFNOR        TC              SFRUTNOR
                TC              DECDSP3

                EBANK=          DSPCOUNT
GTSFOUTL        2CADR           GTSFOUT

DSPDCEND        TC              BANKCALL                # ALL SFOUT ROUTINES END HERE
                CADR            DSPDECWD
                CCS             DECOUNT
                TC              +2
                TC              ENTEXIT
                TS              DECOUNT
                TC              DSPDCPUT                # MORE TO DISPLAY

DECDSP3         INDEX           A
                CAF             SFOUTABR
                TC              BANKJUMP


SFOUTABR        CADR            DSPALARM                # ALARM IF DEC DISP WITH OCTAL ONLY NOUN
                CADR            DSPDCEND
                CADR            DEGOUTSF
                CADR            ARTOUTSF
                CADR            DP1OUTSF
                CADR            DP2OUTSF
                CADR            OPDEGOUT
                CADR            DP3OUTSF
ENDRTOUT        EQUALS



#         THE FOLLOWING IS ATYPICAL SF ROUTINE. IT USES MPAC. LEAVES RESU
# LTS IN MPAC, MPAC+1. ENDS WITH TC DSPDCEND



                SETLOC          BLANKCON +1

#    DEGOUTSF SCALES BY .18 THE LOW 14 BITS OF ANGLE, ADDING .18 FOR
# NUMBERS IN THE NEGATIVE (AGC) RANGE.

DEGOUTSF        CAF             ZERO
                TS              MPAC            +2      # SET INDEX FOR FULL SCALE
                TC              FIXRANGE
                TC              +2                      # NO AUGMENT NEEDED (SFTEMP1 AND 2 ARE 0)
                TC              SETAUG                  # SET AUGMENTER ACCORDING TO C(MPAC +2)
                TC              DEGCOM

# OPDEGOUT SCALES BY .45 (THE RANGE IS 90 DEGREES) AND ADDS A 20 DEG BIAS.

OPDEGOUT        CCS             MPAC                    # RANGE IS 90 DEG
                XCH             MPAC                    # IF POS OR POS 0 THEN ADD BIAS AND
                TC              +3                      # CORRECT FOR POSSIBLE OVERFLOW
                TC              NEGOPT                  # IF NEG NON ZERO
                AD              NEG1                    # IF NEG ZERO SUBTRACT 1
                AD              20BIAS
BIASCOM         TS              MPAC                    # TEST FOR OVERFLOW
                TC              +3                      # NO OVFLOW
                CAF             BIT15                   # IF OVFLOW
                ADS             MPAC
                CAF             TWO                     # SET MULTIPLIER TO .45
                TC              DEGOUTSF        +1

NEGOPT          XCH             MPAC                    # NEGATIVE CASE
                AD              20BIAS
                CCS             A
                TC              BIASCOM                 # IF POS THEN SUBTRACT 1 BECAUSE OF 2SCOM
                TC              CCSHOLE
                AD              ONE                     # IF NEG RESTORE SUM


                COM                                     # IF NEG 0 LEAVE NEG 0
                TC              BIASCOM

SETAUG          EXTEND                                  # LOADS SFTEMP1 AND SFTEMP2 WITH THE
                INDEX           MPAC            +2      # DP AUGMENTER CONSTANT
                DCA             DEGTAB
                DXCH            SFTEMP1
                TC              Q

FIXRANGE        CCS             MPAC                    # IF MPAC IS + RETURN TO L+1
                TC              Q                       # IF MPAC IS - RETURN TO L+2 AFTER
                TC              Q                       # MASKING OUT THE SIGN BIT
                TCF             +1
                CS              BIT15
                MASK            MPAC
                TS              MPAC
                INDEX           Q
                TC              1

DEGCOM          EXTEND                                  # LOADS MULTIPLIER, DOES SHORTMP, AND
                INDEX           MPAC +2                 # ADDS AUGMENTER.
                DCA             DEGTAB
                DXCH            MPAC                    # ADJUSTED ANGLE IN A
                TC              SHORTMP
                DXCH            SFTEMP1
                DAS             MPAC
                TC              SCOUTEND

DEGTAB          OCT             05605                   # HI PART OF    .18
                OCT             03656                   # LOW PART OF   .18
                OCT             16314                   # HI PART OF    .45
                OCT             31463                   # LO PART OF    .45

20BIAS          OCT             16040                   # 20 DEG BIAS FOR OPTICS

ARTOUTSF        DXCH            SFTEMP1                 # ASSUMES POINT AT LEFT OF DP SFCON
                DXCH            MPAC
                TC              SHORTMP
SCOUTEND        TC              POSTJUMP
                CADR            DSPDCEND

DP1OUTSF        TC              DPOUT                   # SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
                XCH             MPAC            +2      # IN SFTEMP1, SFTEMP2.  THEN SCALE RESULT
                XCH             MPAC            +1      # BY B14.
                TS              MPAC
                TC              SCOUTEND


DP2OUTSF        TC              DPOUT                   # SCALES MPAC, MPAC +1 BY DP SCALE FACTOR
                TC              SCOUTEND



DP3OUTSF        TC              DPOUT                   # ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
                TC              TPLEFT7                 # PART OF SFCON. SHIFTS RESULTS LEFT 7.
                TC              SCOUTEND



# DPOUT PICKS UP FRESH DATA FOR BOTH HI AND LO COMPONENTS.
# THIS IS NEEDED FOR TIME DISPLAY.

DPOUT           XCH             Q
                TS              OVFIND
                INDEX           MIXBR
                TC              +0
                TC              DPOUTNOR
                INDEX           DECOUNT                 # GET IDADDTAB ENTRY FOR COMPONENT K
                CA              IDAD1TEM                #     OF NOUN.
                MASK            LOW11                   # E SUBK
                TC              SETEBANK                # SET EB, LEAVE EADRES IN A.
DPOUTCOM        EXTEND
                INDEX           A                       # MIXED         NORMAL
                DCA             0                       # C(ESUBK)      C(E)
                DXCH            MPAC                    # C((E SUBK)+1)      C(E+1)
                TC              TPAGREE
                TC              DMP
                ADRES           SFTEMP1
                TC              OVFIND

DPOUTNOR        CA              NOUNADD                 # E
                TC              DPOUTCOM



# THIS IS A SPECIAL PURPOSE VERB FOR DISPLAYING A DOUBLE PRECISION AGC
# WORD AS 10 DECIMAL DIGITS ON THE AGC DISPLAY PANEL.  IT CAN BE USED WITH
# ANY NOUN, EXCEPT MIXED NOUNS. IT DISPLAYS THE CONTENTS
# OF THE REGISTER NOUNADD IS POINTING TO .  IF USED WITH NOUNS WHICH ARE
# INHERENTLY NOT DP SUCH AS THE CDU COUNTERS THE DISPLAY WILL BE GARBAGE.
# DISPLAY IS IN R1 AND R2 ONLY WITH THE SIGN IN R1.



DSPDPDEC        INDEX           MIXBR
                TC              +0
                TC              +2                      # NORMAL NOUN
                TC              DSPALARM

                EXTEND
                INDEX           NOUNADD
                DCA             0
                DXCH            MPAC
                CAF             R1D1
                TS              DSPCOUNT
                CAF             ZERO
                TS              MPAC            +2
                TC              TPAGREE
                TC              DSP2DEC
ENDDPDEC        TC              ENTEXIT

#          LOAD VERBS



                SETLOC          ENDRTOUT

ABCLOAD         CS              TWO
                TC              COMPTEST
                CAF             VBSP1LD
                TC              UPDATVB         -1
                TC              REQDATX
                CAF             VBSP2LD
                TC              UPDATVB         -1
                TC              REQDATY
                CAF             VBSP3LD
                TC              UPDATVB         -1
                TC              REQDATZ



PUTXYZ          CS              SIX                     # TEST THAT THE 3 DATA WORDS LOADED ARE
                TC              ALLDC/OC                # ALL DEC OR ALL OCT.
                EXTEND
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                CAF             ZERO                    # X COMP
                TC              PUTCOM
                INDEX           NOUNADD
                TS              0
                CAF             ONE                     # Y COMP
                TC              PUTCOM
                INDEX           NOUNADD
                TS              1
                CAF             TWO                     # Z COMP
                TC              PUTCOM
                INDEX           NOUNADD
                TS              2
                TC              LOADLV

ABLOAD          CS              ONE
                TC              COMPTEST
                CAF             VBSP1LD
                TC              UPDATVB         -1
                TC              REQDATX
                CAF             VBSP2LD
                TC              UPDATVB         -1
                TC              REQDATY
PUTXY           CS              FIVE                    # TEST THAT THE 2 DATA WORDS LOADED ARE
                TC              ALLDC/OC                # ALL DEC OR ALL OCT.
                EXTEND

                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                CAF             ZERO                    # X COMP
                TC              PUTCOM
                INDEX           NOUNADD
                TS              0
                CAF             ONE                     # Y COMP
                TC              PUTCOM
                INDEX           NOUNADD
                TS              1
                TC              LOADLV

ALOAD           TC              REQDATX
                EXTEND
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                CAF             ZERO                    # X COMP
                TC              PUTCOM
                INDEX           NOUNADD
                TS              0
                TC              LOADLV

BLOAD           CS              ONE
                TC              COMPTEST
                CAF             BIT15                   # SET CLPASS FOR PASS0 ONLY
                TS              CLPASS
                TC              REQDATY
                EXTEND
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                CAF             ONE
                TC              PUTCOM
                INDEX           NOUNADD
                TS              1
                TC              LOADLV

CLOAD           CS              TWO
                TC              COMPTEST
                CAF             BIT15                   # SET CLPASS FOR PASS0 ONLY
                TS              CLPASS
                TC              REQDATZ
                EXTEND
                DCA             LODNNLOC                # SWITCH BANKS TO NOUN TABLE READING
                DXCH            Z                       # ROUTINE.
                CAF             TWO
                TC              PUTCOM
                INDEX           NOUNADD
                TS              2
                TC              LOADLV

LOADLV          CAF             ZERO
                TS              DECBRNCH
                CS              ZERO
                TS              LOADSTAT
                CS              VD1                     # TO BLOCK NUMERICAL CHARACTERS AND
                TS              DSPCOUNT                # CLEARS AFTER A COMPLETED LOAD
                TC              POSTJUMP                # AFTER COMPLETED LOAD, GO TO RECALTST
                CADR            RECALTST                # TO SEE IF THERE IS RECALL FROM ENDIDLE.

VBSP1LD         OCT             21                      # VB21 = ALOAD
VBSP2LD         OCT             22                      # VB22 = BLOAD
VBSP3LD         OCT             23                      # VB23 = CLOAD



ALLDC/OC        TS              DECOUNT                 # TESTS THAT DATA WORDS LOADED ARE EITHER
                CS              DECBRNCH                # ALL DEC OR ALL OCT. ALARMS IF NOT.
                TS              SR
                CS              SR
                CS              SR                      # SHIFTED RIGHT 2
                CCS             A                       # DEC COMP BITS IN LOW 3
                TCF             +2                      # SOME ONES IN LOW 3
                TC              Q                       # ALL ZEROS. ALL OCTAL.  OK
                AD              DECOUNT                 # DEC COMP = 7 FOR 3COMP, =6 FOR 2COMP
                EXTEND                                  # (BUT IT HAS BEEN DECREMENTED BY CCS)
                BZF             +2                      # MUST MATCH 6 FOR 3COMP, 5 FOR 2COMP.
                TC              GODSPALM
GOQ             TC              Q                       # ALL REQUIRED ARE DEC. OK



SFRUTNOR        XCH             Q                       # GETS SF ROUTINE NUMBER FOR NORMAL CASE
                TS              EXITEM                  # CANT USE L FOR RETURN. TSTFORDP USES L.
                CAF             MID5
                MASK            NNTYPTEM
                TC              RIGHT5
                TC              EXITEM                  # SF ROUTINE NUMBER IN A

SFRUTMIX        XCH             Q                       # GETS SF ROUTINE NUMBER FOR MIXED CASE
                TS              EXITEM
                INDEX           DECOUNT
                CAF             DISPLACE                # PUT TC GOQ, TC RIGHT5, OR TC LEFT5 IN L
                TS              L
                INDEX           DECOUNT
                CAF             LOW5                    # LOW5, MID5, OR HI5 IN A
                MASK            RUTMXTEM                # GET HI5, MID5, OR LOW5 OF RUTMXTAB ENTRY
                INDEX           L
                TC              0
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
SFRET1          TC              EXITEM                  # SF ROUTINE NUMBER IN A

SFCONUM         XCH             Q                       # GETS 2X( SF CONSTANT NUMBER)
                TS              EXITEM
                INDEX           MIXBR
                TC              +0
                TC              CONUMNOR                # NORMAL NOUN
                INDEX           DECOUNT                 # MIXED NOUN
                CAF             DISPLACE
                TS              L                       # PUT TC GOQ, TC RIGHT5, OR TC LEFT5 IN L
                INDEX           DECOUNT
                CAF             LOW5
                MASK            NNTYPTEM
                INDEX           L
                TC              0
# DO TC GOQ(DECOUNT=0), DO TC RIGHT5(DECOUNT=1), DO TC LEFT5(DECOUNT=2).
SFRET           DOUBLE                                  # 2X(SF CONSTANT NUMBER ) IN A
                TC              EXITEM

DISPLACE        TC              GOQ
                TC              RIGHT5
                TC              LEFT5

CONUMNOR        CAF             LOW5                    # NORMAL NOUN ALWAYS GETS LOW 5 OF
                MASK            NNTYPTEM                # NNTYPTAB FOR SF CONUM.
                DOUBLE
                TC              EXITEM                  # 2X( SF CONSTANT NUMBER) IN A



PUTCOM          TS              DECOUNT
                XCH             Q
                TS              DECRET
                CAF             ZERO
                TS              OVFIND
                INDEX           DECOUNT
                XCH             XREGLP
                TS              MPAC            +1
                INDEX           DECOUNT
                XCH             XREG
                TS              MPAC
                INDEX           MIXBR
                TC              +0
                TC              PUTNORM                 # NORMAL NOUN
# IF MIXNOUN, PLACE ADDRESS FOR COMPONENT K INTO NOUNADD, SET EBANK BITS.
                INDEX           DECOUNT                 # GET IDADDTAB ENTRY FOR COMPONENT K
                CA              IDAD1TEM                #         OF NOUN.
                MASK            LOW11                   # (ECADR)SUBK FOR CURRENT COMP OF NOUN
                TC              SETNCADR                # ECADR INTO NOUNCADR. SETS EB, NOUNADD.
                EXTEND                                  # C(NOUNADD) IN A UPON RETURN
                SU              DECOUNT                 # PLACE (ESUBK)-K INTO NOUNADD
                TS              NOUNADD

                CCS             DECBRNCH
                TC              PUTDECSF                # +  DEC
                TC              SFRUTMIX                # +0  OCTAL
                TC              DPTEST
                TC              PUTCOM2                 # NO DP
                                                        # TEST FOR DP SCALE FOR OCT LOAD. IF SO,
                                                        # +0 INTO MAJOR PART. SET NOUNADD FOR
                                                        # LOADING OCTAL WORD INTO MINOR PART.
PUTDPCOM        INCR            NOUNADD                 # DP  (ESUBK)-K+1  OR  E+1
                CA              NOUNADD                 # NOUNADD NOW SET FOR MINOR PART
                ADS             DECOUNT                 # (ESUBK)+1  OR  E+1  INTO DECOUNT
                CAF             ZERO                    # NOUNADD SET FOR MINOR PART
                INDEX           DECOUNT
                TS              0               -1      # ZERO MAJOR PART(ESUBK OR E)
                TC              PUTCOM2

PUTNORM         TC              SETNADD                 # ECADR FROM NOUNCADR. SETS EB, NOUNADD.
                CCS             DECBRNCH
                TC              PUTDECSF                # +  DEC
                TC              SFRUTNOR                # +0  OCTAL
                TC              DPTEST
                TC              PUTCOM2         -4      # NO DP
                CAF             ZERO                    # DP
                TS              DECOUNT
                TC              PUTDPCOM

                CA              NNADTEM
                AD              ONE                     # IF NNADTEM = -1, CHANNEL TO BE SPECIFIED
                EXTEND
                BZF             CHANLOAD
PUTCOM2         XCH             MPAC
                TC              DECRET

                EBANK=          DSPCOUNT
GTSFINLC        2CADR           GTSFIN

CHANLOAD        XCH             MPAC
                EXTEND
                INDEX           NOUNCADR
                WRITE           0
                TC              LOADLV



# PUTDECSF FINDS MIXBR AND DECOUNT STILL SET FROM PUTCOM

PUTDECSF        TC              SFCONUM                 # 2X(SF CON NUMB) IN A
                TS              SFTEMP1

                EXTEND                                  # SWITCH BANKS TO SF CONSTANT TABLE
                DCA             GTSFINLC                # READING ROUTINE.
                DXCH            Z                       # LOADS SFTEMP1, SFTEMP2.
                INDEX           MIXBR
                TC              +0
                TC              PUTSFNOR
                TC              SFRUTMIX
                TC              PUTDCSF2
PUTSFNOR        TC              SFRUTNOR

PUTDCSF2        INDEX           A
                CAF             SFINTABR
                TC              BANKJUMP                # SWITCH BANKS FOR EXPANSHION ROOM
SFINTABR        CADR            DSPALARM                # ALARM IF DEC LOAD WITH OCTAL ONLY NOUN

                CADR            BINROUND
                CADR            DEGINSF
                CADR            ARTHINSF
                CADR            DPINSF
                CADR            DPINSF2
                CADR            OPTDEGIN
                CADR            DPINSF                  # SAME AS ARITHDP1
ENDRUTIN        EQUALS



# SCALE FACTORS FOR THOSE ROUTINES NEEDING THEM ARE AVAILABLE IN SFTEMP1.
# ALL SFIN ROUTINES USE MPAC MPAC+1. LEAVE RESULT IN A. END WITH TC DECRET



                SETLOC          ENDDPDEC +1

# DEGINSF APPLIES 1000/180 = 5.55555(10) = 5.43434(8)

DEGINSF         TC              DMP                     # SF ROUTINE FOR DEC DEGREES
                ADRES           DEGCON1                 # MULT BY 5.5 5(10)X2EXP-3
                CCS             MPAC            +1      # THIS ROUNDS OFF MPAC+1 BEFORE SHIFT
                CAF             BIT11                   # LEFT 3, AND CAUSES 360.00 TO OF/UF
                TC              +2                      # WHEN SHIFTED LEFT AND ALARM.
                CS              BIT11
                AD              MPAC            +1
                TC              2ROUND          +2
                TC              TPSL1                   # LEFT 1
DEGINSF2        TC              TPSL1                   # LEFT 2
                TC              TESTOFUF
                TC              TPSL1                   # RETURNS IF NO OF/UF (LEFT3)
                CCS             MPAC
                TC              SIGNFIX                 # IF +, GO TO SIGNFIX
                TC              SIGNFIX                 # IF +0, GO TO SIGNFIX
                COM                                     # IF -, USE -MAGNITUDE +1

                TS              MPAC                    # IF -0, USE +0
SIGNFIX         CCS             OVFIND
                TC              SGNTO1                  # IF OVERFLOW
                TC              ENDSCALE                # NO OVERFLOW/UNDERFLOW
                CCS             MPAC                    # IF UF FORCE SIGN TO 0 EXCEPT -180
                TC              CCSHOLE
                TC              NEG180
                TC              +1
                XCH             MPAC
                MASK            POSMAX
                TS              MPAC
ENDSCALE        TC              POSTJUMP
                CADR            PUTCOM2

NEG180          CS              POSMAX
                TC              ENDSCALE        -1

SGNTO1          CS              MPAC                    # IF OF FORCE SIGN TO 1
                MASK            POSMAX
                CS              A
                TC              ENDSCALE        -1

DEGCON1         2DEC            5.555555555 B-3

DEGCON2         2DEC            2.222222222 B-2

NEG.2           OCT             -06250                  # = .197753906  I.E. THE BIAS SCALED

ARTHINSF        TC              DMP                     # SCALES MPAC, +1 BY SFTEMP1, SFTEMP2.
                ADRES           SFTEMP1                 # ASSUMES POINT BETWEEN HI AND LO PARTS
                XCH             MPAC            +2      # OF SFCON. SHIFTS RESULTS LEFT BY 14.
                XCH             MPAC            +1      # (BY TAKING RESULTS FROM MPAC+1, MPAC+2)
                XCH             MPAC
                EXTEND
                BZF             BINROUND
                TC              DSPALARM                # TOO LARGE A LOAD
BINROUND        TC              2ROUND
                TC              TESTOFUF
                TC              ENDSCALE                # RETURNS IF NO OF/UF



OPTDEGIN        CCS             MPAC                    # OPTICS SCALING ROUTINE
                TC              +4
                TC              +3
                TC              DSPALARM                # REJECT NEGATIVE INPUT
                TC              DSPALARM                #         DITTO
OPDEGIN2        CAF             NEG.2                   # RANGE IS 90 DEG
                ADS             MPAC                    # SUBTRACT BIAS
                TC              DMP                     # MULT BY 100 / 45  B-2

                ADRES           DEGCON2
                CAF             BIT12                   # ROUND AS IN DEGINSF
                AD              MPAC            +1
                TC              2ROUND          +2
                TC              DEGINSF2

DPINSF          TC              DMP                     # SCALES MPAC, MPAC +1 BY SFTEMP1,
                ADRES           SFTEMP1                 # SFTEMP2.  STORES LOW PART OF RESULT
                XCH             MPAC            +2      # IN (E SUBK) +1 OR E+1
                DOUBLE
                TS              MPAC            +2
                CAF             ZERO
                AD              MPAC            +1
                TC              2ROUND          +2
                TC              TESTOFUF
                INDEX           MIXBR                   # RETURNS IF NO OF/UF
                TC              +0
                TC              DPINORM
                CA              DECOUNT                 # MIXEDNOUN
DPINCOM         AD              NOUNADD                 #     MIXED                NORMAL
                TS              Q                       #   E SUBK             E
                XCH             MPAC            +1
                INDEX           Q
                TS              1                       # PLACE LOW PART IN
                TC              ENDSCALE                # (E SUBK) +1    MIXED
DPINORM         CAF             ZERO                    # E +1         NORMAL
                TC              DPINCOM



DPINSF2         TC              DMP                     # ASSUMES POINT BETWEEN BITS 7-8 OF HIGH
                ADRES           SFTEMP1                 # PART OF SF CONST. DPINSF2 SHIFTS RESULTS
                TC              TPLEFT7                 # LEFT BY 7, ROUNDS MPAC+2 INTO MPAC+1.
                TC              DPINSF          +2



TPLEFT7         XCH             Q                       # OPERATES ON MPAC, MPAC+1, MPAC+2
                TS              SFTEMP2                 # CANT USE L FOR RETURN. TPSL1 USES L.
                CAF             SIX                     # LEFT BY 7
LEFT7COM        TS              SFTEMP1
                TC              TPSL1
                CCS             SFTEMP1
                TC              LEFT7COM
                TC              SFTEMP2

2ROUND          XCH             MPAC            +1
                DOUBLE

                TS              MPAC            +1
                TC              Q                       # IF MPAC+1 DOES NOT OF/UF
                AD              MPAC
                TS              MPAC
                TC              Q                       # IF MPAC DOES NOT OF/UF
                TS              OVFIND
2RNDEND         TC              Q



TESTOFUF        CCS             OVFIND                  # RETURNS IF NO OF/UF
                TC              DSPALARM                # OF
                TC              Q
                TC              DSPALARM                # UF

# MONITOR ALLOWS OTHER KEYBOARD ACTIVITY. IT IS ENDED BY VERB TERMINATE,
# ANY NVSUB CALL THAT PASSES THE DSPLOCK, OR ANOTHER MONITOR.

# MONITOR ACTION IS SUSPENDED, BUT NOT ENDED, BY ANY KEYBOARD ACTION,
# EXCEPT ERROR LIGHT RESET. IT BEGINS AGAIN WHEN KEY RELEASE IS PERFORMED.
# MONITOR SAVES THE NOUN AND APPROPRIATE DISPLAY VERB IN MONSAVE. IT SAVES
# NOUNCADR IN MONSAVE1, IF NOUN = MACHINE CADR TO BE SPECIFIED. BIT 15 OF
# MONSAVE1 IS THE KILL MONITOR SIGNAL (KILLER BIT).

# MONSAVE INDICATES IF MONITOR IS ON (+=ON, +0=OFF)
# IF MONSAVE IS +, MONITOR ENTERS NO REQUEST, BUT TURNS KILLER BIT OFF.
# IF MONSAVE IS +0, MONITOR ENTERS REQUEST AND TURNS KILLER BIT OFF.

# NVSUB  AND VB=TERMINATE TURN KILL MONITOR BIT ON.

# IF KILLER BIT IS ON, MONREQ ENTERS NO FURTHER REQUESTS, ZEROS MONSAVE
# AND MONSAVE1 (TURNING OFF KILLER BIT).

# MONITOR DOSENT TEST FOR MATBS SINCE NVSUB CAN HANDLE INTERNAL MATBS NOW
                SETLOC          ENDRUTIN

MONITOR         CS              BIT15
                MASK            NOUNCADR
MONIT1          TS              MPAC            +1      # TEMP STORAGE
                CAF             LOW6
                MASK            VERBREG
                TC              LEFT5
                TS              CYL
                XCH             CYL
                AD              NOUNREG
                TS              MPAC                    # TEMP STORAGE
                CS              GRABLOCK                # NEITHER CASE SEARCHES LIST.
                AD              TWO
                CCS             A
                TC              RELDSP1                 # GRABLOCK=0,1, +0 INTO DSPLOCK AND
                TC              +4                      # TURN OFF KEY RLSE LIGHT.
                TC              CCSHOLE
                CAF             ZERO                    # GRABLOCK=2, +0 INTO DSPLOCK AND
                TS              DSPLOCK                 # LEAVE KEY RLSE LIGHT ALONE
                INHINT
                CCS             MONSAVE
                TC              +5                      # IF MONSAVE WAS +, NO REQUEST
                CAF             ONE                     # IF MONSAVE WAS 0, REQUEST MONREQ
                TC              WAITLIST
                EBANK=          DSPCOUNT
                2CADR           MONREQ

                DXCH            MPAC                    # PLACE MONITOR VERB AND NOUN INTO MONSAVE

                DXCH            MONSAVE                 # ZERO THE KILL MONITOR BIT
                RELINT
                TC              ENTRET



MONREQ          TC              LODSAMPT                # CALLED BY WAITLIST
                CCS             MONSAVE1                # TIME IS SNATCHED IN RUPT FOR NOUN 65
                TC              +4                      # IF KILLER BIT = 0, ENTER REQUESTS
                TC              +3                      # IF KILLER BIT = 0, ENTER REQUESTS
                TC              KILLMON                 # IF KILLER BIT = 1, NO REQUESTS
                TC              KILLMON                 # IF KILLER BIT = 1, NO REQUESTS
                CAF             MONDEL
                TC              WAITLIST                # ENTER WAITLIST REQUEST FOR MONREQ
                EBANK=          DSPCOUNT
                2CADR           MONREQ
                CAF             CHRPRIO
                TC              NOVAC                   # ENTER EXEC REQUEST FOR MONDO
                EBANK=          DSPCOUNT
                2CADR           MONDO

                TC              TASKOVER

KILLMON         CAF             ZERO                    # ZERO MONSAVE AND TURN KILLER BIT OFF
                TS              MONSAVE
                TS              MONSAVE1                # TURN OFF KILL MONITOR BIT.
                TC              TASKOVER



MONDEL          OCT             144                     # FOR 1 SEC MONITOR INTERVALS



MONDO           CCS             MONSAVE1                # CALLED BY EXEC
                TC              +4                      # IF KILLER BIT = 0, CONTINUE
                TC              +3                      # IF KILLER BIT = 0, CONTINUE
                TC              ENDOFJOB                # IN CASE TERMINATE CAME SINCE LAST MONREQ
                TC              ENDOFJOB                # IN CASE TERMINATE CAME SINCE LAST MONREQ
                CCS             DSPLOCK
                TC              MONBUSY                 # NVSUB IS BUSY
                CAF             LOW6                    # NVSUB IS AVAILABLE
                MASK            MONSAVE
                TS              NVTEMP
                TC              NVSUBMON                # PLACE NOUN INTO NOUNREG AND DISPLAY IT
                TC              ENDOFJOB                # IN CASE OF ALARM DURING DISPLAY
                CAF             MONMASK
                MASK            MONSAVE                 # CHANGE MONITOR VERB TO DISPLAY VERB
                TC              RIGHT5

                TS              CYR
                XCH             CYR
                TS              VERBREG
                CAF             MONBACK                 # SET RETURN TO PASTEVB AFTER DATA DISPLAY
                TS              ENTRET
                CS              BIT15
                MASK            MONSAVE1                # PUT ECADR INTO MPAC +2.  INTMCTBS WILL
                TS              MPAC            +2      # DISPLAY IT AND SET NOUNCADR, NOUNADD,
ENDMONDO        TC              TESTNN                  # EBANK.

                SETLOC          ENDRMODF

PASTEVB         CAF             MIDSIX
                MASK            MONSAVE
                TS              NVTEMP                  # PLACE MONITOR VERB INTO VERBREG AND
                TC              NVSUBMON                #      DISPLAY IT.
                TC              +1                      # IN CASE OF ALARM DURING DISPLAY
ENDPASTE        TC              ENDOFJOB

MIDSIX          OCT             07700



                SETLOC          ENDMONDO        +1
MONMASK         OCT             700
MONBACK         ADRES           PASTEVB

MONBUSY         TC              RELDSPON                # TURN KEY RELEASE LIGHT
                TC              ENDOFJOB



# DSPFMEM IS USED TO DISPLAY (IN OCTAL) ANY FIXED REGISTER.
# IT IS USED WITH NOUN = MACHINE CADR TO BE SPECIFIED. THE FCADR OF THE
# DESIRED LOCATION IS THEN PUNCHED IN. IT HANDLES F/F ( FCADR 4000-7777)

DSPFMEM         CAF             R1D1                    # IF F/F, DATACALL USES BANK 02 OR 03.
                TS              DSPCOUNT
                CA              NOUNCADR                # ORIGINAL FCADR LOADED STILL IN NOUNCADR.
                TC              DATACALL
                TC              DSPOCTWD
ENDSPF          TC              ENDOFJOB

#  DSPDECWD CONVERTS C(MPAC) AND C(MPAC+1) TO A SIGN AND 5 CHAR DECIMAL
# STARTING IN LOC SPECIFIED IN DSPCOUNT

                SETLOC          TESTOFUF        +4
DSPDECWD        XCH             Q                       # USES SHORTMP THROUGHOUT
                TS              WDRET                   # CANT USE L FOR RETURN.+ON USES L.
                CCS             MPAC
                TC              +7
                TC              +6
                AD              ONE
                TS              MPAC
                TC              -ON
                CS              MPAC            +1
                TC              +3
                TC              +ON
                XCH             MPAC            +1
                AD              DECROUND
                TS              MPAC            +1
                CAF             ZERO
                AD              MPAC
                TS              MPAC
                TC              +4
                CAF             POSMAX
                TS              MPAC
                TS              MPAC            +1
                CAF             FOUR
DSPDCWD1        TS              WDCNT
                CAF             BINCON
                TC              SHORTMP
TRACE1          INDEX           MPAC
                CAF             RELTAB
                MASK            LOW5
                TS              CODE
                CAF             ZERO
                XCH             MPAC            +2
                XCH             MPAC            +1
                TS              MPAC
                XCH             DSPCOUNT
TRACE1S         TS              COUNT
                CCS             A                       # DECREMENT DSPCOUNT EXCEPT AT +0
                TS              DSPCOUNT
                TC              DSPIN
                CCS             WDCNT
                TC              DSPDCWD1
                CS              VD1
                TS              DSPCOUNT
                TC              WDRET

DECROUND        OCT             02476

# DSP2DEC CONVERTS C(MPAC) AND C(MPAC+1) INTO A SIGN AND 10 CHAR DECIMAL
# STARTING IN THE LOC SPECIFIED IN DSPCOUNT.

DSP2DEC         XCH             Q                       # MUST USE SAME RETURN AS DSPDECWD
                TS              WDRET
                CAF             ZERO
                TS              CODE
                CAF             THREE
                TC              11DSPIN                 # -R2 OFF
                CAF             FOUR
                TC              11DSPIN                 # +R2 OFF
                CCS             MPAC
                TC              +8D
                TC              +7
                AD              ONE
                TS              MPAC
                TC              -ON
                CS              MPAC            +1
                TS              MPAC            +1
                TC              +2
                TC              +ON
                CAF             R2D1
END2DEC         TC              DSPDCWD1



                SETLOC          DSPFMEM         +6
# DSPOCTWD DISPLAYS C(A) UPON ENTRY AS A 5 CHAR OCT STARTING IN THE DSP
# CHAR SPECIFIED IN DSPCOUNT. IT STOPS AFTER 5 CHAR HAVE BEEN DISPLAYED.

DSPOCTWD        TS              CYL
                XCH             Q
                TS              WDRET                   # MUST USE SAME RETURN AS DSP2BIT.
                CAF             BIT14                   # TO BLANK SIGNS
                ADS             DSPCOUNT
                CAF             FOUR
WDAGAIN         TS              WDCNT
                CS              CYL
                CS              CYL
                CS              CYL
                CS              A
                MASK            DSPMSK
                INDEX           A
                CAF             RELTAB
                MASK            LOW5
                TS              CODE
                XCH             DSPCOUNT
                TS              COUNT
                CCS             A                       # DECREMENT DSPCOUNT EXCEPT AT +0
                TS              DSPCOUNT

                TC              POSTJUMP
                CADR            DSPOCTIN
OCTBACK         CCS             WDCNT
                TC              WDAGAIN                 # +
DSPLV           CS              VD1                     # TO BLOCK NUMERICAL CHARACTERS, CLEARS,
                TS              DSPCOUNT                # AND SIGNS AFTER A COMPLETED DISPLAY.
                TC              WDRET

DSPMSK          =               SEVEN



# DSP2BIT DISPLAYS C(A) UPON ENTRY AS A 2 CHAR OCT BEGINNING IN THE DSP
# LOC SPECIFIED IN DSPCOUNT BY PRE CYCLING RIGHT C(A) AND USING THE LOGIC
# OF THE 5 CHAR OCTAL DISPLAY

DSP2BIT         TS              CYR
                XCH             Q
                TS              WDRET                   # CANT USE L AS RETURN. UPDATIN USES L.
                CAF             ONE
                TS              WDCNT
                CS              CYR
                CS              CYR
                XCH             CYR
                TS              CYL
                TC              WDAGAIN         +5



# FOR DSPIN PLACE 0/25 OCT INTO COUNT, 5 BIT RELAY CODE INTO CODE. BOTH
# ARE DESTROYED. IF BIT14 OF COUNT IS 1, SIGN IS BLANKED WITH LEFT CHAR.
# FOR DSPIN1 PLACE 0,1 INTO BIT11 OF CODE, 2 INTO COUNT, REL ADDRESS OF
# DSPTAB ENTRY INTO DSREL.

                SETLOC          END2DEC         +1

DSPIN           XCH             Q                       # CANT USE L FOR RETURN, SINCE MANY OF THE
                TS              DSEXIT                  # ROUTINES CALLING DSPIN USE L AS RETURN.
                CAF             LOW5
                MASK            COUNT
                TS              SR
                XCH             SR
                TS              DSREL
                CAF             BIT1
                MASK            COUNT
                CCS             A
                TC              +2                      # LEFT IF COUNT IS ODD
                TC              DSPIN1          -1      # RIGHT IF COUNT IS EVEN
                XCH             CODE
                TC              SLEFT5                  # DOES NOT USE CYL

                TS              CODE
                CAF             BIT14
                MASK            COUNT
                CCS             A
                CAF             TWO                     # BIT14 = 1, BLANK SIGN
                AD              ONE                     # BIT14 = 0, LEAVE SIGN ALONE
                TS              COUNT                   # +0 INTO COUNT FOR RIGHT
                                                        # +1 INTO COUNT FOR LEFT (SIGN LEFT ALONE)
                                                        # +3 INTO COUNT FOR LEFT (TO BLANK SIGN)
DSPIN1          INHINT
                INDEX           DSREL
                CCS             DSPTAB
                TC              +2                      # IF +
                TC              CCSHOLE
                AD              ONE                     # IF -
                TS              DSMAG
                INDEX           COUNT
                MASK            DSMSK
                EXTEND
                SU              CODE
                EXTEND
                BZF             DSLV                    # SAME
DFRNT           INDEX           COUNT
                CS              DSMSK                   # MASK WITH 77740,76037, OR 75777
                MASK            DSMAG
                AD              CODE
                CS              A
                INDEX           DSREL
                XCH             DSPTAB
                EXTEND
                BZMF            DSLV                    # DSPTAB ENTRY WAS -
                INCR            NOUT                    # DSPTAB ENTRY WAS +
DSLV            RELINT
                TC              DSEXIT

DSMSK           OCT             37
                OCT             1740
                OCT             2000
                OCT             3740



# FOR 11DSPIN, PUT REL ADDRESSS OF DSPTAB ENTRY INTO A, 1 IN BIT11 OR 0 IN
# BIT11 OF CODE.

11DSPIN         TS              DSREL
                CAF             TWO
                TS              COUNT
                XCH             Q                       # MUST USE SAME RETURN AS DSPIN
                TS              DSEXIT

                TC      DSPIN1



DSPOCTIN        TC              DSPIN                   # SO DSPOCTWD DOESNT USE SWCALL
                CAF             +2
                TC              BANKJUMP
ENDSPOCT        CADR            OCTBACK



# DSPALARM FINDS TC NVSUBEND IN ENTRET FOR NVSUB INITIATED ROUTINES.
# ABORT WITH 01501.
# DSPALARM FINDS TC ENDOFJOB IN ENTRET FOR KEYBOARD INITIATED ROUTINES.
# DO TC ENTRET.

CHARALRM        CAF             ENDINST                 # ALARMS WHICH MUST DO ENDOFJOBS COME
                TS              ENTRET                  # HERE. ALLOWS ENTRET TO BE TEMP ERASABLE

DSPALARM        TC              FALTON                  # TURN ON OPERATOR ERROR LIGHT
                CS              NVSBENDL
                AD              ENTEXIT
                EXTEND
                BZF             +2                      # NVSUB INITIATED. ABORT
                TC              ENTEXIT                 # NOT NVSUB INITIATED.
                TC              ABORT
                OCT             01501
NVSBENDL        TC              NVSUBEND



# MMCHANG USES NOUN DISPLAY UNTIL ENTER. THEN IT USES MODE DISP.
# IT GOES TO MODROUT WITH THE NEW M M CODE IN A, BUT NOT DISPLAYED IN
# M M LIGHTS.

                SETLOC          DSP2BIT         +10D

MMCHANG         TC              REQMM
                CAF             ZERO
                XCH             NOUNREG
                TS              MPAC
                CAF             ND1
                TS              DSPCOUNT
                TC              BANKCALL
                CADR            2BLANK
                CA              MPAC
                TC              POSTJUMP
                CADR            MODROUTB                # GO THRU STANDARD LOC.

MODROUTB        =               DSPALARM		# **FIX LATER**
REQMM           CS              Q
                TS              REQRET
                CAF             ND1
                TS              DSPCOUNT
                CAF             ZERO
                TS              NOUNREG
                TC              BANKCALL
                CADR            2BLANK
                TC              FLASHON
                TC              ENTEXIT



# VBRQEXEC ENTERS REQUEST TO EXEC     FOR ANY ADDRESS WITH ANY PRIORITY.
# IT DOES ENDOFJOB AFTER ENTERING REQUEST. DISPLAY SYST IS RELEASED.
# IT ASSUMES NOUN 26 HAS BEEN PRELOADED WITH
# COMPONENT 1  PRIORITY(BITS 10-14) BIT1=0 FOR NOVAC, BIT1=1 FOR FINDVAC.
# COMPONENT 2  JOB ADRES (12 BIT )
# COMPONENT 3  BBCON

VBRQEXEC        CAF             BIT1
                MASK            DSPTEM1
                CCS             A
                TC              SETVAC                  # IF BIT1 = 1, FINDVAC
                CAF             TCNOVAC                 # IF BIT1 = 0, NOVAC
REQEX1          TS              MPAC                    # TC NOVAC OR TC FINDVAC INTO MPAC
                CS              BIT1
                MASK            DSPTEM1
                TS              MPAC            +4      # PRIO INTO MPAC+4 AS A TEMP
REQUESTC        TC              RELDSP
                CA              ENDINST
                TS              MPAC            +3      # TC ENDOFJOB INTO MPAC+3
                EXTEND
                DCA             DSPTEM1         +1      # JOB ADRES INTO MPAC+1
                DXCH            MPAC            +1      # BBCON INTO MPAC+2
                CA              MPAC            +4      # PRIO IN A
                INHINT
                TC              MPAC

SETVAC          CAF             TCFINDVC
                TC              REQEX1

# VBRQWAIT ENTERS REQUEST TO WAITLIST FOR ANY ADDRESS WITH ANY DELAY.
# IT DOES ENDOFJOB AFTER ENTERING REQUEST.DISPLAY SYST IS RELEASED.
# IT ASSUMES NOUN 26 HAS BEEN PRELOADED WITH
# COMPONENT 1  DELAY (LOW BITS)
# COMPONENT 2  TASK ADRES (12 BIT)
# COMPONENT 3  BBCON

VBRQWAIT        CAF             TCWAIT
                TS              MPAC                    # TC WAITLIST INTO MPAC
                CA              DSPTEM1                 # TIME DELAY
ENDRQWT         TC              REQUESTC        -1

# REQUESTC WILL PUT TASK ADRES INTO MPAC+1, BBCON INTO MPAC+2,
# TC ENDOFJOB INTO MPAC+3. IT WILL TAKE TIME DELAY OUT OF MPAC+4 AND
# LEAVE IT IN A, INHINT AND TC MPAC.



                SETLOC          NVSBENDL        +1
VBPROC          CAF             ONE                     # PROCEED WITHOUT DATA
                TS              LOADSTAT
                TC              RELDSP
                TC              FLASHOFF
                TC              RECALTST                # SEE IF THERE IS ANY RECALL FROM ENDIDLE



VBTERM          TC              KILMONON                # TURN ON KILL MONITOR BIT
                CS              ONE
                TC              VBPROC          +1      # TERM VERB SETS LOADSTAT NEG

# PROCKEY PERFORMS THE SAME FUNCTION AS VBPROC. IT MUST BE CALLED UNDER
# EXECUTIVE CONTROL, WITH CHRPRIO.

PROCKEY		CAF	ZERO		# SET REQRET FOR ENTER PASS 0.
		TS	REQRET
		CS	VD1		# BLOCK NUMERICAL CHARACTERS, SIGNS, CLEAR
		TS	DSPCOUNT
		TC	VBPROC



# FLASH IS TURNED OFF ONLY BY PROCEED WITHOUT DATA, TERMINATE, END OF LOAD



# VBRELDSP TURNS OFF RELEASE DISPLAY SYSTEM LIGHT(AND SEARCHES LIST ONLY
# IF THIS LIGHT WAS TURNED ON BY NVSUBUSY), AND TURNS OFF UPACT LIGHT.

VBRELDSP        CS              BIT3
                EXTEND
                WAND            DSALMOUT                # TURN OFF UPACT LIGHT
                TC              RELDSP                  # SEARCHES LIST
                TC              ENDOFJOB



# BUMP SHIFTS WORD DISPLAYED IN R2 TO R3, R1 TO R2. IT BLANKS R1.

BUMP            CAF             FIVE                    # R2D5
                TS              DSPCOUNT
                TS              COUNT
                CAF             ONE                     # SHIFT DATA OF R2 TO R3, R1 TO R2
                MASK            COUNT
                XCH             COUNT                   # +0 INTO COUNT IF EVEN (RIGHT)
                TS              SR                      # +1 INTO COUNT IF ODD (LEFT)

                XCH             SR                      # DSREL IN A
                INDEX           A
                CCS             DSPTAB
                TC              +2
                TC              CCSHOLE
                AD              ONE                     # DSMAG IN A
                INDEX           COUNT
                MASK            DSMSK
                INDEX           COUNT
                TC              +1
                TC              +2                      # EVEN(RIGHT)  OK
                TC              RIGHT5                  # ODD(LEFT)  SHIFT RIGHT
                TS              CODE
                CS              FIVE
                AD              DSPCOUNT                # DSPCOUNT-5
                CCS             A                       # TO PREVENT -0
                AD              ONE
                TC              +2
                TC              CCSHOLE
                TS              COUNT
                TC              DSPIN                   # CODE ALREADY IN CODE
                CS              DSPCOUNT
                AD              R1D1                    # OCT 16
                CCS             A
                XCH             DSPCOUNT                # +, DSPCOUNT L/ OCT 16
                AD              ONE                     # INCREMENT DSPCOUNT
                TC              BUMP            +1

SWSGN           CAF             ZERO                    # -0, DSPCOUNT= OCT 16. DO SIGN SHIFT
                TS              DSPCOUNT
                AD              SWTAB           +2      # OCT 3
                INDEX           A                       # PICKUP ORDER , DSREL=3,4,5,6.
                CCS             DSPTAB                  #                  (-R2,+R2,-R1,+R1)
                TC              +2
                TC              CCSHOLE
                AD              ONE
                MASK            BIT11
                TS              CODE
                INDEX           DSPCOUNT
                CAF             SWTAB                   # PUT AWAY ORDER, DSREL= 0,1,3,4.
                TC              11DSPIN                 #                  (-R3,+R3,-R2,+R2.)
                CS              DSPCOUNT
                AD              SWTAB           +2      # OCT 3
                CCS             A
                XCH             DSPCOUNT                # +, DSPCOUNT L/ 3
                AD              ONE                     # INCREMENT DSPCOUNT
                TC              SWSGN           +1
                CAF             R1D1                    # -0,       DSPCOUNT = 3
                TS              DSPCOUNT
                TC              5BLANK                  # BLANKS R1

                TC              ENTEXIT

SWTAB           OCT             0                       # -R3
                OCT             1                       # +R3
                OCT             3                       # -R2
                OCT             4                       # +R2

# NVSUB IS USED FOR SUBROUTINE CALLS FROM WITHIN COMPUTER. IT CAN BE
# USED TO DO ANY THING THE KEYBOARD CAN CALL. PLACE ...VVVVVVNNNNNN
# INTO A.      V-S ARE 6BIT VERB CODE. N-S , 6 BIT NOUN CODE.

# NVSUB CAN BE USED WITH MACH CADR TO BE SPEC BY PLACING THE CADR INTO
# MPAC+2 BEFORE THE STANDARD NVSUB CALL.

#  NVSUB RETURNS TO 2+ CALLING LOC AFTER PERFORMING TASK, IF DISPLAY
# SYSTEM IS AVAILABLE. THE NEW NOUN AND VERB CODES ARE DISPLAYED.
# IF V:S =0, THE NEW NOUN CODE IS DISPLAYED ONLY(RETURN WITH NO FURTHER
# ACTION). IF N-S =0, THE NEW VERB CODE IS DISPLAYED ONLY(RETURN WITH NO
# FURTHER ACTION).

# IT RETURNS TO 1+ CALLING LOC WITHOUT PERFORMING TASK, IF DISPLAY
# SYSTEM IS BLOCKED (NOTHING IS DISPLAYED IN THIS CASE).
# IT DOES TC ABORT (WITH OCT 01501) IF IT ENCOUNTERS A DISPLAY PROGRAM
# ALARM CONDITION BEFORE RETURN TO CALLER.

# THE DISPLAY SYSTEM IS BLOCKED BY THE DEPRESSION OF ANY
# KEY, EXCEPT ERROR LIGHT RESET. ALSO BY ENDIDLE.
#      IT IS RELEASED BY SPECIAL VERB = RELEASE DISPLAY, ALL GO TO VERBS.
# PROCEED WITHOUT DATA, TERMINATE, INITIALIZE EXECUTIVE,
# RECALL PART OF RECALTST IF ENDIDLE WAS USED,
# IN RECALTST IF NVSUB INITIATED LOAD AND ENDIDLE WAS NOT USED,
# VB = REQUEST EXECUTIVE, VB = REQUEST WAITLIST,
# MONITOR SET UP.

# A NVSUB CALL THAT PASSES DSPLOCK ENDS OLD MONITOR.

# DSPLOCK IS THE INTERLOCK FOR USE OF KEYBOARD AND DISPLAY SYSTEM WHICH
# LOCKS OUT INTERNAL USE WHENEVER THERE IS EXTERNAL KEYBOARD ACTION.

# NVSUB IN FIXED-FIXED PLACES 2+CALLING LOC INTO NVQTEM, TC NVSUBEND INTO
# ENTRET. (THIS WILL RESTORE OLD CALLING BANK BITS)

                SETLOC          MIDSIX          +1
NVSUB           TS              NVTEMP                  # IN FIXED FIXED
                CCS             DSPLOCK
                TC              Q                       # DSP SYST BLOCKED. RET TO 1+ CALLING LOC
                CA              Q                       # DSP SYST AVAILABLE
                AD              ONE
                TS              NVQTEM                  # 2+ CALLING LOC INTO NVQTEM
                TC              KILMONON                # TURN ON KILL MONITOR BIT
NVSUBCOM        CAF             NVSBBBNK

                XCH             BBANK
                TS              NVBNKTEM
                TC              NVSUBB                  # GO TO NVSUB1 THRU STANDARD LOC
                EBANK=          DSPCOUNT
NVSBBBNK        BBCON           NVSUB1

NVSUBMON        CA              Q                       # MONDO COMES HERE
                AD              ONE
                TS              NVQTEM                  # 2 + CALLING LOC INTO NVQTEM
                TC              NVSUBCOM

NVSUBEND        DXCH            NVQTEM                  # NVBNKTEM MUST = NVQTEM+1
                DXCH            Z                       # DTCB

                SETLOC          ENDRQWT         +1

NVSUB1          CAF             ENTSET                  # IN BANK
                TS              ENTRET                  # SET RETURN TO NVSUBEND
                CAF             LOW6
                MASK            NVTEMP
                TS              MPAC                    # TEMP STORAGE
                CAF             MID6
                MASK            NVTEMP
                TC              RIGHT5
                TS              CYR
                XCH             CYR
                TS              MPAC            +1      # TEMP STORAGE
                CCS             MPAC                    # TEST NOUN
                TC              +4                      # IF NOUN NOT +0, GO ON
                XCH             MPAC            +1
                TC              UPDATVB         -1      # IF NOUN = +0, DISPLAY VERB, THEN RETURN
ENTSET          TC              NVSUBEND
                CCS             MPAC            +1      # TEST VERB
                TC              +4                      # IF VERB NOT +0, GO ON
                XCH             MPAC
                TC              UPDATNN         -1      # IF VERB = +0, DISPLAY NOUN. THEN RETURN
                TC              NVSUBEND
                XCH             MPAC            +1
                TC              UPDATVB         -1      # IF BOTH NOUN AND VERB NOT +0, DISPLAY
                XCH             MPAC                    # BOTH AND GO TO ENTPAS0
                TC              UPDATNN         -1
                CAF             ZERO
                TS              LOADSTAT                # SET FOR WAITING FOR DATA CONDITION
                TS              CLPASS
                TC              ENTPAS0

# IF INTERNAL MACH CADR TO BE SPECIFIED, MPAC+2 WILL BE PLACED INTO
# NOUNCADR IN ENTPAS0 (INTMCTBS ).



LOW6            OCT             77
MID6            OCT             7700

                SETLOC          NVSUBEND        +2
KILMONON        CS              BIT15                   # FORCE BIT 15 OF MONSAVE1 TO 1.
                INHINT                                  #         THIS IS THE KILL MONITOR BIT.
                MASK            MONSAVE1
                AD              BIT15
                TS              MONSAVE1
                RELINT
                TC              Q



# LOADSTAT  +0 INACTIVE (WAITING FOR DATA). SET BY NVSUB
#           +1  PROCEED NO DATA. SET BY SPECIAL VERB
#          -1 TERMINATE   SET BY SPECIAL VERB
#          -0 DATA IN   SET BY END OF LOAD ROUTINE



# L  TC ENDIDLE  (FIXED FIXED)
# ROUTINES THAT REQUEST LOADS THROUGH NVSUB SHOULD USE ENDIDLE WHILE
# WAITING FOR THE DATA TO BE LOADED. ENDIDLE PUTS CURRENT JOB TO SLEEP.
# ENDIDLE CANNOT BE CALLED FROM ERASABLE MEMORY, SINCE JOBSLEEP AND
# JOBWAKE CAN HANDLE ONLY FIXED MEMORY.
# RECALTST TESTS LOADSTAT AND WAKES JOB UP TO,
# L+1      FOR TERMINATE
# L+2      FOR PROCEED WITHOUT DATA
# L+3      FOR DATA IN
# IT DOES NOTHING     IF LOADSTAT INDICATES WAITING FOR DATA.

ENDIDLE         CAF             ONE
                TS              DSPLOCK
                LXCH            FBANK
                XCH             Q
                DXCH            BUF2
                TC              MAKECADR
                TS              CADRSTOR
                TC              JOBSLEEP



ENDINST         TC              ENDOFJOB

# DATAWAIT IS AN ALTERNATIVE TO ENDIDLE, IT RETURNS IMMEDIATELY IF
# LOADSTAT INDICATES THAT DATA IS ALREADY IN, OR PROCEED OR TERMINATE HAS
# BEEN EXECUTED. RETURN FORMAT IS SAME AS FOR ENDIDLE.
# DATAWAIT CANNOT BE CALLED FROM ERASABLE MEMORY, SINCE JOBSLEEP
# AND JOBWAKE CAN HANDLE ONLY FIXED MEMORY.
# DATAWAIT SHOULD BE USED ONLY AFTER REQUESTING A LOAD VERB.

DATAWAIT        CCS             LOADSTAT

                TCF             DATWAIT1                # PROCEED. RETURN TO L+2.
                TCF             ENDIDLE                 # STILL WAITING. GO TO SLEEP.
                TC              Q                       # TERMINATE. RETURN TO L+1.
                INDEX           Q                       # DATA IN. RETURN TO L+3.
                TC              2
DATWAIT1        INDEX           Q                       # RETURN TO L+2.
                TC              1

# DATAWAIT DOES NOT RELEASE DISPLAY SYST. IT IS RELEASED AT END OF NVSUB
# INITIATED LOAD, IF ENDIDLE WAS NOT USED.



                SETLOC          MID6            +1
# DSPMM PLACE MAJOR MODE CODE INTO MODREG

DSPMM1          CAF             MD1                     # GETS HERE THRU DSPMM (STANDARD LEAD IN)
                XCH             DSPCOUNT
                TS              DSPMMTEM                # SAVE DSPCOUNT
                CA              MODREG
                LXCH            Q
                TC              DSP2BIT
                XCH             DSPMMTEM                # RESTORE DSPCOUNT
                TS              DSPCOUNT
DSPMMEND        TC              L



# RECALTST IS ENTERED DIRECTLY AFTER DATA IS
# LOADED, TERMINATE VERB IS EXECUTED, OR THE PROCEED WITHOUT DATA VERB IS
# EXECUTED. IT WAKES UP JOB THAT DID TC ENDIDLE.

# IF NVSUB INITIATED LOAD, AND ENDIDLE WAS NOT USED, THEN IT RELEASES
# DISPLAY SYST. (NEEDED FOR DATAWAIT)

                SETLOC          SWTAB           +4

RECALTST        CCS             CADRSTOR
                TC              RECAL1
                TC              ENDOFJOB                # NORMAL EXIT IF KEYBOARD INITIATED
                TC              RECAL1
                TS              CADRSTOR                # -0. CONCLUSION OF NVSUB INITIATED LOAD.
                TC              RECAL3                  # +0 INTO CADRSTOR. RELEASE DISPLAY,
                                                        #    AND ENDOFJOB. NEEDED FOR DATAWAIT.
RECAL1          CAF             ZERO
                XCH             CADRSTOR
                INHINT
                TC              JOBWAKE
                CCS             LOADSTAT
                TC              DOPROC                  # + PROCEED WITHOUT DATA

                TC              ENDOFJOB                # PATHALOGICAL CASE EXIT
                TC              DOTERM                  # -   TERMINATE
                CAF             TWO
RECAL2          INDEX           LOCCTR
                AD              LOC                     # LOC IS + FOR BASIC JOBS
                INDEX           LOCCTR
                TS              LOC
                RELINT
RECAL3          TC              RELDSP1                 # DOES NOT SEARCH LIST
                TC              ENDOFJOB

DOTERM          CAF             ZERO
                TC              RECAL2

DOPROC          CAF             ONE
                TC              RECAL2

# THE FOLLOWING REFERS TO THE NOUN TABLES



# COMPONENT CODE NUMBER           INTERPRETATION
#
# 00000                           1 COMPONENT
# 00001                           2 COMPONENT (EACH S P)
# 00010                           3 COMPONENT (EACH SP)



# SF ROUTINE CODE NUMBER          INTERPRETATION
#
# 00000    OCTAL ONLY
# 00001    STRAIGHT FRACTIONAL
# 00010    DEGREES (XXX.XX)
# 00011    ARITHMETIC SF
# 00100    ARITH DP1   OUT(MULT BY 2/14 AT END)     IN (STRAIGHT)
# 00101    ARITH DP2   OUT (STRAIGHT)               IN (SL 7 AT END)
# 00110    OPTICS DEGREES(XX.XXX MAX 89.999) OR (XXX.XX MAX 179.99)
# 00111    ARITH DP3   OUT (SL 7 AT END)        IN ( STRAIGHT)
# END OF SF ROUTINE CODE NUMBERS

# SF CONSTANT CODE NUMBER         INTERPRETATION

# 00000                           WHOLE
# 00000                           TIME SEC(XXX.XX)SAME AS WHOLE(ARITH DP1)
# 00001                           TIME HOURS(XXX.XX) USE ARITH DP2
# 00010                           DEGREES
# 00010                           OPTICS DEGREES
# 00011                           GYRO DEGREES (XX.XXX)  USE ARITHDP3
# 00100                           GYRO BIAS DRIFT .BBXXXXX MILLIRAD/SEC
# 00101                           GYRO AXIS ACCEL. DRIFT
#                                 .BBXXXXX (MILLIRAD/SEC) / (CM/SEC SEC)
# 00110                           PIPA BIAS X.XXXX CM/SEC SEC
# 00111                           PIPA SCALE FACTOR ERROR
#                                     XXXXX. PARTS/MILLION
# 01000                           POSITION(XXXX.X KILOMETERS) USE ARITHDP3
# 01001                           VELOCITY(XXXX.X METERS/SEC) USE ARITHDP2
# 01010                           TIME HOURS(XXX.XX)WEEKS INSIDE(ARITHDP2)
# 01011                           ELEVATION DEGREES(89.999MAX) USE ARITH
# 01100                           RENDEZVOUS RADAR RANGE(XXXXXB.FEET)
#                                                             USE ARITHDP1
#01101                            RENDEZVOUS RADAR RANGE RATE(XXXXX.FT/SEC
#                                                             USE ARITHDP1
#01110                            LANDING RADAR ALTITUDE(XXXXX.FEET)
#                                                              USE ARITHDP1

# 01111                           INITIAL/FINAL ALTITUDE(XXXXX.FEET)
#                                                             USE ARITHDP1
# 10000                           ALTITUDE RATE(XXXXX.FEET)      USE ARITH
# 10001                           FORWARD/LATERAL VELOCITY(XXXXX.FEET/SEC)
#                                                                USE ARITH
# 10010                           ROTATIONAL HAND CONTROLLER ANGLE RATES
#                                       XXXXX.DEG/SEC            USE ARITH
# 10011                           LANDING RADAR VELX(XXXXX.FEET/SEC)
#                                                             USE ARITHDP1
# 10100                           LANDING RADAR VELY(XXXXX.FEET/SEC)
#                                                             USE ARITHDP1
# 10101                           LANDING RADAR VELZ(XXXXX.FEET/SEC)
#                                                             USE ARITHDP1
# 10110                           OPTICAL TRACKER AZIMUTH ANGLE(XXX.XXDEG)
#                                                             USE ARITHDP1
# END OF SF CONSTANT CODE NUMBERS



# FOR GREATER THAN SINGLE PRECISION SCALES, PUT ADDRESS OF MAJOR PART INTO
# NOUN TABLES.
# OCTAL LOADS PLACE +0 INTO MAJOR PART, DATA INTO MINOR PART.
# OCTAL DISPLAYS SHOW MINOR PART ONLY.
# TO GET AT BOTH MAJOR AND MINOR PARTS (IN OCTAL), USE NOUN 01.

# THE FOLLOWING ROUTINES ARE FOR READING THE NOUN TABLES AND THE SF TABLES
# (WHICH ARE IN A SEPARATE BANK FROM THE REST OF PINBALL). THESE READING
# ROUTINES ARE IN THE SAME BANK AS THE TABLES. THEY ARE CALLED BY DXCH Z.



# LODNNTAB LOADS NNADTEM WITH THE NNADTAB ENTRY, NNTYPTEM WITH THE
# NNTYPTAB ENTRY. IF THE NOUN IS MIXED, IDAD1TEM IS LOADED WITH THE FIRST
# IDADDTAB ENTRY, IDAD2TEM THE SECOND IDADDTAB ENTRY, IDAD3TEM THE THIRD
# IDADDTAB ENTRY, RUTMXTEM WITH THE RUTMXTAB ENTRY. MIXBR IS SET FOR
# MIXED OR NORMAL NOUN.

                BANK            16

LODNNTAB        DXCH            IDAD2TEM                # SAVE RETURN INFO IN IDAD2TEM, IDAD3TEM.
                INDEX           NOUNREG
                CAF             NNADTAB
                TS              NNADTEM
                INDEX           NOUNREG
                CAF             NNTYPTAB
                TS              NNTYPTEM
                CS              NOUNREG
                AD              MIXCON
                EXTEND
                BZMF            LODMIXNN                # NOUN NUMBER G/E FIRST MIXED NOUN
                CAF             ONE                     # NOUN NUMBER L/ FIRST MIXED NOUN
                TS              MIXBR                   # NORMAL.  +1 INTO MIXBR.
                TC              LODNLV
LODMIXNN        CAF             TWO                     # MIXED.  +2 INTO MIXBR.
                TS              MIXBR
                INDEX           NOUNREG
                CAF             RUTMXTAB        -55
                TS              RUTMXTEM
                CAF             LOW10
                MASK            NNADTEM
                TS              Q                       # TEMP
                INDEX           A
                CAF             IDADDTAB
                TS              IDAD1TEM                # LOAD IDAD1TEM WITH FIRST IDADDTAB ENTRY
                EXTEND
                INDEX           Q                       # LOAD IDAD2TEM WITH 2ND IDADDTAB ENTRY
                DCA             IDADDTAB        +1      # LOAD IDAD3TEM WITH 3RD IDADDTAB ENTRY.
LODNLV          DXCH            IDAD2TEM                # PUT RETURN INFO INTO A, L.
                DXCH            Z

MIXCON          OCT             55                      # FIRST MIXED NOUN = 55.



# GTSFOUT LOADS SFTEMP1, SFTEMP2 WITH THE DP SFOUTAB ENTRIES.

GTSFOUT         DXCH            SFTEMP1                 # 2X(SFCONUM) ARRIVES IN SFTEMP1.
                EXTEND
                INDEX           A
                DCA             SFOUTAB
SFCOM           DXCH            SFTEMP1
                DXCH            Z



# GTSFIN LOADS SFTEMP1, SFTEMP2 WITH THE DP SFINTAB INTRIES.

GTSFIN          DXCH            SFTEMP1                 # 2X(SFCONUM) ARRIVES IN SFTEMP1.
                EXTEND
                INDEX           A
                DCA             SFINTAB
                TCF             SFCOM



                                                        # NN  NORMAL NOUNS
NNADTAB         OCT             00000                   # 00 NOT IN USE
                OCT             40000                   # 01 SPECIFY MACHINE ADDRESS (FRACTIONAL)
                OCT             40000                   # 02 SPECIFY MACHINE ADDRESS (WHOLE)
                OCT             40000                   # 03 SPECIFY MACHINE ADDRESS (DEGREES)
                OCT             40000                   # 04 SPECIFY MACHINE ADDRESS (HOURS)
                OCT             40000                   # 05 SPECIFY MACHINE ADDRESS (SECONDS)
                OCT             40000                   # 06 SPECIFY MACHINE ADDRESS (GYRO DEG)
                OCT             00000                   # 07 SPARE
                OCT             77776                   # 10 CHANNEL TO BE SPECIFIED
                OCT             00000                   # 11 SPARE
                OCT             00000                   # 12 SPARE
                OCT             00000                   # 13 SPARE
                OCT             00000                   # 14 SPARE
                OCT             77777                   # 15 INCREMENT MACHINE ADDRESS
                ECADR           TIME2                   # 16 TIME SECONDS
                ECADR           TIME2                   # 17 TIME HOURS
                ECADR           CDUX                    # 20 ICDU
                ECADR           PIPAX                   # 21 PIPAS
                ECADR           THETAD                  # 22 NEW ANGLES I
                ECADR           DSPTEM2                 # 23 DELTA ANGLES I
                ECADR           DSPTEM1                 # 24 DELTA TIME (SEC)
                ECADR           DSPTEM1                 # 25 CHECKLIST
                ECADR           DSPTEM1                 # 26 PRIO/DELAY, ADRES, BBCON
                ECADR           SMODE                   # 27 SELF TEST ON/OFF SWITCH
                ECADR           DSPTEM1                 # 30 STAR NUMBERS
                ECADR           FAILREG                 # 31 FAILREG
                ECADR           TDEC                    # 32 DECISION TIME (MIDCOURSE)
                ECADR           TET                     # 33 EPHEMERIS TIME (MIDCOURSE)
                ECADR           MEASQ                   # 34 MEASURED QUANTITY (MIDCOURSE)
                ECADR           DSPTEM1                 # 35 INBIT MESSAGE

                ECADR           LANDMARK                # 36 LANDMARK DATA 1
                ECADR           LANDMARK        +3      # 37 LANDMARK DATA 2
                ECADR           OPTY                    # 40 RENDEZVOUS RADAR ANGLES (TRUN, SHAFT)
                ECADR           TANG                    # 41 NEW REND. RADAR ANGLES (TRUN, SHAFT)
                ECADR           DSPTEM2                 # 42 AOT ROTATION ANGLES
                ECADR           XYMARK                  # 43 AOT DETENT CODE
                ECADR           FORVEL                  # 44 FORWARD VELOCITY, LATERAL VELOCITY
                OCT             00000                   # 45 SPARE
                OCT             00000                   # 46 SPARE
                OCT             00000                   # 47 SPARE
                OCT             00000                   # 50 SPARE
                OCT             00000                   # 51 SPARE
                ECADR           GBIASX                  # 52 GYRO BIAS DRIFT
                ECADR           ADIAX                   # 53 GYRO INPUT AXIS ACCELERATION DRIFT
                ECADR           ADSRAX                  # 54 GYRO SPIN AXIS ACCELERATION DRIFT

                                                        # NN  MIXED NOUNS
                OCT             02000                   # 55 LANDING RADAR ALTITUDE, TIME(SEC)
                OCT             02002                   # 56 LANDING RADAR VELX, TIME(SEC)
                OCT             02004                   # 57 LANDING RADAR VELY, TIME(SEC)
                OCT             02006                   # 60 LANDING RADAR VELZ, TIME(SEC)
                OCT             02010                   # 61 TARGET AZIMUTH AND ELEVATION
                OCT             04012                   # 62 RENDEZVOUS RADAR RANGE, TRUN, SHAFT
                OCT             04015                   # 63 REND. RADAR RANGE RATE, TRUN, SHAFT
                OCT             04020                   # 64 INITIAL ALT, FINAL ALT, ALT RATE
                OCT             02023                   # 65 SAMPLED TIME (HOURS AND SECONDS)
                                                        #      (FETCHED IN INTERRUPT)
                OCT             04025                   # 66 SYSTEM TEST RESULTS
                OCT             04030                   # 67 DELTA GYRO ANGLES
                OCT             02033                   # 70 OPTICAL TRACKER ANGLES (AZIMUTH,ELEV)
                OCT             02035                   # 71 DESIRED OPT. TRACK. ANGLES (AZ, ELEV)
                OCT             04037                   # 72 DELTA POSITION
                OCT             04042                   # 73 DELTA VELOCITY
                OCT             04045                   # 74 MEASUREMENT DATA (MIDCOURSE)
                OCT             04050                   # 75 MEASUREMENT DEVIATIONS (MIDCOURSE)
                OCT             04053                   # 76 POSITION VECTOR
                OCT             04056                   # 77 VELOCITY VECTOR



                                                        # NN        NORMAL NOUNS
NNTYPTAB        OCT             00000                   # 00 NOT IN USE
                OCT             00040                   # 01 1COMP FRACTIONAL
                OCT             00140                   # 02 1COMP WHOLE
                OCT             00102                   # 03 1COMP DEGREES
                OCT             00241                   # 04 1COMP HOURS
                OCT             00200                   # 05 1COMP SECONDS
                OCT             00343                   # 06 1COMP GYRO DEGREES
                OCT             00000                   # 07       SPARE
                OCT             00000                   # 10 1COMP OCTAL ONLY

                OCT             00000                   # 11        SPARE
                OCT             00000                   # 12        SPARE
                OCT             00000                   # 13        SPARE
                OCT             00000                   # 14        SPARE
                OCT             00000                   # 15 1COMP  OCTAL ONLY
                OCT             00200                   # 16 1COMP  SECONDS
                OCT             00241                   # 17 1COMP  HOURS
                OCT             04102                   # 20 3COMP  DEGREES
                OCT             04140                   # 21 3COMP  WHOLE
                OCT             04102                   # 22 3COMP  DEGREES
                OCT             04102                   # 23 3COMP  DEGREES
                OCT             00200                   # 24 1COMP  SECONDS
                OCT             00140                   # 25 1COMP  WHOLE
                OCT             04000                   # 26 3COMP  OCTAL ONLY
                OCT             00140                   # 27 1COMP  WHOLE
                OCT             04140                   # 30 3COMP  WHOLE
                OCT             04000                   # 31 3COMP  OCTAL ONLY
                OCT             00252                   # 32 1COMP  TIME WEEKS
                OCT             00252                   # 33 1COMP  TIME WEEKS
                OCT             00350                   # 34 1COMP  POISTION
                OCT             04000                   # 35 3COMP  OCTAL ONLY
                OCT             04000                   # 36 3COMP  OCTAL ONLY
                OCT             04000                   # 37 3COMP  OCTAL ONLY
                OCT             02102                   # 40 2COMP  DEGREES
                OCT             02102                   # 41 2COMP  DEGREES
                OCT             02102                   # 42 2COMP  DEGREES
                OCT             00140                   # 43 1COMP  WHOLE
                OCT             02161                   # 44 2COMP  FORWARD/LATERAL VELOCITY
                OCT             00000                   # 45        SPARE
                OCT             00000                   # 46        SPARE
                OCT             00000                   # 47        SPARE
                OCT             00000                   # 50        SPARE
                OCT             00000                   # 51        SPARE
                OCT             04144                   # 52 3COMP  GYRO BIAS DRIFT
                OCT             04145                   # 53 3COMP  GYRO AXIS ACCEL. DRIFT
                OCT             04145                   # 54 3COMP  GYRO AXIS ACCEL. DRIFT

                                                        # NN        MIXED NOUNS
                OCT             00016                   # 55 2COMP  LANDING RADAR ALT, SECONDS
                OCT             00023                   # 56 2COMP  LANDING RADAR VELX, SECONDS
                OCT             00024                   # 57 2COMP  LANDING RADAR VELY, SECONDS
                OCT             00025                   # 60 2COMP  LANDING RADAR VELZ, SECONDS
                OCT             00542                   # 61 2COMP  DEGREES, ELEVATION DEGREES
                OCT             04114                   # 62 3COMP  REND. RADAR RANGE, DEG, DEG
                OCT             04115                   # 63 3COMP  REND. RAD. RANGE RATE, DEG,DEG
                OCT             40757                   # 64 3COMP  IN/FN ALT, IN/FN ALT, ALT RATE
                OCT             00001                   # 65 2COMP  HOURS, SECONDS
                OCT             00000                   # 66 3COMP  WHOLE, FRACTIONAL, WHOLE
                OCT             06143                   # 67 3COMP  GYRO DEGREES FOR EACH
                OCT             00126                   # 70 2COMP  OPT TRACK AZIMUTH, DEGREES

                OCT             00126                   # 71 2COMP  OPT TRACK AZIMUTH, DEGREES
                OCT             20410                   # 72 3COMP  POSITION FOR EACH
                OCT             22451                   # 73 3COMP  VELOCITY FOR EACH
                OCT             00412                   # 74 3COMP  TIME WEEKS, POSITION, WHOLE
                OCT             20450                   # 75 3COMP  POSITION, VELOCITY, POSITION
                OCT             20410                   # 76 3COMP  POSITION FOR EACH
                OCT             22451                   # 77 3COMP  VELOCITY FOR EACH



SFINTAB         OCT             00006                   # WHOLE,TIME(SEC)
                OCT             03240
                OCT             00253                   # TIME HOURS ( = 1.3..... )
                OCT             25124                   #   (POINT BETWEEN BITS 7-8 )
                OCT             0                       # DEGREES (SFCON IN DEGINSF)
                OCT             0
                OCT             10707                   # GYRO DEGREES
                OCT             03435                   #             UPPED BY 1
                OCT             00001                   # GYRO BIAS DRIFT
                OCT             02133
                OCT             00011                   # GYRO AXIS ACCEL. DRIFT
                OCT             30322
                OCT             00004                   # PIPA BIAS
                OCT             14021
                OCT             00314                   # PIPA SCALE ERROR.
                OCT             31463
                OCT             23420                   # POSITION
                OCT             00000
                OCT             00201                   # VELOCITY
                OCT             30327                   # ( POINT BETWEEN BITS 7-8 )
                OCT             01371                   # TIME WEEKS
                OCT             34750                   # ( POINT BETWEEN BITS 7-8 )
                OCT             00001                   # ELEVATION DEGREES
                OCT             03434
                OCT             00006                   # RENDEZVOUS RADAR RANGE
                OCT             20162
                OCT             00011                   # RENDEZVOUS RADAR RANGE RATE
                OCT             27066
                OCT             00016                   # LANDING RADAR ALTITUDE
                OCT             04245
                OCT             00002                   # INITIAL/FINAL ALTITUDE
                OCT             23224
                OCT             00014                   # ALTITUDE RATE
                OCT             06500
                OCT             00012                   # FORWARD/LATERAL VELOCITY
                OCT             36455
                OCT             04256                   # ROT HAND CONT ANGLE RATE
                OCT             07071
                OCT             77766                   # LANDING RADAR VELX (NEG TO SWITCH SIGNS)
                OCT             60044

                OCT             00004                   # LANDING RADAR VELY
                OCT             34055
                OCT             00007                   # LANDING RADAR VELZ
                OCT             04147
                OCT             00005                   # OPTICAL AZIMUTH TRACKER ANGLE
                OCT             21616
                                                        # END OF SFINTAB



SFOUTAB         OCT             05174                   # WHOLE, TIME(SEC)
                OCT             13261
                OCT             27670                   # TIME HOURS
                OCT             31357
                OCT             0                       # DEGREES
                OCT             0
                OCT             00714                   # GYRO DEGREES
                OCT             31463                   # (POINT BETWEEN BITS 7-8)
                OCT             35753                   # GYRO BIAS DRIFT
                OCT             32323
                OCT             03216                   # GYRO AXIS ACCEL. DRIFT
                OCT             06400
                OCT             07237                   # PIPA BIAS
                OCT             37776
                OCT             00120                   # PIPA SCALE ERROR
                OCT             00000
                OCT             00321                   # POSITION
                OCT             26706                   # ( POINT BETWEEN BITS 7-8 )
                OCT             37441                   # VELOCITY
                OCT             14247
                OCT             05300                   # TIME WEEKS
                OCT             20305
                OCT             34631                   # ELEVATION DEGREES
                OCT             23146
                OCT             04725                   # RENDEZVOUS RADAR RANGE
                OCT             35454
                OCT             03225                   # RENDEZVOUS RADAR RANGE RATE
                OCT             07470
                OCT             02207                   # LANDING RADAR ALTITUDE
                OCT             03255
                OCT             14226                   # INITIAL/FINAL ALTITUDE
                OCT             31757
                OCT             02476                   # ALTITUDE RATE
                OCT             05531
                OCT             02727                   # FORWARD/LATERAL VELOCITY
                OCT             16415
                OCT             00007                   # ROT HAND CONT ANGLE RATE
                OCT             13734
                OCT             74502                   # LANDING RADAR VELX (NEG TO SWITCH SIGNS)
                OCT             76401

                OCT             06436                   # LANDING RADAR VELY
                OCT             35664
                OCT             04371                   # LANDING RADAR VELZ
                OCT             17420
                OCT             05605                   # OPTICAL TRACKER AZIMUTH ANGLE
                OCT             03656
                                                        # END OF SFOUTAB


                                                        # MIXNOUN   SF ROUT
IDADDTAB        ECADR           RSTACK          +18D    # 01        LANDING RADAR ALTITUDE
                ECADR           RSTACK          +22D    # 01        SECONDS
                ECADR           RSTACK                  # 02        LANDING RADAR VELX
                ECADR           RSTACK          +4      # 02        SECONDS
                ECADR           RSTACK          +6      # 03        LANDING RADAR VELY
                ECADR           RSTACK          +10D    # 03        SECONDS
                ECADR           RSTACK          +12D    # 04        LANDING RADAR VELY
                ECADR           RSTACK          +16D    # 04        SECONDS
                ECADR           DSPTEM1                 # 05        DEGREES
                ECADR           DSPTEM1         +1      # 05        ELEVATION DEGREES
                ECADR           RSTACK                  # 06        RENDEZVOUS RADAR RANGE
                ECADR           RSTACK          +2      # 06        DEGREES
                ECADR           RSTACK          +3      # 06        DEGREES
                ECADR           RSTACK          +6      # 07        RENDEZVOUS RADAR RANGE RATE
                ECADR           RSTACK          +8D     # 07        DEGREES
                ECADR           RSTACK          +9D     # 07        DEGREES
                ECADR           ALT                     # 10        INITIAL/FINAL ALTITUDE
                ECADR           FINALT                  # 10        INITIAL/FINAL ALTITUDE
                ECADR           ALTRATE                 # 10        ALTITUDE RATE
                ECADR           SAMPTIME                # 11        HOURS
                ECADR           SAMPTIME                # 11        SECONDS
                ECADR           DSPTEM2                 # 11        WHOLE
                ECADR           DSPTEM2         +1      # 12        FRACTIONAL
                ECADR           DSPTEM2         +2      # 12        WHOLE
                ECADR           DELVX                   # 13        GYRO DEGREES
                ECADR           DELVX           +2      # 13        GYRO DEGREES
                ECADR           DELVX           +4      # 13        GYRO DEGREES
                ECADR           AZANG                   # 14        OPT TRACK AZIMUTH ANGLE
                ECADR           ELANG                   # 14        DEGREES
                ECADR           DESLOTSY                # 15        OPT TRACK AZIMUTH ANGLE
                ECADR           DESLOTSX                # 15        DEGREES
                ECADR           DELR                    # 16        POSITION
                ECADR           DELR            +2      # 16        POSITION
                ECADR           DELR            +4      # 16        POSITION
                ECADR           DELVEL                  # 17        VELOCITY
                ECADR           DELVEL          +2      # 17        VELOCITY
                ECADR           DELVEL          +4      # 17        VELOCITY
                ECADR           TDEC                    # 20        TIME WEEKS
                ECADR           MEASQ                   # 20        POSITION

                ECADR           MEASMODE                # 20        WHOLE
                ECADR           DSPTEM1                 # 21        POSITION
                ECADR           DSPTEM1         +2      # 21        VELOCITY
                ECADR           DELTAQ                  # 21        POSITION
                ECADR           DSPTEM1                 # 22        POSITION
                ECADR           DSPTEM1         +2      # 22        POSITION
                ECADR           DSPTEM1         +4      # 22        POSITION
                ECADR           DSPTEM1                 # 23        VELOCITY
                ECADR           DSPTEM1         +2      # 23        VELOCITY
                ECADR           DSPTEM1         +4      # 23        VELOCITY
                OCT             00000                   #           SPARE
                OCT             00000                   #           SPARE
                OCT             00000                   #           SPARE
                OCT             00000                   #           SPARE
                OCT             00000                   #           SPARE
                OCT             00000                   #           SPARE
                                                        # END OF IDADDTAB



                                                        # MIXNOUN  SF ROUT
RUTMXTAB        OCT             00204                   # 01  LANDING RADAR ALTITUDE, SECONDS
                OCT             00204                   # 02  LANDING RADAR VELX, SECONDS
                OCT             00204                   # 03  LANDING RADAR VELY, SECONDS
                OCT             00204                   # 04  LANDING RADAR VELZ, SECONDS
                OCT             00142                   # 05  DEGREES, ELEVATION DEGREES
                OCT             04104                   # 06  RENDEZVOUS RADAR RANGE, DEG, DEG
                OCT             04104                   # 07  REND. RADAR RANGE RATE, DEG, DEG
                OCT             06204                   # 10  INIT/FIN ALT, INIT/FIN ALT, ALT RATE
                OCT             00205                   # 11  HOURS, SECONDS
                OCT             06043                   # 12  WHOLE, FRACTIONAL, WHOLE
                OCT             16347                   # 13  GYRO DEGREES (FOR EACH)
                OCT             00104                   # 14  OPT TRACK AZIMUTH ANGLE, DEGREES
                OCT             00104                   # 15  OPT TRACK AZIMUTH ANGLE, DEGREES
                OCT             16347                   # 16  POSITION (FOR EACH)
                OCT             12245                   # 17  VELOCITY (FOR EACH)
                OCT             06345                   # 20  TIME WEEKS, POSITION, WHOLE
                OCT             16247                   # 21  POSITION , VELOCITY, POSITION
                OCT             16347                   # 22  POSITION (FOR EACH)
                OCT             12245                   # 23  VELOCITY (FOR EACH)
                                                        # END OF RUTMXTAB



ENDPINS3        EQUALS


# MISCELLANEOUS SERVICE ROUTINES IN FIXED/FIXED



                SETLOC          DATWAIT1        +2

# SETNCADR      E CADR ARRIVES IN A. IT IS STORED IN NOUNCADR. EBANK BITS
#               ARE SET.  E ADRES IS DERIVED AND PUT INTO NOUNADD.

SETNCADR        TS              NOUNCADR                # STORE ECADR
                TS              EBANK                   # SET EBANK BITS
                MASK            LOW8
                AD              OCT1400
                TS              NOUNADD                 # PUT E ADRES INTO NOUNADD
                TC              Q



# SETNADD       GETS E CADR FROM NOUNCADR, SETS EBANK BITS, DERIVES
#               E ADRES AND PUTS IT INTO NOUNADD.

SETNADD         CA              NOUNCADR
                TCF             SETNCADR        +1



# SETEBANK      E CADR ARRIVES IN A. EBANK BITS ARE SET. E ADRES IS
#               DERIVED AND LEFT IN A.

SETEBANK        TS              EBANK           # SET EBANK BITS
                MASK            LOW8
                AD              OCT1400         # E ADRES LEFT IN A
                TC              Q



R1D1            OCT             16
R2D1            OCT             11
R3D1            OCT             4

RIGHT5          TS              CYR
                CS              CYR
                CS              CYR
                CS              CYR
                CS              CYR
                XCH             CYR
                TC              Q

LEFT5           TS              CYL
                CS              CYL

                CS              CYL
                CS              CYL
                CS              CYL
                XCH             CYL
                TC              Q

SLEFT5          DOUBLE
                DOUBLE
                DOUBLE
                DOUBLE
                DOUBLE
                TC              Q



LOW5            OCT             37
MID5            OCT             1740
HI5             OCT             76000                   # MUST STAY HERE

TCNOVAC         TC              NOVAC
TCWAIT          TC              WAITLIST
TCTSKOVR        TC              TASKOVER
TCFINDVC        TC              FINDVAC



CHRPRIO         OCT             30000                   # EXEC PRIORITY OF CHARIN



LOW11           OCT             3777
B12-1           EQUALS          LOW11
LOW8            OCT             377
OCT1400         OCT             1400



VD1             OCT             23
ND1             OCT             21
MD1             OCT             25

BINCON          DEC             10

FALTON          CA              BIT7                    # TURN ON OPERATOR ERROR LIGHT
                EXTEND
                WOR             DSALMOUT                # BIT 7 OF CHANNEL 11
                TC              Q

FALTOF          CS              BIT7                    # TURN OFF OPERATOR ERROR LIGHT
                EXTEND

                WAND            DSALMOUT                # BIT 7 OF CHANNEL 11
                TC              Q

RELDSPON        CAF             BIT5                    # TURN ON KEY RELEASE LIGHT
                EXTEND
                WOR             DSALMOUT                # BIT 5 OF CHANNEL 11
                TC              Q

LODSAMPT        EXTEND
                DCA             TIME2
                DXCH            SAMPTIME
                TC              Q



TPSL1           EXTEND                                  # SHIFTS MPAC, +1, +2 LEFT 1
                DCA             MPAC    +1              # LEAVES OVFIND SET TO +/- 1 FOR OF/UF
                DAS             MPAC    +1
                AD              MPAC
                ADS             MPAC
                TS              7                       # TS A DOES NOT CHANGE A ON OF/UF.
                TC              Q                       # NO NET OF/UF
                TS              OVFIND                  # OVFIND SET TO +/- 1 FOR OF/UF
                TC              Q



FLASHON         CAF             BIT6                    # TURN ON V/N FLASH
                EXTEND                                  # BIT 6 OF CHANNEL 11
                WOR             DSALMOUT
                TC              Q



FLASHOFF        CS              BIT6                    # TURN OFF V/N FLASH
                EXTEND
                WAND            DSALMOUT                # BIT 6 OF CHANNEL 11
                TC              Q

# INTERNAL ROUTINES THAT USE THE KEYBOARD AND DISPLAY SYSTEM(THRU
# NVSUB) MUST  TC GRABDSP  BEFOREHAND , TO GRAB THE DISPLAY SYSTEM AND
# MAKE IT BUSY TO OTHER INTERNAL USERS.

#       WHEN FINISHED , THERE MUST BE A TC FREEDSP , TO RELEASE THE
# SYSTEM FOR OTHER INTERNAL USERS.
#
#       THE CALLING SEQUENCES ARE
# L        TC     GRABDSP
# L+1      RETURN HERE WHEN SYSTEM IS ALREADY GRABBED
# L+2      RETURN HERE MEANS YOU HAVE IT

# L        TC     NVSUB
# L+1      RETURN HERE IF OPERATOR HAS INTERVENED
# L+2      RETURN HERE AFTER EXECUTION



#       A ROUTINE CALLED GRABUSY IS PROVIDED (USE IS OPTIONAL) TO PUT YOUR
# JOB TO SLEEP UNTIL THE SYSTEM IS FREED BY THE JOB HOLDING IT.
# GRABUSY CANNOT BE CALLED FROM E MEMORY, SINCE JOBSLEEP AND JOBWAKE
# HANDLE ONLY FIXED MEMORY.
# YOUR CADR IS PUT AT FIRST AVAILABLE SLOT IN A WAITING LIST (FIFO).

#       THE CALLING SEQUENCE IS
#          CAF    WAKEFCADR
#          TC     GRABUSY

#       A ROUTINE CALLED NVSUBUSY IS PROVIDED (USE IS OPTIONAL)  TO PUT
# YOUR JOB TO SLEEP UNTIL THE OPERATOR RELEASES IT.
# NVSUBUSY CANNOT BE CALLED FROM E MEMORY, SINCE JOBSLEEP AND JOBWAKE
# HANDLE ONLY FIXED MEMORY.
#                                             YOUR CADR IS PUT
# ON TOP OF A WAITING LIST (FIFO). IT ALSO TURNS ON KEY RELEASE LIGHT.

#        THE CALLING SEQUENCE IS
#          CAF    WAKEFCADR
#          TC     NVSUBUSY


# AFTER A TC FREEDSP, THE INTERNAL INTERLOCK IS KEPT BUSY FOR 10 SECONDS,
# AFTER WHICH A CADR IS CALLED FROM THE LIST. THIS INSURES THAT ALL
# DISPLAYS WAITING WILL BE VISIBLE.



# GRABLOCK IS THE INTERNAL INTERLOCK FOR THE USE OF THE KEYBOARD
# AND DISPLAY SYSTEM.
# +0  FREE

# +1  SOME INTERNAL ROUTINE HAS GRABBED DSP SYST
# +2  SOME INTERNAL ROUTINE HAS GONE TO NVSUBUSY



GRABDSP         CCS             GRABLOCK
                TC              Q                       # ALREADY GRABBED, RETURN TO L+1
                CAF             ONE                     # NOT GRABBED, SET TO +1
                TS              GRABLOCK                # AND RETURN TO L+2
                INDEX           Q
                TC              1



PREGBSY         CAF             LOW10                   # SPECIAL ENTRANCE FOR ROUTINES IN FIXED
                MASK            Q                       # BANKS ONLY DESIRING THE FCADR OF
                AD              FBANK                   # 1 + (LOC FROM WHICH TC PREGBSY WAS DONE)
GRABUSY         TC              POSTJUMP                # TO BE ENTERED.
                CADR            GRABUSYB
                SETLOC          DOPROC          +2
GRABUSY1        TS              L
                CCS             GRABLOCK
                TC              +3                      # STILL GRABBED
                CA              L                       # NOT GRABBED SO DO DIRECT CALL
                TC              BANKJUMP
                CAF             TWO
                TS              LSTPTR
                INDEX           LSTPTR                  # SEARCH LIST FOR FIRST AVAILABLE SPACE
                CCS             DSPLIST                 # FROM BOTTOM.
                TC              +2
                TC              PUTINLST                # SPACE FOUND
                CCS             LSTPTR                  # DECREMENT POINTER
                TC              -6
                TC              LSTFULL
PUTINLST        CA              L
                INDEX           LSTPTR
                TS              DSPLIST
                TC              JOBSLEEP


# GRABWAIT IS A SPECIAL ENTRANCE FOR ROUTINES IN FIXED BANKS ONLY. IF
# SYSTEM IS NOT GRABBED, IT GRABS IT AND RETURNS TO L+1 ( L = LOC FROM
# WHICH THE TC GRABWAIT WAS DONE). IF SYSTEM IS GRABBED, IT PUTS CALLING
# JOB TO SLEEP WITH L+1 GOING INTO LIST FOR EVENTUAL WAKING UP WHEN
# SYSTEM IS FREED.
#
                SETLOC          GRABUSY         +2
GRABWAIT        CCS             GRABLOCK
                TCF             PREGBSY                 # GRABBED. PUT L+1 INTO LIST. GO TO SLEEP.

                CAF             ONE                     # NOT GRABBED. GRAB AND RETURN TO L+1.
                TS              GRABLOCK
                TC              Q



PRENVBSY        CS              2K+3                    # SPECIAL ENTRANCE FOR ROUTINES IN FIXED
                AD              Q                       # BANKS ONLY DESIRING THE FCADR OF(LOC
                AD              FBANK                   # FROM WHICH THE TC PRENVBSY WAS DONE) -2
NVSUBUSY        TC              POSTJUMP                # TO BE ENTERED.
                CADR            NVSUBSYB
2K+3            OCT             2003

                SETLOC          PUTINLST        +4
NVSUBSY1        TS              L
                CCS             DSPLOCK                 # TEST IF REALLY LOCKED OUT
                TC              +3                      # STILL BUSY
                CA              L                       # DSPLOCK = +0 SO RETURN DIRECTLY
                TC              BANKJUMP
                CAF             TWO                     # SET FOR GRABBED STATE AND NVSUBUSY USE
                TS              GRABLOCK
                CA              L
                XCH             DSPLIST         +2      # ENTER CADR INTO FIRST POSITION OF LIST
                XCH             DSPLIST         +1      #         (BOTTOM)
                XCH             DSPLIST
                CCS             A
                TC              LSTFULL
                TC              +2
                TC              LSTFULL
                TC              RELDSPON
                CA              L
ENDNVBSY        TC              JOBSLEEP



# NVSBWAIT IS A SPECIAL ENTRANCE FOR ROUTINES IN FIXED BANKS ONLY. IF
# SYSTEM IS NOT BUSY, IT EXECUTES V/N AND RETURNS TO L+1 (L= LOC FROM
# WHICH THE TC NVSBWAIT WAS DONE). IF SYSTEM IS BUSY, IT PUTS CALLING JOB
# TO SLEEP WITH L-1 GOING INTO LIST FOR EVENTUAL WAKING UP WHEN SYSTEM
# IS NOT BUSY.

                SETLOC          NVSUBUSY        +3
NVSBWAIT        TS              NVTEMP
                CCS             DSPLOCK
                TCF             NVSBWT1                 # BUSY
                CA              Q                       # FREE. NVSUB WILL SAVE L+1 FOR RETURN
                TCF             NVSUB           +5      # AFTER EXECUTION.
NVSBWT1         INCR            Q                       # L+2. PRENVBSY WILL PUT L-1 INTO LIST AND
                TCF             PRENVBSY                # GO TO SLEEP.

RELDSP          XCH             Q                       # SET DSPLOCK TO +0, TURN RELDSP LIGHT
                TS              RELRET                  # OFF, SEARCH DSPLIST
                CAF             NEG1
                AD              GRABLOCK
                EXTEND                                  # SEARCH LIST ONLY IF GRABLOCK = +2
                BZMF            RELDSP2                 #   (SOMEONE USED NVSUBUSY)
                TC              WKSEARCH
                TC              RELDSP2                 # LIST EMPTY
                TC              JOBWAKE                 # LIST NOT EMPTY
                CAF             ONE
                TS              GRABLOCK
RELDSP2         INHINT
                CS              BIT5                    # TURN OFF KEY RELEASE LIGHT
                EXTEND                                  # (BIT 5 OF CHANNEL 11)
                WAND            DSALMOUT
                CAF             ZERO
                TS              DSPLOCK
                RELINT
                TC              RELRET
RELDSP1         XCH             Q                       # SET DSPLOCK TO +0. RELDSP LIGHT OFF.
                TS              RELRET                  # NO LIST SEARCH
                TC              RELDSP2



WKSEARCH        CAF             ZERO                    # SEARCHES LIST. LEAVES RESULT IN A.
                XCH             DSPLIST                 # IF EMPTY, RETURN TO L+1.
                XCH             DSPLIST         +1      # IF NOT EMPTY, INHINT AND RETURN TO L+2.
                XCH             DSPLIST         +2
                EXTEND
                BZF             +4                      # EMPTY
                INHINT                                  # NOT EMPTY
                INDEX           Q                       # RETURN TO L+2
                TC              1
                TC              Q                       # RETURN TO L+1



FREEDSP         XCH             Q
                TS              FREERET
                INHINT
                CAF             SHOTIME
                TC              WAITLIST
                EBANK=          DSPCOUNT
                2CADR           FREEWAIT
                RELINT
                TC              FREERET

SHOTIME         DEC             600                     # 6 SECOND WAITING PERIOD.

ENDPINBF        EQUALS

                SETLOC          ENDNVBSY        +1

FREEWAIT        CAF             CHRPRIO                 # CALLED BY T3RUPT
                TC              NOVAC
                EBANK=          DSPCOUNT
                2CADR           FREDSPD0
                TC              TASKOVER



FREDSPD0        TC              WKSEARCH                # CALLED BY EXECUTIVE
                TC              LSTEMPTY                # LIST EMPTY
                TC              JOBWAKE                 # LIST NOT EMPTY
                RELINT
                CAF             ONE                     # SET FOR GRABBED CONDITION
                TS              GRABLOCK
                TC              ENDOFJOB
LSTEMPTY        CAF             ZERO                    # SET FOR FREE CONDITION
                TC              -3



LSTFULL         TC              ABORT
                OCT             01206                   # PINBALL WAITING LINE FULL.

ENDPINS1        EQUALS

# VBTSTLTS TURNS ON ALL DISPLAY PANEL LIGHTS. AFTER 5 SEC, IT TURNS
# OFF THE CAUTION AND STATUS LIGHTS.

                SETLOC          DSPMMEND        +1

VBTSTLTS        INHINT
                CS              BIT1                    # SET BIT 1 OF IMODES33 SO IMUMON WONT
                MASK            IMODES33                # TURN OUT ANY LAMPS.
                AD              BIT1
                TS              IMODES33

                CAF             TSTCON1                 # TURN ON UPLINK ACTIVITY, TEMP, KEY RLSE,
                EXTEND                                  # V/N FLASH, OPERATOR ERROR.
                WOR             DSALMOUT
                CAF             TSTCON2                 # TURN ON NO ATT, GIMBAL LOCK, TRACKER,
                TS              DSPTAB          +11D    # PROG ALM.
                CAF             BIT10                   # TURN ON TEST ALARM OUTBIT
                EXTEND
                WOR             CHAN13
                CAF             TEN
TSTLTS1         TS              ERCNT
                CS              FULLDSP
                INDEX           ERCNT
                TS              DSPTAB
                CCS             ERCNT
                TC              TSTLTS1
                CS              FULLDSP1
                TS              DSPTAB          +1       # TURN ON 3 PLUS SIGNS
                TS              DSPTAB          +4
                TS              DSPTAB          +6
                CAF             ELEVEN
                TS              NOUT
                RELINT
                CAF             SHOLTS
                INHINT
                TC              WAITLIST
                EBANK=          DSPTAB
                2CADR           TSTLTS2

                TC              ENDOFJOB                # DSPLOCK IS LEFT BUSY (FROM KEYBOARD
                                                        # ACTION) UNTIL TSTLTS3 TO INSURE THAT
                                                        # LIGHTS TEST WILL BE SEEN.



FULLDSP         OCT             05675                   # DISPLAY ALL 8:S
FULLDSP1        OCT             07675                   # DISPLAY ALL 8:S AND +
TSTCON1         OCT             00175
                                                        # UPLINK ACTIVITY, TEMP, KEY RLSE,
                                                        # V/N FLASH, OPERATOR ERROR.

TSTCON2         OCT             40650                   # DSPTAB+11D BITS 4,6,8,9.
                                                        # NO ATT, GIMBAL LOCK, TRACKER, PROG ALM.
TSTCON3         OCT             00115                   # CHAN 11 BITS 1, 3, 4, 7.
                                                        # UPLINK ACTIVITY, TEMP, OPERATOR ERROR.
SHOLTS          OCT             764                     # 5 SEC



TSTLTS2         CAF             CHRPRIO                 # CALLED BY WAITLIST
                TC              NOVAC
                EBANK=          DSPTAB
                2CADR           TSTLTS3

                TC              TASKOVER



TSTLTS3         CS              TSTCON3                 # CALLED BY EXECUTIVE
                INHINT
                EXTEND                                  # TURN OFF  UPLINK ACTIVITY, TEMP,
                WAND            DSALMOUT                # OPERATOR ERROR.
                CS              BIT10                   # TURN OFF  TEST ALARM OUTBIT
                EXTEND
                WAND            CHAN13
                CAF             BIT15                   # TURN OFF AUTO, HOLD, FREE, NO ATT, SPARE
                TS              DSPTAB +11D             # GIMBAL LOCK, SPARE, TRACKER, PROG ALM
                CS              13-11,1                 # SET BITS TO INDICATE ALL LAMPS OUT. TEST
                MASK            IMODES33                # LIGHTS COMPLETE.
                AD              PRIO16
                TS              IMODES33

                CS              OCT55000
                MASK            IMODES30
                AD              PRIO15                  # 15000.
                TS              IMODES30

                CS              RFAILS2
                MASK            RADMODES
                AD              BIT7
                TS              RADMODES

                RELINT

                TC              DSPMM                   # REDISPLAY C(MODREG)
                TC              POSTJUMP                # TURN OFF KEY RLSE LIGHT ( AND SEARCH LIST
                CADR            VBTERM                  # IF APPROPRIATE).
                                                        # TURN OFF V/N FLASH, SET LOADSTAT FOR
                                                        # FOR TERMINATE CONDITION, AND GO TO
                                                        # RECALTST. FINALLY DO TC ENDOFJOB.

13-11,1         OCT             16001
RFAILS2         OCT             330                     # RADAR CDU AND DATA FAIL FLAGS.
OCT55000        OCT             55000
ENDPINS2        EQUALS
back to top