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

⟦9cfd6038c⟧ Wang Wps File

    Length: 70366 (0x112de)
    Types: Wang Wps File
    Notes: CPS/SDS/038               
    Names: »1657A «

Derivation

└─⟦83a6a53dc⟧ Bits:30006111 8" Wang WCS floppy, CR 0176A
    └─ ⟦this⟧ »1657A « 

WangText



B…06…B…07…A…0d…A
@…08…@…0e…@ @…07…?…08…?…0a…?…0b…?…00…?…05…>…08…>…0a…>…0e…>…01…>…05…=…08…=…0e…=…00…= =…06…<…08…<…0b…<…0e…<…02…<…07…;…09…;…0c…;…0e…;…01…; :…0a…:…0e…:…01…:…05…9…09…9…0b…9…0e…9…01……86…1
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                …02…
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                
                                …02…
                                
                                
                                …02…
                                
                                
                                
                                
                                
                                
                                
                                

…02…CPS/SDS/038

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








4.2      S̲U̲B̲P̲A̲C̲K̲A̲G̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲S̲



4.2.1    M̲e̲s̲s̲a̲g̲e̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲(̲S̲E̲V̲C̲O̲)̲

         This subpackage is the controlling subpackage within
         the package. The control is exercised by issue of commands
         and reception of responses.



4.2.1.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 subpackage contains the following functions:

         -   Initialization
         -   TEMCO Command Processing
         -   Flash Item Control
         -   Timer Event Processing
         -   VDU Header Control
         -   SEFCO Control
         -   Error Reporting

         Figure 4.2.1.1-1 presents the functional breakdown.








                     F̲I̲G̲U̲R̲E̲ ̲4̲.̲2̲.̲1̲.̲1̲-̲1̲




4.2.1.1.1    I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲(̲1̲.̲0̲)̲

         a)  Initialize MSOS Data (1.1)
             Performs initialization of common data for the
             subpackages within MSOS.

         b)  Initialize SEVCO Data (1.2)
             Performs initialization of common data for the
             modules within the SEVCO subpackage.



4.2.1.1.2    T̲E̲M̲C̲O̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲

         a)  Process START USER CMD (2.1)
             This command is received after a successful SIGN
             ON procedure has taken place and SEVCO takes action
             and starts SEFCO.

         b)  Process STOP USER CMD (2.2)
             This command is received after SIGN OFF and SEVCO
             takes action and stops SEFCO.

         c)  Process BLOCK TERMINAL CMD (2.3)
             This command is received when the terminal has
             been blocked (by supervisor or as a result of a
             failed SIGN ON procedure or security interrogation)
             and SEVCO informs SEFCO.

         d)  Process CLOSE DOWN CMD (2.4)
             This command informs MSOS that a system close down
             procedure is to take place and SEVCO informs SEFCO.

         e)  Send Response to TEMCO (2.5)
             For each TEMCO command a corresponding command
             to SEFCO exists and to each SEFCO command a corresponding
             completion response exists. When SEVCO has received
             the expected completion response from SEFCO an
             acknowledge to the TEMCO command is sent to TEMCO.





4.2.1.1.3    F̲l̲a̲s̲h̲ ̲I̲t̲e̲m̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲3̲.̲0̲)̲

         a)  I̲n̲t̲e̲r̲p̲r̲e̲t̲ ̲F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲1̲)̲

             Analyses the flash notification from the common
             CMD queue to determine the precedence and which
             queue  the flash item is in (Incoming- or Outgoing-
             queue).

             Flash queue fields update is started.

         b)  I̲n̲t̲e̲r̲p̲r̲e̲t̲ ̲F̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲2̲)̲

             Analyses the flash-notification from the command
             queue to determine the precedence and which queue
             the flash item is in (Incoming- or Outgoing- queue).

             Flash queue fields update is started.

         c)  I̲n̲t̲e̲r̲p̲r̲e̲t̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲3̲)̲

             Analyses the antiflash notification from the command
             queue to determine the precedence and in which
             queue the flash item was in.

             Flash queue fields update is started.

         d)  D̲i̲s̲t̲r̲i̲b̲u̲t̲e̲ ̲F̲l̲a̲s̲h̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲N̲o̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲(̲3̲.̲4̲)̲

             Flash notification from common command queue and
             antiflash notification from command queue is distributed
             to up to 3 other MSO positions.



4.2.1.1.4    T̲i̲m̲e̲r̲s̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲

         a)  Interpret Timeout (4.1)
             Analyses timeout to determine whether it is a periodic
             timeout or other timeouts.



4.2.1.1.5    V̲D̲U̲ ̲H̲e̲a̲d̲e̲r̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲5̲.̲0̲)̲

         a)  Update Date/Time Field (5.1)
             Maintains the Date/Time Field in the VDU-header
             when a periodic timeout occurs.



         b)  PERIODIC Q-Status UPDATE (5.2)
             Maintains the queue length fields in the VDU-header.

         c)  FLASH ̲Q ̲Status Update (5.3)
             Updates the queue status line when flash items
             arrive or returned to common queues.

         d)  Invert and Bell
             Inverts the queue field in which the flash item
             is in and rings the bell.

         e)  Display VDU-Header (5.3)
             Updates the VDU-header display.



4.2.1.1.6    S̲E̲F̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲6̲.̲0̲)̲

         a)  Send CMD to SEFCO (6.1)
             Controls SEFCO by sending commands.

         b)  Process Command Completion from SEFCO (6.2)
             Interprets and reacts upon acknowledge from SEFCO.

         c)  Process MSO Mode Change (6.3)
             Reacts upon information from SEFCO that the current
             user mode (i.e. incoming service, outgoing service,
             response) has changed.



4.2.1.1.7    E̲r̲r̲o̲r̲ ̲R̲e̲p̲o̲r̲t̲i̲n̲g̲ ̲(̲7̲.̲0̲)̲

         a)  Queue Error Reporting (7.1)
             Reports to SSC that an unexpected Queue element
             has been received.

         b)  Internal Error Handling (7.2)
             Reports to SSC that an unexpected response has
             been received from SEFCO or from monitor procedures
             called.





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

         The software structure is shown on figure 4.2.1.2-1.
         SEVCO consists of one coroutine containing 7 modules
         and 14 common procedures.



4.2.1.2.1    S̲E̲V̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲(̲1̲.̲0̲)̲

         This is the module containing the mainloop of SEVCO.
         The module contains the MSOS initialization functions,
         receives and processes items arriving in the MSOS ̲CMDQ,
         and MSOS ̲CCMDQ, receives and reacts upon INIT ̲SEFCO
         response, MSOS and reports queue errors and internal
         errors to SSC.

         The following component procedure is contained in this
         module:

         a)  MSOS Init
             Initializes the MSOS common data and SEVCO data.



4.2.1.2.2    T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲2̲.̲0̲)̲

         This module analyses TEMCO commands, performs start
         user actions (after sign on), sends commands to SEFCO
         and reports reception of unexpected queue elements
         to SSC.

         The following component procedures are contained in
         this module:

         a)  MSO Connection (2.1)
             Reads the START ̲CMD queue elements buffer and transfers
             the data to MSO ̲INIT ̲AREA.

             Issues a call to TMP in order to get terminal profile,
             and transfers the data to MSO ̲INIT ̲AREA.

         b)  Init Terminal (2.2)
             Open for message stream between VDU and process.

         c)  Request Periodic Timeout (2.3)
             Requests timer monitor to send timeout every minute.


4.2.1.2.3    F̲l̲a̲s̲h̲ ̲Q̲u̲e̲u̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲ ̲(̲3̲.̲0̲)̲

         This module interprets the flash notification to determine
         which queue the flash item has arrived at and the precedence
         of the item (superflash and flash), distributes flash
         notification to up to 3 other MSO positions, updates
         VDU header queue fields, inverts appropriate flash
         queue fields, rings the bell displays the VDU header
         and reports reception of unexpected queue element in
         the MSOS ̲CCMDQ.



4.2.1.2.4    T̲i̲m̲e̲r̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲4̲.̲0̲)̲

         This module interprets the timeout to determine whether
         it is a periodic- or other. For periodic timeouts the
         date/time field and queue length fields in the VDU
         header are updated and the VDU header displayed. If
         unexpected queue elements are found this is reported
         to SSC.



4.2.1.2.5    S̲E̲F̲C̲O̲ ̲R̲e̲s̲p̲o̲n̲s̲e̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲(̲5̲.̲0̲)̲

         This module reacts upon SEFCO responses and sends acknowledge
         of TEMCO commands to TEMCO and reports queue error
         and internal error to SSC. The follwoing module component
         is contained in this module:

         The following module components are contained in this
         module

         a)  Remove VDU

             Closes message stream between VDU and process

         b)  Cancel Call

             Cancels outstanding system calls.





4.2.1.2.6    I̲n̲t̲e̲r̲n̲a̲l̲ ̲F̲l̲a̲s̲h̲ ̲(̲6̲.̲0̲)̲

         This module analyses flash notification received in
         the command queue and sets up the condition to call
         upon common procedures in order to update queue status
         lines and display the updated VDU header. Queue errors
         are reported to SSC.



4.2.1.2.7    I̲n̲t̲e̲r̲n̲a̲l̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲ ̲(̲7̲.̲0̲)

         This module analyses antiflash notification, (which
         is received in the command queue) and sets up the condition
         to call upon common procedures in order to update queue
         status line and display the updated VDU header.

         Queue errors are reported to SSC.


4.2.1.2.8 C̲o̲m̲m̲o̲n̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲ ̲

         For description of the 14 common procedures refer section
         4.2.1.6.











                     Figure 4.2.1.2-1



4.2.1.3  D̲a̲t̲a̲f̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲ ̲W̲i̲t̲h̲i̲n̲ ̲S̲E̲V̲C̲O̲

         An overview of the dataflow through SEVCO is shown
         on diagrams 4.2.1.3-1 to 4.

         The call structure within SEVCO is shown on figure
         4.2.1.3-5 identifying all calls between modules and
         common procedures.



                   Fig. 4.2.1.3-1 to -5



4.2.1.4  S̲E̲V̲C̲O̲ ̲M̲o̲d̲u̲l̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



4.2.1.4.1    S̲E̲V̲C̲O̲ ̲C̲o̲n̲t̲r̲o̲l̲



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

         This module is the controlling module within the subpackage.
         It interprets the startup parameters delivered in the
         variable START ̲UP when the subprocess is started and
         activates initialization or restart accordingly. It
         initializes the MSOS data areas, sends a initialize
         command to SEFCO, and when a completion code is received
         from SEFCO it initiates reception from the MSOS ̲CMDQ
         and MSOS ̲CCMDQ. It associates the reception from the
         command queues to the operation semaphore MSOS ̲S1 and
         waits for the semaphore. It analyses the input from
         the semaphore to identify:

         SSC-commands
         Flash-Notification
         Periodic timeouts
         Antiflash Notificaton
         SEFCO responses

         and calls appropriate modules



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

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

         a)  SEVCO ̲Control 

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



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

         None

         R0-R7                     Destroyed



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



4.2.1.4.1.3.1 M̲S̲O̲S̲ ̲I̲N̲I̲T̲

         Initializes the MSOS-data areas and SEVCO-data areas.



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

             QELEMENT MAIN ̲TYPE      refer CPS/DBD/001
             SEVCO ̲CMD ̲TYPE          refer 4.1.4
             MSOS ̲CO ̲OP ̲TYPE         refer 4.1.4
             QEL ̲ATTRIBUTES          refer CPS/DBD/001
             QEL ̲REFERENCE           refer CPS/BDB/001
             IDENT ̲TYPE              refer 4.1.4
             INTERNAL ̲ERROR ̲TYPE     refer 4.1.4

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

             INIT ̲SEFCO ̲CMD          refer 4.1.4
             INIT ̲SEFCO ̲CC           refer 4.1.4
             RESTART ̲SEFCO ̲CMD       refer 4.1.4
             RESTART ̲SEFCO ̲CC        refer 4.1.4
             CCMD ̲QEL ̲ATTR (m)       refer 4.2.1.5
             CMD ̲QEL ̲ATTR (m)        refer 4.2.1.5
             INT ̲ERROR ̲INF (m)       refer 4.1.4
             CCMD ̲QEL                refer 4.2.1.5
             CMD ̲QEL                 refer 4.2.1.5
             START ̲FLAG              refer 4.2.1.5
             SEVCO ̲OP (m)            refer 4.1.4
             CMD ̲OP (m)              refer 4.1.4
             CCMD ̲OP (m)             refer 4.1.4
             MSOS ̲S1 (m)             refer 4.1.4
             BEGIN ̲FLAG (m)          refer 4.2.1.5
             CLOSE ̲DOWN ̲CC ̲FLAG      refer 4.2.1.5
             START ̲UP                refer 4.1.4



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

             VAR.RESTART  BOOLEAN



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

         The module performs the following tasks:

         -   Interprets the START ̲UP ̲ACTIVE ̲TYPE and sends a
             INIT ̲SEFCO CMD or RESTART ̲SEFCO CMD accordingly.

         -   Initializes MSOS data- and SEVCO data areas.

         -   Sets up RECEIVE ̲FIRST ̲QEL call to MSOS ̲CMDQ, and
             MSOS ̲CCMDQ, associates the call to MSOS ̲S1, signals
             SEFCO and waits for MSOS ̲S1.

         -   Analyses input ot MSOS ̲CMDQ and MSOS ̲CCMDQ and
             calls the modules:

             TEMCO ̲CMD ̲PROCESSING
             FLASH ̲QUEUE ̲MONITORING
             TIMER ̲EVENT ̲PROCESSING
             INTERNAL ̲FLASH
             INTERNAL ̲ANTIFLASH
             SEFCO ̲RESPONSE PROCESSING

             accordingly



         SEVCO CONTROL

         START ̲UP EQ START? RESTART = FALSE

         START ̲UP EQ RESTART? RESTART = TRUE

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



         M̲S̲O̲S̲ ̲I̲N̲I̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲.̲3̲.̲1̲)̲

         RESTART EQ TRUE? MOVE RESTART ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD

         MOVE INIT ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD



         S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲ ̲(̲ ̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲

         A̲W̲A̲I̲T̲ ̲I̲N̲P̲U̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲-̲2̲)

         END SEVCO ̲CONTROL























                    Figure 4.2.1.4.1-1


         AWAIT ̲INPUT

         WAIT ̲OPSEM(MSOS ̲S1)(MSOS ̲OP): OK

         CASE MSOS ̲OP.ID (1) OF IDENT ̲TYPE
             SEFCO ̲IDENT? S̲E̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲)̲

             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̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

         S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲6̲)̲

         FOREVER ̲LOOP:

             WAIT ̲OPSEM(MSOS ̲S1)(MSOS ̲OP):OK

             CASE MSOS ̲OP.ID ̲ID(1) OF IDENT ̲TYPE

                 CMDQ ̲IDENT?   M̲S̲O̲S̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲-̲4̲)̲

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

                 SEFCO ̲IDENT?  S̲E̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲)̲

                 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 ̲CC ̲FLAG EQ TRUE?  EXIT FOREVER ̲LOOP

         END FOREVER ̲LOOP

         CLOSE ̲LOOP

             WAIT ̲OPSEM(MSOS ̲S1)(MSOS ̲OP):OK

         END CLOSE ̲LOOP

         END AWAIT ̲INPUT




                    Figure 4.2.1.4.1-2


         MSOS ̲CCMD ̲QEL ̲PROCESSING

         CASE WAITSYS ̲CALL(CCMD ̲OP)(CCMD ̲QEL ̲ATTR, SUBQUEUE,
                                     (CCMD ̲QEL,CC):ERROR ̲OK

             ERROR? ANALYSE ̲ERROR(CC,0)

             OK? CASE CCMD ̲QEL ̲ATTR.HEADER.MAINTYPE OF QELEMENT
                                                  MAIN ̲TYPE

                     FLASH

                     NOTIFICATION?   F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲M̲O̲N̲I̲T̲O̲-̲
                                            R̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲3̲)̲

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


                 END CASE

         END CASE

         END MSOS ̲CCMD ̲QEL ̲PROCESSING





















                    Figure 4.2.1.4.1-3


MSOS ̲CMD ̲QEL ̲PROCESSING


CASE WAIT ̲SYSCALL(CMD ̲OP)(CMD ̲QEL ̲ATTR,SUBQUEUE,CMD
 ̲QEL, CC): ERROR ̲OK

 ERROR? ANALYSE ̲ERROR (CC,0)

 OK? CASE CMD ̲QEL ̲ATTR.HEADER.MAINTYPE OF QELEMENT ̲MAIN
 ̲TYPE

         SSC ̲CMD? T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲)̲

         FLASH -

         NOTIFICATION?  BEGIN FLAG

                        EQ = TRUE? I̲N̲T̲E̲R̲N̲A̲L̲ ̲F̲L̲A̲S̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲6̲)̲

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

                        S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

         TEP ̲

         INTERNAL?      BEGIN ̲FLAG

                        EQ =  TRUE? I̲N̲T̲E̲R̲N̲A̲L̲ ̲A̲N̲T̲I̲F̲L̲A̲S̲H̲
                        ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲7̲)̲

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

                        S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

         TIMEOUT?       BEGIN ̲FLAG

                        EQ = TRUE? TIMER ̲EVENT P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
                        ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲4̲)̲

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

                        S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

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

                        S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

     END CASE

END CASE

                Figure 4.2.1.4.1-4


4.2.1.4.2    T̲E̲M̲C̲O̲ ̲C̲M̲D̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲



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

         This module analyses TEMCO commands, performs necessary
         actions and sends appropriate commands to SEFCO.



4.2.1.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)  TEMCO ̲CMD ̲PROCESSING

         b)  TEMCO ̲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̲s̲

         R6 LINK              Destroyed

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

         R0-R7                Destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None



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



4.2.1.4.2.3.1 M̲S̲O̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲

         Reads the USER ̲START ̲ID RECORD (received with START
         ̲USER cmd from TEMCO) on to INIT ̲AREA.



4.2.1.4.2.3.2 I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲

         Opens for message stream between VDU and process.



4.2.1.4.2.3.3 R̲E̲Q̲U̲E̲S̲T̲ ̲P̲E̲R̲I̲O̲D̲I̲C̲ ̲T̲I̲M̲E̲O̲U̲T̲

         Sets up 1 minute periodic timeout by request to Timer
         Monitor.



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

             REQUEST ̲TIME ̲RELATIVE ̲TYPE  refer CPS/DBD/001
             SSC ̲COMMAND ̲SUBTYPE         refer CPS/DBD/001
             QERROR ̲INF ̲TYPE             refer 4.1.4
             MSOS ̲CO ̲OP ̲TYPE             refer 4.1.4
             SEVCO ̲CMD ̲TYPE              refer 4.1.4
             QEL ̲ATTRIBUTES ̲TYPE         refer CPS/DBD/001
             QEL ̲REFERENCE ̲TYPE          refer CPS/DBD/001
             USER ̲START ̲ID               refer CPS/DBD/001

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

             MSOS ̲S1                     refer 4.1.4
             MSO ̲INIT ̲AREA (m)           refer 4.1.4
             QERROR ̲INF (m)              refer 4.1.4
             TERMINAL ̲PROFILE            refer CPS/DBD/001
             USER ̲CONNECTION             refer CPS/DBD/001
             HEADER ̲IFCB                 refer 4.1.4
             CMD ̲QEL ̲ATTR                refer 4.2.1.5
             SEVCO ̲OP (m)                refer 4.1.4
             BEGIN ̲FLAG (m)              refer 4.2.1.5
             MSOS ̲CMDQ                   refer 4.1.4

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

             VAR MSOS ̲REQUEST ̲TIMEOUT: REQUEST ̲TIME ̲RELATIVE
             ̲TYPE
             VAR CONT ̲FLAG:              BOOLEAN
             CONST BUF ̲SIZE = SIZE (START ̲UP ̲BUFFER)
             CONST TIME ̲Q = 1



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

         This module performs the following tasks:

         -   Interprets TEMCO commands.



         -   Reads the terminal profile and sets up data from
             it in MSOS common data area.

         -   Sets up user connection in MSO common data area.

         -   Initializes and displays VDU header

         -   Requests periodic 1 minute timeout

         -   Send appropriate commands to SEFCO




         TEMCO ̲CMD ̲PROCESSING

         SET BEGIN ̲FLAG = FALSE

         CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF SSC ̲COMMAND ̲SUBTYPE

             START ̲USER? SET BEGIN ̲FLAG = TRUE

                         M̲S̲O̲ ̲C̲O̲N̲N̲E̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲.̲3̲.̲1̲)̲

                         I̲N̲I̲T̲ ̲T̲E̲R̲M̲I̲N̲A̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲2̲.̲3̲.̲2̲)̲

                         G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲9̲)̲

                         Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲

                         D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲

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

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

             STOP ̲USER? MOVE ̲SEFCO ̲CMD TO SEVCO ̲OP.CMD

             BLOCK ̲TERMINAL? MOVE BLOCK ̲SEFCO ̲CMC TO SEVCO ̲OP.CMD

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

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

                        SET CONT ̲FLAG = TRUE

         END CASE

         CONT FLAG = EQ TRUE?

         S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲)̲


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

         S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲U̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲)̲

         SET CONT ̲FLAG = FALSE

         END TEMCO ̲CMD ̲PROCESSING

                    Figure 4.2.1.4.2-1


         MSO ̲CONNECTION


         CASE READ BUFFER (CMD ̲QEL, INIT ̲AREA,START ̲
                           OFFSET)(BUF ̲SIZE):
                           ERROR ̲OK


             ERROR? ANALYSE ̲ERROR(CC,0)

             OK?     CALCULATE MAX ̲CLASSIFICATION and SPECIAL
                     ̲HANDLING ̲DESIGNATOR FROM ACCESS ̲PROFILE

                     UPDATE INIT ̲AREA. MAX ̲CLASS

                     UPDATE INIT ̲AREA. SPECIAL ̲HANDLING ̲INSTRUCTION

         END CASE

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

         END MSO ̲CONNECTION

























                   Figure 4.2.1.4.2.3-1


         INIT TERMINAL

         HEADER ̲IFCB

         CASE FORMAT ̲INIT ̲TERMINAL (HEADER ̲IFCB)

                     FILESYSTEM NAME, CONT ̲ID, DATA ̲ID)

                     (CC): ERROR ̲OK

             ERROR? ANALYSE ERROR (CC,0)

             OK

         END CASE

         CASE FORMAT ̲INIT ̲TERMINAL (HEADER ̲IFCB
                 FILESYSTEM ̲NAME,CONT ̲ID, DATA ̲ID)
                 (CC): ERROR ̲OK

             ERROR?  ANALYSE ̲ERROR (CC,0)

             OK?

         END CASE

         END




















                   Figure 4.2.1.4.2.3-2


         REQUEST ̲PERIODIC ̲TIMEOUT

         MSOS ̲REQUEST ̲TIMEOUT.TIMEOUT ̲KIND = K ̲RELATIVE

         MSOS ̲REQUEST ̲TIMEOUT.TIME ̲OUT = MODULUS

         MSOS ̲REQUEST ̲TIMEOUT.FORMAT = INTERVAL

         MSOS ̲REQUEST ̲TIMEOUT.QUEUE.MAIN = MSOS ̲CMDQ

         MSOS ̲REQUEST ̲TIMEOUT.QUEUE.SUB = TIME ̲Q

         MSOS ̲REQUEST ̲TIMEOUT.EVENT ̲ID = MSO ̲PERIODIC

         CASE REQUEST ̲TIMEOUT (MSOS ̲REQUEST ̲TIMEOUT)(CC):
                               ERROR ̲OK

             ERROR?  ANALYSE ̲ERROR(CC;0)

             OK?

         END CASE

         END REQUEST ̲PERIODIC ̲TIMEOUT





















                   Figure 4.2.1.4.2.3-3


4.2.1.4.3    F̲l̲a̲s̲h̲ ̲Q̲u̲e̲u̲e̲ ̲M̲o̲n̲i̲t̲o̲r̲i̲n̲g̲



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

         This module analyses flash notification from the common
         command queue to determine precedence and queue (where
         flash item can be found).

         It performs the actions:

         -   Updates, inverts and displays queue length field

         -   Sounds bell

         -   Sets up conditions for distribution of flash notification



4.2.1.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)  FLASH ̲QUEUE ̲MONITORING

         b)  FLASH ̲QUEUE ̲MONITORING (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        Destroyed

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

         None

         R0-R7            Destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None





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

             FLASH ̲NOTIF ̲SUBTYPE       refer CPS/DBD/001
             QUEUE ̲ERROR ̲TYPE          refer 4.1.4
             QEL ̲REFERENCE             refer CPS/DBD/001
             SEND ̲PARAMS               refer CPS/DBD/001
             QEL ̲ATTRIBUTES            refer CPS/DBD/001
             MSO ̲QUEUE ̲TYPE            refer CPS/DBD/001

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

             MSOS ̲SEND ̲PARAMS (m)      refer 4.1.4
             Q ̲POINTER (m)             refer 4.2.4
             PREC ̲POINTER (m)          refer 4.2.1.5
             CCMD ̲QEL ̲ATTR             refer 4.2.1.5
             CCMD ̲QEL                  refer 4.2.1.5
             QERROR ̲INF (m)            refer 4.1.4
             BEGIN ̲FLAG                refer 4.2.1.5

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

             FLASH ̲ITEM ̲ARRIVED ̲FLAG:  BOOLEAN



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

         This module performs the following tasks:

         -   Analyses CCMD ̲QELs to determine precedence and
             the queue in which the item can be found

         -   Updates and displays VDU Header

         -   Inverts queue length fields and rings bell

         -   Dismantles Flash Notification QEL



         FLASH ̲QUEUE ̲MONITORING

         CASE CCMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF FLASH ̲NOTIF ̲SUBTYPE
             SUPERFLASH ̲
             ITEM ̲ARRIVED? SET PREC.POINTER = SUPERFLASH

                           SET MSOS ̲SPEND ̲PARAMS.MAINTYPE=FLASH
                           NOTIFICATION

                           SET MSOS ̲SEND ̲PARAMS SUBTYPE=SUPERFLASH

                           SET FLASH ̲ITEM ̲ARRIVED ̲FLAG = TRUE
             FLASH ̲        
             ITEM ̲ARRIVED?  SET PREC ̲POINTER = FLASH
                            SET MSOS ̲SEND ̲PARAMS.MAINTYPE=
                            FLASHNOTIFICATION

                            SET MSOS ̲SEND ̲PARAMS.SUBTYPE=FLASH

                            SET FLASH ̲ITEM ̲ARRIVED ̲FLAG=TRUE

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

         END CASE

         FLASH ̲ITEM ̲ARRIVED ̲FLAG EQ FALSE?

         CASE CCMD ̲QEL ̲ATTR.HEADER.FLAGS OF MSO ̲QUEUE ̲TYPE

             INC?           SET MSOS ̲SEND ̲PARAMS.HEADER.FLAGS
                            = INC

                            SET Q ̲POINTER = INCQ

             OUT?           SET MSOS ̲SEND ̲PARAMS.HEADER.FLAGS
                            = OUT

                            SET Q ̲POINTER = OUTQ

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

                            SET FLASH ̲ITEM ̲ARRIVED ̲FLAG = FALSE

         END CASE 

         FLASH ̲ITEM ̲ARRIVED ̲FLAG EQ TRUE? F̲L̲A̲S̲H̲ ̲A̲C̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲3̲.̲5̲-̲2̲)̲

         END FLASH ̲QUEUE ̲MONITORING

                    Figure 4.2.1.4.3-1


         FLASH ̲ACTION

         BEGIN ̲FLAG EQ FALSE ?

         F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲

         I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)̲

         D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲

         SET FLASH ̲ITEM ̲ARRIVED ̲FLAG = FALSE

         S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)̲

         S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲6̲)̲

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

         END FLASH ̲ACTION





























                    Figure 4.2.1.4.3-2


4.2.1.4.4    T̲i̲m̲e̲r̲ ̲E̲v̲e̲n̲t̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲



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

         This module analyses the timeout QEL to determine whether
         it is a periodic one in which case update and display
         of VDU header is performed, or others in which case
         an erroneous timeout has been received and the error
         is reported.



4.2.1.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)  TIMER ̲EVENT ̲PROCESSING

         b)  TIMER ̲EVENT ̲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       Destroyed

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

         None

         R0 - R7        Destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None



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

         None





4.2.1.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̲
             QUEUE ̲ERROR ̲TYPE     refer 4.1.4
             QEL ̲REFERENCE        refer CPS/DBD/001
             QEL ̲ATTRIBUTES       refer CPS/DBD/001
             TIMEOUT ̲SUBTYPE      refer CPS/DBD/001

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

             CMD ̲QEL              refer 4.2.1.5
             CMD ̲QEL ̲ATTR         refer 4.2.1.5
             QERROR ̲INF (m)       refer 4.1.4

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

             None



TIMER ̲EVENT ̲PROCESSING

CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF TIMEOUT ̲SUBTYPE

         TIMEOUT ̲EVENT? CASE CMD ̲QEL ̲ATTR.FLAGS OF

                           MSO ̲PERIODIC? G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲9̲)̲

                                         Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲
                                         (̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲

                                         D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲
                                         (̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲

                                         D̲I̲S̲M̲(̲C̲M̲D̲ ̲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̲)̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

                        END CASE

         TIMEOUT ̲CANCELLED? D̲I̲S̲M̲(̲C̲M̲D̲ ̲Q̲E̲L̲)̲(̲4̲.̲1̲.̲5̲.̲3̲)̲


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

END CASE

S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲5̲)̲

END TIMER ̲EVENT ̲PROCESSING



















                     Figure 4.2.1.4-1


4.2.1.4.5    S̲E̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲



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

         This module receives completion codes from SEVCO and
         sends corresponding completion to TEMCO. Further it
         distributes flash and antiflash notifications on command
         from SEFCO, updates and displays queue status line.



4.2.1.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)  SEFCO ̲RESPONSE ̲PROCESSING

         b)  SEFCO ̲RESPONSE ̲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      Destroyed

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

         None

         R0 - R7        Destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None



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



4.2.1.4.5.3.1 R̲E̲M̲O̲V̲E̲ ̲V̲D̲U̲

         Closes the message stream between VDU and process.





4.2.1.4.5.3.2 C̲a̲n̲c̲e̲l̲ ̲C̲a̲l̲l̲

         Cancel outstanding system call when SEFCO completion
         are STOP ̲SEFCO ̲CC, BLOCK ̲SEFCO ̲CC, or CLOSE ̲DOWN ̲SEFCO.CC.



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

             TEP ̲INTERNAL ̲SUBTYPE            refer CPS/DBD/001
             QELEMENT ̲MAIN ̲TYPE              refer CPS/DBD/001
             INT ̲ERROR ̲TYPE                  refer 4.1.4           MSOS
                                                                   ̲CO
                                                                   ̲OP refer
                                                                      4.1.4
             SEND ̲PARAMS                     refer CPS/DBD/001
             QEL ̲REFERENCE                   refer CPS/DBD/001
             SEVCO ̲CMD ̲TYPE                  refer 4.1.4
             SEFCO ̲CC ̲TYPE                   refer 4.1.4
             FLASH ̲NOTIF ̲SUBTYPE             refer CPS/DBD/001

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

             CCMO ̲QEL                        refer 4.2.1.5
             CMD ̲QEL                         refer 4.2.1.5
             PREC ̲POINTER (m)                refer 4.2.1.5
             Q ̲POINTER (m)                   refer 4.1.4
             CURRENT ̲MODE                    refer 4.1.4
             MSOS ̲SEND ̲PARAM (m)             refer 4.1.4
             VDU ̲SPLIT ̲FLAG (m)              refer 4.1.4
             HEADER ̲IFCB                     refer 4.1.4
             FORMAT ̲IFCB                     refer 4.1.4
             INT ̲ERROR ̲INF (m)               refer 4.2.4
             CLOSE ̲DOWN ̲CC ̲FLAG (m)          refer 4.2.1.5
             SEVCO ̲OP (m)                    refer 4.1.4

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

             VAR OK ̲FLAG                     BOOLEAN



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

         Commands and completion codes received from SEFCO are
         analysed, and a command acknowledge is sent to SSC
         to the appropriate commands.

         On request from SEFCO flash or antiflash notification
         is sent to other MSOs command queue and a queue field
         update and display is initiated.



SEFCO ̲RESPONSE ̲PROCESSING

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

 INIT ̲SEFCO ̲CC          SET OK ̲FLAG = FALSE

 RESTART ̲SEFCO ̲CC       SET OK ̲FLAG = FALSE

 START ̲SEFCO ̲CC         SET OK ̲FLAG = TRUE

 BLOCK ̲SEFCO ̲CC

 STOP ̲SEFCO ̲CC          SET OK ̲FLAG = TRUE

                        R̲E̲M̲O̲V̲E̲ ̲V̲D̲U̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲.̲1̲)̲

                        C̲A̲N̲C̲E̲L̲ ̲C̲A̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲3̲.̲2̲)̲

 CLOSE ̲DOWN ̲SEFCO ̲CC    SET ̲OK ̲FLAG = TRUE

                        SET CLOSE ̲DOWN ̲CC ̲FLAG = TRUE

                        R̲E̲M̲O̲V̲E̲ ̲V̲D̲U̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲-̲5̲)̲

                        C̲A̲N̲C̲E̲L̲ ̲C̲A̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲3̲.̲2̲)̲

 MSO ̲MODE ̲CHANGE?       Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲)̲

                        D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲

 SEND NOTIFICATION?     D̲I̲S̲T̲R̲I̲B̲U̲T̲E̲ ̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲-̲2̲)

 SEND ANTINOTIFICATION? D̲I̲S̲T̲R̲I̲B̲U̲T̲E̲ ̲A̲N̲T̲I̲N̲O̲T̲I̲F̲I̲C̲A̲T̲I̲O̲N̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲.̲5̲-̲3̲)̲

 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̲E̲T̲ ̲P̲A̲R̲A̲M̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲5̲-̲2̲)

END SEFCO ̲RESPONSE ̲PROCESSING





                Figure 4.2.1.4.5-1


SET ̲PARAM

OK FLAG = EQ FALSE

SET MSOS ̲SEND ̲PARAMS.HEADER.MAINTYPE = ACK

SET MSOS ̲SEND ̲PARAMS.HEADER.SUBTYPE = TEP ̲ACK

VDU ̲SPLIT ̲FLAG = EQ TRUE? SET MSOS ̲SEND ̲PARAMS.HEADER.FLAG
 = 2

SET MSOS ̲SEND ̲PARAMS.FLAG = 0

CASE SEND ̲REPLY (MSOS ̲SEND ̲PARAMS, CMD ̲QEL)
              (MSOS ̲SEND ̲PARAMS, CC): ERROR ̲OK

 ERROR? ANALYSE ̲ERROR (CC,0)

 OK?    SET OK ̲FLAG = FALSE



END CASE

SET VDU ̲SPLIT ̲FLAG = FALSE

END SET ̲PARAM




























                Figure 4.2.1.4.5-2


         DISTRIBUTE ̲NOTIFIC


         SET PREC ̲POINTER = SEVCO ̲OP.PARA

         CURRENT ̲MODE EQ INCO ̲MODE? Q ̲POINTER = INCQ

         CURRENT ̲MODE EQ OUTG ̲MODE? Q ̲POINTER = OUTQ

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


         MSOS ̲SEND ̲PARAMS HEADER-MAINTYPE = FLASH ̲NOTIFICATION

         CASE PREC ̲POINTER OF PRECEDENCE ̲TYPE

             SUPERFLASH? MSOS ̲SEND ̲PARAMS.HEADER.SUBTYPE=
                                       SUPERFLASH ̲ITEM ̲ARRIVED
             FLASH? MSOS ̲SEND ̲PARAMS-HEADER ̲SUBTYPE =
                                       FLASH ̲ITEM ̲ARRIVED

             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̲(̲G̲I̲V̲E̲ ̲U̲P̲)̲(̲4̲.̲1̲.̲5̲.̲2̲)̲

         END CASE

         Q ̲POINTER EQ INCQ? MSOS ̲SEND ̲PARAMS.HEADER.FLAG
                                           =INCOMING ̲MSO

         MSOS ̲SEND ̲PARAMS.HEADER.FLAG =OUTGOING ̲MSO

         S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)

         F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲

         D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲

         I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)

END DISTRIBUTE ̲NOTIFICE








                    Figure 4.2.1.4.5-3


         DISTRIBUTE ANTINOTIFIC

         SET PREC ̲POINTER = SEVCO ̲OP.PARA

         CURRENT ̲MODE EQ.INCO ̲MODE? Q ̲POINTER = INC Q

         CURRENT ̲MODE EQ OUTG ̲MODE? Q ̲POINTER =OUTQ

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

         MSOS ̲SEND ̲PARAMS.HEADER.MAINTYPE =TEP ̲INTERNAL

         MSOS ̲SEND ̲PARAMS.HEADER-SUBTYPE = ANTIFLASH ̲NOTIFICATION

         CASE PREC ̲POINTER OF PRECEDENCE ̲TYPE

             SUPERFLASH? MSOS ̲SEND ̲PARAMS.HEADER.FLAG=SUPERFLASH
             ̲
                                                     ITEM ̲ARRIVED

             FLASH? MSOS ̲SEND ̲PARAMS.HEADER-FLAG =FLASH ̲ITEM
             ̲
                                                     ARRIVED

             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

         Q ̲POINTER EQ INCQ? MSOS ̲SEND ̲PARAMS.HEADER.FLAG =
                                               INCOMING ̲MSO

         MSOS ̲SEND ̲PARAMS.HEADER.FLAG ̲OUTGOING ̲MSO

         S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲7̲)

         F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲

         R̲E̲M̲O̲V̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲8̲)

         D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)

         END DISTRIBUTE ̲ANTINOTICATION







                    Figure 4.2.1.4.5-4


         REMOVE ̲VDU

         CASE REMOVE ̲TERMINAL(HEADER ̲IFCB)(CC): ERROR ̲OK

             ERROR? ANALYSE ̲ERROR(CC,0)

             OK?  CASE REMOVE ̲TERMINAL(FORMAT ̲IFCB)(CC): ERROR
             ̲OK

                     ERROR? ANALYSE ̲ERROR(CC,0)

                     OK?

                  END CASE

         END CASE
































                   Figure 4.2.1.4.5.5-5


4.2.1.4.6    I̲N̲T̲E̲R̲N̲A̲L̲ ̲F̲L̲A̲S̲H̲



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

         This module analyses flash notification from the command
         queue and sets up the condition to call upon procedures
         in order to update queue status line, display the updated
         VDU header and ring the bell.



4.2.1.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)  INTERNAL ̲FLASH

         b)  INTERNAL ̲FLASH(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     Destroyed

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

         None

         R0-R7        Destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None



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

         None





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

             MSO ̲QUEUE ̲TYPE        refer CPS/DBD/0001
             PRECEDENCE ̲TYPE       refer CPS/DBD/001
             QUEUE ̲ERROR ̲TYPE      refer 4.1.4                     QEL
                                                                   ̲REFERENCE refer
                                                                             CPS/DBD/001
             QEL ̲ATTRIBUTES        refer CPS/DBD/001
             Q ̲POINTER ̲TYPE        refer 4.1.4

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

             CMD ̲QEL               refer 4.2.1.5
             CMD ̲QEL ̲ATTR          refer 4.2.1.5
             Q ̲POINTER (m)         refer 4.1.4
             PREC ̲POINTER (m)      refer 4.2.1.5
             QERROR ̲INF (m)        refer 4.1.4

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

             VAR FAIL ̲FLAG:        BOOLEAN



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

         The precedence of the flash notification is identified.
         Calls upon common procedures, in order to update queue
         status line, display the updated queue status line,
         and to ring the bell are issued.





         INTERNAL ̲FLASH

         SET FAIL ̲FLAG = FALSE

         CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF FLASH ̲NOTIF ̲SUBTYPE


         SUPERFLASH ITEM ̲ARRIVED?  MOVE SUPERFLASH TO PREC ̲
                                                    POINTER

                         CASE CMD ̲QEL ̲ATTR.HEADER.FLAG OF

                             INC? MOVE INCQ TO Q ̲POINTER

                             OUT? MOVE OUTQ TO Q ̲POINTER

                             OTHERWISE? SET FAIL ̲FLAG = TRUE

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

                         END CASE

         FLASH ITEM ̲ARRIVED? MOVE FLASH TO PREC ̲POINTER

                         CASE    CMD ̲QEL ̲ATTR.HEADER.FLAG OF
                         MSO ̲
                                                    QUEUE ̲TYPE

                                INC? MOVE INCQ TO Q ̲POINTER

                                OUT? MOVE OUTQ TO Q ̲POINTER

                                OTHERWISE? SET FAIL ̲FLAG = TRUE
                                           T̲E̲P̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲)̲
                                                   (̲4̲.̲1̲.̲5̲.̲1̲)̲

                         END CASE

             OTHERWISE? SET FAIL ̲FLAG = TRUE

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

         END CASE

         CONT (4.2.1.4.6-2)
Fig. 4.2.1.4.6-1…86…1         …02…   …02…   …02…   …02…   …02…   …02…     …02…                          
   
         CONT

         FAIL ̲FLAG =EQ TRUE?

         F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲

         I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲0̲)̲

         DISPLAY ̲VDU ̲HEADER (4.2.1.6.4)

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

         S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲6̲.̲5̲)̲

         SET FAIL ̲FLAG = FALSE

         END INTERNAL ̲FLASH






























                    Figure 4.2.1.4.6-2



4.2.1.4.7    I̲n̲t̲e̲r̲n̲a̲l̲ ̲A̲n̲t̲i̲f̲l̲a̲s̲h̲



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

         This module analyses antiflash notification received
         in the command queue, and sets up the conditions to
         call upon common procedures in order to update queue
         status line, display the updated VDU header and possibly
         remove previously inverted queue line fields.



4.2.1.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)  INTERNAL ̲ANTIFLASH

         b)  INTERNAL ̲ANTIFLASH (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     Destroyed

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

         None

         R0 - R7      Destroyed

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None



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

         None





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

             TEP ̲INTERNAL ̲SUBTYPE  refer CPS/DBD/001
             MSO ̲QUEUE ̲TYPE        refer CPS/DBD/001
             FLASH ̲NOTIF ̲SUBTYPE   refer CPS/DBD/001
             QUEUE ̲ERROR ̲TYPE      refer 4.1.4
             QEL ̲REFERENCE         refer CPS/DBD/001
             QEL ̲ATTRIBUTES        refer CPS/DBD/001
             Q ̲POINTER ̲TYPE        refer 4.1.4

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

             PREC ̲POINTER (m)      refer 4.2.1.5
             CMD ̲QEL               refer 4.2.1.5
             CMD ̲QEL ̲ATTR          refer 4.2.1.5
             QERROR ̲INF(m)         refer 4.1.4
             Q ̲POINTER (m)         refer 4.1.4

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

             VAR FAILURE ̲FLAG:     BOOLEAN



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

         The precedence of the antiflash notification is identified.
         The actual queue is identified. Call upon common procedures
         is issued in order to update queue status line, display
         the updated queue status line and to remove the inversion
         of the queue field in case the last item is removed.



         INTERNAL ̲ANTIFLASH

         SET FAILURE ̲FLAG = FALSE

   CASE CMD ̲QEL ̲ATTR.HEADER.SUBTYPE OF TEP ̲INTERNAL
   ̲SUBTYPE

         ANTIFLASH? CASE CMD ̲QEL.HEADER.FLAG OF FLASH
         ̲NOTIF ̲SUBTYPE

                       SUPERFLASH ̲ITEM ̲
                              ARRIVED?                                 MOVE
                                                                       SUPERFLASH
                                                                       TO
                                                                       PREC
                                                                       ̲POINTER

                                   CASE CMD ̲QEL ̲ATTR.HEADER.FLAG
                                   OF

                                                                       
                                                                       
                                                                       
                                                                       INC?
                                                                       
                                                                       Q
                                                                       ̲POINTER
                                                                       =
                                                                       INCQ

                                                                       
                                                                       
                                                                       
                                                                       OUT?
                                                                       
                                                                       Q
                                                                       ̲POINTER
                                                                       =
                                                                       OUTQ

                                                                       OTHERWISE?
                                                                       SET
                                                                       FAILURE
                                                                       ̲FLAG
                                                                       =
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       TRUE

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

                     FLASH ̲ITEM ̲
                     ARRIVED?      MOVE FLASH TO PREC
                                   ̲POINTER

                                   CASE CMD ̲QEL ̲ATTR.HEADER.FLAG
                                   OF
                                                  
                                     MSO ̲QUEUE ̲TYPE

                                   INC?  Q ̲POINTER
                     = INCQ

                                   OUT?  Q ̲POINTER
                     = OUTQ

                                   OTHERWISE? SET FAILURE
                     ̲FLAG = TRUE

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

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

                    SET FAILURE ̲FLAG = TRUE

   END CASE

   U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲4̲.̲7̲-̲2̲)̲

   END INTERNAL ̲ANTIFLASH

               Figure 4.2.1.4.7-1


             UPDATE

             FAILURE ̲FLAG EQ FALSE?

             F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲)̲

             R̲E̲M̲O̲V̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲8̲)̲

             D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲4̲)̲

             D̲I̲S̲M̲ ̲(̲4̲.̲1̲.̲5̲.̲3̲)̲

             S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲(̲4̲.̲1̲.̲6̲.̲5̲)̲

             SET FAILURE ̲FLAG = FALSE

             END UPDATE






























               Figure 4.2.1.4.7-2


4.2.1.5 C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲D̲a̲t̲a̲

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

         BUFFER ̲LIST ̲ELEMENT              refer CPS/DBD/001
         TIME ̲TYPE                        refer CPS/DBD/001
         CLASSIFICATION ̲TYPE              refer CPS/DBD/001
         QEL ̲REFERENCE                    refer CPS/DBD/001
         QEL ̲ATTRIBUTES                   refer CPS/DBD/002
         IDENT ̲TYPE                       refer 4.1.4
         CO ̲CMD ̲TYPE                      refer 4.1.4
         COROUTINE ̲SEMAPHORE              refer CPS/DBD/001
         FIELD ̲DESCRIPTOR ̲TYPE            refer CPS/DBD/001
         QUEUE ̲ATTRIBUTES                 refer CPS/DBD/001
         FIELDS ̲ATTR                      refer CPS/DBD/001
         MSOS ̲CO ̲OP ̲TYPE                  refer 4.1.4
         F ̲DTG ̲TYPE                       refer CPS/DBD/001
         QERROR ̲INF ̲TYPE                  refer 4.1.4
         INT ̲ERROR ̲TYPE                   refer 4.1.4
         SEND ̲PARAMS                      refer CPS/DBD/001
         QEUEUE ̲REFERENCE                 refer CPS/DBD/001
         IOC ̲HEADER ̲TYPE                  refer CPS/DBD/001
         TWO ̲CHAR                         refer CPS/DBD/001

     b) S̲E̲V̲C̲O̲ ̲C̲O̲M̲M̲O̲N̲ ̲T̲Y̲P̲E̲S̲

         None

     c) S̲E̲V̲C̲O̲ ̲L̲O̲C̲A̲L̲ ̲D̲A̲T̲A̲

         VAR  CMD ̲QEL,CCMD ̲QEL:                QEL ̲REFERENCE

         VAR  CMD ̲QEL ̲ATTR,CCMD ̲QEL ̲ATTR:  QEL ̲ATTRIBUTES


         VAR FIELD ̲DESCRIP:               FIELD ̲DESCRIPTOR
             ̲TYPE



         VAR Q ̲ATTR: QUEUE ̲ATTRIBUTES ̲

         VAR NEW ̲ATTR:                        FIELDS ̲ATTR
                                              ̲TYPE

         VAR PREC ̲POINTER:                    PRECEDENCE
                                              ̲TYPE

         VAR BEGIN ̲FLAG                       BOOLEAN

         VAR START ̲FLAG:                      BOOLEAN

         VAR CLOSE ̲DOWN ̲CC ̲FLAG:              BOOLEAN

         INIT     CLOSE ̲DOWN ̲CC ̲FLAG =        FALSE

         VAR VDU ̲HEADER ̲FIELD = ARRAY (1..MAX ̲HEADER ̲FIELDS)
             OF FIELD ̲DESCRIPTOR ̲TYPE

             VDU ̲HEADER ̲BLE =                 BUFFER ̲LIST
                                              ̲ELEMENT

         CONST    MAX ̲HEADER ̲FIELDS =         12
             HEADER ̲SPLIT =                    1
             QUEUE ̲LINE ̲NO =                   2
             CLASS ̲LINE ̲NO =                   1
             TIME ̲LINE ̲NO=                     1
             HEADER ̲INCARNATION ̲NO =           1
             CLASS ̲FIELD ̲NO =                  2
             TIME ̲FIELD ̲NO =                   3
             SUPER ̲FLASH ̲FIELD ̲NO =            1
             FLASH ̲FIELD ̲NO =                  2
             IMMEDIATE ̲FIELD ̲NO =              3
             SUPER ̲PRIORITY ̲FIELD ̲NO =         4
             PRIORITY ̲FIELD ̲NO =               5
             ROUTINE ̲FIELD ̲NO =                6
             INCQ ̲FIELD ̲NO =                   7
             OUTQ ̲FIELD ̲NO =                   8
             RESPQ ̲FIELD ̲NO =                  9
             USERQ ̲FIELD ̲NO =                 10



      INIT   VDU ̲HEADER ̲FIELD:

             VDU ̲HEADER ̲BLE.KIND = LOWER ̲BYTE
             VDU ̲HEADER ̲BLE.LINK = NIL

      INIT   VDU ̲HEADER ̲FIELD(1). LINE        =CLASS ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(1). INCARNARION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(1). FIELD        = CLASS ̲FIELD
                                              ̲NO

             VDU ̲HEADER ̲FIELD(2). LINE        = TIME ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(2). INCARNATION =HEADER ̲INCARNATION
             VDU ̲HEADER ̲FIELD(2). FIELD       = TIME ̲FIELD
                                              ̲NO

             VDU ̲HEADER ̲FIELD(3). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(3). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(3). FIELD       = SUPER ̲FLASH
                                              ̲FIELD ̲NO

             VDU ̲HEADER ̲FIELD(4). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(4). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(4). FIELD       = SUPER ̲FLASH
                                              ̲FIELD NO

             VDU ̲HEADER ̲FIELD(5). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(5). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(5). FIELD       = IMMEDIATE
                                              ̲FIELD ̲NO

             VDU ̲HEADER ̲FIELD(6). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(6). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(6). FIELD       = SUPER ̲PRIORITY
                                              ̲FIELD ̲
                                                        
                                                     NO

             VDU ̲HEADER ̲FIELD(7). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(7). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(7). FIELD       = PRIORITY
                                              ̲FIELD ̲NO

             VDU ̲HEADER FIELD(8). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(8). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(8). FIELD       = ROUTINE ̲FIELD
                                              ̲NO

             VDU ̲HEADER ̲FIELD(9). LINE        = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(9). INCARNATION =HEADER ̲INCARNATION
                                              ̲NO
             VDU ̲HEADER ̲FIELD(9). FIELD       = INCQ ̲FIELD
                                              ̲NO

             VDU ̲HEADER ̲FIELD(10). LINE       = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(10). INCARNATION=HEADER ̲INCARNATION
             ̲NO
             VDU ̲HEADER ̲FIELD(10). FIELD      = OUTQ ̲FIELD
                                              ̲NO

             VDU ̲HEADER ̲FIELD(11). LINE       = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(11). INCARNATION=HEADER ̲INCARNATION
             ̲NO
             VDU ̲HEADER ̲FIELD(11). FIELD      = RESPQ ̲FIELD
                                              ̲NO

             VDU ̲HEADER ̲FIELD(12). LINE       = QUEUE ̲LINE
                                              ̲NO
             VDU ̲HEADER ̲FIELD(12). INCARNATION= HEADER ̲INCARNATION
             ̲NO
             VDU ̲HEADER ̲FIELD(12). FIELD      = USERQ ̲FIELD
                                              ̲NO




4.2.1.6  C̲o̲m̲m̲o̲n̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲



4.2.1.6.1    S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲



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

         This procedure signals the operation semaphore MSOS
         ̲S1.



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

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

         a)  SIGNAL ̲SEFCO

         b)  SIGNAL ̲SEFCO (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       DESTROYED

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

         None

         R0 - R7            DESTROYED

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None





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

             IDENT ̲TYPE               refer 4.1.4
             MSOS ̲CO ̲OP ̲TYPE          refer 4.1.4

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

             MSOS ̲S2                  refer 4.1.4
             SEVCO ̲OP (m)             refer 4.1.4

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

             None



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

         Refer figure 4.2.1.6.1-1


         S̲I̲G̲N̲A̲L̲ ̲S̲E̲F̲C̲O̲



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

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

         END







































                Fig. 4.2.1.6.1-1


4.2.1.6.2    F̲L̲A̲S̲H̲ ̲Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲



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

             This procedure reaches the queue length
             of INCQ, OUTQ, RESPQ and USERQ, and depending
             on the operating mode the content of the
             precedence fields are set.



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

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

             a)  FLASH ̲QUEUE ̲FIELDS ̲UPDATE

             b)  FLASH ̲QUEUE ̲FIELDS ̲UPDATE (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             DESTROYED

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

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



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

                 INTERNAL ̲ERROR ̲TYPE  refer 4.1.4                   CURRENT
                                                                    ̲MODE
                                                                    ̲TYPE refer
                                                                         4.1.4
                 Q ̲POINTER ̲TYPE                                  refer
                                                                 4.1.4
                 QUEUE ̲REFAERENCE     refer CPS/DBD/001





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

                 Q ̲REFERENCE (m)      refer 4.1.4
                 INT ̲ERROR ̲INF (m)    refer 4.1.4
                 CURRENT ̲MODE                                    refer
                                                                 4.1.4
                 PREC ̲POINTER                                    refer
                                                                 4.2.1.5
                 Q ̲POINTER            refer 4.1.4
                 VDU ̲HEADER ̲AREA (m)  refer 4.1.4
                 Q ̲ATTR (m)           refer 4.2.1.5

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



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

             The appropriate main queue length is measured.
              Depending on queue concerned and the
             current mode of operation, the content
             of the precedence fields in the queue
             status line is measured.


FLASH ̲QUEUE ̲FIELDS ̲UPDATE


  CASE Q ̲POINTER OF Q ̲POINTER ̲TYPE

     INCQ ? MOVE Q ̲POINTER TO Q ̲REFERENCE. MAINQ


                   MOVE NULL TO Q ̲REFERENCE.SUBQ

                   G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

                   MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU
         ̲HEADER.AREA.IN

                   PREC ̲POINTER EQ FLASH ? - SET VDU
         ̲HEADER ̲AREA.PREC2 = 0


                   SET VDU ̲HEADER ̲AREA.PREC1 = 0


                   CASE CURRENT ̲MODE OF CURRENT ̲MODE
         ̲TYPE


                   INCO ̲MODE ? G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲


            OUTG ̲MODE ?



                   INTERACTIVE ̲MODE,


                   RESP ̲MODE?       G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲
         ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲

                                  MOVE OUTQ TO Q ̲REFERENCE.MAINQ

                                  G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲


              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


     OUTQ ? R̲E̲P̲E̲A̲T̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲2̲-̲2̲)̲

            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 FLASH ̲QUEUE ̲FIELDS ̲UPDATE

                Fig. 4.2.1.6.2-1


         REPEAT


         MOVE Q ̲POINTER TO Q ̲REFERENCE.MAINQ


         MOVE NULL TO Q ̲REFERENCE.SUBQ


         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲


         MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.OUT


         PREC ̲POINTER EQ FLASH ? - SET VDU ̲HEADER ̲AREA.PREC2
         = 0


         SET VDU ̲HEADER ̲AREA.PREC1 = 0

         CASE CURRENT ̲MODE OF CURRENT ̲MODE ̲TYPE



            INCO ̲MODE ?

            OUTG ̲MODE ? G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲


            INTERACTIVE ̲MODE,


            RESP ̲MODE ?        G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲

                          MOVE INCQ TO Q ̲REFERENCE.MAINQ


                          G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲3̲)̲

            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.1.6.2-2


4.2.1.6.3    Q̲U̲E̲U̲E̲ ̲F̲I̲E̲L̲D̲S̲ ̲U̲P̲D̲A̲T̲E̲



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

             This procedure reads the queue length
             of INCOMING QUEUE, OUTGOING QUEUE, USER
             QUEUE, RESPONSE QUEUE, and sets precedence
             and main queue fields in accordance with
             current mode.



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

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

             a)  QUEUE ̲FIELDS ̲UPDATE
             b)  QUEUE ̲FIELDS ̲UPDATE (R6)

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

             R6      LINK             DESTROYED


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

             None

             R0 - R7                                                   DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



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

                 INTERNAL ̲ERROR ̲TYPE  refer 4.1.4                         CURRENT
                                                                          ̲MODE
                                                                          ̲TYPE refer
                                                                               4.1.4
                 Q ̲POINTER ̲TYPE                                        refer
                                                                       4.1.4
                 QUEUE ̲REFERENCE      refer CPS/DBD/001



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

                 INT ̲ERROR ̲INF (m)    refer 4.1.4
                 Q ̲REFERENCE (m)      refer 4.1.4
                 CURRENT ̲MODE                                          refer
                                                                       4.1.4
                 VDU ̲HEADER ̲AREA (m)  refer 4.1.4
                 Q ̲ATTR (m)           refer 4.2.1.5

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

                 None



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

             Depending on the current user mode, the
             mainqueue length and the precedence fields
             are measured.  If the user is operating
             in response mode, the content of the precedence
             levels from the INCQ nad OUTQ are added.
              The measured sizes are stored in VDU
             ̲HEADER ̲AREA, ready for the display procedure
             to take over.


         QUEUE ̲FIELDS ̲UPDATE

         CASE CURRENT ̲MODE OF CURRENT ̲MODE ̲TYPE

           INCO ̲MODE ? MOVE INCQ TO Q ̲REFERENCE.MAINQ

                  MOVE NULL TO Q ̲REFERENCE.SUBQ
                  G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
                  MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
                 ̲AREA.IN
                  SET VDU ̲HEADER AREA.PREC1 = 0
                  SET VDU ̲HEADER ̲AREA.PREC2 = 0
                  SET VDU ̲HEADER ̲AREA.PREC3 = 0
                  SET VDU ̲HEADER ̲AREA.PREC4 = 0
                  SET VDU ̲HEADER ̲AREA.PREC5 = 0
                  SET VDU ̲HEADER ̲AREA.PREC6 = 0
                  G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲)̲
                  MOVE OUTQ TO Q ̲REFERENCE.MAINQ
                  MOVE NULL TO Q ̲REFERENCE.SUBQ
                  G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲
                  MOVE Q.ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
                 ̲AREA.OUT
                  G̲E̲T̲ ̲U̲S̲E̲R̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲4̲)̲
                  MOVE RESPQ TO Q ̲REFERENCE.MAINQ
                  MOVE NULL TO Q ̲REFERENCE.SUBQ
                  G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

           OUTG ̲MODE?       O̲U̲T̲Q̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲-̲2̲)̲

           RESP ̲MODE?

           INTERACTIVE ̲MODE ?   R̲E̲S̲P̲Q̲ ̲U̲P̲D̲A̲T̲E̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲3̲-̲3̲)̲

           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.1.6.3-1


         OUTQ ̲UPDATE


         MOVE OUTQ TO Q ̲REFERENCE.MAINQ

         MOVE NULL TO Q ̲REFERENCE.SUBQ

         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

         MOVE Q ̲ATTR.QUQUE ̲LENGTH TO VDU ̲HEADER ̲AREA.OUT

         SET VDU ̲HEADER ̲AREA.PREC1 = 0

         SET VDU ̲HEADER ̲AREA.PREC2 = 0

         SET VDU ̲HEADER ̲AREA.PREC3 = 0

         SET VDU ̲HEADER ̲AREA.PREC4 = 0

         SET VDU ̲HEADER ̲AREA.PREC4 = 0

         SET VDU ̲HEADER ̲AREA.PREC5 = 0

         G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲)̲

         MOVE INCQ TO Q ̲REFERENCE.MAIN

         MOVE NULL TO Q ̲REFERENCE.SUBQ

         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

         MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.IN

         G̲E̲T̲ ̲U̲S̲E̲R̲ ̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲4̲)̲

         MOVE RESPQ TO Q ̲REFERENCE.MAINQ

         MOVE 2 TO Q ̲REFERENCE.SUBQ

         GET QUEUE LENGTH (4.2.1.6.11)

         MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.RESP

         END OUTQ ̲UPDATE




                Fig. 4.2.1.6.3-2


         RESPQ ̲UPDATE

         MOVE INCQ TO Q ̲REFERENCE.MAINQ

         MOVE NULL TO Q.REFERENCE.SUBQ

         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

         MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.IN

         SET VDU ̲HEADER ̲AREA.PREC1 = 0

         SET VDU ̲HEADER ̲AREA.PREC2 = 0

         SET VDU ̲HEADER ̲AREA.PREC3 = 0

         SET VDU ̲HEADER ̲AREA.PREC4 = 0

         SET VDU ̲HEADER ̲AREA.PREC5 = 0

         SET VDU ̲HEADER ̲AREA.PREC6 = 0

         G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲ ̲)̲

         MOVE OUTQ TO Q ̲REFERENCE.MAINQ

         G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲2̲)̲

         MOVE NULL TO Q ̲REFERENCE.SUBQ

         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

         MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.OUT

         G̲E̲T̲ ̲U̲S̲E̲R̲Q̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲4̲)̲

         MOVE RESPQ TO Q ̲REFERENCE.MAINQ

         MOVE 2 TO Q ̲REFERENCE.SUBQ

         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

         MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER ̲AREA.RESP

         END RESPQ ̲UPDATE



                Fig. 4.2.1.6.3-3


4.2.1.6.4    D̲I̲S̲P̲L̲A̲Y̲ ̲V̲D̲U̲ ̲H̲E̲A̲D̲E̲R̲



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

             This procedure displays the VUD header split by
             calling the Format Handler of IOC with the VDU
             header data array as input.



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

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

         a)  DISPLAY ̲VDU ̲HEADER
         b)  DISPLAY ̲VDU ̲HEADER (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                 DESTROYED

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

         None

         R0 - R7                      DESTROYED

         F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

         None



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

             FLAG ̲BYTE ̲TYPE           refer CPS/DBD/001

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

             HEADER ̲IFCB              refer 4.1.4
             VDU ̲SPLIT ̲FLAG (m)       refer 4.1.4
             CURRENT ̲CLASS            refer 4.1.4
             VDU ̲HEADER ̲AREA (m)      refer 4.1.4
             VDU ̲HEADER ̲FIELD         refer 4.2.1.5



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

         VDU ARRAY : ARRAY (1....VDU ̲ARRAY ̲SIZE) OF CHAR

         CONST   VDU ̲ARRAY ̲SIZE = 88 CHAR

                 TIM=       IOC ̲HEAD + 1
                 PRECED 1=  CLASS I + IOC ̲HEAD+CLASS ̲LENGTH
                 PRECED 2=  PRECED 1 + IOC ̲HEAD+PRECQ ̲LENGTH
                 PRECED 3=  PRECED 2 + IOC ̲HEAD+PRECQ ̲LENGTH
                 PRECED 4=  PRECED 3 + IOC ̲HEAD+PRECQ ̲LENGTH
                 PRECED 5=  PRECED 4 + IOC ̲HEAD+PRECQ ̲LENGTH
                 PRECED 6=  PRECED 5 + IOC ̲HEAD+PRECQ ̲LENGTH
                 IQ      =  PRECED 6 + IOC ̲HEAD+PRECQ ̲LENGTH
                 OQ      =  IQ + IOC ̲HEAD + PRECQ ̲LENGTH
                 RESP.Q  =  OQ + IOCH̲HEAD + PRECQ ̲LENGTH
                 USERQ   =  RESPONSEQ + IOC ̲HEAD+PRECQ ̲LENGTH
                 IOC ̲HEAD=  3



             TIM ̲LENGTH   = 14
             CLASS ̲LENGTH = 18
             PRECQ ̲LENGTH =  2

         INIT    VDU ̲ARRAY(TIM-3)     ="RS"
                 VDU ̲ARRAY(TIM-2)     = TIM ̲LENGTH + 3
                 VDU ̲ARRAY(TIM-1)     = DATA ̲FLAG

                 VDU ̲ARRAY(CLASS I-3) ="RS"
                 VDU ̲ARRAY(CLASS I-2) = CLASS ̲LENGTH+3
                 VDU ̲ARRAY(CLASS I-1) = DATA ̲FLAG

                 VDU ̲ARRAY(PRECED1-3) ="RS"
                 VDU ̲ARRAY(PRECED1-2) = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(PRECED1-1) = DATA ̲FLAG

                 VDU ̲ARRAY(PRECED2-3) ="RS"
                 VDU ̲ARRAY(PRECED2-2) = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(PRECED2-1) = DATA ̲FLAG

                 VDU ̲ARRAY(PRECED3-3) = "RS"
                 VDU ̲ARRAY(PRECED3-2) = PRECQ ̲LENGTH+3


                 VDU ̲ARRAY(PRECED3-1) = DATA ̲FLAG

                 VDU ̲ARRAY(PRECED4-3) ="RS"
                 VDU ̲ARRAY(PRECED4-2) = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(PRECED4-1) = DATA ̲FLAG

         INIT    VDU ̲ARRAY(PRECED5-3) ="RS"
                 VDU ̲ARRAY(PRECED5-2) = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(PRECED5-1) = DATA ̲FLAG

                 VDU ̲ARRAY(PRECED6-3) ="RS"
                 VDU ̲ARRAY(PRECED6-2) = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(PRECED6-1) = DATA ̲FLAG

                 VDU ̲ARRAY(IQ-3)      ="RS"
                 VDU ̲ARRAY(IQ-2)      = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(IQ-1)      = DATA ̲FLAG

                 VDU ̲ARRAY(OQ-3)      ="RS"
                 VDU ̲ARRAY(OQ-2)      = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(OQ-1)      = DATA ̲FLAG

                 VDU ̲ARRAY(RESPQ-3)   ="RS"
                 VDU ̲ARRAY(RESPQ-2)   = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(RESPQ-1)   = DATA ̲FLAG

                 VDU ̲ARRAY(USERQ-3)   ="RS"
                 VDU ̲ARRAY(USERQ-2)   = PRECQ ̲LENGTH+3
                 VDU ̲ARRAY(USERQ-1)   = DATA ̲FLAG



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

         Current classification is inserted in VDU ̲HEADER ̲AREA.
          "Illegal" precedences are suppressed and a call to
         Format Handler is issued.


         DISPLAY ̲VDU ̲HEADER

         MOVE CURRENT ̲CLASS TO VDU ̲HEADER ̲AREA.CLASS

         MOVE NULL TO VDU ̲HEADER ̲AREA.PREC1

         MOVE NULL TO VDU ̲HEADER ̲AREA.PREC4

         MOVE VDU ̲HEADER ̲AREA.TIME TO VDU ̲ARRAY (TIM)

         MOVE VDU ̲HEADER ̲AREA.CLASS TO VDU ̲ARRAY(CLASSI)

         MOVE VDU ̲HEADER ̲AREA.PREC1 TO VDU ̲ARRAY(PRECED1)

         MOVE VDU ̲HEADER ̲AREA.PREC2 TO VDU ̲ARRAY(PRECED2)

         MOVE VDU ̲HEADER ̲AREA.PREC3 TO VDU ̲ARRAY(PRECED3)

         MOVE VDU ̲HEADER ̲AREA.PREC4 TO VDU ̲ARRAY (PRECED4)

         MOVE VDU ̲HEADER ̲AREA.PREC5 TO VDU ̲ARRAY(PRECED5)

         MOVE VDU ̲HEADER ̲AREA.PREC6 ATO VDU ̲ARRAY(PRECED6)

         MOVE VDU ̲HEADER ̲AREA.IN TO VDU ̲ARRAY (IQ)

         MOVE VDU ̲HEADER ̲AREA.OUT TO VDU ̲ARRAY (OQ)

         MOVE VDU ̲HEADER ̲AREA.RESP TO VDU ̲ARRAY (RESPONSEQ)

         MOVE VDU ̲HEADER ̲AREA. USER TO VDU ̲ARRAY (USERQ)


         CASE FIELDS ̲OUTPUT(HEADER ̲IFCB,VDU ̲HEADER
         ̲FIELD,
                       VDU ̲ARRAY,MAX ̲HEADER ̲FIELDS,
                       VDU ̲ARRAY ̲SIZE)(CC):ERROR ̲OK

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

                   L1? SET VDU ̲SPLIT ̲FLAG = TRUE

               END CASE

             OK?

         END CASE

         END DISPLAY ̲VDU ̲HEADER
                Fig. 4.2.1.6.4-1


4.2.1.6.5    S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲



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

             This procedure issues an init receive
             call to the command queue and associates
             semaphore and queue.



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

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

             a)  SET ̲RECEIVE ̲CMD ̲QEL

             b)  SET ̲RECEIVE ̲CMD ̲QEL (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             DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



4.2.1.6.5.3 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      refer CPS/DBD/001
                 QEL ̲ATTRIBUTES                                  refer
                                                                 CPS/DBD/001
                 MSOS ̲CO ̲OP ̲TYPE      refer 4.1.4
                 COROUTINE ̲SEMAPHORE  refer 4.1.4

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

                 MSOS ̲CMDQ            refer 4.1.4
                 CMD ̲OP                                          refer
                                                                 4.1.4
                 CMD ̲QEL ̲ATTR                                    refer
                                                                 4.2.1.5
                 MSOS ̲S1                                         refer
                                                                 4.1.4
                 Q ̲REFERENCE(m)                                  refer
                                                                 4.1.4





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

                 None



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

             Refer fig. 4.2.1.6.5-1


         SET ̲RECEIVE ̲CMD ̲QEL

         Q ̲REFERENCE. MAINQ = MSOS ̲CMDQ

         Q ̲REFERENCE. SUBQ = 1

         CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,Q ̲REFERENCE,CMD
         ̲QEL ̲ATTR,CMD ̲OP)
                                                                 (CC):
                                                                 
                                                                 ERROR
                                                                 ̲OK



            ERROR ? ANALYSE ̲ERROR (CC.0)


            OK ?


         END CASE


         ASSOCIATE (MSOS ̲S1, CMD ̲OP)  OK


         END SET ̲RECEIVE ̲CMD ̲QEL


























                Fig. 4.2.1.6.5-1


4.2.1.6.6    S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲C̲M̲D̲ ̲Q̲E̲L̲



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

             This procedure issues an init receive
             call to the command queue and associates
             semaphore and queue.



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

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

             a)  SET ̲RECEIVE ̲CCMD ̲QEL

             b)  SET ̲RECEIVE ̲CCMD ̲QEL (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             DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



4.2.1.6.6.3 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            refer CPS/DBD/001
                 MSOS ̲CO ̲OP ̲TYPE            refer 4.1.4
                 COROUTINE ̲SEMAPHORE        refer 4.1.4
                 QEL ̲ATTRIBUTES                                  
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 refer
                                                                 CPS/DBD/001



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

                 Q ̲REFERENCE                                     
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 refer
                                                                 4.1.4
                 MSOS ̲S1                                         
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 refer
                                                                 4.1.4
                 CCMD ̲OP                                         
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 refer
                                                                 4.1.4
                 CCMD ̲QEL ̲ATTR.                                  
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 refer
                                                                 4.2.1.5
                 MSOS ̲CCMDQ                 refer 4.1.4

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

                 None



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

             Refer Fig. 4.2.1.6.6-1


         SET ̲RECEIVE ̲CCMD ̲QEL

         Q ̲REFERENCE.MAINQ = MSOS ̲CCMDQ

         Q ̲REFERENCE SUBQ  = 1

         CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT,Q ̲REFERENCE,CCMD
         ̲QEL ̲ATTR,
                                      CCMD ̲OP)(CC):
                                       ERROR ̲OK


            ERROR ? ANALYSE ̲ERROR (CC, 0)


            OK ?


         END CASE

         ASSOCIATE (MSOS ̲S1, CCMD ̲OP):  OK



         END SET ̲RECEIVE ̲CCMD ̲QEL




























                Fig. 4.2.1.6.6-1


4.2.1.6.7    S̲E̲N̲D̲ ̲N̲O̲T̲I̲F̲I̲C̲



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

             This procedure sends queue elements to
             other MSOs command queues.



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

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

             a)  SEND ̲NOTIFIC
             b)  SEND ̲NOTIFIC (R6)

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

             R6  LINK                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



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

                 INTERNAL ̲ERROR ̲TYPE    refer 4.1.4                 SEND
                                                                    ̲PARAMS  
                                                                            
                                                                            refer
                                                                            CPS/DBD/001
                 QUEUE ̲REFERENCE        refer CPS/DBD/001
                 MSOS ̲MSOS ̲CMD ̲Q ̲GROUP                           
                                                                 
                                                                 refer
                                                                 CPS/DBD/001
                 MSOS ̲SUBPROCESS ̲GROUP ̲CAP  refer CPS/DBD/001





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

                 MSOS ̲SEND ̲PARAMS:    refer 4.1.4
                 INT ̲ERROR ̲INF (m)    refer 4.1.4

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

                 VAR MSO ̲NO           INTEGER
                 VAR QNAMES:          QUEUE ̲REFERENCE
                 CONST Q1 = MSOS ̲MSOS ̲G ̲CMDQ SHIFTLL8+MSOS
                 ̲MSOS ̲G ̲
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 CMDQ1
                 CONST Q2 = MSOS ̲MSOS ̲G ̲CMDQ SHIFTLL8+MSOS
                 ̲MSOS ̲G ̲
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 CMDQ2
                 CONST Q3 = MSOS ̲MSOS ̲G ̲CMDQ SHIFTLL8+MSOS
                 ̲MSOS ̲G ̲
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 
                                                                 CMDQ3



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

             A loop is entered and the receiving queue's
             names are used one by one in the SEND
             call.





         SEND ̲NOTIFIC


         SEND MSO ̲NO = 1

         QNAMES SUBQ = 1

         LOOP


            CASE MSO ̲NO OF


               1? QNAMES.MAINQ = Q1

               2? QNAMES.MAINQ = Q2

               3? QNAMES.MAINQ = Q3

               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

            CASE SEND (MSOS ̲SEND ̲PARAMS, NIL, QNAMES)
                 (MSOS ̲SEND ̲PARAMS, CC):  ERROR ̲OK
               ERROR ? CASE ANALYSE ̲ERROR (CC, 1, BLOCKED
         ̲QUEUE): (L1)

                     L1 ?


                  END CASE


               OK ?


            END CASE

            INCREMENT MSO ̲NO

            MSO ̲NO GE 4?    EXIT LOOP


         END LOOP


         END SEND ̲NOTIFIC


                Fig. 4.2.1.6.7-1


4.2.1.6.8    R̲E̲M̲O̲V̲E̲



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

             This procedure measures the length of
             item queued in INCQ or OUTQ with precedence
             flash or above and if the number in zero,
             the main queue field is re-inverted.



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

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

             a)  REMOVE
             b)  REMOVE (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                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



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

                 FIELD ̲DESCRIPTOR ̲TYPE                           refer
                                                                 4.1.4

                 FIELD ̲ATTRIBUTES ̲TYPE                           refer
                                                                 CPS/DBD/001

                 INTERNAL ̲ERROR ̲TYPE  refer 4.1.4

                 Q ̲POINTER ̲TYPE                                  refer
                                                                 4.1.4





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

                 VDU ̲SPLIT ̲FLAG (m)   refer 4.1.4
                 VDU ̲HEADER ̲AREA      refer 4.1.4
                 Q ̲POINTER            refer 4.1.4
                 HEADER ̲IFCB                                     refer
                                                                 4.1.4
                 FIELD ̲DESCR (m)      refer 4.2.1.5
                 NEW ̲ATTR (m)                                    refer
                                                                 4.2.1.5
                 INT ̲ERROR ̲INF (m)    refer 4.1.4

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

                 VAR INVERT ̲FLAG      BOOLEAN
                 CONST OUTQ ̲FIELD ̲NO = 8
                 CONST QUEUE ̲LINE ̲NO = 2
                 CONST INCQ ̲FIELD ̲NO = 7



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

             For the actual queue, the sum of items
             with precedence flash or above is measured
             and new field attributes are set up. 
             A call to Format Handler is issued.


         REMOVE

         CASE Q ̲POINTER OF Q ̲POINTER ̲TYPE

            INCQ ? VDU ̲HEADER ̲AREA.PREC1 +

              VDU ̲HEADER ̲AREA.PREC2 GT 0?  SET INVERT
             ̲FLAG = FALSE
             MOVE "INCQ ̲FIELD ̲NO" TO FIELD ̲DESCRIP.FIELD
             ̲NO
             MOVE "QUEUE ̲LINE ̲NO" TO FIELD ̲DESCRIP.LINE
             ̲NO
             MOVE NULL TO FIELD ̲DESCRIP.INCARNATION
             ̲NO
             MOVE NULL NEW ̲ATTR
             SET INVERT ̲FLAG = TRUE

            OUTQ? VDU ̲HEADER ̲AREA.PREC2 +

              VDU ̲HEADER ̲AREA.PREC1 GT 0? SET INVERT
             ̲FLAG = FALSE
             MOVE "OUTQ ̲FIELD ̲NO" TO FIELD ̲DESCRIP.FIELD
             ̲NO
             MOVE "QUEUE ̲LINE ̲NO" TO FIELD ̲DESCRIP.LINE
             ̲NO
             MOVE NULL TO FIELD ̲DESCRIP.INCARNATION
             ̲NO
             MOVE NULL TO NEW ̲ATTR
             SET INVERT ̲FLAG = 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

            INVERT ̲FLAG EQ FALSE ?

            CASE CHANGE ̲FIELD ̲ATTR(HEADER ̲IFCB,FIELD
         ̲DESCRIP,

                                 NEW ̲ATTR)(CC):  ERROR
                            ̲OK

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

                     L1?  SET VDU ̲SPLIT ̲FLAG = TRUE

                  END CASE

               OK ?

         END CASE

         END REMOVE



                Fig. 4.2.1.6.8-1


4.2.1.6.9    G̲E̲T̲ ̲D̲A̲T̲E̲ ̲T̲I̲M̲E̲



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

             This procedure reads current date and
             time by calling Timer Monitor.



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

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

             a)  GET ̲DATE ̲TIME(TIME)
             b)  GET ̲DATE ̲TIME (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                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



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

                 TIME ̲TYPE            ref. CPS/DBD/001

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

                 VDU ̲HEADER ̲AREA (m)  ref. 4.1.4
                 F ̲DTG ̲TIME           ref. CPS/DBD/001

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

                 None


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

             Refer fig. 4.2.1.6.9-1


         GET ̲DATE ̲TIME


         CASE READ ̲TIME (F ̲DTG ̲TYPE)(VDU ̲HEADER ̲AREA.TIME,CC)(ERROR
         ̲OK)


             ERROR ? ANALYSE ̲ERROR (CC, 0)


             OK ?


         END CASE



         END GET ̲DATE ̲TIME































                Fig. 4.2.1.6.9-1


4.2.1.6.10   I̲N̲V̲E̲R̲T̲ ̲A̲N̲D̲ ̲B̲E̲L̲L̲



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

             This procedure changes attributes of fields
             to be inverted (corresponding to queue
             where flash items have arrived).  Also
             the bell on the VDU is sounded.



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

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

             a)  INVERT ̲AND ̲BELL
             b)  INVERT ̲AND ̲BELL (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                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None





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

                 INTERNAL ̲ERROR ̲TYPE  refer 4.1.4
                 FIELD ̲DESCRIPTOR ̲TYPE                           refer
                                                                 CPS/DBD/001
                 FIELD ̲ATTRIBUTES ̲TYPE                           refer
                                                                 CPS/DBD/001
                 Q ̲POINTER ̲TYPE                                  refer
                                                                 4.1.4

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

                 HEADER ̲IFCB                                     refer
                                                                 4.1.4
                 Q ̲POINTER            refer 4.1.4
                 INT ̲ERROR ̲INF (m)    refer 4.1.4
                 FIELD ̲DESCRIP (m)    refer 4.2.1.5
                 VDU ̲SPLIT ̲FLAG (m)   refer 4.1.4
                 HEADER ̲INCARNATION ̲NO                           refer
                                                                 4.2.1.5
                 QUEUE ̲LINE ̲NO                                   refer
                                                                 4.2.1.5
                 INCQ ̲FIELD ̲NO                                   refer
                                                                 4.2.1.5
                 OUTQ ̲FIELD ̲NO                                   refer
                                                                 4.2.1.5


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

                 None



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

             The concerned queue is determined and
             two calls are issued to Format Handler;
             CHANGE ̲FIELD ̲ATTRIBUTES and SEND ̲CONTROL.


         INVERT AND BELL


         CASE Q ̲POINTER OF Q ̲POINTER ̲TYPE

            INCQ?  MOVE INCQ ̲FIELD ̲NO TO FIELD ̲DESCRIP.FIELD
         ̲NO

            OUTQ ? MOVE OUTQ ̲FIELD ̲NO TO FIELD ̲DESCRIP.FIELD
         ̲NO

            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

         MOVE QUEUE ̲LINE ̲NO TO FIELD ̲DESCRIP.LINE ̲NO

         MOVE HEADER ̲INCARNATION ̲NO TO FIELD ̲DESCRIP.INCARNATION
         ̲NO

         CASE CHANGE ̲FIELD ̲ATTR(HEADER ̲IFCB, FIELD
         ̲DESCRIP,
                              REVERSE ̲VIDEO)(CC): 
                            ERROR ̲OK

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

                  L1 ? SET VDU ̲SPLIT ̲FLAG = TRUE

               END CASE

            OK ?

         END CASE

         VDU ̲SPLIT ̲FLAG EQ TRUE?

         CASE SEND ̲CONTROL (HEADER ̲IFCB, BELL):  ERROR
         ̲OK

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

                  L2 ? S̲E̲T̲ ̲V̲D̲U̲ ̲S̲P̲L̲I̲T̲ ̲F̲L̲A̲G̲ ̲=̲ ̲T̲R̲U̲E̲

               END CASE

            OK ?

         END CASE

         END INVERT AND BELL


                Fig. 4.2.1.6.10-1


4.2.1.6.11   G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲



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

             This procedure measures the length of
             queued item in a specific queue.



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

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

             a)  GET ̲QUEUE ̲LENGTH
             b)  GET ̲QUEUE ̲LENGTH (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                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             T̲o̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲

             None



4.2.1.6.11.3 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 ̲SUBPROCESS ̲SINGLE ̲CAP  refer
                 CPS/DBD/001
                 QUEUE ̲ATTRIBUTES        refer CPS/DBD/001
                 Q ̲POINTER ̲TYPE                                  
                                                                 
                                                                 
                                                                 refer
                                                                 4.1.4



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

                 Q ̲ATTR (m)           refer 4.2.1.5
                 Q ̲REFERENCE                                     refer
                                                                 4.1.4
                 MSOS ̲IMQ             refer 4.1.4
                 MSOS ̲OMQ             refer 4.1.4
                 MSOS ̲ARRQ            refer 4.1.4

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

                 CONST VUS ̲ARRQ = MSOS ̲VUS ̲ARRQ
                       VUS ̲RECVQ= MSOS ̲VUS ̲RECQ
                       VUS ̲RELSQ= MSOS ̲VUS ̲RELQ



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

             In order to get queue length, a call is
             issued and a max. limit is set if the
             queue length exceeds 99.


   GET ̲QUEUE ̲LENGTH


   CASE  Q ̲REFERENCE.MAIN OF Q ̲POINTER ̲TYPE

         INCQ?       Q ̲REFERENCE.MAINQ                           =MSOS
                                                                 ̲IMQ

         OUTQ?       O ̲REFERENCE.MAINQ                           =MSOS
                                                                 ̲OMQ

         RESPQ?  Q ̲REFERENCE.MAINQ    =MSOS ̲ARRSQ

         USER ̲RESP ̲Q?       Q ̲REFERENCE.MAINQ                    =VUS
                                                                 ̲ARRQ

         USER ̲RELS ̲Q?       Q ̲REFERENCE.MAINQ                    =VUS
                                                                 ̲RELSQ

         USER ̲RELS ̲Q?       Q ̲REFERENCE.MAINQ                    =VUS
                                                                 ̲RECVQ

         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

   CASE  GET ̲QUEUE ̲ATTRIBUTES (Q ̲ATTR,Q ̲REFERENCE)
                                      (CC):ERROR ̲OK


         ERROR? ANALYSE ̲ERROR(CC,0)

         OK?   Q ̲ATTR ̲QUEUE ̲LENGTH  LE 100?

               SET Q ̲ATTR.QUEUE ̲LENGTH =99

   END CASE

   END GET ̲QUEUE ̲LENGTH













                Fig. 4.2.1.6.11-1


4.2.1.6.12   G̲E̲T̲ ̲T̲O̲T̲A̲L̲ ̲P̲R̲E̲C̲



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

             This procedure measures the number of
             items on each precedence level and stores
             the result in VDU ̲HEADER ̲AREA.



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

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

             a)  GET ̲TOTAL ̲PREC
             b)  GET ̲TOTAL ̲PREC (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                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



4.2.1.6.12.3 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      refer CPS/DBD/001
                 INTERNAL ̲ERROR ̲TYPE  refer 4.1.4
                 PRECEDENCE ̲TYPE      refer CPS/DBD/001

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

                 Q ̲REFERENCE (m)      refer 4.1.4
                 VDU ̲HEADER ̲AREA (m)  refer 4.1.4
                 INT ̲ERROR ̲INF (m)    refer 4.1.4



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

                 VAR Q ̲VAR  INTEGER



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

             A loop is entered and each precedence
             is measured one by one.  The result is
             stored in VDU ̲HEADER ̲AREA.


            GET ̲TOTAL ̲PREC


            SET Q ̲VAR = 1


         LOOP

            CASE Q ̲VAR OF

               1? MOVE SUPERFLASH TO Q ̲REFERENCE.SUBQ
               2? MOVE FLASH TO Q ̲REFERENCE.SUBQ
               3? MOVE IMMEDIATE TO Q ̲REFERENCE.SUBQ
               4? MOVE SUPER PRIORITY TO Q ̲REFERENCE.SUBQ
               5? MOVE PRIORITY TO Q ̲REFERENCE.SUBQ
               6? MOVE ROUTINE TO Q ̲REFERENCE.SUBQ
               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

            G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

            CASE Q ̲VAR OF

               1? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.PREC1
               2? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.PREC2
               3? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.PREC3
               4? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.PREC4
               5? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.PREC5
               6? ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.PREC6
               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 CASE

            INCREMENT Q ̲VAR

            Q ̲VAR GE 7?     EXIT LOOP

         END LOOP






                Fig. 4.2.1.6.12-1


         4.2.1.6.13 G̲E̲T̲ ̲P̲R̲E̲C̲ ̲L̲E̲N̲G̲T̲H̲



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

             This procedure measures the number of
             items queued with precedence flash or
             above.



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

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

             a)  GET ̲PREC ̲LENGTH
             b)  GET ̲PREC ̲LENGTH (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                                            DESTROYED

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

             None

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



4.2.1.6.13.3 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      refer CPS/DBD/001
                 INTERNAL ̲ERROR ̲TYPE  refer CPS/DBD/001
                 PRECEDENCE ̲TYPE      refer CPS/DBD/001

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

                 PREC ̲POINTER                                    refer
                                                                 4.2.1.5
                 VDU ̲HEADER ̲AREA (m)  refer 4.1.4
                 Q ̲ATTR (m)           refer 4.2.1.5
                 Q ̲REFERENCE (m)      refer 4.1.4
                 INT ̲ERROR ̲INF (m)    refer 4.1.4



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

                 None



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

             The number of items queue with the specific
             precedence (Flash or Superflash) is measured
             and the result is stored in VDU ̲HEADER
             ̲AREA.



         GET PREC ̲LENGTH


         MOVE PREC ̲POINTER TO Q ̲REFERENCE.SUBQ

         G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

         CASE PREC ̲POINTER OF PRECEDENCE ̲TYPE

            SUPERFLASH? MOVE Q ̲ATTR.QUEUE ̲LENGTH TO
         VDU ̲HEADER ̲AREA PREC1

            FLASH ? MOVE Q ̲ATTR.QUEUE ̲LENGTH TO VDU
         ̲HEADER ̲AREA.PREC2

            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 GET PREC ̲LENGTH
























                Fig. 4.2.1.6.13-1


4.2.1.6.14   G̲E̲T̲ ̲U̲S̲E̲R̲Q̲ ̲L̲E̲N̲G̲T̲H̲



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

             This procedure measures the total queue
             length (RECV + RELS + RESP) in the associated
             User process.



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

             a)  GET ̲USERQ ̲LENGTH
             b)  GET ̲USERQ ̲LENGTH (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                                            DESTROYED

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

             R0 - R7                                             DESTROYED

             F̲a̲t̲a̲l̲ ̲E̲r̲r̲o̲r̲s̲

             None



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

                 INTERNAL ̲ERROR ̲TYPE     refer 4.1.4
                 QUEUE ̲REFERENCE         refer CPS/DBD/001
                 MSOS ̲SUBPROCESS ̲SINGLE ̲CAP  refer
                 CPS/DBD/001





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

                 VDU ̲HEADER ̲AREA (m)  refer 4.1.4
                 Q ̲REFERENCE (m)      refer 4.1.4
                 INT ̲ERROR ̲INF (m)    refer 4.1.4
                 Q ̲ATTR                                          refer
                                                                 4.2.1.5

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

                 VAR USER ̲Q ̲NO        INTEGER 
                 CONST USER ̲RESP ̲Q = MSOS ̲VUS ̲ARRQ
                 CONST USER ̲RELS ̲Q = MSOS ̲VUS ̲RELQ
                 CONST USER ̲RECV ̲Q = MSOS ̲VUS ̲RECQ



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

                 A loop is entered and each user queue
                 length is measured one by one and
                 the sum is stored in VDU ̲HEADER ̲AREA.



         GET ̲USERQ ̲LENGTH

         SET VDU ̲HEADER ̲AREA.USER = 0

         SET USER ̲Q ̲NO = 1

         LOOP

             CASE USER ̲Q ̲NO OF

                1?  MOVE USER ̲RESP ̲Q TO Q ̲REFERENCE.MAINQ
               MOVE 2 TO Q ̲REFERENCE.SUBQ

                2?  MOVE USER ̲RELS ̲Q TO Q ̲REFERENCE.MAINQ
               MOVE NULL TO Q ̲REFERENCE.SUBQ

                3?  MOVE USER ̲RECV ̲Q TO Q ̲REFERENCE.MAINQ
               MOVE NULL TO Q ̲REFERENCE.SUBQ

                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

             G̲E̲T̲ ̲Q̲U̲E̲U̲E̲ ̲L̲E̲N̲G̲T̲H̲ ̲(̲4̲.̲2̲.̲1̲.̲6̲.̲1̲1̲)̲

             ADD Q ̲ATTR.QUEUE ̲LENGTH TO VDU ̲HEADER
         ̲AREA.USER

             INCREMENT USER ̲Q ̲NO

             USER ̲Q ̲NO GE 4?   EXIT LOOP

         END LOOP

         END GET ̲USERQ ̲LENGTH













                Fig. 4.2.1.6.14-1


4.2.1.7  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲



4.2.1.7.1    S̲E̲V̲C̲O̲-̲S̲E̲F̲C̲O̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

             The following commands are sent from SEVCO
             to SEFCO via operation semaphore MSOS-S2.

             INIT ̲SEFCO ̲CMD
             RESTART ̲SEFCO ̲CMD
             START ̲SEFCO ̲CMD
             STOP ̲SEFCO ̲CMD
             BLOCK ̲SEFCO ̲CMD
             CLOSE ̲DOWN ̲SEFCO ̲CMD



4.2.1.7.2    The following completion codes are sent
             from SEFCO to SEVCO via operation semaphore
             MSOS ̲S1:
             
             INIT ̲SEFCO ̲CC
             RESTART ̲SEFCO ̲CC
             START ̲SEFCO ̲CC
             STOP ̲SEFCO ̲CC
             BLOCK ̲SEFCO ̲CC
             CLOSE ̲DOWN ̲SEFCO ̲CC

             The following notifications is sent from
             SEFCO TO ̲SEVCO

             MSO ̲MODE ̲CHANGE
             SEND ̲NOTIFICATION
             SEND ̲ANTINOTIFICATION