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

⟦0a7a2b0c8⟧ Wang Wps File

    Length: 41183 (0xa0df)
    Types: Wang Wps File
    Notes: CPS/SDS/038               
    Names: »1919A «

Derivation

└─⟦d6c5ca2c3⟧ Bits:30006095 8" Wang WCS floppy, CR 0149A
    └─ ⟦this⟧ »1919A « 

WangText



>…05…>…07…=…0c…=…01…=       =…06…<…09…<…0c…<…02…< ;…08…;…0c…;…00…;…06…0…02…0 .…00….…86…1
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         …02…
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         …02…
                         
                         
                         …02…
                         
                         
                         
                         
                         
                         
                         
                         

…02…CPS/SDS/038

…02…JHH/820514…02……02…
MSO
 VDU
DETAILED
 DESIGN
 SPECIFICATION  CAMPS








4.2.2.4.4    M̲S̲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 on the command line.



4.2.2.4.4.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)  MSOS ̲FC ̲KEY ̲PROCESSING

         b)  MSOS ̲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̲

         None

         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̲

         None


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̲

             MSOS ̲CO ̲OP ̲TYPE                   refer 4.1.4
             IOC ̲FIELD ̲DESCRIPTOR ̲TYPE         refer 4.1.4
             MSO ̲FC ̲KEY ̲TYPE                   refer 4.2.2.5
             SEQUENCE ̲CODE ̲NO ̲TYPE             refer 4.2.2.5
             BUFFER ̲LIST ̲ELEMENT ̲TYPE          refer CPS/DBD/001
             ERROR ̲NO ̲TYPE                     refer 4.2.2.5
             INTERNAL ̲ERROR ̲TYPE               refer 4.1.4
             FC ̲KEY ̲MASK ̲TYPE                  refer 4.2.2.5

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

             FIELD ̲DESCRIP (m)                 refer 4.1.4
             VDU ̲SPLIT ̲FLAG (m)                refer 4.1.4
             INT ̲ERROR ̲INF (m)                 refer 4.1.4
             OUTPUT ̲FLAG                       refer 4.2.2.5
             SPLIT ̲DIGIT (m)                   refer 4.2.2.5
             CURSOR ̲RECORD ̲1(m)                refer 4.1.4
             OUT ̲LINE ̲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 ̲CODE ̲NO (m)              refer 4.2.2.5
             FC ̲KEY ̲OP (m)                     refer 4.1.4
             HEADER ̲IFCB                       refer 4.1.4
             IN ̲LINE ̲FLAG (m)                  refer 4.2.2.5
             FORMAT ̲IFCB                       refer 4.1.4

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

             CONST COUNT = 69
             CONST CMD = 1
             CONST NUME = 1
             CONST CMD ̲LINE = 3
         VAR NOT ̲IN ̲FIELD:                     BOOLEAN
         VAR LIST: BUFFER ̲LIST ̲ELEMENT ̲TYPE
             INIT NOT ̲IN ̲FIELD = FALSE

         VAR MSO ̲FC ̲KEY: MSO ̲FC ̲KEY ̲TYPE
         VAR MASK ̲1,
             MASK ̲2: FC ̲KEY ̲MASK ̲TYPE


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

         This module investigates the FC ̲key inputs, invest
         if it shall enter MSOS ̲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 ENTER FC ̲key input are
         expected. The cursor position on the command ̲line,
         and ENTER FC ̲key input are awaited.



   MSOS ̲F/C ̲KEY ̲PROCESSING

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

       ERROR? CASE ANALYSE ̲ERROR(CC,2 PRIORITY ̲OVERRIDE,
       VDU ̲SPLIT ̲FAI-
                                     LED):(ULB1, ULB2)

                 ULB1?

                 ULB2? SET 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































                 FIGURE 4.2.2.4.4-1


   FC ̲KEY ̲VALIDATION


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

                        SET MSO ̲FC ̲KEY = RETURN

   MSO ̲FC ̲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̲)̲

   OUTPUT ̲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̲)
                        SET OUTPUT ̲FLAG = FALSE

   MSO ̲FC ̲KEY IN MASK ̲2?  S̲E̲T̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲ ̲C̲O̲D̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲4̲-̲6̲)̲

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

   MSO ̲FC ̲KEY EQ RETURN?  I̲N̲P̲U̲T̲ ̲C̲M̲D̲ ̲L̲I̲N̲E̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲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̲)̲

                                                SET IN
                                                ̲FLAG =
                                                FALSE

                                                SET OUT
                                                ̲FLAG =
                                                FALSE

                                                SET CMD
                                                ̲FLAG =
                                                FALSE

                         IN ̲FLAG EQ TRUE,       SET RESPONSE
                                                ̲TEXT
                                                     
                                                FLAG =
                                                FALSE

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

                         RESPONSE ̲TEXT ̲FLAG EQ TRUE? M̲S̲O̲S̲
                     ̲D̲I̲S̲P̲ ̲R̲E̲S̲P̲ ̲
                                                     M̲S̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲l̲0̲)̲

                        CMD ̲FLAG EQ TRUE? M̲S̲O̲S̲ ̲C̲M̲D̲ ̲P̲E̲N̲D̲I̲N̲G̲(̲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̲.̲l̲.̲5̲.̲2̲)̲

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




                 FIGURE 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̲-̲5̲)̲

VDU ̲SPLIT ̲FLAG EQ TRUE?

MSO ̲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̲)̲

MSO ̲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̲)̲

                     SET 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̲)̲

 MSO ̲FC ̲KEY EQ

    DISPLAY ̲ERROR ̲MESSAGE? SET 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̲ ̲L̲I̲N̲E̲,̲
                                    S̲P̲A̲C̲E̲S̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲5̲)̲

 MSO ̲FC ̲KEY EQ COMMAND?      SET 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̲.̲2̲.̲5̲.̲2̲)̲

END INSPECT

                 FIGURE 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 = SIZE (CMD ̲RESP ̲AREA)



   FIELD ̲DESCRIP.LINE ̲NO = CMD ̲LINE

   FIELD ̲DESCRIP.INCARNATION ̲NO = NUME

   FIELD ̲DESCRIP.FIELD ̲NO = CMD


   CASE  FIELD ̲INPUT(HEADER ̲IFIB,LIST,FIELD ̲DESCRIP,

                     …02…COUNT)(BYTES ̲TRANSFERRED,FIELD,
                                                CC): ERROR
                                                ̲OK

         ERROR?  CASE ANALYZE ̲ERROR(CC,l,VDU ̲SPLIT ̲FAILED):(Ll)

                     Ll?             SET VDU ̲SPLIT ̲FLAG
                                     = TRUE

                 END CASE

         OK?

   END CASE












                 FIGURE 4.2.2.4.4-4


   GET ̲CURSOR ̲POS

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

         ERROR? CASE ANALYSE ̲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 GET ̲CURSOR ̲POS
























                 FIGURE 4.2.2.4.4-5



   SET ̲SEQUENCE ̲CODE

       CASE MSO ̲FC ̲KEY OF MSO ̲FC ̲KEY ̲TYPE



         PRINT?                      SEQUENCE ̲CODE ̲NO
                                     = M ̲PRINT

         CANCEL?                     SEQUENCE ̲CODE ̲NO
                                     = M ̲CANCEL

         RETURN ̲TO ̲CURRENT ̲MENU?     SEQUENCE ̲CODE ̲NO
                                     = RETURN ̲
                                                     
                                                  TO ̲MENU

         KEEP ̲AND ̲PRESENT ̲NEXT?      SEQUENCE ̲CODE ̲NO
                                     =PRESENT ̲KEEP

         DELETE ̲AND ̲PRESENT ̲NEXT?    SEQUENCE ̲CODE ̲NO
                                     =PRESENT ̲DELETE

         ENTER?                      SEQUENCE ̲CODE ̲NO
                                     = M ̲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 SET ̲SEQUENCE ̲CODE


















                …01…FIGURE 4.2.2.4.4-6




4.2.2.4.5    S̲E̲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
         SEVCO and, in accordance with the commands, to enter
         MSOS ̲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)  SEVCO ̲CMD ̲PROCESSING

         b)  SEVCO ̲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̲

         None

         R0 - R7                               (DEST)



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

         None





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̲

             MSO ̲CO ̲OP ̲TYPE                  refer 4.1.4
             INTERNAL ̲ERROR ̲TYPE             refer 4.1.4
             COROUTINE SEMAPHORE             refer CPS/DBD/001
             SEVCO ̲CC ̲TYPE                   refer 4.1.4
             SEVCO ̲CMD ̲TYPE                  refer 4.1.4
             IDENT ̲TYPE                      refer 4.1.4
             SEQUENCE ̲CODE ̲NO ̲TYPE           refer 4.2.2.5
             SEQUENCE ̲FORMAT ̲NO ̲TYPE         refer 4.2.2.5
             QUEUE ̲ERROR ̲TYPE                refer 4.1.4
             QELEMENT ̲ATTRIBUTES             refer CPS/DBD/001
             QELEMENT ̲REFERENCE              refer CPS/DBD/001
             QELEMENT ̲MAIN ̲TYPE              refer CPS/DBD/001
             MESSAGE ̲SUBTYPE                 refer CPS/DBD/001
             ACK ̲SUBTYPE                     refer CPS/DBD/001
             UNIDENTIFIED ̲ITEM ̲SUBTYPE       refer CPS/DBD/001
             UMAM ̲RESPONSE ̲TYPE              refer CPS/DBD/001
             SEND ̲PARAMS                     refer CPS/DBD/001
             QUEUE ̲REFERENCE                 refer CPS/DBD/001

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

             MSOS ̲S1                         refer 4.1.4
             SEVCO ̲OP (m)                    refer 4.1.4
             SEQUENCE ̲CODE ̲NO (m)            refer 4.2.2.5
             SEQUENCE ̲FORMAT ̲NO (m)          refer 4.2.2.5
             INT ̲ERROR ̲INF (m)               refer 4.1.4
             QERROR ̲INF (m)                  refer 4.1.4
             USER ̲ACTIVE ̲FLAG                refer 4.1.4
             MSOS ̲IMQ                        refer 4.1.4
             MSOS ̲OMQ                        refer 4.1.4
             ANQ ̲OP                          refer 4.1.4
             ANQ ̲QEL                         refer 4.2.2.5
             ANQ ̲ATTR                        refer 4.2.2.5
             MSOS ̲SEND ̲PARAMS (m)            refer 4.1.4
             Q ̲REFERENCE (m)                 refer 4.1.4
             CURRENT ̲SUBQ                    refer 4.2.2.5
             ANQ ̲OP ̲PENDING                  refer 4.2.2.5

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

             VAR SEND ̲FLAG                   BOOLEAN
             VAR FAILURE ̲ONE ̲FLAG            BOOLEAN




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

         This module inspects SEVCO commands, enters MSOS ̲SEQUENCE(4.2.2.4.11)
         and signals opsem MSOS ̲S1. In cases where transactions
         are not stopped when STOP or BLOCK command are received
         the items are either returned to the queue or the queue
         element is dismantled and status is updated by entering
         MSOS ̲SEQUENCE module (4.2.2.4.11).




   SEVCO ̲CMD ̲PROCESSING

   SEVCO ̲OP.OP ̲ID(1)=SEFCO ̲IDENT

   I̲N̲P̲U̲T̲ ̲P̲E̲N̲D̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲2̲)̲

   CASE SEVCO ̲OP.CMD OF SEVCO ̲CMD ̲TYPE

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

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

       BLOCK ̲SEFCO ̲CMD?
                        SEQUENCE ̲CODE ̲NO = BLOCK ̲USER

                             MOVE BLOCK ̲SEFCO ̲CC TO SEVCO
                            ̲OP.CMD

                             SET USER ̲ACTIVE ̲FLAG = FALSE
                                

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

                             SIGNAL ̲OPSEM(MSOS ̲S1, SEVCO
                            ̲OP): OK

       STOP ̲SEFCO ̲CMD?

                       SEQUENCE ̲CODE ̲NO = STOP ̲USER

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

                       MOVE STOP ̲SEFCO ̲CC TO SEVCO ̲OP.CMD

                       SET USER ̲ACTIVE ̲FLAG = FALSE

                       SIGNAL ̲OPSEM(MSOS ̲S1, SEVCO ̲OP):
                     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̲.̲1̲)̲

   END CASE

   END SEVCO ̲CMD ̲PROCESSING







                 FIGURE 4.2.2.4.5-1



INPUT ̲PENDING

ANQ ̲OP.CMD EQ NO ̲PENDING?

SEVCO ̲OP.CMD EQ CLOSE ̲DOWN ̲SEFCO ̲CMD?

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

   ERROR? CASE ANALYZE ̲ERROR(CC,1,PROFILE ̲CHECK):(L1)

             L1?

          END CASE

   OK?

END CASE

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

   M ̲PLAIN ̲SVC ̲EDIT,

   M ̲ABB ̲SVC ̲EDIT,

   M ̲PLABB ̲SVC ̲EDIT,

   M ̲DELETE ̲SVC ̲REQ,

   M ̲STATUS ̲REQ?   E̲R̲R̲O̲R̲ ̲D̲E̲T̲E̲C̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲3̲)̲

   M ̲PLABB ̲SVC ̲ACK,

   M ̲ABB ̲SVC ̲ACK?  Q̲E̲L̲ ̲A̲N̲A̲L̲Y̲Z̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲4̲)̲

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

   M ̲GARBLE?       R̲E̲T̲U̲R̲N̲ ̲G̲A̲R̲B̲L̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲5̲)̲

   M ̲RI?           R̲E̲T̲U̲R̲N̲ ̲R̲I̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲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

END INPUT ̲PENDING

                  Fig. 4.2.2.4.5-2


ERROR ̲DETECT

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

   PLAINDRESS ̲SERVICE,

   ABB ̲SERVICE,

   ABB ̲PLAINDRESS ̲SERVICE? CASE ANQ ̲ATTR.HEADER-SUBTYPE
   OF
                                                MESSAGE
                                        ̲SUBTYPE

                               FOR ̲CONTINUED ̲PREP?

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

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

                           END CASE

   TEP ̲INTERNAL? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF MESSAGE
   ̲SUBTYPE

                     UMAM ̲ERROR ̲RESP? D̲I̲S̲M̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲

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

                  END CASE

   STATUS? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF MESSAGE ̲SUBTYPE

             OUTGOING ̲SERVICE ̲

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

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

           END CASE

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

END CASE

END ERROR ̲DETECT



                  Fig. 4.2.2.4.5-3


QEL ̲ANALYZE

FAILURE ̲ONE ̲FLAG = FALSE
CASE ANQ ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN ̲TYPE

   ABB ̲PLAINDRESS ̲SERVICE,
   ABB ̲SERVICE? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF MESSAGE
   ̲SUBTYPE

                 SUSPENDED ̲
                 DEFERRED? SEQUENCE ̲CODE ̲NO = START

                 OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
                            FAILURE ̲ONE ̲FLAG = TRUE

                END CASE

                CASE SEVCO ̲OP.CMD OF SEVCO ̲CMD ̲TYPE

                     BLOCK ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT
                     ̲NO = COR1
                     STOP ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT ̲NO
                     = COR2

                     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

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

         THP ̲ACK? SEQUENCE ̲CODE ̲NO = START

         OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲,̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
                    FAILURE ̲ONE ̲FLAG=TRUE
        END CASE

        CASE SEVCO ̲OP. CMD OF SEVCO ̲CMD ̲TYPE

           BLOCK ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT.NO = COR3
           STOP ̲SEFCO ̲CMD? SEQUENCE ̲FORMAT ̲NO = COR4

           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̲)̲

        EMD CASE

           OTHERWISE? T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲.̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲
                      FAILURE ̲ONE ̲FLAG = TRUE

END CASE

FAILURE ̲ONE ̲FLAG EQ FALSE? M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
                         D̲I̲S̲M̲ ̲(̲A̲N̲Q̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲

END QEL ̲ANALYZE
                 Figure 4.2.2.4.5-4


RETURN  ̲GARBLE

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

   UNIDENTIFIED ̲CCIS,

   UNIDENTIFIED ̲TRC ̲P ̲TO ̲P,

   UNIDENTIFIED ̲NICS ̲TARE,

   UNIDENTIFIED ̲NORMAL ̲PTR,

   UNIDENTIFIED ̲DEDICATED ̲PTR,

   UNIDENTIFIED ̲SCARS? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF
                                        UNIDENTIFIED ̲ITEM
                                        ̲SUBTYPE

                          FOR ̲GARBLE

                          CORRECTION? SEND ̲FLAG ̲TRUE

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

                        END CASE

   ACK? CASE ANQ ̲ATTR.HEADER.SUBTYPE OF ACK ̲SUBTRYPE

           THP ̲ACK? SEQUENCE ̲FORMAT ̲NO = COR5

                  SEQUENCE ̲CODE ̲NO=START

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

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

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

        END CASE

        SEND ̲FLAG=FALSE

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

              SEND ̲FLAG=FALSE

END CASE

SEND ̲FLAG EQ TRUE?  S̲E̲N̲D̲ ̲Q̲E̲L̲ ̲T̲O̲ ̲I̲N̲Q̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲6̲)̲

END RETURN ̲GARBLE
                 Figure 4.2.2.4.5-5


SEND ̲QEL ̲TO ̲INQ


Q ̲REFERENCE. MAINQ = MSOS ̲IMQ

Q ̲REFERENCE. SUBQ = CURRENT ̲SUBQ

CASE SEND ̲QEL (MSOS ̲SEND ̲PARAMS = ANQ ̲ATTR, ANQ ̲QEL,Q
 ̲REFERENCE)
                                 (MSOS ̲SEND ̲PARAMS,CC):ERROR
                                 ̲OK


   ERROR? ANALYZE ̲ERROR(CC,0)

   OK?

END CASE

DISM(ANQ ̲QEL)(4.1.5.3)

END SEND ̲QEL ̲TO ̲INQ



























                 Figure 4.2.2.4.5-6


RETURN ̲RI

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

   PLAINDRESS,
   PLAINDRESS ̲DATA,
   PLAINDRESS ̲ENCRYPTED,
   SC ̲PLAINDRESS,
   SC ̲PLAINDRESS ̲DATA,
   SC ̲PLAINDRESS ̲ENCRYPTED,
   SC ̲PLAINDRESS ̲SERVICE,
   ABB ̲PLAINDRESS,
   ABB ̲PLAINDRESS ̲DATA,
   CODRESS,
   PLAINDRESS ̲SERVICE,

   ABB ̲SERVICE? CASE ANQ ̲ATTR ̲HEADER.SUBTYPE OF MESSAGE
   ̲SUBTYPE

                   FOR ̲RI

                   ASSIGNMENT? S̲E̲N̲D̲ ̲Q̲E̲L̲ ̲T̲O̲ ̲O̲M̲Q̲(̲4̲.̲2̲.̲2̲.̲4̲.̲5̲-̲8̲)̲

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

                END CASE

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

           THP ̲ACK? SEQUENCE ̲CODE ̲NO=START

                  SEQUENCE ̲FORMAT ̲NO=COR6

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

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

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

        END CASE

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

END CASE

END RETURN ̲RI


                 Figure 4.2.2.4.5-7


SEND ̲QEL ̲TO ̲OMQ

Q ̲REFERENCE.MAINQ = MSOS ̲OMQ

Q ̲REFERENCE. SUBQ = CURRENT ̲SUBQ

CASE SEND ̲QEL (MSOS ̲SEND ̲PARAMS = ANQ ̲ATTR, ANQ ̲QEL,Q
 ̲REFERENCE)
                                 (MSOS ̲SEND ̲PARAMS,CC):
                                 ERROR ̲OK

   ERROR? ANALYZE ̲EROR(CC,0)

   OK?

END CASE

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

END SEND ̲QEL ̲TO ̲OMQ





























                 Figure 4.2.2.4.5-8


4.2.2.4.6    S̲E̲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 SEFCO gets from SEDIA. Depending on input a completion
   code is signalled to SEVCO and thereafter MSOS ̲SEQUENCE(4.2.2.4.11)
   is entered, or on behalf of other inputs MSOS ̲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)  SEDIA ̲CC ̲PROCESSING

   b)  SEDIA ̲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̲

   None          (DEST)



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

    None



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̲

             SEFCO ̲SEDIA ̲CMD ̲TYPE       refer 4.1.4
             SEFCO ̲CC ̲TYPE              refer 4.1.4
             CO ̲CMD ̲CC                  refer 4.1.4
             SEQUENCE ̲FORMAT ̲NO ̲TYPE    refer 4.2.2.5
             COROUTINE SEMAPHORE        refer CPS/DBD/001
             INTERNAL ̲ERROR ̲TYPE        refer   4.1.4
             MSO ̲CO ̲OP ̲TYPE             refer   4.1.4
             IDENT ̲TYPE                 refer   4.1.4
             ERROR ̲NO ̲TYPE              refer 4.2.2.5
             SEQUENCE ̲CODE ̲NO ̲TYPE      refer 4.2.2.5

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

             FORMAT ̲IFCB                refer 4.1.4                INT
                                                                   ̲ERROR
                                                                   ̲INF
                                                                   (m) refer
                                                                       
                                                                       
                                                                       4.1.4
             SEQUENCE ̲CODE ̲NO (m)       refer 4.2.2.5
             MSOS ̲S1 (m)                refer   4.1.4
             SEVCO ̲OP (m)               refer   4.1.4
             VDU ̲SPLIT ̲FLAG (m)         refer   4.1.4
             START ̲FLAG (m)             refer 4.2.2.5
             SEQUENCE ̲FORMAT ̲NO (m)     refer 4.2.2.5
             EXP ̲SEDIA ̲CMD              refer 4.2.2.5
             MSOS ̲OP                    refer 4.1.4
             CLEAR ̲BIT                  refer 4.2.2.5
             PUNCH ̲BIT                  refer 4.2.2.5


         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 SEDIA, and
         in those cases where completion code is to a command
         issued by SEVCO, a completion code is sent to SEVCO.


SEDIA ̲CC ̲PROCESSING
F̲R̲E̲E̲ ̲S̲E̲F̲C̲O̲ ̲O̲P̲(̲M̲S̲O̲S̲ ̲O̲P̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲7̲)̲
MSOS ̲OP.CMD NE EXP ̲SEDIA ̲CMD?
MSOS ̲OP.PARA1 EQ SPLIT ̲FAILED ̲CC? S̲I̲G̲N̲A̲L̲ ̲S̲E̲V̲C̲O̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲5̲)̲
CASE MSOS ̲OP.CMD OF SEFCO ̲SEDIA ̲CMD ̲TYPE
   L ̲INSERT
   L ̲DELETE? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
                OK ̲CC?
                ERROR ̲CC? 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? 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
   CLEAR ̲VDU, 
   DISPLAY ̲MENU,
   OUTPUT ̲FORMAT? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC
                     OK ̲CC? START ̲FLAG EQ FALSE?
                          MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
                          START ̲FLAG=FALSE
                          MOVE START ̲SEFCO ̲CC TO SEVCO ̲OP.CMD
                          S̲I̲G̲N̲A̲L̲ ̲O̲P̲S̲E̲M̲(̲M̲S̲O̲S̲ ̲S̲1̲,̲S̲E̲V̲C̲O̲ ̲O̲P̲)̲:̲O̲K̲
                          SEQUENCE ̲FORMAT ̲NO=SEQ ̲REC.NEW ̲FORMAT
                          SEQUENCE ̲CODE ̲NO=OUTPUT ̲FORMAT ̲CC
                          M̲S̲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
                     OTHERWISE? C̲O̲N̲T̲I̲N̲U̲E̲ ̲S̲E̲D̲I̲A̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲3̲)̲
END CASE
O̲P̲E̲N̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲2̲)̲
END SEDIA ̲CC ̲PROCESSING




                                  Figure 4.2.2.4.6-1


OPEN

CASE ENABLE ̲DATA ̲KEYS(FORMAT ̲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(HEADER ̲IFCB)(CC): ERROR ̲OK

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

             L2? VDU ̲SPLIT ̲FLAG = TRUE

          END CASE

       OK?

END CASE

END OPEN




















                 Figure 4.2.2.4.6-2


CONTINUE SEDIA ̲CC ̲PROCESSING

CASE MSOS ̲OP.CMD OF SEFCO ̲SEDIA ̲CMD ̲TYPE

   CANCEL ̲I ̲O,
   CLOSE? CASE MSOS ̲OP. PARA1 OF CO ̲CMD ̲CC

           OK ̲CC? MSOS ̲OP EQ CANCEL? -  SEQUENCE ̲CODE
                                        ̲NO = CANCEL ̲CC

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

                  SEQUENCE ̲CODE ̲NO=CLOSE ̲DOWN ̲CC
                  M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲
                  MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)
                  MOVE CLOSE ̲DOWN ̲SEFCO ̲CC TO SEVCO ̲OP.CMD
                  SIGNAL ̲OPSEM(MSOS ̲S1,SEVCO ̲OP):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

   GARBLE ̲IN,
   INPUT ̲DATA? CASE MSOS ̲OP.PARA1 OF ̲CMD ̲CC

                  OK ̲CC? P̲A̲R̲A̲ ̲A̲N̲A̲L̲Y̲Z̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲6̲-̲4̲)̲
                  ERROR ̲CC? SEQUENCE ̲CODE ̲NO=VAL ̲ERROR
                  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

               SEQUENCE ̲FORMAT ̲NO = SEQ ̲REC.NEW ̲FORMAT

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

   OUTPUT ̲DATA? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC

                  OK ̲CC? SEQUENCE ̲FORMAT ̲NO=SEQ ̲REC.NEW
          ̲FORMAT

                         SEQUENCE ̲CODE ̲NO=OUTPUT ̲DATA
                     ̲CC

                         M̲S̲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

   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-3


ANALYZE ̲PARAM

CASE MSOS ̲OP. PARA2

   M ̲DUMMY? SEQUENCE ̲CODE ̲NO=INPUT ̲VAL ̲CC

   DEFER?   SEQUENCE ̲CODE ̲NO=DEFER ̲VAL

   SEND?    SEQUENCE ̲CODE ̲NO=SEND ̲VAL

   PRINT?   SEQUENCE ̲CODE ̲NO=PRINT ̲VAL

   KEYA?    SEQUENCE ̲CODE ̲NO=KEYA ̲VAL

   KEYB?    SEQUENCE ̲CODE ̲NO=KEYB ̲VAL

   KEYE?    SEQUENCE ̲CODE ̲NO=KEYE ̲VAL

   CLEAR?   SEQUENCE ̲CODE ̲NO=INPUT ̲VAL ̲CC

            CLEAR ̲BIT=TRUE

   PUNCH?   SEQUENCE ̲CODE ̲NO=INPUT ̲VAL ̲CC

            PUNCH ̲BIT=TRUE

   CLEAR ̲PRINT? SEQUENCE ̲CODE ̲NO=PRINT ̲VAL

                CLEAR ̲BIT=TRUE

   PUNCH ̲PRINT? SEQUENCE ̲CODE ̲NO=PRINT ̲VAL

                PUNCH ̲BIT=TRUE

   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 ANALYZE ̲PARAM








                 Figure 4.2.2.4.6-4


SIGNAL ̲SEVCO

VDU ̲SPLIT ̲FLAG = TRUE

CASE MSOS ̲OP. CMD OF SEFCO ̲SEDIA ̲CMD ̲TYPE

   OUTPUT ̲FORMAT? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC

                     OK ̲CC? START ̲FLAG EQ FALSE?

                             MOVE SEFCO ̲IDENT TO SEVCO
                             ̲OP.OP ̲ID(1)

                             START ̲FLAG=FALSE

                             MOVE START ̲SEFCO ̲CC TO SEVCO
                             ̲OP.CMD

                             SIGNAL OPSEM(MSOS ̲S1,SEVCO
                             ̲OP):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


   CLOSE? CASE MSOS ̲OP.PARA1 OF CO ̲CMD ̲CC

            OK ̲CC? MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)

                   MOVE CLOSE ̲DOWN ̲SEFCO ̲CC TO SEVCO ̲OP.CMD

                   SIGNAL ̲OPSEM(MSOS ̲S1,SEVCO ̲OP): 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

   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-5


4.2.2.4.7    S̲E̲T̲R̲ ̲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
         SETR ̲Coroutine, display notification and entering the
         MSOS ̲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)  SETR ̲OP ̲PROCESSING

         b)  SETR ̲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̲

             QEL ̲ATTRIBUTES             refer CPS/DBD/001
             MSOS ̲CO ̲OP ̲TYPE            refer   4.1.4
             SEQUENCE ̲CODE ̲NO ̲TYPE      refer 4.2.2.5
             SETR ̲SEFCO ̲RESPONSE ̲TYPE   refer   4.1.4
             ERROR ̲NO ̲TYPE              refer 4.2.2.5
             INTERNAL ̲ERROR ̲TYPE        refer   4.1.4
             QELEMENT ̲MAIN ̲TYPE         refer CPS/DBD/001
             HEADER ̲TEXT ̲TYPE           refer 4.2.2.5


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

             HEADER ̲TEXT                refer 4.2.2.5
             MSO ̲RECV ̲ATTR (m)          refer 4.2.2.5
             INT ̲ERROR-̲INF (m)          refer   4.1.4
             SEFCO ̲SETR ̲ATTR            refer   4.1.4
             SEQUENCE ̲CODE ̲NO (m)       refer 4.2.2.5
             SETR ̲OP                    refer   4.1.4
             CURRENT ̲MODE (m)           refer   4.1.4
             SEQUENCE ̲FORMAT ̲NO (m)     refer 4.2.2.5



         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 MSOS ̲SEQUENCE(4.2.2.4.11) or, when the input is
         analysed, the latter only.



   SETR ̲OP ̲PROCESSING:

   MOVE SEFCO ̲SETR ̲ATTR TO MSO ̲RECV ̲ATTR

   CASE SETR ̲OP.CMD OF SETR ̲SEFCO ̲RESPONSE ̲TYPE

       ONLINE ̲NOTIFICATION?   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̲)̲

       OFFLINE ̲NOTIFICATION?  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̲)̲
                              
                              SEQUENCE ̲CODE ̲NO = SEQ ̲OFF
                              ̲NOT

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

       READDRESS ̲NOTIFICA-
       TION?                  R̲E̲A̲D̲D̲R̲ ̲N̲O̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲7̲-̲2̲)̲

                              HEADER ̲TEXT = READDRESS

       RERUN ̲NOTIFICATION?    R̲E̲R̲U̲N̲ ̲N̲O̲T̲(̲4̲.̲2̲.̲2̲.̲4̲.̲7̲-̲3̲)̲

                              HEADER ̲TEXT = RERUN

       RETRIEVAL ̲ERROR?       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̲)̲

                              SEQUENCE ̲CODE ̲NO = SEQ ̲ERROR

                              M̲S̲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.7-1









   READDR ̲NOT

   SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ TRUE? M̲S̲O̲S̲
   ̲I̲N̲T̲E̲R̲V̲A̲L̲
                                   E̲R̲R̲O̲R̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
   CASE SEFCO ̲SETR ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN
   ̲TYPE

       PLAINDRESS?            SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS.
                                                     
                                                     EQ
                                                   TRUE?

                                   SEQUENCE ̲CODE ̲NO =
                                   START
                                   SEQUENCE ̲FORMAT ̲NO
                                   = RDPLAC
                                   M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                              SEQUENCE ̲FORMAT ̲NO = RDPLANC

                              SEQUENCE ̲CODE ̲NO = START

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


       PLAINDRESS ̲SERVICE?    SEFCO ̲SETR ̲ATTR.HEADER.FLAG.
                                            CAMPS EQ TRUE?

                                   SEQUENCE ̲FORMAT ̲NO
                                   = RDPLASEC
                                   SEQUENCE ̲CODE ̲NO =
                                   START
                                   M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

                              SEQUENCE ̲FORMAT ̲NO = RDPLASERNC
                              SEQUENCE ̲CODE ̲NO = START
                              M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲


       TRANSMISSION           
       CATALOGUE DISPLAY?     HEADER ̲TEXT = TRANSMISSION
                              ̲CATALOGUE
                              SEQUENCE ̲FORMAT ̲NO = 
                              RE ̲TRANS ̲CA-TALOGUE

                              SEQUENCE ̲CODE ̲NO = START
                              M̲S̲O̲S̲ ̲S̲E̲Q̲U̲E̲N̲C̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲1̲1̲)̲

       SYSTEM ̲CATALOGUE ̲DIS-  
       PLAY?                  HEADER ̲TEXT ̲SYSTEM ̲CATALOGUE
                              SEQUENCE ̲FORMAT ̲NO=RE ̲SYS
                              ̲CATALOGUE
                              SEQUENCE ̲CODE ̲NO = START
                              M̲S̲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̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲
                              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̲)̲

   EMD CASE

                 FIGURE 4.2.2.4.7-2




   RERUN ̲NOT

   CASE SEFCO ̲SETR ̲ATTR.HEADER MAINTYPE OF QELEMENT ̲MAIN
   ̲TYPE

       PLAIN-
       DRESS,

       PLAINDRESS
       DATA? SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?

                 SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED.EQ.TRUE?

                     SEQUENCE ̲CODE ̲NO = START

                     SEQUENCE ̲FORMAT ̲NO = RRNPLADATAC

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

                 SEQUENCE ̲FORMAT ̲NO = RRNPLADATANC

                 SEQUENCE ̲CODE ̲NO = START

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

             SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ
             TRUE?

                 SEQUENCE ̲FORMAT ̲NO = RRNPLNC

                 SEQUENCE ̲CODE ̲NO = START

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

             SEQUENCE ̲FORMAT ̲NO = RRNPLDANC

             SEQUENCE ̲CODE ̲NO = START

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

       CONTINUE(4.2.2.4.7.4)






                 FIGURE 4.2.2.4.7-3


   PLAINDRESS ̲
   SERVICE?  SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?

                 SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED
                 EQ TRUE?

                     SEQUENCE ̲FORMAT ̲NO = RRNPLDRC

                     SEQUENCE ̲CODE ̲NO = START

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

                 SEQUENCE ̲FORMAT ̲NO = RRNPLDRNR

                 SEQUENCE ̲CODE ̲NO = START

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

             SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ
             TRUE?

                 SEQUENCE ̲FORMAT ̲NO = RRNPLNCRE

                 SEQUENCE ̲CODE ̲NO = START

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

             SEQUENCE ̲FORMAT ̲NO = RRNPLNCNR

             SEQUENCE ̲CODE ̲NO = START

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

       CONTINUE(4.2.2.4.7-5)














                 FIGURE 4.2.2.4.7-4




   ABB ̲

   PLAINDRESS,


   ABB ̲

   PLAINDRESS ̲

   DATA?     SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?

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

             SEFCO ̲SETR.ATTR.HEADER.FLAG.READDRESSED EQ
             TRUE?



                 SEQUENCE ̲FORMAT ̲NO = RRNABBRE

                 SEQUENCE ̲CODE ̲NO = START

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


             SEQUENCE ̲FORMAT ̲NO = RRNABBNRE

             SEQUENCE ̲CODE ̲NO = START

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



       CONTINUE(4.2.2.4.7-6)












                 FIGURE 4.2.2.4.7-5




   ABB ̲PLAINDRESS
   SERVICE,

   ABB ̲SERVICE?  SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ
                 TRUE?

                     SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED
                     EQ 
                                                     
                                            TRUE?

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


                     SEQUENCE ̲FORMAT ̲NO = RRNABBSENC

                     SEQUENCE ̲CODE ̲NO = START

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


                 SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED
                 EQ
                                                     
                                         TRUE?


                     SEQUENCE ̲FORMAT ̲NO = RRNABBRE

                     SEQUENCE ̲CODE ̲NO = START

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


                 SEQUENCE ̲FORMAT ̲NO = RRNABBNRE

                 SEQUENCE ̲CODE ̲NO = START

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


       CONTINUE(4.2.2.4.7-7)








                 FIGURE 4.2.2.4.7-6




   SC ̲
   COMMENT?  SEFCO ̲SETR ̲ATTR.HEADER.FLAG.READDRESSED EQ
             TRUE?

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

             SEFCO ̲SETR ̲ATTR.HEADER.FLAG.CAMPS EQ TRUE?


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


             SEQUENCE ̲FORMAT ̲NO = RRNSC

             SEQUENCE ̲CODE ̲NO = START

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

   TRANSMISSION

   CATALOGUE

   DISPLAY?  HEADER ̲TEXT=TRANSMISSION ̲CATALOGUE

             SEQUENCE ̲FORMAT ̲NO =RRN ̲TRANS ̲CATALOGUE

             SEQUENCE ̲CODE ̲NO = START

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


   SYSTEM ̲
   CATALOGUE ̲
   DISPLAY?  HEADER ̲TEXT=SYSTEM ̲CATALOGUE

             SEQUENCE ̲FORMAT ̲NO = RRN ̲SYS ̲CATALOGUE

             SEQUENCE ̲CODE ̲NO = START

             M̲S̲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̲(̲C̲O̲N̲T̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

   END CASE



                 FIGURE 4.2.2.4.7-7




4.2.2.4.8    M̲S̲O̲S̲ ̲I̲N̲/̲O̲U̲T̲ ̲L̲I̲N̲E̲



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

         The purpose of this module is to analyse the input
         from command line and signal command and parameter
         to SEDIA, or alternatively, if the input is unacceptable,
         to call other modules.



4.2.2.4.8.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)  MSOS ̲IN/OUT ̲LINE(BYTES ̲TRANSFERRED: COUNTER)

         b)  MSOS ̲IN/OUT ̲LINE (R6, R7)

         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)

         R7      BYTES ̲TRANSFERRED             (DEST)

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

         None

         R0 - R7                               (DEST)



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

         NONE





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

             COROUTINE SEMAPHORE         refer CPS/DBD/001
             MSOS ̲CO ̲OP ̲TYPE             refer   4.1.4
             SEFCO ̲SEDIA ̲CMD ̲TYPE        refer   4.1.4
             ERROR ̲NO ̲TYPE               refer 4.2.2.5
             INTERNAL ̲ERROR ̲TYPE         refer   4.1.4
             IDENT ̲TYPE                  refer 4.1.4

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

             EXP ̲SEDIA ̲CMD (m)           refer 4.2.2.5
             INT ̲ERROR ̲INF (m)           refer   4.1.4
             IN ̲LINE ̲FLAG (m)            refer 4.2.2.5
             HEADER ̲IFCB                 refer   4.1.4
             MSOS ̲S3 (m)                 refer   4.1.4
             SEFCO ̲OP (m)                refer 4.2.2.5
             OUT ̲LINE ̲FLAG (m)           refer 4.2.2.5
             SEDIA ̲CMD ̲CNT (m)           refer 4.2.2.5

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

             CONST MAX ̲NO = 1000



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

         If the expected FC ̲key (Return) is entered the content
         of the command line is converted, and a command is
         signalled to SEDIA. If the conversion failed other
         common procedures are called in order to display an
         error message and to reset the cursor position on the
         command line.



   MSOS ̲IN/OUT ̲LINE

   C̲O̲N̲V̲E̲R̲T̲ ̲T̲O̲ ̲I̲N̲T̲E̲G̲E̲R̲

   NOT ̲OK?   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̲)̲

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

   OK?       S̲E̲N̲D̲ ̲T̲O̲ ̲S̲E̲D̲I̲A̲(̲4̲.̲2̲.̲2̲.̲4̲.̲8̲-̲2̲)̲

             S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

   END MSOS ̲IN/OUT ̲LINE



































                 FIGURE 4.2.2.4.8-1



   SEND TO SEDIA

   NO ̲OF ̲LINES GT MAX ̲NO? 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̲)̲

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

   S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲ ̲(̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

   CASE F̲E̲T̲C̲H̲ ̲S̲E̲F̲C̲O̲ ̲O̲P̲(̲S̲E̲F̲C̲O̲ ̲O̲P̲)̲(̲4̲.̲2̲.̲2̲.̲4̲.̲2̲8̲)̲

       ERROR? 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̲)̲

       OK?

   END CASE

   MOVE SEFCO ̲IDENT TO SEFCO ̲OP.OP ̲ID(1)

   MOVE NO ̲OF ̲LINES TO SEFCO ̲OP.PARA1

   IN ̲FLAG EQ TRUE? MOVE L ̲INSERT TO SEFCO ̲OP.CMD

                     IN ̲FLAG = FALSE

   OUT ̲FLAG EQ TRUE? MOVE L ̲DELETE TO SEFCO ̲OP.CMD

                     OUT ̲FLAG = FALSE

   EXP ̲SEDIA ̲CMD=SEFCO ̲OP.OP ̲ID(2)

   SEDIA ̲CMD ̲CNT=SEDIA ̲CMD ̲CNT+1

   SIGNAL ̲OPSEM(MSOS ̲S3,SEFCO ̲OP): OK

   END SEND TO SEDIA












                 Figure 4.2.2.4.8-2


4.2.2.4.9    M̲S̲O̲S̲ ̲C̲M̲D̲ ̲P̲E̲N̲D̲I̲N̲G̲



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

         The purpose of this module is to fetch the content
         of the command line, validate it, display terminal
         field text and enter the SEQUENCE module (4.2.2.4.11).



4.2.2.4.9.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)  MSOS ̲CMD ̲PENDING(BYTES ̲TRANSFERRED)

         b)  MSOS ̲CMD ̲PENDING (R6, R7)



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

         R6      LINK                          (DEST)

         R7      BYTES ̲TRANSFERRED             (DEST)


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

         None

         R0 - R7                               (DEST)



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

         N/A


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

             PRECEDENCE ̲TYPE                   refer CPS/DBD/001
             COROUTINE ̲SEMAPHORE               refer CPS/DBD/001
             MSO ̲RECV ̲QUEUE ̲TYPE               refer   4.1.4
             INTERNAL ̲ERROR ̲TYPE               refer   4.1.4
             SEQUENCE ̲CODE ̲NO ̲TYPE             refer 4.2.2.5
             SEQUENCE ̲FORMAT ̲NO ̲TYPE           refer 4.2.2.5
             USER ̲FCT ̲CAPABILITY ̲TYPE          refer CPS/DBD/001
             TABLE ̲ID ̲TYPE                     refer CPS/DBD/001
             SEQ ̲KEY ̲TYPE                      refer 4.2.2.5
             IDENT ̲TYPE                        refer   4.1.4
             MSOS ̲CO ̲OP ̲TYPE                   refer   4.1.4
             ERROR ̲NO ̲TYPE                     refer 4.2.2.5
             SEND ̲PARAMS                       refer CPS/DBD/001

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

             MSOS ̲S1 (m)                       refer   4.1.4
             CURRENT ̲MAINQ                     refer 4.2.2.5
             CURRENT ̲SUBQ                      refer 4.2.2.5
             SEVCO ̲OP (m)                      refer   4.1.4
             MSOS ̲SEND ̲PARAMS (m)              refer   4.1.4
             SEQUENCE ̲CODE ̲NO (m)              refer 4.2.2.5
             SEQUENCE ̲FORMAT ̲NO (m)            refer 4.2.2.5
             RECV ̲MAIN                         refer 4.2.2.5
             CMD ̲RESP ̲AREA (m)                 refer 4.2.2.5
             CMD ̲FLAG (m)                      refer 4.2.2.5
             CURRENT ̲MODE (m)                  refer   4.1.4
             HEADER ̲IFCB                       refer   4.1.4
             CIF ̲BUFFER (m)                    refer   4.1.4
             INT ̲ERROR ̲INF (m)                 refer   1.4.1
             SEDIA ̲CMD ̲CNT                     refer 4.2.2.5





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

             TYPE CMD ̲RECORD: CMD ̲RECORD ̲TYPE

             CMD ̲RECORD ̲TYPE =

             RECORD

                 CMD: ARRAY (1..4) OF CHAR

                 VDU ̲HEADER ̲TEXT: ARRAY (1..26) OF CHAR

                 CAPABILITY: USER ̲CAPABILITY ̲TYPE

                 VDU ̲HEADER ̲TEXT ̲FLAG: BOOLEAN

                 KEY:                SEQ ̲KEY ̲TYPE

                 MODE:               INTEGER

                 VALIDATE:           MSOS ̲HEADER ̲VALIDATION
                                     ̲TYPE

                 PARAMETER:          BOOLEAN

             END;

             CONST COMMAND ̲LENGTH = 4

         VAR CC ̲FLAG:                BOOLEAN

             TYPE MSO ̲CMD = CMD ̲RECORD ̲TYPE
             TYPE CMD ̲PARAM = CMD ̲PARAM ̲TYPE
             CMD ̲PARAM ̲TYPE = RECORD

                      CMD: CMD ̲TYPE
                     INFO: INTEGER
                     LINK: POINTER
                        END 

             TYPE CMD = ARRAY (1..4) OF CHAR
             INIT CC ̲FLAG = TRUE 

         TYPE MSOS ̲HEADER ̲VALIDATION ̲TYPE = (CPFP, CAPP, CASP)
         VAR VALIDATE: MSOS ̲HEADER ̲VALIDATION ̲TYPE
         CONST CMD ̲MASK = FFFF
         VAR NO: COUNTER
         VAR CNT: COUNTER
         VAR ITREF: INTEGER


CMD ̲PARAM ̲TABLE=ARRAY(0..MAX ̲NO ̲OF ̲PARAMS)OF CMD ̲PAR

CMD ̲PAR=RECORD

         TYPE: PARAMETER ̲TYPE

         NO ̲OF ̲CHAR: INTEGER

         START ̲POS:  INTEGER

         END

PARAMETER ̲TYPE=(ALPHA ̲TYPE,NOM ̲TYPE,ALPHA ̲NUM ̲TYPE)

PAR ̲TYPE ̲SET=(ALPHA,NUM,ALPHA ̲NUM)

ALPHA ̲TYPE=ALPHA..ALPHA

NUM ̲TYPE=NUM..NUM

ALPHA ̲NUM ̲TYPE=ALPHA..ALPHA ̲NUM


         TYPE D ̲CHAR: "ASC" CHARACTER SET

         TYPE A ̲CHAR: A..Z

         TYPE N ̲CHAR: 0..9

         TYPE SPACE:  "ASC" SPACE

         TYPE KOMMA:  ,

         VAR NO ̲OF ̲CHAR: INTEGER

         VAR P ̲TYPE:      PARAMETER ̲TYPE

   CONST MAX ̲NO ̲OF PARAMS=1000

   CONST COMMAND ̲LINE ̲LENGTH=69 …86…1         …02…   …02…   …02…   …02…        
                        …02…                  
4.2.2.4.9.5 M̲o̲d̲u̲l̲e̲ ̲D̲e̲s̲i̲g̲n̲

         A call to TMP is issued, in order to validate the command.

         Capability and the parameter (if any) are checked,
         and MSOS ̲SEQUENCE is entered.

         If VDU ̲HEADER ̲TEXT ̲FLAG is true the terminal text is
         displayed. If mode changes occur SEVCO is signalled.



   MSOS ̲CMD ̲PENDING

   BYTES ̲TRANSFERRED LT COMMAND ̲LENGTH? 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̲)̲

   L̲O̲O̲K̲ ̲U̲P̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲5̲)̲     S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

   NO OF PARAMS EQ 1000?  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̲)̲
                          S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲H̲E̲A̲D̲E̲R̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

   KEY COUNT = 1

   EQUIVALENCE(CIF ̲BUFFER(1),CMD ̲PARAM; CMD ̲PARAM ̲TYPE)

   EQUIVALENCE(CIF ̲BUFFER(1+ SIZE (CMD ̲PARAM ̲TYPE)),MSO
   ̲CMD:
                                              CMD ̲RECORD
                                              ̲TYPE)

   CMD ̲PARAM.CMD = CMD ̲RESP ̲AREA(CMD ̲PARAM ̲TABLE(1).START
   ̲POS)

   CASE SEARCH ̲PRIMARY ̲KEY(COMMAND ̲TABLE,CMD ̲PARAM,KEY
   ̲COUNT,
                     SIZE(CMD ̲RECORD),CMD ̲MASK)(MSO ̲CMD):ERROR
                     ̲OK

       ERROR?    ANALYSE ̲ERROR(CC,0)

       OK?       

   END CASE

   CMD ̲PARAM.INFO EQ 0? 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̲)̲

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

   A̲S̲S̲I̲G̲N̲ ̲C̲U̲R̲R̲E̲N̲T̲ ̲M̲A̲I̲N̲Q̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲8̲)̲

   CMD ̲RECORD.PARAMETER EQ FALSE?

   NO ̲OF ̲PARAMS EQ 1?                    S̲E̲Q̲ ̲E̲N̲T̲R̲Y̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲2̲)̲

   V̲A̲L̲I̲D̲A̲T̲E̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲S̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲4̲)̲      SET CC ̲FLAG =
                                        TRUE

   CC ̲FLAG EQ FALSE?

   I̲N̲V̲E̲S̲T̲I̲G̲A̲T̲E̲ ̲M̲O̲D̲E̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲3̲)̲

   CMD ̲RECORD.VDU ̲HEADER ̲TEXT ̲FLAG EQ FALSE?

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

   END MSOS ̲CMD ̲PENDING

                 FIGURE 4.2.2.4.9-1






   SEQ ̲ENTRY

   CMD ̲RECORD.KEY.FORMAT = SEQUENCE ̲FORMAT ̲NO

   CMD ̲RECORD.KEY.CODE = SEQUENCE ̲CODE ̲NO

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

   CURRENT ̲SUBQ = NULL

   END SEQ ̲ENTRY





























                 FIGURE 4.2.2.4.9-2





   INVESTIGATE MODE

   CMD ̲RECORD.MODE EQ CURRENT ̲MODE?

   CURRENT ̲MODE = CMD ̲RECORD.MODE

   MOVE SEFCO ̲IDENT TO SEVCO ̲OP.OP ̲ID(1)

   MOVE MSO ̲MODE ̲CHANGE TO SEVCO ̲OP.CMD

   SIGNAL ̲OPSEM(MSOS ̲S1, SEVCO ̲OP): OK

   SET CMD ̲FLAG = FALSE

   END INVESTIGATE MODE

































                 FIGURE 4.2.2.4.9-3





VALIDATE ̲PARAMETER

CASE VALIDATE OF MSOS ̲HEADER ̲VALIDATION ̲TYPE

   …02…CPFP,

       CAPP,

       CASP? CASE S̲E̲Q̲ ̲E̲D̲I̲T̲(̲C̲M̲D̲ ̲P̲A̲R̲A̲M̲ ̲T̲A̲B̲L̲E̲(̲P̲A̲R̲A̲M̲2̲)̲.̲S̲T̲A̲R̲T̲
       ̲P̲O̲S̲)̲,̲

                           C̲M̲D̲ ̲P̲A̲R̲A̲M̲ ̲T̲A̲B̲L̲E̲(̲P̲A̲R̲A̲M̲2̲)̲,̲N̲O̲
                     ̲O̲F̲ ̲C̲H̲A̲R̲)̲:

                           E̲R̲R̲O̲R̲ ̲O̲K̲

                 ERROR? 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̲)̲

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

                 OK? SEQUENCE ̲FORMAT ̲NO=CMD ̲RECORD.KEY.FORMAT

                     SEQUENCE ̲CODE ̲NO=EDTT ̲REQ

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

                 END CASE

       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.9-4


L̲O̲O̲K̲U̲P̲ ̲P̲A̲R̲A̲M̲E̲T̲E̲R̲

NO ̲OF ̲PARAMS=0

P ̲TYPE=NONE

HL ̲INDEX=1

LOOP SCAN ̲LINE

   S̲E̲A̲R̲C̲H̲ ̲S̲T̲A̲R̲T̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲6̲)̲

   S̲E̲A̲R̲C̲H̲ ̲E̲N̲D̲ ̲(̲4̲.̲2̲.̲2̲.̲4̲.̲9̲-̲7̲)̲

END LOOP SCAN ̲LINE
































                 Figure 4.2.2.4.9-5


SEARCH START

LOOP SEARCH ̲START

   CMD ̲RESP ̲AREA(HL ̲INDEX)OF D ̲CHAR

   SPACE,KOMMA?

             NO ̲OF ̲PARAMS GT MAX ̲NO ̲OF ̲PARAMS?-NO ̲OF ̲PARAMS=1000

                                              EXIT LOOP
                                              SCAN LINE

   OTHERWISE? EQUIVALENCE(CUR ̲CMD ̲PARAM,CMD ̲PARAM ̲TABLE

                                        NO ̲OF ̲PARAMS):CMD
                                        ̲PAR)

              NO ̲OF ̲PARAMS=NO ̲OF ̲PARAMS+1

              CUR ̲CMD ̲PARAM.START ̲POS=HL ̲INDEX

                 EXIT LOOP SEARCH ̲START

   END CASE

   HL ̲INDEX=HL ̲INDEX+1

   HL ̲INDEX EQ CMD ̲LINE ̲LENGTH+1?    EXIT LOOP SCAN ̲LINE

END LOOP SEARCH ̲START


















                 Figure 4.2.2.4.9-6


S̲E̲A̲R̲C̲H̲ ̲E̲N̲D̲

NO ̲OF ̲CHAR=1

LOOP SEARCH ̲END

CASE CMD ̲RESP ̲AREA(HL ̲INDEX)OF D ̲CHAR

   A ̲CHAR? - CASE P ̲TYPE OF

               NONE?     P ̲TYPE=ALPHA

               ALPHA, ALPHA ̲NUM?

               NUM?     P ̲TYPE=ALPHA ̲NUM

             END CASE

   N ̲CHAR? - CASE P ̲TYPE OF

               NONE?    P ̲TYPE=NUM

               NUM, ALPHA-NUM?

               ALPHA?   P ̲TYPE=ALPHA ̲NUM

             END CASE

   (SPACE)   
   (KOMMA)?CUR ̲CMD ̲PARAM.TYPE=P ̲TYPE
         CUR ̲CMD ̲PARAM.NO ̲OF ̲CHAR=NO ̲OF ̲CHAR-1

             EXIT LOOP SEARCH ̲END

   OTHERWISE? P ̲TYPE=ALPHA ̲NUM

END CASE

HL ̲INDEX=HL ̲INDEX+1

HL ̲INDEX EQ CMD ̲LINE ̲LENGTH+1? CUR ̲CMD ̲PARAM.TYPE=P ̲TYPE

                             CUR ̲CMD ̲PARAM.NO ̲OF ̲CHAR=NO
                     ̲OF ̲CHAR

                                 EXIT LOOP SCAN ̲LINE

NO ̲OF ̲CHAR=NO ̲OF ̲CHAR+1

END LOOP SEARCH END
                 Figure 4.2.2.4.9-7


   ASSIGN ̲CURRENT ̲MAINQ

   RECV ̲MAIN = TRUE

   CASE CMD ̲RECORD.MODE OF CURRENT ̲MODE ̲TYPE

       INTERACTIV?

       RESPONSE? CURRENT ̲MAINQ = ANSWER ̲Q

                 CURRENT ̲SUBQ=2

                 RECV ̲MAIN = FALSE

       INCO? CURRENT ̲MAINQ=INCOMING ̲Q 

             CURRENT ̲SUBQ=NULL

       OUTGO? CURRENT ̲MAINQ=OUTGOING ̲Q

              CURRENT ̲SUBQ=NULL

       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 ASSIGN ̲CURRENT ̲MAINQ





















                 FIGURE 4.2.2.4.9-8





4.2.2.4.10   M̲S̲O̲S̲ ̲D̲I̲S̲P̲L̲A̲Y̲ ̲R̲E̲S̲P̲ ̲M̲S̲G̲



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

         The purpose of this module is to transfer an error
         code into error/response messages, which are displayed
         in the response line.



4.2.2.4.10.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)  MSOS ̲DISPLAY ̲RESP ̲MSG(ERROR ̲NO: ERROR ̲NO ̲TYPE)

         b)  MSOS ̲DISPLAY ̲RESP ̲MSG(R5, 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̲

         R5      ERROR ̲NO                      (DEST)

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

         None.





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

             ERROR ̲NO ̲TYPE                     refer 4.2.2.5

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

             CMD ̲RESP ̲AREA                     refer 4.2.2.5
             RESPONSE ̲TEXT ̲FLAG (m)            refer 4.2.2.5

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

             CONST MAX ̲ERROR ̲NO = 99



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

         The number read from the command line is converted
         to integer and if the conversion result is beyond a
         max range or illegal, an error message is displayed.
         Other-
         wise the common procedure, DISPLAY ̲ERROR ̲MSG, is called.





   MSOS ̲DISPLAY ̲RESP ̲MSG

   C̲O̲N̲V̲E̲R̲T̲ ̲T̲O̲ ̲I̲N̲T̲E̲G̲E̲R̲

   NOT ̲OK?  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̲)̲

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

   ERROR ̲NO GT MAX ̲ERROR ̲NO?  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̲)̲

                              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̲ ̲E̲R̲R̲O̲R̲ ̲M̲S̲G̲(̲E̲R̲R̲O̲R̲ ̲N̲O̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲4̲)̲

   SET RESPONSE ̲TEXT ̲FLAG = FALSE

   S̲E̲T̲ ̲C̲U̲R̲S̲O̲R̲(̲F̲O̲R̲M̲A̲T̲)̲(̲4̲.̲2̲.̲2̲.̲6̲.̲2̲)̲

   END MSOS ̲DISPLAY ̲RESP ̲MSG

























                Figure 4.2.2.4.10-1