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

⟦6e17cfc1f⟧ Wang Wps File

    Length: 38544 (0x9690)
    Types: Wang Wps File
    Notes: Spelunked
    Names: »~ORPHAN58.00«

Derivation

└─⟦fa4d101ea⟧ Bits:30005807 8" Wang WCS floppy, CR 0112A
    └─ ⟦this⟧ »~ORPHAN58.00« 

WangText

…00……00……00……00……00…:…02……00……00…:
: :…07…9…08…9…09…9…0f…9…05…8…0c…8…0d…8…02…8
8 8…05…8…06…8…07…7…0c…7…0d…7…0e…7…0f…7…02…7
7…05…7…06…7…07…6…08…6…0e…6…0f…6
6 6…07…5…08…5…0f…5…00…5
5…07…4…0b…4…0f…4
4…06…3…09…3…0d…3…01……86…1                                             …02…           …02…   …02…        

…02…CPS/SDS/039

…02…820104…02……02…
USER VDU
DETAILED DESIGN SPECIFICATION…02……02…CAMPS










                      Fig. 4.1.1.4-2



4.1.2    S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         In this section the software structure of VUP will
         be described. The allocation of functions onto processes
         and coroutines will be explained, based o the analysis
         performed in section 4.1.1.

         Figure 4.1.2-1 shows the mapping of functions onto
         processes and coroutines



4.1.2.1. V̲U̲S̲ ̲P̲r̲o̲c̲e̲s̲s̲

         The VDU USER PROCESS controls the interaction with
         the user VDU, under supervision of TEMCO (SSC softwre).
         It thus has the following responsibilities:

         -   TEMCO command execution
         -   Control and execution of user transactions
         -   User transaction accounting
         -   Maintaining the VDU Header queue status
         -   Monitoring of FLASH queues.



 


                       Fig. 4.1.2-1










               Fig. 4.1.2.1-1 VUS Structure



4.1.2.1.1    V̲U̲S̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         The VDU USER PROCESS consists of four coroutines: 

         -   the VDU Control Coroutine
         -   the User Function Control Coroutine
         -   the VDU Dialogue Coroutine
         -   he Retrieve Coroutine.
         
         In figure 4.1.2.1-1 an overview of VUS is depicted.



4.1.2.1.1.1 V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The VDU Control (VCO) Coroutine is the controlling
         coroutine, controlling the start / stop of the processing
         of all the other corouines.

         VCO is responsible for the execution of commands received
         from TEMCO, e.g initialize, close down, restart, start/stop,
         for VDU Header queue status update and that no message
         is kept longer in a Flash precedence queue than allowed
         by the suprvisor.

         During the analysis it was found that TEMCO Control
         Functions and Queue Status Maintenance functions were
         to be executed with higher priority than User Transaction
         Control Functions. Thus these two functions have been
         allocated their own oroutine named V̲DU C̲O̲NTROL COROUTINE
         (VCO).

         The VCO coroutine shall be asssigned the highest priority
         among the coroutines of VUS, meaning that whenever
         VCO and other VUS coroutines are ready to run, VCO
         shall be allowed to run first.



4.1.2.1..2 U̲s̲e̲r̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The User Function Control (UFCO) Coroutine performs
         the direct control of the VDU Dialogue Coroutine.…86…1
                 …02…   …02…   …02…   …02…                                 
                  
         UFCO performs the user transaction control, which consists
         of: 

         -   user transaction execution 
         -   user requested transaction interruption 
         -   user transaction accounting.

         The fnctions of UFCO and VDIA have been assigned separate
         coroutines to decrease the complexity of the software.
         When a user transaction is in progress, UFCO software
         shall only take care of transaction interruption while
         all formatting and I/O transferinitiation / awaiting
         is performed by VDIA. UFCO is assigned a higher priority
         than VDIA.



4.1.2.1.1.3 V̲D̲U̲ ̲D̲i̲a̲l̲o̲g̲u̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         The VDU dialogue (VDIA) coroutine is responsible for
         the VDU format transfromation of input and output and
         for validaion of user input.



4.1.2.1.1.4 R̲e̲t̲r̲i̲e̲v̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The Retrieve (RETR) Coroutine is responsible for reception
         and treatment of retrieval answers from SAR. 

         The functions of RETR have been assigned to a separate
         coroutine, due to the fact thatthe function may be
         performed even when the other coroutines have been
         stopped after user sign-off. Furthermore, the function
         of the RETR may be considered as low priority tasks,
         having in mind that during on-line retrieval all the
         other coroutinesassociated with user transaction processing
         (UFCO, VDIA) will await input from RETR, thereby allowing
         RETR to be processing. RETR is assigned the lowest
         priority within VUS.





4.1.2.2  U̲M̲A̲M̲ ̲P̲r̲o̲c̲e̲s̲s̲

         The UMAM process controls the access to the preparation
         database and maintains the Outgoing Message Status,
         the Release Status, the Delivery Status and the Srvice
         Message Status for each VDU and printer.

         In figure 4.1.2.1-2 an overview of the UMAM process
         is shown.

         The functions of UMAM have been allocated their own
         process for the following reasons:

         a)  To keep security access control as simple ad tight
             as possible.

         b)  To minimize the damage caused by system malfunction.
             With reference to the analysis in 4.1.1.4.1 this
             means that the solution where the releaser process
             queues a request for removing or changing items
             is not chosen. Note tat due to security, it is
             our aim that a user process should not be trusted,
             meaning that access rights possessed by an unassigned
             user process (no user has signed on) shall be kept
             at a minimum.

         c)  The close relationship between Preparation Dataase
             Access Control and Message / Comment Status Maintenance
             has caused both functions to be allocated to the
             same process.

         d)  The allocation of one process to Status Maintenance
             gives the disigner the freedom to optimize disk-accesses
             and to utilze the fact that identical entries in
             different status types exist.

         e)  The centralization of status maintenance and PDB
             access control for all VDU processes in one process,
             increases the flexibility of the system.



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

         n the preceding subsections of section 4.1.2, the processes
         and coroutines of VUP have been isolated, and the functions
         to be performed by these software components identified.











F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲2̲.̲1̲-̲…86…1         …02…   …02…   …02…   …02…                                     
      
         The software structure for each component (i.e. coroutine)
         will be outlined in the following subsections. The
         description of the software structure will mainly be
         in the form of sftware structure charts and references
         should be made to the functional specification given
         in section 4.1.1. The denotation used in section 4.1.1
         has as far as possible been used in the software structure
         charts, with the purpose of highlighting te close relationship.
         Thus the identification of programme tasks is given
         in narrative English and not as programme or procedure
         names.



4.1.2.3.1    V̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The software structure of the VDU Control Coroutine
         (VCO) is outined in the structure charts in fig. 4.1.2.3-1
         through fig. 4.1.2.3-5 and is related to fig. 4.1-7
         and fig. 4.1-8 of the functional specifications.

         In fig. 4.1.2.3-1, the box PROCESS TEMCO COMMAND EXECUTION
         reflects that VCO controls the activitis of UFCO. Control
         logic will be described in section 4.1.3.







     Fig. 4.1.2.3-1 VCO Coroutine Software Structure






    Fig. 4.1.2.3-2 VCO Structure TEMCO CMD Processing






Fig. 4.1.2.3-3 UVCO Structure  ̲ Update of Queue Status Line 






  Fig. 4.1.2.3-4 VCO Structure - Flash Queue Monitoring






                      Fig. 4.1.2.3-5

 VCO Structure - Process CMD Completion Report from UFCO.



         In fig. 4.1.2.3-2 the Temco Command Processing is depicted.
         For those commands representing the key commands with
         respect to the execution of the VUP main functions,
         the software tructure is slightly more detailed than
         for the others, as this is the most important to grasp
         when getting to understand the general structure.



4.1.2.3.2    U̲F̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This coroutine controls input / output to and from
         theVDU and the communication with other packages.

         It accepts commands from VCO and control VDIA via commands
         and process completion reports from VDIA corresponding
         to the commands.

         It communicates with VCO by sending completion report
         correspondin to commands received by VCO.

         The control of the MMI is exercised via function key
         interrupts received from the VDU, via execution of
         commands entered from the VDU and via input / output
         commands sent to VDIA.

         Fig. 4.1.2.3-6 to fig. 4.1.2.3-8 sow the software structure.







              Fig. 4.1.2.3-6 UFCO Structure







Fig. 4.1.2.3-7 UFCO Structure - Process Invalid F/C Key Interrupt






 Fig. 4.1.2.3-8 UFCO Structure - Execute F/C Key Function



4.1.2.3.3    V̲D̲I̲A̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This coroutine performs input / output to and from
         the format area of the VDU and validation and storage
         of input.

         It accepts commads from UFCO and sends completion report
         corresponding to these commands.

         It communicates with the VDU via the Format Handler
         of the IOC Package and accesses data in the I̲nternal
         M̲essage F̲ormat (IMF) via the Message Monitor of the
         CSF Package.

         ig. 4.1.2.3-9 shows the software structure.








             F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲2̲.̲3̲-̲9̲ ̲V̲D̲I̲A̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲ ̲





4.1.2.3.4    R̲E̲T̲R̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This coroutine receives input from SAR via the Retrieve
         Queue and communicates with UFCO.

         This communication is done either by RETR ending Online
         Retrieval Results direct to UFCO or Off-line Retrieval
         Results indirectly via the Response Queue.

         Fig. 4.1.2.3-10 shows the software structure.






              fig. 4.1.2.3-10 RETR Structure



4.1.2.3.5    U̲M̲A̲M̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This processs receives input from other packages in
         the Collect and Command Queues.

         Figure 4.1.2.3-11 shows the software structure.…86…1  
               …02…   …02…   …02…   …02…                                   
                


         Fig. 4.1.2.3-11 UMAM Software Structure



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

         In this section, the data flow between the VUS processes
         and coroutines will be described together with the
         control logic used to synchronize thir execution of
         the VUP functions allocated to them.



4.1.3.1  P̲r̲o̲c̲e̲s̲s̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲

         The data flow and process synchronization of the UMAM
         process and the VUS incarnations will be described
         for the UMAM process and one VU process, as the flow
         and synchronization for all VUS incarnations are identical.
         

         In fig. 4.1.3.1-1 the data flow between UMAM and VUS
         is depicted. The flow is shown for the VUS process
         possessing full access rights to the CAMPS USER FUNCTIONS.
         owever, the dataflow for a VUS process possessing access
         right to a subset of the CAMPS USER FUNCTIONS only
         (i.e. one or more of the subfunctions PREPARATION,
         RECEPTION or RELEASE) is indicated as well by means
         of the capital letters enclosed in paentheses, which
         denote the subfunction to which the flow is associated.

         VUS acts as the master(controlling) process and UMAM
         is the slave process, i.e. UMAM does not execute any
         function before requested by VUS, and while UMAM executes
         the requesed function, VUS stops its own processing
         and awaits the result to be delivered by UMAM in its
         answer queue.





                      Figure 4.1.3-1



         The different incarnations of VUS do not communicate
         with each other in a way requiring synchronization
         of their operations. However, they do exchange information
         directly (i.e. mssages for release and release notifications).

         In the following subsections, the data flow and control
         logic internal to UMAM and VUS, i.e. between their
         coroutines, are described. 



4.1.3.2  V̲U̲S̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲
         The data flow internal to VUS is depicted in fig. 4.1.3.2-2.
         The command parameters listed with the arrows 3 and
         6 are identical, but those associated with arrow 3
         are unformatted while those associated with arrow 6
         are input via a format, refer sction 4.1.1.3.4.

         In fig. 4.1.3.2-2, an overview of the VUS coroutines
         and the primitives (S1, S2, S3) used for synchronization
         is depicted.





       Fig. 4.1.3-2 Dataflow between VUS Coroutines



         L̲e̲g̲e̲n̲d̲ ̲f̲o̲r̲ ̲f̲i̲g̲.̲ ̲4̲.̲1̲.̲3̲.̲2̲-̲1̲ ̲o̲n̲ ̲P̲r̲e̲v̲i̲o̲u̲s̲ ̲P̲a̲g̲e̲

         1.  Commands from SSC (e.g. start, stop) and time events.

         2.  Timer initiated update of VDU header (queues, time).

         3.  Control informtion from UVCO to UFCO.

         4.  Commands / parameters and function keys.

         5.  Transaction ID, classification, error messages.

         6.  Messages and system update requests.

         7.  Validated / unvalidated messages and system information.

         8.  Retrieved messags.

         9.  Off-line retrieval results are sent to the response
             queue.

         10. Retrieve finished signal to UFCO and on-line retrieval
             results.

         11. Answers to requests and retrieved messages.







  Fig. 4.1.3.2-2 VUS Coroutine Synchronization Overview



         VCO receives its input from S1. VCO is the coroutine
         which controls the activities of all the others through
         its control of UFCO. VCO starts and stops UFCO by executing
         a send opeation on S2 with the proper command. When
         UFCO has executed a command sent by VCO, UFCO notifies
         VCO by performing a send operation on S1 with the relevant
         Command Completion code.

         UFCO receives its input from S2. UFCO controls the
         activities of DIA through S3. The control logic is
         analogous to that described above for VCO control of
         UFCO.

         On the basis of the UFCO Software Structure (ref. section
         4.1.2.3.2) the control logic for UFCO can be constructed
         in the same way as done for VCO.

         DIA receives its input from S3. As the main work load
         due to I/O transfers and validation of messages / comments
         of the VUS process is actually performed by VDIA, a
         way to interrupt VDIA function execution within a reasonable
         time has to be consideed. This means that VDIA shall
         return to its waiting point frequently enough to fulfil
         the requirements for being controlable by UFCO.

         RETR receives input from the retrieve queue only, thus
         its control structure will be to await items to be
         insered and process the occurred events.



4.1.3.3  U̲M̲A̲M̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲

         UMAM receives input in the Command and Collect queues,
         thus the control structure will be to await item to
         be inserted and process the occured events.

         In figure 4.1.3.3-1 a overview of the UMAM process
         is depicted.

         As UMAM is a process without coroutines, then no internal
         synchronization is required.










F̲I̲G̲U̲R̲E̲ ̲4̲.̲1̲.̲3̲.̲3̲-̲1̲…86…1         …02…   …02…   …02…   …02…                         …02…            
     
4.1.4    C̲o̲m̲m̲o̲n̲ ̲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̲

             COROUTINE ̲SEMAPHORE ̲TYPE                            refer
                                                                 CPS/DBD/001

             COROUTINE ̲OPERATION ̲TYPE                            refer
                                                                 CPS/DBD/001

             IFCB ̲INDEX ̲TYPE                                     refer
                                                                 CPS/DBD/001

             FELD ̲DESCRIPTOR ̲TYPE                                refer
                                                                 CPS/DBD/001

             DESIGNATOR ̲TYPE                                     refer
                                                                 CPS/DBD/001

             TIME ̲TYPE                                           refer
                                                                 CPS/DBD/001

             QEL ̲REFERENCE ̲TYPE                                  refer
                                                                 CPS/DBD/001

             CLASSIFICATION ̲TYPE                                 refer
                                                                 CPS/DBD/001

             PRECEDENCE ̲TYPE                                     refer
                                                                 CPS/DBD/001

             USER ̲CAPABILITY ̲TYPE                                efer
                                                                 CPS/DBD/001

             QERROR ̲INF ̲TYPE                                     refer
                                                                 CPS/DBD/001

             TMP ̲PARAM ̲TYPE                                      refer
                                                                 CPS/DBD/001

         b)  V̲U̲S̲ ̲C̲O̲M̲M̲O̲N̲ ̲T̲Y̲P̲E̲S̲…86…1…02…        …02…   …02…   …02…   …02…   …02…   …02…      
             …02…     …02…                     
         TYPE    VUS ̲COROUTINE ̲OP =                              RECORD
                                                                   COROUTINE
                                                                   OP: COROUTINE
                                                                       ̲OP
                                                                       ̲TYPE
                                                                   IDENT:  IDENT
                                                                           ̲TYPE
                                                                   CMD:  CO
                                                                         ̲CMD's
                                                                         ̲TYPE
                                                                   PARA:  INTEGER

                                                                 
                                                                  END

         TYPE IDENT = (VCO ̲IENT, UFCO ̲IDENT, UFCO ̲VDIA ̲IDENT,VDIA
         ̲IDENT,
                 RETR ̲IDENT, CMDQ ̲IDENT,F/C ̲KEY ̲IDENT,
                 ANQ ̲IDENT, VDU ̲IDENT)
 
         TYPE CO-̲CMD =                                           CASE
                                                                 IDENT
                                                                 OF
                     VCO ̲IDENT: VCO ̲CMD ̲TYPE
                     UFCO ̲IDENT: UFCO ̲CC ̲TYPE
                     UFCO ̲VDIA ̲IDENT: UFCO ̲VDIA ̲CMD ̲TYPE
                     VDIAIDENT: VDIA ̲UFCO ̲CC ̲TYPE
                     RETR ̲IDENT: RETR ̲NOT ̲TYPE
                     VDU ̲IDENT: VDU ̲CMD ̲TYPE

                 END CASE

         TYPE VCO ̲CMD =                                          (INIT
                                                                 ̲UFCO
                                                                 ̲CMD,
                                                                 RESTART
                                                                 ̲UFCO
                                                                 ̲CMD,
                     START ̲UFCO ̲CMD, STOP ̲UFCO ̲CMD,
                     BLOCK ̲UFCO ̲CMD, CLOSE ̲DOWN ̲UFCO ̲CMD)


         TYPE UFCO ̲CC =                                          (INIT
                                                                 ̲FCO
                                                                 ̲CC,
                                                                 RESTART
                                                                 ̲UFCO
                                                                 ̲CC)
                     START ̲UFCO ̲CC, STOP ̲UFCO ̲CC,
                     BLOCK ̲UFCO ̲CC, CLOSE ̲DOWN ̲UFCO ̲CC,
                     USER ̲MODE ̲CHANGE, PRECEDENCE ̲CHANGE)



         TYPE UFCO ̲VDIA ̲CMD= (VDIA ̲CLOSE ̲DOWN, VDIA
                             ̲CANCEL,
                         VDIA ̲CLEAR ̲VDU, VDIA ̲SUSPEND,
                         VDIA ̲INPUT ̲FORMAT, VDIA ̲INPUT
                         ̲MSG,
                         VDIA ̲INPUT ̲REQ, VDIA ̲OUTPUT
                         ̲FORMAT,
                         VDIA ̲OUPUT ̲MSG, VDIA ̲APPEND,
                         VDIA ̲INSERT, VDIA ̲DELETE)

         TYPE VDIA ̲UFCO ̲CC = (SPLIT ̲FAILED ̲CC, VDIA
                             ̲CLOSE ̲DOWN ̲CC,
                         VDIA ̲CANCEL ̲CC, VDIA ̲CLEAR
                         ̲VDU ̲CC,
                         INSERT ̲NOT ̲ALLOWED ̲CC, LINES
                         ̲INSERTED ̲CC,
                         DELETE ̲NOT ̲ALLOWED ̲CC, LINES
                         ̲DELETED ̲CC,
                     OUTPUT ̲MSG ̲CC, OUTPUT ̲FORMAT ̲CC,
                         INPUT ̲REQ ̲CC, INPUT ̲MSG ̲CC,
                         EXCEEDED ̲CC, VAL ̲ERROR ̲CC,
                         VDIA ̲SUSPEND ̲CC, APPEND ̲VALID
                         ̲CC,
                         DEFER ̲VALID, RELEASE ̲VALID,
                         COORDINATION ̲VALID)

         TYPE RETR ̲NOT =     (ONLINE ̲NOTIFICATION,
                             OFFLINE ̲NOIFICATION,
                         RETRIEVAL ̲NOTIFICATION, APPEND
                         ̲NOTIFICATION)

         TYPE VDU ̲CMD =      (FORMAT ̲TO ̲VDU, FIELDS
                             ̲TO ̲VDU,
                         FIELDS ̲FROM ̲VDU, LINES ̲INSERTED,
                         LINES ̲DELETED)



                           TYPE SEQUENCE ̲CODE =                        (SEQ
                                                                       ̲ENTER,
                                                                       SEQ
                                                                       ̲FK1,
                                                                       SEQ
                                                                       ̲FK2,
                                                                       SEQ
                                                                       ̲FK3...SEQ
                                                                       ̲FK36,
                                                                       SEQ
                                                                       ̲START,
                                                                       SEQ
                                                                       ̲CLOSE
                                                                       ̲DOWN,
                                                                       SEQ
                                                                       ̲STOP
                                                                       ̲USER,
                                                                       SEQ
                                                                       ̲BLOCK
                                                                       ̲TERMINAL,
                                                                       SEQ
                                                                       ̲FAILURE,
                                                                       SEQ
                                                                       ̲CLOSE
                                                                       ̲DOWN
                                                                       ̲CC,
                           SEQ ̲CANCEL ̲CC, SEQ ̲CLEAR
                           ̲VDU ̲CC,
                                                                       SEQ
                                                                       ̲OUTPUT
                                                                       ̲MSG
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲OUTPUT
                                                                       ̲FORMAT
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲INPUT
                                                                       ̲REQ
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲INPUT
                                                                       ̲MSG
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲INPUT
                                                                       ̲FORMAT
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲EXCEEDED
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲VAL
                                                                       ̲ERROR
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲SUSPEND
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲APPEND
                                                                       ̲VALID
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲DEFER
                                                                       ̲VALID
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲RELEASE
                                                                       ̲ALID
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲COORDINATION
                                                                       ̲VALID
                                                                       ̲CC,
                                                                       SEQ
                                                                       ̲CONT,
                                                                       SEQ
                                                                       ̲DISP,
                                                                       CONT
                                                                       ̲DISP,
                                                                       SUS/DEF
                                                                       ̲DISP,
                                                                       UMAM
                                                                       ̲ERROR
                                                                       ̲RESP,
                                                                       CONT
                                                                       ̲COMMENT,
                                                                       SUS/DEF
                                                                       ̲COMMENT,
                                                                       DISP
                                                                       ̲COOR,
                                                                       ACK
                                                                       ̲THP,
                                                                       SEQ
                                                                       ̲DELI,
                                                                       SEQ
                                                                       ̲OUTG,
                                                                       SEQ
                                                                       ̲RELS,
                                                                       REL
                                                                       ̲OK,
                                                                       REL
                                                                       ̲NOT,
                                                                       SEQ
                                                                       ̲OFF
                                                                       ̲NOT)




         c)  V̲U̲S̲ ̲C̲O̲M̲M̲O̲N̲ ̲D̲A̲T̲A̲…86…1…02…   …02… …02…  …02…   …02…   …02…   …02…   …02…   …02…       …02…  
               …02…                     
         VAR     VCO ̲OP, UFCO ̲OP, VDIA ̲CC ̲OP, RETR ̲OP,
                 CMD ̲OP, ANQ ̲OP, F/C ̲KEY ̲OP, VDU ̲OP:            VUS
                                                                ̲COROUTINE
                                                                ̲OP
                                                                ̲TYPE

         INIT    UFCO ̲OP. IDENT                                 =
                                                                UFCO
                                                                ̲VDIA
                                                                ̲IDENT
         INIT    VDIA ̲CC ̲OP. IDENT                              =
                                                                VDIA
                                                                ̲IDET
         INIT    RETR ̲OP. IDENT                                  =
                                                                 RETR
                                                                 ̲IDENT
         INIT    CMD ̲OP. IDENT                                   =
                                                                 CMDQ
                                                                 ̲IDENT
         INIT    ANQ ̲OP. IDENT                                   =
                                                                 ANQ
                                                                 ̲IDENT
         INIT    F/C ̲KEY ̲OP. IDENT                              =
                                                                F/C
                                                                ̲KEY
                                                                ̲IDENT
         INIT    VDU ̲OP. IDENT                                   =
                                                                 VDU
                                                                 ̲IDENT

         VAR     VUS ̲S1, VUS ̲S2, VUS ̲S3: COROUTINE ̲SEMAPHORE
                 ̲TYPE

         VAR     FORMAT ̲FCB,
                 HEADER ̲IFCB:                                    IFCB
                                                                 ̲INDEX
                                                                 ̲TYPE

         VAR     FIRST ̲FIELD ̲RECORD: FIELD ̲DESCRIPTOR ̲TYPE
         VAR     CURSOR ̲RECORD ̲1,
                 CURSOR ̲TO ̲CMD ̲RECORD,
                 CURSOR ̲RECORD                                  =
                                                                RECORD
                                                                   
                                                                   
                                                                   SPLIT
                                                                   ̲DIGIT
                                                                   :
                                                                    INTEGER
                                                                   
                                                                   
                                                                   FIELD 
                                                                         
                                                                         : FIELD
                                                                           ̲DESCRIPTOR
                                                                           ̲TYPE
                                                                   
                                                                   
                                                                   INES
                                                                   ̲ABOVE
                                                                   : INTEGER

                                                                   END;

         VAR     TRANSACTION ̲ID                                 =
                                                                RECORD
                                                                   
                                                                   
                                                                   TERMINAL
                                                                   ̲DESIGNATOR:
                                                                   DESIGNATOR
                                                                   ̲TYPE
                                                                   
                                                                   
                                                                   SERIAL
                                                                   ̲NO  :
                                                                       
                                                                       
                                                                       
                                                                       INTEGER
                                                                   
                                                                   
                                                                   TIME  :
                                                                         
                                                                         
                                                                         
                                                                         TIME
                                                                         ̲TYPE

                                                                   END;


         …86…1…02…        …02…   …02…   …02…   …02…   …02…   …02…       …02…     …02…              
               
         VAR CIF ̲REF ̲QEL,
             APPEND ̲QEL:                                          QEL
                                                                  ̲REFERENCE
                                                                  ̲TYPE

         VAR CURRENT ̲CLASSIFIC:                                 CLASSIFICATION
                                                                ̲TYPE

         VAR CURRENT ̲PRECEDENCE:                                PRECEDENCE
                                                                ̲TYPE

         VAR CAB                                                 
                                                                 
                                                                 : USER
                                                                   ̲CAPABILITY
                                                                   ̲TYPE

         ONST    LOG ̲BUFFER ̲SIZE =

         CONST   STATUS ̲BUFFER ̲SIZE =

         VAR TMP ̲RECORD:                                          TMP
                                                                  ̲PARAM
                                                                  ̲TYPE

         VAR VUS ̲QERROR:                                          QERROR
                                                                  ̲INF
                                                                  ̲TYPE

         VAR VUS ̲INT ERROR                                      = RECORD

                                                                  USER
                                                                  ̲CC: INTEGER

                                                                  USER
                                                                  ̲INF: ARRAY(1..4)
                                                                       of
                                                                       INTEGER


                                                                 END;


         VAR ERROR ̲TEXT                                           : ARRAY(1..36)
                                                                    OF
                                                                    CHAR

         VAR VUS ̲SEND ̲PARAMS                                      : SEND
                                                                    PARAMS
                                                                    TYPE…86…1
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    …02…
                                                                    
                                                                    
                                                                    …02…
                                                                    
                                                                    
                                                                    …02…
                                                                    
                                                                    
                                                                    …02…
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
                                                                    
4.1.5    C̲o̲m̲m̲o̲n̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲



4.1.5.1  V̲U̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲



4.1.5.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 purpose of this procedure is to report queue errors
         to the SSC.



4.1.5.1.2    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)  VUS ̲QUEUE ̲ERROR(USER ̲ACTION: USER ̲ACTION ̲TYPE,
                             QEL:  QEL ̲REFERENCE,
                         VUS ̲QERROR: QERROR ̲INF)

         b)  VUS ̲QUEUE ̲ERROR(R1, R3, 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̲

         R1      USER ̲ACTION                      DEST
         R3      QEL                               DEST
         R4      pointer to VUS ̲QERROR             DEST
         R6      LINK                              DEST

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

         None

         R0-R7                                     DEST…86…1   
              …02…   …02…   …02…   …02…                                    
               
4.1.5.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̲

             USER ̲ACTION ̲TYPE           refer CPS/DBD/001
             GAQ ̲INFO ̲TYPE              refer CPS/DBD/001
             QEL ̲REFERENCE              refer CP/DBD/001

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

             VUS ̲QERROR                 refer 4.1.4

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

             None



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

         This procedure reports queue errors to the SSC by calling
         the SEND ̲GARBLE-procedure.



4.1.5.2  V̲U̲S̲ ̲I̲N̲T̲E̲R̲N̲A̲L̲ ̲E̲R̲R̲O̲R̲



4.1..2.1 F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         The purpose of this procedure is to report internal
         errors to the SSC.



4.1.5.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)  VUS ̲INTERNA ̲ERROR (USER ̲ACTION ̲ USER ̲ACTION ̲TYPE,
                                VUS ̲INT ̲ERROR:  INTERNAL ̲ERROR
                 ̲INF)

         b)  VUS ̲INTERNAL ̲ERROR (R1, R4, 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̲

         R1      USER ̲ACTION                  DEST
         R4      pointer to VUS ̲INT ̲ERROR     DEST
         R6      LINK                         DEST

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

         None
         R0-R7                               DEST



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

             USER ̲ACTION ̲TYPE                 refer CPS/DBD/001
             GAQ ̲INFO ̲TYPE                    refer CPS/DBD/001
             QEL ̲REFERENCE                    refer CPS/DBD/001
             INTERNAL ̲ERROR ̲INFTYPE          refer CPS/DBD/001

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

             VUS ̲INTE ̲ERROR                   refer 4.1.4

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

             TYPE VUS ̲INTERNAL ̲ERROR:  INTERNAL ̲ERROR ̲INF ̲TYPE



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

         This procedure reports internal errors to the SS by
         calling the SEND ̲GARBLE-procedure.



4.1.6    G̲l̲o̲b̲a̲l̲ ̲D̲a̲t̲a̲

         TBD



4.1.7    I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲




4.1.7.1  E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         User Procedures ref. doc. no. CPS/230/ICD/0001.

         All VUP subpackages interfaces, this document.



4.1.7.2  P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.7.2.1    T̲r̲a̲f̲f̲i̲c̲ ̲H̲a̲d̲l̲i̲n̲g̲ ̲(̲T̲H̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO.

         For details refer CPS/ICD/009.



4.1.7.2.2    D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲ ̲(̲M̲D̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO.

         For details refer CPS/ICD/009.



4.1.7.2.3S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲(̲S̲A̲R̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutines
         UFCO (requests queued to SAR) and RETR (reception of
         SAR responses).

         For details refer CPS/ICD/009.



4.1.7.2.4    L̲o̲g̲ ̲a̲n̲d̲ ̲A̲c̲c̲o̲u̲n̲t̲a̲b̲i̲l̲i̲t̲y̲ ̲(̲L̲O̲G̲)̲ ̲I̲/̲F̲

         This interfae is implemented by the VUS coroutine UFCO.
         

         For details refer CPS/ICD/009.




4.1.7.2.5    S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲ ̲(̲S̲T̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO. 

         For details refer CPS/ICD/009.



4.1.7.2.6    S̲S̲C̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲I̲/̲F̲

         This interface is implemnted by the VUS coroutines
         VCO (start / stop function ) and UFCO (security interrogation
         request).

         For details refer CPS/ICD/009.



4.1.7.2.7    T̲a̲b̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲(̲T̲M̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutines
         UFCO (Global n. series) and VDIA (table access).

         For details refer CPS/ICD/009.



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



4.1.7.3.1    P̲r̲o̲c̲e̲s̲s̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         These are the interfaces between UMAM and VUS:


         F̲r̲o̲m̲ ̲V̲U̲S̲ ̲t̲o̲ ̲U̲M̲A̲M̲:

         1.  Status Requests
         2.  Edit Requests
         3.  Deete Requests
         4.  Access State Changes
         5.  VDU-PAGE Retrieval
         6.  Status Records.
         7.  Storage of VDU-PAGES



         F̲r̲o̲m̲ ̲U̲M̲A̲M̲ ̲t̲o̲ ̲V̲U̲S̲:

         1.  Access Key to CIF (QEL ref)
         2.  Append Notification
         3.  Message Release Status
         4.  Outgoing Message Status
         5.  Delivery Status.



4.1.7.3.2    C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲I̲n̲t̲e̲r̲a̲c̲e̲s̲


         1̲.̲ ̲F̲r̲o̲m̲ ̲V̲C̲O̲ ̲t̲o̲ ̲U̲F̲C̲O̲

         1.  Initialize Command
         2.  Restart UFCO Command
         3.  Start UFCO Command
         4.  Stop UFCO Command
         5.  Close Down Command.


         2̲.̲ ̲F̲r̲o̲m̲ ̲U̲F̲C̲O̲ ̲t̲o̲ ̲V̲C̲O̲

         1.  Initalize CC 
         2.  Restart UFCO CC 
         3.  Start UFCO CC                                        4. Stop
                                                                     UFCO
                                                                     CC
                                                                     
         5.Close Down CC


         3̲.̲ ̲F̲r̲o̲m̲ ̲U̲F̲C̲O̲ ̲t̲o̲ ̲V̲D̲I̲A̲

         1.  Initialize CMD
         2.  Start VDIA CMD
         3.  Display Format CMD
         4.  Input Format CMD
         5.  Output Message CMD
         6.  Insert Lines CMD
         7.  Delete Lines CMD
         8.  Clean Up CMD
         9.  Close Down CMD.



         4̲.̲ ̲F̲r̲o̲m̲ ̲V̲D̲I̲A̲ ̲t̲o̲ ̲U̲F̲C̲O̲

         1.  Initialize CC 
         2.  Start VDIA CC 
         3.  Clean Up CC 
         4.  Close Down CC 
         5.  Validation Result.
         6.  Output format CC
         7.  Input format CC


         5̲.̲ ̲F̲r̲o̲m̲ ̲U̲F̲C̲O̲ ̲t̲o̲ ̲E̲T̲R̲

             None.


         6̲.̲ ̲F̲r̲o̲m̲ ̲R̲E̲T̲R̲ ̲t̲o̲ ̲U̲F̲C̲O̲

         1. SAR on-line retrieval notification
         2. SAR off-line retrieval notification
         3. On-line retrieval result
         4. On-line append result




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    V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲(̲V̲C̲O̲)̲

         This subpackage is the controlling subpackage within
         the package. The control is exercised by issue of command
         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
         -   UFCO 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 VUS Data (1.1)
             Performs initialization of common data for the
             subpackages within VUS.

         b)  Initialize VCO Data (1.2)
             Performs iniialization of common data for the modules
             within the VCO 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 VCO takes action
             and strts UFCO.

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

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

         d)  Process CLOSE DOWN CMD (2.4)
             This command informs VUS that a system close down
             procedure is to take place and VCO informs UFCO.

         e)  Send Response to TEMCO (2.)
             For each TEMCO command a corresponding command
             to UFCO exists and to each UFCO command a corresponding
             completion response exists. When VCO has received
             the expected completion response from UFCO an acknowledge
             to the TEMCO command is sent to TMCO.




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

         a)  Interpret flash notification (3.1)
             Analyses the flash notification to determine the
             precedence (superflash or flash) and which queue
             the fash item is in (Release - or Receive queue).

         b)  Request/Cancel Timeout (3.2)
             Calls upon the timer monitor functions.

         c)  Search Flash Queues (3.3)
             Searches for flash items in the flashqueues.

         d)  Send Flash Items to MDCO (3.4)
             Sends old fash items to MDCO.



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 flash
             timeout request or a periodic timeout.

         b)  Request Timeout (4.2)
             Requests a flash timeout.



4.2.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)  Update Q-Status Fields (5.2)
             Maintains the queue length filds in the VDU-header.

         c)  Display VDUHeader (5.3)
             Updates the VDU-header display.



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

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


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

         c)  Process User Mode Change (6.3)
             Reacts upon information from UFCO that the urrent
             user mode (i.e. release, preparation, reception)
             has changed.

         d)  Process Precedence Change (6.4)
             Reacts upon information from UFCO that the current
             precedence 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 (71)
             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 UFCO 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̲

         Te software structure is shown on figure 4.2.1.2-1.
         VCO consists of one coroutine containing 4 modules
         and 14 common procedures.



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

         This is the module containing the mainloop of VCO.
         The module contains the VUS initialiation functions,
         receives and processes items arriving in the VUS ̲CMDQ,
         receives and reacts upon UFCO responses, sends acknowledge
         of TEMCO commands to TEMCO and reports queue errors
         and internal errors to SSC.

         The following component procedures re contained in
         this module:

         a)  VUS Init (1.1)
             Initializes the VUS common data and VCO data.…86…1
                     …02…   …02…   …02…   …02…                             
                          
         b)  Set Receive CMD QEL (1.2)
             Initiates a receive function for the VUS ̲CMDQ and
             associates the event to the VUS ̲S1 semaphore.

         c)  Init UFCO cc Processing (1.3)
             Reacts upon comletion of the INIT UFCO CMD.

         d)  Restart UFCO cc Processing (1.4)
             Reacts upon completion of the RESTART UFCO CMD.

         e)  Start UFCO cc Processing (1.5)
             Reacts upon completion of the START UFCO CMD.

         f)  Stop UFCO cc Processing (1.6)
             Reacts upo completion of the STOP UFCO CMD.

         g)  Block UFCO cc Processing (1.7)
             Reacts upon completion of the BLOCK UFCO CMD.

         h)  Close Down UFCO cc Processing (1.8)
             Reacts upon completion of the CLOSE DOWN UFCO CMD.



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 UFCO
         and reports reception of unexpected queue elements
         to SSC.

         The following component procedures are contained in
         this module:

         a)  Get Terinal Profile (2.1)
             Reads the terminal profile by call upon TMP.

         b)  Set Session Attributes (2.2)
             Transfers data from  the terminal profile to VUS
             Common data areas.

         c)  Set User Connection (2.3)
             Transfers the user connection (received from EMCO
             together with START USER CMD) to VUS common data
             areas.



         d)  Init Header Split (2.4)
             Initializes the contents of the fields to be displayed
             as VDU header and displays the fields.

         e)  Request Periodic Timeout (2.5)
             Requests the perioic timeout (every minute) for
             the duration of this session.



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 nd flash), determines whether
         the classification allows the item to be displayed
         (if not it will be sent to MDCO immediately), determines
         whether the current precedence is flash or above (in
         which case timeout request is not required), checks
         if a imeout is already outstanding (in which case timeout
         request is not required), reads the system parameter
         FQT (Flash Queue Timeout), checks if it is changed
         since last used, requests/cancels timeout accordingly,
         updates VDU header queue fields, invrts appropriate
         flash queue fields, rings the bell displays the VDU
         header and reports reception of unexpected queue element
         in the VUS ̲CMDQ.

         The following component procedure is contained in the
         module:

         a)  Get Flash QEL Attributes (3.1)
             Obtans flash queue element attributes by call upon
             the Queue Monitor function.




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 flash timeout request. For periodic
         timeouts the date/time fied and queue length fields
         in the VDU header are updated and the VDU header displayed.
         For a flash timeout it is checked if current precedence
         is flash or above (in which case no action is taken),
         otherwise the flash item timed out is sent.
         MDCO, te flash queues are searched for further flash
         items (if such items are found renewed timeout is requested),
         the VDU queue length fields are updated and displayed.
         If unexpected queue elements are found this is reported
         to SSC.



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

         For description of the 14 common procedures refer section
         4.2.1.6.








                     F̲I̲G̲U̲R̲E̲ ̲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̲ ̲V̲C̲O̲

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

         The call structure within VCO is shown on figure 4.2..3-5
         identifying all calls between modules and common procedures.







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


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



4.2.1.4.1    V̲C̲O̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲



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

         This module is the controlling module within the subpackage.
         It inerprets the startup parameters delivered in the
         registers when the subprocess is started and activates
         initialization or restart accordingly. It initializes
         the VUS dataareas, sends a command to UFCO, signals
         UFCO and initiates reception from the VS ̲CMDQ. It associates
         the reception from this queue with the semaphore VUS
         ̲S1 and waits for this semaphore. It analyses the input
         to the semaphore (when signalled) to identify:

         -   SSC commands
         -   Flash Notifications
         -   Timeouts
         -   UFCO Responses

and calls appropriate modules.


4.2.1.4.1.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)  VCO ̲CONTROL

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

         R̲6̲ ̲L̲I̲N̲K̲                    DESTROYED

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

         RO-R7                      DESROYED

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

         None…86…1         …02…   …02…   …02…   …02…                           
                        
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 V̲U̲S̲ ̲I̲N̲I̲T̲

         Initializes the VUS-data areas and VCO-dataareas.



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

         Initiates reception from VUS ̲CMDQand associates to
         
         VUS ̲S1. Refer figure 4.2.1.4.1.3.2-1.



4.2.1.4.1.3.3 I̲N̲I̲T̲ ̲U̲F̲C̲O̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲

         Responds to completion of UFCO cmd.



4.2.1.4.1.3.4 R̲E̲S̲T̲A̲R̲T̲ ̲U̲F̲C̲O̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲

         Responds to completion of UFCO cmd.



4.2.1.4.1.3.5 S̲T̲A̲R̲T̲ ̲U̲F̲C̲O̲ ̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲

         Responds to completion of UFCO cmd and sends acknowledge
         of START ̲USER cmd to TEMCO.



4.2.1.4.1.3.6 S̲T̲O̲P̲ ̲U̲F̲C̲O̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲

         Responds to completion of UFCO cmd and sends acknowledge
         of STOP ̲USER cmd to TEMCO.



4.2.1.4.1.3.7 B̲L̲O̲C̲K̲U̲F̲C̲O̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲

         Responds to completion of UFCO cmd and sends acknowledge
         of BLOCK ̲TERMINAL cmd to TEMCO.




4.2.1.4.1.3.8 C̲L̲O̲S̲E̲ ̲D̲O̲W̲N̲ ̲U̲F̲C̲O̲ ̲C̲C̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲

         Responds to completion of UFCO cmd, clears VDU Header
         Split, closes Format Handler interface and sends acknowledge
         of CLOSE ̲DOWN cmd t TEMCO.



   S̲E̲T̲ ̲R̲E̲C̲E̲I̲V̲E̲ ̲C̲M̲D̲ ̲Q̲E̲L̲
       
   CASE INIT ̲RECEIVE ̲FIRST ̲QEL(WAIT, VUS ̲CMDQ, VUS ̲CMDQ
   ̲ATTR,
                     CMD ̲OP)(CC): ERROR ̲OK
       ERROR?  ANALYSE ̲ERROR(CC,0)

       OK?  ASSOCIATE(VUS ̲S1, CMD ̲OP): OK
   END CASE INIT







   END






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


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̲

          VCO ̲OP                        refer 4.1.4
          VUS ̲S1                        refer 4.1.4
          INIT ̲UFCO ̲CMD                 refer 4.1.4
          RESTART ̲UFCO ̲CMD              refer 4.1.4
          START ̲UFCO ̲CMD                refer 4.1.4               STOP
                                                                  ̲UFCO
                                                                  ̲CMD refer
                                                                      4.1.4
          BLOCK ̲UFCO ̲CMD                refer 4.1.4
          CLOSE ̲DOWN ̲UFCO ̲CMD           refer 4.1.4
          INIT ̲UFCO ̲CC                  refer 4.1.4
          RESTART ̲UFCO ̲CC               refer 4.1.4
          START ̲UFCO ̲CC                 refer 4.1.4
          STOP ̲UFCO ̲CC                  refer 4.1.4
          BLOCK ̲UFCO ̲CC                 refer 4.1.4
          CLOSE ̲DOWN ̲UFCOCC             refer 4.1.4
          USER ̲MODE ̲CHANGE              refer 4.1.4
          PRECEDENCE ̲CHANGE             refer 4.1.4
          QERROR ̲INF                    refer 4.1.4
          INTERNAL ̲ERROR ̲INF            refer 4.1.4
          CMD ̲QEL                       refer 4.2.1.5
          CMD ̲QEL ̲MAINTYPE              refer 4.2.1.5
          CMD ̲QEL ̲SUBTYPE               refer 4.2.1.5
          CMD ̲QEL ̲FLAGS                 refer 42.1.5
          ACK ̲PARAMS                    refer 4.2.1.5
          CURRENT ̲MODE ̲QUEUE            refer 4.2.1.5
          FLASH ̲ITEM ̲FOUND              refer 4.2.1.5

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

          START ̲UP:                     START ̲UP ̲ACTIVE ̲TYPE

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

          RESTART:                      BOOLEAN
          UFCO ̲CC ̲RECEIVED:             BOOLEAN
          OP ̲POINTER:                   INTEGER
          OP ̲IDET:                      INTEGER



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 ̲UFCO cmd or RESTART ̲UFCO cmd accordingly.

       -  Initializes VUS data- and VCO dataareas.

       -  Sets up RECEIVE ̲FIRST ̲QEL callto VUS ̲CMDQ, associates
          the call to VUS ̲S1, signals UFCO and waits for VUS
          ̲S1.

       -  Analyses input to VUS ̲CMDQ and calls the modules:

          TEMCO ̲CMD ̲PROCESSING
          FLASH ̲QUEUE ̲MONITORING
          TIMER ̲EVENT ̲PROCESSING
       accordingly.

       -  Analyses UFCO responsesand updates and displays
          VDU header.

       -  Sends acknowledge to TEMCO.…86…1   …02…   …02…  …02…           
                                                         
          
       V̲C̲O̲ ̲C̲O̲N̲T̲R̲O̲L̲

       CASE START ̲UP OF

          DEAD1?  RESTART: = FALSE
          DEAD2?  RESTART: = FALSE
          COLD ?  RESTART: = FALSE
          WARM1?  RESTART: = TRUE
          WARM2?  RESTART: = TRUE
          OTHERWSE? V̲U̲S̲ ̲Q̲U̲E̲U̲E̲ ̲E̲R̲R̲O̲R̲(̲C̲O̲N̲T̲I̲N̲U̲E̲)̲ ̲(̲4̲.̲1̲.̲5̲.̲1̲)̲

       END CASE STARTUP

       V̲U̲S̲ ̲I̲N̲I̲T̲(̲4̲.̲2̲.̲1̲.̲4̲.̲1̲.̲3̲.̲1̲)̲

       RESTART?  VCO ̲OP.CMD: = RESTART ̲UFCO ̲CMD

       VCO ̲OP.CMD: = INIT ̲UFCO ̲CMD

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

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

       LOOP FOREVER
          WAIT ̲OPSEM(US ̲S1)(VUS ̲OP): OK

          CASE VUS ̲OP.IDENT OF

              CMD ̲IDENT?  V̲U̲S̲ ̲C̲M̲D̲ ̲Q̲E̲L̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲-̲2̲)̲

              UFCO ̲IDENT?   U̲F̲C̲O̲ ̲R̲E̲S̲P̲O̲N̲S̲E̲ ̲P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲(̲-̲3̲)̲

              OTHERWISE?  V̲U̲S̲ ̲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 IDENT



       END FOREVER LOOP

       END

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