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

⟦e153c5448⟧ Wang Wps File

    Length: 48648 (0xbe08)
    Types: Wang Wps File
    Notes: CPS/SDS/037               
    Names: »1876A «

Derivation

└─⟦3aebbc545⟧ Bits:30006093 8" Wang WCS floppy, CR 0145A
    └─ ⟦this⟧ »1876A « 

WangText

…00……00……00……00……00…:…02……00……00…:
:…06…:…07……12……0b……12……00……12……05……11……09……11……0d……11……01……11……05……10……09……10……0a……10……0e……10……00……10……01……10……02……10……06……0f……0a……0f……0f……0f…
…0f……07……0e……0c……0e……0f……0e……02……0e……05……0d……09……0d……0c……0d……86…1                                             …02…           …02…   …02…        

…02…CPS/SDS/037

…02…CGN/820514   …02……02…MDCO VDU
DETAILED DESIGN SPECIFICATION  CAMPS








4.2.2  M̲D̲C̲O̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲

       The Delivery Function Control Coroutine (DIFCO) subpackage
       performs the control of all MDCO transactions.  Furthermore,
       DIFCO performs the direct control of the VDU dialogue.



4.2.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̲

       The following functions are included in this subpackage:

       -   System control

       -   Transaction accounting

       -   Transaction creation

       -   Format sequence functions

       -   Error Handling

       Fig. 4.2.2.1-1 presents the functional breakdown.





                    Figs. 4.2.2.1-1/5


4.2.2.1.1    S̲y̲s̲t̲e̲m̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲1̲.̲0̲)̲

         The system control functions are those which indirectly
         involve the SSC package. The commands are received
         from DIVCO.

         a)  Initialization (1.1)

             Executes the function to be performed after load
             of software and which must be executed before normal
             operation can be initiated. Depending on the type
             of initialization, different actions are taken.

         b)  Start-Up (1.2)

             Executes the function to be performed after sign-on.
             The command validation table reflecting the user
             capability is defined.

         c)  Close-Down (1.3)

             This function provides the DIFCO with the capability
             of performing the following functions:

             -   Sign-off
             -   Block terminal
             -   Order close-down.



 .2.2.1.2    T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲A̲c̲c̲o̲u̲n̲t̲i̲n̲g̲ ̲(̲2̲.̲0̲)̲

         The transaction accounting function is concerning log
         .

         a)  Collect Data (2.1)

             The data which are used for log, and other purposes
             are collected in sequence table. There exists no
             special collecting procedures but all data which
             are pertinent for DIFCO will be placed in this
             area.

         b)  Log Reporting (2.2)

             The log reporting functions are those required
             to report final log records. The data which are
             required in a log record are extracted from the
             sequence table.



4.2.2.1.3    T̲r̲a̲n̲s̲a̲c̲t̲i̲o̲n̲ ̲C̲r̲e̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲0̲)̲

         The transaction creation group includes all the functions
         to be performed before a transaction may be started.

         a)  Receive and Validate (3.1)

             Function keys entered by a MDCO are received from
             the VDU. The received function key is validated
             against a function key bit mask.

             There are two bit masks.

             Bit mask (1) reflects the function keys which are
             allowed at the moment.

             Bit mask (2) reflects the function keys which will
             change the format sequence.



         b)  Define Next Function Key (3.2)

             If a function key must be followed by another,
             this is defined (i.e. RETURN shall follow COMMAND).

         c)  Receive Command Line (3.3)

             The contents of the VDU command line are received
             via the format handler.

         d)  Validate Command Line (3.4)

             The contents of the command line are validated.
             A command is validated against the command validation
             table. 

             Parameters are checked to be within the correct
             range.

         e)  Display Response Message (3.5)

             These functions display a response message in the
             VDU response line.

         f)  Execute Function Key

             The functions associated with the received function
             key are performed and the format sequence is changed.

         g)  Execute Command (3.7)

             The sequence table key is looked up in the command
             validation table and the format sequence is started.

         h)  Assign Transaction Number (3.8)
             Allocates next transaction no. for this terminal.



4.2.2.1.4    F̲o̲r̲m̲a̲t̲ ̲S̲e̲q̲u̲e̲n̲c̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲(̲4̲.̲0̲)̲

         The format sequence functions are those functions which
         are called from the format sequence table.

         This table makes it possible to drive the MMI in an
         automatic and flexible manner.



         It defines for each screen format:

         -   Allowed commands and function keys

         -   Functions to be called corresponding to commands/
             FC Keys

         -   LOG and SAR reporting required

         -   Cursor position

         -   Command to DIDIA

         -   Subsequently sequence record to be executed



4.2.2.1.4.1 S̲t̲a̲r̲t̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲4̲.̲1̲)̲

         The start execution functions are those which must
         be performed before a format is presented for a MDCO.

         a)  Create CIF /Buffer (4.1.1)

             These functions are those used to interface to
             the message management system.

         b)  Request CIF (4.1.2)

             If a continue preparation command is received,
             then the referenced CIF is fetched from the preparation
             database.

             If a receive command is received, then the first
             CIF in the corresponding queue is fetched.

         c)  Update VDU Header (4.1.3)

             These functions update the VDU header fields, classification
             and terminal function.



         d)  Display Error Code (4.1.4)

             These functions display a response message in the
             VDU response line.

         e)  Determine Message Type (4.1.5)

             These functions determine the format which shall
             be used for a message.



4.2.2.1.4.2 S̲t̲o̲p̲ ̲E̲x̲e̲c̲u̲t̲i̲o̲n̲ ̲(̲4̲.̲2̲)̲

         The stop execution functions are those which must be
         performed when a MDCO gives up access to a CIF.

         a)  Dismantle CIF / Buffer (4.2.1)

             These functions are those used to interface to
             the message management system.

         b)  Update Status (4.2.2)

             The service message status is updated. The service
             message under preparation is returned to the preparation
             database.

         c)  Update VDU Header (4.2.3)

             These functions update the VDU header fields, classification
             and terminal function.



4.2.2.1.4.3 Q̲u̲e̲u̲e̲ ̲R̲e̲q̲u̲e̲s̲t̲s̲ ̲(̲4̲.̲3̲)̲

         The queue request functions are those concerning the
         reception of messages.

         a)  Receive (4.3.1)

             The first CIF to which the requestor has access
             is received from a given queue.

         b)  Delete (4.3.2)

             This function removes a CIF from a queue.

         c)  Keep (4.3.3)

             This function returns a CIF to a queue.

         d)  Keep and Present next (4.3.4)

             This function returns a CIF to the queue from which
             it was received. The next CIF to which the requestor
             has access is returned.

         e)  Delete and Present next (4.3.5)

             This function removes a CIF from the queue from
             which it was received. The next CIF to which the
             requestor has access is returned.



4.2.2.1.4.4 R̲e̲q̲u̲e̲s̲t̲s̲ ̲t̲o̲ ̲C̲A̲M̲P̲S̲ ̲S̲y̲s̲t̲e̲m̲ ̲(̲4̲.̲4̲)̲

         The request functions are those concerning the treatment
         of messages (CIFs) and requests (buffers).



         a)  Send for transmission (4.4.1)

             A service message is sent for transmission by THP.

         b)  Send for distribution (4.4.2)

             A message for distribution assistance is sent for
             distribution by MDP.

         c)  Retrieve (4.4.3)

             A retrieve request is sent to SAR and the retrieved
             CIF and/or a response message is displayed.

         d)  Print (4.4.4)

             The CIF currently displayed on the VDU is sent
             to the associated printer.

         c)  Defer (4.4.5)

             The preparation is terminated and the CIF is sent
             to the preparation database.

         f)  Status request (4.4.6)

             Status request is sent to UMAM and the received
             CIF is displayed.

         g)  Edit/Delete Requests (4.4.7)

             A request is sent to UMAM and the referenced CIF
             or a response message is displayed.



4.2.2.1.5    E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

         The error handling function is separated into two parts:

         a)  Q ̲ERROR (5.1)

         This function handles error due to failure in communication
         between DIFCO and its queues and decides whether or
         not the processing may continue.

         b)  Internal (5.2)

         This function handles errors due to failure in communication
         between the subpackages communicating with DIFCO, and
         decides whether or not the processing may continue.



4.2.2.2  S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The DIFCO subpackage consists of one coroutine with
         operation semaphore S2 as the main waiting point.

         The input to DIFCO will be a command which is received
         from DIVCO, DIDIA, DIRT, the answer queue or the VDU.

         Each command will constitute a main function and is,
         as well as major function, implemented as a module.

         Furthermore some common procedures and module components
         exist.

         Refer figure 4.2.2.2-1.







                    Figs. 4.2.2.2-1/2


         COMMON SUBPACKAGE PROCEDURES


         1       VDU ̲INIT
         2       SET ̲CURSOR
         3       MDOS ̲RECV ̲FIRST
         4       DISPLAY ̲ERROR ̲MSG
         5       DISPLAY ̲VDU ̲FIELD
         6       MDOS ̲RECV ̲NEXT
         7       CALCULATE ̲FORMAT
         8       TEP ̲CREATE ̲CIF
         9       TEP ̲CREATE ̲NEW ̲CIF
         10      MDOS ̲NEW ̲VIEW
         11      MDOS ̲TRSERNO
         12      CALCULATE ̲MENU
         13      TEP ̲RETURN ̲VIEW
         14      TEP ̲SAVE ̲VIEW
         15      TEP ̲READ ̲BUFFER
         16      TEP ̲WRITE ̲BUFFER
         17      TEP ̲RESERVE ̲BUFFER
         18      COPY ̲TEXT ̲FIELDS
         19      UPDATE ̲VDU ̲HEADER
         20      SEND ̲TO ̲MDP
         21      SEND ̲TO ̲THP
         22      SEND ̲REQUEST ̲TO ̲UMAM
         23      SEND ̲REQUEST ̲TO ̲SAR
         24      SEND ̲TO ̲ASS ̲PRINTER
         25      TEP ̲CLOSE ̲VIEW
         26      TEP ̲OPEN ̲VIEW
         27      SEND ̲SPECIAL ̲PRINT
         28      COPY ̲CIF ̲FIELD
         29      MDOS ̲FIRST ̲QEL
         30      FREE DIFCO OPERATION
         31      FETCH ̲DIFCO ̲OPERATION


4.2.2.3  D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲



4.2.2.3.1    D̲a̲t̲a̲ ̲F̲l̲o̲w̲

         The HIPO diagrams overleaf show the data flow of DIFCO.



4.2.2.3.2    C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         The control logic of DIFCO is shown in the module-tree
         in figure 4.2.2.3-1.








                   Diag. ID: 4.2.2.3/24







                      Fig. 4.2.2.3-1


4.2.2.4  M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         DIFCO ̲MAIN                     (4.2.2.4.1)
         RESTART ̲DIFCO                  (4.2.2.4.2)
         MDOS ̲ANSWER ̲Q ̲PROCESSING       (4.2.2.4.3)
         MDOS ̲FC ̲KEY ̲PROCESSING         (4.2.2.4.4)
         DIVCO ̲CMD ̲PROCESSING           (4.2.2.4.5)
         DIDIA ̲CC ̲PROCESSING            (4.2.2.4.6)
         DIRT ̲OP ̲PROCESSING             (4.2.2.4.7)
         MDOS ̲IN OUT ̲LINE               (4.2.2.4.8)
         MDOS ̲CMD ̲PENDING               (4.2.2.4.9)
         MDOS ̲DISP ̲RESP ̲MSG             (4.2.2.4.10)
         MDOS ̲SEQUENCE                  (4.2.2.4.11)
         FUNCTION EXECUTION             (4.2.2.4.12)



4.2.2.4.1    D̲I̲F̲C̲O̲ ̲M̲A̲I̲N̲



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

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  DIFCO ̲MAIN
         b)  DIFCO ̲MAIN (R6)

         This module is only called by Coroutine Monitor.

         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.2.4.1.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲




4.2.2.4.1.3.1    C̲L̲E̲A̲R̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲

         Dismantle QEL's in answer queue.

4.2.2.4.1.3.2    D̲i̲s̲p̲l̲a̲y̲ ̲m̲a̲x̲ ̲C̲l̲a̲s̲s̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲

         The MAX classification capability of the user signed
         on at the MDCO terminal is displayed in the VDU-header


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

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             MDOS ̲CO ̲OP ̲TYPE            refer 4.1.4
             CLASSIFICATION ̲TYPE        refer 4.2.2.5
             SENDER ̲ID ̲TYPE             refer 4.1.4
             QEL ̲ATTRIBUTES ̲TYPE        refer CPS/DBD/001
             QEL ̲REFERENCE ̲TYPE         refer CPS/DBD/001
             USER ̲CAPABILITY ̲TYPE       refer CPS/DBD/001

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             MDOS ̲S1                    refer 4.1.4
             MDOS ̲S2                    refer 4.1.4
             MDOS ̲S3                    refer 4.1.4
             DIVCO ̲OP                   refer 4.1.4
             FC ̲KEY ̲OP (m)              refer 4.1.4
             CLOSE ̲DOWN (m)             refer 4.2.2.5
             MDOS ̲ACTIV (m)             refer 4.1.4
             VDU ̲CLASS ̲TYPE (m)         refer 4.1.4
             CURRENT ̲CLASS (m)          refer 4.1.4
             VDU ̲SPLIT ̲FLAG             refer 4.2.2.5
             CO ̲CMD ̲TYPE                refer 4.1.4
             MDOS ̲QNAME                 refer 4.1.4





             ANQ ̲OP: (m)                   refer 4.1.4
             MDOS ̲ATTR                     refer 4.1.4
             INTERNAL ̲ERROR ̲INF ̲TYPE       refer CPS/DBD/001       START
                                                                   ̲FLAG
                                                                   (m) refer
                                                                       4.2.2.5
             FC ̲KEY ̲TYPE                   refer 4.2.2.5
             SPLIT ̲DIGIT (m)               refer 4.1.4
             SEQUENCE ̲FORMAT ̲NO. (m)       refer 4.2.2.5
             SEQUENCE ̲CODE ̲NO (m)          refer 4.2.2.5
             HEADER ̲IFCB                   refer 4.1.4

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None



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

         Commands received from DIVCO or DIDIA are analysed.
         The following actions are taken:

         Initialization and restart and close down cmds before
         system starts is performed and cmds are signalled to
         DIDIA.

         Two system calls are performed in order to open for
         input from Answer Queue and FC ̲key.

         Unknown QEL from Answer Q is sent to SSC.

         A loop is entered in order to distribute input from
         Answer Queue, FC ̲keys, DIVCO, DIDIA and DIRT to modules
         which are taken over for further treatment.

         System errors will be treated by the Error Reporting
         Procedure, which is common to all modules within MDOP.


DIFCO START

   WAIT ̲OPSEM(MDOS ̲S2)(MDOS ̲OP): OK

   CASE MDOS ̲OP.OP ̲ID(2) OF SENDER ̲ID ̲TYPE

       DIVCO ̲IDENT? CASE DIVCO ̲OP.CMD OF DIVCO ̲CMD ̲TYPE

                     INIT ̲DIFCO ̲CMD?     V̲D̲U̲ ̲I̲N̲I̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲6̲.̲1̲)̲
                                         MOVE INIT ̲DIFCO
                                         ̲CC TO DIVCO ̲OP.CMD

                     RESTART ̲DIFCO ̲CMD?  R̲E̲S̲T̲A̲R̲T̲ ̲D̲I̲F̲C̲O̲
                                         ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲)̲
                                         MOVE RESTART
                                         ̲DIFCO ̲CC TO …02…DIVCO
                                         ̲OP.CMD

                     OTHERWISE?          T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲
                                         ̲E̲R̲R̲O̲R̲ ̲(GIVE ̲UP)(̲4̲.̲1̲.̲5̲.̲2̲)̲

                     END CASE

                     MOVE DIFCO ̲IDENT TO DIVCO ̲OP.OP ̲ID(2)
                     SIGNAL ̲OPSEM(MDOS ̲S1, DIVCO ̲OP)(CC):
                     OK

       OTHERWISE?  ̲ T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

   END CASE

   S̲T̲A̲R̲T̲ ̲L̲O̲O̲P̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲2̲)̲

   CLOSE DOWN LOOP

       WAIT ̲OPSEM(MDOS ̲S2)(MDOS ̲OP): OK

   END CLOSE DOWN LOOP


END

                  Fig. 4.2.2.4.2-1


   START LOOP

       CLOSE ̲DOWN = FALSE

       WAIT ̲LOOP 

         WAIT ̲OPSEM(MDOS ̲S2)(MDOS ̲OP): OK

         CASE MDOS ̲OP.OP ̲ID(2) OF SENDER ̲ID ̲TYPE

             DIVCO ̲IDENT?   D̲I̲V̲C̲O̲ ̲S̲T̲A̲R̲T̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲4̲)̲

             OTHERWISE?   T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲
             ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

         END CASE

         DIVCO ̲OP.CMD EQ START DIFCO OR CLOSE DOWN   EXIT
         ̲WAIT ̲LOOP

       END LOOP

       CLOSE ̲DOWN EQ TRUE?

       C̲L̲E̲A̲R̲ ̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲3̲.̲1̲)̲

       MDOS ̲QNAME.MAIN = MDOS ̲ANQ

       CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, MDOS ̲QNAME, ANQ
       ̲OP)
                                         (CC): ERROR ̲OK

         ERROR?ANALYZE  ̲ERROR(CC,0) 

         OK?   ASSOCIATE(MDOS ̲S2)(ANQ ̲OP): OK

       END CASE

       CASE INIT ̲RECEIVE ̲CONTROL(HEADER ̲IFCB, FC ̲KEY ̲OP)
                                         (CC): ERROR ̲OK

           ERROR?:ANALYZE  ̲ERROR(CC,0)

           OK?  MOVE HEADER ̲IFCB TO SPLIT ̲DIGIT

                ASSOCIATE(MDOS ̲S2)(FC ̲KEY ̲OP): OK

                U̲S̲E̲R̲ ̲O̲N̲ ̲L̲O̲O̲P̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲3̲)̲

       END CASE

       CLOSE DOWN EQ TRUE?   EXIT START LOOP

   END START LOOP
                  Fig. 4.2.2.4.1-2



   USER ON LOOP

       WAIT(MDOS ̲S2)(MDOS ̲OP): OK

       VDU ̲SPLIT ̲FLAG EQ TRUE?   MDOS ̲OP.OP ̲ID(2) EQ DIVCO
       ̲IDENT?

                                 D̲I̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
                        ̲4̲.̲2̲.̲2̲.̲4̲.̲5̲)̲

       CASE MDOS ̲OP.OP ̲ID(2)OF:

         ANQ ̲IDENT? M̲D̲O̲S̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲)̲

                    MDOS ̲QNAME.MAIN = MDOS ̲ANQ

                     CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,MDOS
                     ̲QNAME,ANQ ̲                                               
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              
                                                                              OP)
                                               (CC): ERROR
                                         ̲OK

                        ERROR? ANALYZE ̲ERROR(CC,0) 

                        OK? ASSOCIATE(MDOS ̲S2  ANQ ̲OP):
                        OK

                     END CASE

         FC ̲KEY ̲IDENT?  M̲D̲O̲S̲ ̲F̲C̲ ̲K̲E̲Y̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲)̲

                        CASE INIT ̲RECEIVE ̲CONTROL(SPLIT
                        ̲DIGIT)
                        FC ̲KEY ̲OP)(CC): ERROR ̲OK

                           ERROR? ANALYZE  ̲ERROR(CC,0)
                        

                           OK? ASSOCIATE(MDOS ̲S2  FC ̲KEY
                        ̲OP): OK

                        END CASE

         DIVCO ̲IDENT?  D̲I̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲)̲

         DIDIA ̲IDENT? D̲I̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲)̲

         DIRT ̲IDENT?  D̲I̲R̲T̲ ̲O̲P̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲7̲)̲

         OTHERWISE?  T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

       END CASE

       CLOSE ̲DOWN EQ TRUE?     EXIT USER ̲ON LOOP

       MDOS ̲ACTIV EQ FALSE?    EXIT USER ̲ON ̲LOOP

   END USER ON LOOP

   C̲A̲N̲C̲E̲L̲ ̲S̲Y̲S̲T̲E̲M̲ ̲C̲A̲L̲L̲S̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲-̲5)
                  Fig. 4.2.2.4.1-3



DIVCO ̲START ̲PROCESSING

   CASE DIVCO ̲OP.CMD OF DIVCO ̲CMD ̲TYPE

       CLOSE ̲DOWN ̲DIFCO ̲CMD?  MOVE DIFCO ̲IDENT TO DIVCO
       ̲OP.OP ̲ID(2)

                             MOVE CLOSE ̲DOWN ̲DIFCO ̲CC
                             TO DIVCO ̲OP.CMD

                             SIGNAL ̲OPSEM(MDOS ̲S1, DIVCO
                             ̲OP): OK

                             CLOSE ̲DOWN = TRUE

       START ̲DIFCO ̲CMD?      D̲I̲S̲P̲L̲A̲Y̲ ̲M̲A̲X̲ ̲C̲L̲A̲S̲S̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
                             ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲.̲3̲)̲

                             SEQUENCE ̲FORMAT ̲NO = MDOS
                             ̲MENU

                             SEQUENCE ̲CODE ̲NO = SEQ ̲START

                             MDOS ̲ACTIVE = TRUE

                             START ̲FLAG = TRUE

                             M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(4.2.2.4.11)
                             

       OTHERWISE?   T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

   END CASE


                  Fig. 4.2.2.4.1-4



   CANCEL SYSTEM CALLS


       CANCEL ̲SYSTEM ̲CALL(ANQ ̲OP): OK

       CASE WAIT ̲SYSTEM CALL (ANQ ̲OP)(MDOS ̲ATTR, MDOS
       ̲QEL

                              (SUBQUEUE, CC): ERROR ̲OK

         ERROR? CASE ANALYZE  ̲ERROR(CC, 1, CANCELLED)(LI)

                 LI?

             END CASE

         O̲K̲?̲ D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲M̲D̲O̲S̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲

       END CASE

       CANCEL ̲SYSTEM ̲CALL(FC ̲KEY ̲OP) : OK

       CASE WAIT ̲SYSTEM CALL (FC ̲KEY ̲OP)(SPLIT ̲DIGIT,FC
       ̲KEY ̲TYPE,

                             cc): ERROR ̲OK

       ERROR?    CASE ANALYZE  ERROR (CC, 1, CANCELLED):
                 (LI)

                     LI?


                 END CASE

       OK?


       END CASE


   END







                  Fig. 4.2.2.4.1-5


4.2.2.4.2    R̲E̲S̲T̲A̲R̲T̲ ̲D̲I̲F̲C̲O̲



4.2.2.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̲

         The purpose of this module is to initialize the Format
         Handler and to send the contents of the Answer Queue
         to UMAM or to the common Message Distribution Assistance
         queue.



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

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  RESTART ̲DIFCO

         b)  RESTART ̲DIFCO (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.2.4.2.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲



4.2.2.4.2.3.1 S̲E̲N̲D̲ ̲T̲O̲ ̲U̲M̲A̲M̲

             The received QEL in the Answer Queue is sent further
             to UMAM.





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

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             QUEUE ̲REFERENCE ̲TYPE       refer CPS/DBD/001
             QEL ̲ATTRIBUTES ̲TYPE:       refer CPS/DBD/001
             QEL ̲REFERENCE ̲TYPE:        refer CPS/DBD/001
             SEND ̲PARAMS ̲TYPE:          refer CPS/DBD/001
             QELMENT ̲MAIN ̲TYPE:         refer CPS/DBD/001
             TEP ̲INTERNAL ̲SUBTYPE       refer CPS/DBD/001
             MESSAGE ̲SUBTYPE            refer CPS/DBD/001

             MDOS ̲CO ̲OP ̲TYPE:           refer 4.1.4
             SENDER ̲ID ̲TYPE:            refer 4.1.4

             E̲X̲T̲E̲R̲N̲A̲L̲ ̲D̲A̲T̲A̲

         b)  MDOS ̲S3                    refer 4.1.4
             ANQ ̲OP                     refer 4.1.4
             MDOS ̲SEND ̲PARAMS           refer 4.1.4
             MDOS ̲ATTR                  refer 4.2.2.5
             MDOS ̲QEL                   refer 4.2.2.5
             QERROR ̲INF ̲TYPE            refer 4.1.4
             MDOS ̲QNAME                 refer 4.1.4

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲



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

         This module consists of a loop, which receives QEL's
         from The Answer Queue and sends them. The destination
         is the PREP ̲Q within UMAM for service messages and
         MDQ within MDOS for distribution assistance messages.



   RESTART ̲DIFCO

       QUEUE LOOP

         CASE RECEIVE ̲FIRST ̲QEL(NO ̲WAIT, MDOS ̲ANQ)
                     (MDOS ̲ATTR, MDOS ̲QEL, SUBQUEUE, CC):
                     ERROR ̲OK

             ERROR? CASE ANALYZE  ̲ERROR(CC, 2, QEL ̲PROFILE
             ̲CHECK,
                                      QUEUE ̲EMPTY):(ULAB1,
                                      ULAB2)

                        ULAB1?

                        ULAB2?   EXIT QUEUE LOOP

                    END CASE

             OK?

         END CASE

         Q̲E̲L̲ ̲S̲O̲R̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲-̲2̲)̲

         S̲A̲V̲E̲ ̲V̲I̲E̲W̲E̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲-̲4̲)̲

       END QUEUE LOOP

       V̲D̲U̲ ̲I̲N̲I̲T̲(̲4̲.̲2̲.̲2̲.̲6̲.̲1̲)̲


   END

                  Fig. 4.2.2.4.2-1



   QEL SORT

       CASE MDOS ̲ATTR.HEADER. MAINTYPE OF QELEMENT ̲MAIN
       ̲TYPE

         INITIAL ̲MAINTYPE?MDOS ̲ATTR.HEADER:MAINTYPE =
         TEP ̲INTERNAL
                          MDOS ̲ATTR.HEADER ̲SUBTYPE = UNKNOWN
                          ̲STATUS ̲                                              
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               
                                                                               CHANGE

                          S̲E̲N̲D̲ ̲T̲O̲ ̲U̲M̲A̲M̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲3̲.̲1̲)̲


         PLAINDRESS ̲SERVICE,

         ABB ̲PLAINDRESS ̲SERVICE,

         ABB ̲SERVICE!        S̲E̲N̲D̲ ̲T̲O̲ ̲U̲M̲A̲M̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲.̲3̲.̲1̲)̲

         PLAINDRESS,

         PLAINDRESS ̲DATA,

         SC ̲PLAINDRESS,

         SC ̲PLAINDRESS DATA,

         ABB ̲PLAINDRESS,

         ABB ̲PLAINDRESS ̲DATA,

         COMMENT?            S̲E̲N̲D̲ ̲T̲O̲ ̲M̲D̲O̲S̲ ̲M̲D̲Q̲ ̲(̲-̲3̲)̲

         OTHERWISE?       M̲D̲O̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲ ̲(̲D̲I̲S̲M̲)̲
                          ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲


   END CASE


END












                  Fig. 4.2.2.4.2-2


   SEND TO MDOS ̲MDQ

       CASE MDOS ATTR.HEADER.SUBTYPE OF MESSAGE SUBTYPE

             ALTERNATIVE DISTRIBUTION ASSISTANCE?

                 MDOS ̲QNAME.MAINQ = MDOS ̲MDQ

                 MDOS ̲SEND ̲PARAMS.HEADER = MDOS ̲ATTR.HEADER

                 CASE SEND ̲QEL (MDOS ̲SEND ̲PARAMS, MDOS
                 ̲QEL,

                                MDOS ̲QNAME)(MDOS ̲SEND
                                ̲PARAMS,

                                CC):  ERROR ̲OK

                 ERROR?   ANALYZE ̲ERROR (CC, 0)

                 OK?


                 END CASE


             OTHERWISE?   T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲


       END CASE


END

















                  Fig. 4.2.2.4.2-3


   SAVE ̲VIEWET

   CASE SAVE ̲VIEW(DISMANTLE, MDOS ̲QEL)(CC): ERROR ̲OK

       ERROR? ANALYZE  ̲ERROR(CC,0)

       OK?

   END CASE



END

                  Fig. 4.2.2.4.2-4



         SEND TO UMAM

             CASE MDOS ATTR ̲HEADER.SUBTYPE

                 FOR CONTINUED PREP?

                     MDOS ̲ATTR.HEADER.FLAG.CAMPS ORIGINATED
                     EQ
                                                          TRUE?

                         MDOS ̲QNAME.MAINQ = UMAM ̲COLLECT

                         MDOS ̲QNAME.SUBQ = PREP ̲SUB

                         MDOS ̲SEND ̲PARAMS.HEADER = MDOS ̲ATTR.
                                                         HEADER


                          CASE SEND QEL(MDOS ̲SEND ̲PARAMS,ANQ
                     ̲QEL,

                                    MDOS ̲QNAME)(MDOS ̲SEND ̲PARAMS,

                                    CC): ERROR ̲OK

                                                                 
                          ERROR?        ANALYZE ̲ERROR(CC, 0)

                                                                     
                                                                     
                                                                     
                                                                     
                                                                     
                                                                     OK?

                          END CASE

                     T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)

                 OTHERWISE?   T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲                   U̲P̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲


             END CASE









                    Fig. 4.2.2.4.2.3-1


4.2.2.4.3    M̲D̲O̲S̲ ̲A̲N̲S̲W̲E̲R̲ ̲Q̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲



4.2.2.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̲

   The purpose of this module is to receive items placed
   in the Answer Queue, analyse the input and check if
   it is in accordence with the expected input, otherwise
   it will be rejected.

   The sequence format and code number will be found and
   the MDOS ̲SEQUENCE procedure will be entered.


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

   C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

   a)  MDOS ̲ANSWER ̲Q ̲PROCESSING

   b)  MDOS ̲ANSWER ̲Q ̲PROCESSING (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̲s̲

   R6    LINK    (DEST)

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

   R0 - R7           (DEST)



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



4.2.2.4.3.3.1 E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲

             UMAM error responce will be analysed and
             the error message will be displayed in VDU
             ̲responce ̲line.





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

   a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

       MDOS ̲CO ̲OP ̲TYPE refer 4.1.4
       QEL ̲ATTRIBUTES ̲TYPE   refer CPS/DBD/001
       QEL ̲REFERENCE ̲TYPE    refer CPS/DBD/001
       Q ̲REFERENCE ̲TYPE      refer CPS/DBD/001
       ANQ ̲OP ̲PENDING  refer 4.2.2.5
       QELEMENT ̲MAIN ̲TYPE refer CPS/DBD/001
       MESSAGE ̲SUBTYPE refer CPS/DBD/001
       TEP ̲INTENAL ̲SUBTYPE   refer CPS/DBD/001
       ACK ̲SUBTYPE   refer CPS/DBD/001
       UMAM ̲RESPONSE ̲TYPE refer CPS/SDS/039 sec.4.2.5
       EDIT ̲ANS ̲TYPE refer CPS/SDS/039 sec.4.2.5
       DELETE ̲ANQ ̲TYPE refer CPS/SDS/039 sec.4.2.5
       NOT ̲OK ̲TYPE   refer CPS/DBD/001
       Q ̲ERROR ̲INT ̲TYPE   refer CPS/DBD/001

   b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

       ANQ ̲OP: MDOS ̲CO ̲OP ̲TYPE  refer 4.1.4
       MDOS ̲ATTR refer 4.1.4
       MDOS ̲RECV ̲ATTR  refer 4.1.4
       SEQUENCE ̲FORMAT ̲NO: (m)  refer 4.2.2.5
       SEQUENCE ̲CODE ̲NO: (m) refer 4.2.2.5
       ERROR ̲NO  refer 4.2.2.5
       ANS ̲FLAG (m)  refer 4.2.2.5
       INPUT ̲CIF refer 4.1.4
       MDOS ̲QEL  refer 4.1.4

       L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

       VAR : BAP ̲FLAG = BOOLEAN
       INIT: BAP ̲FLAG = FALSE



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

       QEL maintype, and subtype and flags are analyzed.
       The variable ANQ ̲OP.CMD will indicate which maintype
       and subtype are expected by the system. Unexpected
       QEL's are reported.…86…1   …02…   …02… …02…   …02…   …02…   …02…          
              …02…                              
   MDOS ̲ANSWER ̲Q ̲PROCESSING

   CASE WAIT ̲SYSTEM ̲CALL(NO ̲WAIT, MDOS ̲ANQ)(MDOS ̲ATTR
   MDOS ̲QEL,
                                        SUBQUEUE, CC):
                     ERROR ̲OK

       ERROR? ANALYZE ̲ERROR(CC,0)

       OK? M̲D̲O̲S̲ ̲A̲N̲Q̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲-̲2̲)̲

   END CASE

   END ANSWER ̲Q ̲PROCESSING



                  Fig. 4.2.2.4.3-1



   MDOS ̲ANQ ̲QEL ̲PROCESSING

       MDOS ̲RECV ̲ATTR = MDOS ̲ATTR

       CASE ANQ ̲OP.CMD OF ANQ ̲OP ̲PENDING

         EDIT ̲PLAIN ̲SERVICE?            E̲D̲I̲T̲ ̲P̲L̲A̲I̲N̲ ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲3̲)̲

         EDIT ̲ABB ̲PLAIN ̲SERVICE?        E̲D̲I̲T̲ ̲A̲B̲B̲ ̲P̲L̲A̲I̲N̲
                                        ̲S̲E̲R̲V̲I̲C̲E̲ ̲(̲-̲4̲)̲

         EDIT ̲ABB ̲SERVICE?              E̲D̲I̲T̲ ̲A̲B̲B̲ ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲5̲)̲

         REQ ̲STATUS?                    R̲E̲Q̲ ̲S̲T̲A̲T̲U̲S̲(̲-̲6̲)̲

         REQ ̲DELETE ̲SERV ̲MSG?           R̲E̲Q̲ ̲D̲E̲L̲E̲T̲E̲ ̲S̲E̲R̲V̲
                                        ̲M̲S̲G̲(̲-̲7̲)̲

         REQ ̲LOG?                       R̲E̲Q̲ ̲L̲O̲G̲(̲-̲8̲)̲

         SEND ̲ABB ̲PLAIN ̲SERVICE?        S̲E̲N̲D̲ ̲A̲B̲B̲ ̲P̲L̲A̲I̲N̲
                                        ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲9̲)̲

         SEND ̲ABB ̲SERVICE?              S̲E̲N̲D̲ ̲A̲B̲B̲ ̲S̲E̲R̲V̲I̲C̲E̲(̲-̲1̲0̲)̲

         SEND MSG ̲DIST ̲ASSISTANCE?      S̲E̲N̲D̲ ̲M̲S̲G̲.̲D̲I̲S̲T̲
                                        ̲A̲S̲S̲I̲S̲T̲A̲N̲C̲E̲(̲-̲1̲1̲)̲

       END CASE

       ANQ ̲OP.CMD = NO ̲PENDING

   END















                 Figure 4.2.2.4.3-2


EDIT PLAIN ̲SERVICE

   CASE MDOS ̲ATTR.HEADAER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

         PLAINDRESS ̲SERVICE?

             CASE MDOS.ATTR.HEADER.SUBTYPE OF MESSAGE
             ̲SUBTYPE

                 FOR COMTINUED ̲PREP?

                     MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
                     EQ TRUE?

                        INPUT CIF = MDOS ̲QEL

                        SEQUENCE ̲FORMAT ̲NO = SM ̲PLAIN

                        SEQUENCE ̲CODE ̲NO = START

                        M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                     T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                 OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

       TEP INTERNAL?  E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲3̲.̲1̲)̲

       OTHERWISE?  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

END CASE














                 Figure 4.2.2.4.3-3


   EDIT ̲ABB ̲PLAIN ̲SERVICE

   CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

       ABB ̲PLAINDRESS ̲SERVICE?

             CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE
             ̲SUBTYPE

                 FOR ̲CONTINUED ̲PREP?

                     MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
                     EQ TRUE?

                        INPUT ̲CIF = MDOS ̲QEL

                        SEQUENCE ̲FORMAT.NO = SM ̲ABB ̲PLAIN

                        M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                     T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                 OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

         END CASE

       T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲:̲ ̲E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲3̲.̲1̲)̲

       O̲T̲H̲E̲R̲W̲I̲S̲E̲?̲ ̲T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE















                 Figure 4.2.2.4.3-4


   EDIT ̲ABB ̲SERVICE

   CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

       ABB ̲SERVICE?

         CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE ̲SUBTYPE

              FOR CONTINUED PREP?

                 MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
                 EQ TRUE?

                     INPUT CIF = MDOS ̲QEL

                     SEQUENCE ̲FORMAT ̲NO = SM ̲ABB

                     SEQUENCE ̲CODE ̲NO = START

                     M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                 T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             O̲T̲H̲E̲R̲W̲I̲S̲E̲ ̲T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

         END CASE

       TEP INTERNAL? E̲D̲I̲T̲ ̲A̲N̲S̲ ̲V̲A̲L̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲3̲.̲3̲.̲1̲)̲

       OTHERWISE T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE













                 Figure 4.2.2.4.3-5


   REQ ̲STATUS

   CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

        STATUS? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF STATUS
       ̲SUBTYPE

                   OUTGOING ̲SERVICE ̲MSG ̲STATUS?

                        INPUT CIF = MDOS ̲QEL

                        SEQUENCE ̲FORMAT ̲NO = MDOS ̲STATUS

                        SEQUENCE ̲CODE ̲NO = START

                        M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                   OTHERWISE ? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

         OTHERWISE ? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE

   END



















                 Figure 4.2.2.4.3-6


   REQ ̲DELETE ̲SERV ̲MSG

   CASE MDOS ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

        TEP ̲INTERNAL?

             CASE MDOS ATTR.HEADER.SUBTYPE OF TEP ̲INTERNAL
             SUBTYPE

                  UMAM ̲ERROR ̲RESP?

                     CASE MDOS ̲ATTR.HEADER.INF OF DELETE
                     ̲ANS ̲TYPE

                        DELETED? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
                        ̲N̲O̲)̲
                                                 (4.2.2.6.4)

                        CIF ̲NOT ̲FOUND? D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
                        ̲N̲O̲)̲
                                                     
                                         (4.2.2.6.4)

                        OTHERWISE? BAD ̲FLAG = TRUE

                                   T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲
                                                  (4.1.5.1)

                     END CASE

                  OTHERWISE ? BAD ̲FLAG = TRUE

                     T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

        OTHERWISE? BAD ̲FLAG = TRUE

              T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE

   BAD ̲FLAG EQ TRUE?

   SEQUENCE ̲CODE ̲NO = UMAM ̲DELETE ̲CC

   M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

   D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲

   BAD ̲FLAG = FALSE

   END
                 Figure 4.2.2.4.3-7


   REQ ̲LOG

   CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELMENT ̲MAIN ̲TYPE

         ACK? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTYPE

                 LOG ̲ACK? CASE ̲ATTR.HEADER.FLAG. OF NOT
                 ̲OK

                           O̲K̲?̲ ̲M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                           NOK? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                                M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                           OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲
                                        (̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                          END CASE

                 OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

              END CASE

     OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE

   END



















                 Figure 4.2.2.4.3-8


   SEND ̲ABB ̲PLAIN ̲SERVICE

   CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

       ABB ̲PLAINDRESS ̲SERVICE?

             CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE
             ̲SUBTYPE

                 SUSPENDED ̲DEFERRED?

                     MDOS ̲ATTR.HEADER.FLAG.CAMP ̲ORIGINATED
                     EQ TRUE?

                        INPUT CIF = MDOS ̲QEL

                        SEQUENCE ̲FORMAT ̲NO = SM ̲ABB ̲PLAIN

                        SEQUENCE ̲CODE ̲NO = THP ̲ERROR ̲CC

                     BAD ̲FLAG = TRUE

                     T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                 OTHERWISE? BAD ̲FLAG = TRUE

                            T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

       ACK? CASE MDOS ̲ATTR.HEADER SUBTYPE OF ACK ̲SUBTYPE

                 TMP ̲ACK? SEQUENCE ̲CODE ̲NO = THP ̲OK ̲CC

                 OTHERWISE? BAD ̲FLAG = TRUE

                            T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

       OTHERWISE? BAD ̲FLAG = TRUE

                  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE

   BAD FLAG EQ TRUE?

   M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

   END
                 Figure 4.2.2.4.3-9


   SEND ̲ABB ̲SERVICE

       CASE MDOS.ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN
       ̲TYPE

         ABB ̲SERVICE?

             CASE MDOS ̲ATTR.HEADER.SUBTYPE OF MESSAGE
             ̲SUBTYPE

                 SUSPENDED DEFERRED?

                     ANQ ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
                     EQ TRUE?

                           INPUT CIF = MDOS ̲QEL

                           SEQUENCE ̲FORMAT ̲NO = SM ̲ABB

                           SEQUENCE ̲CODE ̲NO = THP ̲ERROR
                           ̲CC

                     BAD ̲FLAG = TRUE

                     T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                 OTHERWISE? BAD ̲FLAG = TRUE

                            T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

         ACK? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTYPE

                 THP ̲ACK? SEQUENCE ̲CODE ̲NO = THP ̲OK ̲CC

                 OTHERWISE? BAD ̲FLAG = TRUE

                           T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

             END CASE

         OTHERWISE? BAD ̲FLAG = TRUE

                    T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

       END CASE

       BAD ̲FLAG EQ TRUE?

       M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

   END
                Figure 4.2.2.4.3-10


   SEND MSG ̲DIST ̲ASSISTANCE

       CASE MDOS ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAINTYPE

             PLAINDRESS;

             PLAINDRESS ̲DATA?           P̲L̲A̲I̲N̲D̲R̲E̲S̲S̲ ̲(̲-̲1̲2̲)̲

             SC ̲PLAINDRESS

             SC ̲PLAINDRESS ̲DATA?        S̲C̲ ̲P̲L̲A̲I̲N̲D̲R̲E̲S̲S̲
                                        ̲(̲-̲1̲3̲)̲

             ABB ̲PLAINDRESS,

             ABB ̲PLAINDRESS ̲DATA?       A̲B̲B̲ ̲P̲L̲A̲I̲N̲D̲R̲E̲S̲S̲
                                        ̲(̲-̲1̲4̲)̲

             COMMENT?                   C̲O̲M̲M̲E̲N̲T̲ ̲(̲-̲1̲5̲)̲

             ACK? CASE MDOS ̲ATTR.HEADER.SUBTYPE OF ACK
             ̲SUBTYPE

                     MDP ̲ACK? SEQUENCE ̲CODE ̲NO = MDP ̲VAL
                     ̲OK

                              M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                     OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                  END CASE

             OTHERWISE?  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE













                Figure 4.2.2.4.3-11




PLAINDRESS

   CASE MDOS ̲ATTR ̲HEADER.SUBTYPE

       FOR ALTERNATIV ̲DISTRIBUTION ̲ASSISTANCE?

         INPUT CIF = MDOS ̲QEL

         ANS ̲FLAG = TRUE

         MSOS ̲ATTR ̲HEADER ̲FLAG.CAMPS ORIGINATED EQ FALSE?

             MDOS ̲ATTR ̲HEADER.FLAG.READDRESSED EQ FALSE?

                 SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN

             SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN ̲AD

         MDOS ̲ATTR ̲HEADER.FLAG.READDRESSED EQ FLASE ?

                 SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN ̲CA

         SEQUENCE ̲FORMAT ̲NO = MDOS ̲PLAIN ̲CA ̲AD

       OTHERWISE?  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲;̲ ̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                 SET BAD ̲FLAG = TRUE

END CASE

BAD ̲FLAG EQ TRUE?

SET SEQUENCE ̲CODE ̲NO = MDP ̲ERROR ̲CC

M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

SET BAD ̲FLAG = FALSE


END







                Figure 4.2.2.4.3-12


SC ̲PLAINDRESS

       CASE MDOS ̲ATTR.HEADER.SUBTYPE

         FOR ALTERNATIV ̲DISTRIBUTION ̲ASSISTANCE?

             MDOS ̲ATTR.HEADER.FLAG.CAMPS ORIGINATED EQ
             FALSE?

                     ANS ̲FLAG = TRUE

                     SEQUENCE ̲FORMAT ̲NO = MDOS ̲SC ̲PLAIN

                     INPUT CIF = MDOS ̲QEL

             T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)

             SET BAD ̲FLAG = TRUE

         OTHERWISE?  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲ ̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                     SET BAD FLAG = TRUE


       END CASE

       BAD ̲FLAG EQ TRUE?

       SEQUENCE ̲CODE ̲NO = MDP ̲ERROR ̲CC

       M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(4.2.2.4.11)


       SET BAD ̲FLAG = FALSE


   END









                 Fig. 4.2.2.4.3-13


   ABB ̲PLAINDRESS

   CASE MDOS ̲ATTR.HEADER.SUBTYPE

       FOR ALTERNATIV DISTRIBUTION ASSISTANCE?

                 ANQ ̲ATTR.HEADER.FLAG.CAMPS ORIGINATED
                 EQ FALSE?

                     INPUT CIF = MDOS QEL

                     ANS ̲FLAG = TRUE

                     MDOS ̲ATTR.HEADER.FLAG.READDRESSED
                     EQ TRUE?

                          SEQUENCE ̲FORMAT ̲NO = MDCO ̲ABB
                     ̲PLAIN ̲AD

                     SEQUENCE ̲FORMAT ̲NO = MDOS ̲ABB ̲PLAIN

                 T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                 SET ̲BAD ̲FLAG = TRUE

       OTHERWISE?-   T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲D̲I̲S̲M̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                     SET BAD ̲FLAG = TRUE

   END CASE

   BAD ̲FLAG EQ TRUE?                    BAD ̲FLAG = FALSE

   SEQUENCE ̲CODE ̲NO = MDP ̲ERROR ̲CC

   M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ (4.2.2.4.11)


   END














                 Fig. 4.2.2.4.3-14


   COMMENT


       CASE MDOS ̲ATTR.HEADER.SUBTYPE

         FOR ALTERNATIV DISTRIBUTION?

                 MDOS ̲ATTR.HEADER.FLAG.CAMPS ̲ORIGINATED
                 = TRUE

                     INPUT CIF = MDOS ̲QEL

                     ANS ̲FLAG = TRUE

                     SEQUENCE ̲FORMAT ̲NO = MDOS ̲COM

                     SET SEQUENCE ̲CODE ̲NO = MDP ̲ERROR
                     ̲CC

                     M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ (4.2.2.4.11)


                 T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲


         OTHERWISE?  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲ ̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲



       END CASE



   END













Fig. 4.2.2.4.3-15…86…1   …02…   …02… …02…   …02…   …02…   …02…                  …02…                    
          
   EDIT ̲ANS ̲VAL

   CASE MDOS ̲ATTR.HEADER.SUBTYPE OF TEP ̲INTERNAL SUBTYPE

       UMAM ̲ERROR ̲RESP?

         CASE MDOS ̲ATTR.HEADER:INF OF EDIT ̲ANS ̲TYPE

             NOT ̲FOUND?        DISPLAY ̲ERROR ̲MSG(ERROR
             ̲NO)
                                               (4.2.2.6.4)

             NOT ̲AVAIB?        D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
             ̲N̲O̲)̲
                                               (4.2.2.6.4)

             SEC ̲PROFILE?      D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
             ̲N̲O̲)̲
                                               (4.2.2.6.4)

             OTHERWISE? BAD ̲FLAG = TRUE

                        T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

         END CASE

       OTHERWISE? BAD ̲FLAG = TRUE

                  T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

   END CASE

   BAD FLAG EQ TRUE?

   SEQUENCE ̲CODE ̲NO = UMAM ̲ERROR ̲CC

   M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

   D̲I̲S̲M̲A̲N̲T̲L̲E̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲

   END






                Figure 4.2.2.4.3.3.1



4.2.2.4.4        M̲D̲O̲S̲ ̲F̲C̲ ̲K̲E̲Y̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ 



4.2.2.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̲

         The purpose of this module is to analyse the
         FC ̲KEY input, and, depending on the FC ̲key identity
         to call other modules and procedures. Further
         it takes care of blanking the command and the
         response-line and placing the cursor in the command
         line.



4.2.2.4.4.2

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  MDOS ̲FC ̲KEY ̲PROCESSING

         b)  MDOS ̲FC ̲KEY ̲PROCESSING  (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.2.4.4.3  M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲s̲



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

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

         MDOS ̲CO ̲OP ̲TYPE                refer 4.1.4
         FC ̲KEY ̲TYPE ̲TYPE               refer 4.2.2.5
         BUFFER ̲LIST ̲ELEMENT            refer CPS/DBD/001
         INTERNAL ̲ERROR ̲INF             refer CPS/DBD/001


         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             CMD ̲RESP ̲AREA                        refer
                                                  4.2.2.5
             FIELD ̲DESCRIP                        refer
                                                  4.2.2.5
             MDOS ̲FC ̲KEY:                         refer
                                                  4.2.2.5
             ERROR ̲NO (m)                         refer
                                                  4.2.2.5
             SPLIT ̲DIGIT (m)                      refer
                                                  4.2.2.5
             CURSOR ̲RECORD ̲1 (m)                  refer
                                                  4.1.4
             OUT ̲FLAG (m)                         refer
                                                  4.2.2.5
             IN ̲FLAG (m)                          refer
                                                  4.2.2.5
             RESPONSE ̲TEXT ̲FLAG (m)               refer
                                                  4.2.2.5
             CMD ̲FLAG (m)                         refer
                                                  4.2.2.5
             SEQUENCE ̲FORMAT ̲NO (m)               refer
                                                  4.2.2.5
             SEQUENCE ̲CODE ̲NO (m)                 refer
                                                  4.2.2.5
             FC ̲KEY ̲OP:                           refer
                                                  4.1.4
             HEADER ̲IFCB                          refer
                                                  4.1.4
             FORMAT ̲IFCB                          refer
                                                  4.1.4
             VDU ̲SPLIT ̲FLAG                       refer
                                                  4.2.2.5
             OUTPUT ̲FLAG (m)                      refer
                                                  4.2.2.5
             LIST                                 refer
                                                  4.2.2.5
             MDOS ̲FC ̲KEY ̲TYPE                     refer
                                                  4.2.2.5

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             VAR NOT ̲IN ̲FIELD                     Boolean
             INIT NOT ̲IN ̲FIELD = FALSE
             CONST CMD = 1
             CONST NAME = 1
             CONST CMD ̲LINE = 3



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

         This module checks the FC ̲KEY inputs, investigates
         if it shall enter SEQUENCE (4.2.2.4.11) and in
         cases where flags are set other modules are called.
         On the other hand, if no flags are set and the
         FC key requests one, it is set and Return-FC
         ̲key input are expected. The Command FC ̲key sets
         the cursor position on the command ̲line, and
         Return ̲FC ̲key input are awaited.


MDOS ̲FC ̲KEY ̲PROCESSING


CASE WAIT ̲SYSTEM ̲CALL(FC ̲KEY ̲OP)(SPLIT ̲DIGIT, MDOS ̲FC
 ̲KEY, CC): ERROR ̲OK

       ERROR? CASE ANALYZE  ̲ERROR(CC,2,PRIORITY ̲OVERRIDE,
       VDU ̲SPLIT ̲
                         FAILED):(ULB1, ULB2)

                 ULB1?

                 ULB2? VDU ̲SPLIT ̲FLAG = TRUE

             END CASE

       OK?  F̲C̲ ̲K̲E̲Y̲ ̲V̲A̲L̲I̲D̲A̲T̲I̲O̲N̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲2̲)̲

END CASE



END

                  Fig. 4.2.2.4.4-1


   FC ̲KEY ̲VALIDATION


       MDOS ̲FC ̲KEY EQ ENTER?            SPLIT DIGIT
                                        EQ FORMAT ̲IFCB?

                                        MDOS ̲FC ̲KEY
                                        = RETURN

       MDOS ̲KEY NOT IN MASK-1?          D̲I̲S̲P̲L̲A̲Y̲ ̲E̲R̲R̲O̲R̲
                                        ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲

       OUT ̲FLAG EQ TRUE? D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲R̲E̲S̲P̲ ̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲

                         OUTPUT FLAG = FALSE

       MDOS FC ̲KEY IN MASK2? S̲E̲T̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲5̲)̲

                             M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

       MDOS FC ̲KEY EQ RETURN? I̲N̲P̲U̲T̲ ̲C̲M̲D̲ ̲L̲I̲N̲E̲ (4.2.2.4-4)

                         VDU ̲SPLIT ̲FLAG EQ TRUE?

                         BYTE ̲TRANSFERRED EQ 0 ? S̲E̲T̲
                         ̲C̲U̲R̲S̲O̲R̲(̲R̲E̲T̲U̲R̲N̲)̲
                                                  
                              (̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)

                                        IN ̲FLAG = FALSE

                                        OUT ̲FLAG =
                                        FALSE

                                        CMD ̲FLAG =
                                        FALSE

                                        RESPONSE ̲TEXT
                                        ̲FLAG = FALSE

                         IN ̲FLAG EQ TRUE,         

                         OUT FLAG EQ TRUE? M̲D̲O̲S̲ ̲I̲N̲
                         ̲O̲U̲T̲ ̲L̲I̲N̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2)̲

                         RESPONSE TEXT ̲FLAG EQ TRUE?
                         M̲D̲O̲S̲ ̲D̲I̲S̲P̲ ̲R̲E̲S̲P̲ ̲M̲S̲G̲ 
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  
                                                  (4.2.2.4.10)

                         CMD ̲FLAG EQ TRUE?        M̲D̲O̲S̲
                                                  ̲C̲M̲D̲
                                                  ̲P̲E̲N̲D̲I̲N̲G̲(BYTE
                                                  ̲T̲R̲A̲N̲S̲F̲E̲R̲E̲D̲)̲
                                                  ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲)̲

                         T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲


       I̲N̲S̲P̲E̲C̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲3̲)̲

                Fig. 4.2.2.4.4-2


   INSPECT


   G̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲P̲O̲S̲I̲T̲I̲O̲N̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲6̲)̲

   VDU ̲SPLIT ̲FLAG EQ TRUE?

   MDOS ̲FC ̲KEY EQ INSERT LINE? NOT ̲IN ̲FIELD ̲EQ TRUE?

                                            D̲I̲S̲P̲L̲A̲Y̲
                                        ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
                                        ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲

                             SET IN ̲FLAG = TRUE

                             S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

                             D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲
                             ̲L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲

   MDOS ̲FC ̲KEY EQ DELETE ̲LINE?          NOT IN FIELD
                                        EQ TRUE?

                                            D̲I̲S̲P̲L̲A̲Y̲
                                        ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲
                                        ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲

                                        OUT ̲FLAG =
                                        TRUE

                                        S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

                                        D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲
                                        ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲-
                                                  L̲I̲N̲E̲,̲S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲

   MDOS FC ̲KEY EQ RESPONSE ̲TEXT?RESPONSE ̲TEXT ̲FLAG
   = TRUE

                                        S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

                                        D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲
                                        ̲F̲I̲E̲L̲D̲(̲C̲M̲D̲ 
                                        ̲ LINE, ̲
                                                  S̲P̲A̲C̲E̲S̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲

   MDOS ̲FC ̲KEY EQ COMMAND?              CMD ̲FLAG =
                                        TRUE
                                        S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲
                                        ̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲
                                        D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲
                                        ̲F̲I̲E̲L̲D̲ ̲(̲C̲M̲D̲
                                        ̲L̲I̲N̲E̲ ̲S̲P̲A̲C̲E̲S̲)̲
                                                                       (4.2.2.6.5)


   T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲




   END




                Fig. 4.2.2.4.4-3


   INPUT CMD ̲LINE

       LIST.KIND = LOWER ̲BYTE

       LIST.LINK = NULL

       LIST.ADDRESS = ADDR(CMD ̲RESP ̲AREA)

       LIST.BYTE ̲SIZE = CMD ̲RESP ̲AREA ̲SIZE

       FIELD ̲DESCRIP.LINE NO = CMD ̲LINE

       FIELD ̲DESCRIP.INCARNATION ̲NO = NAME

       FIELD ̲DESCRIP.FIELD ̲NO = CMD

       CASE FIELDS ̲INPUT(HEADER ̲IFCB, LIST, FIELD ̲DESCRIP,
       COUNT)

                         (BYTE ̲TRANSFERRED, FIELD,
                         CC) : ERROR OK

         ERROR? CASE ANALYZE  ERROR(CC, 1, VDU ̲SPLIT
         ̲FAILED): (LI)

                         LI? SET VDU ̲SPLIT ̲FLAG = TRUE


                  END CASE


         OK?


       END CASE



END









                Fig. 4.2.2.4.4-4


   SET SEQUENCE CODE


       CASE FC ̲KEY OF MDCO FC ̲KEY ̲TYPE


         PRINT?                  SEQUENCE ̲CODE ̲NO =
                             PRINT

         CANCEL?                 SEQUENCE ̲CODE NO =
                             CANCEL

         RETURN TO MENU          SEQUENCE ̲CODE NO =
                             RETURN ̲MENU

         KEEP AND PRESENT NEXT?    SEQUENCE ̲CODE NO
         = KEEP

         DELETE AND PRESENT NEXT?  SEQUENCE ̲CODE NO
         = DELETE

         ENTER?                  SEQUENCE ̲CODE NO =
                             ENTER

         OTHERWISE?  T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲ ̲(̲4̲.̲2̲.̲5̲.̲2̲)̲


       END CASE

   END























                Fig. 4.2.2.4.4-5


   GET ̲CURSOR ̲POS 

   CASE GET ̲CURSOR ̲POSITION(SPLIT ̲DIGIT ̲1)
                           (CURSOR ̲RECORD ̲1, LINES
                     ̲ABOVE, CC):
                           ERROR ̲OK

       ERROR? CASE ANALYZE ̲ERROR(CC,3, CURSOR ̲NOT ̲IN
       ̲FORMATTED ̲LINE,
                           CURSOR ̲ NOT ̲IN ̲FIELD, VDU
                     ̲SPLIT ̲FAILED):
                           (ULB3, ULB4, ULB5)

                 ULB3?  

                 ULB4?  NOT ̲IN ̲FIELD = TRUE 

                 ULB5? VDU ̲SPLIT ̲FLAG = TRUE

             END CASE

       OK? 

   END CASE

   END





                Fig. 4.2.2.4.4-6


4.2.2.4.5    D̲I̲V̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲



4.2.2.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̲

         The purpose of this module is to analyse commands from
         DIVCO and, in accordance with the commands, to enter
         MDOS ̲SEQUENCE(4.2.2.4.11).



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

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  DIVCO ̲CMD ̲PROCESSING

         b)  DIVCO ̲CMD ̲PROCESSING (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.2.4.5.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲



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

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             MDOS ̲CO ̲OP ̲TYPE                   refer 4.1.4
             COROUTINE ̲SEMAPHORE ̲TYPE          refer CPS/DBD/001
             DIVCO ̲CMD ̲TYPE                    refer 4.1.4


             SENDER ̲ID ̲TYPE             refer 4.1.4

         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             MDOS ̲S1                    refer 4.1.4
             DIVCO ̲OP                   refer 4.1.4
             SEQUENCE ̲CODE ̲NO (m)       refer 4.2.2.5
             MDOS ̲ACTIV ̲FLAG (m)        refer 4.1.4
             INTERNAL ̲ERROR ̲INF ̲TYPE    refer 4.1.4

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None



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

         This module inspects DIVCO commands, enters MDOS ̲SEQUENCE(4.2.2.4.11)
         and signals opsem MDOS ̲S1.



   DIVCO ̲CMD ̲PROCESSING


         DIVCO ̲OP.OP ̲ID(2) = DIFCO ̲IDENT

         CASE DIVCO ̲OP.CMD OF DIVCO ̲CMD ̲TYPE

             CLOSE DOWN DIFCO CMD? SEQUENCE ̲CODE ̲NO
             = CLOSE ̲DOWN

                                         M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲
                                        ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

             BLOCK ̲DIFCO ̲CMD? SEQUENCE ̲CODE ̲NO = BLOCK
             ̲TERMINAL

                                   M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                                   DIVCO ̲OP.CMD = BLOCK
                              ̲DIFCO ̲CC

                                   MDOS ̲ACTIV = FALSE

                                   SIGNAL ̲OPSEM(MDOS
                              ̲S1, DIVCO ̲OP) : OK

             STOP ̲DIFCO ̲CMD? SEQUENCE ̲CODE ̲NO =STOP
             ̲USER

                             M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                                  DIVCO ̲OP.CMD = STOP
                              ̲DIFCO ̲CC

                                  MDOS ̲ACTIV = FALSE

                                  SIGNAL ̲OPSEM(MDOS
                              ̲S1, DIVCO ̲OP)(CC): OK

             OTHERWISE?       T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲
                              ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲


         END CASE


END







                Fig. 4.2.2.4.5-1


4.2.2.4.6    D̲I̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲



4.2.2.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̲

         The purpose of this module is to analyse the inputs
         that DIFCO gets from DIDIA. Depending on input a completion
         code is signalled to DIVCO and thereafter MDOS ̲SEQUENCE(4.2.2.4.11)
         is entered, or on behalf of other inputs MDOS ̲SEQUENCE(4.2.2.4.11)
         is entered directly.



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

         C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         a)  DIDIA ̲CC ̲PROCESSING

         b)  DIDIA ̲CC ̲PROCESSING (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)…86…1     
                                                  …02…   …02…   …02…   …02…
                                                           
                                                          …02… 
                                                           
                                                 
4.2.2.4.6.3 M̲o̲d̲u̲l̲e̲ ̲C̲o̲m̲p̲o̲n̲e̲n̲t̲



4.2.2.4.6.3.1 C̲H̲E̲C̲K̲ ̲P̲A̲R̲A̲ ̲1̲

             See flowgram 4.2.2.4.6.3-1



4.2.2.4.6.3.2 O̲P̲E̲N̲

             See flowgram 4.2.2.4.6.3-2



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

         a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

             MDOS ̲CO ̲OP ̲TYPE                   refer 4.1.4
             DIDIA ̲DIFCO ̲CMD ̲TYPE              refer 4.1.4
             SENDER ̲ID ̲TYPE                    refer 4.1.4
             DIFCO ̲CC ̲TYPE                     refer 4.1.4
             INTERNAL ̲ERROR ̲INT                refer 4.1.4
             CO ̲CMD ̲CC ̲TYPE                    refer 4.1.4
             RESULT ̲TYPE                       refer 4.1.4



         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             FORMAT ̲IFCB                refer 4.1.4
             VDU ̲SPLIT ̲FLAG  (m)        refer 4.2.2.5
             SEQUENCE ̲CODE NO ̲(m)       refer 4.2.2.5
             DIDIA ̲CC ̲OP                refer 4.1.4
             MDOS ̲S1                    refer 4.1.4
             DIVCO ̲OP (m)               refer 4.1.4
             START ̲FLAG                 refer 4.2.2.5
             MDOS ̲ACTIV (m)             refer 4.1.4
             EXP ̲DIDIA ̲CMD              refer 4.2.2.5
             SENDER ̲ID ̲TYPE             refer 4.1.4

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None



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

         This module analyses completion code from DIDIA, and
         in those cases where DIDIA ̲CC is to command issued
         by DIVCO, a completion code is sent to DIVCO before
         entering MDOS ̲SEQUENCE module.…86…1 …02…  …02…  …02…  …02…  …02…  …02…  …02…  …02…  …02…  …02…
          …02…  …02…     …02…                            
         DIDIA ̲CC ̲PROCESSING

         FREE DIFCO OP (̲D̲I̲F̲C̲O̲ ̲O̲P̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲3̲0̲)̲

         DIFCO ̲OP.CMD NE EXP ̲DIDIA CMD?

         DIFCO ̲OP.PARA1 EQ SPLIT ̲FAILED ̲CC? F̲A̲I̲L̲E̲D̲ ̲S̲P̲L̲I̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲3̲)̲

         CASE MDOS ̲OP.CMD OF DIFCO ̲DIDIA ̲CMD ̲TYPE

                 L ̲INSERT,
                 L ̲DELETE?  CASE MDOS ̲OP.PARA1 OF CO ̲CMD ̲CC
                 ̲TYPE

                                                                  OK
                                                                  ̲CC?

                                                                  ERROR
                                                                  ̲CC?
                                                                  DISPLAY
                                                                  ̲ERROR
                                                                  ̲MDG
                                                                  (ERROR
                                                                  ̲NO)(4.2.2.6.4)

                                                                  END
                                                                  CASE

                 CLEAR ̲VDU?                                      SEQUENCE
                                                                 ̲CODE
                                                                 ̲NO
                                                                 =
                                                                 CLEAR
                                                                 ̲VDU
                                                                 ̲CO

                                                                   C̲H̲E̲C̲K̲
                                                                   ̲P̲A̲R̲A̲1̲
                                                                   ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲1̲)̲

                 CANCEL ̲I ̲O?                                     SEQUENCE
                                                                 ̲CODE
                                                                 ̲NO
                                                                 =
                                                                 CANCEL
                                                                 ̲CC

                                                                   C̲H̲E̲C̲K̲
                                                                   ̲P̲A̲R̲A̲1̲
                                                                   ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲1̲)̲

                 OUTPUT ̲FORMAT?         SEQUENCE ̲CODE ̲NO = OUTPUT
                                        ̲FORMAT ̲CC

                                                                   C̲H̲E̲C̲K̲
                                                                   ̲P̲A̲R̲A̲1̲
                                                                   ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
                                                                   O̲P̲E̲N̲
                                                                   ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲2̲)̲

                 OUTPUT ̲DATA?           SEQUENCE ̲CODE ̲NO = OUTPUT
                                        ̲DATA ̲CC

                                                                   C̲H̲E̲C̲K̲
                                                                   ̲P̲A̲R̲A̲1̲
                                                                   ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
                                                                   O̲P̲E̲N̲
                                                                   ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲2̲)̲

                 OTHERWISE?                                      C̲O̲N̲T̲I̲N̲U̲E̲
                                                                 ̲D̲I̲D̲I̲A̲
                                                                 ̲C̲C̲
                                                                 ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
                                                                 ̲(̲-̲2̲)̲

         END CASE



                    Figure 4.2.2.4.6-1


 CONTINUE DIDIA ̲CC ̲PROCESSING
    CASE MDOS ̲OP.CMD OF DIFC ̲DIDIA ̲CMD ̲TYPE
      CLOSE?       SEQUENCE ̲CODE = CANCEL ̲CC
                   C̲H̲E̲C̲K̲ ̲P̲A̲R̲A̲1̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
                   DIVCO ̲OP.OP ̲ID(2) = DIFCO ̲IDENT
                   DIVCO ̲OP.CMD = COLSE ̲DOWN ̲DIFCO ̲CC
                   CLOSE ̲DOWN = TRUE
                   MDOS ̲ACTIV = FALSE
                   SIGNAL ̲OPSEM (MDOS ̲SO,DIVCO ̲OP)(CC):OK
      DISPLAY ̲MENU START ̲FLAG EQ FALSE?
                   DIVCO ̲OP.OP ̲ID (2) = DIFCO ̲IDENT
                   DIVCO ̲OP.OP ̲ID = START ̲DIFCO
                   SIGNAL ̲OPSEM(MDOS ̲SI,DIVCO ̲OP)(CC):OK
                   START ̲FLAG = FALSE
                   SEQUENCE ̲CODE ̲NO = DISPLAY ̲MENU ̲CC
                   C̲H̲E̲C̲K̲ ̲P̲A̲R̲A̲1̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲1̲)̲
                   O̲P̲E̲N̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲.̲3̲.̲2̲)̲
      INPUT ̲DATA?  CASE MDOS ̲OP.OP.PARA1 OF CO ̲CMD ̲CC ̲TYPE
                   OK CC? S̲E̲T̲ ̲S̲E̲Q̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲4̲)̲
                   ERROR ̲CC? CASE MDOS ̲OP PARA2 OF 
                                     RESULT ̲TYPE
                               VAL ̲ERROR? SEQ ̲CODE = VAL ̲ERROR ̲CC
                               O̲T̲H̲E̲R̲W̲I̲S̲E̲?̲ ̲T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲
                                                       (̲4̲.̲1̲.̲5̲.̲2̲)̲
                             END CASE
                   END CASE
                   M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
      OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
 END CASE


                                   Figure 4.2.2.4.6-2


FAILED ̲SPLIT

       VDU ̲SPLIT ̲FLAG = TRUE

       START ̲FLAG = FALSE?

       CASE MDOS ̲OP.CMD OF DIFCO ̲DIDIA ̲CMD ̲TYPE

          CLOSE? DIVCO ̲OP.CMD = CLOSE ̲DIFCO ̲CC

          OUTPUT ̲FORMAT? DIVCO ̲OP.CMD = START ̲DIFCO ̲CC

          OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

       END CASE

       DIVCO ̲OP.OP ̲ID (2) = DIFCO ̲IDENT

       SIGNAL ̲OPSEM (MDOS ̲SI,DIVCO ̲OP)(CC):OK

   END























                   Figure 4.2.2.4.6-3


       SET ̲REQ ̲CODE

          CASE MDOS ̲OP.PARA2 OF RESULT TYPE

             OK?            SEQUENCE ̲CODE = VAL ̲OK ̲CC

             LOCAL ̲PRINT?   SEQUENCE ̲CODE = LOCAL ̲PRINT

             SEND?          SEQUENCE ̲CODE = SEND

             DEFER?         SEQUENCE ̲CODE = DEFER

             OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

       END CASE

       END




























                   Figure 4.2.2.4.6-4


       CHECK PARA1

       CASE MDOS ̲OP.PARA1 OF CO ̲CMD ̲CC ̲TYPE

          OK ̲CC?

          OTHERWISE? T̲E̲P̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲ ̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

       END CASE

       M̲D̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

































                  Figure 4.2.2.4.6.3-1


       OPEN

       CASE ENABLE ̲DATA ̲KEYS (HEADER ̲IFCB)(CC):ERROR ̲OK

            ERROR? CASE ANALYZE ̲ERROR (CC,1,VDU ̲SPLIT ̲FAILED):(L1)

                        L1? VDU ̲SPLIT ̲FLAG = TRUE

                   END CASE

            OK?

       END CASE

       CASE ENABLE ̲DATA ̲KEYS(FORMAT ̲IFCT)(CC) :ERROR ̲OK

          ERROR?   CASE ANALYZE ̲ERROR(CC,1,VDU ̲SPLIT ̲FAILED)(L1)

                    L1? VDU ̲SPLIT ̲FLAG = TRUE

                   END CASE

          OK?

       END CASE

       END




















                  Figure 4.2.2.4.6.3-2



4.2.2.4.7 D̲I̲R̲T̲ ̲O̲P̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲



4.2.2.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̲

   The purpose of this module is to analyse input from
   DIRT ̲Coroutine, display notification and enter the
   MDOS ̲SEQUENCE module(4.2.2.4.11).



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

   C̲a̲l̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

   a)  DIRT ̲OP ̲PROCESSING

   b)  DIRT ̲OP ̲PROCESSING (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̲

   None

   R0 - R7                              (DEST)



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

   N/A



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

   a)  D̲a̲t̲a̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲

       MDOS ̲CO ̲OP ̲TYPE           refer 4.1.4
       SEQUENCE ̲KEY ̲TYPE         refer 4.2.2.5
       INTERNAL ̲ERROR ̲INF        refer 4.1.4
       DIRT ̲NOT ̲TYPE             refer 4.1.4
       QELEMENT ̲MAINTYPE         refer CPS/DBD/001



         b)  E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲

             TRANSACTION ̲ID ̲RECORD (m)  refer 4.1.4
             DIFCO ̲DIRT ̲ATTR            refer 4.1.4
             SEQUENCE ̲CODE ̲NO (m)       refer 4.2.2.5
             DIRT ̲OP                    refer 4.1.4
             ERROR ̲NO (m)               refer 4.2.2.5
             START ̲FLAG (m)             refer 4.2.2.5
             SEQUENCE ̲FORMAT ̲NO (m)     refer 4.2.2.5
             MDOS ̲QEL                   refer 4.1.4
             MDOS ̲ATTR                  refer 4.1.4
             INPUT ̲CIF                  refer 4.1.4

         c)  L̲o̲c̲a̲l̲ ̲D̲a̲t̲a̲

             None



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

         This module calls either DISPLAY ̲ERROR ̲MSG(4.2.2.6.4)
         and MDOS ̲SEQUENCE (4.2.2.4.11) or the latter only.