DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦dc218ceee⟧ Wang Wps File

    Length: 38850 (0x97c2)
    Types: Wang Wps File
    Notes: CPS/SDS/034               
    Names: »1674A «

Derivation

└─⟦c518842e8⟧ Bits:30006081 8" Wang WCS floppy, CR 0125A
    └─ ⟦this⟧ »1674A « 

WangText


…00……00……00……00…$…0a……00……00…$…0b…$…00…$…01…$…05…#…0a…#…0c…#…00…#…01…#
"…08…"…09…"…0e…"…0f…" "…06…!…0a…!…0e…!…01…!
!…07… …08… …0a……86…1                                              …02…           …02…  …02…        

…02…CPS/SDS/034

…02…NJ/831101…02……02…
MESSAGE DISTRIBUTION
DETAILED DESIGN SPECIFICATION …02…ISSUE 1…02…CAMPS








4.2.1.4.2    I̲N̲C̲ ̲P̲L̲A̲I̲N̲ ̲M̲S̲G̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         This module performs distribution of an Incoming Message
         received via an external channel.  The actual distribution
         is performed by use of a set of utility modules and
         common procedures.



4.2.1.4.2.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         a)  INC ̲PLAIN ̲MSG ̲DIST

         b)  INC ̲PLAIN ̲MSG ̲DIST (R6)

         R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

         C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R6  LINK    (Dest.)

         R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

         R0 - R7     (Dest.)



4.2.1.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

         INC ̲PLAIN ̲MSG ̲DIST (Internal Procedure)
         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External Procedure)
         SIC ̲CONTROL (External Procedure)
         TEST ̲HQ ̲MASK(Internal Procedure)
         GET ̲SDLS ̲AND ̲S̲O̲R̲T̲SCDS  (External Procedure)
         MDP ̲WRITE ̲BUFFER (External Procedure)
         TEST ̲MDCO ̲INVOCATION (External Procedure)
         MDCO ̲DELIVERY (External Procedure)
         PERFORM ̲DISTRIBUTION (External Procedure)
         ALTERNATIVE ̲DIST (External Procedure)
         STA ̲SAR ̲DELIVERY (External Procedure)
         UPDATE ̲MDCO ̲ERROR ̲LIST (External Procedure)

         See Figure 4.2.1.4.2.3-1






                    Fig. 4.2.1.4.2.3-1


4.2.1.4.2.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

         Refer Source Listings



4.2.1.4.2.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         This module is a distribution case module, it sets
         up call parameters to the utility modules and common
         procedures.  Special functions for this distribution
         case are performed within this module.  The Main control
         logic for the incoming plaindress message distribution
         case is contained in this module too.  (see Flowgram
         figure 4.2.1.4.2.5-1).

         The SIC ̲STATE specifies if distribution shall be performed
         (OK) or if the message shall be sent to the MDCO (NO).

         The MDCO ̲INV gives the same action as the SIC ̲STATE
         but the reason for MDCO assistance is different (ref.
         TEST ̲
         MDCO ̲INVOCATION).  The ALT ̲DIST is TRUE if the message
         shall be sent to Duty officer and/or MDCO too.


         INC ̲PLAIN ̲MSG ̲DIST



         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)

         SIC ̲CONTROL ( ) (MDCO ̲ERROR ̲LIST, SIC ̲STATE,
         NO ̲OF ̲SIC)

         SIC ̲STATE EQ NO ?

         TEST ̲HQ ̲MASK (MDCO ̲ERROR ̲LIST) (MDCO ̲ERROR
         ̲LIST, HQ ̲MASK ̲STATE)

         HQ ̲MASK ̲STATE EQ NO ?

         GET ̲SDLS ̲AND ̲SORT ̲SCDS (NO ̲OF ̲SIC, MDCO ̲ERROR
         ̲LIST)
                                (SDL ̲BUFFER ̲EMPTY,MDCO
                              ̲ERROR ̲LIST)

         SDL ̲BUFFER ̲EMPTY EQ TRUE ?

         MDP ̲WRITE ̲BUFFER (SCD ̲LIST ̲WRITE)

         TEST ̲MDCO ̲INVOCATION (MDCO ̲ERROR ̲LIST)(MDCO
         ̲ERROR ̲LIST, MDCO ̲INV)

         MDCO ̲INV EQ TRUE ?    MDCO ̲DELIVERY (MDP ̲PARAM.ACTION
         ̲PREC,
                                              MDCO
                                       ̲INV ̲ASS, MDCO
                                       ̲ERROR ̲LIST,

         PERFORM ̲DISTRIBUTION (AC ̲INFO ̲SCD ̲OFFSET,MDP
         ̲PARAM.NUMBER ̲OF ̲ACTION ̲SCD)

                              (ALT ̲DIST, NO ̲OF ̲AC ̲Q
                              ̲LINES, NO ̲OF ̲INFO ̲Q ̲LINES)


         ALT ̲DIST EQ FALSE ?      MDP ̲WRITE ̲BUFFER
                              (QEUEU ̲LIST ̲WRITE)


         ALTERNATIVE ̲DIST (NO ̲OF ̲AC ̲Q ̲LINES + NO ̲OF
         ̲INFO ̲Q ̲LINES)


         STA ̲SAR ̲DELIVERY (INC ̲MSG ̲DIST ̲PER ̲DIST,INC
         ̲MSG ̲DIST ̲PER ̲TERM,
                      INC ̲MSG ̲AFT ̲SELC ̲OF ̲NOM ̲DIST
                     ̲LIST,
                      NO ̲OF ̲AC ̲Q ̲LINES + NO ̲OF ̲INFO
                     ̲Q ̲LINES, ALT ̲DIST)


         STOP

               Fig. 4.2.1.4.2.5-1


         TEST ̲HQ ̲MASK (MDCO ̲ERROR ̲LIST) (MDCO ̲ERROR
         ̲LIST, HQ ̲MASK)



         START

         MDP ̲QEL ̲ATTR.HEADER.INF AND # OOFF

         MDP ̲QEL ̲ATTR.HEADER.INF # ZERO ? - HQ ̲MASK
         ̲STATE = YES

         UPDATE ̲MDLO ̲ERROR ̲LIST (UP ̲ABB ̲MSG ̲FORMAT,
         MDCO ̲ERROR ̲LIST)
                                (MDCO ̲ERROR ̲LIST)

         HQ ̲MASK ̲STATE = NO

         STOP…86…1…02…        …02…   …02…   …02…   …02…        …02…        …02…   
                              
4.2.1.4.3    O̲U̲T̲ ̲P̲L̲A̲I̲N̲ ̲M̲S̲G̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.3.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs distribution of an
             outgoing message prepared on this CAMPS.
              The distribution is performed by use
             of a set of utility modules and common
             procedures.



4.2.1.4.3.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  OUT ̲PLAIN ̲MSG ̲DIST

             b)  OUT ̲PLAIN ̲MSG ̲DIST (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.3.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             SIC ̲CONTROL (External Procedure)
             GET ̲SDLS ̲AND ̲SORT ̲SCDS (External Procedure)
             MDP ̲WRITE ̲BUFFER (External Procedure)
             MDCO ̲DELIVERY (External Procedure)
             STA ̲SAR ̲DELIVERY (External Procedure)
             PERFORM ̲DISTRIBUTION (External Procedure)
             OUT ̲PLAIN ̲MSG ̲DIST (Internal Procedure)
             ALTERNATIVE ̲DIST (External Procedure)

             See Figure 4.2.1.4.2.3-1











               Fig. 4.2.1.4.3.3-1


4.2.1.4.3.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.3.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             This module is the control module which
             is used when an outgoing message shall
             be distributed.  It sets up special parameters
             for this distribution case and calls a
             set of utility modules and common procedures
             in which the actual distribution is performed.
              (See flowgram figure 4.2.1.4.3.5-1).



         OUT ̲PLAIN ̲MSG ̲DIST



         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)


         TEST ̲LOCAL ̲HQ( )  (LOCAL ̲HQ)


         LOCAL ̲HQ EQ TRUE?  SIC ̲CONTROL ( ) (MDCO ̲ERROR
         ̲LIST,SIC ̲STATE,NO ̲OF ̲SIC)

                       SIC ̲STATE EQ NO ?

                       GET ̲SDLS ̲AND ̲SORT ̲SCDS(NO ̲OF
                     ̲SIC, MDCO ̲ERROR ̲LIST)
                                                                        
                                                                        
                                                                        (SDL
                                                                        ̲BUFFER
                                                                        ̲EMPTY,MDCO
                                                                        ̲
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        ERROR
                                                                        ̲LIST)


                       SDL ̲BUFFER ̲EMPTY EQ TRUE ?


                       MDP ̲WRITE ̲BUFFER (SCD ̲LIST ̲WRITE)


         PERFORM ̲DISTRIBUTION (MDP ̲DIST ̲SCD ̲OFFSET,MDP
         ̲PARAM.NUMBER ̲OF ̲DIST ̲SCD 
                              (ALT ̲DIST,NO ̲OF ̲AC ̲Q
                              ̲LINES, NO ̲OF ̲INFO ̲Q ̲LINES)


         ALT ̲DIST EQ FALSE ?   MDP ̲WRITE ̲BUFFER(QUEUE
         ̲LIST ̲WRITE)


         ALTERNATIVE ̲DIST (NO ̲OF ̲AC ̲Q ̲LINES + NO ̲OF
         ̲INFO ̲Q ̲LINES)


         STA ̲SAR ̲DELIVERY (OUT ̲MSG ̲DIST ̲PER ̲DIST,OUT
         ̲MSG ̲DIST ̲PER ̲TERM,
                      SAR ̲RELEASE ̲MSG, NO ̲OF ̲AC ̲Q ̲LINES
                     +
                      NO ̲OF ̲INFO ̲Q ̲LINES, ALT ̲DIST)


                     MDCO ̲DELIVERY (MDP ̲PARAM.ACTION
                     ̲PREC,
                                         MDCO ̲INV ̲ASS,
                                       MDCO ̲ERROR ̲LIST,
                                         MSG ̲DELIVERY)

         STOP
               Fig. 4.2.1.4.3.5-1


         TEST ̲LOCAL ̲HQ () (LOCAL ̲HQ)



         START

         MDP ̲QEL ̲ATTR.HEADER.INF AND # OOFF

         MDP ̲QEL ̲ATTR.HEADER.INF = O ? - LOCAL ̲HQ =
         FALSE

         LOCAL ̲HQ = TRUE

         STOP



4.2.1.4.4    C̲O̲O̲R̲ ̲P̲L̲A̲I̲N̲ ̲M̲S̲G̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.4.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs distribution of a
             message sent for coordination.  The distribution
             is performed by use of a set of utility
             modules and common procedures.  After
             end distribution, a coordination notification
             is created and sent to drafter by this
             module.



4.2.1.4.4.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  COOR ̲PLAIN ̲MSG ̲DIST

             b)  COOR ̲PLAIN ̲MSG ̲DIST (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.4.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             COOR ̲PLAIN ̲MSG ̲DIST (Internal Procedure)
             CREATE ̲DELV ̲NOTIF (Internal Procedure)
             SEND ̲DELV ̲NOTIF (Internal Procedure)
             CREATE ̲QUEUE ̲REF (External Procedure)
             CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (External Procedure)
             DELIVERY (External Procedure)
             CREATE ̲COOR ̲REPLY ̲PARAMS (Internal Procedure)
             MDP ̲WRITE ̲BUFFER (External Procedure)
             INIT ̲COOR ̲DIST (Internal Procedure)



             See figure 4.2.1.4.4.3-1







               Fig. 4.2.1.4.4.3-1


4.2.1.4.4.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.4.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The main sequence in this module is shown
             on figure 4.2.1.4.4.5-1.  By the common
             procedure READ ̲VIEW ̲AND ̲
             GET ̲SYS ̲PARAMS, the coordination SCDs
             will be read into the MDP ̲BUFFER.

             In the INIT ̲COOR ̲DIST procedure, the actual
             coordination distribution list will be
             created on basis of the COOR ̲CHECK ̲MARK
             ̲MASK.  (See figure 4.2.1.4.4.5-2).  The
             actual coordination SCD List will be converted
             to a Queue List via the common procedure
             CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST.

             Delivery to the terminals is performed
             by the common procedure DELIVERY.

             A delivery notification to the drafter
             is created in the procedure CREATE ̲DELV
             ̲NOTIF.  It contains the SCDS to which
             distribution could not be performed (see
             figure 4.2.1.4.4.5-3).

             The SEND ̲DELV ̲NOTIF procedure reserves
             a buffer to the notification, writes in
             it, sends it, and dismantle it.  (See
             figure 4.2.1.4.4.5-4).


         COOR ̲PLAIN ̲MSG ̲DIST



         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)


         INIT ̲COOR ̲DIST


         CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (MDP ̲COOR ̲SCD ̲OFFSET
                                  MDP ̲PARAM.NUMBER
                              ̲OF ̲COOR ̲SCD,
                                  ZERO)
                                 (DUMMY,
                                  MAX ̲Q ̲ENTRY)



         DELIVERY (MDP ̲PARAM.ACTION ̲PREC,
              Q ̲LINE ̲START ̲NO,
              MAX ̲Q ̲ENTRY
              MSG ̲COOR)
             (DUMMY)



         CREATE ̲DELV ̲NOTIF



         SEND ̲DELV ̲NOTIF






         STOP






              Figure 4.2.1.4.4.5-1


         INIT ̲COOR ̲DIST



         START


         EQUIVALENCE (MDP ̲BUFFER(COOR ̲CHECK ̲MARK ̲OFFSET),
                 E2-SCD ̲LIST:  TYPE ̲E2 ̲SCD ̲LIST);


         E2 ̲SCD ̲LIST.DIST ̲SCDS = E2 ̲SCD ̲LIST ̲COOR ̲SCDS

         REF ̲ENTRY = 1


         CUR ̲ENTRY = 1


         COOP ̲CHECK ̲MARK LOOP



              E2 ̲SCD ̲LIST.COOR ̲CHECK ̲MARKS (CUR ̲ENTRY)
         NE # 20 (SPACE)


              E2 ̲SCD ̲LIST.COOR ̲SCDS(REF ̲ENTRY)=E2 ̲SCD
         ̲LIST.DIST ̲SCDS (CUR ̲ENTRY)


              REF ̲ENTRY = REF ̲ENTRY + 1


              MDP ̲PARAM.NUMBER ̲OF ̲COOR ̲SCD EQ CUR ̲ENTRY?
            EXIT


              CUR ̲ENTRY = CUR ̲ENTRY + 1


         END COOR ̲CHECK ̲MARK LOOP


         REF ̲ENTRY = REF ̲ENTRY-1


         MDP ̲PARAM.NUMBER ̲OF ̲COOR SCD = REF ̲ENTRY


         STOP

               Fig. 4.2.1.4.4.5-2


         CREATE ̲DELV ̲NOTIF


         START


         EQUIVALENCE (MDP ̲BUFFER (Q ̲LIST ̲OFFSET),
                 Q ̲LIST:  QUEUE ̲LIST);


         EQUIVALENCE (MDP ̲BUFFER (COOR ̲MARK ̲OFFSET),
                 COOR ̲NOTIF:  COORDINATION ̲NOTIFICATION);


         REF ̲ENTRY = 1

         NO ̲OF ̲SCD = 1

         Q ̲LINE ̲SEARCH LOOP

            Q ̲LIST.QUEUE ̲LINE(REF ̲ENTRY).DELIVERY ̲CODE
         EQ DELIVERY ̲PERFORMED ?

            LINE ̲SCD ̲NO = 1


            SCD ̲MOVE LOOP


                COOR ̲NOTIF.COOR ̲SCDS (NO ̲OF ̲SCD) =
                Q ̲LIST.QUEUE ̲LINE (REF ̲ENTRY).DIST
         ̲SCDS(LINE ̲SCD ̲NO)

                LINE ̲SCD ̲NO EQ Q ̲LIST.Q ̲LINE (REF ̲ENTRY).Q
         ̲SCD ̲NO?  EXIT SCD ̲MOVE

                LINE ̲SCD ̲NO = LINE ̲SCD ̲NO + 1

                NO ̲OF ̲SCD = NO ̲OF ̲SCD + 1

            END SCD ̲MOVE LOOP

            REF ̲ENTRY EQ MAX ̲Q ̲ENTRY ?    EXIT

            REF ̲ENTRY = REF ̲ENTRY + 1

         END LINE ̲SEARCH LOOP

         COOR ̲NOTIF.NO ̲OF ̲SCDS = NO ̲OF ̲SCD

         STOP

               Fig. 4.2.1.4.4.5-3


         SEND ̲DELV ̲NOTIF


         START


         CREATE ̲QUEUE ̲REF (SINGLE, MDQ, SUB ̲Q ̲3)(QUEUE
         ̲REF)


         RESERVE ̲BUFFER (MAX ̲BUFFER ̲SIZE,
                     QUEUE ̲REF)
                   (MDP ̲BUF ̲REF,
                    CC):  ERROR ̲OK


         ERROR ?      ANALYZE ̲ERROR (CC, 0)


         WRITE ̲BUFFER (MDP ̲BUF ̲REF
                  MDP ̲BUFFER (COOR ̲CHECK ̲MARK ̲OFFSET),
                  MAX ̲BUFFER ̲SIZE,
                  START)
                  (DUMMY,
                   CC) ERROR ̲OK


         ERROR ?    ANALYZE ̲ERROR (CC, 0)


         CREATE ̲COOR ̲REPLY ̲PARAMS ( )  (MDP ̲SEND ̲PARAMS)


         SEND ̲REPLY (MDP ̲SEND ̲PARAMS,
                MDP ̲BUF ̲REF,
                MDP ̲VIEW ̲REF ̲1)
                MDP ̲SEND ̲PARAMS,
                CC):  ERROR ̲OK


         ERROR ?    ANALYZE ̲ERROR (CC, 0)


         DISMANTLE ̲BUFFER (MDP ̲BUF ̲REF)
                     (CC):  ERROR ̲OK


         STOP


               Fig. 4.2.1.4.4.5-4


         CREATE ̲COOR ̲REPLY ̲PARAMS () (MDP ̲SEND ̲PARAMS)



         START

         MDP ̲SEND ̲PARAMS.CHECK P ̲STATUS = FALSE

         MDP ̲SEND ̲PARAMS.PROFILE = ZERO

         MDP ̲SEND ̲PARAMS.HEADER.MAINTYPE =
                              COORDINATION ̲NOTIFICATION

         MDP ̲SEND ̲PARAMS.HEADER.SUBTYPE = COOR ̲NOT
         ̲DISPLAY

         MDP ̲SEND ̲PARAMS.HEADER.FLAGS = ZERO

         MDP ̲SEND ̲PARAMS.HEADER.INF = ZERO

         END

 …01…Fig. 4.2.1.4.4.5-5


4.2.1.4.5    C̲O̲M̲M̲E̲N̲T̲ ̲D̲I̲S̲T̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.5.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs distribution of a
             CAMPS comment.  The distribution is performed
             by use of a set of utility modules.



4.2.1.4.5.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  COMMENT ̲DIST

             b)  COMMENT ̲DIST (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             MDP ̲WRITE ̲BUFFER (External Procedure)
             CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (External Procedure)
             DELIVERY (External Procedure)
             COMMENT ̲DIST (Internal Procedure)
             ALTERNATIVE ̲DIST (External Procedure)


             See Figure 4.2.1.4.5.3-1





               Fig. 4.2.1.4.5.3-1


4.2.1.4.5.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.5.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             This is the control module which is used
             when a CAMPS comment shall be distributed.
              It sets up special parameters for this
             distribution case and calls a set of utility
             modules and common procedures in which
             the actual distribution is performed.
              (See flowgram figure 4.2.1.4.3.5-1).


         COMMENT ̲DIST



         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)


         CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (MDP ̲DIST ̲SCD ̲OFFSET,
                                  MDP ̲PARAM.NUMBER
                              ̲OF ̲DIST ̲SCD,
                                  ZERO)
                                 (DUMMY,
                                  MAX ̲Q ̲ENTRY)

         CAMPS ̲COMMENT = TRUE

         DELIVERY (MDP ̲PARAM.ACTION ̲PREC,
              Q ̲LINE ̲START ̲NO,
              MAX ̲Q ̲ENTRY,
              MSG ̲DELIVERY)
             (ALT ̲DIST)

         CAMPS ̲COMMENT = FALSE

         ALT ̲DIST EQ FALSE?  MDP ̲WRITE ̲BUFFER (QUEUE
         ̲LIST ̲WRITE)



         ALTERNATIVE ̲DIST(MAX ̲Q ̲ENTRY)



         STOP
















               Fig. 4.2.1.4.3.5-1


4.2.1.4.6    S̲C̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲ ̲M̲o̲d̲u̲l̲e̲

         

4.2.1.4.6.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs delivery of SCARS/CCIS
             Messages for Release or coordination,
             comments and VDU-pages.  Special parameters
             are set up in this module.  The actual
             delivery is performed by use of a set
             of utility modules and common procedures.



4.2.1.4.6.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  SC ̲DELIVERY

             b)  SC ̲DELIVERY (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲ ̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             MDCO ̲DELIVERY (External Procedure)
             SC ̲DELIVERY (Internal Procedure)
             SC ̲VDU ̲PAGE ̲COM ̲DIST (Internal Procedure)
             SC ̲RELEASE ̲DIST (Internal Procedure)
             SC ̲COOR ̲DIST (Internal Procedure)
             CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (External Procedure)
             DELIVERY (External Procedure)


             See Figure 4.2.1.4.6.3-1







               Fig. 4.2.1.4.6.3-1


4.2.1.4.6.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.6.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The main sequence in this module is shown
             on figure 4.2.1.4.6.5-1.

             By the common procedure READ ̲VIEW ̲AND
             ̲GET ̲SYS ̲PARAMS the MDP ̲PARAM record is
             read into the MDP memory.  The SCARS/CCIS
             Delivery SCDS are contained in this record.

             In the procedures SC ̲VDU ̲PAGE ̲COM ̲DIST,
             SC ̲RELEASE ̲DIST, and SC ̲COOR ̲DIST the
             delivery SCDs are validated and the system
             codes (S, A, C) are checked, only SCDs
             with system code C (CAMPS) will be used
             for delivery.  In these procedures, the
             application profile will be set up too.
              (see figure 4.2.1.4.6.5-2, 3, 4). A Q
             ̲LIST will be created from the validated
             SCDs by the common procedure CONV ̲SCD
             ̲LIST ̲TO ̲Q ̲LIST.

             Delivery to the terminal is performed
             by the common procedure DELIVERY.

             SC messages for coordination and release
             may only be distributed on basis of one
             SCD, whereas VDU pages and comments may
             be distributed on basis of both an Action
             and an Info SCD.

             If the SCD is unknown or if the object
             cannot be delivered, the object will be
             queued to the MDCO by the common procedure
             MDCO ̲DELIVERY.


         SC ̲DELIVERY


         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)

         EQUIVALENCE (MDP ̲BUFFER (MDP ̲DIST ̲SCD ̲OFFSET),
         
                     SCD:  KEY ̲SCD ̲LIST);

         CASE ̲MDP ̲QEL ̲ATTR.HEADER.SUBTYPE OF


             FOR ̲DISTRIBUTION ?      SC ̲VDU ̲PAGE ̲COM
         ̲DIST ( ) (NO ̲OF ̲SCD,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        APP
                                                                        ̲PROFILE,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        SC
                                                                        ̲INFO
                                                                        ̲TYPE)

             FOR ̲RELEASE ?           SC ̲RELEASE ̲DIST
         ( ) (NO ̲OF ̲SCD,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        APP
                                                                        ̲PROFILE,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        SC
                                                                        ̲INFO
                                                                        ̲TYPE)

             FOR ̲COORDINATION ?      SC ̲COOR ̲DIST (
         ) (NO ̲OF ̲SCD,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        APP
                                                                        ̲PROFILE,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        SC
                                                                        ̲INFO
                                                                        ̲TYPE)

         END CASE

         CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (MDP ̲DIST ̲SCD ̲OFFSET,
                                   NO ̲OF ̲SCD,
                                   ZERO)
                                  (DUMMY,
                                   MAX ̲Q ̲ENTRY)

         MAX ̲Q ̲ENTRY EQ ZERO OR (APP ̲PROFILE=MSG ̲RELEASE
         AND Q ̲LINE.DEVICE()VDU)


         DELIVERY (MDP ̲PARAM.ACTION ̲PREC,
              Q ̲LINE ̲START ̲NO,
              MAX ̲Q ̲ENTRY,
              APP ̲PROFILE)
             (ALT ̲DIST)

         ALT ̲DIST EQ.TRUE ?            MDCO ̲DELIVERY(MDP
                                       ̲PARAM.ACTION
                                       ̲PREC,
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        MDCO
                                                                        ̲SC
                                                                        ̲ASS,
                                                                        SC
                                                                        ̲INFO
                                                                        ̲TYPE)

         STOP

               Fig. 4.2.1.4.6.5-1


         SC ̲VDU ̲PAGE ̲COM ̲DIST ( )  (NO ̲OF ̲SCD, APP
         ̲PROFILE, SC ̲INFO ̲TYPE)



         START


         NO ̲OF ̲SCD = ZERO

         MDP.PARAM.DELIVERY ̲SCD ̲A (CHAR ̲ONE) NE "C"?


         NO ̲OF ̲SCD = NO ̲OF ̲SCD + 1

         SCD (NO ̲OF ̲SCD) = MDP ̲PARAM.DELIVERY ̲SCD ̲A


         MDP.PARAM.DELIVERY ̲SCD ̲B (CHAR ̲ONE) NE "C"
         ?


         NO ̲OF ̲SCD ̲ = NO ̲OF ̲SCD + 1


         SCD (NO ̲OF ̲SCD) = MDP ̲PARAM.DELIVERY ̲SCD ̲B


         APP ̲PROFILE (BIT ̲0) = MSG ̲DELIVERY


         SC ̲INFO ̲TYPE (BIT ̲0) = MDP ̲DELIVERED


         STOP














               Fig. 4.2.1.4.6.5-2


         SC ̲RELEASE ̲DIST ( )  (NO ̲OF ̲SCD, APP ̲PROFILE,
         SC ̲INFO ̲TYPE)


         START



         NO ̲OF ̲SCD = ZERO



         MDP ̲PARAM.DELIVERY ̲SCD ̲A (CHAR ̲ONE) NE "C"
         ?


         NO ̲OF ̲SCD = NO ̲OF ̲SCD + 1


         SCD (NO ̲OF ̲SCD) = MDP ̲PARAM.DELIVERY ̲SCD ̲A


         APP ̲PROFILE (BIT ̲2) = MSG ̲RELEASE


         SC ̲INFO ̲TYPE (BIT ̲0) = MDP ̲DELIVERED


         STOP




















               Fig. 4.2.1.4.6.5-3


         SC ̲COOR ̲DIST ( ) ( NO ̲OF ̲SCD, APP ̲PROFILE,
         SC ̲INFO ̲TYPE)


         START


         NO ̲OF ̲SCD = 0


         MDP ̲PARAM.DELIVERY ̲SCD ̲A (CHAR ̲ONE) NE "C"
         ?


         NO ̲OF ̲SCD = NO ̲OF ̲SCD + 1


         SCD (NO ̲OF ̲SCD) = MDP ̲PARAM.DELIVERY ̲SCD ̲A


         APP ̲PROFILE (BIT ̲1) = MSG ̲COOR


         SC ̲INFO ̲TYPE (BIT ̲0) = MDP ̲DELIVERED


         SC ̲INFO ̲TYPE (BIT ̲2) = SC ̲COORDINATION ̲RELEASE


         STOP



















                Fig. 4.2.1.6.5-4


4.2.1.4.7    M̲D̲C̲O̲ ̲I̲N̲V̲ ̲I̲N̲C̲



4.2.1.4.7.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs distribution of non
             CAMPS originated messages after they have
             been returned from the MDCO after MDCO
             invocation.  The actual distribution is
             performed by a set of utility modules
             and common procedures.



4.2.1.4.7.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  MDCO ̲INV ̲INC

             b)  MDCO ̲INV ̲INC (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.7.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             PERFORM ̲DISTRIBUTION (External Procedure)
             STA ̲SAR ̲DELIVERY (External Procedure)
             MDCO ̲RESPONSE (External Procedure)
             MDCO ̲INV ̲INC (Internal Procedure)
             MDP ̲WRITE BUFFER (External Procedure)

             See Figure 4.2.1.4.7.3-1.





              Fig. 4.2.1.4.4.7.3-1


4.2.1.4.7.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.7.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The main sequence in this module is shown
             on Figure 4.2.1.4.7.5-1.

             By the utility module READ ̲VIEW ̲AND ̲GET
             ̲SYS ̲PARAMS, the Action and Info SCD List
             is read into the MDP ̲BUFFER area.

             In the utility module PERFORM ̲DISTRIBUTION,
             the SCD list is converted to a Q ̲LIST
             and the actual delivery is performed too.
              The utility module STA ̲SAR ̲DELIVERY creates
             statistics records, calls the statistics
             collect monitor procedure and sends a
             copy of the message to the Storage and
             Retrieval Package.

             In the common procedure, MDCO ̲RESPONSE
             the message is returned to the MDCO if
             alternative distribution is necessary
             else, a finish distribution QEL will be
             sent.


         MDCO ̲INV ̲INC


         START



         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)



         SCD ̲POINTER = MDP ̲ACTION ̲SCD ̲OFFSET



         NO ̲OF ̲SCD = MDP ̲PARAM.NUMBER ̲OF ̲ACTION ̲SCD



         PERFORM ̲DISTRIBUTION (SCD ̲POINTER, NO ̲OF ̲SCD)
                              (ALT ̲DIST, NO ̲OF ̲AC ̲Q
                              ̲LINES, NO ̲OF ̲INFO ̲Q ̲LINES)


         STA ̲SAR ̲DELIVERY (INC ̲MSG ̲DIST ̲PER ̲DIST, INC
         ̲MSG ̲DIST ̲PER ̲TERM,
                      SAR ̲INC ̲MSG ̲AFT ̲SELL ̲OF ̲NOM ̲DIST
                     ̲LIST,
                      NO ̲OF ̲AC ̲Q ̲LINES + NO ̲OF ̲INFO
                     ̲Q ̲LINES, TRUE)


         MDP ̲WRITE ̲BUFFER (QUEUE ̲LIST ̲WRITE)


         MDCO ̲RESPONSE (ALT ̲DIST)



STOP












               Fig. 4.2.1.4.7.5-1


4.2.1.4.8    M̲D̲C̲O̲ ̲I̲N̲V̲ ̲O̲U̲T̲ ̲M̲O̲D̲U̲L̲E̲



4.2.1.4.8.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs distribution of CAMPS
             originated messages after they have been
             returned from the MDCO for MDCO invocation.
              The actual distribution is performed
             by a set of utility modules and common
             procedures.



4.2.1.4.8.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  MDCO ̲INC ̲OUT

             b)  MDCO ̲INC ̲OUT (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6   LINK                 (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.8.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             PERFORM ̲DISTRIBUTION (External Procedure)
             STA ̲SAR ̲DELIVERY (External Procedure)
             MDCO ̲RESPONSE (External Procedure)
             MDCO ̲INV ̲OUT (Internal Procedure)
             MDP ̲WRITE ̲BUFFER (External Procedure)

             See Figure 4.2.1.4.8.3-1









               Fig. 4.2.1.4.8.3-1


4̲.̲2̲.̲1̲.̲4̲.̲8̲.̲4̲ Da̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.8.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The main sequence in this module is shown
             on figure 4.2.1.4.8.5-1.  By the utility
             module READ ̲VIEW ̲AND ̲GET ̲SYS ̲
             PARAMS, the applicable SCD List is read
             into the MDP ̲BUFFER area.  In the utility
             module PERFORM ̲DISTRIBUTION, the actual
             SCD list is converted to a Q ̲LIST.  The
             actual SCD List is the Local distribution
             SCDs and the Action, Info SCDs derived
             from the HQ/SIC parameters.  The Delivery
             is performed in this procedure too.

             The utility module STA ̲SAR ̲DELIVERY creates
             statistics records, calls the Statistics
             collection monitor procedure and sends
             a copy of the message to the Storage and
             Retrieval Package.

             In the common procedure MDCO ̲RESPONSE,
             the message is returned to the MDCO if
             alternative distribution assistance is
             necessary else a finish distribution QEL
             will be sent.


         MDCO ̲INV ̲OUT


         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (SCD ̲LIST ̲FIELD)


         SCD ̲POINTER = MDP ̲DIST ̲SCD ̲OFFSET


         NO ̲OF ̲SCD = MDP ̲PARAM.NUMBER ̲OF ̲DIST ̲SCD 


         PERFORM ̲DISTRIBUTION (SCD ̲POINTER, NO ̲OF ̲SCD)
                         (ALT ̲DIST, NO ̲OF ̲AC ̲Q ̲LINES,
                     NO ̲OF ̲INFO ̲Q ̲LINES)


         STA ̲SAR ̲DELIVERY (OUT ̲MSG ̲DIST ̲PER ̲DIST, OUT
         ̲MSG ̲DIST ̲PER ̲TERM,
                      RELEASE ̲MSG, NO ̲OF ̲AC ̲Q ̲LINES
                     + NO ̲OF ̲INFO ̲Q ̲LINES,
                      TRUE)


         MDP ̲WRITE ̲BUFFER (QUEUE ̲LIST ̲WRITE)


         MDCO ̲RESPONSE


         STOP
















               Fig. 4.2.1.4.8.5-1


4.2.1.4.9    M̲D̲C̲O̲ ̲A̲L̲T̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.9.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs alternative distribution
             of messages and comments after they have
             been returned from the MDCO for alternative
             distribution assistance.  The actual distribution
             is performed by a set of utility modules
             and common procedures.



4.2.1.4.9.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  MDCO ̲ALT

             b)  MDCO ̲ALT (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.9.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (External Procedure)
             DELIVERY (External Procedure)
             MDCO ̲RESPONSE (External Procedure)
             CREATE ̲NEW ̲VIEW (External Procedure)
             MDCO ̲ALT (Internal Procedure)
             MDP ̲WRITE ̲BUFFER (External Procedure)


             See Figure 4.2.1.4.9.3-1







               Fig. 4.2.1.4.9.3-1


4.2.1.4.9.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.9.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The main sequence in this module is shown
             on figure 4.2.1.4.9.5-1.  By the utility
             module READ ̲VIEW ̲AND ̲GET ̲
             SYS ̲PARAMS, the alternative distribution
             list is read into the MDP ̲BUFFER.  The
             common procedure CREATE ̲NEW ̲
             VIEW creates a new view which references
             all the field from the received view except
             the QUEUE ̲LIST ̲FIELD. A new QUEUE ̲LIST
             ̲FIELD is created.

             A Q ̲LIST is created on basis of the alternative
             distribution list in the utility module
             CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST.

             The delivery to the terminal in the Q
             ̲LIST is performed by the utility module
             DELIVERY.

             In the common procedure MDCO ̲RESPONSE
             the message or comment is returned to
             the MDCO for further assistance if necessary
             else a finish distribution QEL will be
             sent.


         MDCO ̲ALT


         START

         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (QUEUE ̲LIST ̲FIELD)


         CREATE ̲NEW ̲VIEW 


         ERROR?     ALT ̲DIST=FALSE


         EQUIVALENCE (MDP ̲BUFFER(ALT ̲DIST ̲LIST ̲OFFSET),
                     ALT ̲DIST ̲LIST:  ALT ̲DIST ̲LIST
                     ̲TYPE);


         SCD ̲POINTER = % ALT ̲DIST ̲LIST.ALT ̲AC ̲SCD


         NO ̲OF ̲SCD = ALT ̲DIST ̲LIST.NO ̲OF ̲ALT ̲SCD +
         NO ̲OF ̲ALT ̲INFO ̲SCD

         CONV ̲SCD ̲LIST ̲TO ̲Q ̲LIST (SCD ̲POINTER,
                                  NO ̲OF ̲SCD,
                                  ZERO)
                                 (DUMMY,
                                  MAX ̲Q ̲ENTRY)


         DELIVERY (MDP ̲PARAM.ACTION ̲PREC,
              Q ̲LINE ̲START ̲NO,
              MAX ̲Q ̲ENTRY,
              MSG ̲DELIVERY)
             (ALT ̲DIST)


         MDP ̲WRITE ̲BUFFER (QUEUE ̲LIST ̲WRITE)



         MDCO ̲RESPONSE



         STOP



               Fig. 4.2.1.4.9.5-1


4.2.1.4.10 R̲E̲D̲I̲S̲T̲ ̲M̲S̲G̲ ̲M̲o̲d̲u̲l̲e̲



4.2.1.4.10.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This module performs Redistribution of
             incoming and outgoing messages.  Special
             parameters are set up in this module whereas
             the actual distribution is performed by
             a set of utility modules.



4.2.1.4.10.2 M̲o̲d̲u̲l̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             a)  REDIST ̲MSG

             b)  REDIST ̲MSG (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲

             R0 - R7                   (Dest.)



4.2.1.4.10.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (External
             Procedure)
             CREATE ̲NEW ̲VIEW (External Procedure)
             PERFORM ̲DISTRIBUTION (External Procedure)
             MDCO ̲DELIVERY (External Procedure)
             MDP ̲WRITE ̲BUFFER (External Procedure)
             REDIST ̲MSG (Internal Procedure)

             See Figure 4.2.1.4.10.3-1







               Fig. 4.2.1.4.10.3-1


4.2.1.4.10.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.10.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The main sequence in this module is shown
             on figure 4.2.1.4.10.5-1.  By the utility
             module READ ̲VIEW ̲AND ̲GET ̲
             SYS ̲PARAMS, the Redistribution List is
             read into the MDP ̲
             BUFFER.

             The common procedure CREATE ̲NEW ̲VIEW creates
             a new view which references all the fields
             from the received view except the QUEUE
             ̲LIST ̲FIELD.  A new QUEUE ̲LIST ̲FIELD is
             created.  A Q ̲LIST is created on basis
             of the Redistribution SCD list via the
             utility module PERFORM ̲DISTRIBUTION. 
             Via this module the actual delivery to
             the terminals is performed too.

             The Q ̲LIST is written into the new QUEUE
             ̲LIST ̲FIELD in the utility module MDP ̲WRITE
             ̲BUFFER.

             If MDCO assistance is necessary, the message
             will be sent to the MDCO by the common
             procedure MDCO ̲DELIVERY.



         REDIST ̲MSG


         START


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (Q ̲LIST ̲FIELD)


         CREATE ̲NEW ̲VIEW 


         ERROR?     ALT ̲DIST=FALSE


         EQUIVALENCE (MDP ̲BUFFER (ALT ̲DIST ̲LIST ̲OFFSET),
                 ALT ̲DIST ̲LIST:  ALT ̲DIST ̲LIST ̲TYPE);


         SCD ̲POINTER = % ALT ̲DIST ̲LIST.ALT ̲AC ̲SCD


         MDP ̲PARAM.NUMBER ̲OF ̲INFO ̲SCD = ALT ̲DIST ̲LIST.NO
         ̲OF ̲ALT ̲INFO ̲SCD


         PERFORM ̲DISTRIBUTION (SCD ̲POINTER,ALT ̲DIST
         ̲LIST.NO ̲OF ̲ALT ̲AC ̲SCD)(ALT ̲
                                DIST, NO ̲OF ̲AC ̲Q ̲LINES,
                              NO ̲OF ̲INFO ̲Q ̲LINES)


         MDP ̲WRITE ̲BUFFER (QUEUE ̲LIST ̲WRITE)


         ALT ̲DIST EQ TRUE?  MDCO ̲DELIVERY (MDP ̲PARAM.ACTION
         ̲PREC,MDCO ̲ALT ̲ASS,
                                            INFO ̲CONST.MSG
                                       ̲DELIVERY)


         STOP














               Fig. 4.2.1.4.10.5-1


4.2.1.4.11   R̲E̲A̲D̲ ̲V̲I̲E̲W̲ ̲A̲N̲D̲ ̲G̲E̲T̲ ̲S̲Y̲S̲ ̲P̲A̲R̲A̲M̲S̲



4.2.1.4.11.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This utility module reads the IMF ̲DESCRIPTOR
             ̲RECORD and the PARAMETER ̲INFO ̲RECORD from
             the ADMINISTRATION ̲FIELD.  Together with
             the ADMINISTRATION ̲FIELD, the CURRENT
             ̲SCD ̲FIELD is read into the MDP ̲BUFFER.
              The CURRENT ̲SCD ̲FIELD is either the SCD
             ̲LIST ̲FIELD or the QUEUE ̲LIST ̲FIELD which
             contains alternative or redistribution
             SCDs.

             The applicable parameters for MDP is transferred
             to the MDP ̲PARAM ̲RECORD.  The distribution
             parameter record is requested in this
             procedure too.



4.2.1.4.11.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

             a)  READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (CURRENT
                 ̲SCD ̲FIELD) 

             b)  READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (R4,
                 R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R4  CURRENT ̲SCD ̲FIELD     (Dest)
             R6  LINK                                            (Dest)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R0 - R7                                             (Dest)



4.2.1.4.11.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (Internal
             Procedure)
             CREATE ̲MDP ̲READ ̲FIELD ̲LIST (Internal Procedure)
             MOVE ̲IMF ̲PARAMS (Internal Procedure)


             See Figure 4.2.1.4.11.3-1








               Fig. 4.2.1.4.11.3-1


4.2.1.4.11.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.11.5 P̲r̲o̲c̲e̲d̲u̲r̲e̲ ̲D̲e̲s̲i̲g̲n̲

             This utility module has three internal
             procedures:

             -   READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (See
                 Figure 4.2.1.4.11.5-1)
             -   CREATE ̲MDP ̲READ ̲FIELD ̲LIST (See Figure
                 4.2.1.4.11.5-2)

             -   MOVE ̲IMF ̲PARAMS

             Figure 4.2.1.6.1.4-1 shows the structure
             of these procedures.  The READ ̲VIEW ̲AND
             ̲GET ̲SYS ̲PARAMS procedure calls the CREATE
             ̲MDP ̲READ ̲FIELD ̲LIST procedure in which
             the actual read FIELD ̲LIST is created.

             By the CSF procedure READ ̲VIEW, the IMF
             ̲DESCRIPTOR ̲TYPE and the PARAMETER ̲INFO
             ̲TYPE from the ADMINISTRATION FIELD is
             read into the MDP ̲BUFFER.  By the procedure
             MOVE ̲IMF ̲PARAMS, the applicable distribution
             parameter is read into the MDP ̲PARAM ̲RECORD
             from the two IMF records.  It shall be
             specified that the SICs are read into
             a special MDP SIC variable of type MDP
             ̲SIC ̲GROUP ̲TYPE.

             By the TMP procedure GET ̲SYSTEM ̲PARAMETERS,
             the special Distribution system parameter
             record is read into the data area MDP
             ̲SYS ̲PARAMS.


         READ ̲VIEW ̲AND ̲GET ̲SYS ̲PARAMS (CURRENT ̲SCD
         ̲FIELD)


         START


         CREATE ̲MDP ̲READ ̲FIELD ̲LIST (CURRENT ̲SCD ̲FIELD)(MDP
         ̲FIELD ̲LIST)


         MDP ̲READ ̲SIZE = (MDP ̲BUFFER ̲SIZE-IMF ̲READ
         ̲OFFSET) x 2


         SWITCH READ ̲VIEW (MDP ̲READ ̲SIZE,
                      MDP ̲FIELD ̲LIST,
                      MDP ̲VIEW ̲REF ̲1,
                      IMF ̲READ ̲OFFSET)
                     (MDP ̲FIELD ̲LIST, CC)

             ERROR ?  ANALYZE ̲ERROR (CC, O)

         END SWITCH

         MOVE ̲IMF ̲PARAMS () (MDP ̲PARAM)

         SWITCH TMP ̲GET ̲SYSTEM ̲PARAMETER (DISTRIBUTION
         ̲PARAMETER, 
                                          SIZE (DISTRIBUTION
                              ̲PARAMETERS),
                                          MDP ̲SYS ̲PARAM)
                                       (CC)

             ERROR ANALYZE ̲ERROR (CC, O)

         END SWITCH

         STOP














               Fig. 4.2.1.4.11.5-1


             CREATE ̲MDP ̲READ ̲FIELD ̲LIST(CURRENT ̲SCD
             ̲FIELD)(MDP ̲FIELD ̲LIST)



         START


         MDP ̲FIELD ̲LIST.MDP ̲NO ̲OF ̲FIELDS = NO ̲OF ̲READ
         ̲AREAS


         MDP ̲FIELD ̲LIST.FIELD ̲LIST ̲ENTRY(1).FIELD ̲GROUP
         ̲ID = ADM ̲FIELD


         MDP ̲FIELD ̲LIST.FIELD ̲LIST ̲ENTRY(1).FIELD ̲BYTE
         ̲ADDRESS = ZERO


         MDP ̲FIELD ̲LIST.FIELD ̲LIST ̲ENTRY(1).RECORD
         ̲LENGTH =
         (IMF ̲DESCRIPTOR ̲TYPE + PARAMETER ̲INFO ̲TYPE
         + CTS ATOMAL ̲DELETION ̲LOG) *2


         MDP ̲FIELD ̲LIST.FIELD ̲LIST ̲ENTRY(2).FIELD ̲GROUP
         ̲ID = CURRENT ̲SCD ̲FIELD


         MDP ̲FIELD ̲LIST.FIELD ̲LIST ̲ENTRY(2).FIELD ̲BYTE
         ̲ADDRESS = ZERO


         MDP ̲FIELD ̲LIST.FIELD ̲LIST ̲ENTRY(2).RECORD
         ̲LENGTH = MAX ̲SCD ̲FIELD ̲LENGTH


         STOP

















               Fig. 4.2.1.4.11.5-2


4.2.1.4.12   S̲I̲C̲ ̲C̲O̲N̲T̲R̲O̲L̲



4.2.1.4.12.1 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

             a)  SIC ̲CONTROL ( ) (MDCO ̲ERROR ̲LIST:
                  INTEGER;
                                        SIC ̲STATE:
                                             BOOLEAN;
                                        NO ̲OF ̲SIC:
                                             COUNTER
                                       ̲TYPE)

             b)  SIC ̲CONTROL (R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R6  LINK                  (Dest.)



4.2.1.4.12.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             SIC ̲CONTROL 
             SPECIAL ̲SIC
             SUBJECT ̲SIC
             EXERCISE ̲SIC              Internal Procedures
             FETCH ̲SIC
             MOVE ̲SIC


             UPDATE ̲MDCO ̲ERROR ̲LIST    External Procedure

             See Figure 4.2.1.4.12.3-1





               Fig. 4.2.1.4.12.3-1


4.2.1.4.12.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.12.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             The SICs are transferred to the SIC ̲BUFFER
             and analyzed, and only the SICs which
             shall be used in the actual distribution
             is returned to the MDP ̲PARAM ̲RECORD. The
             module are testing as follow:

                              SICS:                              ACTION:

            -                 AAA                                Accepted
                                                                 for
                                                                 distribution
                                                                 if
                                                                 AAA
                                                                 is
                                                                 the
                                                                 first
                                                                 SIC,
                                                                 a̲n̲d̲
                                                                 one
                                                                 of
                                                                 the
                                                                 following
                                                                 conditions
                                                                 is
                                                                 fulfilled:
                                                                 Special
                                                                 Handling
                                                                 =
                                                                 Atomal
                                                                 Special
                                                                 Handling
                                                                 =
                                                                 Crypto
                                                                 Specisl
                                                                 Handling
                                                                 =
                                                                 Exclusive
                                                                 Special
                                                                 Handling
                                                                 =
                                                                 National
                                                                 Eyes
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 Only
                                                                 Classification
                                                                 =
                                                                 Cosmic
                                                                 Top
                                                                 Secret
                                                                 a̲n̲d̲
                                                                 at
                                                                 least
                                                                 one
                                                                 of
                                                                 the
                                                                 following
                                                                 SICs
                                                                 is
                                                                 a
                                                                 subject
                                                                 SIC

                                                                 Otherwise
                                                                 queued
                                                                 to
                                                                 MDCO

            -                 ABA, ACA, ADA                      Queued
                                                                 to
                                                                 MDCO

            -                 AAB...ADZ                          Queued
                                                                 to
                                                                 MDCO
                                                                 (NON
                                                                 ̲EXISTING)

            -                 AEA- -AZZ                          Use
                                                                 SUBJECT
                                                                 ̲SIC
                                                                 with
                                                                 exercise
                                                                 distribution

                              EXCEPTION for                      AEN..AZN,
                                                                 AEB..AZB:
                                                                 Use
                                                                 EXERCISE
                                                                 ̲SIC
                                                                 with
                                                                 EXERCISE
                                                                 DISTRIBUTION

            -                 BAA..ZZZ                           SUBJECT
                                                                 ̲SICS

            The MDCO error list will be updated in
            accordance with the result of the control.



4.2.1.4.13   G̲E̲T̲ ̲S̲D̲L̲S̲ ̲A̲N̲D̲ ̲S̲O̲R̲T̲ ̲S̲C̲D̲S̲



4.2.1.4.13.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             This utility module gets the SDLs from
             TMP on basis of HQ and SIC information
             when the SDLs are received, the output
             is checked and the SCDs within the SDLs
             are sorted in action and Info.  At the
             end of the module the write params are
             appended.  These are offsets to the action
             and info SCDs within the SCD ̲LIST ̲FIELD
             and COUNTERS for the SCDs.



4.2.1.4.13.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

             a)  GET ̲SDLS ̲AND ̲SORT ̲SCDS                                 (NO
                                                                        ̲OF
                                                                        ̲SIC:
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        
                                                                        COUNTER
                                                                        ̲TYPE,
                                                                        (SDL
                                                                        ̲BUFFER
                                                                        ̲EMPTY:
                                                                        BOOLEAN,
                                                                        
                                                                        MDCO
                                                                        ̲ERROR
                                                                        ̲LIST:
                                                                        
                                                                        BOOLEAN)

             b)  GET ̲SDLS ̲AND ̲SORT ̲SCDS (R0, R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R6  LINK                  (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R0 - R7                   (Dest.)



4.2.1.4.13.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             GET ̲SDLS ̲AND ̲SORT ̲SCDs (Internal Procedure)
             CREATE ̲SEARCH ̲KEYS (Internal Procedure)
             CHECK ̲SDL ̲OUTPUT (Internal Procedure)
             SORT ̲SCDS (Internal Procedure)
             APPEND ̲WRITE ̲PARAMS (Internal Procedure)
             COMPARE ̲SCD (Internal Procedure)
             CALCULATE ̲NO ̲OF ̲SCDS (Internal Procedure)
             UPDATE ̲MDCO ̲ERROR ̲LIST (External Procedure)

             See Figure 4.2.1.4.13.3-1


4.2.1.4.13.4 D̲a̲t̲a̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲

             Refer Source Listings



4.2.1.4.13.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

             This utility module contains five internal
             procedures which are described in the
             following.

             a)  G̲E̲T̲S̲ ̲S̲D̲L̲s̲ ̲A̲N̲D̲ ̲S̲O̲R̲T̲ ̲S̲C̲D̲s̲

                 This procedure is the main procedure
                 within the module.  It creates the
                 key list in which the SICs is contained.
                  Then the internal procedure CREATE
                 ̲HQ ̲MASK is called.  The SIC and SDL
                 tables are then accessed via a call
                 to TMP.  When the output SDLs are
                 received, it is checked if they are
                 empty, if so the MDCO ̲ERROR ̲LIST is
                 updated via a call to the common procedure
                 UPDATE ̲MDCO ̲ERROR ̲LIST.  If the SDL
                 output was ok, the internal procedures
                 SORT ̲SCDs and CREATE ̲WRITE ̲PARAM is
                 called.

             b)  C̲R̲E̲A̲T̲E̲ ̲S̲E̲A̲R̲C̲H̲ ̲K̲E̲Y̲s̲

                 This procedure creates the search
                 keys for TMP by HQ information contained
                 in the less significant byte of the
                 second word in the MDP ̲QEL ̲ATTR, the
                 SICs in the MDP ̲PARAM record, the
                 crisis switch in the MDP ̲SYS ̲PARAMS
                 and the exercise information in the
                 MDP ̲QEL ̲ATTR.

             c)  C̲H̲E̲C̲K̲ ̲S̲D̲L̲ ̲O̲U̲T̲P̲U̲T̲

                 This procedure checks the current
                 output SDLs by check of the return
                 parameters in the key list.  If zeros
                 are identified in all the Action and
                 Info fields the SDL ̲BUFFER ̲EMPTY is
                 set true else it is set false.

             d)  S̲O̲R̲T̲ ̲S̲C̲D̲s̲

                 This procedure sorts the SCDs as shown
                 in figure 4.2.1.4.13.5-1.  The SDL
                 has no fixed length therefore the
                 procedure first walks through the
                 output and takes out the action SCDs
                 and then a second walks through where
                 it takes out the info SCDs.  The walk
                 through will be based on the counts
                 in front of each SCD set.  This procedure
                 may be expanded to more than one procedure.

                 Duplicate SCDs are deleted in this
                 procedure too.



             e)  A̲P̲P̲E̲N̲D̲ ̲W̲R̲I̲T̲E̲ ̲P̲A̲R̲A̲M̲

                 This procedure sets up the SCD List
                 parameter for the administration field
                 in the IMF.  It contains two counters
                 which specify the number of Action
                 and Info SCDs and the offsets which
                 specify the offset for the action
                 and info SCDs within the SCD ̲LIST
                 Field (see Figure 4.2.1.4.13.5-1).

             f)  C̲O̲M̲P̲A̲R̲E̲ ̲S̲C̲D̲S̲

                 This procedure are checking for duplicated
                 SCDs.

             g)  C̲A̲L̲C̲U̲L̲A̲T̲E̲ ̲N̲O̲ ̲O̲F̲ ̲S̲C̲D̲S̲

                 This procedure are calculating the
                 actual number of SCDs in the SD2.








               Fig. 4.2.1.4.13.5-1


4.2.1.4.14   M̲D̲P̲ ̲W̲R̲I̲T̲E̲ ̲B̲U̲F̲F̲E̲R̲



4.2.1.4.14.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

             This utility module writes the specified
             field.  This can either be the SCD list
             field and counters for these or it can
             be the Queue list field.



4.2.1.4.14.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲f̲i̲n̲i̲t̲i̲o̲n̲

             a)  MDP ̲WRITE ̲BUFFER (MDP ̲WRITE:  MDP
                 ̲WRITE ̲TYPE)

             b)  MDP ̲WRITE ̲BUFFER (R7, R6)

             R̲e̲g̲i̲s̲t̲e̲r̲ ̲C̲o̲n̲v̲e̲n̲t̲i̲o̲n̲s̲

             C̲a̲l̲l̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R6  LINK                  (Dest.)
             R7  MDP ̲WRITE ̲TYPE        (Dest.)

             R̲e̲t̲u̲r̲n̲ ̲R̲e̲g̲i̲s̲t̲e̲r̲s̲

             R0 - R7                   (Dest.)



4.2.1.4.14.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲

             MDP ̲WRITE ̲BUFFER (Internal Procedure)
             CREATE ̲SCD ̲LIST ̲WRITE ̲PARAMS (Internal
             Procedure)
             CREATE ̲QUEUE ̲LIST ̲WRITE ̲PARAMS (Internal
             Procedure)

             See Figure 4.2.1.4.14.3-1





               Fig. 4.2.1.4.14.3-1